您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 操作系统 第3章 进程管理
1第三章进程管理本章重点内容•多道程序设计•进程•进程间的相互作用•进程间的通信•进程调度(CPU调度)•线程学时:4课时2多道程序设计•顺序程序•并发程序•多道程序设计3顺序程序程序:指令或语句序列,体现了某种算法,所有程序是顺序的数据输入进行计算结果输出4程序的特征:•顺序性•封闭性•可再现性5程序的并发执行I1I2I3I4C1C2C3C4P1P2P3P4t6特征:(1)失去了程序的封闭性(2)程序和机器执行程序的活动不再一一对应。(3)并发程序之间互相制约合作竞争(4)并发程序的执行呈现“走——停——走”的活动规律。7进程•进程的概念•进程的状态及其转换•进程控制块(ProcessControlBlock)•进程的特征8进程的引入9进程的概念定义:Process进程是一个具有独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度的独立单位10程序与进程之间的区别:•程序是静态的,进程是动态的•进程有生命周期,有诞生有消亡,短暂的;而程序是相对长久的•进程和程序之间不再是一一对应关系•进程是有控制数据结构——PCB•进程更能真实地描述并发,而程序不能11进程的特征•动态性•并发性•独立性•异步性•结构特征–进程的结构:程序、数据、PCB12进程的基本状态及其转换进程的轨迹:进程执行的指令序列,用来观察处理机的执行过程。例:假设内存中有3个进程A、B、C,他们的程序代码已经全部装入内存。若A、B两个进程需要执行12条指令,C进程需要执行4条指令,且C进程执行到第4条指令处必须等待I/O13监控程序进程A进程B进程Cs0abc程序计数器三个程序同时驻留内存14假设监控程序分配处理机需要依次执行6条指令,分别是s+0,s+1,…….,s+5进程A的执行轨迹为a+0,a+1,……,a+11进程B的执行轨迹为b+0,b+1,……,b+11进程C的执行轨迹为c+0,c+1,c+2,c+3,当执行到c+3指令时遇到I/O指令,需要释放处理机,进行I/O操作假设执行六条语句为一个时间片15两个状态的进程模型执行:进程获得处理机未执行:时间片结束、等待I/O操作、或其他原因未执行执行进入分配调度暂停退出16处理机进入队列调度退出暂停两状态队列模型存在什么不足之处?17•将“未执行”状态再细分为:–就绪–阻塞就绪队列阻塞队列18进程的状态•三个基本状态–运行态(Running)–就绪态(Ready)–阻塞态(Blocked)•两个附加状态:–新状态(New)–结束状态(Terminated)19进程的状态及其转换20•一种特殊的情况–某些系统允许父进程在任何情况下终止起子进程–如果一个父进程被终止,其子孙进程够同时被终止•新状态——终止•就绪态——终止•阻塞态——终止21问题:多个进程竞争内存资源•内存资源紧张•无就绪进程,处理机空闲–I/O速度比处理机慢很多,可能出现全部进程阻塞等待I/O的情况。22解决方法•采用交换技术:换出一部分进程到外存,以腾出内存空间。•采用虚拟存储技术:每个进程只装入一部分程序和数据。(存储管理部分)23交换技术、对换技术Swapping换出:程序和数据,进程中的PCB不能换出换入换出导致产生了一种新的状态24进程的挂起状态进程被交换到外存,状态变为挂起状态25进程挂起的原因•进程全部阻塞,处理机空闲•系统负荷过重,内存空间紧张•操作系统的需要。操作系统可能需要挂起一些后台进程或一些服务进程,或者某些可能导致系统故障的进程。•终端用户的请求•父进程的需求26被挂起进程的特征•不能立即执行•可能是等待某事件发生,若是,则阻塞条件独立于挂起条件,即使阻塞事件发生,改进程也不能执行。•使之挂起的进程为:自身、其父进程、OS•只有使之挂起的进程,才能使之状态由挂起状态转为其他状态。27挂起与阻塞•问题–是否只能挂起阻塞进程?–如何激活一个挂起进程?•区分两个概念–进程是否等待事件——阻塞与否–进程是否被换出内存——挂起与否•就绪/挂起:•阻塞/挂起:•运行/挂起:28•把就绪状态和阻塞状态又分为:–活动(活动就绪、活动阻塞)–静止(静止就绪、活动就绪)•以是否在内存来区分–在内存——活动–在外存——静止29当内存资源空闲时,如何选择进程换入?30•当内存资源空闲时,可以将下列进程换入:–新创建的进程–换入一个以前挂起的进程•通常为了避免增加系统负载,系统会换入一个以前挂起的进行执行31具有挂起和解挂功能的进程状态转换模型32进程控制块PCB(ProcessControlBlock)概念:系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程系统利用PCB来控制和管理进程PCB是系统感知进程存在的唯一标志33进程控制块PCB•PCB中包含以下信息:–描述信息•进程标识•用户标识•家庭关系–控制信息–资源信息–CPU现场保护结构34进程控制块PCB•PCB中包含以下信息:–描述信息–控制信息•进程当前状态•进程的优先级•通信信息–资源信息–CPU现场保护结构35进程控制块PCB•PCB中包含以下信息:–描述信息–控制信息–资源信息•程序和数据地址•I/O设备号,传送的数据长度,缓冲区地址,缓冲区长度以及所有设备的有关数据结构指针。•其他资源清单–CPU现场保护结构36进程控制块的组织:(1)线性表(2)分类链接表方式(3)索引方式3738•PCB的组织–索引PCB1PCB2PCB3PCB4PCB5PCB6PCB7执行指针就绪表指针阻塞表指针39•一个系统中PCB的总数是固定的•一个进程的PCB的全部或者部分常驻内存407.4进程控制为了防止操作系统及关键数据如PCB等,受到用户程序有意或者无意的破坏,通常将处理机的执行状态分为:*管态(系统态)*目态(用户态)417.4进程控制两种执行模式•系统模式(系统态)、控制模式或者内核模式:–具有较高特权–运行系统特定的指令,包括读/写控制寄存器的指令、基本I/O指令以及与存储器管理有关的指令,及一些特定的内存区–内核模式下的处理机及其指令、寄存器和内存都受到完全控制和保护。•用户模式(用户态)–具有较低的特权–用户程序一般运行在用户模式427.4进程控制模式切换•用户模式——》系统模式:用户程序执行到一条系统调用,进入操作系统内核执行。•系统模式——》用户模式:执行完系统调用的功能,返回到用户程序。•特殊情况:程序执行到结束语句时,切换到系统模式,不再返回用户程序。437.4进程控制进程控制:就是系统使用一些具有特定功能的程序段来创建、撤消进程以及完成进程各状态之间的转换。原语:系统态下执行的某些具有特定功能的程序段成为原语。不允许int,不可分割不允许并发执行进程创建原语进程撤消原语阻塞原语唤醒原语挂起原语激活(解挂)原语441、进程创建原语create()•引起进程创建的事件:–用户登录(分时系统)–作业调度(批处理系统)–系统创建的服务进程–应用请求(前三个由系统内核创建)•进程创建流程(P78图7.11)452、进程撤销原语destroy()•引起进程撤销的事件:–正常结束–异常结束–外界干预•OS/操作员•父进程请求/终止•进程创建流程(P78图7.12)463、进程阻塞原语block()和唤醒原语wakeup()•引起进程阻塞和唤醒的事件–1.请求系统服务而得不到满足时,如问系统请求打印。–2.启动某种操作而需同步时:如该操作和请求该操作的进程需同步运行(即非异步操作)。–3.新数据尚未到达:如进程A写,进程B读,则A未写,完B不能读。–4.无新工作可做。•唤醒事件,请求的服务或事件发生。•进程阻塞和唤醒流程(P80图7.1314)473、进程挂起原语suspend和解挂原语active()48线程的基本概念•重点:线程与进程的区别49线程的引入进程的两个基本属性:•资源拥有的单位:•调度单位:以上两个属性构成进程并发执行的基础50线程的引入(续1)系统必须完成的操作:•创建进程•撤消进程•进程切换缺点:时间空间开销大,限制并发度的提高51线程的引入(续2)•线程的目标:–提高并发度–降低系统开销•实现:将进程的资源申请属性和调度属性分开。–进程:资源申请和拥有者–线程:线程是进程中的一个实体,是独立调度和分派的基本单位。52线程的引入(续2)•线程自身基本上不用有系统资源,只拥有少许进行中必不可少的私有资源。•线程与同属一个进程的其他线程共享进程的全部资源。53线程的状态•进程中的所有线程共享该进程的状态•线程的三种基本状态:–就绪–执行–阻塞•一般没有挂起状态问:线程的阻塞,会不会导致进程的阻塞?54对线程的操作•一个进程可以创建和撤销一个或多个线程,同一个进程中的多个线程可以并发执行•对线程的操作:–派生:当系统创建一个进城时,同时也为该进程派生一个线程,同一进程中的线程可以再派生其他线程。–阻塞–解除阻塞–结束55•MSDOS是单用户、单进程、单线程OS•UNIX是多用户、多进程、单线程OS•Windows系列和Linux系列OS采用多进程、多线程技术•Java虚拟机是一个单进程、多线程的运行环境56•问:线程的切换会不会导致进程的切换?答:同一进程中的线程间切换不会引起进程切换但是当一个进程中的线程切换到另一个进程中的线程时,会引起进程切换。57关于进程和线程的并发•进程之间可以并发执行•同属于一个进程的多个线程之间,也可以并发执行•大大提高系统资源使用率和系统吞吐量58关于进程和线程拥有资源•进程是申请和拥有资源的独立单位•线程除了拥有很少的私有资源以外,不能申请系统资源,但是可以共享其所属进程的资源–进程的代码段、数据段–打开的文件–I/O设备等59•OS管理进程的开销管理线程的开销•进程切换的开销线程切换的开销•同一进程中的多个线程具有相同的地址空间,使得他们之间的同步和通信也比较容易。•有些类型的线程切换、同步和通信都无需OS内核干预60线程的类型•用户级线程•内核级线程•混合模式61例子1:LAN中的一个文件服务器,在一段时间内需要处理几个文件请求因此有效的方法是:为每一个请求创建一个线程在一个SMP机器上:多个线程可以同时在不同的处理器上运行62例子2:一个线程显示菜单,并读入用户输入;另一个线程刷新和维持用户界面考虑一个应用:由几个独立部分组成,这几个部分不需要顺序执行,则每个部分可以以线程方式实现当一个线程因I/O阻塞时,可以切换到同一应用的另一个线程
本文标题:操作系统 第3章 进程管理
链接地址:https://www.777doc.com/doc-3817339 .html