第一章练习

1、设计现代 OS 的主要目标是什么?

目标:方便性、有效性、可扩展性、开放性

方便性:操作系统使计算机更易于使用。

有效性:操作系统允许以更有效的方式使用计算机系统资源。

提高系统资源利用率

提高系统的吞吐量

可扩展性:在操作系统中,允许有效地开发,测试和引进新的系统功能。

开放性:实现应用程序的可移植性和互操作性,要求具有统一的开放的环境。

2、OS的作用可表现在那几个方面?

作用:用户与计算机硬件系统之间的接口,计算机系统资源的管理者(软硬件资源),以及扩充机器

OS作为用户与计算机硬件系统之间的接口

●计算机用户需要的用户命令 :由OS实现的所有用户命令所构成的集合常被人们称为OS的Interface(用户接口);有时也称为命令接口。

命令的表示形式:字符形式:较灵活但因繁琐而难记;菜单形式:试图在字符终端上提供友好的用户界面;图形形式:因直观而易记但不灵活。

●应用软件需要的System Call(系统调用):由OS实现的所有系统调用所构成的集合被人们称为程序接口或应用编程接口(Application Programming Interface,API)。

OS作为计算机系统资源的管理者(软硬件资源)

① 处理机管理, 用于分配和控制处理机;

② 存储器管理,主要负责内存的分配与回收;

③ I/O设备管理,负责I/O设备的分配与操纵;

④ 文件管理,负责文件的存取、共享和保护。

对于多用户系统,需要管理共享资源,避免发生冲突

操作系统的任务在相互竞争的程序之间有序地控制对硬件设备的分配

资源管理包括用以下两种不同的方式实现多路复用(共享)资源

在时间上复用:当一种资源在时间上复用时,不同的程序“轮流”实用它;例如CPU、打印机等

在空间上复用:每个客户都得到资源的一部分;例如内存、磁盘等

OS用作扩充机器

裸机:完全无软件的计算机系统。

操作系统用作扩充机器功能,使其便于使用

在裸机上覆盖管理软件,实现对设备的操作,并向上提供一组操作命令。

隐藏对设备操作的具体细节,实现对硬件操作的多个层次的抽象。

通常把覆盖了软件的机器称为扩充机器或虚机器。

6、试说明推动分时系统形成和发展的主要动力是什么。

用户需要:人机交互、共享主机、便于用户上机

分时系统实现中的关键问题:

及时接收:实现多个用户的信息及时接收。

及时处理:及时控制作业的运行。

11、OS有哪几大特征?其最基本的特征是什么?

现代OS的四个基本特征:并发、共享、虚拟、异步

1、并发性(最基本的特征)2、共享性3、虚拟性4、异步性

14、处理机管理有哪些主要功能?它们的主要任务是什么?

主要功能 :按照一定的算法把处理机分配给进程(线程),并对其进行有效的管理和控制。

(1) 进程控制

(2) 进程同步和互斥

①进程互斥方式

②进程同步方式

(3) 进程通信

(4) 进程调度

15. 内存管理有哪些主要功能?它们的主要任务是什么?

为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。

(1)内存分配

(2)内存保护

(3)地址映射

(4)内存扩充

16. 设备管理有哪些主要功能?其主要任务是什么?

完成用户进程提出的I/O请求;为用户进程分配其所需的I/O设备;提高CPU和I/O设备的利用率;提高I/O速度;方便用户使用I/O设备。

(1)缓冲管理:有效地缓和CPU和I/O设备速度不匹配的矛盾 ,提高CPU的利用率。

(2)设备分配:根据I/O请求,分配其所需的设备。

(3)设备处理:设备处理程序又称为设备驱动程序。

17. 文件管理有哪些主要功能?其主要任务是什么?

对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。

(1)文件存储空间的管理

(2)目录管理

(3)文件的读/写管理和保护

第二章练习

2、试画出下面四条语句的前驱图:

S1: a=x+y;

S2: b=z+1;

S3: c=a-b;

S4: w=c+1;

5、在操作系统中为什么要引入进程的概念?它会产生什么样的影响?

为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述,从而在操作系统中引入了进程概念。

影响:使程序的并发执行得以实行。

6、尝试从动态性、并发性和独立性上比较进程和程序。

1.动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程序只是一组有序指令的集合,是静态实体。

2.并发性是进程的重要特征,同时也是OS的重要特征。引入进程的目的正是为了使其程序能和其它建立了进程的程序并发执行。而程序本身是不能并发执行的。

3.独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。而对于未建立任何进程的程序,都不能作为一个独立的单位来运行。

7、试说明PCB的作用具体表现在哪几个方面,为什么说PCB是进程存在的唯一标识?

a.PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构。

PCB中记录了操作系统所需的用于描述进程情况及控制进程运行所需的全部信息。

因而它的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能和其它进程并发执行的进程。

b.在进程的整个生命周期中,系统总是通过其PCB对进程进行控制,系统是根据进程的PCB而不是任何别的什么而感知到该进程的存在的,所以说,PCB是进程存在的唯一标志。

11、画出进程在三个基本状态及转换图,说明状态转换的典型原因。

答:①就绪→执行:进程调度。

②执行→就绪:时间片完。

③执行→阻塞:I/O请求。

④阻塞→就绪:I/O完成。

12、为什么要引入挂起状态?该状态有哪些性质?

①终端用户的需要、父进程请求、负荷调节的需要、操作系统的需要。

②当该操作作用于某个操作时,该进程将被挂起,意味着此时该进程处于静止状态。如果进程正在执行,它将暂停执行。若原本处于就绪状态,则该进程此时暂不接受调度。

13、在进行进程切换时,所要保存的处理机状态信息有哪些?

①进程当前暂存信息。

②下一指令地址信息。

③进程状态信息。

④过程和系统调用参数及调用地址信息。

14、试说明引起进程创建的主要事件。

①用户登录:在分时系统中,用户在终端键输入登录命令后,若登录成功,系统将为该用户建立一个进程,并把它插入就绪队列中。

