参考一:
操作系统之进程管理
1.程序顺序执行的特征:
a.顺序性:每一操作必须在下一操作开始之前结束
b.封闭性:程序运行时独占全机资源,资源的状态(除初始状态外)只有本程序才能改变,程序一旦执行,其结果不受外界影响
c.可再现性:程序执行环境和初始条件相同,重复执行时,结果相同
2.程序并发执行的特征:
a.间断性:程序并发运行时,共享系统资源,为完成同一任务相互合作,会形成相互制约关系,导致并发程序具有“执行-暂停-执行”这种间断性的活动规律
b.失去封闭性:程序并发执行时,资源状态由多个程序改变,某程序执行时,会受到其他程序影响,失去封闭性
c.不可再现性:失去封闭性,导致失去可再现性
3.进程的特征
a.结构特征:程序段、相关数据段和PCB三部分构成进程实体
b.动态性:进程实体的一次执行过程,具有生命期,而程序是有序指令集合,是静态的
c.并发性:多个进程同时存于内存,在一段时间内同时运行
d.独立性:进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位
e.异步性:进程按各自独立的、不可预知的速度向前推进
4.进程的状态:
a.就绪状态
b.执行状态
c.阻塞状态
d.挂起状态:有些系统中引入该状态,其原因有:d1.终端用户有时希望自己程序静止下来以便解决某些问题;d2.父进程有时希望挂起自己某个子进程,以便考察、修改各子进程;d3.系统为减轻工作负荷,挂起某些进程运行;d4.OS 挂起某些进程,检查运行中的资源使用情况
5.进程控制块(PCB):PCB是进程存在的唯一标志,OS根据PCB对进程进行管理和控制
5.1PCB主要包括:a.进程标识符;b.处理机状态,如指令计数器等;c.进程调度信息,如进程状态、优先级等;d.进程控制信息,如程序和数据地址等
5.2PCB组织方式:a.链接方式:具有同一状态的PCB按关键字链接成一队列;b.索引方式:根据进程状态建立索引表,各索引表在内存首址记录在专用单元里,索引表表项记录PCB的地址
6.进程同步:多道程序环境下,程序并发执行时,由于资源共享和进程合作,各进程之间会消除相互制约关系:间接相互制约关系(如各进程共享CPU等);直接相互制约关系(如进程A通过单缓冲向进程B提供数据,缓冲为空时,进程B取不到数据而阻塞)。为实现进程互斥地进入临界区,可用软件方法,或在系统中设置专门的同步机构协调各进程间的运行。同步机制应遵循以下4条准则:
a.空闲让进
b.忙则等待
c.有限等待:要求访问临界区的进程,保证有限时间内进入自己的临界区,避免死等
d.让权等待:进程不能进入临界区时,应立即释放处理机,避免忙等
7.信号量机制:1965年,Dijkstra提出的信号量机制是一种卓有成效的进程同步工具,信号量机制的发展:整形信号量--->记录型信号量--->信号量集等
8.管程机制:信号量机制中每个进程需自备wait(S)和signal(S),管理麻烦,如果使用不当会导致死锁,而另一同步工具---管程是用数据结构对资源进行描述,即用数据结构和该数据结构上的一组操作,来表征资源,管程由三部分组成:a.局部于管程的共享变量说明;b.对该数据结构进行操作的一组过程;c.对局部于管程的数据设置初始值的语句;管程每次只允许一个进程访问,实现了进程互斥。为了实现同步,必须设置同步原语wait和signal,某进程请求资源未能满足时,管程调用wait使之排在等待队列上,当另一进程访问完毕释放资源后,管程调用signal唤醒队首进程,通常引入条件变量对等待进程进行分组
9.进程通信
信号量机制作为同步工具卓有成效,但作为通信工具是不理想的,因为:a.效率低;b.通信对用户不透明。高级通信可归结为三类:
a.共享存储器系统:a1.基于共享数据结构的通信方式:公用某些数据结构实现进程间信息交换,增加程序员负担,通信低效,适于传递少量数据;a2.基于共享存储区的通信方式:在存储器中划出一块共享存储区,实现信息交换。
b.管道通信:用于链接一个读进程和一个写进程以及实现它们之间通信的共享文件,又名pipe文件,能有效的传送大量数据,管道机制需提供:b1.互斥;b2.同步:写进程写入一定数据后,便去睡眠等待,知道读进程取走数据,再把它唤醒,当读进程读一空pipe文件,也应睡眠等待,知道些进程写入管道后,再将之唤醒;b3.确定对方存在后,才进行通信
c.消息传递系统:用的最广泛的进程间通信机制,数据的交换以格式化的消息为单位,可分为:
c1.直接通信方式:发送进程利用操作系统提供的发送命令,直接将消息发送给目标进程
c2.间接通信方式:通信通过共享数据结构的实体,称为信箱,既可实现实时通信,又可实现非实时通信。信箱暂存发送进程发送的信息,接受进程从信箱中取走信息。
11.线程:为提高资源利用率和系统吞吐量,减少并发执行时付出的时空开销,引入线程,线程的属性:
a.轻型实体:线程基本不拥有资源,除了能保证独立运行的资源
b.独立调度和分派的基本单位
c.可并发执行
d.共享进程资源
12.多线程OS中的进程:
a.作为系统分配资源的基本单位
b.可包括多个线程:所有线程都只能属于一个特定进程,线程是独立运行的基本单位
c.进程不是一个可执行的实体
参考二:
操作系统——进程管理 (2010-09-26 13:58:41)1、进程定义: 程序对某个数据集在处理机上运行的过程和资源分配的基本单位。
2、进程和程序的联系和区别?
* 进程是一个动态概念,而程序是一个静态概念
* 进程具有并行特征,而程序没有。 由进程的定义可知,它有独立性 和 异步性
* 进程是分配计算机系统资源的基本单位
* 不同的进程可以包含同一程序,只要该程序所对应的数据集不同。
3、作业 和 进程的关系?
作业是用户需要计算机完成某项任务时,要求计算机所做工作的集合。
进程是程序执行过程的描述,是资源分配的基本单位
* 作业是用户向计算机提交任务的任务实体,作业在外存中的作业等待队列中等待执行;进程则是完成用户任务的执行实体,是向系统申请分配资源的基本单位,进程在内存中。
* 一个作业可以由多个进程组成,至少有一个。
* 作业的概念主要用在批处理系统中;进程的概念则用在几乎所有的多道系统中。
4、进程的静态描述?
进程控制块 包含了进程的描述信息、控制信息 和 资源信息, 是进程动态特征的集中反映。
进程的PCB是系统感知进程的唯一实体。
在创建一个进程时,应首先创建其PCB,然后才能根据PCB中信息对进程实施有效的管理和控制。当一个进程完成其功能之后,系统则释放PCB,进程也随之消亡。
PCB中的信息: 进程名、进程状态、进程优先级、信号量、现场保护区、进程参数、进程程序地址
5、进程互斥
*由于资源共享造成的制约。
*临界区: 访问临界资源(公用数据)的那段程序
*互斥:进程竞争使用临界资源
*互斥锁: lock <临界区> unlock
6、信号量 和 P、V 原语
循环测试锁定位 将损耗较多的CPU计算时间
信号量:sem是一个整数,sem>=0 时,代表可供并发进程使用的资源实体数,但是sem<0 时,代表正在等待使用临界区的进程数。
关于P/V操作另见 进程管理——PV操作
7、进程同步
* 一个进程的执行依赖其他进程的执行情况。他们是 合作关系
8、同步和互斥的关系
* 互斥 是因共享资源而产生的制约关系, 同步,是因相互合作而产生的制约关系
* 他们都是进程在执行时序上的某种限制。
* 互斥可以看做一种特殊的同步
8、 进程通信
*它意味着在 进程间 传送 数据
* 通信内容有两种: 控制信息的传送 和 大批量数据的传送
* 详细另外见 进程管理——进程通信
* 链接http://wenku.baidu.com/view/f7d4fb19227916888486d70b
9、死锁
* 定义: 若干进程互相等待对方释放资源,死循环
* 原因: 系统提供的资源个数 少于 并发进程所需要的该类资源数量。
* 必要条件: 互斥条件、不剥夺条件、部分分配、环路条件 —— 破坏任意一个即可打开死锁
10、死锁的排除方法
* 预防: 破坏必要条件。互斥 和 不剥夺条件——>资源利用率 和 吞吐率低; 资源按序分配 或一次全部分配
* 避免:检查资源申请,可能发生死锁的不予分配。银行家算法(判断是否进入不安全状态,进入则不分配)
* 死锁的检测和解除: 系统定时运行一个“死锁检测”程序,发生死锁就解除之。
* 死锁定理: 系统为死锁状态,当且仅当该状态的 进程-资源分配图是不可完全简化的。
* 死锁检测是检查每个进程还需要的所有资源能否满足要求;而思索避免仅根据进程当前申请的资源量来判断系统是否进入了不安全状态。
* Warshall传递闭包死锁检测算法
for k:=1 to n do
如果 bij = bji = 1 说明存在死锁
* 死锁的解除
11、 线程
* 定义 : 属于一个进程,并与同进程内其它线程共享进程的资源 和
* 优点:多个任务需要处理机处理时,减少处理机的切换时间;而且,线程的创建和结束所需要的系统开销小得多。——最适合使用线程的系统是多处理机系统。
* 举例:一个用户主机通过网络向 2 台远程服务器进行远程调用(RPC)以获得相应结果。
>如果用户进程只用一个线程,则第2个远程调用的请求只有在得到第一个请求的执行结果后才能发出。
>多线程时,用户进程不必等待第1个RPC请求的执行结果而直接发出第2个RPC请求,从而缩短等待时间。