湖南大学操作系统作业 (5)

合集下载

2022年湖南大学软件工程专业《操作系统》科目期末试卷B(有答案)

2022年湖南大学软件工程专业《操作系统》科目期末试卷B(有答案)

2022年湖南大学软件工程专业《操作系统》科目期末试卷B(有答案)一、选择题1、 I/O中断是CPU与通道协调I作的种于段,所以在()时,便要产生中断。

A.CPU执行“启动I/O”指令而被通道拒绝接收B.通道接受了CPU的启动请求C.通道完成了通道程序的执行D.通道在执行通道程序的过程中2、操作系统的I/O子系统通常由4个层次组成,每-层明确定义了与邻近层次的接口,其合理的层次组织排列顺序是()。

A.用户级I/O软件、设备无关软件、设备驱动程序、中断处理程序B.用户级I/O软件、设备无关软件、中断处理程序、设备驱动程序C.用户级I/O软件、设备驱动程序、设备无关软件、中断处理程序D.用户级I/O软件、中断处理程序、设备无关软件、设备驱动程序3、对重定位存储管理方式,应()。

A.在整个系统中设置一个重定位寄存器B.为每个程序设置个重定位寄存器C.为每个程序设置两个重定位寄存器D.为每个程序和数据都设置一个重定位寄存器4、一个页式虚拟存储系统,其并发进程数固定为4个。

最近测试了它的CPU利用率和用于页面交换的利用率,假设得到的结果为下列选项,()说明系统需要增加进程并发数?I.CPU利用率13%:磁盘利用率97%II.CPU利用97%;磁盘利用率3%III.CPU利用率13%:磁盘利用3%A. IB.IIC.IIID.I、III5、在一个请求分页系统中,采用LRU页面置换算法时,加入一个作业的页面走向为:1,3,2,1,1,3,5,1,3,2,1,5。

当分配给该作业的物理块数分别为3和4时,在访问过程中所发生的缺页率为()。

A.25%,33%B.25%,100%C.50%,33%D.50%,75%6、一个多道批处理系统中仅有P1,和P2两个作业,P2比P1晚5ms到达。

它们的计算和I/O操作顺序如下:P1:计算60ms,I/O 80ms,计算20msP2:计算120ms,I/O 40ms,计算40ms。

湖南大学操作系统期中考试卷(间隔排版)

湖南大学操作系统期中考试卷(间隔排版)

操作系统期中考试卷姓名:学号:班级:1、什么是多道程序技术,它带来了什么好处?(15分)答:多道程序设计,就是在内存中存放多个进程来执行人们赋予计算机的任务这些在内存中的多个进程共享计算机的硬件资源,如CPU,各种I/O设备等等。

多道程序设计的优点是(1)资源利用率高,多道程序共享计算机资源,从而使各种资源得到充分利用;(2)系统吞吐量大,CPU和其他资源保持“忙碌”状态。

这些优点是由多道程序设计的特点决定的,多道程序设计的特点有:1.多道:计算机内存中同时存放多道相互独立的程序。

2.宏观上并行:同时进入系统的多道程序都处于运行过程中,即它们先后开始了各自的运行,但都未运行完毕。

3.微观上串行:内存中的多道程序轮流占有CPU,交替执行。

2、什么是用户线程,什么是内核线程,简述其区别与联系。

(15分)答:用户线程指的是完全建立在用户空间的线程库,用户线程的建立,同步,销毁,调度完全在用户空间完成,不需要内核的帮助。

因此这种线程的操作是极其快速的且低消耗的。

内核线程就是内核的分身,一个分身可以处理一件特定事情。

这在处理异步事件如异步IO时特别有用。

内核线程的使用是廉价的,唯一使用的资源就是内核栈和上下文切换时保存寄存器的空间。

支持多线程的内核叫做多线程内核(Multi-Threads kernel )。

支持多线程的操作系统中一般采用三种用户线程与内核线程映射模型,分别是“一对一模型”、“多对一模型”、“多对多模型”。

3、论述短期,中期和长期调度之间的区别. (15分)答:长期调度,又称为作业调度或高级调度,这种调度将已进入系统并处于后备状态的作业按某种算法选择一个或一批,为其建立进程,并进入主机,当该作业执行完毕时,还负责回收系统资源,在批处理系统中,需要有作业调度的过程,以便将它们分批地装入内存,在分时系统和实时系统中,通常不需要长期调度。

它的频率比较低,主要用来控制内存中进程的数量。

中期调度,是能将进程从内存或从CPU竞争中移出,从而降低多道程序设计的程度,之后进程能被重新调入内存,并从中断处继续执行,这种交换的操作可以调整进程在内存中的存在数量和时机。

湖南大学操作系统作业 (3)

湖南大学操作系统作业 (3)
假设进程j刚出临界区且当前没有进程在临界区j将turn设为下一个想要进入wantin或已经等待进入incs的进程号若没有想进入的则又把turn设置回自己这是为了满足flagturnidle以便让i进入的情况再将自己的flag值设为idle然后j进入剩余区这时可以被选择进入临界区的进程只有除j以外的进程而不包括在剩余区的j若j想要再次进入临界区则需要重新到进入区才会被选择进入
The processes are assumed to have arrived in the order P1 , P2 ,P3 , P4 , P5 , all at time 0.
a. Draw four Gantt charts illustrating the execution of these processes using FCFS, SJF, a nonpreemptive priority (a smaller priority number implies a higher priority),and RR (quantum= 1) scheduling.
b.每个进程的周转时间:
FCFS
SJF
Priority
RR
P1
10
19
16
19
P2
11
1
1
2
P3
13
4
18
7
P4
14
2
19
4
P5
19
9
6
14
c.每个进程的等待时间:
FCFS
SJF
Priority
RR
P1
0
9
6
9
P2
10
0
0
1

2022年湖南大学计算机科学与技术专业《计算机系统结构》科目期末试卷B(有答案)

2022年湖南大学计算机科学与技术专业《计算机系统结构》科目期末试卷B(有答案)

2022年湖南大学计算机科学与技术专业《计算机系统结构》科目期末试卷B(有答案)一、选择题1、()属于MIMD系统结构。

A.各处理单元同时受同一个控制单元的管理B.各处理单元同时接受同一个控制单元送来的指令C.松耦合多处理机和多计算机D.阵列处理机2、非线性流水线是指( )A.一次运算中使用流水线中的多个功能段B.一次运算中要多次使用流水线中的某些功能段C.流水线中某些功能段在各次运算中的作用不同D.流水线的各个功能段在各种运算中有不同的组合3、在流水机器中,全局性相关是指( )。