②作业调度:在多道批处理系统中,当作业调度程序按一定的算法调度到某个(些)作业时,便将它(们)装入内存,为它(们)创建进程,并把它(们)插入就绪队列中。

③提供服务:当运行中的用户程序提出某种请求后,系统将专门创建一个进程来提供用户所需要的服务。

④应用请求:由用户进程自己创建新进程,以便使新进程以同创建者进程并发运行的方式完成特定任务。

15、试说明引起进程被撤销的主要事件。

①正常结束:表示进程的任务已经完成,准备退出运行。

②异常结束:是指进程在运行时发生了某种异常事件,使程序无法继续运行。如越界错、保护错、非法指令、特权指令错、运行超时、等待超时、算术运算错、I/O故障。

③外界干预:是指进程应外界的请求而终止运行。如操作员或操作系统干预、父进程请求、因父进程终止。

16、在创建一个进程时所要完成的主要工作是什么?

①申请空白PCB,为新进程申请获得唯一的数字标识符,并从PCB集合中索取一个空白PCB。

②为新进程分配其运行所需的资源,包括各种物理和逻辑资源,如内存、文件、I/O设备和CPU时间等。

③初始化进程控制块(PCB),包括标识信息、处理机状态信息、处理机控制信息。

④如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列。

17、在撤销一个进程时所要完成的主要工作是什么?

①根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态。

②若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度。

③若该进程还有子孙进程,还应将其所有子孙进程也都予以终止,以防它们成为不可控的进程。

④将被终止进程所拥有的全部资源或者归还给其父进程,或者归还给系统。

⑤将被终止进程(PCB)从所在队列(或链表)中移出,等待其它程序来搜集信息。

18、是说明引起进程阻塞或被唤醒的主要事件是什么?

①向系统请求共享资源失败:进程在向系统请求共享资源时,由于系统已无足够的资源分配给它,此时进程因不能继续运行而转变为阻塞状态。

②等待某种操作的完成。当进程启动某种操作后,如果该进程必须在该操作完成之后才能继续执行,则应先将该进程阻塞起来,以等待操作完成。

③新数据尚未到达:对于相互合作的进程,如果一个进程需要先获得另一进程提供的数据后才能对该数据进行处理,只要其所需数据尚未到达,进程便只有阻塞。

④等待新任务的到达:在某些系统中,特别是在网络环境下的OS,往往设置一些特定的系统进程,每当这种进程完成任务后便把自己阻塞起来,等待新任务的到来。

21、试从调度性、并发性、拥有资源及系统开销方面对进程和线程进行比较。

①调度性:在多线程OS中,线程是独立调度的基本单位,进程是资源分配的基本单位。同一进程中切换线程,不会引起进程切换。

②并发性:在多线程OS中,进程可以并发执行,线程也可以并发执行,线程的并发大大提高了OS的并发性。

③拥有资源:进程拥有资源,而线程(一般)不拥有资源,这样做是为了减少切换线程的开销。同一进程中的多个线程共享该进程的资源。

④系统开销:创建和撤销进程,需要分配和回收相关资源,开销较大;切换进程的成本较高,相对而言,创建和切换线程的成本较低,只需要保存少量寄存器内容,开销小。

23、何为用户级线程和内核支持线程

①用户级线程是在用户空间中实现的。对线程的创建、撤销、同步与通信等功能,都无需内核的支持,即用户级线程是与内核无关的。

②内核支持线程KST是在内核的支持下运行的,它们的创建、阻塞、撤销和切换等,也都是在内核空间实现的。

补充1、在生产者—消费者问题中,如果缺少了signal(full)或signal(empty),对执行结果将会有何影响?

如果缺少signal(full),那么表明从第一个生产者进程开始就没有改变信号量full值,即使缓冲池产品已满,但full 值还是0,这样消费者进程执行wait(full)时认为缓冲池是空而取不到产品,消费者进程一直处于等待状态。

如果缺少signal(empty),在生产者进程向n个缓冲区投满产品后消费者进程才开始从中取产品,这时empty=0,full=n,那么每当消费者进程取走一个产品empty 值并不改变,直到缓冲池取空了,empty 值也是0,即使目前缓冲池有n 个空缓冲区,生产者进程要想再往缓冲池中投放产品也会因为申请不到空缓冲区被阻塞。

补充2、尝试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法

Var chopstick:array[0,…,4] of semaphore;所有信号量均被初始化为1,第i 位哲学家的活动可描述为:RepeatWait(chopstick[i]);Wait(chopstick[(i+1) mod 5]);…Eat;…Signal(chopstick[i]);Signal(chopstick[(i+1) mod 5])Eat;…Think;Until false;

第三章练习

1、高级调度与低级调度的主要任务是什么?为什么要引入中间调度?

高级调度(长程调度、作业调度)主要任务是根据某种算法,决定将外存上处于后备队列中的哪几个作业调入内存,为它们创建进程、分配必要的资源,并将它们放入就绪队列。

低级调度(短程调度、进程调度)主要任务是根据某种算法,决定就绪队列中的哪个进程应获得处理机,并由分派程序将处理及分配给被选中的进程。

引入中级调度(内存调度)的目的是,提高内存利用率和系统吞吐量。使那些暂时不能运行的进程不再占用内存资源,将它们调至外存等待,把进程状态改为就绪驻外存状态或挂起状态。

5、在作业调度中应如何确定接纳多少个作业和接纳哪些作业?

作业调度每次接纳进入内存的作业数,取决于多道程序度。应将哪些作业从外存调入内存,取决于采用的调度算法。最简单的是先来服务调度算法,较常用的是短作业优先调度算法和基于作业优先级的调度算法。

7、是说明低级调度的主要功能。

保存处理机的现场信息、按某种算法选取进程、把处理器分配给进程

8、在抢占调度方式中,抢占的原则是什么?

优先权原则、短进程优先原则、时间片原则

9、在选择调度方法和调度算法时,应遵循的准则是什么?

(1)面向用户的准则:周转时间短,响应时间快,截止时间的保证,优先权准则。

