第三章-3-1操作系统_第1页
第三章-3-1操作系统_第2页
第三章-3-1操作系统_第3页
第三章-3-1操作系统_第4页
第三章-3-1操作系统_第5页
已阅读5页,还剩83页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章第三章 操作系统操作系统3.1 操作系统导论操作系统导论3.1.1 什么是操作系统什么是操作系统 所谓所谓就是能有效地管理计算机系统中的各就是能有效地管理计算机系统中的各种软、硬件资源,合理地组织计算机的工作流程,种软、硬件资源,合理地组织计算机的工作流程,为用户创造良好工作环境的系统软件。为用户创造良好工作环境的系统软件。设置操作系统的目的是:设置操作系统的目的是:1.1.有效地管理计算机的所有软、硬件资源,有效地管理计算机的所有软、硬件资源,使计算机能够高效率地工作;使计算机能够高效率地工作;2.2.方便用户使用。方便用户使用。操作系统操作系统是运行在硬件上的最基本是运行在硬件上的最

2、基本的系统软件。的系统软件。操作系统的形成操作系统的形成统多道程序系统和分时系、早期单道批处理系统、手工操作、操作系统的发展 3 2 1这工作方式有两个主要缺点:这工作方式有两个主要缺点: (1 1)计算机的全部资源()计算机的全部资源(CPUCPU、内存、内存、外部设备等)由一个用户独占。外部设备等)由一个用户独占。 (2 2)人工操作)人工操作 、CPUCPU和输入输出设备的和输入输出设备的工作串行进行。整个操作过程非常繁琐,工作串行进行。整个操作过程非常繁琐,计算机工作效率很低。计算机工作效率很低。(一)手工操作方式(一)手工操作方式凿有高级语言编写的纸带3.1.2 操作系统的分类操作系

3、统的分类1、批处理操作系统、批处理操作系统2、分时系统、分时系统3、实时系统、实时系统单道批处理系统单道批处理系统多道批处理系统多道批处理系统批处理操作系统批处理操作系统 把作业控制命令穿插在用户的把作业控制命令穿插在用户的源程序中,通过它们把上机操作步源程序中,通过它们把上机操作步骤和过程信息传递给系统。用户的骤和过程信息传递给系统。用户的作业成批输入到计算机系统中,由作业成批输入到计算机系统中,由监督程序(实际就是操作系统的前监督程序(实际就是操作系统的前身)逐个调入内存处理。身)逐个调入内存处理。工作特点:工作特点:用户一次可以提交多个作用户一次可以提交多个作业,但系统一次只处理一个作业

4、。处业,但系统一次只处理一个作业。处理完一个作业后,自动调入下一个作理完一个作业后,自动调入下一个作业进行处理。业进行处理。 减少人工干预,使计算机自动进行输减少人工干预,使计算机自动进行输入、编译和运行程序。入、编译和运行程序。比如,Fortran源程序的编译连接过程可用批处理来进行。单道批处理系统单道批处理系统 标识一个作业开始 调用装配程序 调FORTORAN编译程序 运行某个作业 标识某个作业的结束 功能 JOB LOAD FORTORAN RUN END 命令一些典型的作业控制命令 外设工作外设工作(CPU等待)等待) CPU工作工作 外设工作外设工作(CPU等待)等待)1ms2ms

5、输入一个数据输入一个数据处理数据处理数据输出数据输出数据数据完数据完结束结束YN2ms5ms输入输入CPU输出输出串行工作方式串行工作方式运行中的作业进行输运行中的作业进行输入输出操作时,处理入输出操作时,处理机处于空闲等待状态,机处于空闲等待状态,而输入输出操作速度而输入输出操作速度很慢。处理机利用率很慢。处理机利用率很低。很低。中断机构中断机构和和通道技术通道技术的出现,使的出现,使得得CPU与外设并行工作成为可能。与外设并行工作成为可能。控制信号控制信号数据数据设备设备1设备设备2设备设备3设备设备4设备设备8设备设备7设备设备5设备设备6通道通道1通道通道4通道通道2通道通道3CPU主

