2013-2014学年第一学期操作系统思考题
第一章 操作系统概论
1、 在计算机系统中,操作系统有哪两个重要作用?
2、 根据操作系统的地位和作用,请给出操作系统的非形式化的定义。 3、 操作系统引入的目标是什么? 4、 什么叫做“假脱机”?
5、 多核系统主要需要解决哪两个问题?
6、 操作系统有哪四个特征?其中哪两个是基本特征? 7、 程序的并发性具体体现在哪三个方面? 8、 程序并发和并行有什么区别? 9、 何谓资源共享性? 10、 在计算机系统中,为什么会呈现出程序运行的异步性? 11、 何谓虚拟?操作系统如何体现其虚拟性? 12、 多道批处理系统具有哪两个特性? 13、 分时操作系统具有哪三个主要特征? 14、 实时操作系统应具有哪两个特征? 15、 分布式操作系统出了网络操作系统的特征外,还具有哪些特征? 16、 从透明性和资源共享两个方面说明网络操作系统与分布式操作系统的差异。 17、 操作系统应具备哪些基本功能? 18、 为什么说操作系统是中断驱动的? 19、 中断与程序并发之间有什么关系?操作系统何时获得控制权? 20、 系统栈有哪些作用?根据用途说明堆与栈的差别。 21、 在操作系统中把处理机划分成哪两个状态?它们分别可以执行哪类指令?两个状态如
何转换? 22、 操作系统提供给用户程序什么接口? 23、
第二章 进程、线程和作业
1、 为什么要引入多道程序设计?
2、 引入多道程序设计需要解决哪三个问题? 3、 什么叫进程?
4、 进程有哪三个基本状态?并说明这三个基本状态是何时转换的? 5、 什么是PCB?
6、 一个进程由哪两部分组成? 7、 什么叫做进程映像? 8、 什么叫做系统开销?
9、 从操作系统角度,可以把进程划分成哪两类? 10、 什么叫做守护进程? 11、 进程具有哪些特征?
12、 下面程序运行过程中,操作系统共创建几个进程:(实验一)
main(){ fork(); fork();
fork(); }
13、 进程和程序有什么联系?进程和程序有哪些差异? 14、 什么是线程?为什么要引入线程? 15、 用图形表示进程与线程的区别。 16、 从实现角度看,有哪两类基本线程?
17、 从下面四个方面阐述用户级别线程和核心级别线程的差别、优缺点:
(1)创建速度 (2)切换速度 (3)并行性 (4)TCB存储位置
18、 用户级别线程在处理机什么状态实现的?核心级别线程在处理机什么状态下实现
的?
19、 什么叫做作业?
20、 分析作业、进程、线程三者的关系。 21、 请解析命令“ls -il”给出的信息。(实验一)
22、 在Linux系统中,如何区分普通文件、目录文件、块设备文件、字符设备文件? 23、 在Linux系统中,如何区分硬链接文件和符号链接文件? 24、 熟练掌握用命令“chmod”修改各组用户对文件的操作权限。(实验一) 25、 掌握命令“ps -ax”查看Linux进程,解析该命令给出的信息,以及终止进程的操作。 26、 掌握用命令“gcc”编译链接一个程序。(实验一) 27、 请说明管道操作“|”、输入重定向“<”、输出重定向“>”和“>>”的区别和用法。 28、 请说明在shell中使用单引号、双引号、反撇号的用法。
第三章 中断与处理机调度
1、 什么叫做中断?
2、 中断装置发现并响应中断有哪些基本步骤? 3、 中断可以分为哪两大类?请举例说明。 4、 什么叫做中断向量?
5、 为什么说中断向量的位置是由硬件决定的、其内容是系统初始化时确定的? 6、 什么叫做中断续元?用户栈和系统栈各自有什么用途?
7、 根据程序错误中断的性质,有哪两种处理策略?可以哪些类型的程序性错误中断,中
断续元会起作用?
8、 处理机调度需要解决哪三个问题? 9、 什么叫做CPU阵发期? 10、 什么叫做周转时间?什么叫做(平均)带权周转时间? 11、 什么叫做响应时间? 12、 掌握FCFS、SJF、SRTN、HRN、HPF、RR调度算法,以及调度指标的计算。 13、 什么叫做剥夺式调度?什么叫做非剥夺式调度? 14、 反馈排队调度算法有哪些特点? 15、 什么叫做“交换”?交换的目标是什么? 16、 为什么要实施中级调度? 17、 什么是低级调度、中级调度、高级调度?各自的职能是什么? 18、 什么是实时调度?按发生的规律分,有哪两类实时任务? 19、 掌握EDF和RMS两个实时调度算法? 20、 完成P79-80题31、32、35。
第四章 互斥、同步与通信
1、 程序顺序执行有哪些特性?
2、 程序并发执行有哪些特性?
3、 什么是Bernstein(伯恩斯坦)条件?并加以说明。
4、 什么叫做与时间有关的错误?有时间有关的错误产生的原因是什么? 5、 什么叫做临界区?什么叫做临界资源?
6、 什么叫做进程互斥?请写出进程互斥的基本框架。
7、 实现进程互斥,临界区管理应该满足哪三个正确性原则?
8、 请分析Dekker互斥算法、Peterson互斥算法、Lamport面包店算法各自的互斥性、进
展性和有限等待性。
9、 什么叫做忙式等待?其与阻塞式等待有哪些区别? 10、 什么叫做原子指令?
11、 请写出“测试与设置”原子指令?并给出利用“测试与设置”指令实现互斥的算法。 12、 请写出“交换”的原子指令?给出利用“交换”指令实现互斥的算法。 13、 什么叫做合作进程? 14、 什么叫做进程同步?
15、 请给出信号量类型的定义。 16、 信号量变量的初值有什么要求? 17、 什么叫做原语?
18、 分别写出对信号量进行P操作和V操作的操作原语。 19、 请给出信号量元素s.value与s.queue之间的关系。 20、 说出初值分别是0、1、n(>1的值)时信号量的作用。
21、 某图书馆阅览室有50个座位。进入阅览室的读者需要在登记簿上登记,登记后,如
果有空座位,安排到对应位置上;如果没有空座位,要求在入口等待。当读者离开阅览室时,进行注销登记。此时,如果有读者等待,唤醒等待读者进行阅览室。使用信号量、PV操作实现对阅览室进行管理。 【参考答案】 公共变量:
enum seat[50];(free,used) semaphore S;(50) semaphore mutex;(1) 进入登记控制: int Enter(){ int i; P(S); P(mutex);
for(i=0;i<50;i++)
if(seat[i]==free) break; seat[i]=used; V(mutex); return i; }
离开注销登记控制: void Leave(int j){ P(mutex); seat[j]=free;
V(mutex); V(S); }
每个读者的活动: void Reader(){ int k; k=enter(); 阅读; Leave(k); }
22、 某公共汽车上司机、售票员、乘客的活动如下:
售票员活动: 乘客活动: 司机活动: Conductor(){ Customer(){ Driver(){ do{ 乘客上车; do{ 关车门; 乘坐; 启动车辆; 售票; 乘客下车; 正常行车; }; 开车门; 到站停车; }while(1); }while(1); } } 为安全起见,要求:
(1) 必须乘客全部上车,才能关闭车门;假设车门只允许一个乘客通过,且有自动
判别第一个下车乘客和最后一个上车乘客的装置,且遵守先下、后上原则;
(2) 关闭车门,才能启动汽车; (3) 车辆到站停稳,才能打开车门。
初始时,车辆停靠在站点上,车门是打开着。
请用信号量与PV操作实现对司机、售票员和乘客之间的同步。 【参考答案】
semaphore dc1,dc2;(0,0) semaphore cc1,cc2;(1,0) semaphore metux;(1); 乘客活动: 司机活动: 售票员活动: Customer(){ Driver(){ Conductor(){ P(mutex); do{ do{ if(是第一个下车乘客?) P(cc1); P(dc1); P(cc2); 乘客上车; 启动车辆; 关车门; V(mutex); V(dc1) 正常行车; 乘坐; 售票; 到站停车; P(mutex); P(dc2); V(dc2); 乘客下车; }while(1); 开车门; if(最后一个上车乘客?)V(cc2); } V(cc1); V(mutex); }while(1); }; }
23、 在Linux操作系统中,sem_wait(sem_t *s) 和sem_post(sem_t *s)分别表示对信号量的
什么操作?
24、 假设有两个进程,P1和P2,其中P1有一个活动act1、P2有一个活动act2;要求act1
执行完成后才能执行act2,用信号量“semaphore S;”实现对两个活动进行控制。请给出其实现的一般规则。
25、 P1和P2为两个同步进程. 要求P2完成动作B后P1才能执行动作A. 请根据要求
填写S的初值、P操作和V操作。 semaphore S; (initial value_(1)_) P1:_(2)_动作AP2:动作B_(3)_
26、 请完成下面生产者-消费者程序。
itemtype B[n];//shared variables(n个空箱子)
semaphore S1,S2,mutex; (初值: S1.value=_n_; S2.value=__0__; mutex.value=__1_) int in,out;//shared variables void producer( ){ while(1){
produceitem(&item); _P(S1)__ P(mutex); B[in]:= item; in:=(in+1) % k;
_V(mutex)________ V(S2); } }
void consumer( ){ while(1){ P(s2); P(mutex); x:=B[out];
out:=(out+1) % k; V(mutex); __V(S1)__ consume x; } }
27、 请完成如下R-W问题的改进算法。
semaphore r_w_w= 1 ,mutex= 1 ,s= 1 ; int count=0; void Reader() { do{ P(S); P(mutex); count++;
if( count==1 ) P(r_w_w); V(mutex) V(s); {读操作} P(mutex); count--;
If(count==0) V(r_w_w); V(mutex) }while(1); }
void Writer() { do{
P(s);
P(r_w_w) ; {写操作}; V(r_w_w);
V(s); }while(1); }
参考P144题25)
28、 什么叫管程(Monitor ,Hansen管程)? 一个管程由哪几部分组成? 29、 请用管程写出Scan和C-scan的磁头调度算法。
30、 请给出在Linux系统中采用共享内存进行进程间通信的一般步骤。(实验二)
第五章 死锁与饥饿
1、 什么叫死锁?在操作系统中,发生死锁有哪些特征? 2、 有哪些类型的死锁?
3、 从资源分配过程的角度,说明死锁与饥饿的区别?
4、 参与死锁进程的个数至少几个?如果产生饥饿,发生饥饿的进程至少饥饿? 5、 请给出发生死锁的必要条件(Coffman条件)并加以解析。 6、 有三种死锁的处理方式?
7、 熟悉资源分配图的绘制,以及资源分配图的约简。 8、 死锁预防有哪两种基本策略?
9、 请阐述预先分配法。它破坏发生死锁什么条件? 10、 请阐述有序分配法。它破坏发生死锁什么条件?
11、 如图所示,请给出采用有序分配法、用信号量和PV操作控制各个方向(W、E、S
方向)车辆进行临界区。 12、 死锁避免中,什么叫做安全序列?
13、 银行家算法:掌握p154例5-4、p170习题五第9题,及本章的作业。
14、 某系统有资源R={A,B,C}={10,5,7}和进程P={p0,p1,p2,p3,p4}。下面是该系统某进程
提出资源请求预分配后的两个状态,请分别用银行家算法检验是否为安全状态?
Claim Allocation Need Available Work Finish P0 P1 P2 P3 P4
A B C A B C A B C A B C A B C 7 5 3 0 1 0 7 4 3 3 3 2 3 2 2 2 0 0 1 2 2 9 0 2 3 0 2 6 0 0 2 2 2 2 1 1 0 1 1 4 3 3 0 0 2 4 3 1
(状态a)
Claim Allocation Need Available Work Finish P0 P1 P2 P3 P4
A B C A B C A B C A B C A B C 7 5 3 0 3 0 7 2 3 1 1 2 3 2 2 2 0 0 1 2 2 9 0 2 5 0 2 4 0 0 2 2 2 2 0 1 0 2 1 4 3 3 0 1 2 4 2 1
(状态b)
15、 在上述(13题)系统处于状态a下,进程P0提出Request(0)={3,2,0},请用银行家
死锁避免算法进行检测,是否可以分配?为什么?
16、 在上述(13题)系统处于状态a下,进程P0提出Request(0)={3,3,0},请用银行家
死锁避免算法进行检测,是否可以分配?为什么? 17、 死锁检测算法:p156例5-6,习题五第10题。
18、 有一系统拥有资源R={A,B,C}={7,3,6},现有进行P={p0,p1,p2,p3,p4}。当前的状态
如下所示。请用死锁检测算法检测系统当前是否发生死锁,如果发生死锁,有哪些进程参与死锁?
Allocation Request Available Work Finish A B C A B C A B C A B C p0: 0 1 0 0 0 0 0 1 0 p1: 2 0 0 2 0 2 p2: 3 0 3 0 0 0 p3: 2 1 1 1 0 0 p4: 0 0 2 0 0 2
19、 同类组合资源死锁的必要条件:p165例5-8。 20、 死锁与饥饿有何相同点和不同点?
第六章 存储管理
1、 静态等长分区是在什么时候划分的?大小有什么要求?空闲内存有哪些管理方式? 2、 动态异长分区是什么时候划分的?其空闲区域表有什么特点?
3、 掌握动态异长分区分配的四种算法:最先适应算法、循环首次适应算法、最佳适应算
法和最坏适应算法。
4、 动态异长分区去配是应该考虑哪四种情况?
5、 在动态异长分区管理中,为什么要进行“紧凑”操作?
6、 在界地址管理方式中,覆盖技术和交换技术要解决什么问题?它们有什么不同? 7、 页表有什么作用?页表是什么时候创建的?应该包括哪些内容?
8、 操作系统采用分页式存储管理方式,每个进程一个页表还是整个系统共享一个页表? 9、 请分别给出页式存储管理、段式存储管理、段页式存储管理其进程的逻辑地址形式。
它们的进程地址空间分别是几维的?
10、 假设操作采用页式存储管理方式,某进程的页表如下:
页面号 0 1 2 3
页架号 15 22 16 32
假设内存物理地址和进程逻辑地址均为16位的地址空间,每页的大小为1KB。请把逻辑地址为0A22H、0D75H、1E56H映射成对应的物理地址。 11、 如果没有快表,采用分别页式存储管理、段式存储管理、段页式存储管理三种方式,
其分别需要访问几次内存?
12、 操作系统采用分页式存储管理方式,要求___。
A)每个进程拥有一张页表,且进程的页表驻留在内存中; B)每个进程拥有一张页表,但只要执行进程的页表驻留在内存中,其他进程的页表不必驻留在内存中;
C)所有进程共享一张页表,以节约有限的内存空间,但页表必须驻留在内存中; D)所有进程共享一张页表,只有页表中当前使用的页面必须驻留在内存中,以最大限度节约有限的内存空间;
13、 为何段式管理有段内越界,而页式管理无页内越界问题?
14、 为什么分段技术比分页技术更容易实现程序或数据的共享和保护? 15、 在段页式存储管理系统中,每个进程页表的个数有什么决定的? 16、 试比较段式存储管理和页式存储管理的优缺点。
17、 设有一个段表如下: 段首址 90 219 1327 1952 2300 段长 100 600 580 96 80 分别给出逻辑地址(2,88)和(4,100)对应的物理地址。
18、 在内存管理模式中,内存利用率最高的是_______模式;动态扩充实现得最好的是
_______模式;内存利用率最高和共享容易的是_____模式。 A)分区管理 B)分页管理 C)分段管理 D)段页式管理
19、 熟悉如下页面淘汰算法:最佳淘汰算法、FIFO淘汰算法、LRU淘汰算法、NUR
淘汰算法。
20、 什么是 Belady异常?采用什么页面淘汰算法会产生Belady异常现象? 21、 考虑如下一个页面处理顺序,当内存的页面数为3时,分别计算各页面淘汰算法的
缺页次数。设内存初始时为空,每页装入都是请求式。 1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6
LRU算法,缺页次数为_______ OPT算法,缺页次数为_______
22、 某虚存系统有3页初始为空的页架,若采用FIFO页面淘汰算法,则下列的页面需
求提出时,会产生( )次缺页中断?设页面走向为:4,3,2,1,4,3,5,4,3,2,1,5。 A)7 B)8 C)9 D)10 23、 p225习题六第25题、26题。 24、 p224习题六第17、18题。
25、 什么叫做颠簸?颠簸是由什么引起的?如何消除? 26、 P209例6-1。
第七章 文件系统
1、 什么是文件的逻辑组织?什么是文件的物理组织? 2、 文件的逻辑组织形式主要有哪两种?(按逻辑结构分,文件有______和_______两类。) 3、 在UNIX中,把输入输出设备看作是()。
A.普通文件 B.目录文件 C.索引文件 D.特殊文件
4、 请阐述顺序结构、链接结构、索引结构和Hash结构文件的优缺点? 5、 FAT32磁盘文件的物理结构属于哪一种类型? 6、 文件的物理组织有哪些形式?
7、 什么是文件目录?什么是目录文件?
8、 把文件目录划分成主部和次部有哪些优点?主部包括哪些内容?次部包括哪些内
容?
9、 在UNIX系统中,文件采用混合索引方式实现,在FCB中共有13个索引地址,其中
第0~9个地址为直接索引地址,第10个为一级间接索引地址,第11个为二级间接索引地址,第12个为三级间接索引地址。假设每个磁盘块的地址为4字节,每个磁盘快为512字节。请问:
(1) 这样的方式有什么好处?
(2) 它能够保存文件最大为多少字节?
10、 在UNIX中,什么是I-node(I节点)?它保存那些内容?
11、 一个磁盘通常划分成引导区、超级块、i-节点区和数据区四部分。请问各个部分有
哪些作用?
12、 文件目录中的文件号指的是什么? 13、 请阐述Unix文件硬链接的实质? 14、 文件目录中的文件号指的是什么?
15、 超级块有什么作用?它包括那些信息?它什么时候读入内容? 16、 在UNIX系统中,空闲磁盘块采用成组管理,如图所示。
请详细描述空闲磁盘块的分配和去配过程(考虑各种可能的情况)。 17、 “..”和“.”表示什么?什么叫绝对路径?什么叫相对路径? 18、 在Linux/Unix系统中,要使用目前不在系统中的盘(如U盘),必须把该盘mount
在系统中的某个目录下,并登记相应的mount表,结构如下:
Struct mount{
int m_dev; //device mounted int *m_bufp;//pointer to super block
int *m_inodep;//pointer to mounted on inode } mount[NMOUNT];
请详细阐述mount过程系统完成操作。 19、 请详细阐述Linux/Unix系统中,进程
(1) 创建文件:creat(pathname,mode) (2) 打开文件:open(pathname,mode) 的基本过程。
20、 什么叫做转储?实现转储有哪三种策略?
第八章 设备与I/O管理
1、 按I/O基本单位分,设备可以划分成哪两类设备?
2、 有哪四种数据传输方式?请分别阐述四种数据传输方式的基本原理。
3、 在I/O设备控制方式的发展过程中,最主要的推动因素是 A 。提高I/O速度和
设备利用率,在操作系统中主要依靠 B 功能。使用户编制的程序与所使用设备无关是由 C 功能实现的。 A: (1)提高资源利用率; (2) 提高系统的吞吐率;
(3)减少主机对I/O控制的干预; (4)提高CPU与I/O设备的并发操作程度; B,C: (1) 设备分配;(2)缓冲技术;(3)设备管理; (4)设备独立性;(5)虚拟设备; 4、 通道有哪些自己的专用运控部件?它们各自有什么作用?
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的设备,并可以在程序中使用该设备。