(2)面向系统的准则:系统吞吐量高,处理机利用率好,各类资源的平衡利用。

12、试比较FCFS和SJF两种进度调度算法。

相同:两种调度算法都可用于作业调度与进程调度。

不同点:FCFS调度算法每次都从后备队列中选择一个或多个最先进入该队列的作业,将它们调入内存、分配资源、创建进程、插入到就绪队列。该算法有利于长作业进程,不利于短作业进程。

SJF算法每次调度都从后备队列中选择一个或若干个运行时间最短的作业,调入内存中运行。该算法有利于长作业进程,不利于短作业进程。

13、在时间片轮转法中,应如何确定时间片的大小?

略大于一次典型的交互所需要的时间。

15、为什么说多级反馈队列能较好满足各方面用户的需求?

(1)终端型用户。由于终端型用户提交的作业多属于交互性作业,通常较小,系统只要能使这些作业在第一队列规定的时间片内完成,便可使终端型用户感到满意。

(2)短批处理作业用户。对于这类作业,如果可在第一队列中执行完成,便可获得与终端型作业一样的响应时间。对于稍长的短作业,也只需在第二和第三队列各执行一时间片完成,其周转时间仍然较短。

(3)长批处理作业用户。对于长作业,它将依次在第1,2,…,n个队列中运行,然后再按轮转方式运行,用户不必担心其作业长期得不到处理。

20、按调度方式可将实时调度算法分为哪几种?

非抢占式和抢占式。非抢占式又分为非抢占式轮转调度算法和非抢占式优先调度算法,抢占式又分为基于时钟中断的抢占式优先级调度算法和立即抢占的优先级调度算法。

27、何谓死锁?产生死锁的原因和必要条件是什么?

死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。

产生死锁的原因:竞争资源和进程推进顺序非法。其必要条件是:互斥条件、请求和保持条件、不剥夺条件、环路等待条件。

在解决死锁问题的几个方法中,哪种方法最易于实现?哪种方法使资源利用率最高?

预防、避免、检测和解除死锁中,预防死锁最容易实现;避免死锁使资源利用率最高。

31、在银行家算法中,若出现下述资源分配情况,试问:

Process

Allocation

Need

Available

P0

0 0 3 2

0 0 1 2

1 6 2 2

P1

1 0 0 0

1 7 5 0

P2

1 3 5 4

2 3 5 6

P3

0 3 3 2

0 6 5 2

P4

0 0 1 4

0 6 5 6

该状态是否安全?

若进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给它?

(1)

进程\资源 Work Need Allocation Work + Allocation Finish
P0 1 6 2 2 0 0 1 2 0 0 3 2 1 6 5 4 true

1.首先根据目前系统中可用资源为‘1 6 2 2’,只满足P0还需要的资源数,故第一步先为P0分配资源。P0获得运行所需的全部资源后,完成执行,归还资源,此时系统中可用资源为‘Work + Allocation’=‘1 6 5 4’,即为下一步中的‘Work’。

进程\资源 Work Need Allocation Work + Allocation Finish
P0 1 6 2 2 0 0 1 2 0 0 3 2 1 6 5 4 true
P3 1 6 5 4 0 6 5 2 0 3 3 2 1 9 8 6 true

2.此时系统中可用资源为‘1 6 5 4’,再查看各个进程的‘Need’,只满足P3,故为P3分配资源。P3执行完成后归还资源,此时系统中可用资源为‘Work + Allocation’=‘1 9 8 6’。

进程\资源 Work Need Allocation Work + Allocation Finish
P0 1 6 2 2 0 0 1 2 0 0 3 2 1 6 5 4 true
P3 1 6 5 4 0 6 5 2 0 3 3 2 1 9 8 6 true
P1 1 9 8 6 1 7 5 0 1 0 0 0 2 9 8 6 true

3.此时系统中可用资源为‘1 9 8 6’,再查看各个进程的‘Need’,可以发现P1和P4均可满足,此时我们可以任选一进程为其分配资源,此处笔者选择P1进行资源分配。P1执行完成后归还资源,此时系统中可用资源为‘Work + Allocation’=‘2 9 8 6’。

进程\资源 Work Need Allocation Work + Allocation Finish
P0 1 6 2 2 0 0 1 2 0 0 3 2 1 6 5 4 true
P3 1 6 5 4 0 6 5 2 0 3 3 2 1 9 8 6 true
P1 1 9 8 6 1 7 5 0 1 0 0 0 2 9 8 6 true
P2 2 9 8 6 2 3 5 6 1 3 5 4 3 12 13 10 true

4.此时系统中可用资源为‘2 9 8 6’,再查看各个进程的‘Need’,可以发现P2和P4均可满足,此时我们仍然是可以任选一进程为其分配资源,此处笔者选择P2进行资源分配。P2执行完成后归还资源,此时系统中可用资源为‘Work + Allocation’=‘3 12 13 10’。

5.此时系统中可用资源为‘3 12 13 10’,再查看各个进程的‘Need’,可以发现P4可满足,为P4进行资源分配。P4执行完成后归还资源,此时系统中可用资源为‘Work + Allocation’=‘3 12 13 10’。

6.至此全部进程均已成功分配资源并运行结束。并且所有进程的‘Finish’=true都满足,系统处于安全状态,且系统的一个安全序列为<P0,P3,P1,P2,P4>。 该系统不止一个安全序列。

(2)

Request(1,2,2,2)≤ Need(2,3,5,6)成立

Request(1,2,2,2)≤ Available(1,6,2,2)成立

做出如下修改:

Available = Available - Request 即Available =(0,4,0,0)

Allocation = Allocation + Request 即Allocation =(2,5,7,6)

Need = Need - Request 即Need =(1,1,3,4)

在尝试分配的过程中,我们可以发现若满足P2提出的请求Request(1,2,2,2),此时无进程的‘Need’可被‘Available’满足,该系统不存在一个安全序列。因此系统不会将资源分配给P2。该类型题目一般是重复问题(1)的步骤,但是这道题目比较简单,不用列表就可以看出

