0第3章进程管理

0第3章进程管理

ID:41539965

大小:1.04 MB

页数:194页

时间:2019-08-27

0第3章进程管理_第1页
0第3章进程管理_第2页
0第3章进程管理_第3页
0第3章进程管理_第4页
0第3章进程管理_第5页
资源描述:

《0第3章进程管理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第3章进程管理3.1进程的概念3.2进程的描述3.3进程状态及其转换3.4进程控制3.5进程互斥3.6进程同步3.7进程通信3.8死锁问题3.9线程本章小结习题3.1进程的概念现代操作系统的重要特点是程序的并发执行,及系统所拥有的资源被共享和系统的用户随机地使用。这三个特点是互相联系和互相依赖的。通常,操作系统的重要任务之一是使用户充分、有效地利用系统资源。采用一个什么样的概念,来描述计算机程序的执行过程和作为资源分配的基本单位才能充分反映操作系统的执行并发、资源共享及用户随机的特点呢?这个概念就是进程。3.1.1程序的并发执行1.程序的顺序执行程

2、序是一个在时间上按严格次序前后相继的操作序列,是一个静态的概念。程序体现了编程人员要求计算机完成所要求功能时所应该采取的顺序步骤。一般用户在编写程序时不考虑在自己的程序执行过程中还有其他用户程序存在这一事实。其执行过程可以描述为:RepeatIR←M[pc]pc←pc+1〈Execute(instructioninIR)〉UntilCPUhalt这里IR为指令寄存器,pc为程序计数器,M为存储器。程序的顺序执行具有如下特点:(1)顺序性程序顺序执行时,其执行过程可看作一系列严格按程序规定的状态转移过程。(2)封闭性程序执行得到的最终结果由给定的初始

3、条件决定,不受外界因素的影响。(3)可再现性只要输入的初始条件相同,则无论何时重复执行该程序都会得到相同的结果。2.多道程序系统中程序执行环境的变化在许多情况下,需要计算机能够同时处理多个具有独立功能的程序。这样的执行环境具有下述三个特点:(1)独立性每道程序都是逻辑上独立的,它们之间不存在逻辑上的制约关系。(2)随机性在多道程序环境下,特别是在多用户环境下,程序和数据的输入与执行开始时间都是随机的。(3)资源共享资源共享将导致对进程执行速度的制约。3.程序的并发执行(1)什么是程序的并发执行程序的并发执行分为两种:第一种是程序之间的并行。尽管多道

4、程序的并发执行在宏观上是同时进行的,但在微观上仍是顺序执行的;第二种是在程序内的几个程序段之间的并行,包含着一部分可以同时执行或顺序颠倒执行的代码。例如语句:read(a);read(b);它们既可以同时执行,也可颠倒次序执行。对于这样的语句,同时执行不会改变顺序程序所具有的逻辑性质。可以采用并发执行来充分利用系统资源以提高计算机的处理能力。程序的并发执行可总结为:一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的这种执行方式。可以将并发执行过程描述为:S0Cobeg

5、inP1;P2;...PnCoendSn1966年Bernstein提出了两相邻语句S1,S2可以并发执行的条件:将程序中任一语句Si划分为两个变量的集合R(Si)和W(Si)。其中R(Si)={a1a2…am},aj是语句Si在执行期间进行读的变量;W(Si)={b1b2…bn},bj是语句Si在执行期间进行修改的变量;如果对于语句S1和S2,有①R(S1)∩W(S2)={∮},②W(S1)∩R(S2)={∮},③W(S1)∩W(S2)={∮}同时成立,则语句S1和S2是可以并发执行的。(2)程序的并发执行所带来的影响如果并发执行的各程序段中语句

6、或指令满足上述Bernstein的三个条件,则认为并发执行不会对执行结果的封闭性和可再现性产生影响(证明略)。但在一般情况下,系统要判定并发执行的各程序段是否满足Bernstein条件是相当困难的。从而,如果并发执行的程序段不按照特定的规则和方法进行资源共享和竞争,则其执行结果将不可避免地失去封闭性和可再现性。下面的例子说明了这一点。图3.1堆栈的取数和存数过程例:设有堆栈S,栈指针top,栈中存放内存中相应数据块地址(如图3.1(a))设有两个程序段其中getaddr(top)从给定的top所指栈中取出相应的内存数据块地址reladdr(blk)

7、则将内存数据块地址blk放入堆栈S中。proceduregetaddr(top)beginlocalrr←(top)top←top-1return(r)endprocedurereladdr(blk)begintop←top+1(top)←blkend显然,如果getaddr和reladdr程序段进行顺序执行,其执行结果具有封闭性和可再现性。但如果对这两个程序段采用并发执行,则在单CPU系统中,将有可能出现下述情况:程序段reladdr开始执行,当reladdr执行到top←top+1语句时(如图3.1(b)),程序段getaddr也开始执行且抢占

8、了处理机。由于reladdr程序段的执行将指针top升高了一格且未放进适当的数据,getaddr的执行结果是失败的(如图3

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。