6、存主存通道:通道:用来控制外部设备与主存储器之间进行信息交换的部件用来控制外部设备与主存储器之间进行信息交换的部件CPU向通道发起动通道的命令。通道通知设备与主存传递数据,此时CPU也在进行其它计算工作(并行工作)。 当设备与主存传递数据结束后,通道向CPU发信号(中断),CPU停下计算工作,执行中断程序(中断处理程序比较简单)。 中断:中断: 中断是外界(如输入、输出设备,通道中断是外界(如输入、输出设备,通道等)向主机报告信息的一种通信方式,是等)向主机报告信息的一种通信方式,是CPU对系统中随机事件的响应对系统中随机事件的响应。1ms2ms2ms输入输入CPU输出输出使用中断和通道技术后

7、,实现外设与使用中断和通道技术后,实现外设与CPU并行工作示意图并行工作示意图data1data2数据存储区数据存储区data1data2data3data1data2data3data4data2data3data4data5data1data3处理上一个数据处理上一个数据data1data4继续处理上一个数据继续处理上一个数据data1data 5data2 当当CPU处理完上一个数据后,一方面启动输处理完上一个数据后,一方面启动输出设备输出结果,同时又启动输入设备进行操作,出设备输出结果,同时又启动输入设备进行操作,输入下一次要处理的数据,并且输入下一次要处理的数据,并且CPU也同时处理

8、也同时处理已输入并存储在计算机缓冲区中的数据。可以看已输入并存储在计算机缓冲区中的数据。可以看出,外设与出,外设与CPU的并行工作只需的并行工作只需2ms。 上述系统由于一次只执行一个作业,上述系统由于一次只执行一个作业,所以系统内包含的各种资源不能被充分所以系统内包含的各种资源不能被充分利用起来,解决的办法是让多道程序同利用起来,解决的办法是让多道程序同时进入内存中时进入内存中多道批处理系统多道批处理系统。多道批处理系统示意图多道批处理系统示意图打印机打印机作业作业2作业作业1 OS作业作业3作业作业2作业作业1结果结果3结果结果2结果结果1用户作业用户作业CPU用户用户提交提交图图-21后

9、备作业后备作业磁盘输入井磁盘输入井磁盘输出井磁盘输出井处理结果处理结果成批成批3. 多道批处理系统和分时系统多道批处理系统和分时系统 (如图-21,图-22) 多道批处理:多道批处理: 把内存分成若干部分,把属于同一批的若干个作业调入把内存分成若干部分,把属于同一批的若干个作业调入内存,存放在内存的不同部分。当一个作业由于等待输入输内存,存放在内存的不同部分。当一个作业由于等待输入输出操作而使处理机出现空闲时,系统自动进行切换,处理下出操作而使处理机出现空闲时,系统自动进行切换,处理下一个作业。如果内存空间允许,可大大提高一个作业。如果内存空间允许,可大大提高CPU的利用率。的利用率。作业2作

10、业1 OS作业3作业2作业1结果3结果2结果1用户作业CPU打印机用户多道批处理系统示意图多道批处理系统示意图提交系统后备作业磁盘输入磁盘输出处理结果成批批处理系统的作业以批量方式进行,用户不能进行任何干预。批处理系统的作业以批量方式进行,用户不能进行任何干预。输输 入入计计 算算 计计 算算计计 算算打打 印印 计计 算算打打 印印A(优先级高)优先级高)CA1A2B1B2B3C1C2多多 道道 程程 序序 并并 行行 运运 行行 示示 意意 图图B1 C1 打打 印印OSB2OSB3 打打 印印 A2 CPUOSCPUC2CPUCPUCPUCPUCPUBA1 输输 入入程序程序A的优先级最

11、高,的优先级最高,C是最低,采用剥夺是最低,采用剥夺式的优先调度算法。式的优先调度算法。A 程序程序B 程序程序C 程序程序操作系统操作系统A 输入请求输入请求B打印请求打印请求A输入结束输入结束B打印结束打印结束A结束结束B结束结束T0T1T2T3T4T5T6本图主要说明多道程序平行本图主要说明多道程序平行运行如何进行运行如何进行CPU管理,管理, 因为因为A、B、C、OS都想抢都想抢占占CPU。通过分析多道程序设计工作原理来引出通过分析多道程序设计工作原理来引出操作系统的功能:多道程序设计的主要操作系统的功能:多道程序设计的主要思想是允许多个程序进入内存中,共享思想是允许多个程序进入内存中

