操作系统精髓与设计重点店课后习题整理

1 3 4 9 7 8 11 1

2 6章

第10章多CPU调度,实时调度

第1章作业:习题P25 1.3 1.8 1.9(更正印刷错误106)

1.3操作系统的大神求解答假设有一个32位微处理器,其32位的指令由两个域组成:第一个字节包含操作码,其余部分为一个直接操作数或一个操作数地址。如果微处理器总线具有如下特征,分析

a、最大可直接寻址的存储器能力为多少?以字节为单位

如果微处理器总线具有如下特征,分析对系统速度的影响:

b、(1)一个32位局部地址总线和一个16位局部数据总线,或者

(2)一个16位局部地址总线和一个16位局部数据总线。

C、程序计数器和指令寄存器分别需要多少位

答案:没必要全写捡重点

(定长)指令32位,1字节操作码,则后3字节为立即数或存地址

(a) 最大可直接寻址

直接寻址是一种基本的寻址方法,其特点是:在指令格式的地址的字段中直接指出操作数在存的地址。由于操作数的地址直接给出而不需要经过某种变换,所以称这种寻址方式为直接寻址方式。2^24

(b) 总线问题

地址总线32位,数据总线16位

直接寻址存储器24位,bus32位,地址传送一次即可;但指令32位,操作数32位(因为是32位微处理器),要两次传送

地址总线16位,数据总线16位

传送地址,传送指令/数据全部需要2次。地址可视作:先行地址后列地址

(c) PC和IR 至少:PC24位,IR8位

一般:PC32bit IR 32bit

更现实复杂情形:是否分段,使用段寄存器; 直接寻址中逻辑地址/位移/偏移offset,与有效地址effective address区别

OS中,逻辑地址与物理地址

1.8一个DMA模块从外部设备给存传送字节,传送速度为9600位每秒(b/s)。处理器可以每秒100万次的速度取指令,由于DMA活动,处理器的速度将会减慢多少?

答案:没必要全写捡重点

看清楚题干:每秒100万次取指令,即1M/s取一次指令,不是100M!

该CPU主频多少不知,是否使用cache不知,执行一条指令多少时钟周期不知,此题中无需知道

还假设,此CPU只取指令要访问存,执行指令不需要读写数据,不访存. 还假设DMA一次访问存传送1个字节凭什么如此假设?

9600b/s=1200B/s 即1s中要传送1200次,而原本CPU要1M次访存,现在因DMA要减少1200次,所以影响是1200/1M=0.12%

1.9

一台计算机包括一个CPU和一台I/O设备D,通过一条共享总线连接到主存储器M,数据总线的宽度为1个字。CPU每秒最多可执行106条指令,平均每条指令需要5个机器周期,其中3个周期需要使用存储器总线。存储器读/写操作使用1个机器周期。假设CPU正在连续不断地执行后台程序,并且需要保证95%的指令执行速度,但没有任何I/O指令。假设1个处理器周期等于1个总线周期,现在要在M和D之间传送大块数据。

a.若使用程序控制I/O,I/O每传送1个字需要CPU执行两条指令。请估计通过D的I/O数据传送的最大可能速度。

b.如果使用DMA传送,请估计传送速度。

答案:没必要全写捡重点

题干信息:多少位CPU不知,字长多少位不知,以处理器周期为单位,访问存(读1条指令读1字数据)要1周期,执行1指令需要5周期。CPU每秒最多执行10^6条指令

程序IO:传送1字要2条指令

限制只能有5%的CPU处理用于IO

程序IO:传送1字要2条指令

限制只能有5%的CPU处理用于IO

此限制下,1秒可执行用于IO的指令为5% * 10^6条指令

而2条指令才可传送1字数据,

所以每秒IO最大可传送的字为0.5*5%*10^6=25000字/秒

DMA情形:最大速度:在CPU执行后台程序时,总共能找到多少周期可以利用。1周期传送1字

5%CPU处理能力,全部可用于DMA,可执行指令条数为5%*10^6,而1条有5周期,所以可传送字:5*5%*10^6 个字

DMA情形:最大速度:在CPU执行后台程序时,总共能找到多少周期可以利用。1周期传送1字

最大吗?要见缝插针!

后台程序执行时,执行1条指令共5个周期,但只在3个周期中访存,还有2个没有使用,DMA可用这两个周期

DMA情形:最大速度:在CPU执行后台程序时,总共能找到多少周期可以利用。1周期传送1字

最后,DMA最大速度为:

10^6(0.05 ×5 + 0.95 ×2) = 2.15 ×10^6 即2.15M字/秒

第三章:进程描述与控制P103 3.5,3.14 P104 3.11

1、概念:交换(swapping):操作系统将存中进程的容或部分容写入硬盘,或反之的操作。进程:具有一定独立功能的程序关于一个数据集合的一次运行活动。

2. 进程有哪三个基本状态?试说明状态转换的典型原因,图示。

(1)处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程就由就绪状态变为执行状态

(2)正在执行的进程因发生某事件而无法执行,如暂时无法取得所需资源,则由执行状态转变为阻塞状态。

(3)正在执行的进程,如因时间片用完或被高优先级的进程抢占处理机而被暂停执行,该进程便由执行转变为就绪状态。

(2)状态转换1不会立即引起其他状态转换。状态转换2必然立即引发状态转换1:状态转换2发生后,进程调度程序必然要选出一个新的就绪进程投入运行,该新进程可能是其他进程,也可能是刚从执行状态转换成就绪状态的那个进程。

状态转换3可能立即引发状态转换1:状态转换3发生后,若就绪队列非空,则进程调度程序将选出一个就绪进程投入执行。状态转换4可能引发状态转换

1:状态转换4发生后,若CPU空闲,并且没有其他进程竞争CPU,则该进程将被立即调度。另外,状态转换4还可能同时引发状态转换1和2:若系统采用抢占调度方式,而新就绪的进程具备抢占CPU的条件(如其优先权很高),则它可立即得到CPU转换成执行状态,而原来正在执行的进程则转换成就绪状态。

3.5什么是交换,目的

是什么:操作系统将存中进程的容或部分容写入硬盘,或反之的操作。

目的:将暂时无法运行的进程(阻塞状态)从存中移出,空出存,以便在存中装入尽可能多的可运行的进程。

3.14模式切换与进程切换是什么有什么区别

是什么:为便于OS实现和管理,处理器一般支持两种(以上的)执行模式:用户态和核态。OS在核态下运行,用户进程在用户态下运行。

从用户态到核态的改变或反之,称之为模式切换。

用户进程运行时,如处理器响应中断,进入中断处理程序,则由用户态进入核态;而中断返回后,从核态返回用户态。

区别:模式切换不一定会改变当前运行的进程的状态,而进程切换过程中必然会出现模式切换。

模式切换(对应的中断处理)保存/恢复的状态信息少,而进程切换需要保存/恢复的状态信息多。

3.11 中断

A)中断如何支持多道程序设计:

1.外部设备具备中断能力后,CPU才可能在外部设备开始工作到完成之间执行其它程序;(轮询方式中,外部设备工作完成之前,CPU一直循环测试外部设备的状态,不可能执行其它程序)

2.利用中断方式,操作系统可以及时获得控制权,在多个程序之间选择调度。

B)中断如何支持错误处理:

在硬件发生异常时,如奇偶校验错,掉电等,以特殊中断形式出现;

程序中出现系统错误时,如除零,地址越界,(无访问权限的)非法访问,以特殊中断形式出现;

程序中应用语义级的错误,也可以中断形式出现;

各种错误统一地用中断方式处理,只要分别编制相应的中断处理程序即可,

简化了硬件设计,也方便了用户程序开发。

