进程管理
基本概念
1.进程的顺序执行和并发扫行
进程的顺序执行一般用前趋图描述,前趋图由结点和有向边组成,结点代表各程序段操作,结点间的有向边表示两个程序段操作之间存在前趋关系(->)。
程序段Pi和Pj的前趋关系表示成Pi->Pj,其含义是Pi执行结束后Pj才能执行。
2.进程的组成
进程通常是由程序、数据和进程控制块组成
进程控制
进程控制就是对系统中的所有进程从创建到消亡的全过程实施有效控制。进程控制是由操作系统内核中的原语实现的。原语是指由若干条机器指令组成的,用于完成特定功能的程序段。
进程间的通信
1.同步与互斥
同步是合作进程间的直接制约问题,互斥是申请临界资源进程间的间接制约问题
2.信号量机制
信号量机制主要有整型信号量、记录型信号量和信号量集
(1)整型信号量与PV操作
(2)利用PV操作实现进程的互斥,P是Passeren的缩写表示通过,V是Vrijgeven的缩写表示释放
令信号量mutex的初值为1,当进入临界区时执行P操作,退出临界区时执行V操作
3.进程间通信
进程间通信是指进程之间的信息交换,其中PV方式属于低级通信方式
进程间的高级通信方式常用的有三种,分别是共享内容、消息传递及共享文件
管程
1.管程的引入
管程由一些共享数据、一组能为并发进程所执行的、作用在共享数据上的操作的集合、初始代码以及存取权组成
2.管程的结构
管程的语言描述:
Type <管程名> = monitor
<管程变量说明>;
define<(能被其它模块引用的)过程名列表>;
procedure<过程名>(<形式参数表>)
begin
<过程体>;
end;
...
procedure<过程名>(<形式参数表>)
begin
<过程体>;
end;
begin
<管程的局部初始化语句>;
end.
进程的调度
1.进程的调度方式
进程的调度方式可分为可剥夺和不可剥夺两种
可剥夺:当有更高优先级的进程到来时,强行将正在运行的进程CPU分配给高优先级的进程
不可剥夺:当有更高优先级的进程到来时,必须等待正在运行进程自动释放所占CPU才将CPU分配给高优先级的进程
2.三级调度
三级调度:一个作业从提交到完成需要经历高级调度、中级调度、低级调度
3.调度算法
常用的进程调度算法有先来先服务、时间片轮转、优先级调度和多级反馈调度算法
4.进程优先级确定
(1)I/O型进程:让其进入最高优先级队列
(2)计算型进程:采用最大时间片执行的策略
(3)I/O次数不多、以CPU处理为主的进程:在I/O完成后返回原先I/O请求时离开的队列
(4)为适应一个进程在不同时间段的运行特点,I/O完成时提高优先级,时间片用完时降低优先级
死锁
定义
死锁:两个或两个以上的进程互相都要求对方已经占有的资源,从而导致程序无法继续向下运行的现象
死锁产生的四个必要条件
产生死锁的四个必要条件是:互斥条件、请求保持条件、不可剥夺条件和环路条件
死锁处理
死锁处理策略主要有四种:鸵鸟策略(即不理睬策略)、预防策略、避免策略和检测与解除死锁
线程
线程分为用户级线程和内核支持线程
用户级线程:不依赖于内核,该类线程创建、撤销和切换都不利用系统调用来实现
内核支持线程:依赖于内核