[操作系统]进程控制块PCB,进程的三种状态及其转换,进
程控制原语
进程:
程序的⼀次执⾏过程,是系统资源和处理机的独⽴单位
进程=程序段+数据段+进程控制块(PCB)
一块操PCB(进程控制块):
操作系统根据PCB对并发执⾏的进程进⾏控制和管理
通过PCB来感知进程的存在
⼀个进程仅有⼀个进程控制块
PCB组成:
标识符:与进程相关的唯⼀标识符,⽤来区分其他进程。
状态:进程有不同的状态,例如运⾏,就绪,阻塞等。
优先级:为了给处理机调度提供⽀持,优先级⽤来区分各种进程的先后执⾏顺序
程序计数器:程序中即将执⾏的下⼀条指令的地址
内存指针:包括程序代码的进程相关数据的指针,以及与其他进程贡献那个内存块的指针。
上下⽂:进程是需要切换的,切换进程时需要保留进程的上下⽂信息,以防进程在切换时丢失现场数据。
i/o状态信息:包括显⽰i/o请求,分配给进程的i/o设备和被进程使⽤的⽂件列表等。
记账信息:包括处理器时间总和,使⽤的时钟数总和,时间限制,记账号等。
进程和程序的区别:
程序是永存的;进程是暂时的,是程序在数据集上的⼀次执⾏,有创建有撤销,存在是暂时的;
程序是静态的观念,进程是动态的观念;
进程具有并发性,⽽程序没有;
进程是竞争计算机资源的基本单位,程序不是。
进程和程序不是⼀⼀对应的: ⼀个程序可对应多个进程即多个进程可执⾏同⼀程序; ⼀个进程可以执⾏⼀个或⼏个程序
1进程的三种状态:
1.1就绪状态:
等cpu 程序⼀旦运⾏就创建了本次运⾏的PCB也就创建了进程,此时进程处于就绪状态
1.2阻塞状态:
等事件
1.3执⾏状态:
⽤cpu
2转换:
2.1就绪---> 执⾏
处于就绪状态的cpu空闲时,就从就绪状态中选取优先级最⾼的进程将cpu分配给它
2.2执⾏--->阻塞
处于执⾏状态的进程,若运⾏完成,则撤销此进程
若出现了I/O等事件,分时状态的⼀个时间⽚完,则转换为阻塞状态
2.3阻塞--->就绪
处于阻塞状态的进程,在等事件发⽣后,转换为等cpu就绪态
3挂起
使正在活动的进程处于静⽌状态
此时系统回收被这些进程占⽤的内存资源
4进程的控制原语及其作⽤:
进程的控制通过操作系统内核实现,内核实现使⽤原语
原语:是若⼲条机器指令构成的,完成特定功能段的程序,其执⾏过程不可分割包含:创建 撤销 阻塞 唤醒 挂起 激活
4.1创建原语:
从空⽩队列粘取PCB节点
就绪队列选取优先级最⾼的进程,将CPU分配给它
写⼊本次运⾏对应的信息
4.2撤销原语:【运⾏--->撤销】
运⾏完成
回收所有资源
将该PCB链接空⽩进程
4.3阻塞:【运⾏--->阻塞】
遍历头节点 data域
将该PCB插⼊阻塞队列
4.4唤醒:【阻塞--->就绪】
遍历头节点data域
依次将阻塞节点移⼊就绪队列
5进程同步
使并发执⾏的进程间可以有效的共享资源和相互合作,使程序的并发执⾏具有可再现性。6进程间的制约关系
直接制约关系:进程间由于共享资源⽽引起的直接制约关系------互斥
间接制约关系:进程间由于相互合作引起的间接制约关系---------同步
7临界区互斥的访问
临界资源:⼀次仅允许⼀个资源访问的进程
临界区:访问临界资源的代码段,不允许多个并发进程交叉执⾏
实现:
临界区前加进⼊区,判断是否空闲,若不空闲,时钟管理的控制下每隔⼀段时间进⼊临界区                                                                      空闲,进⼊临界区,设置访问标志
临界区后加退出区,恢复访问标志,允许其他程序进⼊