C)对于单线程而言,说明一个能够引起中断并且导致进程切换的情景,另外说明能引起中断但没有进程切换的例子

导致切换例:用户进程要求输入,则在启动外部设备工作后,用户进程进入阻塞状态,进行进程切换;

不导致切换例:发生时钟中断,当前运行的用户进程的时间片还未用完,则继续执行。(另,若不限定为外部中断,则用户进程执行系统调用时,发生中断,若系统调用不涉及IO,则不会发生进程切换)

第四章线程对称处理SMP和微核

概念:线程是进程中一个相对独立的执行流,是CPU调度的单位。

1、为什么要引入线程,多线程有何优点?

操作系统引入线程后,可以简化并发程序的设计,方便在一个进程实现多个并行处理。

多线程的优点包括:实现进程并行处理;方便数据共享;降低了切换时的系统开销;提高了CPU的利用率;改善了程序的响应性。

2.比较TCB与PCB容。

TCB:线程标识,线程状态(运行,就绪,阻塞),处理器状态,(堆栈,私用数据段的)指针PCB: (TCB中没有的)进程的虚拟空间指针,文件等资源,进程的权限,进程间通信等。

3.比较用户级线程与核级线程的异同

用户级:优点:不需要OS支持,调度方式灵活,开销小;缺点:不能并行,一线程阻塞,其它线程也不能运行。

核级:优点:可并行,一线程阻塞不会阻塞其它线程,缺点:创建切换开销相对大

第九章:单处理器调度P291 9.1, 9.5, 9.10

9.1简要描述三种类型的处理器调度

长程调度:决定加入到待执行的进程池中;中程调度:决定加入到部分或全部在主存中的进程集合中;短程调度:决定哪一个可用进程将被处理器执行。

9.5抢占式和非抢占式有什么区别

非抢占:在这种情况下,一旦进程处于运行态,他就不断执行直到终止,或者为等待

I/O

或请求某些操作系统服务而阻塞自己。抢占:当前正在运行的进程可能被操作系统中断,并转移到就绪态。关于抢占的决策可能是在一个新进程到达时,或者在一个中断发生后把一个被阻塞的进程置为就绪态时,或者基于周期性的时间中断。

9.10简答定义最高响应比优先调度

调度基于抢占原则并且使用动态优先级机制。当一个进程第一次进入系统时,它被放置在

RQ0。当它第一次被抢占后并返回就绪状态时,它被防止在RQ1。在随后的时间里,每当它被抢占时,它被降级到下一个低优先级队列中。一个短进程很快会执行完,不会在就绪队列中降很多级。一个长进程会逐级下降。因此,新到的进程和短进程优先于老进程和长进程。在每个队列中,除了在优先级最低的队列中,都使用简单的FCFS

机制。一旦一个进程处于优先级最低的队列中,它就不可能再降低,但是会重复地返回该队列,直到运行结束。

补充题:分析多级反馈算法(指出其目标,假设,容及效果)

反馈调度算法分析:目标

系统效率:减少平均等待时间,提高系统呑吐量

公平:减少饥饿现象出现或减轻程度

尽量减少系统开销

反馈调度算法分析:假设,理由

程序由CPU阵发期,IO阵发期交替构成

程序完成一次IO后,紧接着可能是一个短暂的IO阵发期

程序一开始,一般都是一个CPU阵发期

程序运行时间有长有短;长时间运行没有结束的程序可能还需要很长时间才能结束

反馈调度算法分析:容

设置多个分成优先级不同的就绪队列,高优先级队列的时间片短,低优先级队列的时间片长。(任一优先级的进程被调度运行时,时间片不会被抢占。)

调度时,某一优先级队列的进程只在所有比其高的队列都为空时,才会调度这一队列中的进程。

进程新创建时,进入优先级最高的队列。

每一进程被调度运行,用完时间片仍未结束重新回到就绪状态时,移入下一优先级队列

而进程从阻塞状态到就绪状态时,提高优先级

反馈调度算法分析:效果

体现了短作业“优先”:因为其所需的时间片少,优先级不会下降很多,会被优先调度,从而很快运行结束。

因此,响应时间短,平均周转时间短

有较好的响应时间:因为新进程优先级最高,被优先调度执行,所以响应时间短;IO结束的进程提高优先级,也会相对优先被调度执行,同样响应时间短(用户在输入完成后,进程很快会有反应)

长作业的系统开销较小:长作业最终会落到优先级最低,时间片最长的就绪队列中。一旦此类作业被调度运行时,(大)时间片用完之前不会有抢占调度,减少了调度次数,所以系统开销小。

公平性和饥饿:由于长作业最终的时间片长,可以减少周转时间;在发生一次IO操作后可提升优先级,可以部分抵消“短作业优先”的不公平,也可减轻长作业的饥饿程序。

选做9.1

第七章:存

1. 什么是重定位,为什么需要重定位,如何实现重定位?

2. P227,7.12(不做d小题) (删除"用6位表示页号"描述)

1.什么是重定位,为什么需要重定位,如何实现重定位?

什么是:重定位指在执行过程中,程序在存中的位置发生了移动。(可重定位指代码在存中移动后仍能正确执行)

为什么需要:为了实现多道程序设计,在存中存在多个程序,一个程序一旦被换出存,当它再次换入时可能原来的位置已经被占用,故收到限制,需要找其他空闲的存存放,这时便需要重定位。

如何实现:代码中只使用相对的逻辑地址,不使用绝对的物理地址,在加载时根据分配的物理存地址,由加载工具将代码中逻辑地址改写为物理地址;或者在指令执行时由CPU完成逻辑地址到物理地址的转换。

重定位:与页式管理中逻辑地址—物理地址转换无必然关系。

2.P227,7.12(不做d小题) (删除"用6位表示页号"描述)

在一个32位机器上,假设把逻辑地址分为8位,6位,6位,12位四个部分。换句话说,系统使用3级页表,其中第一个8位是第一季,后边的6位是第二季,以此类推。在这个系统中,用6位表示页号,假设存是按照字节访问的。

A), 页大小2^12=4096字节

B), 一个进程的页面个数为2^20=1M个

C), 逻辑地址空间为2^32=4GB字节

如题干中,改为“用6位表示页框号”,则D)答案:物理存最大为2^6 *4K=256K

第八章虚拟存

1.解释下列术语:抖动,TLB,工作集,LRU算法

2. P266 8.4 题目印刷错误

1.解释下列术语:

TLB:存放页表容的特殊Cache,一般多采用联想寄存器实现。CPU在地址转换时,首先检查该虚拟地址的页号的映射项在TLB中是否存在,TLB命中可大大缩短逻辑地址到物理地址的转换。

抖动/颠簸:CPU将绝大多数时间用在进程的换进换出而不是执行用户程序的现象。出现抖动时,应改进替换算法;增加物理存的容量;减少并发执行的进程的个数。

页表:是页式存管理中使用的数据结构,存放逻辑地址到物理地址的映射。

工作集(working set):进程在过去一段时间所访问页面的集合。工作集随时间变化而变化。如果一个进程的工作集没有在存中,则会影响进程的执行效率。LRU算法:页式存管理中的替换算法。选择最近最少使用的页替换,即最后一次访

问时间最早的页,推测该页在不远的将来被访问的可能性最低。理论分析LRU 的准确性很高,但是实现复杂,系统开销大,实际使用时一般采用LRU的简化版本。

2.P266 8.4 题目印刷错误

P266

8.4 一个进程分配给4个页框(下面的所有数字均为十进制数,每一项都是从0开始计数的)。上一次把一页装入到一个页框的时间,上一次访问页框中的页的时间,每个页框中的虚拟页号以及每个页帧的访问位(R)和修改位(M)如下表所示(时间均为从进程开始到该事件之间的时钟时间,而不是从事件发生到当

前的时钟值)

