操作系统原理(ch3).ppt_第1页
操作系统原理(ch3).ppt_第2页
操作系统原理(ch3).ppt_第3页
操作系统原理(ch3).ppt_第4页
操作系统原理(ch3).ppt_第5页
已阅读5页,还剩189页未读 继续免费阅读

下载本文档

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

文档简介

10.06.2020,1,操作系统原理,电子邮件: DH张 2011年3月7日,云南大学软件学院,10.06.2020, 2、第三章进程管理,3.1进程概念3.2进程描述3.3进程状态及其转换3.4进程控制3.5进程互斥3.6进程同步3.7进程通信3.8死锁问题3.9线程10.06.2020,3,3.1进程概念, 现代操作系统特征:程序并发系统资源共享用户操作的随机性,10.06.2020、4、3.1进程的概念,问题:在操作系统多用户随机使用的环境中同时执行资源分配、资源共享和控制程序过程正好是这样的基本单位,10.06.2020、5、3.1.1程序同时运行、程序运行有两种方式。 顺序执行是单片机系统的执行方式,在简单的单片机系统中也使用的repeat IRm PC PCPC1untilcpuhalt现在的操作系统同时执行很多,具有很多新的特征。 实施并发的目的是提高资源利用率。 10.06.2020,6,6,顺序执行的特征顺序:按程序结构中指定的顺序(可能存在分支或循环)封闭性:独占所有资源,计算机的状态仅由该程序的控制逻辑决定再现性,初始条件相同例如,可以用空指令控制时间关系。 3.1.1程序同时运行,10.06.2020,7,7,多程序运行环境的特征:独立性:多环境下运行的程序在逻辑上独立的随机性:多环境下,程序和数据输入和运行的开始时间是随机的资源共享: 硬件资源包括CPU、I/O设备、内存等软件资源,包括例行程序、可共享的数据等。 3.1.1程序同时执行,10.06.2020、8、3.1.1程序同时执行,程序同时执行:在逻辑上相互独立的一系列程序或程序段正在执行中,其执行时间客观上相互重叠、10.06.2020,9、9、9、程序同时执行的描述cobeginP1; P2; P3; PNcoend; pi (I=1,2,3,n )表示n个语句(段),n个语句用cobegin和coend包围,表示n个语句可以同时执行。 co是concurrent的前两个字符。 这是Dijkstra提出的。 假设有3.1.1程序同时执行,10.06.2020、10、S0-Sn 1文件。 其中S1-Sn语句同时执行。 程序如下: S0; cobeginS1; S2; S3; SNcoend; Sn 1; 3.1.1同时运行程序,10.06.2020,11,同时运行带来的问题:间歇性(异步)“散步停止”,一个程序中途停止,可能失去原来的时间序列关系,失去封闭性:共享资源,其他程序的控制逻辑的影响例如,一个程序被写入存储器的数据,被另一程序修改,原始不变的特征有可能被丢失。 失去再现性:失去封闭性-失去再现性的外界环境在程序的2次执行之间变化,失去了本来的可再现的特征。 3.1.1同时执行程序、对程序P(i )共享变量的读取设置、写入设置R(i )和W(i )的条件:任意两个程序P(i )和P(j )为R(i)W(j)=; W(i)R(j)=; W(i)W(j)=; 同时执行的条件:达到封闭性和再现性,同时执行失去封闭性的原因是共享资源的影响,消除这一影响即可。 1966年,Bernstein给出了同时执行的条件。 (此处没有考虑执行速度的影响。 )前两项保证数据在一个程序的两次读取之间不会变化。最后的约定书的结果不会丢弃。 现在的问题是这个条件很难检查。 示例:同时执行堆栈读取和写入段,procduregetaddr (top ) beginlocalrr(top ) toptop-1 return (r ) end,procdurereladdr (blk ) beg 写入可能同时发生错误:Top,(a) Top,(b ),(Reladdr ()执行语句: toptop 1后),Top,(geladdr ()数据获取失败,10.06.2020,15,3.1.2进程的定义,多个进程流程概念来自麻省理工大学的MULTICS、IBM的TSS/360,在IBM的OS/360/370系统中也被称为任务(task )。 此外,10.06.2020,16 .程序,过程是可并行执行的计算部分(Madnick,Donovan )进程在独立的可调度活动(Cohen,Jofferson )进程(有时也称为任务)中(Alan.C.Shaw )进程是正在执行的程序。 (KenThompsonandDennisRitchie )行为的规则之一被称为程序,在处理器上执行程序时发生的活动被称为过程(Dijkstra )。 教材上给出的程序的定义:程序是指为了将某个数据收集到处理机中,分配具有独立功能的程序的执行过程和资源的基本单位。3.1.2流程的定义、10.06.2020、17、流程和程序的差异、流程是动态的、程序是静态的:程序是秩序代码的集合的流程是程序的执行。 程序可以作为软件资料长期保存,过程有一个生命周期。 如果把程序比作食谱的话,根据食谱烹调料理的过程具有并行的特征,但在程序中,因为程序没有反映执行过程,所以没有并行的特征。 流程是竞争系统资源的基本单元,流程和程序之间的对应关系:通过多次运行,一个程序调用能够与多个流程对应的关系,一个流程可以包含多个程序。 此外,10.06.2020、18、3.2过程的静态描述:过程控制块PCB包括过程的描述信息、控制信息和资源信息,其是过程的动态特征的集中反映。 关于流程完成的功能,请参见段。 执行数据结构集进程所需的工作区和操作对象。 此外,在创建过程时,OS首先创建PCB,10.06.2020、19和3.2.1过程控制块PCB基于PCB信息来有效地管理和控制过程。 进程完成功能后,系统释放PCB,进程消失。 此外,过程控制块是用于记录OS所保存的与进程有关的信息的存储器。10.06.2020、20、3.2.1过程控制块PCB的内容:过程描述信息过程控制信息资源管理信息CPU现场保护结构,10.06.2020,21,过程描述信息:过程名称或过程标识符(pr 通常是整数用户标识符(userID )过程族关系,过程控制块PCB的内容,10.06.2020,22,过程控制信息:当前状态(准备状态,执行状态,等待状态)优先级占有CPU时间进程的优先顺序的偏移存储器的时间代码执行入口地址、程序的外部存储器地址定时信息(进程占有和利用资源的关系状况)进程间的同步和通信、进程控制块PCB的内容(继续), 10.06.2020、23、资源占有信息:虚拟地址空间的现状、I/O信息、文件系统信息等占有内存大小及其管理用数据结构指针在复杂系统中,存储器交换和独占用的相关信息共享段大小及其开头地址I/O设备编号,被传输缓冲区地址和长度,以及与设备关联的数据结构指针显示指向文件系统的指针和标识信息。 过程控制块PCB的内容(续)、10.06.2020、24、CPU现场保护结构:寄存器值(通用、程序计数器PC、状态PSW、地址包含堆栈指针)、过程控制块PCB的内容(续)、1 进程控制块(PCB )过程控制块、10.06.2020、26、3.2.1过程控制块PCB (总结)、过程控制块PCB是存在系统感知过程的唯一实体通过操作PCB,系统将资源分配给相关进程,并将与使相关进程调度和执行的进程相关的所有现场信息存储在PCB中,在进程执行结束时,OS通过释放PCB来释放进程占用的资源PCB就像我们的户口一样,是10.06.2020、27、3.2.2流程上下文,流程上下文是流程执行活动所有流程的静态描述。进程上下文的配置:通过编译程序段而形成的各种寄存器(例如,通用寄存器、程序计数器PC、程序状态字PSW等)的机器指令代码集(正文段)数据集和各种星形28、流程上下文的结构,10.06.2020, 29、用户级上下文:寄存器级上下文,包括进程的用户地址空间(包括用户堆栈的各层)、用户正文段、用户数据段、用户堆栈:程序寄存器、处理器状态寄存器、 通用寄存器的值系统级上下文:静态部分(PCB结构和资源表)动态部分:核心堆栈(核心进程的堆栈结构,不同进程调用同一核心进程时具有不同的核心堆栈),3.2.2进程上下文用户级别的上下文寄存器上下文系统级别的上下文、进程正文段、数据堆栈等,PC的值、PS的值堆栈指针使用的寄存器的值静态部分: PCB结构地址转换用表、动态部分、层n、层, 10.06.2020、31、3.2.3进程空间,进程在运行时拥有的地址空间称为进程空间,进程空间的大小仅与处理器的位数相关,进程空间有用户空间和系统空间操作系统内核程序将在系统空间中运行的用户空间中的进程的执行模式称为用户状态,将系统空间中的执行模式称为系统状态或者核心状态。10.06.2020,32、核心状态和用户状态、用户状态时不能直接访问受保护的OS代码在核心状态下运行OS代码可以访问所有进程空间。 10.06.2020、33和3.3进程的状态及其转换,以及3.3进程的生命周期可分为就绪状态、执行状态和待机状态(也称为阻塞状态)。3.3.1进程状态,运行状态:占用处理器资源如果其他进程无法运行(例如,所有进程都在等待),系统的idle进程通常会自动运行(相当于空闲操作)。 就绪状态(Ready ) :进程只需要分配CPU就可以执行,该CPU获取处理器以外的所需资源并等待分配处理器资源。 可以以多个优先级分割队列。 例如,时间片过期-低优先级、I/O完成-中优先级、页面调用完成-高优先级等待状态(Wait因为进程正在等待条件,例如I/O操作和进程同步,所以在条件满足之前无法继续执行。 即使在此事件发生之前将处理器分配给该进程,也无法执行。 等待I/O操作的完成。 10.06.2020、35、3.3.1进程状态、就绪状态包括内存就绪状态外部存储就绪状态的运行状态和用户状态:进程用户段正在运行核心状态:进程系统段正在运行时进程状态为5个状态和9个状态10.06.2020、36、3.3.2进程状态的转变、执行、准备、待机、日程表等待事件的发生而醒来,等待某个事件的发生而睡眠,10.06.2020、37、3.4进程控制, 流程控制:系统使用具有特定功能的程序段来创建、取消流程,完成流程各状态之间的转换,实现多流程的有效并发和协调、资源共享。10.06.2020、38、3.4过程控制-原句、原句:具有在系统状态下执行的特定功能的段称为原句。 原语是指令级原语:执行中不允许中断的功能级原语:不允许同时执行。 用于过程控制的原语言是:制作原语言、取消原语言、阻止原语言、调用原语言。 创建和取消10.06.2020、39、3.4.1进程的创建方法:由系统程序模块统一由系统创建的进程之间的关系是平等的,它们之间一般不存在资源继承关系。 父进程创建了父进程和子进程之间具有从属关系并且彼此构成树结构的家庭关系。 属于家庭的进程可以继承父进程拥有的资源。无论使用什么方式创建进程,操作系统都必须在生成系统时创建系统进程,以负责分配和管理系统资源。 10.06.2020,40、典型的UNIX系统中的进程树、10.06.2020、41、3.4.1进程的创建和取消,无论系统创建方式和父进程创建方式如何,都必须创建原文来实现。 在UNIX系统上使用fork ()创建进程如果fork ()的返回值大于或等于0,则创建成功;如果小于0,则创建失败。 制作原语流程图,查看入口,PCB链表,有空的PCB吗? 取空表PCB(i ),将PCB(i )、PCB(i )放入准备队列中,然后PCB(i )回到处理族或处理链中,制作失败,有,有,在以下情况下专业因为某种错误异常终止的祖先进程,必须将子进程复原。 在UNIX系统上,使用exit ()取消进程。3.4.1流程的创建和取消,恢复原语言流程图,查看入口、流程链表或流程族,是否有此PCB? 释放该进程占用的资源,释放其PCB结构本身,返回,进行错误处理,、有,该PCB有无子进程,10.06.2020、45、3.4.2进程的闭塞和觉醒,闭塞原语:进程、10.06.2020,46,关闭原文希望有一个过程发生某个事件(例如,来自键盘输入数据、写光盘、其他过程的数据等),如果发生条件还不满足,则该过程可以自己调用以关闭自己。3.4.2进程关闭和觉醒、关闭原语言、觉醒原语言、10.06.2020、48、排队进程等待的事件发生时,等待该事件的所有进程都会被唤醒。 问题:被封锁的过程能唤醒自己吗? 唤醒过程的两种方法:系统进程被等待事件唤醒,3.4.2进程拥塞和

温馨提示

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

评论

0/150

提交评论