A.先写后读相关B.先读后写相关C.指令相关D.由转移指令引起的相关4、外部设备打印机适合于连接到( )。

A.数组多路通道B.字节多路通道C.选择通道D.任意一种通道5、"从中间开始"设计的"中间"目前多数是在( )。

A.传统机器语言级与操作系统机器级之间B.传统机器语言级与微程序机器级之间C.微程序机器级与汇编语言机器级之间D.操作系统机器级与汇编语言机器级之间6、对汇编语言程序员透明的是()A.I/O方式中的DMA访问B.浮点数据表示C.访问方式保护D.程序性中断7、对系统程序员不透明的应当是()A.CACHE 存储器B.系列机各档不同的数据通路宽度C.指令缓冲寄存器D.虚拟存储器8、计算机系统的层次结构按照由高到低的顺序分别为()。

A.高级语言机器级,汇编语言机器级,传统机器语言机器级,微程序机器级B.高级语言机器级,应用语言机器级,汇编语言机器级,微程序机器级C.应用语言机器级,传统机器语言机器级,汇编语言机器级,操作系统机器级D.应用语言机器级,操作系统机器级,微程序机器级,传统机器语言机器级9、微指令由()直接执行。

A.微指令程序B.硬件C.汇编程序D.编译程序10、在操作系统机器级,一般用()程序()作业控制语句。

A.汇编程序,翻译B.汇编程序,解释C.机器语言,解释D.机器语言,翻译11、从计算机系统结构上讲,机器语言程序员所看到的机器属性是()A.计算机软件所要完成的功能B.计算机硬件的全部组成C.编程要用到的硬件组织D.计算机各部件的硬件实现。

湖南大学操作系统期末考试卷2014

湖南大学操作系统期末考试卷2014

湖南大学操作系统期末考试卷20141. 什么是多道程序技术,它带来了什么好处?答:多道程序技术即是指在内存中存放多道作业,运行结束或出错,自动调度内存中另一道作业运行。

多道程序主要优点如下:(1)资源利用率高。

由于内存中装入了多道程序,使它们共享资源,保持系统资源处于忙碌状态,从而使各种资源得以充分利用。

(2)系统吞吐量大。

由于CPU和其它系统资源保持“忙碌”状态,而且仅当作业完成或运行不下去时才切换,系统开销小,所以吞吐量大。

2. 系统调用是OS与用户程序的接口,库函数也是OS与用户程序的接口,这句话对吗?为什么?答:不正确,系统调用可以看成是用户在程序一级请求OS为之服务的一种手段。

而库函数则是在程序设计语言中,将一些常用的功能模块编写成函数,放在函数库中供公共选用。

函数库的使用与系统的资源分配并无关系,仍属用户程序而非OS程序,其功能的实现并不由OS完成,且运行时仍在用户状态而非系统状态。

3. Which of the following components of program state are shared across threads in a multithreaded process?a. Register valuesb. Heap memoryc. Global variablesd. Stack memory答:b、c 此处要简单说明原因4. 下面哪种调度算法会导致饥饿?并说明原因。

a. 先到先服务调度(FCFS) b. 最短作业优先调度(SJF) c. 轮转调度(RR) d. 优先级调度(Priority)答:b(长作业的可能饥饿)、d(低优先级的可能饥饿)5. 有结构文件可分为哪几类,其特点是什么?答:有结构文件可分为以下三类,分别是:(1)顺序文件。

它是指由一系列记录,按某种顺序排列所形成的文件。

(2)索引文件。

当记录为可变长度时,通常为之建立一张索引表,并为每个记录设置一表项,以加速对记录的检索速度。

湖大操作系统期中考试试卷试题-答案

湖大操作系统期中考试试卷试题-答案

1. (20%) 简述进程的概念。

画出进程的状态图,并就状态图中可能发生CPU 调度决策的四种情况进行说明。

结合进程控制块PCB对内核在两个进程间进行上下文切换过程进行描述。

参考答案:进程,执行中的程序;执行一个程序所需要的资源集的系统抽象;一个程序的运行实例;进程状态图:CPU调度决策可以如下四种情况下发生:当一个进程从运行状态切换到等待状态当一个进程从运行状态切换到就绪状态当一个进程从等待状态切换到就绪状态当一个进程终止时。

进程切换:2. (10%) 简述系统调用(System call)、系统程序(System program)的用途。

参考答案:系统调用,允许用户进程请求操作系统提供的服务。

由OS内核实现并提供访问接口,由用户程序调用,程序员使用。

系统程序,给用户提供基本的功能,这样用户在解决公共问题的时候不用写自己的程序。

提供程序开发和执行的环境,普通操作用户使用。

3. (15%) 线程通常可分为用户级线程和内核级线程,请回答两种线程之间的区别,并就两者之间的关系,对多线程模型的类型及其优缺点进行简要说明。

参考答案:用户线程不受内核支持,无需内核管理,使用用户级的线程库完成线程的管理,对用户线程的支持通常处于内核之上,通过一个用户级线程库(thread library)实现。

线程库提供了对线程的创建、调度和管理的支持,这无需来自内核的支持。

因为内核并不知道用户级线程的存在,所有的线程创建和调度工作都在用户空间完成,而且整个过程不受内核的干涉。

内核线程由操作系统直接支持:内核在内核空间内实现了线程的创建、调度和管理。

常见的多线程模型包括以下三种:多对一,优点线程管理由线程库在用户空间进行,效率较高,缺点一旦某个线程执行了阻塞,则整个进程也会被阻塞一对一,允许线程并发的执行并且运行在多处理器系统上,不会导致单一线程阻塞进程的情况,缺点用户线程和内核线程一一对应,开销较大,限制了系统线程的数量。

湖南大学操作系统作业(2)

湖南大学操作系统作业(2)

湖南大学操作系统作业(2)操作系统第二次作业第三章3.1 Describe the differences among short-term, medium-term,and long-term scheduling.描述短程,中程和长程调度的区别答:长程调度从作业池中选取进程,并装入内存开始执行,它的执行频率较慢,短程调度从准备执行的进程中选择进程并分配CPU时间片,这种调度方式必须频繁地为CPU分配新的进程,且有一定量的时间浪费在CPU的上下文切换上,而中程调度使用的是交换的策略,将进程从CPU竞争中移出,以降低多道程序设计的程度。