补充1:系统中有四道作业,其提交时间和运行时间如下表所示。分别用先来先服务、短作业优先调度方法、最高响应比优先法调度、轮转调度算法,完成表格的计算(开始时间、结束时间、周转时间、平均带权周转时间)。单位:小时

作业

提交时间

运行时间

1

1:00

4

2

2:00

2

3

2:00

6

4

3:00

1

先来先服务,调度顺序为 1、2、3、4,平均带权周转时间为(1+2.5+1.83+11)/4=4.0825

作业

提交时间

运行时间

开始时间 结束时间 周转时间 带权周转时间

1

1:00

4

1:00 5:00 4 1

2

2:00

2

5:00 7:00 5 2.5

3

2:00

6

7:00 13:00 11 1.83

4

3:00

1

13:00 14:00 11 11

短作业优先调度方法,调度顺序为 1、4、2、3,平均带权周转时间为(1+3+2+3)/4=2.25

作业

提交时间

运行时间

开始时间 结束时间 周转时间 带权周转时间

1

1:00

4

1:00 5:00 4 1

2

2:00

2

6:00 8:00 6 3

3

2:00

6

8:00 14:00 12 2

4

3:00

1

5:00 6:00 3 3

最高响应比优先法调度,调度顺序为 1、4、2、3,平均带权周转时间为(1+3+2+3)/4=2.25

作业

提交时间

运行时间

开始时间 结束时间 周转时间 带权周转时间

1

1:00

4

1:00 5:00 4 1

2

2:00

2

6:00 8:00 6 3

3

2:00

6

8:00 14:00 12 2

4

3:00

1

5:00 6:00 3 3

分别求p2、p3、p4的最大响应比

R(p2)=1+((5-2)/2)=2

R(p3)=1+((5-2)/6)=1.5

R(p4)=1+((5-3)/1)=3

所以执行p4

分别求p2、p3的最大响应比

R(p2)=1+((6-2)/2)=3

R(p3)=1+((6-2)/6)=1.67

所以执行p2

轮转调度算法,平均带权周转时间为(2.5+2.5+2+2)/4=2.25

作业

提交时间

运行时间

开始时间 结束时间 周转时间 带权周转时间

1

1:00

4

1:00 11:00 10 2.5

2

2:00

2

2:00 7:00 5 2.5

3

2:00

6

3:00 14:00 12 2

4

3:00

1

4:00 5:00 2 2

假设时间片为1

补充2:假设一个多级反馈队列的实现共有4级,各个队列的时间片长度是1、2、4、6秒,已知当前仅在第一级队列上有一个执行时长为10秒的进程,在两秒后将有一个执行时长为8秒的任务A到达,请算出任务A的周转时间。

16s

第四章练习

2、可采用哪几种方式将程序装入内存?它们分别适用于何种场合?

(1) 绝对装入方式,只适用于单道程序环境。(2)可重定位装入方式,适用于多道程序环境。(3)动态运行时装入方式,用于多道程序环境:不允许程序运行时在内存中移位置。

3、何谓静态链接?静态链接时需要解决两个什么问题?

静态链接是指在程序运行前,先将各目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开的链接方式。两个问题:对相对地址进行修改;变换外部调用符号。

6、在动态分区分配方式中,应如何将各空闲分区链接成空闲分区链?

为实现动态分区分配,将系统空闲分区链接成一个链,通过依次搜索空闲分区链上的空闲分区,寻找一个大小满足要求的分区。算法:首次适应算法、循环首次适应算法、最佳适应算法、最坏适应算法。

7、为什么要引入动态重定位?如何实现?

在采用首次适应算法回收内存时可能出现4种情况:(1)回收区前邻空闲区。将回收区与前邻空闲区合并,将前邻空闲区大小修改为两者之和。(2)回收区后邻空闲区。将两区合并,改后邻空闲区始址为回收区始址,大小为两者之和。(3)回收区前后均邻空闲区。将三个分区合并,修改前邻空闲区大小为三者之和。(4)回收区前后均不邻空闲区。为回收区设置空闲区表项,填入回收区始址和大小并插入空闲区队列。

12、分区存储管理中常用哪些分配策略?比较他们的优缺点。

1动态重定位技术、

优点:用户程序装入内存时,根据进程所需要的大小动态建立分区,使得分区大小刚好符合进行需要。

缺点:在一开始,动态分区的分配效果是好的,但是随着内存进程的需要和时间的推移,内存中会产生许多外部碎片。

2虚拟存储技术、

缺点:业在决定引进存储虚拟化的技术之时,因为对于存数虚拟化不了解,在成本方面容易吃亏,因为现在很多的供应商大多数磁盘供应商对其专有的多路径设备驱动器、复制服务和管理界面进行附加收费,在后期还要为购买这些专有的软件支付更过的成本,本来是为了节省资金,但是惹了更大的麻烦。

优点:储虚拟化就是通过映射或抽象的方式屏蔽物理设备复杂性,增加一个管理层面,激活一种资源并使之更易于透明控制。它可以有效简化基础设施的管理,增加IT资源的利用率和能力,比如服务器、网络或存储。这样的话在企业的可持续的发展上,存储虚拟化确实是长久之计。

多道程序设计技术。

优点:利用率 提高了主存和I/O设备的利用率 改进了系统的吞吐率 充分发挥了系统的并行性

缺点: 作业周转时间延长”

20、为实现分页存储管理,需要哪些硬件的支持?

“为实现分页存储管理,需要页表、地址转换机构(包括逻辑地址寄存器、物理地址寄存器、页表寄存器、快表)等硬件支持。”

22、具有快表时,是如何实现地址变换的?

首先设置一段表寄存器,在其中存放段表始址和段长SL,进行地址变换时,利用段号S与段长SL进行比较,若S<SL,表示未越界,于是利用段表始址和段号来求出该段所对应的段表项在段表中的位置,从中得出该段的页表始址;利用逻辑地址中的段内页号P来获得对应页的页表项位置,从中读出该页所在的物理块号b,再利用块号b和页内地址来构成物理地址。

