4 资源管理技术
主要内容:操作系统概述、并发程序开发技术、存储空间的组织、几种常见的操作系统重点:同步、互斥、死锁、进程、重定位概念理解,并发程序设计技术难点:进程间的通信
4.1 概念
1 操作系统的定义操作系统是计算机系统中直接控制和管理(手段)各种软硬件资源(对象),以方便用户充分而有效地利用这些资源(目标)的程序的集合(实体).
2 操作系统的目标
1)方便性:提供给用户易用统一的手段
2)有效性:
有效地控制各种软硬件资源,使之得到充分利用(保持忙碌和有序占用)
合理组织系统工作流程,改善系统性能(提高系统效率)
为用户方便的使用计算机提供良好的环境(提高用户使用效率)
可扩充性,模块化,易添加和修改
4)开放性例:网络时代的操作系统对应用程序最大可能的提供开放统一的环境,
应用程序能方便地移植和互操作。
3 操作系统的作用是用户和计算机系统之间的接口接口位置:位于用户与计算机硬件系统之间。
接口作用:
从用户角度:用户可以通过各种接口,获得访问、使用系统资源的能力。
从系统角度:系统在有序管理计算机硬件系统前提下,向用户提供调用接口操作系统是系统资源管理者系统资源:处理机(CPU)、存储器、I/O设备及信息(软件——程序和数据)。
处理机管理:纪录处理机状态,按策略分配处理机。
存储器管理:纪录存储器使用情况,按策略分配,保护信息不受破坏。
I/O管理:按要求和策略分配设备,优化设备调度,提高设备使用效率。
信息管理:以文件方式组织信息。方便的查询和保护。
4.2 操作系统的发展历史
1.从人工操作 到 机器自动处理人工操作缓慢机器按照事先编辑好的过程完成任务的转换减少两个作业之间的人工干预,由系统自动调度作业逐个投入运行
2,从联机I/O 到 脱机I/O
CPU速度迅速提高而I/O设备依然缓慢,CPU化大量时间等待设备输入输出在外围机控制下进行
从单道程序处理 到 多道程序同时处理
4.3 操作系统的分类
1 单道批处理系统作业成批进入系统后备队列按照一定的策略调度一个作业在系统中运行背景:系统资源十分昂贵输入速度与CPU的速度不匹配联机单道批处理没有解决I/O与CPU速度不匹配问题脱机单道批处理可以使CPU与I/O并行工作,提高效率
2 多道批处理系统作业成批进入系统后备队列,按照一定的策略调度多个作业在系统中运行,进一步提高系统吞吐量和利用率。多道批处理对资源利用率的提高:提高CPU,内存,I/O设备的利用率多道批处理系统的特点:
多道性,多个程序或作业无序性,作业进入内存的顺序与作业完成的顺序不直接相关。
需要进行两级调度高级调度,选取多个作业进入内存低级调度,在内存中的多个作业之间完成处理机使用权的切换。
小结:批处理系统的特点:
资源利用率高,吞吐量大,能根据作业对系统资源的需求和系统当前状态,充分调度资源。
无交互能力,作业进入系统后,系统自动调度,管理员或用户不干预系统的调度情况。
分时系统:解决人机交互,进行及时响应,共享主机分时系统实现:按时间片轮转,时间片:作业使用CPU的时间; 时间片中断处理将时间片划分很小,从一个较长时间看,每一个用户都似乎独享主机例:电影胶片每秒播放25帧图象。即每幅图象占用0.04秒若将帧速率提高一倍,就可以在屏幕的上下两方同时播放两部电影时间片的选择:几十到几百毫秒之间。
太大:及时交互性效果不明显太小:作业频繁切换,增加系统开销
实时系统分时系统的响应往往要等待一个循环周期。
实时系统必须在规定的时间内对用户请求或外部事件及时响应实时控制,实时采集现场数据,完成自动化控制 例:导弹导航特点,响应速度足够快 可靠性高实时信息查询,根据用户要求进行信息检索和处理 例:远程订票系统特点,强大的文件系统或数据库; 操作简便、安全、查询快速
4.4 操作系统的特征并发性、共享性、虚拟性和异步性
1程序执行的并发性,可以大大提高资源利用率并行:在某一时刻同时发生并发:在一段时间内同时发生
2资源的共享性系统中的资源可供多个并发执行的程序共同使用互斥共享:
某些资源只能互斥访问,如打印机。
系统在一段时间内让多个程序分别访问了互斥资源是为共享同时访问:
某些资源允许多个程序同时访问,如屏幕。
系统并发调度多个程序共享资源共享性与并发性的关系——互为条件
(共享)对资源进行有效的管理,使得一个作业在访问I/O设备而不使用CPU时,其他作业可以使用CPU——并发执行
(并发)程序并发执行,系统资源在一段时间内为多个程序共同访问,资源得到了共享——资源的共享
3对象的虚拟性虚拟:把一个物理实体通过一定的技术变成若干个逻辑上的对应物。
4程序执行的异步性(不确定性)
程序之间是以异步的方式推进的。
异步、不确定可能程序完成的顺序与程序进入内存(系统)的顺序不同不可预知:程序何时执行、何时暂停、推进进度、完成时间等
4.5 进程的特征动态性:生命期并发性:进程执行时间的重叠(宏观)
独立性:资源分配与调度时相对独立异步性:“走走停停”,不可预知结构性:进程的结构——进程的“映像”
4.6 进程的状态与转换
(1)三种基本的进程状态就绪态:进程已获得除CPU以外的其他资源。
执行态:进程获得CPU正在运行的状态阻塞态:进程因等待某事件而暂时不能运行的状态
(2) 进程的控制进程控制块(Process Control Block)
系统为了管理进程设置的一个专门的数据结构进程控制块,用它来记录进程的外部特征,描述进程的运动变化过程。
4.7 进程与程序
1、静与动程序是指令的集合,是静态概念进程是程序的执行过程,是动态概念
2、记录与过程程序可作为软件资源长期保存进程只是一次短暂活动或过程
3、对应关系一个程序可对应多个进程一个进程可包含多段程序所以,不能以进程执行的程序来识别进程。识别进程,控制进程的关键是掌握PCB
4.8、线程的基本概念
1引入线程的原因系统在调度一个进程的同时还涉及资源的分配与状态转换等一系列动作如果在调度一个线程时不涉及资源的管理,调度过程会大大加快。
2 线程线程是进程内的一个可调度实体、是一个执行单元、轻量进程。
一个进程可建立多个线程,这些线程共享进程拥有的全部资源多个线程之间并发执行,切换时快速简便。
线程具有进程的四个特征:动态性、并发性、(运行)独立性、异步性
如:在Windows系统中,各进程独立使用各自的4GB容量的内存空间,而同一进程的多个线程则共享一个4GB空间。
例:进程1需要访问1000号单元的内容,进程2也需要访问1000号单元的内容,他们访问的并不是同一个单元。而进程1的两个线程访问1000号单元,则是同一个单元。
4.9 线程与进程的比较
(1)调度同一进程的多线程间调度时,不引起进程的切换不同进程的线程间调度,需要进程切换
(2)并发性一个进程的多个线程之间可并发执行
(3)资源的拥有线程不拥有系统资源,不拥有代码段、数据段。。。
(4)系统开销线程:系统仅为其保存少量寄存器内容进程:整个当前CPU环境,资源清单等
4.10 死锁:
当两个或两个以上进程因竞争资源而无休止地处于相互等待状态死锁将使进程已占用的资源的不到利用严重情况下,死锁“蔓延”开,会导致“死机”
死锁产生的必要条件死锁和“资源”密切相关
1)资源访问的互斥条件
2)请求和保持条件进程在需要时才申请资源——进程对资源的申请是分步的进程在申请新资源时,对旧资源仍然保持占用
3)不剥夺条件资源一旦获得后在V(s)之前不放弃
4)环路等待条件
4.11 进程之间的通信进程同步问题的提出:进程异步推进可能造成混乱,混乱可能导致不可再现进程同步目标,维持进程并发性以提高系统效率进程间相互合作,资源有效共享(结果可再现)
1,进程间的两种主要关系进程间的关系与进程间的独立性进程间的关系是在进程间相对独立的前提下发展的独立获得资源,独立调度
2,进程间的同步关系相互合作,司机与售票员,计算者与打印者,
竞争资源,计算者与打印者,多个打印者
3,临界资源与临界区
(1)临界资源一次只允许一个进程访问的资源资源状态为临界:0 或 1
(2)临界区每个进程用于访问临界资源的那段程序
4 同步机制应遵循的原则
(1) 空闲让进:当资源空闲时,应当允许访问资源的进程进入临界区忙则等待:当资源被占用时,应使申请访问该资源的进程等待,等待使用者归还资源
(3) 让权等待:在进程等待资源时,从执行态转为阻塞态,应当让出CPU的使用权。系统将把CPU分配给其它进程使用,以提高系统效率.
(4) 有限等待:系统应保证等待的进程能在有限的时间内获得资源,继续执行,以防止无限等待浪费该进程已占用的资源.
5 临界资源锁机制 (靠锁实现资源的共享管理)
例:商场的试衣间( 是互斥资源,是临界资源,是共享资源)
每个顾客必须遵循以下过程使用试衣间:
观察锁状态→关锁→使用试衣间→开锁
..
锁操作的一般模型 (Pi,进程i ; C( i ),Pi的临界区)
Pi:.....,lock( L ) → C( i ) → unlock( L ),........
Pj:.....,lock( L ) → C( j ) → unlock( L ),........
经典进程同步问题生产者——消费者问题读者——写者问题哲学家进餐问题
1生产者——消费者问题有多个生产者在生产消息,有多个消费者在消费消息,消费者消费的是生产者生产的消息.
2读者——写者问题(Reader and Writer )
问题描述一个数据纪录,有多个进程进行读操作,另一些进程进行修改操作
(Reader)
(Writer)
读写策略允许多个进程同时进行读操作——读不互斥不允许多于一个进程进行写操作——写互斥不允许读写操作同时进行——读写互斥
4.12 进程的通信进程之间的信息交换低级通信进程的同步,简单的信号交换如:锁、信号量高级通信--进程通信高效、大量数据传递进程通信类型
1)共享存贮器共享数据共享存贮区通过数据、数据区的共享,写入与读出达到通信的目的
2)直接通信方式——消息缓冲采用进程的消息缓冲队列消息发送者将消息直接放在接收者的消息缓冲队列
3)间接通信方式利用中间者——信箱、邮局来传递信件。
发送进程将消息发送到信箱中,接收进程从信箱中取出消息
4)管道通信用以连接读、写进程的共享文件
作业
1.进程同步的主要关系有哪些?
2.进程同步的原则是什么,请分别解释
3请用信号量描述计算进程向缓冲区写数据,打印进程从缓冲区取出数据并打印的过程
4.进程间高级通信有哪些方式?
4.13 进程调度处理机调度的主要目的:分配处理机调度影响的因素:
1.响应的及时性进程是否能在限定时间内获得处理机,对用户进行响应
2.周转时间(等待时间+使用CPU时间)
进程是否等待时间太长
3.系统吞吐量(进程时间+系统开销)
CPU是否总是用在刀刃上
进程调度的方式
1) 非抢占式(非剥夺式)
现运行进程的CPU使用权不能被中途强行剥夺除非进程主动放弃抢占式(剥夺式)
系统按照某种原则剥夺现行进程的CPU使用权将CPU使用权分配给其他进程抢占原则优先权原则;时间片原则;短进程优先原则
3)等时间片轮转保证人机交互的及时性
(1)按照FCFS顺序从就绪队列选取进程
(2)每个进程分配给相同的CPU时间片
(3)时间片到后将进程排到就绪队列尾公平性的保证响应及时性的保证多级反馈队列调度,综合各种算法长处设计思想,设置多个就绪队列; 各队列优先级不一样,
分配的时间片也不一样,高优先权队列进程的时间片较小
多级反馈队列的性能
(1)短进程在第一级队列的时间片中完成,
满足及时响应和短进程的周转要求
(2)动态变化的优先权使优先权低的进程也得到执行的机会
(3)动态变化的时间片长进程在长时间等待后获得长时间片,可减少周转时间和系统开销
4.3 存贮空间的组织
1,存储管理的任务
(1)内存空间的管理、分配与回收
(2)存储共享与存储保护
防止地址越界(每个进程都有自己独立的进程空间)
防止操作越权(即读写保护)
(3)内存扩充(虚拟存储技术)
(4)地址转换(地址重定位、地址映射),CPU执行指令时,是按物理地址进行的