被交换出的进程会保存信息,并在换入时继续执行3.2 Describe the actions taken by a kernel to context-switch between pro-cesses. 描述系统内核在上下文切换时的动作答:在执行上下文切换时,在某个进程的挂起时(由中断或系统调用引起),先保存该进程状态至该进程控制块PCB中,包括进程的状态,编号,程序计数器PC,寄存器等等,而在程序从挂起状态重新执行时(由中断或系统调用引起),需要从对应的PCB表中读取信息,并从上次中断处继续执行。

3.4 Using the program shown in Figure 3.24, explain what will be output at Line A. 使用3.24的程序,解释LINE A的可能输出答:因为子进程会复制父进程的堆栈信息,在生成子进程前,堆栈中已经存放全局变量value=5的信息,然后子进程的修改只是在其独有堆栈中,而父进程的打印操作打印的是父进程的value值,故没有被修改过,为53.5 The correct producer-consumer algorithm in the ppt,allows only n-1 buffers to be full at any one time .Modify the algorithm to allow all buffersto be utilized fully. 课件中的代码只能存储n-1个缓存空间,要求修改代码实现所有缓存都能被利用答:本题是一个数据结构问题,在上学期的数据结构课中有所探讨,对于一个顺序队列来说,队空和队满的判断条件其实都是front==rear,所以书上采取的措施是舍弃一个存储单元,当队列中只剩下一个单元时就认为队满。

湖南大学操作系统期末考试卷2015

湖南大学操作系统期末考试卷2015

湖南大学操作系统期末考试卷2015诚信参加考试,考试作弊会带来严重后果!填写考试中心:湖南大学课程试卷2 63 74 85 86 87 128 159 15 15总分100考试课程名称:操作系统原理;课程代码:试卷编号:a;考试时间:120分专业课:湖南大学课程考试试卷题名应分实际分数线考官16条装订线(题名不得超过此线)名称:湖南大学教务处考试中心1。

在多道程序设计和分时环境中,几个用户同时共享系统。

这种情况会导致各种安全问题。

这两个问题是什么?b。

我们能在分时机中保证和专用机一样的安全程度吗?(6分)2。

讨论短期、中期和长期计划的区别?(6分)3。

尝试比较缓存和TLB的异同,并解释为什么TLB的大小比缓存小得多。

(7分)4。

系统如何检测抖动?一旦检测到系统颠簸,系统能做什么来消除这个问题?(8分)5。

如果是,说明原因并画一个样本图;如果没有,请说明原因。

(8分)6。

假设一个系统运行十个输入/输出受限任务和一个CPU受限任务假设将输入/输出限制任务分配给一个输入/输出操作的CPU计算,每次1毫秒,但每个输入/输出操作需要10毫秒才能完成。

同时,假设间接上下文切换需要0.1毫秒,所有进程都是长进程。

对于RR计划,在以下条件下的中央处理器利用率是多少:a .时间片是1毫秒b .时间片是10毫秒(8分钟)学生人数:7。

对于框中显示的过程。

使用SFJb的平均等待时间是多少?FCFSc。

时间量子= 10毫秒时的RR?(12分)8。

计算机使用4KB页面,进程逻辑地址空间是2 B,物理内存大小是20B.请问4B或8B是否更适合(1)页条目?为什么?(2)流程的页表大小是多少?为什么?(3)用于记录物理内存是否被占用的位图有多大?为什么?(15分) 9。

(15分)假设一个磁盘驱动器有5000个柱面,从0到2999。

驱动器正在处理来自气缸143的请求,并且先前的服务请求在气缸125上即将到来的服务订单是86,72,913,1774,948,1509,1022,1750,130从当前磁头位置开始,根据下面的磁盘调度算法,总磁头移动距离是多少?a)fcf sb)SST fc)scanc)look e)c-scanf)c-look10。

2022年湖南大学软件工程专业《操作系统》科目期末试卷A(有答案)

2022年湖南大学软件工程专业《操作系统》科目期末试卷A(有答案)

2022年湖南大学软件工程专业《操作系统》科目期末试卷A(有答案)一、选择题1、实时操作系统必须在()内处理完来白外部的事件。

A.一个机器周期B.被控对象规定时间C.周转时间D.时间片2、下列关于操作系统的论述中,正确的是()。

A.对于批处理作业,必须提供相应的作业控制信息B.对于分时系统,不一定全部提供人机交互功能C.从响应角度看,分时系统与实时系统的要求相似D.在采用分时操作系统的计算机系统中,用户可以独占计算机操作系统中的文件系统3、下列有关时间片的进程调度的描述中,错误的是()A.时间片越短,进程切换的次数越多,系统开销也越大,B.当前进程的时间片用完后,该进程状态由执行态变为阻塞态C.时钟中断发生后,系统会修改当前的进程在时间片内的剩余时间D.影响时间片大小的主要因素包括响应时间、系统开销和进程数量等4、使用TSL(TestandSetLock)指令实现进程互斥的伪代码如下所示。

do{while(TSL(&lock));criticalsection;lock=FALSE;}while(TRUE);下列与该实现机制相关的叙述中,正确的是()A.退出临界区的进程负责唤醒阻塞态进程B.等待进入临界区的进程不会主动放弃CPUC.上述伪代码满足“让权等待”的同步准则D.while(TSL(&lock))语句应在关中断状态下执行5、进程调度算法中,可以设计成可抢占式的算法有()。

A.先来先服务调度算法B.最高响应比优先调度算法C.最短作业优先调度算法D.时间片轮转调度算法6、虚拟设备是通过()技术实现的。

A.并行B.通道C.SPOOLingD.虚拟存储7、CPU输出数据的速度远远高于打印机的打印速度,为解决这矛盾可采用()。

A.并行技术B.通道技术C.缓冲技术D.虚拟技术8、在文件系统中,若文件的物理结构采用连续结构,则文件控制块FCB中有关文件的物理位置的信息包括(),I.首块地址 II.文件长度 III.索引表地址A.只有IIIB. I和IIC. II和IIID. I和III9、无结构文件的含义是()A.变长记录的文件B.索引文件C.流式文件D.索引顺序文件10、在分页虚拟存储管理中,“二次机会”调度策略和“时钟”调度策略在决定淘汰哪一页时,都用到了()。

湖南大学操作系统作业 (6)

湖南大学操作系统作业 (6)