在具有快表的段页式存储管理方式中,段表和页表被放在快表内,每次访问它时,利用段号和页号去访问快表,若找到匹配项,便可以从中得到相应的物理块号,用来和业内地址一起生成物理地址;若找不到匹配项,则需3次访问内存,得到物理块号,并将其抄入快表。快表已满时,则通过适当的算法,换出最近最久没有被访问的项

26、分页和分段存储管理有何区别?

主要区别表现在以下三个方面:

(1) 页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率。段则是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好地满足用户的需要。

(2) 页的大小固定且由系统决定;而段的长度却不固定,决定于用户所编写的程序。

(3) 分页的地址空间是一维的,程序员只需利用一个记忆符,即可表示一个地址;而分段的作业地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。

虚拟存储练习

3、虚拟存储器有哪些特征?其中最本质的特征是什么?

虚拟存储器有离散性,多次性,对换性和虚拟性这四个主要特征:

多次性是虚拟存储器最重要的特征,这是任何其他存储管理方式不具有的。

4、实现虚拟存储器需要哪些硬件支持?需要那几个关键技术

分页请求系统:请求分页的页表机制、缺页中断机构、地址变换机构。
请求分段系统:请求分段的段表机制、缺段中断机构、地址变换机构。

(1)在分页请求系统中是在分页的基础上,增加了请求调页功能和页面置换功能所形成的页式虚拟存储系统。允许只装入少数页面的程序(及数据),便启动运行。

(2)在请求分段系统中是在分段系统的基础上,增加了请求调段及分段置换功能后形成的段式虚拟存储系统。允许只装入少数段(而非所有段)的用户程序和数据,即可启动运行。

10、在请求分页系统中,应从何处将所需页面调入内存?

(1)统拥有足够的对换区空间,这时可以全部从对换区调入所需页面,以提高调页速度。

(2)系统缺少足够的对换区空间,这时凡是不会被修改的文件,都直接从文件区调入;而当换出这些页面时,由于他们未被修改,则不必再将它们重写到磁盘(换出),以后再调入时,仍从文件区直接调入。但对于那些可能被修改的部分,在将它们换出时便须调到对换区,以后需要时再从对换区调入。

(3)UNIX方式。由于与进程有关的文件都放在文件区,故凡是未运行过的页面,都应从文件区调入。而对于曾经运行过但又被换出的页面,由于是被放在对换区,因此在下次调入时应从对换区调入。

13、2. 在一个请求页式存储系统中,一个程序的页面走向为4,3,2,1,4, 3,5,4,3,2, 1,5,并采用LRU页面置换算法。假设分配给该程序的存储块数M分别为3和4时,求出在访问过程中发生的缺页次数和缺率,比较所得结果,从中得到什么启发?

M=3时,采用FIFO页面置换算法的缺页次数为9次,缺页率为75%;M=4时,采用FIFO页面置换算法的缺页次数为10次,缺页率为83%。由此可见,增加分配给作业的内存块数,反而增加了缺页次数,提高了缺页率,这种现象被称为是Belady现象。

18、产生“抖动”的原因是什么持?

产生抖动的原因是由于CPU的利用率和多道程序度的对立统一矛盾关系引起的,为了提高CPU利用率,可提高多道程序度,但单纯提高多道程序度又会造成缺页率的急剧上升,导致CPU的利用率下降,而系统的调度程序又会为了提高CPU利用率而继续提高多道程序度,形成恶性循环,我们称这时的进程是处于“抖动”状态

第五章练习

5、试说明设备控制器的组成?

控制器由:指令寄存器、指令译码器、定时与控制电路、程序计数器、标志寄存器、堆栈和堆栈指针、寄存器组等构成。

6、为了实现CPU与设备控制器间的通信,设备控制器应具备哪些功能?

数据缓冲:由于I/O设备的速率较低而CPU和内存的速率却很高,故在控制器中必须设置一缓冲器。
在输出时,用此缓冲器暂存由主机高速传来的数据,然后才以I/O设备所具有的速率将缓冲器中的数据传送给I/O设备;
在输入时,缓冲器则用于暂存从I/O设备送来的数据,待接收到一批数据后,再将缓冲器中的数据高速地传送给主机。
差错控制:设备控制器还兼管对由I/O设备传送来的数据进行差错检测。
若发现传送中出现了错误,通常是将差错检测码置位,并向CPU报告,于是CPU将本次传送来的数据作废,并重新进行一次传送。
这样便可保证数据输入的正确性。
数据交换:这是指实现CPU与控制器之间、控制器与设备之间的数据交换。
对于前者,是通过数据总线,由CPU并行地把数据写入控制器,或从控制器中并行地读出数据;
对于后者,是设备将数据输入到控制器,或从控制器传送给设备。

10、设备中断处理程序通常需要完成哪些工作?

1、唤醒被阻塞的驱动进程。 2、保护被中断进程的CPU环境。 3、转入相应的设备处理程序。 4、中断处理。 5、恢复被中断进程的现场。

13、设备驱动程序通常要完成哪些工作?

(1)将接收到的抽象要求转为具体要求;

(2)检查用户I/O请求合法性,了解I/O 设备状态,传递有关参数,设置设备工作方式;

(3)发出I/O 命令,启动分配到的I/O设备,完成指定I/O 操作;

(4)及时响应由控制器或通道发来的中断请求,根据中断类型调用相应中断处理程序处理;

(5)对于有通道的计算机,驱动程序还应该根据用户 I/O 请求自

16、有哪几种I/O控制方式?适合于哪几种场合?

(1)程序I/O方式:早期计算机无中断机构,处理机对I/O设备的控制采用程序I/O方式或称忙等的方式。

(2)中断驱动I/O 控制方式:适用于有中断机构的计算机系统中。

(3)直接存储器访问(DMA)I/O 控制方式:适用于具有DMA控制器的计算机系统中。

(4)I/O 通道控制方式:具有通道程序的计算机系统中。

17、试说明DMA的工作流程?

1.DMA请求: CPU初始化DMA控制器,外设(10接口)发出DMA请求。