8.4题目印刷错误3-5

当虚拟页4发生错误时,使用下列存管理策略,哪一个页帧将用于置换?解释原因。

a.FIFO(先进先出)算法

b.LRU(最近最少使用)算法

c.Clock算法

d.最佳(使用下面的访问串)算法

e.在页错误之前给定上述存状态,考虑下面的虚拟页访问序列:4,0,0,2,4,2,1,0,3,2

如果使用窗口大小为4的工作集策略来代替固定分配,会发生多少页错误?每个页错误何时发生?

P266 8.4题目印刷错误

说明:clock算法按“加载时间”顺序查找

E)算法:LRU,窗口4时间单位

A).替换页框3,因为其容最早装入(加载时间20)

B).替换页框1,因为最后一次访问时间最早(访问时间160)

C).替换页框0,因为这个页框是扫描时最一个遇到的访问位为0的页框

D).替换页框3,因为其容(页号3)将来最晚被访问。

4,0,0,0,2,4,2,1,0,3,2

E).P266 8.4 工作集策略可变分配!

E).P266 8.4 工作集策略工作集窗口示意图

第十一章:I/O管理和磁盘管理

P363 11.5,11.7(0,1,5级),11.8

选做:P364,11.3(a),11.7(多少个扇区,柱面), 11.8, 11.9

11.5磁盘读写延迟因素:

寻道时间:指磁头移动到指定柱面所需要的时间;

旋转延迟:指要访问的指定扇区转动到磁头位置所需要的时间;

传送时间:指完成对指定扇区读写操作所需要的时间。

11.7 简单定义7个RAID级别RAID(0,1,5级)

0级:分条,指逻辑上连续的数据被分散存放在多个可用磁盘中,以后(连续)读写时,可利用多个磁盘并行工作以缩短操作时间;

1级:镜像,指数据重复存放在多个磁盘中,通过这种冗余的方式来提高整体可靠性;

5级:块分布奇偶校验,指逻辑上连续的数据分块,并计算逐位奇偶校验和,然后分散到N 个磁盘构成的磁盘组中。以后如果组中任一个磁盘发生故障,可利用其余N-1个可用磁盘计算出故障磁盘中的所有数据。

(常用:0,1,5及0+1)

0:非冗余

1:被镜像;每个磁盘都有一个包含相同数据的镜像磁盘。

2:通过汉明码实现冗余;对每个数据磁盘中的相应都计算一个错误校正码,并且这个码位保存在多个奇偶校验磁盘中相应的文件。

3:交错位奇偶校验;类似于第二层,不同之处在于RAID3为所有数据磁盘中同一位置的位

的集合计算一个简单的奇偶校验位,而不是错误校正码。

4:交错块分布奇偶校验;对每个数据磁盘中相应的条带计算一个逐位奇偶。

5:交错块分布奇偶校验;类似于第四层,但把奇偶校验条带分布在所有磁盘中。

6:交错块双重分布奇偶校验;两种不同的奇偶校验计算保存在不同磁盘的不同块中。11.8 典型磁盘扇区大小:512字节

(在今天超大容量磁盘中,真正的物理扇区的大小是512的2^n,如4096,但OS和应用程序在逻辑上仍然可以认为扇区为512字节。)

512比特,比特?

512KB

11.3a

11.7如果磁盘中扇区大小固定为每扇区512字节,并且每磁道128个扇区,每面130个磁道,一共有12个可用的面,计算存储90000条200比特长的逻辑记录需要多少磁盘空间(扇区,磁道和面).忽略文件头的记录和磁道索引,并假设记录不能跨越两个扇区。

200比特=25字节,一扇区512字节中,可存放512/25 = 20个记录(因记录不跨扇区存放) 90000记录需要90000/20=4500个扇区。

一个柱面有128*12=1536个扇区

90000记录需要4500/1536=2.93=3个柱面

或2个完整柱面+1428个扇区

11.8考虑11.7中的提到的磁盘系统,假设磁盘转速是1200转/分,磁盘控制器每旋转一圈可以讲一个扇区读入其部缓冲区,接着操作系统以字节为单位读取这些数据,每读取一个字节,磁盘控制器会产生一个中断

A)如果中断服务列成处理每个中断的时间是1.8微妙,那么系统读入整个扇区需要花多少时间?(不考虑寻道所需要花费的时间)

1200转/分,则每秒20转

一转为1/20秒=50ms

题意:“每旋转一圈可以将一个扇区读入部缓冲区”

一字节一中断,一扇区512字节,中断512次,共需要时间:

1.8us*512=921.6us=0.92ms

B)在系统读取数据的过程汇总,操作系统可以用于处理其他进程的时间是多少?相对于读取磁盘的总传输时间?所占的百分比是多少?

50ms中0.92ms用于中断,

其余时间CPU处理其它容,

50-0.92=49.08ms

百分比:( 50-0.92)/50 = 98.16%

(另外一种理解:磁盘控制器先从盘面将数据读入部缓冲区(50ms),然后再一个字节一个字节中断,共0.92ms,百分比为50/(50+0.92)=98.193%)

11.9再次考虑11.7 11.8中的磁盘系统,假设磁盘控制器和系统存之间的数据传输采用DMA 方式,总线速度为2MB/S,在该条件下,系统读入整个扇区需要花费多少时间?在这段时间,操作系统可以用于处理其他进程的时间是多少?

总线速度2MB/s,则传输一字节时间为:1/2M = 0.5μs

传512字节时间为0.5*512=256μs=0.256ms

依前例,磁盘控制器准备一扇区数据需要50ms

所以,其它处理时间为

50-0.256=49.744ms

百分比:49.744/50=99.49%

(与11.8同样:若考虑磁盘先读盘面数据,然后再DMA传送,没有任何并行,则百分比计算为:50/(50+.256))

第十二章文件管理概念文件,文件系统,文件目录文件系统功能,P404 12.10

文件(file):(文件系统中)具有符号名而且在逻辑上具有完整意义的信息项的序列。

文件系统:文件与管理文件的方法和程序集合称作文件系统。

文件目录:包含文件信息的一类特殊文件,文件系统利用其完成从文件名到文件号(inode)的映射。

文件系统功能:

建立文件目录;

提供必要的存取方法以适应不同应用的要求;

完成从文件的逻辑组织到物理组织的转换;

有效地管理文件在外存的存放;

实现文件保护和共享;

提供对文件进行操作的系统调用命令.

12.10考虑由一个索引节点表示的UNIX文件的组织见图12.12 假设有12个直接快指针,在每个索引节点中由一个一级,二级,和三级间接指针,此外,假设系统块大小和磁盘扇区大小都是8K。如果磁盘块指针是32位,其中8位用于标识物理磁盘,24位用于标识物理块,那么

A)该系统支持的最大文件大小是多少

A)8K*(12+2K+4M+8G)

=8K*(8594130956)

=70403120791552

B)该系统支持的最大文件系统分区是多少

B)8K*2^24

=8K*16M=128GB

C)假设存中除了文件索引节点外没有别的信息,访问在位置13 423 956中的字节需要多少次磁盘访问?

C)文件的索引结点已读入

哪一块?13423956 / 8192

=1638.66650390625

块1638

前12块:直接块

前12+2048=2060块,一级间接

IO次数:2次,一次读一级索引块,一次读数据块

第六章:并发死锁和饥饿

1. 什么是死锁,什么是饥饿?

2. 解释死锁四个必要条件的含义.

3. P206,6.6,给出过程

4. P207,6.11

