操作系统思考题(3)

2020-03-27 02:08

5、 什么是DMA方式?它与中断I/O控制方式的主要差异是什么? 6、 通道与DMA有什么共同点?主要存在什么差异? 7、 通道是一种特殊的 A ,具有 B 能力。 A:(1)I/O 设备;(2)设备控制器;(3)处理机;(4)I/O控制器。 B:(1)执行I/O指令集;(2)执行CPU指令集;(3)传输I/O命令;(4)运行I/O进程。

8、 请阐述通道程序的执行过程。

9、 常见有哪几类通道?各类通道适合连接哪些设备?

10、 什么叫做设备无关性?引入设备无关性分配方案有什么优点? 11、 下面关于设备独立性的论述中,第 条是正确的论述。 (1)设备独立性是I/O设备具有独立执行I/O功能的一种特性。

(2)设备独立性是指用户程序独立于具体使用的物理设备的一种特性。 (3)设备独立性是指能独立实现设备共享的一种特性。

(4)设备独立性是指设备驱动独立于具体使用的物理设备的一种特性。 12、 请说明通道设备的驱动过程。

13、 假设当前磁头的位置是53号磁道且磁头向下(小磁道号)移动,接下来要访问的

磁道序列是:130,42,180,15,108,68,97。请分别用FCFS、SSTF、SCAN、LOOK、C-SCAN、C-LOOK调度方式,给出磁头移动过程访问的磁道序列,并分别计算其磁头移动量。

14、 假设当前磁头处在45号磁道且向0号磁道移动,磁盘总磁道数为200,当其完成当

前磁道的I/O请求后,已经到达要求访问的磁道序列是: 179,134,32,41,160,122,184,151

请分别用FCFS、SSTF、SCAN、LOOK、C-SCAN、C-LOOK、N-SCAN、N-LOOK磁头调度算法,请分别给出磁头访问磁道的序列和总移动的磁道数。

15、 下面是采用Hansen管程实现SCAN算法,请把它修改成C-SCAN调度算法。

Type diskhead=MONITOR Var busy:boolean; headpos:0..199; direction:(up,down);

cylinder:Array[0..199] Of condition; count:Array[0..199] Of integer;

Define require, release;

Procedure require(dest:0..199); Begin

If busy Then Begin

count[dest]:=count[dest]+1; wait(cylinder[dest]) End busy:=true;

If dest

Else If dest>headpos Then direction:=up;

headpos:=dest End;

Procedure upscan; Var I:0..200; Begin

I:=headpos; C-LOOK插入一段: While (I<=199)and(count[I]=0) Do Else I:=I+1; Begin If I<=199 Then I=headpos; Begin direction=down; count[I]:=count[I]-1; end signal(cylinder[I]) End C-SCAN算法: End;

headpos=0; Procedure downscan; direction=up; Var I:-1..199; if count[0]>0 then Begin

begin I:=headpos; count[0]=count[0]-1; While (I>=0)and(count[I]=0) Do signal(cylinder[0]); I:=I-1; end If I>=0 Then Begin

count[I]:=count[I]-1; C-LOOK算法: Var I:-1..199; signal(cylinder[I])

K: integer; End

Begin End;

I=headpos; Procedure release;

While(I>=0) Do Begin

Begin busy:=false;

If count[I]>0 then If direction=up Then

K=I; Begin

I=I-1; upscan; downscan

End End

If K<>headpos then Else

Begin Begin

direction=up; downscan; upscan

count[K]=count[K]-1; End

signal(cylinder[K]); End;

end Procedure initialize;

Var I: 0..199; Begin

busy:=false; headpos:=0; direction:=up;

For I:=0 To 199 Do count[I]:=0; End

Begin initialize End;

16、 在磁盘的输入输出中,读写一个磁盘块由哪些时间组成?磁头优化调度主要减少那

部分时间?

17、 为什么要引入缓冲?软缓冲区设在内存什么区域?

18、 在系统缓冲池管理中,请给出用信号量和PV操作实现缓冲区申请和释放的过程。 19、 P276图8-19给出输入型设备缓冲实现算法。请问:

(1) 进程方面的算法中,处于等待状态的进程如何被唤醒? (2) 中断程序何时执行? 20、 何谓RAID技术?

21、 请用图形表示RAID0、RAID 1、RAID 5数据在各个磁盘的存放规则。 22、 SPOOLing系统有哪两部分组成? 23、 引入SPOOLing系统的目的是什么?