2.DMA响应: DMA控制器判断DMA请求的优先级及屏蔽,向总线仲裁器提出总线请求。当CPU执行完当前总线周期时,可释放总线控制权。此时总线仲载器输出总线应答,表示DMA已经响应, DMA控制器从CPU接管对总线的控制,并...

3.DMA传输: DMA数据以规定的传输单位(通常是字)传输,每个单位的数据传送完成后, DMA控制器修改地址,并对传送单位的个数进行计数,继而开始下一个单位数据的传送,如此循环往复,直至达到预先设定的传送单位数量为止。

4.DMA结束:当规定数量的DMA数据传输完成后, DMA控制器通知外设(VO接口)停止传输,并向CPU发送一个信号(产生中断或事件)报告DMA数据传输操作结束,同时释放总线控制权。

18、什么是设备无关性?为何要引入与设备的无关性?如何实现设备的独立性?

现代操作系统为了提高系统的可适应性和可扩展性,都实现了设备独立性或设备无关性。基本含义是应用程序独立于具体使用的物理设备,应用程序以逻辑设备名请求使用某类设备。实现了设备独立性功能可带来两方面的好处:(1)设备分配时的灵活性;(2)易于实现I/O重定向。

为了实现设备的独立性,应引入逻辑设备和物理设备概念。在应用程序中,使用逻辑设备名请求使用某类设备;系统执行时是使用物理设备名。鉴于驱动程序是与硬件或设备紧密相关的软件,必须在驱动程序之上设置一层设备独立性软件,执行所有设备的公有操作、完成逻辑设备名到物理设备名的转换(为此应设置一张逻辑设备表)并向用户层(或文件层)软件提供统一接口,从而实现设备的独立性。

21、何谓设备虚?实现设备虚拟时所依赖的关键技术是什么?

设备虚拟是指把独占设备经过某种技术处理改造成虚拟设备。

可虚拟设备是指一台物理设备在采用虚拟技术后,可变成多台逻辑上的虚拟设备,则可虚拟设备是可共享的设备,将它同时分配给多个进程使用,并对这些访问该物理设备的先后次序进行控制。

22、在实现后台打印时,SPOOLing系统应为请求I/O的进程提供哪些服务?

在实现后台打印时,SPOOLing 系统应为请求 I/O的进程提供以下服务:

(1)由输出进程在输出井中申请一空闲盘块区,并将要打印的数据送入其中;

(2)输出进程为用户进程申请空白用户打印表,填入打印要求,将该表挂到请求打印队列。

(3)一旦打印机空闲,输出进程便从请求打印队列的队首取出一张请求打印表,根据表中要求将要打印的数据从输出井传送到内存缓冲区,再由打印机进行打印。

24、引入缓存的主要原因是什么?

引入缓冲的主要原因是:

(1)缓和CPU与I/O 设备间速度不匹配的矛盾

(2)减少对CPU的中断频率,放宽对中断响应时间的限制

(3)提高CPU与I/O 设备之间的并行性

30、磁盘访问时间由那几部分组成?每部分时间如何计算?

1.寻道时间,启动磁臂的时间s与磁头移动n条磁道所花费的时间之和
t=m*n+s(一般磁盘,m=0.2,高速磁盘,m<=0.1)
2.旋转延迟时间,是指定扇区移动到磁头下面所经历的时间
3.传输时间
,指把数据从磁盘读出或向磁盘写入数据所经历的时间
若每次读/写的字节数为b,磁盘每秒钟的转速为r,一条磁道上的字节数为N
t=b/(rN)

31、常用的磁盘调度算法有哪几种?每种算法优先考虑的问题是什么?

目前常用的磁盘调度算法有先来先服务、最短寻道时间优先及扫描等算法。

(1) 先来先服务算法优先考虑进程请求访问磁盘的先后次序;

(2) 最短寻道时间优先算法优先考虑要求访问的磁道与当前磁头所在磁道距离是否最近;

(3) 扫描算法考虑欲访问的磁道与当前磁道间的距离,更优先考虑磁头当前的移动方向。

补充:一个磁盘系统,平均寻道时间为12ms,转速为10000转/分,每个磁道有18个扇区,每个扇区512个字节。请问要读取一个扇区所花的时间是多少?

第六章练习

6、何谓文件的逻辑结构?何谓文件的物理结构?

逻辑结构:指一个文件在用户面前所呈现的形式。又称文件组织。

物理结构:指文件在外存上的存储组织形式。这不仅和存储介质的存储性能有关,还与所采用的外存有关

7、按文件的组织方式可将文件分为哪几种类型?

顺序文件、索引文件、索引顺序文件。

8、如何提高对变长记录顺序文件的检索速度?

  1. 为了提高对变长记录顺序文件的检索速度,可为其建立一张索引表,以主文件中每条记录的长度及指向对应记录的指针(即该记录在逻辑地址空间的首址)作为相应每个表项的内容。由于索引表本身是一个定长记录的顺序文件,若将其按记录键排序,则可以实现对主文件的方便快速的直接存取。需要指出的是,如果文件较大,应通过建立分组多级索引以进一步提高检索效率。

11、试说明索引顺序文件的几个主要特征。

(1)本上克服了变长记录的顺序文件不能随机访问,以及不便于记录的删除和插入的缺点。但它仍保留了顺序文件的关键特征,即记录是按关键字的顺序组织起来的。

(2)引入了文件索引表,通过该表可以实现对索引顺序文件的随机访问。

(3)増加了溢出文件,用它来记录新增加的、删除的和修改的记录

12、试说明对索引文件、索引顺序文件的检索方法。

(1)在对索引文件进行检索时,首先是根据用户(程序)提供的关键字,并利用折半查找法去检索索引表,从中找到相应的事项;再利用该表项中给出的指向记录的指针值,去访问所需的记录。

(2)在对索引顺序文件进行检索时,首先也是利用用户(程序)所提供的关键字以及某种查找算法去检索索引表,找到该记录所在记录组中第一个记录的表项,从中得到该记录组第一个记录在主文件中的位置;然后,再利用顺序查找法去查找主文件,从中找到所要求的记录。

