《计算机操作系统知识点归纳.docx》由会员分享,可在线阅读,更多相关《计算机操作系统知识点归纳.docx(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上操作系统的目标:方便性,有效性,可扩充性,开放性操作系统的作用:作为用户和计算机硬件系统之间的接口,作为计算机系统资源的管理者,实现了对计算机资源的抽象单道批处理系统的缺点:系统的资源得不到充分的利用多道批处理系统的优缺点:资源利用率高,系统吞吐量大,平均周转时间长,无交互能力需要解决的问题:处理机争用问题,内存分配和保护问题,I/O设备分配问题,文件管理和组织问题,作业管理问题,用户与系统的接口问题分时系统(满足人机交互的需求) 特征:多路性,独立性,及时性,交互性 及时响应实时系统的特征:多路性,独立性,及时性,交互性,可靠性 实时实时任务的类型:周期性实时任务和
2、非周期性实时任务,硬实时任务和软实时任务单用户多任务OS:一个用户,把程序分为若干任务并发执行多用户多任务OS:多个用户,一台机器,共享资源 UNIX OS操作系统的四大特性:并发,共享,虚拟,异步并行与并发:并行是多个事件在同一时间发生,并发是多个事件在同一时间间隔内发生(进程的引入:多个程序并发执行,提高了系统资源利用率,增加了系统的吞吐量)。进程同步与互斥;进程间的通信;死锁问题互斥共享:一段时间内只允许一个进程访问该资源同时访问:宏观上是同时的,微观上进程对资源的访问是交替的时分复用技术:虚拟机处理,虚拟设备空分复用技术:对存储空间的管理,提高利用率OS具备的功能:1.处理机管理:进程
3、控制,进程同步,进程通信,作业调度,进程调度2.存储器管理:内存分配(为每道程序分配内存,提高存储器利用率,允许正在运行的程序申请附加的内存)内存分配方式:静态:不允许申请新的内存,不允许作业在内存中的移动 动态:上面说的都允许内存保护:确保每道用户程序都仅在自己的内存空间内运行,决不允许用户程序访问操作系统的程序和数据地址映射:逻辑地址和物理地址,硬件支持内存扩充:逻辑上扩充内存容量(请求调入功能,置换功能)3.设备管理主要任务:完成用户进程提出的I/O请求,为用户进程分配所需要的I/O设备,并完成指定的操作 提高CPU和I/O设备的利用率应具有缓冲管理,设备分配,设备处理和虚拟设备(spo
4、oling技术)4.文件管理文件存储空间的管理,目录管理,文件的读和写管理和保护操作系统与用户之间的接口:1.用户接口:联机用户接口,脱机用户接口,图形用户接口2.程序接口:为用户程序在执行中访问系统资源设置的,是用户程序取得操作系统服务的唯一途径模块接口法的优缺点优点:提高OS设计的正确性、可理解性和可维护性 增强OS的可适应性 加速OS的开发过程问题:对各模块间的接口规定很难满足在模块设计完成后对接口的实际需求决定的无序性分层式结构OS 在目标系统和逻辑系统之间铺设若干个参次的软件(自底向上)优缺点:易保证系统的正确性,易扩充和易维护性 系统效率降低(执行一个功能要穿越多个层次)客户/服务
5、器模式优点:数据的分布处理和存储,便于集中管理,灵活性和可扩充性,易于改编应用软件微内核OS并非一个完整的OS,有OS中最基本的部分,包含有:与硬件处理紧密相关的部分,一些较基本的功能,客户和服务器之间的通信基于客户/服务器模式应用“机制与策略分离”原理基本功能:进程管理,低级存储器管理, 中断和陷入处理优点:提高系统的可扩展性,增强系统的可靠性,可移植性强,提供了对分布式系统的支持,融入了面向对象技术程序在顺序执行时的三个特征:顺序性,封闭性,可再现性程序在并发执行时的三个特征:间断性,失去封闭性,不可再现性进程的定义:进程时程序的一次执行,是一个程序及其数据在处理机上顺序执行时所发生的活动
6、,是具有独立功能的程序在一个数据集合上运行的进程,他是系统进行资源分配和调度的一个独立单位进程的特征:动态性,并发性,独立性,异步性进程的三种基本状态:就绪(Ready)状态,执行(Running)状态,阻塞(Block)状态创建状态:如果进程所需的资源不能得到满足,进程不能被调度,此时为创建状态终止状态:自然结束,被其他有终止权的进程终结,出现无法克服的错误,被操作系统终结挂起操作的引入:终端用户的需要,父进程请求,负荷调节的需要,操作系统需要引入挂起操作之后三个进程可能会有以下几种状态转化:活动就绪-静止就绪,活动阻塞-静止阻塞,静止就绪-活动就绪,静止阻塞-活动阻塞进程信息表(资源信息表
7、)包含了资源或进程的标识,描述,状态等信息以及一批指针OS管理的这些数据结构一般分为:内存表,设备表,文件表和用于进程管理的进程表(进程控制块PCB)进程控制块(PCB)的作用作为独立运行基本单位的标志,能实现间断性运行方式,提供进程管理所需要的信息,提供进程调度所需要的信息,实现与其他进程的同步与通信进程控制块包含的信息:1.进程标识符(外部标识符,内部标识符)2.处理机状态3.进程调度信息 (进程状态,优先级,进程调度所需的其他信息,事件(进程状态发生改变的事件,如阻塞原因)4.进程控制信息(程序和数据的地址,进程同步和通信机制,资源清单,链接指针(下一个PCB的首地址)PCB的组织方式1
8、.线性方式 线性表2.链接方式 队列3.索引方式 索引表进程控制 创建进程,终止已完成的进程,将无法继续运行的进程置于阻塞状态,运行进程的状态转换。 内核原语实现操作系统内核1.支撑功能:中断处理,时钟管理,原语操作2.资源管理功能:进程管理,存储器管理,设备管理进程的创建进程的层次结构 允许父进程创建子进程进程图 有向树引起创建进程的事件 用户登录,作业调度,提供服务,应用请求进程的终止过程1.根据被终止进程的标识符,从PCB中检索出改进程的PCB,从中读出该进程的状态2.若被终止进程正处于执行状态,应立即终止改进程的执行,并置调度标志为真3.如果有子孙进程,子孙进程也终止4.将终止进程所拥
9、有的全部资源归还给父进程或系统5.将终止进程从所在队列或链表中移除引起进程阻塞或被唤醒的事件:1.向系统请求共享资源失败2.等待某种操作的完成3.新数据尚未到达4.等待新任务的到达阻塞是进程自身的一种主动行为 进程通过阻塞原语block将自己阻塞进程唤醒 调用唤醒原语wakeup 把被阻塞的进程从等待该事件的阻塞队列中移除,状态变为就绪,把PCB插到就绪队列中临界资源 打印机,磁带机。进程间采用互斥方式临界区 每个进程访问临界资源的那段代码同步机制应遵循的规则:空闲让进,忙则等待,有限等待,让权等待实现互斥的三种方法:1.关中断:在进入锁测试之前关闭中断,直到完成锁测试并上锁之后才能打开中断。
10、缺点:关中断时间过长,影响系统效率,限制处理器交叉执行程序的能力关中断方法不适用于多CPU系统2.硬件指令 测试并建立指令 TS3.对换指令信号量机制1.整型信号量:资源数目的整型量S:只能通过两个原子操作:P、V操作2.记录型信号量:一种不存在的忙等机制 增加一个进程链表指针list,链接上述所有的等待进程3.and型信号量:将进程在整个运行过程中需要的所有资源,一次性全部给进程,使用完后一起释放。只要有一个资源未能分配给进程,其他的也不会给进程。(要么全给,要么不给)4.信号量集:上述信号量 每次只能对某类临界资源进行一个单位的申请或释放,当一次需要N个单位时,便要进行N次wait操作,这
11、样不仅低效,而且会增加死锁概率。为确保安全性,设置一个下限值,当所申请的系统资源低于下限值时,不予以分配。信号量的应用:1.实现互斥:设置一个互斥信号量mutex,设其初值为1,然后将各进程访问该资源的临界区CS置于wait和signal之间。wait(mutex);临界区;signal(mutex);剩余区;2.利用信号量实现前趋关系: P1 S1 ; signal(s). P2 wait(s); S2管程机制管程:用少量的信息和对资源的操作来表征该资源(管程的名称,局部于管程的共享数据结构说明,对该数据结构进行操作的一组过程,对局部于管程的共享数据设置初始值的语句)利用管程实现同步,必须设
12、置同步工具,如同步操作原语wait和signal生产者-消费者问题1.利用记录型信号量empty和full分别表所缓冲池中空缓冲区和满缓冲区的数量。缓冲池未满,生产者便将消息送入缓冲池,缓冲池未空,便从其中取走一个消息2.利用AND信号量Swait(empty,mutex)代替wait(empty)和wait(mutex)等3.利用管程。 首先建立一个管程,其中包括两个过程put(x)生产者把自己生产的东西投入到缓冲池中,并用cnt记录产品数量,get(x)取产品,同理。还有cwait/csignal(condition)。管程给占用时,其他进程相调用就阻塞。哲学家进餐问题1.记录型信号量 筷
13、子是临界资源,一个信号量表示一个筷子,组成一个信号量组,初始值为12.AND型信号量 要求每个哲学家先获得两个临界资源后方能进餐读者-写者问题1.记录型信号量 互斥信号量Wmutex 整型变量Readcount表示正在读的进程数目。只要有一个在读,便不允许writer去写。2.利用信号量集 允许L个读者同时读,执行wait(L,1,1)表示有一个读者进入,L=L-1进程通信(进程间的信息交换)1.共享存储器系统,相互通信的进程共享某些数据结构或共享存储区2.管道通信系统,所谓管道是指用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件,又名pipe文件。以字符流形式送入管道,又从管道
14、中读取,首创于UNIX需要有三个协调能力互斥:一个在用,另一个等待同步:写进程把数据送入管道后就去睡觉,别人取走后再醒来工作。读进程想来取数据发现是空的也要去睡觉,有数据后再醒来取。确定对方是否存在:确认对方存在后才能进行通信3.消息传递系统(高级通信方式):以格式化的消息为单位,将通信数据封装在消息中。4.客户机-服务器系统套接字 网络通信接口远程过程调用 消息传递通信的实现方式1.直接消息传递系统 发送进程利用OS所提供的发送命令(原语)直接把消息发给目标进程对称寻址方式 send(P1,message) receive(P1,message)非对称寻址方式 send(P,message)
15、 receive(id,message)单机系统环境一般采用定长消息格式,以减少对信息的处理和存储开销变长消息,方便用户进程在消息的发送和接受后存在两种可能性:继续发送/接收货阻塞为使发送进程和接收进程间能通信,在两者之间建立一条通信链路。两种方式(自建后消除,系统建)2.信箱通信信箱定义为一种数据结构,由信箱头和信箱体构成系统为信箱提供的原语:信箱的创建和撤销,消息的发送和接收由操作系统或用户创建信箱分为私有,公有,共享信箱消息缓冲对列通信机制数据结构:消息缓冲区,PCB中有关通信的数据项发送进程在发送消息之前要把待发送的消息正文,发送进程标识符,消息长度填入发送区。发送原语根据长度申请一缓
16、冲区,把发送区的信息复制到缓冲区,然后挂在消息队列上。接收进程从自己的队列中摘下缓冲区,复制。线程(调度和分派的基本单位)(进程是爸爸,线程是儿子们)区别:进程和线程的区别:(a)不同进程的地址空间是独立的,而同一进程内的线程共享同一地址空间。(b)在引入线程的操作系统中,进程是资源分配和调度的单位,线程是处理机调度和分配的单位,资源是分配给进程的,线程只拥有很少资源,因而切换代价比进程切换低。引入线程是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性线程的三种状态同进程线程控制块TCB多线程OS中的进程具有以下属性1.进程是一个可拥有资源的基本单位2.多个线程并发执行3.进程
17、已不是可执行的实体,线程才是调度和分派的基本单位开个QQ,开了一个进程;开了迅雷,开了一个进程。在QQ的这个进程里,传输文字开一个线程、传输语音开了一个线程、弹出对话框又开了一个线程。所以运行某个软件,相当于开了一个进程。内核支持线程KST优点:1.在多处理器系统中,内核可以同时调度一个进程中的多个线程并执行 2.如果进程中的一个线程阻塞,内核可以调度该进程中的其他线程占有处理器或运行其他进程的线程 3.内核支持线程具有很小的数据结构和堆栈,线程切换快,切换开销小 4.内核本身也可以采用多线程技术,可以提高系统执行速度和效率用户级线程ULT用户空间实现,无需内核支持优点:1.线程切换不需要转换
18、到内核空间 2.调度算法可以是进程专用的 3.用户级线程的实现与OS平台无关,所有的应用程序都可以共享缺点:1.系统调用的阻塞问题2.进程中只有一个线程可以执行内核支持线程的实现:系统创建一个新进程时,便为它分配一个任务数据区PTDA,其中包括若干个线程控制块空间用户级线程的实现:1.运行时系统:管理和控制线程函数的集合。所有函数都驻留在用户空间,并作为用户级线程与内核之间的接口2.内核控制线程(轻型进程LWP):用户级线程运行时 只需将它连接到一个LWP上,LWP可通过系统调用来获得内核提供的服务线程的创建和终止应用程序在启动时,初始化线程在执行,主要功能用于创建新线程创建新线程时,需要一个
19、线程创建函数或系统调用,并提供相应的参数。创建完后返回一个线程标识符。终止线程通过调用相应的函数进行终止操作。有些线程(主要是系统线程),一旦被建立起来后,便一直运行下去不被终止。在大多数的OS中,线程被终止并不立即释放所占有的资源,只有当进程中的其他线程执行了分离函数,资源才分离调度的实质是一种资源分配。处理机调度的三个层次(高级调度,中级调度,低级调度)处理机调度算法的共同目标1. 资源利用率。2. 公平性。所有进程都获得合理的CPU时间,不会出现饥饿现象。3. 平衡性。为使系统中的CPU和各种外部设备都能经常处于忙碌状态,要保持系统资源使用的平衡性。4. 策略强制执行。即使造成某些工作的
20、延迟也要执行批处理系统的目标1. 平均周转时间短。周转时间和平均周转时间都要短周转时间=作业完成时间作业提交时间带权周转时间=周转时间/服务时间2. 系统吞吐量高。单位时间内系统所完成的作业数 与批处理作业的平均长度有关。比如单纯为了提高系统吞吐量,就选短作业运行3. 处理器利用率高。分时系统的目标 响应时间快 均衡性实时系统的目标 截止时间的保证 可预测性在多道批处理系统中,作业被输入设备输入到磁盘存储器中,并保存在一个后背作业队列中,再由作业调度程序将其从外存调入内存。作业 运行的三种状态收容状态,运行状态,完成状态,(后备状态)作业步(Job Step) 作业控制块(JCB) 作业在系统
21、中存在的标志,包含:作业标识,用户名称,用户账号,作业类型(CPU繁忙型,I/O繁忙型,批量型,终端型),作业状态,调度信息(优先级,作业运行时间),资源需求(预计运行时间,要求内存大小),资源使用情况作业调度的主要任务:根据JCB中的信息,检查系统中的资源是否满足作业对资源的需求,以及按照一定的调度算法,从外存的后备队列中选取某些作业调入内存,并为他们创建进程,分配必要的资源,然后将新创建的进程安排在就绪队列上等待调度。每次执行作业调度时的两个决定:接纳多少作业和接纳哪些作业先来先服务(FCFS)调度算法按照作业到达的先后次序或在队列中等待时间最长的作业。调入内存,分配资源和创建进程,放到就
22、绪队列中。短作业优先调度算法作业越短优先级越高 作业的长短是以作业所要求的运行时间来衡量的缺点:必须预知作业的运行时间 对长作业非常不利,长作业的周转时间会明显增加采用SJF算法时,人机无法实现交互未考虑作业的紧迫程度优先级调度算法基于作业的紧迫程度,从外部赋予作业的优先级。高响应比优先调度算法优先级又相当于响应比进程调度的任务:保护处理机的现场信息,按照某种算法选取进程,把处理器分配给进程进程调度机制:排队器(将进程插入到相应队列),分派器(根据调度程序选择进程,从就绪队列取出,把处理机分配给新选出的进程),上下文切换器进程调度方式1. 非抢占方式一旦把处理机分配给某进程后,不会因为时间中断
23、或任何其他原因去抢占当前正在运行进程的处理机,直到进程完成,或发生某事件而阻塞时,才把处理机分配给其他进程。2. 抢占方式根据某种原则暂停正在执行的进程。现代OS广泛采用抢占方式,因为抢占方式可以防止一个长进程长时间占用处理机。分时系统中只有采用抢占方式才能实现人机交互。实时系统中,抢占方式能满足实时任务的需求,但抢占方式比较复杂,所需付出的系统开销比较大。轮转调度算法(RR算法)系统将所有就绪的进程按FCFS的策略排成一个就绪队列。系统设置每隔一定时间便产生一次中断,去激活进程调度程序进行调度,把CPU分配给队首进程,并令其执行一个时间片,运行完毕后,把处理机给就绪队列中的新的队首进程,也执
24、行一个时间片。若一个时间片尚未用完,正在运行的进程已经完成,立即激活调度程序,把它从就绪队列中删除,再调度就绪队列中队首的进程运行。若时间片用完,进程还没完,则先把它送到队列末尾。优先级调度算法把处理机分给就绪队列中优先级最高的进程非抢占式优先级调度算法 抢占式优先级调度算法优先级的类型静态优先级 创建进程时确定 保持不变确定优先级大小的依据:进程类型,进程对资源的需求,用户要求动态优先级 随进程的推进或等待时间的增加而改变多级反馈队列调度算法1.设置多个就绪队列2.每个队列都采用先来先服务算法。若进程在一个时间片没有完成,调度程序将其转入第二队列的末尾等待,如果再未完成,以此类推。如果被降到
25、最后一个队列,则最后一个队列采用的是RR方式运行3.按队列优先调度 即第一队列的优先级大于第二队列等当1i-1的队列为空式,才会调度i 队列中的进程。如果中途有优先级更高的队列里有进程,此时会立即把运行的进程放到i 队列末尾,把处理机分配给刚来的。如果规定好第一个时间片略大于大多数人机交互所需处理的时间,便能满足终端型用户,长、短批处理作业用户保证调度算法 没有优先级 如保证每个进程都获得相同的处理机时间公平分享调度算法 分配给每个进程相同的处理机时间实时调度1. 基本条件:提供就绪时间,开始截止时间或完成截止时间,处理时间,资源要求,优先级2. 系统处理能力强 假设有m个周期性任务,他们的处
26、理时间为Ci,周期时间表为Pi,必须满足i=1mCiPi1提高处理能力:一是采用单处理机系统,但必须增强其处理能力,以显著的减少每一个任务的处理时间。二是采用多处理机系统,则i=1mCiPiN即可。3. 采用抢占式调度4. 具有快速切换机制 面对中断的快速响应能力 禁止中断的时间间隔短快速的任务分派能力 系统中的每个运行功能单位要小根据实时任务性质,分为硬、软实时调度算法根据调度方式,分为非抢占调度算法(*轮转调度算法,*优先调度算法)和抢占调度算法(基于时钟中断的,立即抢占的)最早截止时间优先EDF最低松弛度优先LLF优先级倒置高优先级被低优先级进程延迟或阻塞解决方法:规定一个进程进入临界区
27、后,处理机不允许被抢占死锁 在一组进程发生死锁的情况下,这组死锁进程的每一个进程都在等待另一个死锁进程所占有的资源引起死锁主要是采用互斥访问方法,不能被抢占的资源可重用性资源 每一个可重用性资源中的单元只能分配给一个进程使用进程使用顺序:请求资源(失败会被阻塞或循环等待),使用资源,释放资源系统中每一类可重用性资源中的单元数目是相对固定的,进程在运行期间不能创建也不能删除它。可消耗性资源 临时性资源由进程动态地创建和消耗可抢占性资源 顾名思义不可抢占性资源 不能强行收回,只能进程用完后自行释放竞争不可抢占性资源引起死锁 数量不够竞争可消耗资源引起死锁 通信时的死锁进程推进顺序不当引起死锁 两个
28、持有资源的并发进程想相互访问产生死锁的必要条件互斥条件 请求和保持条件 不可抢占条件 循环等待条件处理死锁1.预防死锁 破坏必要条件中的一个或几个互斥条件不能破坏 只能破坏后面的(1)破坏请求和保持条件系统保证做到一个进程在请求资源时他不能持有不可抢占资源 第一种协议:所有进程在运行开始前必须一次性申请全部资源第二张协议:只获得初期所需的资源,后面逐步释放,然后再请求(2)破坏不可抢占条件当一个已经保持了某些不可被抢占资源的进程,提出新的资源请求而不能满足时,必须释放已经保持的所有资源,以后需要再申请。(3)破坏等待条件对所有资源类型进行线性排序,并赋予不同的序号3. 避免死锁 在资源动态分配
29、过程中,防止系统进入不安全状态安全状态 系统不会死锁 不安全 系统可能会死锁4. 死锁检测算法 保持资源的请求和分配信息根据死锁定理消去资源分配图中的所有边 即无死锁5. 死锁的解除从一个进程或多个进程抢占资源给死锁进程终止所有死锁进程逐个终止进程 付出代价最小的死锁解除算法存储器的多层结构最高为CPU存储器 中间为主存 最底层为辅存主存(内存、可执行存储器) 保存进程运行时的程序和数据 辅存的高速缓存寄存器 与处理机速度相同高速缓存 介于寄存器和存储器之间 减少CPU对主存的访问次数磁盘缓存 并不实际存在 缓和磁盘和主存速度上的不匹配用户程序变成可执行程序:编译 链接 装入程序的装入1. 绝
30、对装入方式:用户程序经编译产生绝对地址(物理地址) 适合系统小 只能运行单道程序2. 可重定位装入方式 相对于起始地址 不允许移动 多道程序3. 动态运行时装入方式 同上面的但是可以移动程序的链接1. 静态链接2. 装入时动态链接边装入边链接 在装入一个目标模块时,若发生一个外部模块调用事件,将引起装入程序去找出相应的外部目标模块,并将它装入内存。 优点是便于修改和更新、便于实现对目标模块的共享。3. 运行时动态链接将可能要运行到的模块全部装入内存,并在装入时全部链接在一起。比如错误处理用的目标连续分配存储器管理方式1 单一连续分配 在用户去内存中,仅装有一道用户程序,即整个内存的用户空间由该
31、程序独占。2 固定分区分配 分区大小相等 大小不等按大小排序 分区记录表记录分区使用情况3 动态分区分配 分区空闲表 分区空闲链动态分区分配算法分区分配操作 系统从空闲分区表找到所需要大小的分区回收内存 当回收区与插入点的前一个空闲分区F1相连接,将回收区与F1合并,修改F1的大小,地址为F1若与后一个,也合并,改回收区大小,地址为回收区若与插入区前后两个空闲分区相连,合并三个,取前一个为首地址若谁都不相连,为回收区建立一个新的表项基于顺序搜索的动态分区分配算法1 首次适应算法 FF要求空闲分区链以地址递增的次序链接,内存分配时,按顺序查找,找到第一个满足的就分配 这个方法最有可能使得高地址空
32、间成为大的空闲区2 循环首次适应算法 NF。从上次找到的空闲分区开始找 为了避免低地址有很多空闲分区3 最佳适应算法 BF 按容量从小到大形成分区链4 最坏适应算法 WF 挑最大的空闲分区 从中分割一部分给作业使用基于索引搜索的动态分区分配算法1.快速适应算法 分类搜索法将具有相同容量的空闲分区合到一起 并建立空闲分区链表2.伙伴系统3.哈希算法 类似1动态可重定位分区分配1 紧凑 一个系统或用户程序必须被装入一片连续的内存空间中2 动态重定位 重定位寄存器 程序在执行时真正访问的内存地址是相对地址与重定位寄存器中的地址相加3 动态重定位分区分配算法 如果找不到一个足够大的分区,会把小的拼起来
33、对换的引入 进程的阻塞占用大量内存 迫使cpu等待对换即将一定数量的程序或数据换入或换出内存 根据每次所对换的数量 分为整体对换和页面分段对换在具有对换功能的OS中,通常把磁盘空间分为文件区和对换区为了实现对换区的管理,空闲分区表 对换区的首地址和大小 盘块号和盘块数对换区的分配算法与动态分区的分配雷同进程的换出:选择被换出的进程 进程换出过程进程的换入:对换进程将定时执行换入操作,先看PCB中所有进程状态,选择就绪但已换出的进程,如果有多个,选换出到磁盘上时间最久的那个为他申请内存,如果成功,调入,涂过失败,先把内存中的某些进程换出,腾出足够空间再调入分页存储管理的基本方法1. 页面和物理块
34、 页面和物理块的大小一样 设有8页的逻辑空间,每页有1024B,被影射到32块的物理内存中,那么逻辑地址的有效位是_物理地址至少是_2的三次方和2的十次方 13。 2的5次方和2的十次方 152. 地址结构 0-11 位移量 12-31 页号=地址/页面大小 页内地址=地址MOD 页面大小 3. 页表(在内存中) 允许进程的各个页离散地存在内存中 为了进程正常运行,系统为每个进程建立了一张页面映像表地址变换机构。基本的就是硬件实现,页表采用一组专门的寄存器,一页用一个。先从内存中找到逻辑地址,再找到对应的物理地址取出数据需要2t的时间快表的话就是直接得到逻辑页所对应的物理块号分段存储管理方式
35、方便编程,信息共享 信息保护 动态增长 动态链接1. 分段 作业的地址空间被划分为若干个段。段号+段内地址如主程序段,子程序段等2段表3.地址变换机构 段表始址和段表长度TL 进行变换时 若STL 越界 产生中断信号 若未越界,得到段表项的位置 读出该段在内存中的起始地址d 如果dTL 越界未越界则d+基址未物理地址分页和分段的主要区别:页是信息的物理单位,页的大小固定且由系统决定,分页的用户程序地址空间是一维的段页式存储管理方式 地址结构段号+段内页号+页内地址用户所感到的内存容量比实际内存容量大的多传统存储器的特征:一次性 驻留性虚拟存储器的特征:多次性 对换性 虚拟性实现方法分页请求系统
36、 请求分页的页表机制 :将用户地址空间中的逻辑地址映射为内存空间中的物理地址。缺页中断机构 :在指令执行期间产生和处理中断信号 一条指令在执行期间可能产生多次缺页中断地址变换机构 实现请求分页软件请求分页内存分配固定分配:平均分配 按比例分配(根据进程的大小按比例分配物理块)考虑优先权的分配算法页面调入:预调页策略 请求调页策略从何处调入页面 :系统拥有足够的对换区间,这时可以全部从对换区调入所需页面 系统缺少足够的对换区间 这时凡事不会被修改的文件会直接从文件区调入 页面调入过程:每当程序所要访问的页面未再内存时 便发出缺页中断 中断处理程序保留CPU环境 分析原因后转入缺页中断处理程序缺页
37、率:访问页面成功次数为S,失败次数为F,总次数A=S+F 缺页率f=F/A假设被置换的页面被修改的概率为p,缺页中断处理时为ta,被置换页面没有被修改的缺页中断时间为tb,则t=p*ta+(1-p)*tb页面置换算法1. 最佳置换算法 选择被淘汰的页面时以后不使用或长时间内不再被访问的。无法实现2. 先进先出 淘汰最先进入内存的 不太好用有些页面老是被访问,如全局变量,常用函数3. 最近最久未使用算法LRU。配置移位寄存器R=Rn-1Rn-2Rn-3R2R1R0当进程访问时,将相应的R变为1,定时信号将每隔一定时间将寄存器右移一位或用栈 每当进程访问某页面时,将该页面的页号从栈中移出,将它压入
38、栈顶。栈顶始终是最新被访问的编号,栈底则是最近最久未使用的页面号4 最少使用置换算法LFU 移位寄存器记录页面被访问的频率,选择最少使用的淘汰5 Clock置换算法:首先调出的页是在最近一段时间内未被访问的页面。在将一个页面换出时,如果该页已被修改过,重新写回磁盘,未被则不必 还需考虑置换代价页面缓冲算法PBA 特点:显著降低了页面换进换出的频率,磁盘IO操作次数大大减少,正是因为开销减少才能使用先进先出置换算法实现 空闲页面链表 修改页面链表 影响页面换进换出效率的因素:页面置换算法,写回磁盘的频率,读入内存的频率抖动与工作集出现抖动的原因是因为系统中的进程太多,分配给进程的物理块太少,不能
39、满足进程的需求,频繁出现缺页。 每个进程大部分时间在页面换进换出,而没有做任何有效工作,导致处理机的利用率下降并趋于0进程发生缺页率的时间间隔与获得的物理块数有关所谓工作集是指某段时间间隔内,进程实际需要访问页面的集合。用进程过去某段时间内的行为作为程序在将来某段时间内行为的近似。抖动的预防方法:如果采用的是可变分配,则为了防止抖动可以采用局部置换把工作集融入到处理机调度中,当调度程序发现处理机利用率低下时,他将试图从外存中调入一个新作业进入内存利用L=S准则调节缺页率 L是缺页之间的平均时间 S是缺页平均服务时间如果L远大于S,说明很少发生缺页,磁盘的能力尚未得到充分利用。反之频繁发生缺页
40、只有接近时才是磁盘和处理机最大利用率 另外系统可以减少多道程序的数目来防止抖动请求分段存储管理方式分段保护:越界检查、存取控制检查、环保护机构IO系统管理的主要对象是IO设备和设备控制器主要任务 完成用户提出的IO请求,提高IO速率和设备利用率,让处理机和IO设备并行操作对设备的控制方式:采用轮询的可编程IO方式,采用中断的可编程IO方式,直接存储器访问方式,IO通道方式独占设备 打印机等 共享设备 磁盘错误处理 临时性错误 重试操作纠正 持久错误 向上层报告IO软件组织四个层次IO系统本身可分为如下三层:中断处理程序,设备驱动程序,设备独立性软件IO系统与高层之间的接口块设备接口 将抽象命令
41、映射为底层操作流设备接口 反映大部分字符设备的本质特征,用于控制字符设备的输入或输出网络通信接口 提供面向网络接口IO设备设备并不是直接与CPU进行通信,而是与设备控制器通信,所以它们之间有接口(三种类型信号线):数据信号线,控制信号线,状态信号线设备控制器基本功能:接受和识别命令,数据交换,标识和报告设备的状态,地址识别,数据缓冲区,差错控制设备控制器的组成:与处理机的接口(利用特定的IO指令),与设备的接口,IO逻辑内存映象IO:都采用k,当k值处于0-n-1范围时,是内存地址,如果kn,便认为是某个寄存器地址IO通道 减轻CPU负担通道类型:字节多路通道,按字节交叉方式每一个子通道连接一个设备 按时间片轮转方式共享主通道。不适用连接高速设备。数组选择通道 按数组方式进行数据传送的数组选择通道,每次只允许一个设备传输数据数组多路通道:结合上述两者的优点 分时并行操作通道价格贵 用量少对多中断元的处理方式:屏蔽中断 嵌套中断当一个进程请求IO操作,该进程将被挂起,直到IO设备完成IO操作后,设备控制器便向CPU发送一个中断请求,CPU响应后便转向中断处理程序,中断处理程序执行相应的处理,处理完后解除阻塞状态专心-专注-专业