饥饿(starvation):当饥饿到一定程度,导致进程所赋予的任务即使完成也不再具有实际意义时称该进程被饿死(starve to death)。

概念:什么是死锁?:一组进程中的每一个进程,均无限期地等待此组进程中某个被其他进程占有的,因而永远无法得到的资源,这种现象称为进程死锁(deadlock)

死锁四个必要条件的含义

“资源独占”指在一段时间只能由一个进程使用,不能共享;

“不可抢占”指高优先级进程或说操作系统不能从抢占己分配给其它进程的资源;

“保持申请”指占有资源的进程不释放自己占有的资源,又提出了新的资源申请;

“循环等待”指等待其它进程占有资源的等待关系构成了环路。

6.6请把6.4结中的死锁检测算法应用与下面的数据,并给出结果

答:1. W = (2 1 0 0)

2. Mark P3; W = (2 1 0 0) + (0 1 2 0) = (2 2 2 0)

3. Mark P2; W = (2 2 2 0) + (2 0 0 1) = (4 2 2 1)

4. Mark P1; no deadlock detected

Request是还需要的alloction是已经分配的相加时加已经分配的

6.11

6.11假设在系统中有四个进程和四种类型的资源,系统使用银行家算法来避免死锁。最大资源需求矩阵是:

其中Claim(ij)(1<=i<=4,且1<=j<=4)表示进程i对于资源j的最大需求。系统中每一种类型的资源总量有向量【16,5,2,8】给出。当前的资源分配情况有下面的矩阵给出:

其中,Allocation(i j)表示当前分配给进程i的资源j的数量。

a). 当前状态是否安全?说明这个状态是安全的

回答:安全,因为存在一个安全进程序列:P2,P4,P1,P3

b).说明进程1申请1个单位的资源2是否容许

答案:允许

如分配,则系统状态为:

此时,P4仍可结束,释放P2需要的一个单位的资源2,P2,随后,P1,P3

c).说明进程3申请6个单位资源1是否容许

答案:不允许

如分配,则系统状态为:

此时,没有一个进程可以结束,是不安全状态,不允许

d).说明进程2申请2个单位资源4是否通许

答案:不允许

因为,进程2最初申请的资源4的最大个数为2,现已分配1个单位,再申请2个单位,则超出了最初申明的最大个数。

不允许,不分配。

操作系统课程设计

课程设计报告 2015~2016学年第一学期 操作系统综合实践课程设计 实习类别课程设计 学生姓名李旋 专业软件工程 学号130521105 指导教师崔广才、祝勇 学院计算机科学技术学院 二〇一六年一月

- 1 -

- 2 -

一、概述 一个目录文件是由目录项组成的。每个目录项包含16B,一个辅存磁盘块(512B)包含32个目录项。在目录项中,第1、2字节为相应文件的外存i节点号,是该文件的内部标识;后14B为文件名,是该文件的外部标识。所以,文件目录项记录了文件内、外部标识的对照关系。根据文件名可以找到辅存i节点号,由此便得到该文件的所有者、存取权、文件数据的地址健在等信息。UNIX 的存储介质以512B为单位划分为块,从0开始直到最大容量并顺序加以编号就成了一个文件卷,也叫文件系统。UNIX中的文件系统磁盘存储区分配图如下: 本次课程设计是要实现一个简单的模拟Linux文件系统。我们在内存中开辟一个虚拟磁盘空间(20MB)作为文件存储器,并将该虚拟文件系统保存到磁盘上(以一个文件的形式),以便下次可以再将它恢复到内存的虚拟磁盘空间中。文件存储空间的管理可采用位示图方法。 二、设计的基本概念和原理 2.1 设计任务 多用户、多级目录结构文件系统的设计与实现。可以实现下列几条命令login 用户登录 logout 退出当前用户 dir 列文件目录 creat 创建文件 delete 删除文件 open 打开文件 close 关闭文件 - 3 -

read 读文件 write 写文件 mkdir 创建目录 ch 改变文件目录 rd 删除目录树 format 格式化文件系统 Exit 退出文件系统 2.2设计要求 1) 多用户:usr1,usr2,usr3,……,usr8 (1-8个用户) 2) 多级目录:可有多级子目录; 3) 具有login (用户登录)4) 系统初始化(建文件卷、提供登录模块) 5) 文件的创建:create (用命令行来实现)6) 文件的打开:open 7) 文件的读:read8) 文件的写:write 9) 文件关闭:close10) 删除文件:delete 11) 创建目录(建立子目录):mkdir12) 改变当前目录:cd 13) 列出文件目录:dir14) 退出:logout 新增加的功能: 15) 删除目录树:rd 16) 格式化文件系统:format 2.3算法的总体思想 - 4 -

操作系统精髓与设计原理-第11章_IO管理和磁盘调度,第12章_文件管理

第十一章 I/O管理和磁盘调度 复习题 11.1列出并简单定义执行I/O的三种技术。 ·可编程I/O:处理器代表进程给I/O模块发送给一个I/O命令,该进程进入忙等待,等待操作的完成,然后才可以继续执行。 ·中断驱动I/O:处理器代表进程向I/O模块发送一个I/O命令,然后继续执行后续指令,当I/O模块完成工作后,处理器被该模块中断。如果该进程不需要等待I/O完成,则后续指令可以仍是该进程中的指令,否则,该进程在这个中断上被挂起,处理器执行其他工作。 ·直接存储器访问(DMA):一个DMA模块控制主存和I/O模块之间的数据交换。为传送一块数据,处理器给DMA模块发送请求,只有当整个数据块传送完成后,处理器才被中断。 11.2逻辑I/O和设备I/O有什么区别? ·逻辑I/O:逻辑I/O模块把设备当作一个逻辑资源来处理,它并不关心实际控制设备的细节。逻辑I/O模块代表用户进程管理的一般I/O功能,允许它们根据设备标识符以及诸如打开、关闭、读、写之类的简单命令与设备打交道。 ·设备I/O:请求的操作和数据(缓冲的数据、记录等)被转换成适当的I/O指令序列、通道命令和控制器命令。可以使用缓冲技术,以提高使用率。 11.3面向块的设备和面向流的设备有什么区别?请举例说明。 面向块的设备将信息保存在块中,块的大小通常是固定的,传输过程中一次传送一块。通常可以通过块号访问数据。磁盘和磁带都是面向块的设备。 面向流的设备以字节流的方式输入输出数据,其末使用块结构。终端、打印机通信端口、鼠标和其他指示设备以及大多数非辅存的其他设备,都属于面向流的设备。 11.4为什么希望用双缓冲区而不是单缓冲区来提高I/O的性能? 双缓冲允许两个操作并行处理,而不是依次处理。典型的,在一个进程往一个缓冲区中传送数据(从这个缓冲区中取数据)的同时,操作系统正在清空(或者填充)另一个缓冲区。 11.5在磁盘读或写时有哪些延迟因素? 寻道时间,旋转延迟,传送时间 11.6简单定义图11.7中描述的磁盘调度策略。 FIFO:按照先来先服务的顺序处理队列中的项目。 SSTF:选择使磁头臂从当前位置开始移动最少的磁盘I/O请求。 SCAN:磁头臂仅仅沿一个方向移动,并在途中满足所有未完成的请求,直到

操作系统课程设计题目