12、,共享处理机和其他外部资源,同时处于运行处理机和其他外部资源,同时处于运行状态。状态。 脱机技术脱机技术脱机技术的实质脱机技术的实质:卫星机与主机并行工作,使主机:卫星机与主机并行工作,使主机摆脱了慢速的输入、输出操作,即用快速的输入、摆脱了慢速的输入、输出操作,即用快速的输入、输出设备(磁带)代替低速设备,减少了输入、输输出设备(磁带)代替低速设备,减少了输入、输出操作对系统的影响,缓解了外设与主机运行速度出操作对系统的影响,缓解了外设与主机运行速度不匹配的矛盾。不匹配的矛盾。 输入设备输出设备卫星机主机输入带输出带在多道批处理系统,用户无法干在多道批处理系统,用户无法干预自己程序的运行,缺

13、乏参与感,预自己程序的运行,缺乏参与感,于是于是分时系统分时系统应运而生。应运而生。 CPU终端终端1终端终端2终端终端3终端终端4分时系统工作示意图分时系统工作示意图终端终端1分时系统的特点分时系统的特点同时性同时性: 多个用户终端通过多路卡连接到一台主机。多个用户终端通过多路卡连接到一台主机。独立性:独立性: 每个用户通过一台终端使用系统,彼此独立操作。每个用户通过一台终端使用系统,彼此独立操作。及时性:及时性:终端用户的请求很快可获得响应。终端用户的请求很快可获得响应。交互性:交互性:用户可通过键盘输入命令。用户可通过键盘输入命令。实时系统实时系统1、实时过程控制系统、实时过程控制系统2

14、、实时信息处理系统、实时信息处理系统多道程序设计提高了计算机资源的利用多道程序设计提高了计算机资源的利用率。但是,随之也带来一些问题:率。但是,随之也带来一些问题:例如:多道程序同时运行,处理机如何例如:多道程序同时运行,处理机如何调度?多道程序同时放在内存中,内存调度?多道程序同时放在内存中,内存如何分配管理?多道程序争夺如何分配管理?多道程序争夺I/O设备,设备,I/O设备如何分配?多道程序共享系统资设备如何分配?多道程序共享系统资源,如何有效地管理这些资源,使得计源,如何有效地管理这些资源,使得计算机能够高效率的工作,这种重要的管算机能够高效率的工作,这种重要的管理任务就是由操作系统来担

15、当,那么操理任务就是由操作系统来担当,那么操作系统的功能是什么?作系统的功能是什么?3.1.3 操作系统的功能操作系统的功能1、处理机管理、处理机管理2、存储管理、存储管理3、设备管理、设备管理4、文件管理、文件管理1.处理机管理处理机管理 对处理机的分配、调度实施最有效的管对处理机的分配、调度实施最有效的管理,以最大限度地提高处理机的处理能力。理,以最大限度地提高处理机的处理能力。2.存储器管理存储器管理 为每个进程分配内存。当进程被撤销时为每个进程分配内存。当进程被撤销时回收分配出去的内存。回收分配出去的内存。3.设备管理设备管理 计算机系统的输入、输出设备繁多。设备管计算机系统的输入、输

16、出设备繁多。设备管理的主要任务是:理的主要任务是:根据一定的的分配原则对设备进行分配、调度根据一定的的分配原则对设备进行分配、调度为用户使用为用户使用I/O设备提供方便、易用、高效的操设备提供方便、易用、高效的操作界面。作界面。4.文件管理文件管理 计算机中的所有信息计算机中的所有信息(可执行程序、文档、可执行程序、文档、数据等数据等)都是以文件的形式保存在外部存储介都是以文件的形式保存在外部存储介质上。操作系统提供一套高效、方便、易用的质上。操作系统提供一套高效、方便、易用的信息管理机制,称之为文件系统。其主要任务信息管理机制,称之为文件系统。其主要任务是:是:数据存储空间的分配、回收,文件

17、的读写、数据存储空间的分配、回收,文件的读写、查找查找为用户提供方便、易用、高效的服务接口,为用户提供方便、易用、高效的服务接口,如文件的打开、关闭、读写以及文件的删除如文件的打开、关闭、读写以及文件的删除等。等。3.1.4 操作系统的特征操作系统的特征1、并发性、并发性2、共享性、共享性 (1)互斥共享)互斥共享 (2)同时访问)同时访问3、虚拟、虚拟2、共享性、共享性 计算机系统中的硬件资源和软件资源为计算机系统中的硬件资源和软件资源为各用户所共同使用。各用户所共同使用。 (1)互斥共享)互斥共享 (2)同时访问)同时访问1、并发性、并发性再多任务操作系统中,再多任务操作系统中,“并发并发

