首先我们来了解一下进程是什么鬼:
一 进程是程序的一个执行过程,是进程实体的一个运行过程,是操作系统分配资源和调度的独立单位。
进程有PCB +程序段+数据段等构成。
PCB (进程控制块)数据结构有,进程标识符+处理机信息+进程调度信息+进程控制信息组成。
PCB的作用:系统创建一个新进程时就会,创建一个PCB,进程结束时,又收回PCB ,进程也随之消亡,系统是通过PCB 来感知进程的存在,PCB 是进程在系统中的唯一标识。
进程具有 独立性,并发行,异步性,动态性4个特征。
进程的3个基本状态为 就绪,运行,阻塞。
其三种基本状态图如下:
其五基本状态图如下:
其具有挂起状态的图如下:
其具有创建,终止,挂起状态的图如下:
二. 解析:
操作系统创建进程时当就绪队列已满时,操作系统将会把进程换出到外存中静止队列中。
当静止队列中进程期待的事件发生时,进程就会从静止阻塞进入静止就绪队列中。
进程的挂起操作的原因有,1.终端用户需要,2.操作系统需要,3.父进程请求,4.负荷调节需要。
创建过程:
1.系统先向PCB集合申请一个空白的PCB
2.系统为进程分配资源
3.系统初始化PCB
4.如果活动就绪队列未满,系统将该进程放入活动就绪队列中,否则放入静止就绪队列。
触发创建进程的事件有:
1.用户登入
2.提供服务
3.作业调度
4.应用请求
终止过程:
1.根据终止进程的标识符,从PCB集合中找到该进程的PCB,并从中读取进程状态。
2.如果被终止的进程正处于运行状态,则立刻终止该进程,并把PCB 调度标志置为真,提示系统该进程被终止后应等待下次调度。
3.如何该进程存在子孙进程,则终止其子孙进程,防止执行进程变为不可控进程。
4.将该进程所占用的资源归还给父线程或操作系统。
5。将终止进程(PCB)移除其所在的队列(链表)中,等待其他程序来收集信息。
进程终止触发事件:
1.正常结束
2.异常结束
3.外界干预
进程的阻塞:
触发事件:
等待其他操作如I/O操作
等待新的任务。
等待系统反馈的信息
向系统请求资源失败
阻塞是主动的
唤醒是被动的
三 进程之间的通信:
1.基于内存间的共享
2.基于系统的消息机制
3.基于服务端和客户端的通信机制
4.基于管道流通信机制
五. 临界资源:
临界资源就像硬件资源打印机,磁带机等,所有进程都必须互斥的对其使用。
六 临界区 :
存在与互斥信号量获取到释放之间的区域。该区域可以被多个进程并发访问,为了避免数据的冲突,加入互斥信号量,使得临界区可以在某段时间类被某个进程独占,即所有进程都必须互斥的对该资源区进行访问。
七 进程同步:
用于调节多个相关进程间的执行顺序,使多个进程按照某中规则共享系统资源,使这些进程之间可以相互合作,使程序的执行结果具有可再现性。
八 进程互斥
多个进程通过互斥信号量,对临界资源在某段时间内进行独占访问。