课程设计任务书 一、课程设计目的 《计算机操作系统》课程设计是计算机类专业的集中实践性环节之一,是学习完《计算机操作系统》课程后进行的一次全面的综合练习。其目的在于加深对操作系统课程的理解,使学生更好地掌握操作系统的基本概念、基本原理、及基本功能,理解操作系统在计算机系统中的作用、地位和特点,具有分析实际操作系统,设计、构造和开发现代操作系统的基本能力,为今后从事的各种实际工作,如设计、分析和改进各种系统软件和应用软件提供必要的软件理论基础。 二、课程设计内容及要求 课程设计要求: 每位同学从下述设计任务中任选一个任务完成,上机验收运行结果,现场提问,并提交所完成该任务的课程设计报告。 实验要求: 1)上机前认真使用C语言编写好程序,采用Visual C++6.0作为编译环境; 2)上机时独立调试程序 3)上机验收运行结果,现场提问 4)根据具体任务要求,提交课程设计实验报告,报告内容包括:课程设计目的、内容、基本原理、模块划分、数据结构、算法设计、程序流程图(包括主程序流程图、模块详细设计流程图等)、以及算法源码(必须有相关注释,以有助于说明问题为宜,不得全盘打印而不加任何注释)、心得体会等。

设计内容一页式虚拟存储管理页面置换算法 1.目的和要求 在熟练掌握计算机虚拟存储技术的原理的基础上,利用一种程序设计语言模拟实现几种置换算法,一方面加深对原理的理解,另一方面提高学生通过编程根据已有原理解决实际问题的能力,为学生将来进行系统软件开发和针对实际问题提出高效的软件解决方案打下基础 2.实验内容 阅读教材《计算机操作系统》,掌握存储器管理相关概念和原理。 模拟实现页式虚拟存储管理的三种页面置换算法(OPT、FIFO和LRU),并通过比较性能得出结论。 前提: (1)页面分配采用固定分配局部置换。 (2)作业的页面走向和分得的物理块数预先指定。可以从键盘输入也可以从文件读入。 (3)置换算法的置换过程输出可以在显示器上也可以存放在文件中,但必须清晰可读,便于检验。 3.实验环境 Windows操作系统、VC++6.0、C语言 4.实验提示 (1)基础知识 存储管理是操作系统进行资源管理的一个重要功能。现代操作系统广泛采用虚

操作系统课程设计报告书

题目1 连续动态内存管理模拟实现 1.1 题目的主要研究内容及预期达到的目标 (1)针对操作系统中内存管理相关理论进行设计,编写程序并进行测试,该程序管理一块虚拟内存。重点分析三种连续动态内存分配算法,即首次适应算法、循环首次适应算法和最佳适应算法。 (2)实现内存分配和回收功能。 1.2 题目研究的工作基础或实验条件 (1)硬件环境:PC机 (2)软件环境:Windows XP,Visual C++ 6.0 1.3 设计思想 首次适应算法的实现:从空闲分区表的第一个表目起查找该表,把最先能够满足要求的空闲区分配给作业,这种方法的目的在于减少查找时间。为适应这种算法,空闲分区表中的空闲分区要按地址由低到高进行排序。该算法优先使用低址部分空闲区,在低址空间造成许多小的空闲区,在高址空间保留大的空闲区。 循环首次适应算法的实现:在分配内存空间时,不再每次从表头开始查找,而是从上次找到空闲区的下一个空闲开始查找,直到找到第一个能满足要求的的空闲区为止,并从中划出一块与请求大小相等的内存空间分配给作业。该算法能使内存中的空闲区分布得较均匀。 最佳适应算法的实现:从全部空闲区中找到能满足作业要求的、且最小的空闲分区,这种方法能使碎片尽量小。为适应此算法,空闲分区表中的空闲分区要按从小到大进行排序,从表头开始查找第一个满足要求的自由分配。 1.4 流程图 内存分配流程图,如图1-1所示。

图1-1 内存分配流程图内存回收流程图,如1-2所示。

