进程管理

一、进程状态转换

1.基本状态转换


运行——>就绪:1,主要是进程占用CPU的时间过长,而系统分配给该进程占用CPU的时间是有限的;2,在采用抢先式优先级调度算法的系统中,当有更高优先级的进程要运行时,该进程就被迫让出CPU,该进程便由执行状态转变为就绪状态。         

就绪——>运行:运行的进程的时间片用完,调度就转到就绪队列中选择合适的进程分配CPU        

运行——>阻塞:正在执行的进程因发生某等待事件而无法执行,则进程由执行状态变为阻塞状态,如发生了I/O请求       

 阻塞——>就绪:进程所等待的事件已经发生,就进入就绪队列

以下两种状态是不可能发生的:          

阻塞——>运行:即使给阻塞进程分配CPU,也无法执行,操作系统在进行调度时不会从阻塞队列进行挑选,而是从就绪队列中选取         

就绪——>阻塞:就绪态根本就没有执行,谈不上进入阻塞态。

2.有挂起操作的进程状态转换


引起进程挂起的原因:

(1)终端用户的需要

(2)父进程的请求

(3)负荷调节的需要

(4)操作系统的需要


2.PCB(进程控制块)

PCB的作用是在一个多道程序环境下不能独立运行的程序(含数据)成为一个能独立运行的基本单位,使得能与其他进程并发执行。其作用有:

(1)作为独立运行的基本单位标志,当系统创建一个新进程时,就建立一个PCB,进程结束时就回收PCB,系统通过PCB感知进程的存在,PCB是进程存在于系统的唯一标识

(2)能实现间断性运行方式,多道环境下,程序采用走走停停的方式运行,当进程因阻塞而暂停运行时,需要保留自己运行时的CPU现场信息,再次运行时,还需要恢复CPU现场信息,CPU现场信息就是保存在被中断进程的PCB中

(3)提供进程管理所需要的信息,PCB中记录了程序和数据在内存或外存中的始地址指针,以及该进程所需的全部资源

(4)提供进程调度所需要的信息,PCB中记录了进程是处于运行态、阻塞态还是就绪态

(5)实现与其他进程的同步与通信,在采用信号量机制时,它要求在每个进程中设置有相应的用于同步的信号量,在PCB中,还具有用于实现进程通信的区域或通信队列的指针

PCB的创建过程:

通过原语create创建

(1)申请一张空白PCB

(2)填写用户控制和管理进程的信息

(3)为该进程分配运行时需要的资源,如内存、文件、I/O设备、CPU时间

(4)初始化PCB,程序计数器指向程序入口地址,栈指向栈顶,转入就绪态,并插入到就绪队列中,如果进程所需的资源不能满足,则此时的进程为创建状态

PCB回收过程:

当进程结束或者终止时会引起PCB的回收,正常结束、异常结束和外界干预都会引起进程的终止

异常结束包括:越界错,保护错,非法指令,特权指令,运行超时,等待超时,算术运算错,I/O故障

首先检索出PCB,终止运行,终止其子孙进程运行,返还资源给父进程或者系统,最后将PCB清零

PCB的组织方式:

(1)线性方式:将所有PCB组织在一张线性表中,该表的首地址存在内存的一个专用区域,实现简单,开销小,但每次查找都需要扫描整张表

(2)链接方式:即把具有相同状态的PCB通过PCB中的链接字组织成一个队列,分为就绪队列、阻塞队列等

(3)索引方式:根据所有进程状态的不同,建立索引表

3.进程的阻塞与唤醒

以下情况会导致阻塞:

(1)向系统请求共享资源失败

(2)等待某种操作完成

(3)新数据尚未到达

(4)等待新任务到达

进程阻塞是一种主动行为

4.进程同步

 进程同步就是对多个相关进程在执行次序上进行协调,使并发进程执行的各个进程之间共享系统资源,并相互合作

(1)两种制约关系

间接相互制约:由于共享资源,如CPU,IO,使得这些并发进程之间形成间接制约关系

直接相互制约:进程为完成同一项工作相互合作

(2)临界资源

一次只能被一个进程访问的资源,各个进程间必须互斥访问

(3)临界区

访问临界资源的那段代码称为临界区

(4)同步进制应遵循的规则:

空闲让进、忙则等待、有限等待、让权等待

(5)同步机制

a.硬件同步机制:关中断、利用Test-and-Set、利用Swap指令实现进程互斥

b.信号量机制

整型信号量:定义个表示资源数目的整型量S,仅通过两个原子操作P和V进行修改,当S<=0,P操作会一直进行测试,违反了让权等待原则,使得进程一直忙等

记录型信号量:定义个表示资源数目的整型量S,每次P操作,S减一,每次V操作,S加1,若加1后,仍然小于0,则表示在该信号量链表中仍有等待该资源的进程被阻塞,当S的初值为1时,表示只允许一个进程访问临界资源,此时信号量转化为互斥信号量

AND型信号量:当一个进程需要获得两个或者两个以上的共享资源后才能执行,这时容易引起死锁,AND的同步机制是在整个运行过程中需要的所有资源,一次性全部分配,待进程使用完一起释放,只要有一个资源未能分配,则其他资源也都不分配

信号量集:

c.管程:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值