操作系统第六次作业第十一章11.4 Some file systems allow disk storage to be allocated at different levels of granularity. For instance, a file system could allocate 4 KB of disk space as a single 4-KB block or as eight 512-byte blocks. How could we take advantage of this flexibility to improve performance? What modifications would have to be made to the free-space management scheme in order to support this feature?一些文件系统允许磁盘存储被分配成不同粒度级别,比如,一个文件系统可以分配4kb磁盘空间作为4kb的块,或者分成8个512b的块,我们怎样利用这种灵活性来提升性能?如果要支持这种特性,需要对空闲空间管理机制做什么修改?答:可以类比找零钱的过程,操作系统使用这种存储分配方式时,会优先先分配较大的粒度,在每次分配时都给当前待分配的文件空间分配一个最大连续的粒度块,这样相比于全部按照最小粒度来分配,减少了分配的块数,更加易于维护,且占用了更少的表空间;相比于全部按最大粒度级分配,减少了内部碎片的大小,节约了磁盘空间。

对于空间管理机制的要求是,如果某个文件释放了空间,需要对当前释放的空间做一个判断,比如如果某个文件释放了4个512b的块,而且这4个块后续又有4个512b的块,此时应该将其合并为一个4kb的块。

所以要做的是维护一个使用块表,和一张空闲块表,块表中存储块起始地址和块大小,在分配/释放的过程中遍历附近的块表,以实现合并块。

湖南大学操作系统实验报告-(3)

湖南大学操作系统实验报告-(3)

实验三内存页面置换算法的设计一、实习内容实现最近最久未使用(LRU)置换算法二、实习目的LINUX 中,为了提高内存利用率,提供了内外存进程对换机制,内存空间的分配和回收均以页为单位进行,一个进程只需将其一部分(段或页)调入内存便可运行,还支持请求调页的存储管理方式。

当进程在运行中需要访问某部分程序和数据时,发现其所在页面不在内存,就立即提出请求(向CPU 发出缺中断),由系统将其所需页面调入内存。

这种页面调入方式叫请求调页。

当CPU 接收到缺页中断信号,中断处理程序先保存现场,分析中断原因,转入缺页中断处理程序。

该程序通过查找页表,得到该页所在外存的物理块号。

如果此时内存未满,能容纳新页,则启动磁盘I/O 将所缺之页调入内存,然后修改页表。

如果内存已满,则须按某种置换算法从内存中选出一页准备换出,是否重新写盘由页表的修改位决定,然后将缺页调入,修改页表。

利用修改后的页表,去形成所要访问数据的物理地址,再去访问内存数据。

整个页面的调入过程对用户是透明的。

本实习要求学生通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的技术特点,掌握请求页式存储管理的页面置换算法。

三、实习题目实现最近最久未使用(LRU)置换算法[提示]:(1) 最近最久未使用(LRU)置换算法原理就是:当需要淘汰某页面时,选择当前一段时间内最久未使用过的页先淘汰,即淘汰距当前最远的上次使用的页。

例如:分配给该进程的页块数为3,一个20位长的页面访问序列为:12560,36536,56042,70435,则缺页次数和缺页率按表3-1 给出:缺页次数: 15缺页率: 15/20=0.75(2) 假定分配给该进程的页块数为3,页面访问序列长度为20。

本实验可以采用数组结构实现,首先随机产生页面序列,当发生请求调页时,若内存已满,则需要利用LRU算法,将当前一段时间内最久未使用过的页替换出去。

模拟程序的算法如图3-2。

四、源程序及程序中使用的数据结构、符号说明#include<iostream>#include<cstring>#include<vector>#include<cmath>#include<ctime>#include<cstdlib>#include<iomanip>using namespace std;void showState(int page[][20],int visit[][2],int t);int pick(int page[][20],int visit[][2],int time,int useTime[]); int min(int a,int b,int c);int main(){srand(time(NULL));int visit[20][2];memset(visit,-1,sizeof(visit));for(int i=0;i<20;i++)visit[i][0]=rand()%8;cout<<"20位长的随机访问序列为:"<<endl;for(int i=0;i<20;i++)cout<<setw(2)<<visit[i][0]<<" ";cout<<endl;int page[3][20];memset(page,-1,sizeof(page));int useTime[3];memset(useTime,0,sizeof(useTime));for(int t=0;t<20;t++){int p=pick(page,visit,t,useTime);//选中的页if(p<0){//命中第p+3页,设置此页命中,帧内容不变visit[t][1]=1;for(int x=0;x<3;x++)page[x][t]=page[x][t-1];useTime[p+3]=t;}else{// 此页不命中,帧内容替换visit[t][1]=0;if(t==0){page[p][t]=visit[t][0];}else{for(int y=0;y<3;y++)page[y][t]=page[y][t-1];page[p][t]=visit[t][0];}useTime[p]=t;}showState(page,visit,t);}int miss=0;for(int i=0;i<20;i++){if (visit[i][1]==0) miss++;}double per=1-(double)miss/20;int peri=per*100;cout<<"共miss"<<miss<<"/20次,"<<"命中率为" <<peri<<"%";return 0;}int pick(int page[][20],int visit[][2],int time,int useTime[]){//如果命中了,就返回下标-3,比如如果0帧命中,返回-3//如果不命中,选择一个最久没有访问到的帧,返回帧下标cout<<"输出usetime: ";cout<<useTime[0]<<" " <<useTime[1]<<" " <<useTime[2]<<" "<<endl;for(int i=0;i<3;i++){ //先遍历一遍,看有没有命中的if(page[i][time-1]==visit[time][0]){cout<<"time"<<time<<"此次要调度的页号"<<visit[time][0]<<"命中当前第"<<i<<"帧"<<endl;return i-3;}}for(int i=0;i<3;i++){//不存在命中,则从头开始选,先选帧空的情况if(page[i][time-1]==-1){cout<<"time"<<time<<"选中第"<<i<<"个空页" <<endl;return i;}}//都没有,就选最久没用过的int m=min(useTime[0],useTime[1],useTime[2]);cout<<"time"<<time<<"此次要调度的页号"<<visit[time][0]<<"选中第"<<m<<"个最久没有使用的页" <<endl;return m;}void showState(int page[][20],int visit[][2],int t){cout<<t<<"时刻访问状态"<<endl;cout<<"时间";for(int i=0;i<20;i++)cout<<setw(3)<<i<<" ";cout<<endl;cout<<"序列";for(int i=0;i<20;i++){cout<<setw(3)<<visit[i][0]<<" ";}cout<<endl;cout<<"零帧";for(int i=0;i<=t;i++){cout<<setw(3)<<page[0][i]<<" ";}cout<<endl;cout<<"一帧";for(int i=0;i<=t;i++){cout<<setw(3)<<page[1][i]<<" ";}cout<<endl;cout<<"二帧";for(int i=0;i<=t;i++){cout<<setw(3)<<page[2][i]<<" ";}cout<<endl;cout<<"命中";string str1="√";string str2="×";for(int i=0;i<=t;i++){string x=(visit[i][1]==1)? str1:str2;cout<<setw(3)<<x<<" ";}cout<<endl<<endl;}int min(int a,int b,int c){if(a<=b&a<=c) return 0;if(b<a&b<=c) return 1;if(c<a&c<b) return 2;}代码详细说明:在本例中,我设定了页面调度页块数为3,要访问的页面序列长度为20.从随机数获取20个访问的页面后进行页面调度算法,并将每次调度完的结果打印到控制台面板上,页面调度的具体算法为:维护一个useTime数组,其中存储着三个页块的上次使用时间,在每次向页块中调度内容/页块或页面访问命中页块时,更新被访问的页块的使用时间,如果页面访问不命中页块时,则选择useTime数组中最小的那一块,即最久没使用的页块,置换其中的内容。

