欢迎来到天天文库
浏览记录
ID:40246269
大小:2.12 MB
页数:374页
时间:2019-07-29
《操作系统原理及应用(Windows Server 2003) 王红 OS02进程概念》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2.1进程的引入2.2进程和线程的描述2.3进程控制2.4进程调度2.5死锁2.6进程同步、互斥与通信2.7WindowsServer2003进程的相关概念2.8WindowsServer2003的线程调度2.9中断和异常处理2.10WindowsServer2003的同步与互斥机制2.11进程通信——本地过程调用(LPC)第2章进程管理2021/7/161计算机系统中,最宝贵的资源是CPU。为了提高它的利用率,需要引入多道程序设计的概念。当内存储器中同时有多个程序存在时,如果不对人们熟悉的“程序”概念加以扩充,就无法刻画多个程
2、序共同运行时系统呈现出的特征。因此,在本章将给出操作系统中的重要概念:“进程”。它将是在多道程序运行环境下,系统资源分配和独立运行的基本单位。2021/7/1622.1进程的引入2.1.1前趋图2.1.2程序的顺序执行2.1.3并发执行2021/7/1632.1.1前趋图概念:前趋图是一个有向无循环图。要求每个结点可用于表示一条语句、一个程序段等结点间的有向边表示在两个结点之间存在的前趋关系->={(Pi,Pj)
3、Pi必须在Pj开始之前完成}用途:表示程序的执行顺序例如:图2-1所示:(a)示前趋图,(b)不是前趋图2021/7
4、/164前趋图1234567213初始结点(b)终止结点(a)2021/7/1652.1.2程序的顺序执行程序的顺序执行如图在计算机系统中只有一个程序在运行,这个程序独占系统中所有资源,其执行不受外界影响。一道程序执行完后另一道才能开始。2021/7/166程序的顺序执行在早期的单道程序系统中,编制一个程序时,通常是按顺序进行设计:先安排输入语句,然后是对输入数据进行处理的语句,最后安排数据处理结果的输出语句。这就是人们所习惯的传统的顺序程序设计方法。程序在执行时也是按顺序依次执行各条语句,而不必考虑其他的用户程序。我们看下面三
5、条语句的程序段:S1:x=a+b;S2:y=x+c;S3:z=y+d;在上面三条语句中,S1、S2、S3必须按顺序依次执行,S2必须在x赋值后才能执行,S3必须在y赋值后才能执行。2021/7/167程序顺序执行的特点顺序性:一个程序开始执行必须要等到前一个程序已执行完成。绝对不可能出现在一个程序运行过程中,又夹杂进另一个程序执行的现象存在。如图所示。假定有三个程序,每个程序都是前后占用CPU执行一段时间,中间要求打印输出。具体是:程序A所需时间为(4,2,3),程序B所需时间为(5,4,2),程序C所需时间为(3,3,4)。不
6、难看出,总共需要30个时间单位,才能把它们执行完毕。从横坐标上看,在时间区间(4~6)、(14~18)以及(23~26)中,CPU为了等待打印结束,在那里空闲等待。2021/7/168程序顺序执行的特点封闭性:程序一旦开始执行,其计算结果不受外界因素影响。任何时候,位于内存中的程序可以使用系统中的一切资源,不可能有其他程序与之竞争。2021/7/169程序顺序执行的特点可再现性:程序的结果与它的执行速度无关(即与时间无关),只要执行环境和初始条件相同,当多次重复执行一个程序时,无论不停的执行还是“走走停停”,一定会得到相同的结果
7、。2021/7/16102021/7/16112.1.3程序的并发执行所谓程序的并发执行是指:若干个程序同时在系统中执行,这些程序的执行在时间上是重叠的,一个程序的执行尚未结束,另一个程序的执行已经开始。并发与并行概念的区别?Concurrency,parallel2021/7/1612多道程序系统使处理机和外部设备,外部设备与外部设备之间可以并行工作,提高了系统资源的利用率和系统的吞吐量:从上图(b)中可以看出,时刻6程序A打印完毕,按说应该继续执行,但是CPU已经分配给了程序B,因此程序A只能等到时刻9在程序B请求打印时,才
8、能重新获得CPU。这就是说,在程序A执行过程时,夹杂进了程序B的执行,打破了程序执行的顺序性,内存中多个程序的执行过程被交织在一起。从宏观上看,好几个程序都在运行着(比如,在时间区间4~12,程序A和程序B都在做着自己的事情;在时间区间(4~6)、(9~13)以及(15~17)中CPU和I/O设备都在并行工作。2021/7/1613我们来看一个例子:内存中同时驻留两个用户程序J1和J2,并假定J1占用CPU的优先级比J2高。它们在运行过程中需要用到设备D1和D2。在操作系统调度下,多道程序的运行情况如图2-5所示。J1需要先使用
9、设备D1,J2从A时间点使用设备D2,J1在B点使用完D1后占用CPU运行,J2使用完D2后,准备使用CPU,但此时CPU被J1占用,J2优先级低于J1,因此等待系统调度,J1运行到D点要求使用设备D2,操作系统将J1撤下,将等待的J2投入CPU运行,J2运行到
此文档下载收益归作者所有