18、”是指宏观上是指宏观上在一段时间内多个进程在一段时间内多个进程“同时同时”运行。运行。3、虚拟性、虚拟性 把一个物理实体,通过适当方法,变成把一个物理实体,通过适当方法,变成为若干个逻辑上的对应物。为若干个逻辑上的对应物。 物理实体是实际存在的,而逻辑实体是物理实体是实际存在的,而逻辑实体是“虚拟虚拟”的,是人的一种看法和感觉。的,是人的一种看法和感觉。3.2 典型操作系统简介典型操作系统简介DOSWindows 3.x ,Windows95 , Windows 98,Windows 2000,Windows xpUNIX: IBM-AIX SUN-SunOP HP-HP-UX COMPAQ-

19、digetal unix SCO-UNIXWAREOpen ServerLINUX:免费的类:免费的类UNIX的操作系统,公开源代码,内核小,硬的操作系统,公开源代码,内核小,硬件要求低,稳定可靠。件要求低,稳定可靠。程序程序A 计算计算 输出输出 输入输入 输出输出 程序程序B 单道作业环境中程序顺序执行示意图单道作业环境中程序顺序执行示意图1、进程概念的引入、进程概念的引入输入输入计算计算 3.3 进程与处理机管理进程与处理机管理3.3.1 进程的概念及定义进程的概念及定义输输 入入计计 算算 计计 算算计计 算算打打 印印 计计 算算打打 印印A(优先级高)优先级高)CA1A2B1B2B

20、3C1C2多多 道道 程程 序序 并并 行行 运运 行行 示示 意意 图图A1 输输 入入B1 C1 打打 印印OSB2OSB3 打打 印印 A2 CPUOSCPUC2CPUCPUCPUCPUCPUB 进程进程是一种活动,它由一个动作系列组成,每个动作是在某个是一种活动,它由一个动作系列组成,每个动作是在某个数据集上执行一段程序,整个活动的结果是提供一种系统或用户数据集上执行一段程序,整个活动的结果是提供一种系统或用户功能。功能。调调C调调CBAC3、进程与程序的区别、进程与程序的区别 (1) 进程是动态概念,程序是静止概念。进程是动态概念,程序是静止概念。 (2) 进程的存在是暂时的,程序的

21、存在是永久的。进程的存在是暂时的,程序的存在是永久的。 (3) 一个程序对应多个进程,而一个进程仅对应一个程序。一个程序对应多个进程,而一个进程仅对应一个程序。2、进程的定义、进程的定义(4) 进程在结构上是由程序、数据集、进程控制块(进程在结构上是由程序、数据集、进程控制块(PCB)三)三部分组成的。部分组成的。 PCB程程序序数数据据(4)异步性)异步性4、进程的特征、进程的特征(1)动态性)动态性程序运行时程序运行时,始终处于停停走走的状态。始终处于停停走走的状态。(2)并发性)并发性时间上重叠;时间上重叠;内存中的程序交替占用内存中的程序交替占用CPU(3)独立性)独立性进程一个一个占

22、用进程一个一个占用CPU进程按各自独立的、不可预知的速度向前推进。进程按各自独立的、不可预知的速度向前推进。 1、进程的状态及其变化、进程的状态及其变化就绪就绪阻塞阻塞运行运行等待事件等待事件事件发生事件发生时间片完时间片完进程调度进程调度3.3.2 进程状态及进程控制块进程状态及进程控制块 2、进程控制块、进程控制块PCB程程序序数数据据进程名进程名进程起始地址进程起始地址现行状态现行状态CPU状态保护区状态保护区进程专用资源信息进程专用资源信息 3、进程控制块(、进程控制块(PCB)的组织形式)的组织形式 就绪就绪队列队列首地址首地址阻塞阻塞队列队列首地址首地址PCB1PCB2PCB3PC

23、B4PCB5PCB6 1、进程控制(管理)任务、进程控制(管理)任务 (1) 进程的建立进程的建立 (2) 进程的撤消进程的撤消 (3) 进程的阻塞进程的阻塞 (4) 进程的唤醒进程的唤醒 3.3.3 进程控制进程控制2、进程控制原语、进程控制原语 (1)创建原语)创建原语 (2)挂起(阻塞)原语)挂起(阻塞)原语 (3)唤醒原语)唤醒原语 (4)撤消原语)撤消原语3.3.4 进程调度进程调度 1、进程调度任务、进程调度任务 2、进程调度方式、进程调度方式 (1) 剥夺方式剥夺方式 (2)非剥夺方式)非剥夺方式 3、调度算法、调度算法 (1)优先级调度策略)优先级调度策略 A、静态优先数法、静