14、对目录管理的主要要求是什么?

解决“按名存取”文件问题,解决快速搜索文件、文件命名冲突以及文件共享问题

16、目前广泛采用的目录结构形式是哪种?它有什么优点?

树形结构目录。明显提高了对目录的检索速度和文件系统的性能。

18、Hash检索发有何优点?又有何局限性?如何解决“冲突”问题?

与开放定址法相比,拉链法有如下几个优点:

①链地址法处理冲突简单,且无堆积现象,即非同义词决不会发生冲突,因此平均查找长度较短;

②由于链地址法中各链表上的结点空间是动态申请的,故它更适合于造表前无法确定表长的情况;

③开放定址法为减少冲突,要求装填因子α较小,故当结点规模较大时会浪费很多空间。而链地址法中可取α≥1,且结点较大时,链地址法中增加的指针域可忽略不计,因此节省空间;

④在用链地址法构造的散列表中,删除结点的操作易于实现。只要简单地删去链表上相应的结点即可。而对开放地址法构造的散列表,删除结点不能简单地将被删结 点的空间置为空,否则将截断在它之后填人散列表的同义词结点的查找路径。这是因为各种开放地址法中,空地址单元(即开放地址)都是查找失败的条件。因此在 用开放地址法处理冲突的散列表上执行删除操作,只能在被删结点上做删除标记,而不能真正删除结点。

链地址法的缺点是:指针需要额外的空间,故当结点规模较小时,开放定址法较为节省空间,而若将节省的指针空间用来扩大散列表的规模,可使装填因子变小,这又减少了开放定址法中的冲突,从而提高平均查找速度。

hash表解决冲突的方法:
1.开放定址法
1.1 线性探测法
1.2 二次探测法
1.3 随机探测法
2.链地址法
3.公共溢出区法
这种方法需要两个表,分别是基本表、溢出表

第四版,第8章练习

2、由连续组织方式所形成的顺序文件的主要优缺点是什么?它主要应用于何种场合?

优点:

顺序访问容易。

顺序访问速度快。

缺点:

要求为一个文件分配连续的存储空间。

必须事先知道文件的长度。

不能灵活地删除和插入记录。

对于那些动态增长的文件。

适用与资料处理场合,如磁带文件、打印文件

3、在链式文件中常用哪种链接方式?为什么?

在链接式文件中常用常用的是显示链接方式,显示链接方式把用于链接文件各物理块的指针显式存放在一张链接表中。由于查找记录的过程是在内存中进行的,因而不仅显著地提高了检索速度,而且大大减少了访问磁盘的次数。由于分配给文件的所有盘块号都放在该表中,故把该表称为文件分配表FAT

11、在UNIX中,如果一个盘块的大小为1KB,每个盘块号占4个字节,即每个盘块可以放256个地址,请转换下列文件的字节偏移量为物理地址:

(1)9999;(2)18000;(3)420000

(1)9999/1024=9余783,则逻辑块号为9,直接索引第9个地址得到物理块号,块内偏移地址为783。

(2)18000/1024=17余592, 则辑块号为10<17<10+256,通过一次间接索引在第10个地址可得到物理块号,块内偏移地址为592。

(3)420000/1024=410余160, 则逻辑块号为10+256<410,通过二次间接索引在第11个地址可得到一次间址,再由此得到二次间址,再找到物理块号,其块内偏移地址160。

12.什么是索引文件?为什么要引入多级索引?

什么是索引文件:一个文件的信息存放在若干不连续物理块中,系统为每个文件建立一个索引一个索引表就是磁盘块地址数组,其中第i个条目指向文件的第i块表,并将这些块的块号存放在索引表中

为什么要引入多级索引:索引是为了用户访问速度更快,多级索引结构可以有效管理索引文件,可以根据用户访问情况多级处理。

14、计算机系统利用下图的位示图来管理空闲盘块,盘块大小为1KB,现要为某文件分配两个盘块,试说明盘块的具体分配过程。

盘块的具体分配过程如下:

(1)从位示图中顺序扫描空闲盘块,发现第一个为0的二进制数在行为i=3,列为j=3处;
(2)将上面找到的行列号转换为对应的盘块号:b=(3-1)*16+3=35;
(3)修改位示图,把map[3,3]处设置为1,并将盘块分配给文件;

重复上述步骤分配第二个空闲盘块,即map[4,7],算出对应的盘块号为55,设置map[i,j]=1并将盘块分配出去。

15、某OS的磁盘文件空间共有500块,若用字长为32位的位示图管理磁盘,试问:

(1)位示图需要多少字?

(2)第i字第j位对应的块号是多少?

(3)给出申请/归还一块的工作流程。

(1) 位示图占用字数为500/32=16(向上取整)个字。

(2) 第i字第j位对应的块号为:N=32×i+j。

(3)申请时自上至下、自左至右扫描位示图跳过为1的位,找到第一个遇到的0

位,根据它是第i字第j位算出对应块号,并分配出去。归还时已知块号,块号/32算出第i字第j位并把位示图相应位清0。

补充:存放在某个磁盘上的文件系统,对于采用混合索引分配方式,其FCB中共有13项地址项,第0~9个地址项为直接地址,第10个地址项为一次间接地址,第11个地址项为二次间接地址,第12个地址项为三次间接地址。如果每个盘块的大小为512字节,盘块号需要3个字节来描述,则每个盘块最多存放170个盘块地址:

(1) 该文件系统允许的最大长度是多少?

(2) 将文件的字节偏移量5000、15000、150000转换为物理块号和块内偏移量。

(3) 假设某文件的索引结点已在内存中,但其他信息均在外存,为了访问该文件中某个位置的内容,最多需要几次访问磁盘?