湖大-操作系统-作业九

湖大-操作系统-作业九

1.First run with the flags -n 10 -H 0 -p BEST -s 0 to generate a few random allocations and frees. Can you predict what alloc()/free() will return? Can you guess the state of the free list after each request? What do you notice about the free list over time?ptr[0]:分配的大小为3,起始地址为1000。

释放时成功,则返回0,有两个空闲链表,一个基地址为1000,大小为3;另一个基地址为1003,大小为97.ptr[1]:分配的大小是5,起始地址为1003。

释放时成功,则返回0,有3个空闲链表,一个基地址为1000,大小为3;第二个为刚刚分配的首地址为1003,大小为5;第三个是一直空闲的首地址为1008,大小为92;ptr[2]:分配的大小是8,此时有散三个链表,,第三个为首地址1016,大小为84;释放时成功,则返回0,此时空闲链表会有4个,1、2成为碎片,第三个首地址为1008,大小为8,第四个尚未分配,首地址为1016,大小为84.ptr[3]:机制best fit,分配大小为8,此时空闲链表减少一个,可以分配之前释放过的大小正好为8的内存块。

ptr[4]:依据best-fit,分配大小为2,调用之前释放的大小为3的内存块,会生成一个大小为1,首地址为1002的空闲链表ptr[5]:依据best-fit,分配大小为7,调用之前首地址为1008,大小为8的内存块,然后生成一个首地址为1015,大小为1的空闲链表。

2.How are the results different when using a WORST fit policy to search the free list (-p WORST)? What changes?答:运行python malloc.py -n 10 -H 0 -p WORST -s 0,-p WORST是最差适应,也就是在整个空间中选取一块最大的内存片段。

2022年湖南大学计算机科学与技术专业《操作系统》科目期末试卷B(有答案)

2022年湖南大学计算机科学与技术专业《操作系统》科目期末试卷B(有答案)

2022年湖南大学计算机科学与技术专业《操作系统》科目期末试卷B(有答案)一、选择题1、现有一个容量为10GB的磁盘分区,磁盘空间以簇(Cluster)为单,位进行分配,簇的大小为4KB,若采用位图法管理该分区的空闲空问,即用.位(bit)标识一个簇是否被分配,则存放该位图所需簇的个数为()A.80B.320C.80KD.320K2、某文件系统的簇和磁盘扇区大小分别为1KB和512B。

若一个文件的大小为1026B,则系统分配给该文件的磁盘空间大小是()。

A.1026BB.1536BC.1538BD.2048B3、若某单处理器多进程系统中有多个就绪进程,则下列关于处理器调度的叙述中,错误的是()。

A.在进程结束时能进行处理器调度B.创建新进程后能进行处理器调度C.在进程处于临界区时不能进行处理器调度D.在系统调用完成并返回用户态时能进行处理器调度4、系统中有3个不同的临界资源R1,R2和R3,被4个进程pl,p2,p3 及p4共享。

各进程对资源的需求为:pl申请RI和R2,p2申请R2和R3,p3申请R1和R3,p4申请R2。

若系统出现死锁,则处于死锁状态的进程数至少是()。

A.1B.2C.3D.45、进程和程序的本质区别是()A.前者分时使用CPU,后者独占CPUB.前者存储在内存,后者存储在外存C.前者在一个文件中,后者在多个文件中D.前者为动态的,后者为静态的6、不会产生内部碎片的存储管理是()。

A.分页式存储管理B.分段式存储管理C.固定分区式存储管理D.段页式存储管理7、下列关于虚拟存储的叙述中,正确的是()A.虚拟存储只能基于连续分配技术B.虚拟存储只能基于非连续分配技术C.虚拟存储容量只受外存容量的限制D.虚拟存储容量只受内存容量的限制8、下列选项中,操作系统提供给应用程序的接口是()。

A.系统调用B.中断C.库函数D.原语9、设计实时操作系统时,首先应该考虑系统的()。

A.可靠性和灵活性B.实时性和可靠性C.分配性和可靠性D.灵活性和实时性10、若I/O所花费的时间比CPU的处理时间短很多,则缓冲区()A.最有效B.几乎无效C.均衡D.以上都不是11、在采用SPOOLing技术的系统中,用户暂时未能打印的数据首先会被送到()存储起来。

湖南大学操作系统作业-(4)

湖南大学操作系统作业-(4)

操作系统第二次作业第七章7.2 Consider the deadlock situation that could occur in the dining-philosophers problem when the philosophers obtain the chopsticks one at a time. Discuss how the four necessary conditions for deadlock indeed hold in this setting. Discuss how deadlocks could be avoided by eliminating any one of the four conditions.考虑哲学家进餐问题中可能出现死锁的情况,即当哲学家一次拿一只筷子时,讨论4个死锁必要条件的存在性,讨论如何通过避免四种情况之一来消除死锁答死锁的4个必要条件为:互斥、占有等待、非抢占、循环等待考虑互斥性,A哲学家拿了筷子C1后该C1筷子在未被释放资源前无法被其他哲学家B获取,故互斥。