24、态优先数法 B、动态优先数法、动态优先数法 (2) 时间片轮转法时间片轮转法 (3)多重时间片轮转法)多重时间片轮转法 如图解所示如图解所示一级一级轮转队列轮转队列 时间片时间片 0.02秒秒二级二级轮转队列轮转队列 时间片时间片 0.2秒秒三级三级轮转队列轮转队列 时间片时间片 2秒秒进程进程1进程进程2进程进程3进程进程2进程进程3进程进程4进程进程5进程进程2进程进程3进程进程5结束结束结束结束程序程序XIO260msCPU20msIO130msCPU10msIO140msCPU20msIO120ms程序程序YIO130msCPU40msIO270msCPU30msIO230ms程序程序

25、ZCPU40msIO160msCPU30msIO270ms时间时间(ms)CPU IO50100150200250300160170180190110120130306080 90220210230240CPUIO1IO250100150200250160170180110120130220210230240ZYXY ZXYZXZXXZXYXYYZIO270msCPU30msIO160msCPU40ms程序程序ZIO230msCPU30msIO270msCPU40msIO130ms程序程序YIO120msCPU20msIO140msCPU10msIO130msCPU20msIO260ms程序程

26、序X时间时间(ms)CPU IO50100150200250300160170180190110120130306080 90220210230240CPUIO1IO250100150200250160170180110120130220210230240YXZIO270msCPU30msIO160msCPU40ms程序程序ZIO230msCPU30msIO270msCPU40msIO130ms程序程序YIO120msCPU20msIO140msCPU10msIO130msCPU20msIO260ms程序程序X时间时间(ms)CPU IO5010015020025030016017018019

27、0110120130306080 90220210230240CPUIO1IO250100150200250160170180110120130220210230240ZYXZ剩剩10msYIO270msCPU30msIO160msCPU40ms程序程序ZIO230msCPU30msIO270msCPU40msIO130ms程序程序YIO120msCPU20msIO140msCPU10msIO130msCPU20msIO260ms程序程序X时间时间(ms)CPU IO50100150200250300160170180190110120130306080 90220210230240CPUIO

28、1IO250100150200250160170180110120130220210230240ZYXYXZ剩剩10ms, Y剩剩10msIO270msCPU30msIO160msCPU40ms程序程序ZIO230msCPU30msIO270msCPU40msIO130ms程序程序YIO120msCPU20msIO140msCPU10msIO130msCPU20msIO260ms程序程序X时间时间(ms)CPU IO50100150200250300160170180190110120130306080 90220210230240CPUIO1IO25010015020025016017018

29、0110120130220210230240ZYXYXYXZ剩剩10msIO270msCPU30msIO160msCPU40ms程序程序ZIO230msCPU30msIO270msCPU40msIO130ms程序程序YIO120msCPU20msIO140msCPU10msIO130msCPU20msIO260ms程序程序X时间时间(ms)CPU IO50100150200250300160170180190110120130306080 90220210230240CPUIO1IO250100150200250160170180110120130220210230240ZYXY ZXYZZX

30、YXYYX被被IO1堵塞堵塞IO270msCPU30msIO160msCPU40ms程序程序ZIO230msCPU30msIO270msCPU40msIO130ms程序程序YIO120msCPU20msIO140msCPU10msIO130msCPU20msIO260ms程序程序X时间时间(ms)CPU IO50100150200250300160170180190110120130306080 90220210230240CPUIO1IO250100150200250160170180110120130220210230240ZYXY ZXYXZXYXYYZIO270msCPU30msIO1

31、60msCPU40ms程序程序ZIO230msCPU30msIO270msCPU40msIO130ms程序程序YIO120msCPU20msIO140msCPU10msIO130msCPU20msIO260ms程序程序X时间时间(ms)CPU IO50100150200250300160170180190110120130306080 90220210230240CPUIO1IO250100150200250160170180110120130220210230240ZYXY ZXYZXXZXYXYYz剩剩10msIO270msCPU30msIO160msCPU40ms程序程序ZIO230ms