分区存储管理
系统把内存用户区划分为若干分区,分区大小可以相等,也可以不等。一个进程占据一个分区固定分区可变分区预先把可分配的内存空间分割成若干个连续区域,每一区域称为分区
每个分区的大小可以相同也可以不同,分区大小固定不变,每个分区装一个且只能装一个作业

可变分区管理,作业装入时,根据作业的需求和内存空间的使用情况来决定是否分配若有足够的空间,则按需要分割一部分分区给该进程;否则令其等待内存空间用于多道程序系统

分页管理,一页的大小为2的整数次幂把用户程序按逻辑页划分成大小相等的部分,称为页。从0开始编制页号,页内地址是相对于0编址优点:解决了碎片问题,便于管理缺点:不易实现共享,不便于动态连接分段管理:
按程序自身的逻辑关系划分为若干个程序段,每个程序段都有一个段名,且有一个段号。段号从0开始,每一段也从0开始编址,段内地址是连续的
 
优点:便于动态申请内存,管理和使用统一化,便于共享,便于动态链接缺点:产生碎片
段页式分段管理
1、产生背景,结合页式段式优点,克服二者的缺点
2、基本思想
用户程序划分:按段式划分(对用户来讲,按段的逻辑关系进行划分;对系统讲,按页划分每一段)

逻辑地址:
内存划分:按页式存储管理方案内存分配:以页为单位进行分配
虚拟存储管理
1)原有存储管理中存在的问题当作业很大,超过内存剩余时,无法装入装入的作业对内存利用率不高
99%空间内的指令在短时间内都不会得到执行
2)解决问题的动机解决装入作业受限提高内存利用率提高系统吞吐量
3)问题产生的原因作业装入的“一次性”
作业装入后的“驻留性”
4)解决方法的探索不需一次全部装入作业装入内存的程序可在不需要访问时暂时退出内存
5)解决方案可行性程序执行的局部性规律
(1)顺序执行规律
(2)跳转的局部性程序的跳转和调用范围不大
(3)数据访问的局部性局部性时间的局部性 在短时间内多次被访问空间的局部性 在较短程序范围内多次访问

3,虚存的特征离散性虚拟存储建立在离散内存管理基础上多次性程序页面会多次进/出内存对换性在置换页面时需要在外存建立对换区虚拟性程序部分装入就可以执行给用户感觉比实际空间大的虚拟空间