这个问题可以通过哲学家的筷子可以互相使用来实现。

考虑占有等待性,A哲学家必须先占有左手筷子C1,并等待右手筷子C2,而C2可能为其他哲学家所占有。

这个问题可以通过设置哲学家在申请更多筷子时,必须释放现已分配的所有筷子,或协议每个哲学家在进餐前申请并获得所有筷子,即预先静态分配。

考虑非抢占性,A哲学家占有筷子C1时不能被B哲学家抢占。

这个问题可以通过协议某个哲学家占有筷子并申请另一个不能被立即分配的筷子时,那么其现已拥有的筷子均可被抢占,即自己剥夺自己。

考虑循环等待,出现循环等待的可能性为:每个哲学家同时只拥有左手的筷子而等待右手的筷子,而右手的筷子只能通过右手的哲学家释放其左手的筷子才能得到,故出现循环等待。

这个问题可以通过对筷子进行编号,对筷子的申请顺序由低到高来实现。

7.6 Consider a system consisting of four resources of the same type that are shared by three processes, each of which needs at most two resources.Show that the system is deadlock-free.考虑一个由4种相同资源、3个共享进程,每个需要2个该资源的系统,试证明这个系统不会出现死锁答:这个问题比较简单,“抽屉原理”表明,4个资源分配给3个进程,则至少有一个进程分配到2个资源,那么该进程就得以运行,运行结束时,该进程会释放已分配的2个资源给系统里剩下的两个进程,这时4个资源分配给2个进程,不会出现死锁。

(完整)湖南大学计算机复试笔试真题-操作系统

(完整)湖南大学计算机复试笔试真题-操作系统

1.假设某系统中有4种资源,在某时刻系统中共有4个进程。

进程P1、P2、P3、P4的最大资源需求数向量1)若进程P2发出资源请求量(1,0,1,1),系统能否将资源分配给它?2)若进程P4发出资源请求量(1,0,0,2)呢?2。

在读者\写者问题中,读者和写者要遵守的约束条件改进为如下:1)允许多个读者同时从数据区读数据2)当有读者正在读数据时,不允许写者写数据。

但当有读者正在读数据时,则比写者晚到的读者必须等到所有写者完成写操作后,方可读取数据3)任何时刻只允许一个写者向数据区写数据4)若有写者正在写数据,则不允许读者读数据试用PV操作实现该读者\写者问题.3.某磁盘扇区采用双交叉编号,每道9扇区,每扇区512字节,磁道旋转速度为540周\分,则按双交叉编号顺序读一磁道所需时间为多少(假定读0号扇区要1\2的旋转时间,每扇区的数据传送时间为12ms)?数据传输率为多少?(保留一位小数)4。

UNIX的i节点中定义了13个指针,用来存放13个物理块号。

把文件分成小型、中型、大型、巨型四类,分别采用直接、一次间接、二次间接、三次间接索引方法。

若每块大小为1KB,每个块号占4B,试计算每类文件可能的大小范围是多少?5。

某系统中有ABCDE五个进程,每个进程的执行时间分别为10ms、1ms、2ms、1ms、5ms,每个进程的优先数分别为3、5、2、1、4(优先数大的优先级高),进程的提交时间分别为0,1,2,3,4ms,求当系统分别采用先来先服务算法、可剥夺的优先级算法、时间片轮转法(时间片为1ms)时:1)各进程的执行情况2)平均周转时间6。

试分析说明下列算法不保证互斥算法:两进程P0和P1共享下列变量:var flag :array[0…1] of Boolean;turn:0…1;初值:flag[0]=false; turn=0; flag[1]=false;进程Pi:repeatflag[i]=ture;while turn=\i dobegin while flag[1—i] do ship;turn=i;end;CS;flag[i]=false;NCS;until false;7.进程调度中可抢占式和非抢占式哪种系统开销更大?为什么?8。

(完整)湖南大学年操作系统期末试卷

(完整)湖南大学年操作系统期末试卷

答案仅为参考1.Which of the following scheduling alogrithms could result in starvation and why?(1)First—come,first-served(2)Shortest job first(3)Round robin(4)Priority【来自课后习题】答:最短工作优先调度和优先级调度算法会引起饥饿。

优先级调度算法会使某个低优先级进程无穷等待CPU,此时,可能发生两种情况,要么进程最终能进行,要么系统最终崩溃并失去所有未完成低优先级进程.解决方式——老化,老化是一种技术,以逐渐增加在系统中等待很长时间的进程的优先级.(最短工作优先调度会使工作长度最大的进入无限等待CPU)2.Can a resource allocation graph (资源分配图) have cycle without deadlock(死锁)? If so,state why and draw a sample graph(画一个死锁点的图); if no,state why not?答:有死锁,死锁部分为P2—R4—P5-R3。

3.What is the cause of thrashing(颠簸)? How dose the system detect(检测)thrashing? Once it detects thrashing,what can the system do to eliminate(消除)this problem?【来自课后习题】答:分配的页数少于进程所需的最小页数时发生颠簸,并迫使它不断地页错误。

该系统可通过对比多道程序的程度来估计CPU利用率的程度,以此来检测颠簸。

降低多道程序的程度可以消除颠簸。

4.某Demand Paging system,拥有逻辑空间64页,每页2KB,拥有物理空间1MB.(1)写出逻辑地址的格式。

湖南大学操作系统实验报告-(3)

湖南大学操作系统实验报告-(3)

实验三内存页面置换算法的设计一、实习内容实现最近最久未使用(LRU)置换算法二、实习目的LINUX 中,为了提高内存利用率,提供了内外存进程对换机制,内存空间的分配和回收均以页为单位进行,一个进程只需将其一部分(段或页)调入内存便可运行,还支持请求调页的存储管理方式。

当进程在运行中需要访问某部分程序和数据时,发现其所在页面不在内存,就立即提出请求(向CPU 发出缺中断),由系统将其所需页面调入内存。

这种页面调入方式叫请求调页。

当CPU 接收到缺页中断信号,中断处理程序先保存现场,分析中断原因,转入缺页中断处理程序。

该程序通过查找页表,得到该页所在外存的物理块号。

如果此时内存未满,能容纳新页,则启动磁盘I/O 将所缺之页调入内存,然后修改页表。

如果内存已满,则须按某种置换算法从内存中选出一页准备换出,是否重新写盘由页表的修改位决定,然后将缺页调入,修改页表。