32、CPU30msIO270msCPU40msIO130ms程序程序YIO120msCPU20msIO140msCPU10msIO130msCPU20msIO260ms程序程序X时间时间(ms)CPU IO50100150200250300160170180190110120130306080 90220210230240CPUIO1IO250100150200250160170180110120130220210230240ZYXY ZXYZXZXXZXYXYYZ上例分析计算结果上例分析计算结果 最早结束是最早结束是Y , 最后结束是最后结束是Z ; X , Y , Z 三程序到结束所用时间分别

33、为三程序到结束所用时间分别为250ms 、220ms 、310ms ; CPU 的利用率为:的利用率为: 单道处理时单道处理时CPU的利用率:的利用率:%31600190600707050总运行时间工作的时间CPU%61310190310707050总运行时间工作的时间CPU多道处理时多道处理时CPU的利用率:的利用率:多道程序设计的优点:多道程序设计的优点: 提高了系统的吞吐量;提高了系统的吞吐量; 提高了提高了CPU的利用率;的利用率; 提高了设备的利用率。提高了设备的利用率。上例分析计算结果上例分析计算结果 最早结束是最早结束是Y , 最后结束是最后结束是Z ; X , Y , Z 三程

34、序到结束所用时间分别为三程序到结束所用时间分别为250ms 、220ms 、310ms ; CPU 的利用率为:的利用率为:%61310190310707050总运行时间工作的时间CPU 1、同步与互斥的概念、同步与互斥的概念 3.3.5 进程的同步与互斥进程的同步与互斥同同 步步: 请看两个例子请看两个例子互互 斥:斥:请看两个例子请看两个例子 临界资源:临界资源:一次仅允许一个进程使用的资源。一次仅允许一个进程使用的资源。临界区:临界区:进程中使用临界资源的那段程序。进程中使用临界资源的那段程序。例例 1电子邮件信箱电子邮件信箱发送进程发送进程 A接收进程接收进程 B当信箱满时,发送进程只

35、有等待接收进程取走信件,当信箱满时,发送进程只有等待接收进程取走信件,当信箱空时,接收进程必须等待发送进程发送信件。当信箱空时,接收进程必须等待发送进程发送信件。12n例例 2:X = fun1(y)*fun2(Z)计算计算fun1(y)进程进程p2算完算完fun2(Z)?取用取用P2计算结果计算结果计算计算fun2(Z)设置计算完成标志设置计算完成标志终终 止止YN进程进程P1进程进程P2 两个协同工作进程的同步两个协同工作进程的同步例例 1:公共地段交通十字路口的控制:公共地段互斥交通十字路口的控制:公共地段互斥例例 2X=COUNTX=X+1 COUNT=XY=COUNTY=Y+1 CO

36、UNT=Y临界区临界区临界区临界区进进 程程 A进进 程程 B 进程进程A与与B对公共变量对公共变量COUNT进行互斥操作,最终实现进行互斥操作,最终实现COUNT增增加加2。若。若A与与B接下面顺序推进,结果接下面顺序推进,结果COUNT只实现增加只实现增加1。A: X=COUNT; A: X=X+1; COUNT=X;B: Y=COUNT; B: Y=Y+1; COUNT=Y;1、进程的同步与互斥的实现方法、进程的同步与互斥的实现方法 利用利用P原语和原语和V原语对信号量进行操作可实原语对信号量进行操作可实现进程的同步与互斥。现进程的同步与互斥。 根据信号量的用途不同,信号量分为公用根据信

37、号量的用途不同,信号量分为公用信号量和私用信号量两类:信号量和私用信号量两类:1.公用信号量公用信号量:每个进程均可对他施加:每个进程均可对他施加P操作操作和和V操作的信号量。初值为操作的信号量。初值为1。通常作为。通常作为互斥互斥信号量。信号量。2.私用信号量私用信号量:允许一个进程对他施加:允许一个进程对他施加P操作,操作,其它进程只能对他进行其它进程只能对他进行V操作的信号量。初值操作的信号量。初值为为0或某个正整数或某个正整数n。通常作为。通常作为同步同步信号量。信号量。P原语操作过程:原语操作过程: P操作记为操作记为 P(S),其中,其中S为一信号量,其执行顺序完成以下两为一信号量