24、 SPOOLing输入系统的硬件和软件有哪几部分组成?各自有什么作用? 25、 SPOOLing输出系统的硬件和软件有哪几部分组成?各自有什么作用? 26、 下列有关SPOOLing系统的论述中,第 A 和第 B 条是正确的论述。 (1) 构成SPOOLing系统的基本条件,是具有外围输入机与外围输出机。 (2) 构成SPOOLing系统的基本条件,是只要具有大容量、高速硬盘作为输入井与输出井。

(3) 只要操作系统中采用了多道程序设计技术,就可以构成SPOOLing系统。 (4) SPOOLing系统是建立在分时系统中。 (5) SPOOLing系统是虚拟存储技术的体现。

(6) SPOOLing系统是在用户程序要读取数据时起动输入进程输入数据。

(7) 当输出设备忙时,SPOOLing系统中的用户程序暂停执行,待I/O 空闲时再被唤醒,去执行输出操作。

(8) SPOOLing系统实现了对I/O设备的虚拟,只要输入设备空闲,SPOOLing可预先将输入数据从设备传输到输入井中供用户程序随时读取。

(9) 在SPOOLing系统中,用户程序可以随时将输出数据送到输出井中,待输出设备空闲时再执行数据输出操作。

27、 磁盘属于 A 设备,信息存取是以 B 为单位进行的,磁盘的I/O控

制主要采用 C 方式;打印机主要采用 D 方式。 A: (1)字符设备;(2)独占设备;(3)块设备;(4)虚拟设备; B: (1)位;(2)字节;(3)帧;(4)固定长度数据块; C,D: (1) 循环测试;(2)程序中断;(3)DMA;(4)SPOOLing;

28、 在具有通道处理机的系统中,用户进行请求启动外设时,由 A 根据I/O请

求构造通道程序以及通道状态字,并将通道程序保存在 B 中,然后执行启动I/O命令。

A: (1) 用户程序;(2)应用程序;(3)通道;(4)操作系统; B: (1)内存;(2)硬盘;(3)通道;(4)外部设备;

29、 磁盘移动调度算法中, A 的主要缺陷是具有高度局部化倾向,会推迟某

些请求的服务,甚至引起饥饿。

A: (1)FCFS (2)SSTF (3)SCAN (4) C_SCAN

30、 在设备管理中,虚拟设备的引入和实现是为了充分利用设备,提高系统效率,采用 来模拟低速设备(输入机和打印机)的工作。

(1)SPOOLing技术,利用磁带; (2) SPOOLing技术,利用磁盘;

(3) 脱机批处理系统; (4) 移动磁臂和旋转调度技术,利用磁盘; 31、 不通过CPU进行主存与I/O设备间大量的信息交换,可以是 方式。

(1) DMA (2) 中断 (3)查询等待 (4)程序控制 32、 什么叫做稳定存储器?如何构造稳定存储器?

实验综合部分:

1、 在Linux系统中,如何创建自己的静态函数库?函数库有什么命名规则? 2、 在Linux系统中,把I/O设备看做什么文件?

3、 如何创建自己的共享函数库?共享函数库有什么命名规则? 4、 在gcc命令中,参数-l 和-L分别表示什么含义?假设在编译某程序fabc.c需要引用路

径:

/home/root/klib/libabcd.a

的静态函数库,并编译连接成可执行文件fabc,请给出完整的编译命令。 5、 在Linux系统中,如何实现硬链接?如何实现符号链接? 6、 用“ls -il”如何判断哪些文件采用硬链接在同一I节点上的? 7、 有如下一个shell程序:

cc –o$1 $1.c cp $1.c $2

./$1>>$2

请问其中的$1、$2什么含义?如果该shell程序名为by01.sh,则执行如下命令:

./by01.sh abc efg

则命令行参数abc和efg分别赋给那个变量?

8、 在一个shell程序中可以执行另一个shell程序,其执行方式有两种:

(1) . shell程序 (2) exec shell程序 请问两者有什么区别?

9、 假设有一字符设备驱动程序driver01.c。请给出其在Linux操作系统中安装的基本步

骤。

【参考答案】

(1) 把driver01.c用gcc编译成目标模块,假设为driver01.o; (2) 接着加载该目标模块:insmod –f driver01.o;假设其加载的主设备名为driver01. (3) 在/proc/devices文件中查看设备名为driver01对应的主设备号,假设为253; (4) 根据主设备号创建设备文件:mknod /dev/driver01 c 253 0;

这样可以在系统目录/dev中查找到driver01的设备,并可以在程序中使用该设备。


操作系统思考题(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:正数和负数说课稿

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: