进程的三种状态及其转换,进程控制原语

时间:2024-04-09 14:13:20

进程:是程序的一次执行过程,是系统资源和处理机的独立单位

 

进程的三种状态:

就绪状态:等cpu 程序一旦运行就创建了本次运行的PCB也就创建了进程,此时进程处于就绪状态       

阻塞状态:等事件

执行状态:用cpu

 

转换:

  • 就绪---> 执行

处于就绪状态的cpu空闲时,就从就绪状态中选取优先级最高的进程将cpu分配给它

  • 执行--->阻塞

处于执行状态的进程,若运行完成,则撤销此进程

若出现了I/O等事件,分时状态的一个时间片完,则转换为阻塞状态

  • 阻塞--->就绪

处于阻塞状态的进程,在等事件发生后,转换为等cpu就绪态

             

挂起 :

使正在活动的进程处于静止状态

此时系统回收被这些进程占用的内存资源

进程的三种状态及其转换,进程控制原语

进程的控制原语及其作用:  

进程的控制通过操作系统内核实现,内核实现使用原语

原语:是若干条机器指令构成的,完成特定功能段的程序,其执行过程不可分割

包含:创建 撤销 阻塞 唤醒 挂起 **

 

创建原语:

从空白队列粘取PCB节点

就绪队列选取优先级最高的进程,将CPU分配给它

写入本次运行对应的信息

 

撤销原语:【运行--->撤销】

运行完成

回收所有资源

将该PCB链接空白进程

 

阻塞:【运行--->阻塞】

遍历头节点 data域

将该PCB插入阻塞队列

 

唤醒:【阻塞--->就绪】

遍历头节点data域

依次将阻塞节点移入就绪队列

           

进程同步:        

使并发执行的进程间可以有效的共享资源和相互合作,使程序的并发执行具有可再现性。

 

进程间的制约关系:

直接制约关系:进程间由于共享资源而引起的直接制约关系------互斥

间接制约关系:进程间由于相互合作引起的间接制约关系---------同步

 

临界区互斥的访问:

临界区:一次仅允许一个资源访问的进程

临界区:访问临界资源的代码段,不允许多个并发进程交叉执行

实现:

临界区前加进入区,判断是否空闲,若不空闲,时钟管理的控制下每隔一段时间进入临界区

                                                                      空闲,进入临界区,设置访问标志

临界区后加退出区,恢复访问标志,允许其他程序进入

 

利用硬件方法解决进程互斥问题:

Test-and-Set指令:

读出标志后设置为true

swap指令