38、,其执行顺序完成以下两个动作:个动作:(1) S=S 1,表示申请使用一个资源;,表示申请使用一个资源;(2) 若若S 0,表示系统中有资源可用,现进程可继续执行。表示系统中有资源可用,现进程可继续执行。(3) 若若S 0,表示系统中没有可用资源,则置该进程阻塞状表示系统中没有可用资源,则置该进程阻塞状 态,到态,到S信号量信号量 的队列中去等待,直到其他进程在的队列中去等待,直到其他进程在S上执上执 行行V操作释放它为止。操作释放它为止。 在信号量数据结构之上定义了两个原语,在信号量数据结构之上定义了两个原语,他们是他们是P原语和原语和V原语。原语。 V操作记为操作记为 V(S),其中其中S

39、为一信号量,其执行顺序完成以下为一信号量,其执行顺序完成以下两个动作:两个动作:(1) S=S+1,表示释放一个资源;,表示释放一个资源;(2) 若若S 0,表示系统中没有等待该资源的进程,现进程表示系统中没有等待该资源的进程,现进程 可继续执行。可继续执行。 (3) 若若S 0,表示系统中有等待该资源的进程,则唤醒表示系统中有等待该资源的进程,则唤醒S信信 号量队列中的第一个进程,使其插入到就绪队列,继号量队列中的第一个进程,使其插入到就绪队列,继 续执行现进程。续执行现进程。 V原语操作过程:原语操作过程:同步条件同步条件 进程进程A进程进程BS=0C: P(S)V(S)同步点同步点(1)

40、实现进程同步)实现进程同步3、P-V操作的应用操作的应用查询进程查询进程S把查询结把查询结果写到缓果写到缓冲区冲区V(S1)P(S2 )打印进程打印进程PP(S1) 把缓冲区内把缓冲区内容打印输出容打印输出V(S2)S1:表示缓冲区中是否已有可供打印的查询结果,初值为表示缓冲区中是否已有可供打印的查询结果,初值为S1=0S2:表示缓冲区中的查询结果是否已被打印进程取走,初值为表示缓冲区中的查询结果是否已被打印进程取走,初值为S1= 0 进程进程A的的临界区临界区进程进程B的的临界区临界区P(S)P(S)进程进程A进程进程B初值初值S=1V(S)V(S)(2)实现进程互斥)实现进程互斥Y=COU

41、NTY=Y+1COUNT=Y临界区临界区V(S)P(S)进程进程BX=COUNTX=X+1COUNT=X临界区临界区V(S)P(S)进程进程AS=1(3)实现进程同步与互斥)实现进程同步与互斥生产者与消费者问题生产者与消费者问题 生产者与消费者问题是最著名的进程同步与互斥生产者与消费者问题是最著名的进程同步与互斥问题。他描述了一组生产者向一组消费者提供消息,问题。他描述了一组生产者向一组消费者提供消息,他们共享一个有界缓冲池,生产者向其中投放消息,他们共享一个有界缓冲池,生产者向其中投放消息,消费者从中取得消息。消费者从中取得消息。 生产者与消费者问题是许多相互合作进程的一种生产者与消费者问题

42、是许多相互合作进程的一种抽象。例如,抽象。例如,在输入时,输入进程是生产者,计算进在输入时,输入进程是生产者,计算进程是消费者。程是消费者。在输出时,计算进程是生产者,打印进在输出时,计算进程是生产者,打印进程是消费者程是消费者。1 2 3NP1P2P3PmC1C2C3Cn有有 界界 缓缓 冲冲 池池生生产产者者消消费费者者同步问题:同步问题:1.只要缓冲池未满,生产者便可将消息送入缓冲池,只要缓冲池未满,生产者便可将消息送入缓冲池,否则等待。否则等待。2.只要缓冲池未空,消费者便可从缓冲池中取走一个只要缓冲池未空,消费者便可从缓冲池中取走一个消息,否则等待。消息,否则等待。互斥问题:互斥问题

43、:1.生产者与生产者之间、消费者与消费者之间互斥访生产者与生产者之间、消费者与消费者之间互斥访问缓冲池。问缓冲池。2.生产者和消费者之间互斥访问缓冲池。生产者和消费者之间互斥访问缓冲池。生产者与消费者之间的同步与互斥问题生产者与消费者之间的同步与互斥问题 公用信号量公用信号量S:初值为:初值为1,表示没有进程进入临界区。,表示没有进程进入临界区。 私用信号量私用信号量S0:初值为:初值为0,表示产品数目。,表示产品数目。 私用信号量私用信号量Sn:初值为:初值为n,表示缓冲区中空位置个数,表示缓冲区中空位置个数。 为实现生产者与消费者的同步与互斥,设两个为实现生产者与消费者的同步与互斥,设两个

