操作系统原理第2章-进程管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第二章进程管理2本章要点基础:进程描述及控制策略:进程调度实现:互斥与同步避免:死锁与饥饿解决:几个经典问题关于:进程通信32.1进程的引入4程序相关知识程序:源代码程序、目标程序和可执行程序程序执行:编辑、编译、链接、执行程序的结构:顺序结构、分支结构和循环结构5程序的执行方式顺序执行特征:顺序性、封闭性、可再现性,如图2.1并发执行多道程序设计技术:多个程序并发执行特征:间断性、非封闭性、不可再现性,如图2.2数据输入计算输出结果6程序并发执行引发的问题协调各程序的执行顺序例:当输入的数据还未全部输入内存时,计算必须等待多个执行程序共享系统资源,程序之间可能会相互影响,甚至影响输出结果!选择哪些、多少个程序进入内存执行?内存中的执行程序谁先执行,谁后执行?内存如何有效分配?7进程的概念--便于程序执行定义:可并发执行的程序,在一个数据集合上的运行过程。申请/拥有资源∽调度(线程)程序:静态概念,是指令和数据的集合,可长期存储进程与程序对应关系:-一个程序可以对应一个进程或多个进程-一个进程可以对应一个程序,或者一段程序8进程的特征动态性:创建、调度、等待、撤销并发性:多进程驻留内存独立性:独立申请资源,可能共享异步性:推行进度不确定9引入进程带来的问题增加了空间开销:为进程建立数据结构额外的时间开销:管理和协调、跟踪、填写和更新有关数据结构、切换进程、保护现场更难控制:-协调多个进程竞争和共享资源?-如何预防解决多个进程因为竞争资源而出现故障?处理机的竞争尤为突出10进程的结构进程(进程映像)=程序+数据集合+进程控制块PCB(ProcessControlBlock)PCB是进程存在的唯一标志。创建进程时,创建PCB;进程结束时,系统撤消其PCB。11PCB进程标识信息:进程的内部和外部标识符处理机状态信息:通用寄存器值、指令计数器值、程序状态字PSW值、用户栈指针值进程调度信息:进程状态、进程优先级、进程调度的其它信息、事件其它信息:程序及数据地址、进程同步和通讯机制、资源清单(CPU)、链接指针注:PCB只能通过系统调用的方式访问12PCB的组织方式之一--单一队列所有进程的PCB通过链表组织成为一个单一队列。适用于进程数目不多的系统。如,Windows操作系统。如图2.3PCB1RunningPCB2ReadyPCBnBlocked13PCB的组织方式之二--表格结构PCB按进程状态不同,组织成不同的表格:就绪进程表、执行进程表(多机系统中)及阻塞进程表系统分别记载各PCB表的起始地址,如图2.4PCB1ReadyPCB2BlockedPCB3RunningPCB4BlockedPCB5Ready就绪表就绪表某阻塞表就绪表起始地址某阻塞表起始地址14PCB的组织方式之三--多级队列PCB按进程状态不同用链接指针组成不同队列:就绪进程队列、阻塞进程队列(可按阻塞原因不同,分别组织)系统分别记载各PCB链表的起始地址,如图2.515PCB多级队列图PCB1ReadyPCB2ReadyPCBnReadyPCB1BlockedPCB2BlockedPCBnBlockedPCB1Running就绪队列指针某阻塞队列指针执行队列指针162.2进程的状态17进程执行轨迹进程的轨迹:进程执行的指令序列,用以观察处理机的执行过程。例,假设内存中有3个进程A、B、C,他们的程序代码已全部装入内存。若A、B两进程需要执行12条指令,C进程需要执行4条指令,且C进程执行到第4条指令处必须等待I/O18例:3个程序同时驻留内存分派程序(进程切换)进程A进程B进程C内存0sabc程序计数器19例:3个程序执行情况假设分派程序分派处理机需依次执行指令序列:s+0,s+1,……,s+5进程A的执行轨迹为a+0,a+1,a+2,a+3,…进程B的执行轨迹为b+0,b+1,b+2,b+3,…进程C的执行轨迹为c+0,c+1,c+2,c+3,当它执行到c+3指令是遇到I/O指令,需要释放处理机,进行输入/输出操作203个进程交替执行轨迹1a+02a+13a+24a+35a+46a+57s+08s+19s+210s+311s+412s+513b+014b+115b+216b+317b+418b+519s+020s+121s+222s+323s+424s+525c+026c+127c+228c+329s+030s+131s+232s+333s+434s+535a+636a+737a+838a+939a+1040a+1141s+042s+143s+244s+345s+446s+547b+648b+749b+850b+951b+1052b+11超时超时I/O请求超时21两状态进程模型两状态:执行,未执行-进程获得处理机,进入执行状态;当时间片结束或其他某种原因,进程释放处理机,暂停执行,处于未执行状态。未执行执行进入退出分派暂停图2.8两状态转换图22两状态进程模型:队列形式注:并非所有进程只要“未执行”就处于就绪(ready),有的需要阻塞(blocked)等待I/O完成“未执行”又可分为就绪和阻塞进入队列分派处理机退出暂停图2.9两状态队列模型23进程的五状态执行状态(Running)就绪状态(Ready)阻塞状态(Blocked)新状态(New)终止状态(Terminated)基本状态241.新状态:进程已经创建,但未被OS接纳为可执行进程2.就绪状态:准备执行3.执行状态:占用处理机(单处理机环境中,某一时刻仅一个进程占用处理机)4.阻塞状态:等待某事件发生才能执行,如等待I/O完成等5.终止状态:因停止或取消,被OS从执行状态释放进程的五状态(续)25进程五状态模型新建就绪执行阻塞终止接纳完成分派/调度时间片完事件发生事件等待26进程状态转换及其原因1①空新状态新创建的进程首先处于新状态。②新状态就绪状态当系统允许增加就绪进程时,操作系统接纳新建状态进程,将它变为就绪状态,插入就绪队列中。27③就绪状态执行状态当处理机空闲时,将从就绪队列中选择一个进程执行,该选择过程称为进程调度,或将处理机分派给一个进程,该进程状态从就绪转变为执行。④执行状态终止状态执行状态的进程执行完毕,或出现诸如访问地址越界、非法指令等错误,而被异常结束,则进程从执行状态转换为终止状态。进程状态转换及其原因228⑤执行状态就绪状态分时系统中,时间片用完,或优先级高的进程到来,将中断较低优先级进程的执行。进程从执行状态转变为就绪状态,等待下一次调度。⑥执行状态阻塞状态执行进程需要等待某事件发生。通常,会因为进程需要的系统调用不能立即完成,如读文件、共享虚拟内存、等待I/O操作、等待另一进程与之通信等事件而阻塞。进程状态转换及其原因329⑦阻塞状态就绪状态当阻塞进程等待的事件发生,就转换为就绪状态。进入就绪队列排队,等待被调度执行。注:某些系统允许父进程在任何情况下终止其子进程。如果一个父进程被终止,其子孙进程都必须终止。-新状态终止-就绪状态终止-阻塞状态终止进程状态转换及其原因430五状态队列模型图2.11五状态队列模型阻塞队列接纳就绪队列分派/调度处理机完成时间片完等待事件事件发生单阻塞队列多阻塞队列接纳就绪队列分派/调度处理机完成时间片完阻塞队列1等待事件1事件发生1阻塞队列2等待事件2事件发生231问题:多个进程竞争内存资源内存资源紧张无就绪进程,处理机空闲:I/O的速度比处理机的速度慢得多,可能出现全部进程阻塞等待I/O32解决方法采用交换技术:换出一部分进程到外存,以腾出内存空间采用虚拟存储技术:每个进程只能装入一部分程序和数据(存储管理部分)33对换技术,交换技术(Swapping)将内存中暂时不能运行的进程,或暂时不用的数据和程序,换出到外存,以腾出足够的内存空间把已具备运行条件的进程(可能位于挂起队列),或进程所需要的数据和程序,换入内存(激活进程)。34进程的挂起状态进程被交换到外存,状态变为挂起状态35进程挂起的原因进程全部阻塞,处理机空闲。系统负荷过重,内存空间紧张。操作系统的需要。操作系统可能需要挂起后台进程或一些服务进程,或者某些可能导致系统故障的进程。终端用户的请求。父进程的需求。36被挂起进程的特征不能立即执行可能是等待某事件发生,若是,则阻塞条件独立于挂起条件,即使阻塞事件发生,该进程也不能执行实施挂起行为的进程:自身、其父进程、OS只有挂起它的进程才能使之由挂起状态转换为其他状态37挂起与阻塞问题1.是否只能挂起阻塞进程?2.如何激活一个挂起进程?38挂起与阻塞区分两个概念:?进程是否等待事件,阻塞与否?进程是否被换出内存,挂起与否4种状态组合:就绪:进程在内存,准备执行阻塞:进程在内存,等待事件就绪/挂起:进程在外存,只要调入内存即可执行阻塞/挂起:进程在外存,等待事件39注:处理机可调度执行的进程有两种:--新创建的进程--或换入一个以前挂起的进程通常为避免增加系统负载,系统会换入一个以前挂起的进程执行。40具有挂起状态的进程模型图新建就绪执行阻塞终止接纳完成分派/调度时间片完事件发生事件等待阻塞/挂起就绪/挂起激活挂起激活挂起事件发生接纳挂起41具有挂起状态的进程状态转换阻塞阻塞/挂起:OS通常将阻塞进程换出,以腾出内存空间阻塞/挂起就绪/挂起:当阻塞/挂起进程等待的事件发生时,可以将其转换为就绪/挂起就绪/挂起就绪:OS需要调入一个进程执行就绪就绪/挂起:一般,OS挂起阻塞进程。但有时也会挂起就绪进程,释放足够的内存空间新就绪/挂起(新就绪):新进程创建后,可以插入到就绪队列或就绪,挂起队列。若无足够的内存分配给新进程,则需要新就绪/挂起42具有挂起状态的进程状态转换(续)阻塞/挂起阻塞:当阻塞/挂起队列中有一个进程的阻塞事件可能会很快发生,则可将一个阻塞/挂起进程换入内存,变为阻塞执行就绪/挂起:当执行进程的时间片用完时,会转换为就绪。或,一个高优先级的阻塞/挂起进程正好变为非阻塞状态,OS可以将执行进程转换为就绪/挂起状态所有状态终止:通常,执行终止。但某些OS中,父进程可以终止其子进程,使任何状态的进程都可转换为退出状态432.3进程的控制44执行模式系统模式(系统态)、控制模式或内核模式:-具有较高的特权-运行系统特定的指令,包括读/写控制寄存器的指令、基本I/O指令以及与存储器管理有关的指令,及一些特定的内存区-内核模式下的处理机及其指令、寄存器和内存都受到完全控制和保护用户模式(或用户态)-具有较低的特权-用户程序一般运行在用户模式45模式切换用户模式系统模式:用户程序执行到一条系统调用,进入操作系统内核执行系统模式用户模式:执行完系统调用的功能,返回到用户程序特殊情况:程序执行到结束语句时,切换到系统模式,不再返回到用户程序46操作系统内核(Kernel)操作系统的核心,是基于硬件的第一层软件扩充,提供操作系统最基本的功能,是操作系统工作的基础。现代操作系统设计中,为减少系统本身的开销,往往将一些与硬件紧密相关的(如中断处理程序、设备驱动程序等)、基本的、公共的、运行频率较高的模块(如时钟管理、进程调度等)以及关键性数据结构独立开来,使之常驻内存,并对它们进行特殊保护。通常把这一部分称为操作系统的内核。47用户通过系统调用访问操作系统的功能,这些功能最终都通过操作系统内核实现。不同的操作系统对内核的定义和功能范围的设定是不同的。一般地,操作系统内核的功能可以概括地划分为资源管理功能和支撑功能。-资源管理:进程管理、存储管理和I/O设备管理-支撑功能:中断处理、统计、监测、时钟管理、原语操作等。48资源管理功能进程管理:进程创建和终止、调度、状态转换、同步和通信、管理PCB存储管理:为进程分配地址空间、对换、段/页管理I/O设备管理:缓存管理、为进程分配I/O通道和设备49支

1 / 333
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功