计算机操作系统2.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:59 大小:1.5MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

计算机操作系统2.ppt

计算机操作系统2.ppt

预览

免费试读已结束,剩余 49 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第二章进程的描述与控制2.1.1前趋图图2-2前趋图对于图2-2(a)所示的前趋图,存在下述前趋关系:2.1.2程序的顺序执行及其特征2.程序顺序执行时的特征1.程序的并发执行2.程序并发执行时的特征2.1.4程序并发执行条件例:2.2进程的描述(重点)进程的特征动态性:是程序的一次并发执行过程,具有一定的生命周期。每个进程在执行过程中都会按“执行-暂停-执行”方式推进,因此可以对不同阶段的进程定义不同的状态。并发性进程的三种基本状态就绪(Ready)状态:此时进程等待CPU,并获得了除CPU以外所有的运行所需资源。由于存在多个就绪进程,OS将它们排列成一个就绪队列。执行(Running)状态:进程获得了CPU,并正在运行的状态。单CPU系统中只能有一个进程处于执行状态。阻塞(Blocked)状态:进程因发生某事件而不能继续执行的状态。有时也称为“睡眠”或“等待”状态。由于存在多个不同原因的阻塞进程,系统将它们排列成多个队列进程状态之间的转换关系2.2.3挂起状态挂起状态(Suspended):将一个进程人为地停止下来,以便进行调试或进行其它处理。挂起状态和阻塞状态的区别:只有人为干预,才能让挂起状态的进程继续执行,而阻塞状态的进程可以自动转入执行状态。引入挂起状态的原因(1)终端用户的请求。(2)父进程请求。(3)负荷调节的需要。(4)操作系统的需要。(5)对换的需要进程状态的转换图2-6具有挂起状态的进程状态图进程控制块(PCB)PCB是和内存中的程序并存的结构性数据,用来保存进程的所有动静态信息。PCB是进程存在的唯一标志:创建进程时,首先建立PCB,然后才为程序分配内存。进程状态等信息都保存在PCB中,因此在调度进程时,OS根据PCB的内容确定进程的具体状态。进程切换时,当前进程的所有运行信息保存在PCB中。进程之间交互时,通过PCB传递信息。进程进入终止状态后,先释放内存,后释放PCB。PCB的内容进程标识信息:包括外部标识符(程序名称)和内部标识符(编号)。处理机状态信息:进程的执行被中断时,将CPU的通用寄存器、指令寄存器、程序状态字PSW以及用户栈指针保存在PCB中,以便在进程重新返回执行状态时恢复内容。进程调度信息:包括状态、优先级、阻塞原因(事件)、进程运行时间等。进程控制信息:包括程序和数据地址、进程同步和通信机制、资源清单、链接指针PCB和进程之间的关系典型的PCB定义实例:PCB的组织形式:链表形式PCB1链接形式索引形式2.3进程的控制进程1进程的调度调度程序是进程管理部分的一个过程,也是被时钟中断处理程序调用的子过程。当发生时钟中断时,调度程序进入执行过程,从而对所有进程进行调度。引起创建进程的事件进程的创建过程申请空白PCB,填写内部标识符为新进程分配内存资源填写PCB其它内容将新进程的PCB放到就绪队列末尾进程的终止过程查找PCB,读取其状态如果是执行状态,终止其执行,设置调度标志为真如果有子孙进程,将其全部终止回收内存及其它资源还给父进程或系统将PCB放入空闲队列进程的阻塞过程阻塞原因请求系统服务而得不到满足启动某种操作(如I/O)后需要等待完成等待合作进程的运行结果无事可做阻塞过程进程调用某种系统调用,而该系统调用判断出所要求的功能不能得到满足,进而调用阻塞原语block()阻塞原语将进程状态改为“阻塞”,并把对应的PCB放到与阻塞原因对应的阻塞队列末尾阻塞原语调度新的进程由此可见,一个进程阻塞,不是因为其它原因,而是执行过程中调用了阻塞原语。进程的唤醒过程阻塞进程等待的事件发生,并由某个进程去处理;事件处理代码调用唤醒原语Wakeup()唤醒原语将所有等待该事件的进程PCB移到就绪队列,并把状态改为就绪状态进程的挂起过程-当出现了引起进程挂起的事件时,系统将利用挂起原语suspend()将指定进程或处于阻塞状态的进程挂起。挂起原语的执行过程是:1、检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止就绪;2、对于活动阻塞状态的进程,则将之改为静止阻塞。3、若被挂起的进程正在执行,则转向调度程序重新调度。进程的激活过程当发生激活进程的事件时,系统将利用激活原语active()将指定进程激活。1、激活原语先将进程从外存调入内存,检查该进程的现行状态,若是静止就绪,便将之改为活动就绪;若为静止阻塞便将之改为活动阻塞。2、假如采用的是抢占调度策略,则每当有新进程进入就绪队列时,应检查是否要进行重新调度,即由调度程序将被激活进程与当前进程进行优先级的比较,如果被激活进程的优先级更低,就不必重新调度;否则,立即剥夺当前进程的运行,把处理机分配给刚被激活的进程。2