进程
进程的定义:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位,进程是由程序代码和相关数据还有进程控制块组成
导致进程创建的原因(P83):a,新的批处理作业 b,交互登录 c,操作系统因为提供一项服务而创建 d,由现有的进程派生
进程的五状态(P85):a,运行态 b,就绪态 c,阻塞/等待态 d,新建态 e,退出态
挂起进程的特点(P90):a.进程不能立即执行
b.进程可能是或不是正在等待一个事件。如果是,阻塞条件不依赖于挂起条件,阻塞事件的发生不会使进程立即被执行。
c,为阻止进程执行,可以通过代理把这个进程置于挂起状态,代理可以是进程自己,也可以是父进程或操作系统。
d.除非代理显式地命令系统进行状态转换,否则进程无法从这个状态中转移
操作系统为了管理它而维护其四种不同类型的表:内存,I/O,文件和进程(P91)
进程控制块中的典型元素( P93):
进程标识消息:进程必须被标识,而进程中的每个线程也必须有自己的ID
处理器状态信息:通常只与进程有关
进程控制信息:调度和状态信息主要处于线程级
数据结构:进程和线程都可以出现
进程间通信:进程和线程都支持
进程特权:进程和线程都存在
存储管理:进程级
资源的所有权和使用情况:进程级
进程控制信息分成三类(P94):a,进程标识信息 b,进程状态信息 c,进程控制信息
进程创建的步骤(P97):1,给新进程分配一个唯一的进程标识符
2,给进程分配空间
3,初始化进程控制块
4,设置正确的连接
5,创建或扩充其他数据结构
中断与陷阱的区别(P98):中断与当前正在运行的进程无关的某种类型的外部事件相关,如完成一次I/O操作
陷阱与当前正在运行的进程所产生的错误或异常条件相关,如非法的文件访问
抢占进程(P109):处理器为了执行另外的进程而终止当前正在执行的进程
为什么需要用户态和内核态(P109):用户模式下可以执行的指令和访问的内存区域都受到限制,这是为了防止操作系统受到破坏或者修改。而在内核模式下则没有这些限制,从而使它能够完成其功能
指令跟踪(P109):为该进程而执行的指令序列
中断的三个例子(P109):时钟中断,I/O中断,内存失效
模式切换和进程切换的区别(P109):发生模式切换可以不改变当前正处于运行态的进程的状态。发生进程切换时,一个正在执行的进程被中断,操作系统指定另一个进程为运行态,进程切换需要保存更多的状态信息。
线程
单用户多处理系统中使用线程的例子(P114):1,前台和后台工作
2.异步请求
3,执行速度
4,模块化程序结构
用户级的优点(P117):1,由于所有线程管理数据结构都在一个进程的用户地址空间中,线程切换不需要内核态特权,因此,进程不需要为了线程管理而切换到内核态,这节省了两次状态转换(从用户态到内核态,从内核态返回到用户态)的开销
2,调度可以是应用程序相关的。
3,用户级线程可以在任何操作系统中运行,不需要对底层内核进行修改以支持用户级线程
用户线程的缺点(P118):1,在典型的操作系统中,许多系统调用都会引起阻塞
2,在纯粹的用户级线程策略中,一个多线程应用程序不能利用多处理技术
jacketing (P118):调用一个应用级的I/O jacket例程,该Jacking例程中的代码用来检查并确定I/O设备是否忙,如果忙,该线程进入阻塞态并将控制传送给另一个线程
线程间的状态切换比进程间的状态切换开销更低的原因(P136):包含的状态信息更少
进程概念中体现出的两个独立且无关的特点是什么(P136):资源所有权和调度/执行
哪些资源通常被一个进程中的所有线程共享:地址空间,文件资源,执行特权