- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第03章进程管理(一)
要点 进程的描述及控制 进程调度 互斥与同步 进程通信 死锁 因此应该采取措施来制约、控制各并发程序段的执行速度 反映程序的运行过程 程序在执行过程中是不断申请资源 ,程序作为共享资源的基本单位是不合适的 所以需要引入一个概念,它能动态描述程序的执行过程而且可以作为拥有资源的基本单位,这个概念就是进程 。 思考? 为什么引入进程? 1.为了开发同一作业中不同作业步之间的并发,作业机制已不能满足需要,引入了进程机制。 2.动态描述程序的执行过程,制约、控制各并发程序段的执行速度 3.作为拥有资源的基本单位 4……. 3.1 进程的概念和定义 1. 进程的定义 2. 进程和程序的主要区别 3. 进程的特征 “进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位”。 进程是操作系统中最基本、重要的概念。是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上。 引入进程带来的问题 增加了空间开销:为进程建立数据结构 额外的时间开销:管理和协调、跟踪、填写和更新有关数据结构、切换进程、保护现场 更难控制:竞争和共享资源、协调 思考? 1.如果系统中有N个进程, 运行的进程最多几个,最少几个; 就绪进程最多几个最少几个; 等待进程最多几个,最少几个? 2. 有没有这样的状态转换,为什么? (1) 等待—运行 (2) 就绪—等待 多个进程竞争内存资源 内存资源紧张 无就绪状态,处理机空闲:I/O速度比较慢,全部进程都处于阻塞状态 交换技术(swapping):换出一部分 虚拟存储技术 挂起状态 阻塞:等待事件 挂起:换出内存 就绪状态 阻塞状态 就绪/挂起(静止就绪) 阻塞/挂起(静止阻塞) 3.1 进程的概念和定义 3.2 进程描述 3.3 进程的状态及转换 3.4 进程控制 3.4.1 补充 操作系统内核 3.4.2 进程控制的基本操作 补充——操作系统内核(kernel) 操作系统的核心,是基于硬件的第一层软件扩充,提供操作系统最基本的功能,是OS的基础。 现代OS设计中,为减少系统本身的开销,往往将一些与硬件紧密相关的(如中断处理程序、设备驱动程序等)、基本的、公共的、运行频率较高的模块(如时钟管理、进程调度等)以及关键性数据结构独立开来,使之常驻内存,并对他们进行特殊保护,通常把这一部份成为OS内核。 补充——操作系统内核(kernel) 用户通过系统调用访问操作系统的功能,这些功能都通过操作系统内核实现。 一般地,操作系统内核的功能可以概括地划分为资源管理功能和支撑功能。 资源管理:进程管理、存储管理、I/O设备管理 支撑功能:中断处理、统计、监测、时钟管理、原语操作等 进程控制原语 进程创建与撤销 进程切换 进程的阻塞与唤醒 进程的挂起与激活 3.5 进程的互斥 3.5.1 资源共享所引起的制约 3.5.2 互斥的加锁实现 3.5.3 信号量与PV原语 3.5.4 PV原语实现进行互斥 多道程序设计技术允许多个进程同时驻留内存并发执行。 问题 如何协调多个进程对系统资源(内存、外部设备等)的竞争和共享? 如何解决多个进程因竞争资源而出现结果异常,甚至导致系统不稳定、失效等问题? 多个进程同时申请文件打印,如何有效分配? 例子 存折和银行卡 ATM和柜台存款(1000,2000元) 余额5000 两个进程同时读余额并进行修改 多个进程同时修改一数据,必须进行控制 在多道程序设计技术的OS中对诸多进程的并发控制是非常重要和必须的。 3.4.1 临界区 进程竞争资源首先必须解决“互斥”问题。某些共享资源必须互斥使用,如打印机、共享变量、表格、文件等。 这类资源又称为临界资源,访问临界资源的那段代码称为临界区。 任何时刻,只允许一个进程进入临界区,以此实现进程对临界资源的互斥访问。 临界资源 输入机、打印机、磁盘机 变量、数据、表格、栈。。。 进程互斥进入临界区 当进程需要使用临界资源时,通过获得临界区的使用权实现。 首先在进入区判断是否可以进入临界区,如果可以,则必须设置临界区使用标志,阻止其他后来的进程进入临界区。后来的进程通过查看临界区的使用标志,知道自己不能进入临界区,就进入阻塞队列,将自己阻塞。 当临界区内的进程使用完毕,退出临界区时,即在退出区修改临界区使用标志,并负责唤醒阻塞队列中的一个进程,让其进入临界区。 临界区的使用原则(调度原则) 当无进程访问临界区时,允许一个进程立即访问其临界区。(空闲让进) 当某一进程已访问了它的临界区时,其他试图访问临界区的进程必须等待。(忙则等待) 当某一进程离开临界区时,若有等待访问临界区的进程,则允许其中的一个进程进入临界区访问
文档评论(0)