利用修改后的页表,去形成所要访问数据的物理地址,再去访问内存数据。

整个页面的调入过程对用户是透明的。

本实习要求学生通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的技术特点,掌握请求页式存储管理的页面置换算法。

三、实习题目实现最近最久未使用(LRU)置换算法[提示]:(1) 最近最久未使用(LRU)置换算法原理就是:当需要淘汰某页面时,选择当前一段时间内最久未使用过的页先淘汰,即淘汰距当前最远的上次使用的页。

例如:分配给该进程的页块数为3,一个20位长的页面访问序列为:12560,36536,56042,70435,则缺页次数和缺页率按表3-1 给出:缺页次数: 15缺页率: 15/20=0.75(2) 假定分配给该进程的页块数为3,页面访问序列长度为20。

本实验可以采用数组结构实现,首先随机产生页面序列,当发生请求调页时,若内存已满,则需要利用LRU算法,将当前一段时间内最久未使用过的页替换出去。

模拟程序的算法如图3-2。

四、源程序及程序中使用的数据结构、符号说明#include<iostream>#include<cstring>#include<vector>#include<cmath>#include<ctime>#include<cstdlib>#include<iomanip>using namespace std;void showState(int page[][20],int visit[][2],int t);int pick(int page[][20],int visit[][2],int time,int useTime[]); int min(int a,int b,int c);int main(){srand(time(NULL));int visit[20][2];memset(visit,-1,sizeof(visit));for(int i=0;i<20;i++)visit[i][0]=rand()%8;cout<<"20位长的随机访问序列为:"<<endl;for(int i=0;i<20;i++)cout<<setw(2)<<visit[i][0]<<" ";cout<<endl;int page[3][20];memset(page,-1,sizeof(page));int useTime[3];memset(useTime,0,sizeof(useTime));for(int t=0;t<20;t++){int p=pick(page,visit,t,useTime);//选中的页if(p<0){//命中第p+3页,设置此页命中,帧内容不变visit[t][1]=1;for(int x=0;x<3;x++)page[x][t]=page[x][t-1];useTime[p+3]=t;}else{// 此页不命中,帧内容替换visit[t][1]=0;if(t==0){page[p][t]=visit[t][0];}else{for(int y=0;y<3;y++)page[y][t]=page[y][t-1];page[p][t]=visit[t][0];}useTime[p]=t;}showState(page,visit,t);}int miss=0;for(int i=0;i<20;i++){if (visit[i][1]==0) miss++;}double per=1-(double)miss/20;int peri=per*100;cout<<"共miss"<<miss<<"/20次,"<<"命中率为" <<peri<<"%";return 0;}int pick(int page[][20],int visit[][2],int time,int useTime[]){//如果命中了,就返回下标-3,比如如果0帧命中,返回-3//如果不命中,选择一个最久没有访问到的帧,返回帧下标cout<<"输出usetime: ";cout<<useTime[0]<<" " <<useTime[1]<<" " <<useTime[2]<<" "<<endl;for(int i=0;i<3;i++){ //先遍历一遍,看有没有命中的if(page[i][time-1]==visit[time][0]){cout<<"time"<<time<<"此次要调度的页号"<<visit[time][0]<<"命中当前第"<<i<<"帧"<<endl;return i-3;}}for(int i=0;i<3;i++){//不存在命中,则从头开始选,先选帧空的情况if(page[i][time-1]==-1){cout<<"time"<<time<<"选中第"<<i<<"个空页" <<endl;return i;}}//都没有,就选最久没用过的int m=min(useTime[0],useTime[1],useTime[2]);cout<<"time"<<time<<"此次要调度的页号"<<visit[time][0]<<"选中第"<<m<<"个最久没有使用的页" <<endl;return m;}void showState(int page[][20],int visit[][2],int t){cout<<t<<"时刻访问状态"<<endl;cout<<"时间";for(int i=0;i<20;i++)cout<<setw(3)<<i<<" ";cout<<endl;cout<<"序列";for(int i=0;i<20;i++){cout<<setw(3)<<visit[i][0]<<" ";}cout<<endl;cout<<"零帧";for(int i=0;i<=t;i++){cout<<setw(3)<<page[0][i]<<" ";}cout<<endl;cout<<"一帧";for(int i=0;i<=t;i++){cout<<setw(3)<<page[1][i]<<" ";}cout<<endl;cout<<"二帧";for(int i=0;i<=t;i++){cout<<setw(3)<<page[2][i]<<" ";}cout<<endl;cout<<"命中";string str1="√";string str2="×";for(int i=0;i<=t;i++){string x=(visit[i][1]==1)? str1:str2;cout<<setw(3)<<x<<" ";}cout<<endl<<endl;}int min(int a,int b,int c){if(a<=b&a<=c) return 0;if(b<a&b<=c) return 1;if(c<a&c<b) return 2;}代码详细说明:在本例中,我设定了页面调度页块数为3,要访问的页面序列长度为20.从随机数获取20个访问的页面后进行页面调度算法,并将每次调度完的结果打印到控制台面板上,页面调度的具体算法为:维护一个useTime数组,其中存储着三个页块的上次使用时间,在每次向页块中调度内容/页块或页面访问命中页块时,更新被访问的页块的使用时间,如果页面访问不命中页块时,则选择useTime数组中最小的那一块,即最久没使用的页块,置换其中的内容。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

操作系统第五次作业第八章Explain the difference between internal and external fragmentation.简述内部碎片和外部碎片的区别答:内部碎片存在于块的内部,如内存块大小为512k,而某逻辑内存要求一个200k大小的块,此时操作系统会分配给它一个大小为512k的块(由于块是内存分配的最小单元),所以会造成了312k大小的内存碎片,这部分碎片即使是空的也无法使用,称作内部碎片。

减少内部碎片可以通过减小块的大小来解决。

外部碎片是指在连续内存分配的进程装入和移出内存的过程中,空闲的内存空间被分成了较多小片段,这些小片段不连续,所以无法被连续分配,这样会造成即使碎片大小之和大于新进程所需内存,但是也无法给新进程分配的情况,这就是外部碎片。

外部碎片可以通过紧缩来解决。