(1)系统的最大长度是(10+170+170*170+170*170*170)*512B。(2)长度为80K的文件,需占用文件块,80K/512=160个.则只用到一级索引,因此是160个文件块加上1个索引块,共161个盘块。长度为100K的文件,需要占用文件块100K/512=200个,则需用到二级索引,在二级索引中用到了第一层索引块1个,第二层索引块1个,因此200个文件块,1个一级索引块,2个二级索引块,共203个盘块。长度为200K的文件,需要占用文件块100K/512=400个,则需用到二级索引,在二级索引中用到了第一层索引块1个,第二层索引块2个,因此200个文件块,1个一级索引块,3个二级索引块,共204个盘块。(3)访问该文件中某个位置的内容,最少需要1次访盘,即此位置在直接地址中可以找到。最多需要4次访盘,即在三级索引中找到。

操作系统1-6章作业相关推荐

  1. 计算机操作系统第四章作业

    计算机操作系统第四章作业 1.何为静态链接?静态链接时需要解决两个什么问题? 答:静态链接是指在程序运行之前,先将各自目标模块及它们所需的库函数,链接成一个完整的装入模块,以后不再拆开的链接方式. 将 ...

  2. linux课后作业答案第六章,操作系统 第六章作业习题解答

    第六章作业习题解答 3.某操作系统的磁盘文件空间共有500块,若用字长为32位的位示图管理盘空间,试问: (1)位示图需多少个字? (2)第i字第j位对应的块号是多少? (3)并给出申请/归还一块的工 ...

  3. 设备的独立性是指设备独立于计算机系统,青岛理工大学-计算机操作系统第4-6章作业2014精解...

    第4章作业 1. 什么叫静态重定位,什么叫动态重定位,它们分别与何种装入方式相对应? 答:把作业装入内存中随即进行地址变换的方式称为静态重定位,在作业执行期间,当访问到指令或数据时才进行地址变换的方式 ...

  4. 操作系统习题——第一章

    操作系统习题--第一章 1.设计现代OS的主要目标是什么? 答:(1)有效性 ( 2)方便性 ( 3)可扩充性 ( 4)开放性 2. OS 的作用可表现在哪几个方面? 答:(1) OS 作为用户与计算 ...

  5. 【王道考研】操作系统 笔记 第一章

    特此鸣谢王道考研 本文参考王道考研的相关课程 若有侵权请联系,立删 其余笔记链接: [王道考研]操作系统笔记 第一章_才疏学浅743的博客-CSDN博客 [王道考研]操作系统 笔记 第二章上 进程调度 ...

  6. 【王道】操作系统OS第二章进程管理(二[1])

    本笔记结合<2023王道操作系统考研复习指导>食用 操作系统OS第二章进程管理 本笔记结合<2023王道操作系统考研复习指导>食用 1.进程 1.1.进程的组成 1.1.1.P ...

  7. 【王道考研】操作系统 笔记 第二章上 进程调度

    本文内容,1.进程和线程 2.进程调度 特此鸣谢王道考研 本文参考王道考研的相关课程 若有侵权请联系,立删 其余笔记链接: [王道考研]操作系统笔记 第一章_才疏学浅743的博客-CSDN博客 [王道 ...

  8. 非零基础自学计算机操作系统 第1章 操作系统概述 习题一

    非零基础自学计算机操作系统 第1章 操作系统概述 习题一 [1]什么是操作系统?操作系统有哪些特性? 答:操作系统是管理计算机硬件与软件资源的计算机程序,它的主要特性有并发性.易用性.稳定性和异步性. ...

  9. 非零基础自学计算机操作系统 第1章 操作系统概述 1.4 操作系统的分类 1.4.1 多道批处理操作系统 1.4.2 分时操作系统

    非零基础自学计算机操作系统 文章目录 非零基础自学计算机操作系统 第1章 操作系统概述 1.4 操作系统的分类 1.4.1 多道批处理操作系统 1.4.2 分时操作系统 第1章 操作系统概述 1.4 ...

  10. 【现代操作系统】第一章:引论

    [现代操作系统]第一章:引论∑ 标签(空格分隔):[现代操作系统] 第一章:引论 操作系统:为用户程序提供一个更清晰的计算机模型,并管理输入/输出设备. 用户与之交互的程序,如果基于文本通常称为she ...

最新文章

  1. leetcode+面试:给定一个数组,将所有 0 值移动到数组的末尾,同时保持所有非零元素的相对位置
  2. 【iCore3 双核心板】例程十七:USB_MSC实验——读/写U盘(大容量存储器)
  3. python3 多重列表推导式
  4. JavaScript判断浏览器类型及版本(新增谷歌的Chrome)
  5. PureMVC(AS3)剖析:设计模式(二)
  6. 【Leetcode | 47】 222. 完全二叉树的节点个数
  7. 安卓 监听 mysql_Android监听数据库的值改变与否
  8. 查看在Ubuntu上打印的大型JSON文件
  9. 多表关联的update语句
  10. 实验3-10 高速公路超速处罚 (15 分)
  11. Linux 内核源码(kernel source)路径
  12. Python(23)_while循环
  13. 使用 New Relic 监控接口服务性能 (APM)
  14. java 动态属性_Java 类动态添加属性字段的操作
  15. maya 白天室内灯光_MAYA室内灯光之灯管的设置技巧
  16. 全网最详细的ensp模拟器安装教程
  17. 常用图像处理库都有哪些?
  18. 计算机网络技术练习,计算机网络技术基础各章节综合练习题及答案
  19. iOS实现模拟定位功能
  20. Java、JSP网上购书系统

热门文章

  1. Pseudo Inverse 伪逆
  2. 优化静态html页面速度的步骤好人方法,对网站速度优化的10个简单步骤
  3. Imu_heading使用
  4. 大数据零基础学习并不难,从0到1你需要的不仅仅是努力!
  5. css方位,CSS 世界中的方位与顺序
  6. java wgs84 百度坐标_javascript 实现wgs84 坐标转百度坐标
  7. 华为大数据客户端安装步骤
  8. 动态控制水晶报表中数字栏位的值显示的小数位数
  9. gds文件 导出_将gds导入virtuoso以后,再将该gds导出,为什么元素顺序就变了?谢谢...
  10. 创业 和 移动互联网