44、私用信号量和一个公用信号量:私用信号量和一个公用信号量:同步互斥算法:同步互斥算法:生产者进程生产者进程P1P(Sn)P(S)缓冲区缓冲区 产品产品V(S0)V(S)消费者进程消费者进程C1P(S0)P(S)取产品取产品V(Sn)V(S)公用信号量公用信号量S=1,互斥信号量。,互斥信号量。 私用信号量私用信号量S0=0,表示产品数目。,表示产品数目。 私用信号量私用信号量Sn=n,表示缓冲区中空位置个数,表示缓冲区中空位置个数采用时间采用时间片轮转法:片轮转法:Sn=nt=0S0=0S=1同步互斥算法:同步互斥算法:生产者进程生产者进程P1P(Sn)P(S)缓冲区缓冲区 产品产品V(S0)V

45、(S)消费者进程消费者进程C1P(S0)P(S)取产品取产品V(Sn)V(S)公用信号量公用信号量S=1,互斥信号量。,互斥信号量。 私用信号量私用信号量S0=0,表示产品数目。,表示产品数目。 私用信号量私用信号量Sn=n,表示缓冲区中空位置个数,表示缓冲区中空位置个数采用时间采用时间片轮转法:片轮转法:Sn=n-1t=1S0=0S=1同步互斥算法:同步互斥算法:生产者进程生产者进程P1P(Sn)P(S)缓冲区缓冲区 产品产品V(S0)V(S)消费者进程消费者进程C1P(S0)P(S)取产品取产品V(Sn)V(S)公用信号量公用信号量S=1,互斥信号量。,互斥信号量。 私用信号量私用信号量S

46、0=0,表示产品数目。,表示产品数目。 私用信号量私用信号量Sn=n,表示缓冲区中空位置个数,表示缓冲区中空位置个数采用时间采用时间片轮转法:片轮转法:Sn=n-1t=2S0=-1S=1阻塞阻塞同步互斥算法:同步互斥算法:生产者进程生产者进程P1P(Sn)P(S)缓冲区缓冲区 产品产品V(S0)V(S)消费者进程消费者进程C1P(S0)P(S)取产品取产品V(Sn)V(S)公用信号量公用信号量S=1,互斥信号量。,互斥信号量。 私用信号量私用信号量S0=0,表示产品数目。,表示产品数目。 私用信号量私用信号量Sn=n,表示缓冲区中空位置个数,表示缓冲区中空位置个数采用时间采用时间片轮转法:片轮

47、转法:Sn=n-1t=3S0=-1S=0阻塞阻塞同步互斥算法:同步互斥算法:生产者进程生产者进程P1P(Sn)P(S)缓冲区缓冲区 产品产品V(S0)V(S)消费者进程消费者进程C1P(S0)P(S)取产品取产品V(Sn)V(S)公用信号量公用信号量S=1,互斥信号量。,互斥信号量。 私用信号量私用信号量S0=0,表示产品数目。,表示产品数目。 私用信号量私用信号量Sn=n,表示缓冲区中空位置个数,表示缓冲区中空位置个数采用时间采用时间片轮转法:片轮转法:Sn=n-1t=4S0=0S=0阻塞阻塞同步互斥算法:同步互斥算法:生产者进程生产者进程P1P(Sn)P(S)缓冲区缓冲区 产品产品V(S0

48、)V(S)消费者进程消费者进程C1P(S0)P(S)取产品取产品V(Sn)V(S)公用信号量公用信号量S=1,互斥信号量。,互斥信号量。 私用信号量私用信号量S0=0,表示产品数目。,表示产品数目。 私用信号量私用信号量Sn=n,表示缓冲区中空位置个数,表示缓冲区中空位置个数采用时间采用时间片轮转法:片轮转法:Sn=n-1t=5S0=0S=-1阻塞阻塞同步互斥算法:同步互斥算法:生产者进程生产者进程P1P(Sn)P(S)缓冲区缓冲区 产品产品V(S0)V(S)消费者进程消费者进程C1P(S0)P(S)取产品取产品V(Sn)V(S)公用信号量公用信号量S=1,互斥信号量。,互斥信号量。 私用信号量私用信号量S0=0,表示产品数目。,表示产品数目。 私用信号量私用信号量Sn=n,表示缓冲区中空位置个数,表示缓冲区中空位置个数采用时间采用时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论