Given five memory partitions of 100 KB, 500 KB, 200 KB,300 KB, and 600KB (in order), how would each of the first-fit,best-fit, and worst-fit algorithms place processes of 212 KB,417 KB, 112 KB, and 426 KB (in order) Which algorithm makes the most efficient use of memory给出100kb,500kB,200kB,300kB,600kB大小的内存空间(按顺序),对于首次适应,最佳适应和最差适应算法,要按顺序放置212kB,417kB,112kB和426kB 大小的进程会是怎样安排的哪个算法的内存利用率最高答:首次适应是每次从头开始找,直到找到第一个比当前要放置的内存大小要大的内存空间时,放置该内存。

最佳适应是每次遍历内存空间一次,找大于当前要放置的内存块大小要大的中间的最小者,放置该内存。

最差适应则相反,是取大于当前内存大小中的最大者。

下面给出三种存储分配方式的最终分配结果:首次适应:对于212kB的进程,选择第一个大于它大小的内存空间,为500kB,并分配给它相应大小的空间,该部分剩余大小500-212=288KB对于417kB的进程,选择第一个大于它的大小的内存空间,为600kB,分配给它相应大小的空间,该部分剩余大小为600-417=183KB对于112kB的进程,选择第一个大于它大小的内存空间,为288kB,分配给它相应大小的空间,该部分剩余大小288-112=176KB对于426kB的进程,找不到比他大的内存空间,无法分配,只能等待其他进程释放空间才能为它分配空间。

内存利用率为(212+417+112)/(100+500+200+300+600) *100%=%最佳适应:对于212kB的进程,选择大于它大小的内存空间中的最小者,为300kB,并分配给它相应大小的空间,该部分剩余大小300-212=88KB对于417kB的进程,选择大于它大小的内存空间中的最小者,为500kB,分配给它相应大小的空间,该部分剩余大小为500-418=83kB对于112kB的进程,选择大于它大小的内存空间中的最小者,为200kB,分配给它相应大小的空间,该部分剩余大小200-112=88kB对于426kB的进程,选择大于它大小的内存空间中的最小者,为600kB,分配相应大小的空间,该部分生育大小为600-426=174kB内存利用率为(212+417+112+426)/(100+500+200+300+600) *100%=%最差适应:对于212kB的进程,选择大于它大小的内存空间中的最大者,为600kB,并分配给它相应大小的空间,该部分剩余大小600-212=388kB对于417kB的进程,选择大于它大小的内存空间中的最大者,为500kB,分v1.0 可编辑可修改配给它相应大小的空间,该部分剩余大小为500-417=83kB对于112kB的进程,选择大于它大小的内存空间中的最大者,为388kB,分配给它相应大小的空间,该部分剩余大小388-112=276kB对于426kB的进程,找不到比他大的内存空间,无法分配,只能等待其他进程释放空间才能为它分配空间。

内存利用率为(212+417+112)/(100+500+200+300+600) *100%=%综上所述,本例中最佳适应的内存利用率最高,为%Consider a paging system with the page table stored in memory.a. If a memory reference takes 200 nanoseconds, how long does a paged memory reference takeb. If we add associative registers, and 75 percent of all page-table references are found in the associative registers, what is the effective memory reference time (Assume that finding a page-table entry in the associative registers takes zero time, if the entry is there.)考虑一个分页系统将页表存在内存中A 如果一个内存访问占用200ns,那么一个页面内存查询占用多少时间B 如果添加相关寄存器,且所有页表中的75%的访问可以在寄存器中找到,那么有效内存访问时间为多少(假设寻找页表条目不花时间)答:A 首先访问内存中的页表项,耗时200ns,然后在页表项中查询对应的物理地址(0ns),然后根据对应物理地址去访问内存,耗时200ns,一共耗时为400ns。

B (书上翻译associative registers是TLB,感觉不是很恰当,但是只能当作TLB来理解)首先去查找TLB表,如果命中(75%的概率),就直接得到了物理地址,此时可以直接访问物理地址,耗时200ns。

如果TLB不命中(25%的概率),此时要按照A中的步骤先访问页表再访问主存,耗时400ns。

所以耗时期望E(t)=200*+400*=250nsConsider the following segment table:Segment Base Length0 219 6001 2300 142 90 1003 1327 5804 1952 96What are the physical addresses for the following logical addresses a.0,430 b. 1,10 c. 2,500 d. 3,400 e. 4,112考虑下面的段表,要求对应逻辑地址的物理地址是多少答:A 0,430 先查询段号为0的基地址为219,然后判断是否在段内,由于430<600,所以在段内,对应物理地址为219+430=649B 1,10,首先查找段号为1的基地址2300,然后判断是否在段内,由于10<14,所以在段内,对应物理地址为2300+10=2310C 2,500,首先查找段号为2的基地址90,然后判断是否在段内,由于500>100,所以不在段内,访问非法D 3,400,首先查找段号为3的基地址1327,然后判断是否在段内,由于400<580,所以在段内,对应物理地址为1327+400=1727E 4,112,首先查找段号为4的基地址1952,然后判断是否在段内,由于112>96,所以不在段内,访问非法第九章A certain computer provides its users with a virtual-memory space of 2 32 bytes. The computer has 2 18 bytes of physical memory. The virtual memory is implemented by paging, and the page size is 4096 bytes.A user process generates the virtual address . Explain how the system establishes the corresponding physical location. Distinguish between software and hardware operations.某电脑提供给虚拟存储一个2^32b大小的空间,电脑只有2^18b大小的物理存储,虚拟存储以分页存储,页面大小4096b,一个用户进程产生虚拟地址,解释系统如果建立对应的物理地址,区分硬件和软件的操作。

答:化成二进制表示为0001 0001 0001 0010 0011 0100 0101 0110 由于虚存有32位地址,页面大小为2^12b,所以页偏移就有12位,取虚拟地址的后12位为页偏移,这也是物理地址上的偏移,而虚拟地址剩余的20位则是页号,物理地址剩余的6位是物理页号在查询时,操作系统先根据前20位0001 0001 0001 0010 0011查询页表,查找到对应的物理页号,这是软件操作;然后找到物理页号后计算出对应的物理地址,这也属于软件操作。

而在查询页表时,如果发生缺页,此时对页面的调度则是硬件操作。

A page-replacement algorithm should minimize the number of page faults. We can do this minimization by distributing heavily used pages evenly over all of memory, rather than having them compete for a small number of page frames. We can associate with each page frame a counter of the number of pages that are associated with that frame. Then,to replace a page, we search for the page frame with the smallest counter.页面调度算法应该最小化页面错误,我们可以通过分配常被使用的页面给其他内存来做最小化操作,而不是让他们竞争一小片内存。

相关文档
最新文档