图1-2 内存回收流程图 1.5 主要程序代码 (1)分配内存 void allocate(char z,float l) { int i,k; float ad; k=-1; for(i=0;i= l && free_table[i].flag == 1) if(k==-1 || free_table[i].length

最新《操作系统精髓与设计原理·第五版》习题答案

第1章计算机系统概述 1.1、图1.3中的理想机器还有两条I/O指令: 0011 = 从I/O中载入AC 0111 = 把AC保存到I/O中 在这种情况下,12位地址标识一个特殊的外部设备。请给出以下程序的执行过程(按照图1.4的格式): 1.从设备5中载入AC。 2.加上存储器单元940的内容。 3.把AC保存到设备6中。 假设从设备5中取到的下一个值为3940单元中的值为2。 答案:存储器(16进制内容):300:3005;301:5940;302:7006 步骤1:3005->IR;步骤2:3->AC 步骤3:5940->IR;步骤4:3+2=5->AC 步骤5:7006->IR:步骤6:AC->设备6 1.2、本章中用6步来描述图1.4中的程序执行情况,请使用MAR和MBR扩充这个描述。 答案:1. a. PC中包含第一条指令的地址300,该指令的内容被送入MAR中。 b. 地址为300的指令的内容(值为十六进制数1940)被送入MBR,并且PC增1。这两个步骤 是并行完成的。 c. MBR中的值被送入指令寄存器IR中。 2. a. 指令寄存器IR中的地址部分(940)被送入MAR中。 b. 地址940中的值被送入MBR中。 c. MBR中的值被送入AC中。 3. a. PC中的值(301)被送入MAR中。 b. 地址为301的指令的内容(值为十六进制数5941)被送入MBR,并且PC增1。 c. MBR中的值被送入指令寄存器IR中。 4. a. 指令寄存器IR中的地址部分(941)被送入MAR中。 b. 地址941中的值被送入MBR中。

c. AC中以前的内容和地址为941的存储单元中的内容相加,结果保存到AC中。 5. a. PC中的值(302)被送入MAR中。 b. 地址为302的指令的内容(值为十六进制数2941)被送入MBR,并且PC增1。 c. MBR中的值被送入指令寄存器IR中。 6. a. 指令寄存器IR中的地址部分(941)被送入MAR中。 b. AC中的值被送入MBR中。 c. MBR中的值被存储到地址为941的存储单元之中。 1.4、假设有一个微处理器产生一个16位的地址(例如,假设程序计数器和地址寄存器都是16位)并且具有一个16位的数据总线。 a.如果连接到一个16位存储器上,处理器能够直接访问的最大存储器地址空间为多少? b.如果连接到一个8位存储器上,处理器能够直接访问的最大存储器地址空间为多少? c.处理访问一个独立的I/O空间需要哪些结构特征? d.如果输入指令和输出指令可以表示8位I/O端口号,这个微处理器可以支持多少8位I/O端口? 答案:对于(a)和(b)两种情况,微处理器可以直接访问的最大存储器地址空间为216 = 64K bytes;唯一的区别是8位存储器每次访问传输1个字节,而16位存储器每次访问可以传输一个字节或者一个16位的字。 对于(c)情况,特殊的输入和输出指令是必要的,这些指令的执行体会产生特殊的“I/O信号”(有别于“存储器信号”,这些信号由存储器类型指令的执行体产生);在最小状态下,一个附加的输出针脚将用来传输新的信号。对于(d)情况,它支持28 = 256个输入和28 = 256个输出字节端口和相同数目的16位I/O端口;在任一情况,一个输入和一个输出端口之间的区别是通过被执行的输入输出指令所产生的不同信号来定义的。 1.5、考虑一个32位微处理器,它有一个16位外部数据总线,并由一个8MHz的输入时钟驱动。假设这个微处理器有一个总线周期,其最大持续时间等于4个输入时钟周期。请问该微处理器可以支持的最大数据传送速度为多少?外部数据总线增加到21位,或者外部时钟频率加倍,哪种措施可以更好地提高处理器性能?请叙述你的设想并解释原因。 答案:时钟周期=1/(8MHZ)=125ns 总线周期=4×125ns=500ns 每500ns传输2比特;因此传输速度=4MB/s 加倍频率可能意味着采用了新的芯片制造技术(假设每个指令都有相同的时钟周期数);加倍外部数据总线,在芯片数据总线驱动/锁存、总线控制逻辑的修改等方面手段广泛(或许更新)。在第一种方案中,内存芯片的速度要提高一倍(大约),而不能降低微处理器的速度;第二种方案中,内存的字长必须加倍,以便能发送/接受32位数量。

《操作系统课程设计》题目要求

操作系统课程设计要求 一.设计目的 熟悉Linux编程环境,加强对Linux命令的理解及函数的运用 二.设计内容 1. 在Linux环境下模拟实现简单命令解释器。 (1)要求实现的基本命令包括: pwd //显示当前所在目录的路径名 dir <目录名> //列出指定目录名中的所有目录及文件 cd <目录名或路径>//改变当前工作目录 newdir <目录名> //新建目录 deldir <目录名> //删除目录 exit //退出命令解释程序 (2)可选做的扩展命令包括: rename <旧文件名> <新文件名> //重命名一个文件或目录 find <目录> -name <待查找的文件名> //在指定的目录及其子目录中查找指定的文件date //显示当前日期 (3)提示:整个程序的大致框架可参考如下: while ( exit未被输入) { 接收键盘的一行输入 分析输入的命令 对输入的命令进行处理,调用系统函数实现功能 } 2. 设计要求 (1) 设计必须在Linux环境下进行。 (2) 命令解释程序的提示符为:姓名拼音@ (3) 程序编写中不得使用system()系统调用。 (4) 整个程序必须严格经过测试,完成所有基本功能。源程序应有较详尽的注释。 3.可能用到的系统调用: open(),close(),read(),write(),creat() chdir(), opendir(),readdir(),rewinddir(),closedir(),rmdir(),mkdir() getcwd(), ftw() time(), localtime(), asctime()

操作系统课程设计报告

操作系统课程设计报告

东莞理工学院 操作系统课程设计报告 学院:计算机学院 专业班级: 13软件工程1班 提交时间: 2015/9/14 指导教师评阅意见: . 项目名称:进程与线程管理功能 一、设计目的 用语言来模拟进程和线程管理系统,加深对进程和线程的理解,掌握对进程和线程各种状态和管理的算法原理。

二、环境条件 系统: WindowsXP、VMWare、Ubuntu Linux 语言:C/C++ 开发工具:gcc/g++、Visual C++ 6.0 三、设计内容 1. 项目背景 计算机的硬件资源有限,为了提高内存的利用率和系统的吞吐量,就要根据某种算法来管理进程和线程的状态从而达到目的。 进程与线程管理功能完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 进程与线程管理功能 基本要求:完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 提高要求:(增加1项就予以加分) (1) 实现多种线程调度算法; (2)通过“公共信箱”进行通信的机制,规定每一封信的大小为128字节,实现两个用户进程之间通过这个“公共信箱”进行通信。 (3) 实现多用户进程并发的虚拟内存管理功能。

(4) 实现用户进程间通信功能,并用生产者/消费者问题测试进程间通信功能的正确性。 (5) 实现改进型Clock页面置换算法。 (6) 实现Cache功能,采用FIFO替换算法。 2. 扩展内容 实现多种线程调度算法:时间片轮转调度算法 四、人员分工 优先级调度算法:钟德新,莫友芝 时间片轮转调度算法:张德华,袁马龙 设计报告由小组队员共同完成。小组成员设计的代码分工如下:钟德新编写的代码:void Prinft(){ PCB *p; system("cls");//清屏 p=run; //运行队列 if(p!=NULL) { p->next=NULL; } cout<<"当前正在运行的进程:"<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<

操作系统课程设计报告

上海电力学院 计算机操作系统原理 课程设计报告 题目名称:编写程序模拟虚拟存储器管理 姓名:杜志豪.学号: 班级: 2012053班 . 同组姓名:孙嘉轶 课程设计时间:—— 评语: 成绩: 目录 一、设计内容及要求 (4) 1. 1 设计题目 (4) 1.2 使用算法分析: (4)

1. FIFO算法(先进先出淘汰算法) (4) 1. LRU算法(最久未使用淘汰算法) (5) 1. OPT算法(最佳淘汰算法) (5) 分工情况 (5) 二、详细设计 (6) 原理概述 (6) 主要数据结构(主要代码) (6) 算法流程图 (9) 主流程图 (9) Optimal算法流程图 (10) FIFO算法流程图 (10) LRU算法流程图 (11) .1源程序文件名 (11) . 2执行文件名 (11) 三、实验结果与分析 (11) Optimal页面置换算法结果与分析 (11) FIFO页面置换算法结果与分析 (16) LRU页面置换算法结果与分析 (20) 四、设计创新点 (24) 五、设计与总结 (27)

六、代码附录 (27) 课程设计题目 一、设计内容及要求 编写程序模拟虚拟存储器管理。假设以M页的进程分配了N

块内存(N

操作系统-课程设计

课程设计说明书(操作系统) 题目:进程调度 院系:计算机科学与工程学院 专业班级:信息安全13-2 学号:20133029xx 学生姓名:xx 指导教师:xx 2015年12月15日

安徽理工大学课程设计(论文)任务书计算机科学与工程学院

安徽理工大学课程设计(论文)成绩评定表

摘要 现代计算机系统中,进程是资源分配和独立运行的基本单位,是操作系统的核心概念。因而,进程就成为理解操作系统如何实现系统管理的最基本,也是最重要的概念。进程调度是进程管理过程的主要组成部分,是必然要发生的事件。 在现代操作系统中,进程的并发机制在绝大多数时候,会产生不断变化的进程就绪队列和阻塞队列。处于执行态的进程无论是正常或非正常终止、或转换为阻塞状态,都会引发从就绪队列中,由进程调度选择一个进程进占CPU。 进程调度的核心是进程调度的算法.在本课程设计中,用良好清晰的界面向用户展示了进程调度中的时间片轮转调度算法。在最终实现的成果中,用户可指定需要模拟的进程数,CPU时间片和进程的最大执行时间,并且选择需要演示的算法,界面将会动态的显示进程调度过程及各个队列的变化。通过此进程调度模拟系统,用户可以对时间片轮转调度算法有进一步以及直观的了解。 关键词:进程,调度,PCB,时间片轮转

目录 1.设计目的 (6) 2.设计思路 (6) 3.设计过程 (8) 3.1流程图 (8) 3.2算法 (8) 3.3数据结构 (10) 3.4源代码 (10) 4.实验结果及分析 (20) 4.1 使用说明 (20) 4.2程序演示 (20) 5.实验总结 (24) 6.参考文献 (24)

《操作系统精髓与设计原理·第六版》中文版标准答案

《操作系统精髓与设计原理·第六版》中文版答案

————————————————————————————————作者:————————————————————————————————日期: 2

复习题答案 第1章计算机系统概述 1.1 列出并简要地定义计算机的四个主要组成部分。 主存储器,存储数据和程序;算术逻辑单元,能处理二进制数据;控制单元,解读存储器中的指令并且使他们得到执行;输入/输出设备,由控制单元管理。 1.2 定义处理器寄存器的两种主要类别。 用户可见寄存器:优先使用这些寄存器,可以使机器语言或者汇编语言的程序员减少对主存储器的访问次数。对高级语言而言,由优化编译器负责决定把哪些变量应该分配给主存储器。一些高级语言,如C语言,允许程序言建议编译器把哪些变量保存在寄存器中。 控制和状态寄存器:用以控制处理器的操作,且主要被具有特权的操作系统例程使用,以控制程序的执行。 1.3 一般而言,一条机器指令能指定的四种不同操作是什么? 处理器-寄存器:数据可以从处理器传送到存储器,或者从存储器传送到处理器。 处理器-I/O:通过处理器和I/O模块间的数据传送,数据可以输出到外部设备,或者从外部设备输入数据。 数据处理:处理器可以执行很多关于数据的算术操作或逻辑操作。 控制:某些指令可以改变执行顺序。 1.4 什么是中断? 中断:其他模块(I/O,存储器)中断处理器正常处理过程的机制。 1.5 多中断的处理方式是什么? 处理多中断有两种方法。第一种方法是当正在处理一个中断时,禁止再发生中断。第二种方法是定义中断优先级,允许高优先级的中断打断低优先级的中断处理器的运行。 1.6 内存层次的各个元素间的特征是什么? 存储器的三个重要特性是:价格,容量和访问时间。 1.7 什么是高速缓冲存储器? 高速缓冲存储器是比主存小而快的存储器,用以协调主存跟处理器,作为最近储存地址的缓冲区。 1.8 列出并简要地定义I/O操作的三种技术。 可编程I/O:当处理器正在执行程序并遇到与I/O相关的指令时,它给相应的I/O模块发布命令(用以执行这个指令);在进一步的动作之前,处理器处于繁忙的等待中,直到该操作已经完成。 中断驱动I/O:当处理器正在执行程序并遇到与I/O相关的指令时,它给相应的I/O模块发布命令,并继续执行后续指令,直到后者完成,它将被I/O模块中断。如果它对于进程等待I/O的完成来说是不必要的,可能是由于后续指令处于相同的进程中。否则,此进程在中断之前将被挂起,其他工作将被执行。 直接存储访问:DMA模块控制主存与I/O模块间的数据交换。处理器向DMA模块发送一个传送数据块的请求,(处理器)只有当整个数据块传送完毕后才会被中断。 1.9 空间局部性和临时局部性间的区别是什么? 空间局部性是指最近被访问的元素的周围的元素在不久的将来可能会被访问。临时局部性(即时间局部性)是指最近被访问的元素在不久的将来可能会被再次访问。 1.10 开发空间局部性和时间局部性的策略是什么? 空间局部性的开发是利用更大的缓冲块并且在存储器控制逻辑中加入预处理机制。时间局部性的开发是利用在高速缓冲存储器中保留最近使用的指令及数据,并且定义缓冲存储的优先级。 第2章操作系统概述

2017操作系统(含课程设计) - 随堂练习

随堂练习提交截止时间:2017-12-15 23:59:59 当前页有10题,你已做10题,已提交10题,其中答对10题。 1.(单选题) 操作系统是基本的特征是() A、并发 B、共享 C、虚拟 D、异步 答题: A. B. C. D. (已提交) 参考答案:A 问题解析: 2.(单选题) 下面不属于操作系统设计目标的是() A、提高资源利用率 B、提高系统吞吐量 C、用户操作计算机更方便 D、并行执行多个进程 答题: A. B. C. D. (已提交) 参考答案:D 问题解析: 3.(单选题) 历史上最早出现的操作系统是() A、单道批处理系统 B、多道批处理系统 C、分时系统 D、实时系统 答题: A. B. C. D. (已提交) 参考答案:A 问题解析: 4.(单选题) 实时操作系统必须在()内处理完来自外部的事件。 A、响应时间 B、周转时间 C、被控对象规定时间 D、调度时间 答题: A. B. C. D. (已提交) 参考答案:C 问题解析: 5.(单选题) 操作系统是对()进行管理的软件。 A、软件 B、硬件 C、计算机资源 D、应用程序 答题: A. B. C. D. (已提交) 参考答案:C 问题解析: 6.(单选题) 配置了操作系统的计算机是一台比原来的物理计算机功能更强的计算机,这样的一台计算机只是一台逻辑上的计算机,称为()计算机。 A、并行 B、真实 C、虚拟 D、共享 答题: A. B. C. D. (已提交)

问题解析: 7.(单选题) 操作系统中采用多道程序设计技术提高了CPU和外部设备的() A、利用率 B、可靠性 C、稳定性 D、兼容性 答题: A. B. C. D. (已提交) 参考答案:A 问题解析: 8.(单选题) 在操作系统中,并发性是指若干事件____发生( ) A、在同一时刻 B、在不同时刻 C、在某一时间间隔内 D、依次在不同时间间隔内 答题: A. B. C. D. (已提交) 参考答案:C 问题解析: 9.(单选题) ()操作系统允许在一台主机上同时联接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。 A、网络操作系统 B、批处理操作系统 C、实时操作系统 D、分时操作系统 答题: A. B. C. D. (已提交) 参考答案:D 问题解析: 10.(单选题) 下面关于操作系统的叙述中正确的是 ( ) A、批处理作业必须提交作业控制信息 B、分时系统不一定都具有人机交互功能 C、从响应时间的角度看,实时系统与分时系统差不多 D、由于采用了分时技术,用户可以独占计算机的资源 答题: A. B. C. D. (已提交) 参考答案:A 问题解析:

操作系统课程设计报告

东莞理工学院 操作系统课程设计报告学院:计算机学院 专业班级:13软件工程1班 提交时间:2015/9/14 指导教师评阅意见: . 项目名称:进程与线程管理功能 一、设计目的 用语言来模拟进程和线程管理系统,加深对进程和线程的理解,掌握对进程和线程各种状态和管理的算法原理。 二、环境条件 系统:WindowsXP、VMWare、Ubuntu Linux 语言:C/C++ 开发工具:gcc/g++、Visual C++ 6.0 三、设计内容 1. 项目背景

计算机的硬件资源有限,为了提高内存的利用率和系统的吞吐量,就要根据某种算法来管理进程和线程的状态从而达到目的。 进程与线程管理功能完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 进程与线程管理功能 基本要求:完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 提高要求:(增加1项就予以加分) (1) 实现多种线程调度算法; (2)通过“公共信箱”进行通信的机制,规定每一封信的大小为128字节,实现两个用户进程之间通过这个“公共信箱”进行通信。 (3) 实现多用户进程并发的虚拟内存管理功能。 (4) 实现用户进程间通信功能,并用生产者/消费者问题测试进程间通信功能的正确性。 (5) 实现改进型Clock页面置换算法。 (6) 实现Cache功能,采用FIFO替换算法。 2. 扩展内容 实现多种线程调度算法:时间片轮转调度算法 四、人员分工 优先级调度算法:钟德新,莫友芝 时间片轮转调度算法:张德华,袁马龙 设计报告由小组队员共同完成。小组成员设计的代码分工如下: 钟德新编写的代码:void Prinft(){ PCB *p; system("cls");//清屏 p=run; //运行队列 if(p!=NULL) { p->next=NULL; } cout<<"当前正在运行的进程:"<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<

(完整word版)操作系统参考书目

参考书目: 1.[美]William Stallings,陈渝等译.操作系统-精髓与设计原理(第五版).北 京:电子工业出版社,2006 2.James L. Peterson,Operating System Concepts(Second Edition), Addison-Wesley Publishing Company Inc.,1985 3.[荷]特纳鲍姆,现代操作系统(英文版.第2版),北京,机械工业出版社, 2002 4.[美]Andrew S.Tanenbaum & Albert S.Woodhull,王鹏等译.操作系统: 设计与实现(第二版).北京:电子工业出版社,1998 5.[美]Larry L.Peterson, Bruce S.Davie著, 计算机网络系统方法(英文.第 三版), 机械工业出版社,2005 6.张尤腊,仲萃豪等,计算机操作系统,北京,科学出版社,1979 7.孙钟秀,费翔林,骆斌,谢立,操作系统教程(第三版),北京,高等教育 出版社,2003 8.汤子瀛,哲凤屏,汤小丹.计算机操作系统(修订版).西安,西安电子科技 大学出版社,2001 9.何炎祥,李飞等,计算机操作系统,北京,清华大学出版社,2006 10.陈向群,向勇等,Windows 操作系统原理(第2版),北京,机械工业出版社, 2004 11.左万历,周长林,计算机操作系统教程(第二版),北京,高等教育出版社, 2005 12.孟庆昌,操作系统,北京,电子工业出版社,2004 13.蒋静,徐志伟,操作系统-原理.技术与编程,北京,机械工业出版社,2004 14.张尧学,史美林.计算机操作系统教程(第2版).北京:清华大学出版社, 2000 15.盂静.操作系统原理教程.北京:清华大学出版社,2001 16.冯耀霖,杜舜国,操作系统(第2版),陕西,西安电子科技大学出版社, 1996 17.李学干,计算机系统结构(第三版),陕西,西安电子科技大学出版社,2000 18.曾平,曾慧.操作系考点精要与解题指导.北京,人民邮电出版社,2002 19.徐甲同,网络操作系统,吉林,吉林大学出版社,2000 20.David A. Rusling,The Linux Kernel,北京,机械工业出版社,2000 21.陈莉君,Linux操作系统内核分析,北京,人民邮电出版社,2000

操作系统课程设计论文

学年论文(课程设计)题目:操作系统课程设计 学院数学与计算机学院 学科门类工学 专业网络工程 学号 姓名 指导教师王煜 年月日

河北大学学年论文(课程设计)任务书 (指导教师用表) 指导教师签字: 系主任签字: 主管教学院长签字: 装 订 线

河北大学学年论文(课程设计)成绩评定表学院:数学与计算机学院 装 订 线

摘要 此系统实现了存储管理、设备管理和进程管理。 存储管理部分主要实现主存空间的分配和回收。存储管理采用可移动的可变分区存储管理方式。采用数组来模拟主存,大小为512个字节。 设备管理主要包括设备的分配和回收。模拟系统中有A、B、C三种独占型设备,A设备3个,B设备2个,C设备1个。设备分配时采用采用先来先服务策略。设备回收时唤醒等待设备的进程。 进程管理主要包括进程调度,进程的创建和撤销、进程的阻塞和唤醒,中断作用的实现。其中硬件中的中央处理器用不断循环的函数CPU( )模拟,重要寄存器(如:程序状态寄存器PSW、指令寄存器IR)用全局变量模拟,中断的发现是在函数CPU中加检测PSW 的方式来模拟,时钟的模拟通过timer控件实现。进程控制块的模拟通过数组,本系统最多容纳10个。进程调度时采用时间片轮转调度算法,时间片为5。 关键词:存储管理设备管理进程管理时间片

ABSTRACT The system has storage management, equipment management and process management. The storage management has achieved the allocation and recovery of the main memory space. Variable storage management is used as storage management .We simulate the main memory by array, whose size is 512 bytes. The device management, including the distribution and recovery of devicet. We simulate three devices ,A,B,C. the numbers of them are 3,2,1. The distribution of device used to adopt first-come first-service strategy. It awakes the blocking process when the device is recycled. The process management, including scheduling ,creating revocation ,blocking and waking up the process, the realization of the interruption.We simulate the central processing unit by the cycling function named CPU(),simulate the important register by global variable, simulate the recovering of interruption by checking PSW in the function of CPU(),simulate the clock by the timer control. The simulation of the process control block by array, whose number is up to 10. When the scheduling of the process happens, we use the algorithm of time piece rotation scheduling, and the time piece is 5. Key words: storage device process time

操作系统课程设计报告

东莞理工学院 操作系统课程设计报告 学院:计算机学院 专业班级:13软件工程1班 提交时间:2015/9/14 指导教师评阅意见: . 项目名称:进程与线程管理功能 一、设计目的 用语言来模拟进程和线程管理系统,加深对进程和线程的理解,掌握对进程和线程各种状态和管理的算法原理。 二、环境条件

系统:WindowsXP、VMWare、Ubuntu Linux 语言:C/C++ 开发工具:gcc/g++、Visual C++ 6.0 三、设计内容 1. 项目背景 计算机的硬件资源有限,为了提高内存的利用率和系统的吞吐量,就要根据某种算法来管理进程和线程的状态从而达到目的。 进程与线程管理功能完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 进程与线程管理功能 基本要求:完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 提高要求:(增加1项就予以加分) (1) 实现多种线程调度算法; (2)通过“公共信箱”进行通信的机制,规定每一封信的大小为128字节,实现两个用户进程之间通过这个“公共信箱”进行通信。 (3) 实现多用户进程并发的虚拟内存管理功能。 (4) 实现用户进程间通信功能,并用生产者/消费者问题测试进程间通信功能的正确性。 (5) 实现改进型Clock页面置换算法。 (6) 实现Cache功能,采用FIFO替换算法。

2. 扩展内容 实现多种线程调度算法:时间片轮转调度算法 四、人员分工 优先级调度算法:钟德新,莫友芝 时间片轮转调度算法:张德华,袁马龙 设计报告由小组队员共同完成。小组成员设计的代码分工如下:钟德新编写的代码:void Prinft(){ PCB *p; system("cls");//清屏 p=run; //运行队列 if(p!=NULL) { p->next=NULL; } cout<<"当前正在运行的进程:"<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<

操作系统(一个小型操作系统的设计与实现)课程设计

南通大学计算机科学与技术学院操作系统课程设计报告 专业: 学生姓名: 学号: 时间:

操作系统模拟算法课程设计报告 设计要求 将本学期三次的实验集成实现: A.处理机管理; B.存储器管理; C.虚拟存储器的缺页调度。 设计流程图 主流程图 开始的图形界面 处理机管理存储器管理缺页调度 先来先服务时 间 片 轮 转 首 次 适 应 法 最 佳 适 应 法 先 进 先 出 L R U 算 法

A.处理机调度 1)先来先服务FCFS N Y 先来先服务算法流程 开始 初始化进程控制块,让进程控制块按进程到达先后顺序让进程排队 调度数组中首个进程,并让数组中的下一位移到首位 计算并打印进程的完成时刻、周转时间、带权周转时间 其中:周转时间 = 完成时间 - 到达时间 带权周转时间=周转时间/服务时间 更改计时器的当前时间,即下一刻进程的开始时间 当前时间=前一进程的完成时间+其服务时间 数组为空 结束

2)时间片轮转法 开始 输入进程总数 指针所指的进程是 否结束 输入各进程信息 输出为就绪状态的进程的信息 更改正在运行的进程的已运行时间 跳过已结束的程序 结束 N 指向下一个进程 Y 如果存在下一个进程的话 Y N 输出此时为就绪状态的进程的信息 时间片轮转算法流程图

B.存储器管理(可变式分区管理) 1)首次适应法 分配流程图 申请xkb内存 由链头找到第一个空闲区 分区大小≥xkb? 大于 分区大小=分区大小-xkb,修改下一个空闲区的后向指针内容为(后向指针)+xkb;修改上一个空闲区的前向指针为(前向指针)+xkb 将该空闲区从链中摘除:修改下一个空闲区的后向地址=该空闲区后向地址,修改上一个空闲区的前向指针为该空闲区的前向指针 等于 小于延链查找下 一个空闲区 到链尾 了? 作业等待 返回是 否 登记已分配表 返回分配给进程的内存首地址 开始

相关文档
最新文档