操作系统—进程控制

编程

进程控制就是要实现进程状态转换
 

创建态   ---> 就绪态<--->运行态--->阻塞态

运行态转为终止态

阻塞态可以转为就绪态

程序原语:一种特殊的程序,执行具有原子性,也就是说,这段程序必须一气呵成,不可中断。

如何实现进行控制呢?

原语实现。

如果中间可打断,会发生什么?

如果不能“一气呵成”,就有可能导致操作系 统中的某些关键数据结构信息不统一的情况, 这会影响操作系统进行别的管理工作
 

两步要保证原子性,类似于cas,比较与交换是原子性操作。

pcb进程控制bai块(duPCB,Process Control Block)

撤销原语:

从pcb集合中找到终止进程的pcb,若进程正在运行,立即剥夺cpu,将cpu的执行权分配给其他进程,终止其他子进程。进程间是树形结构,将该进程拥有的所有资源归还给父进程或者操作系统,删除pcb。

引起程序终止的事件

正常结束:进程自己请求终止

异常结束:整数除以0,被操作系统强行杀掉

外界干扰:ctrl+alt+delete用户选择杀掉进程。

阻塞原语:

找到要阻塞的进程对应的pcb,保护进程运行现场,讲pcb状态信息设置为阻塞态,将pcb插入到

相应事件的等待队列。

引起进程阻塞的事件:

需要等待系统分配某种资源

需要等待相互合作的其他进程完成工作

唤醒原语:

在事件等待队列里找打pcb,将pcb从等到队列移除,设置进程为就绪态,将pcb插入到就绪队列,等待被调度

这里唤醒并不一定就执行了,只是可以被调度了。

引起唤醒的事件:因何事等待,就由什么唤醒,如wait notify 

进程切换:将运行环境信息存入pcb,pcb移入相应队列,选择另一个进程执行,并更新起pcb,根据pcb恢复成所需要的运行环境

引起进程切换的事件:

当前进程事件片到了

有更高优先级的进程到达

当前进行主动阻塞

当前进程终止

 

 

 

 

以上是 操作系统—进程控制 的全部内容, 来源链接: utcz.com/z/518520.html

回到顶部