习题集第2章 参考答案
一、 单项选择题
1、 D
2、 D
3、 B
4、 D
5、 C
6、 B
7、 A
8、 B
9、 C
10、 B
11、 C
12、 B
13、 D
14、 C
15、 D
16、 A
17、 B
18、 A
19、 B
20、 D
21、 C
22、 D
23、 B
24、 D
25、 D
26、 B
27、 C
28、 B
29、 A
30、 B
31、 A
32、 C
33、 B
34、 A
35、 C
二、 填空题
1 进程
2 就绪 执行 阻塞
3 进程控制块
4 进程控制块(或PCB)
5 99 1 100
6 就绪
7 静止阻塞
8 共享存储器,管道通信,消息传递
9 信号量
10 [1-n,1]
11 进程控制块(PCB)
12 同步 互斥
信号量
13 wait(mutex)
signal(mutex)
14 顺序性,封闭性,可再现性
15 并发
16 临界区
17 wait, signal
18 1,(1-n)或-(n-1)
19 7
20 waitsignal
21 阻塞 就绪
22 链接
23 忙则等待
三、 判断题×√
1×
2√
3×
4×
5×
6×
7√
8×
9×
10√
11√
12×
13√
四、 简答题
1、解释进程的顺序性和并发性。
答:进程的顺序性是指进程在顺序的处理器上的执行是严格按序的,只有在前一个操作结束后才能开始后继操作。
进程并发性是指一组进程可以轮流占用处理器,一个进程的工作没有全部完成之前,另一个进程就可开始工作。把这样的一组进程看做是同时执行的,把可同时执行的进程称为并发进程。
所以,进程的顺序性是对每个进程而言的,进程的并发性是对一组具有顺序性的进程而言的。一组进程并发执行时各进程轮流占用处理器交替执行,占用处理器的进程按各自确定的顺序依次执行指令。
2、简述进程与程序的区别和联系。
答:
区别:
(1)进程能真实地描述并发,而程序不能。
(2)动态性是进程的基本特征,进程实体具有创建、执行和撤销的生命周期,而程序只是一组有序指令的集合,存放在某种介质上,是静态的。
(3)进程的具有创建其他进程的功能,而程序没有。
联系:
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
3、什么是进程?进程控制块PCB中包含哪几类信息?
答
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
PCB包括的信息:进程标识符;处理机状态信息;进程调度信息;进程控制信息
4、试说明进程在三个基本状态之间转换的典型原因。
就绪到运行:进程被分派程序调度,获得cpu开始执行
运行到就绪:分配给该进程的时间片用完
运行到阻塞:等待某事件发生,如I/O处理的完成或某资源变为可用
阻塞到就绪:等待的事件发生
5、请画出包含有五种基本状态的进程模型图,并在图中标出状态之间发生转换的原因。
6、试说明你对进程互斥、同步关系的理解
进程互斥是指同处于一个系统中的进程需要互斥使用临界资源。
进程同步是指多个相关联的进程在执行次序上需要协调。
7、从并发性,调度性,拥有资源和系统开销方面比较进程与和线程。
(1)调度的基本单位:线程作为调度和分派的基本单位,当线程切换时,时间空间代价远低于进程。
(2)并发性:进程之间可以并发,一个进程的多个线程之间也可以并发。
(3)拥有资源:进程是拥有资源的基本单位,线程不拥有资源,但可访问其隶属进程的资源。
(4)系统开销:进程之间切换时空开销大,一个进程中多个线程切换时,开销小。
8、记录型信号量所采用的数据结构可描述为:
structsemaphore
{
intvalue;
pointer_PCB queue;
}
请在下面的空格中填上合适的内容,以符合wait(S)和signal(S)操作的正确描述。
wait(s)
{
s.value=s.value ①_+1______;
if(s.value ②<___0)
③___block_(s.queue)
}
signal(s)
{
s.value=s.value ①_-1______;
if(s.value ②_<=_____0)
③__wakeup_(s.queue)
}
五、 综合题
1、兄弟俩共用一个账号,他们都可以用该账号到任何一家联网的银行自动存款或取款。假定银行的服务系统有“存款”和“取款”两个并发进程组成,且规定每次的存款额和取款额总是为100元。若进程结构如下:
begin
amount:integer;
amount:=0;
cobegin
Process SAVE
m1: integer;
begin
m1:=amount;
m1:=m1+100;
amount:=m1
end;
Process TAKE
m2:Integer;
begin
m2:=amount;
m2:=m2-100;
amount:=m2
end;
coend;
end;
请回答下列问题:
(1)你估计该系统工作时会出现怎样的错误?为什么?
(2)若哥哥先存了两次钱,但在第三次存钱时弟弟却正在取钱,则该账号上可能出现的余额为多少?正确的余额应该为多少?
(3)为保证系统的安全,若用PV操作来管理,应怎样定义信号量及其初值?解释信号量的作用。
(4)在程序的适当位置加上P操作和V操作,使其能正确工作。
答:(1)系统工作时会出现与时间有关的错误,这是因为并发进程中没有对共享变量amount的使用加以限制,进程交叉访问amount时就会出错。
(2)账号上可能出现的余额为100元或200元或300元,正确的余额应该为200元。
(3)用PV操作管理时可定义一个信号量S,S的初值为1,信号量S用于限制进程互斥地进入相关临界区执行。
(4)使用PV操作管理后能保证正确并发执行的进程结构如下:
int amount;
semaphore s ;
main()
{ amount=0;
s.value=1;
cobegin{ save(); take();}
}
void save(){
int m1;
wait(S);
m1=amount;
m1=m1+100;
amount=m1;
signal(S)
}
take(){
int m2;
wait (S);
m2=amount;
m2=m2-100;
amount=m2;
signal(S)
}
2、在公共汽车上,司机和售票员的工作流程如下:
答:(1)司机与售票员之间应该同步。为了保证乘客安全,仅当售票员关好车门后司机才能启动车辆,也只有在车辆到站停稳后售票员才能开车门。因而,他们之间必须互通消息。
(2)用PV操作管理时应区分两种不同的消息,故应定义两个信号量door和stop。door表示车门是否关好,stop表示车是否已到站停车。由于初始状态为车尚未始发、开着门,故door和stop的初值均为“0”。
(3)用wait和signal操作来协调司机与售票员的工作时,可把他们的工作流程修改如下:
司机进程:
void driver( )
{ wait(door);
• 启动车辆;
• 正常行车;
• 到站停车;
• signal(stop);
•
}
售票员进程:
void conductor( )
{
• 关车门;
• signal(door);
• 售票;
• wait(stop);
• 开车门;
}
3、答:
1. ①②③④ x=3 y= 6
2. ①③②④ x=3 y= 8
3. ①③④② x=3 y= 9
4. ③④①② x=2 y= 8
5. ③①④② x=3 y= 9
6. ③①②④ x=3 y= 8
4、
答:临界区是程序中包含有使用临界资源的那段代码。
上述算法实现的互斥不安全,当两个进程同时调用enter-crtsec(i)时,两个进程会同时判断到对方进程的flag为False,然后两个进程会同时将自己的flag设置为TRUE,然后两个进程会同时进入各自的临界区。
5、答案:
(1)设信号量用S表示,则其初始值为10。
信号量取值的含义:
S>0S的值表示可继续进入售票厅的人数
S=0 表示售票厅中已有10名顾客(购票者)
S<0|S|的值为等待进入售票厅的人数
(2)根据所定义的信号量,把应执行的wait和signal操作填入下面程序Pi中,以保证进程能够正确地并发执行。
parbegin
P1
∶
Pi
∶
P10
parend
procedure Pi (i = 1,2,… ,10)
begin
wait(S) ;
进入售票厅;
购票;
退出;
signal(S) ;
end
(3)答案:最小值为10-n,最大值10。
6、 (1)会产生死锁。
(2)上面的生产者/消费者算法中,生产者进程中的两个wait操作互换了,会出现死锁。
死锁发生在:当缓冲区已经全部填满没有空单元,生产者进程继续运行,还要继续往里填产品时。
如果消费者进程中的两个wait操作互换,则当缓冲区已经全部为空,而消费者进程继续运行,还要继续取产品是会发生死锁。
生产者进程(或者消费者进程)中的两个signal操作互换,不会引起死锁。
7、答:设信号量s,其初值为200,操作描述如下:
进程p: wait(s);
进入售票厅;
购票;
退出;
signal(s);
8、答案:
设置2个信号量,seat代表座位,初值为100;mutex代表登记时互斥,初值为1;
|
9、答:设信号量s,其初值为1,操作描述如下:
进程p:
到达A点
wait(s);
进入AB段;
到达B点;
signal(s);
10、
答案:
11、答:
在本题中,应设置三个信号量S、So、Sa,信号量S表示盘子是否为空,其初值为1;信号量So表示盘中是否有桔子,其初值为0;信号量Sa表示盘中是否有苹果,其初值为0。同步描述如下:
semaphore S ,Sa ,So;
main()
{ S.value=1;
Sa.value=0;
So.value=0;
cobegin{ father(); son(); daughter();
}
}
father()
{
while(1)
{
wait(S);
将水果放入盘中;
if(放入的是桔子)
signal(So);
else signal(Sa);
}
}
son()
{
while(1)
{
wait(So);
从盘中取出桔子;
signal(S);
}
}
daughter()
{
while(1)
{
wait(Sa);
从盘中取出苹果;
signal(S);
}
}
12、(1)答:
WAIT、SIGNAL操作是两条原语,它们的定义如下:
WAIT操作记为WAIT(S),其中S为一信号量,它执行时主要完成下述动作:
S= S-1
若S>=0,则进程继续运行。
若S<0,则该进程被阻塞,并将它插入该信号量的等待队列中。
可用以下语句实现:
wait(s)
{
s.value=s.value-1;
if(s.value<0) block(s.queue);
}
SIGNAL操作记为SIGNAL(S), S为一信号量,它执行时主要完成下述动作:
S= S+1
若S>0,则进程继续运行。
若S<=0,则从信号量等待队列中移出队首进程,使其变为就绪状态。
可用以下语句实现:
signal(s)
{ s.value=s.value+1;
if(s.value<=0) wakeup(s.queue);
}
(2)
答:在本题中,进程PA、PB、PC之间的关系为:PA与PB共用一个单缓冲区,而PB又与PC共用一个单缓冲区,其合作方式可用图表示:
当缓冲区1为空时,进程PA可将一个记录读入其中;若缓冲区1中有数据且缓冲区2为空,则进程PB可将记录从缓冲区1复制到缓冲区2;若缓冲区2中有数据,则进程PC可以打印记录。在其他条件下,相应进程必须等待。事实上,这是一个生产者-消费者问题。
为遵循这一同步规则。应设置四个信号量empty1、empty2、full1、full2,信号量empty1及empty2分别表示缓冲区1及缓冲区2是否为空,其初值为1;信号量full1及full2分别表示缓冲区1及缓冲区2是否有记录可供处理,其初值为0。其同步描述如下:
semaphore empty1 ,empty2 ,full1,full2;
main()
{ empty1.value=1;
empty2.value=1;
full1.value=0;
full2.value=0;
cobegin{ PA(); PB( ); PC( );}
}
PA( )
{
while(1)
{
从磁盘读一个记录;
wait(empty1);
将记录存入缓冲区1;
signal(full1);
}
}
PB( )
{
while(1)
{
wait(full1);
从缓冲区1取出记录;
signal(empty1);
wait(empty2);
将记录存入缓冲区2;
signal(full2);
}
}
PC( )
{
while(1)
{
wait(full2);
从缓冲区2中取出记录;
signal(empty2);
打印记录;
}
}
本题也是一个典型的生产者-消费者问题。其中的难点在于PB既是一个生产者又是一个消费者
13、(1)semaphore mutex=1;//互斥信号量、每次只允许一个人使用
semaphore full=100;//开始时商品个数
semaphore empty=0;//开始时摆放商品的空间为0
(2)将对所定义信号量的操作填入适当的空白处。
| |
|
14、
semaphore s=1, //信箱为空
life=0, //信箱中没有《生活报》
night=0; //信箱中没有《新晚报》
parbegin
A:begin
wait(life);
取生活报;
signal(s);
end
B:
begin
wait(night);
取新晚报;
signal(s);
end
C:
begin
wait(s);
投递生活报;
signal(life);
end
D:
begin
wait(s);
投递新晚报;
signal(night);
end
parend
15
semaphore wmutex,rmutex;
wmutex.value=1; //文件一次只能被一个进程访问
rmutex.value=1; //读者互斥访问变量readcount
int readcount=0;//记录读者数量
void reader()
{
while(true)
{
wait(rmutex);
if(readcount ==0)
wait(wmutex);
readcount++;
signal(rmutex);
读文件;
wait(rmutex);
readcount--;
if(readcount ==0)
signal(wmutex);
signal(rmutex);
}
}
void writer()
{
while(true)
{
wait(wmutex);
写文件;
signal(wmutex);
}
}
void main()
{
cobegin{ reader(); writer(); }
}
16利用信号量实现下述的前驱关系。
var a,b,c,d,e,f,g: semaphore:=0,0,0,0,0,0,0;
begin
parbegin
begins1;signal(a);signal(b);end;
beginwait(a);s2;signal(c);end;
beginwait(b);s3;signal(d); signal(e);end;
beginwait(d);s4; signal(f);end;
beginwait(e);s5; signal(g);end;
beginwait(c); wait(f); wait(g);s6; end;
parend
end
17、
semaphore seets=10,mutex=1,haveCustom=0;
process 顾客
{
wait(seets);
wait(mutex);
从取号机上取号;
signal(mutex);
signal(haveCustom);
等待营业员叫号;
signal(seets);
接受服务;
}
process 营业员
{
while(true)
{
wait(haveCustom);
叫号;
为顾客服务;
}
}
18、
方法1:
semaphore chopstick[5]={1,1,1,1,1};
semaphore room=4;
void philosopher(int i)
{
while(true)
{
think();
wait(room); //请求进入房间进餐
wait(chopstick[i]); //请求左手边的筷子
wait(chopstick[(i+1)%5]); //请求右手边的筷子
eat();
signal(chopstick[(i+1)%5]); //释放右手边的筷子
signal(chopstick[i]); //释放左手边的筷子
signal(room); //退出房间释放信号量room
}
}
方法2
semaphore mutex = 1 ;
semaphore chopstick[5]={1,1,1,1,1};
void philosopher(int I)
{
while(true)
{
think();
wait(mutex);
wait(chopstick[(I+1)]%5);
wait(chopstick[I]);
signal(mutex);
eat();
signal(chopstick[(I+1)]%5);
signal(chopstick[I]);
}
}
方法3
semaphore chopstick[5]={1,1,1,1,1};
void philosopher(int i)
{
while(true)
{
think();
if(i%2 == 0) //偶数哲学家,先右后左。
{
wait (chopstick[ i + 1 ] mod 5) ;
wait (chopstick[ i]) ;
eat();
signal (chopstick[ i + 1 ] mod 5) ;
signal (chopstick[ i]) ;
}
Else //奇数哲学家,先左后右。
{
wait (chopstick[ i]) ;
wait (chopstick[ i + 1 ] mod 5) ;
eat();
signal (chopstick[ i]) ;
signal (chopstick[ i + 1 ] mod 5) ;
}
}
19
semaphore empty=n, odd=0,even=0,mutex=1;
p1()
{
i=produce( );
wait(empty);
wait(mutex);
put();
signal(mutex);
if(i%2==0)
signal(even);
else
signal(odd);
}
p2()
{
wait(odd);
wait(mutex);
getodd();
countodd()=countodd()+1;
signal(mutex);
signal(empty);
}
p3()
{
wait(even);
wait(mutex);
geteven();
counteven()=counteven()+1;
signal(mutex);
signal(empty);
}
main()
{
cobegin{p1();p2();p3()}
}
一、单项选择题
1、 A
2、 A
3、 A
4、 C
5、 D
6、 C
7、 C
8、 B
9、 A
10、B
11、A
12、B
13、A
14、A
二、填空题
1、 多级存储器结构
2、 绝对装入,可重定位装入,动态运行时装入
3、 静态链接,装入时动态链接,运行时动态链接
4、 首次适应算法,循环首次适应算法,最佳适应算法
5、 内部碎片
6、 外部碎片
7、 紧凑(或拼接)
8、 对换
9、 离散,连续
10、页号
11、 1K,16K
12、段号
13、2次,页表项,快表
14、可重入代码(纯代码)
三、简答题
1. 简述内存管理技术有哪些?
2. 分别阐述常用的连续分配方式的特点?
(1)单一连续分配:
只能用于单用户、单任务的操作系统中。
把内存分为系统区和用户区两部分,系统区仅提供给OS使用,通常是放在内存的低地址部分;用户区是指除系统区以外的全部内存空间,提供给用户使用。
(2)固定分区分配
最简单的运行多道程序的存储管理方式,将内存用户空间划分为若干固定大小的分区,每个分区只装入一道作业。则内存中有几个分区就可以同时允许几道作业并发执行。
(3)动态分区分配
按需分配内存—按照进程的大小,在内存中划分出相应大小的分区并将进程装入。分区的长度和数量是可变化的。
(4)可重定位分区分配
可以将所有程序进行移动,将原来分散的空闲的小分区挪成一个大分区。就可以装入新程序。这种方式叫“拼接”或“紧凑”。每次“紧凑”后原来程序的物理地址都发生了变化,需要通过相对地址进行重定位。
3. 什么是分页?什么是分段?二者主要有何区别?
分页是将一个进程的逻辑地址空间分成若干大小相等的部分,每一部分称作页面。
分段是一组逻辑信息的集合,即一个作业中相对独立的部分。
分页和分段的主要区别是:
--页是信息的物理单位,段是信息的逻辑单位;
--页的大小是由系统固定的,段的长度因段而异,由用户决定;
--分页的作业地址空间是一维的,分段的作业地址空间是二维的。
4. 什么是页表?页表的作用是什么?
在分页系统中,允许将进程的各个页离散地存储在内存的任一物理块中,为保证进程仍然能够正确地运行,即能在内存中找到每个页面所对应的物理块,系统又为每个进程建立了一张页面映像表,简称页表。
页表的作用是实现从页号到物理块号的地址映射。
5. 为什么说分段系统比分页系统更易于实现信息的共享和保护?
对于分页系统,每个页面是分散存储的,为了实现信息共享和保护,则页面之间需要一一对应起来,为此需要建立大量的页表项;
对于分段系统,每个段都从0开始编址,并采用一段连续的地址空间,这样在实现共享和保护时,只需为所要共享和保护的程序设置一个段表项,将其中的基址与内存地址一一对应起来即可.
6. 试比较连续分配和离散分配方式。
- 连续分配是指为一个用户程序分配一个连续的地址空间,包括单一连续分配方式和分区式分配方式,前者将内存分为系统区和用户区,系统区供操作系统使用,用户区供用户使用,是最简单的一种存储方式,-但只能用于单用户单任务的操作系统中;分区式分配方式分为固定分区和动态分区,固定分区是最简单的多道程序的存储管理方式,由于每个分区的大小固定,必然会造成存储空间的浪费;动态分区是根据进程的实际需要,动态地为之分配连续的内存空间,常用三种分配算法: 首次适应算法FF,该法容易留下许多难以利用的小空闲分区,加大查找开销;循环首次适应算法,该算法能使内存中的空闲分区分布均匀,但会致使缺少大的空闲分区;最佳适应算法,该算法也易留下许多难以利用的小空闲区;
- 离散分配方式基于将一个进程直接分散地分配到许多不相邻的分区中的思想,分为分页式存储管理,分段存储管理和段页式存储管理. 分页式存储管理旨在提高内存利用率,满足系统管理的需要,分段式存储管理则旨在满足用户(程序员)的需要,在实现共享和保护方面优于分页式存储管理,而段页式存储管理则是将两者结合起来,取长补短,即具有分段系统便于实现,可共享,易于保护,可动态链接等优点,又能像分页系统那样很好的解决外部碎片的问题,以及为各个分段可离散分配内存等问题,显然是一种比较有效的存储管理方式;
- 综上可见,连续分配方式和离散分配方式各有各自的特点,应根据实际情况加以改进和利用.
7. 在动态分区式内存管理中,若某一时刻系统内存中有五个空闲分区,如下表所示。某进程要申请一块20K的内存空间,假设上一次分配的内存地址在140K处,请分别按最佳适应算法.首次适应算法.循环首次适应算法指明选中的是起始地址为多少的空闲内存区?
空闲分区大小 | 起始地址 |
32K | 100K |
22K | 150K |
5K | 200K |
218K | 220K |
96K | 530K |
答案:最佳适配算法:150K起址的地址空间
首次适配算法:100K起址的地址空间
循环首次适配算法(邻近适配算法):150K起址的地址空间
8. 假设某16位地址空间的页式管理系统,主存64KB,分为16块(块号0,1,…….,15),某进程有5个页(页号为0,1,2,3,4),被分别装入主存的3,8,4,6,9块中。
(1)计算逻辑地址(3,70)(括号中第一个元素为页号,第二个元素为页内偏移)对应的物理地址。
要求:写出主要计算过程,结果用二进制表示
答案:
a) 块大小:64KB/16=4k
b) 所以 :后12位是偏移量
c) 70 的二进制:0000 0100 0110
d) 3 的二进制:0011
e) 转化过程中,偏移量不变,页号3变为块号6 ,其二进制为0110
故物理地址为: 0110 0000 0100 0110
(2)计算逻辑地址13AC对应的物理地址。
要求:写出主要计算过程,结果用十六进制表示
答案:
f) 块大小:64KB/16=4k
g) 所以 :后12位是偏移量
h) 13AC的二进制:0001 0011 1010 1100
i) 转化过程中,偏移量不变,页号1变为块号8 ,其二进制为1000
故物理地址为:1000 0011 1010 1100 即:83AC(H)
9.若在一采用分式存储管理系统中,某作业的页表如下所示。已知页面大小为1024字节。试求出逻辑地址1011和2148(十进制)所对应的物理地址。结果用十进制表示。
页号 | 帧号 |
0 | 2 |
1 | 3 |
2 | 1 |
3 | 6 |
答案:
(1)1011/1024=0页,对应物理块号为2,页内偏移为1011,物理地址=1024*2+1011=2048+1011=3059;
(2)2148/1024=2页,对应物理块号为1,页内偏移为100,物理地址=1024*1+100=1124
10. 在采用分页存贮管理系统中,地址结构长度为18位,其中11至17位表示页号,0
至10位表示页内位移量。若有一作业的各页依次放入2,3,7号物理块中,试问:
(1)主存容量最大可为多少K?分为多少块?每块有多大?
(2)逻辑地址1500应在几号页内?对应的物理地址是多少?
(1)主存容量为256K,可分为128块,每块大小为2K。
27=128
211=2K
2K*128=256K
(2)逻辑地址在0号页内,物理地址等于5596。
2*1024*2+1500=5596
一、单项选择题
1、 C
2、 B
3、 C
4、 A
二、填空题
1、 中断
2、 多次性,对换性,虚拟性
3、 缺页中断
4、 缺段中断
5、 抖动
6、 2A5C ,1D3C
7、 9,6
8、 6,7,9
三、简答题
1. 什么是虚拟存储器?虚拟存储器有哪些特征?
所谓虚拟存储器,是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
虚拟存储器的特征:多次性,对换性,虚拟性。
2. 请求分页系统中,页表应该包含哪些数据项?每项的作用是什么?
(1) 页表中包括:页号、物理块号、状态位、访问字段、修改位、外存地址
(2) 页号:逻辑空间的位置。
物理块号:物理空间的位置。
状态位:表示该页是否已调入内存,供程序访问时参考。
访问字段:记录本页一段时间内的访问次数,供换出页面使用。
修改位M:该页在调入内存后是否被修改过。供换页时参考。
外存地址:该页在外存上的地址。
3. 试说明请求分页系统中的地址变换过程?
4. 在某16位地址空间虚拟分页存储系统中,某用户进程空间共有4个页面,每个页面大小为1KB。物理内存大小为16KB,每个内存块大小为1KB。假定某时刻用户进程的页表如下所示:
页号 | 物理块号 |
0 | 3 |
1 | — |
2 | 13 |
3 | 8 |
(1)计算逻辑地址 0A5C对应的物理地址是什么?
要求:写出主要计算过程,结果用十六进制表示
答案:
1)每页的大小为1K,所以用地址的高6位来描述页号,低10位用来描述页地址。
2)地址0A5C的二进制表示为 0000101001011100
3)由高6位000010得到地址0A5C的逻辑页号是2
4)查页表2号页面对应的物理块号是13,并该页在内存中。
5)所以0A5C的对就的物理地址为00110110 0101 1100 即:365C(H)
(2)计算逻辑地址 05B3对应的物理地址是什么?当无法运行地址变换时,说明产生何种中断。
要求:写出主要计算过程,结果用十六进制表示
答案:
1)每页的大小为1K,所以用地址的高6位来描述页号,低10位用来描述页地址。
2)地址05B3的二进制表示为 0000 0101 1011 0011
3)由高6位000010得到地址05B3的逻辑页号是1
4)查页表1号页面未装入内存,所以无法进行地址转化。操作系统发起缺页中断。
5. 在某请求分页存储管理系统中,某进程的访页踪迹为:4,3,2,1,4,3,5,4,3,2,1,5,该进程的驻留集大小为3。假设内存中事先没有装入任何该进程的页面,请使用OPT,FIFO,LRU,简单Clock四种方法将访页过程填入下表,并计算使用不同算法时的缺页率。是否缺页后的括号中缺页打“√”。
驻留集:操作系统分配给进程使用的页面
缺页率:缺页次数/访问页面总个数。使用x%形式表示,x为整数。
FIFO算法 :缺页率75%
访页踪迹: | 4 | 3 | 2 | 1 | 4 | 3 | 5 | 4 | 3 | 2 | 1 | 5 |
| 4 | 4 | 4 | 1 | 1 | 1 | 5 | 5 | 5 | 5 | 5 | 5 |
|
| 3 | 3 | 3 | 4 | 4 | 4 | 4 | 4 | 2 | 2 | 2 |
|
|
| 2 | 2 | 2 | 3 | 3 | 3 | 3 | 3 | 1 | 1 |
是否缺页: | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) |
LRU算法:缺页率:83.3%
访页踪迹: | 4 | 3 | 2 | 1 | 4 | 3 | 5 | 4 | 3 | 2 | 1 | 5 |
| 4 | 4 | 4 | 1 | 1 | 1 | 5 | 5 | 5 | 2 | 2 | 2 |
|
| 3 | 3 | 3 | 4 | 4 | 4 | 4 | 4 | 4 | 1 | 1 |
|
|
| 2 | 2 | 2 | 3 | 3 | 3 | 3 | 3 | 3 | 5 |
是否缺页: | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) |
Opt算法 :缺页率:58.3%
访页踪迹: | 4 | 3 | 2 | 1 | 4 | 3 | 5 | 4 | 3 | 2 | 1 | 5 |
| 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 2 | 1 | 1 |
|
| 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
|
|
| 2 | 2 | 2 | 2 | 5 | 5 | 5 | 5 | 5 | 5 |
是否缺页: | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) |
Clock算法:75%
访页踪迹: | 4 | 3 | 2 | 1 | 4 | 3 | 5 | 4 | 3 | 2 | 1 | 5 |
| 4 | 4 | 4 | 1 | 1 | 1 | 5 | 5 | 5 | 5 | 5 | 5 |
|
| 3 | 3 | 3 | 4 | 4 | 4 | 4 | 4 | 2 | 2 | 2 |
|
|
| 2 | 2 | 2 | 3 | 3 | 3 | 3 | 3 | 1 | 1 |
是否缺页: | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) | ( ) |
6. 在某段式存储管理系统中,有一个进程空间共4段,段号为0,1,2,3,段表如下:
段号 | 段长 | 在主存的起始地址 | 状态(0在内存1不在内存) |
0 | 500 | 1500 | 0 |
1 | 400 | 2600 | 0 |
2 | 120 | - | 1 |
3 | 85 | 380 | 0 |
计算逻辑地址(0,45),(1,50),(2,60),(3,90)相应的物理地址,当无法运行地址变换时,请说明产生何种中断。
说明:括号中第一个元素为段号,第二个元素为段内偏移。
写出主要计算过程,结果用十进制表示。
答案:
【0,45】=1500+45=1545
【1,50】=2600+50=2650
【2,60】不在主存内产生缺段中断
【3,90】=380+90,由于段长为85,产生越界中断
7. 假设某16位地址空间虚拟页式管理系统中,主存为64KB,分为32块,每块大小为2KB,块号为0、1、2、3、4…….31;某作业有5个页,页表如下表所示(其中,存在位0表示该页在内存中,存在位1表示该页不在内存中)。请将十六进制逻辑地址0A8C、1B9C转换成对应的物理地址。当无法运行地址变换时,应说明产生何种中断。结果用十六进制表示。
页号 | 帧号 | 存在位 |
0 | 7 | 0 |
1 | 9 | 0 |
2 | 8 | 0 |
3 | - | 1 |
4 | 5 | 0 |
答案
(1) 块的大小为2KB,所以页的大小也为2KB,所以页内偏移占用11位。
(2) 0A8C=0000 1 010 1000 1100 为第1页,对应的物理块号为9块
所以物理地址:0100 1 0101000 1100=4A8CH
(3) 1B9C=0001 1 011 1001 1100 为第3页,不再内存中,产生缺页中断。
8.一个请求页式存储管理系统中,某进程的页面走向依次为:1,4,3,2,1,5,4,3,2,2,3,5,1,3,5。假设分给该进程的主存物理块分别为3块和4块。试给出FIFO和LRU算法在这两种情况下的访问过程并填入表格,同时计算缺页率,并分析结果可得到什么结论。
答案
FIFO算法(3) :缺页率80%
访页踪迹: | 1 | 4 | 3 | 2 | 1 | 5 | 4 | 3 | 2 | 2 | 3 | 5 | 1 | 3 | 5 |
| 1 | 1 | 1 | 2 | 2 | 2 | 4 | 4 | 4 | 4 | 4 | 5 | 5 | 5 | 5 |
|
| 4 | 4 | 4 | 1 | 1 | 1 | 3 | 3 | 3 | 3 | 3 | 1 | 1 | 1 |
|
|
| 3 | 3 | 3 | 5 | 5 | 5 | 2 | 2 | 2 | 2 | 2 | 3 | 3 |
是否缺页: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FIFO算法(4):缺页率:40%
访页踪迹: | 1 | 4 | 3 | 2 | 1 | 5 | 4 | 3 | 2 | 2 | 3 | 5 | 1 | 3 | 5 |
| 1 | 1 | 1 | 1 | 1 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
|
| 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 1 | 1 | 1 |
|
|
| 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
|
|
|
| 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
是否缺页: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LRU算法(3) :缺页率:73.3%
访页踪迹: | 1 | 4 | 3 | 2 | 1 | 5 | 4 | 3 | 2 | 2 | 3 | 5 | 1 | 3 | 5 |
| 1 | 1 | 1 | 2 | 2 | 2 | 4 | 4 | 4 | 4 | 4 | 5 | 5 | 5 | 5 |
|
| 4 | 4 | 4 | 1 | 1 | 1 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
|
|
| 3 | 3 | 3 | 5 | 5 | 5 | 2 | 2 | 2 | 2 | 1 | 1 | 1 |
是否缺页: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LRU算法(4):60%
访页踪迹: | 1 | 4 | 3 | 2 | 1 | 5 | 4 | 3 | 2 | 2 | 3 | 5 | 1 | 3 | 5 |
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
|
| 4 | 4 | 4 | 4 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
|
|
| 3 | 3 | 3 | 3 | 4 | 4 | 4 | 4 | 4 | 4 | 1 | 1 | 1 |
|
|
|
| 2 | 2 | 2 | 2 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
是否缺页: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
结论: 驻留集增加,有助于减少缺页率。
9、访页过程填表:FIFO算法(假定开始时先把1,2,3,4号页面装入内存)
访页踪迹 内存初始 | 3 | 1 | 5 | 4 | 6 | 2 | 1 | 2 | 5 | 7 | 3 | 2 |
1 | 1 | 1 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 7 | 7 | 7 |
2 | 2 | 2 | 2 | 2 | 6 | 6 | 6 | 6 | 6 | 6 | 3 | 3 |
3 | 3 | 3 | 3 | 3 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
4 | 4 | 4 | 4 | 4 | 4 | 4 | 1 | 1 | 1 | 1 | 1 | 1 |
访页过程填表:LRU算法(假定开始时先把1,2,3,4号页面装入内存)
访页踪迹 内存初始 | 3 | 1 | 5 | 4 | 6 | 2 | 1 | 2 | 5 | 7 | 3 | 2 |
1 | 1 | 1* | 1 | 1 | 1 | 2* | 2 | 2* | 2 | 2 | 2 | 2* |
2 | 2 | 2 | 5* | 5 | 5 | 5 | 1* | 1 | 1 | 1 | 3* | 3 |
3 | 3* | 3 | 3 | 3 | 6* | 6 | 6 | 6 | 6 | 7* | 7 | 7 |
4 | 4 | 4 | 4 | 4* | 4 | 4 | 4 | 4 | 5* | 5 | 5 | 5 |
访页过程填表:OPT算法(假定开始时先把1,2,3,4号页面装入内存)
访页踪迹 内存初始 | 3 | 1 | 5 | 4 | 6 | 2 | 1 | 2 | 5 | 7 | 3 | 2 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 7 | 3 | 3 |
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
3 | 3 | 3 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
4 | 4 | 4 | 4 | 4 | 6 | 6 | 6 | 6 | 6 | 6 | 6 | 6 |
10.
(1) 由于计算机的逻辑地址空间和物理地址空间均为64KB=216B,按字节编址,且页(块)的大小为1KB=210B,所以计算机的逻辑地址结构和物理地址结构均为:
17CAH=(0001 0111 1100 1010)2,所以17CAH对应的页号是(000101)2=5。
(2)若采用先进先出(FIFO)置换算法,则置换装入时间最早的页,故0号页被置换,将5号页装入7号页框,所以17CA H对应的物理地址为(0001 1111 1100 1010)2=1FCA H。
(3)若采用时钟(CLOCK)置换算法,则从当前指针指示页框开始查找,若其中页的访问位为0,则置换该页,否则将访问位清零,并将指针指向下一个页框,继续查找。由于初始时内存中的4个页的访问位均为1,因此,前4次查找并未找到合适的页,但查找时已将对应页的访问位清零,第5次查找时,指针重新指向2号页框,其中存放的2号页的访问位为0,故置换该页,将5号页装入2号页框,所以17CA H对应的物理地址为(0000 1011 1100 1010)2=0BCA H。
11、某计算机采用段页式虚拟存储器,已知虚拟地址为32位,按字节编址,每个段最多可以有2K页,页大小为16KB,物理主存储容量为512MB。请回答:
(1)虚拟存储器的容量是多少?
容量为232B=4GB。
(2)给出逻辑地址结构并说明理由。
逻辑地址结构由段号+段内页号+页内地址组成。其中段号由高25-31位表示,段内页号由14-24位表示,页内偏移量由0-13位表示。页大小为16KB(214),说明页内偏移量用14位地址码表示,每个段最多可以有2K页(211),说明表示段内页号用11地址码即可;剩下的7位表示段号。
(3)计算逻辑地址0X4EB9FDE3的段号,段内页号及页内偏移值(结果用十六进制表示)。
段内页号0X2E7,页内偏移值0X3DE3。
第六章 输入输出系统
一 单选题:
1、A | 2、C | 3、A | 4、B | 5、D | 6、B |
7、B | 8、C | 9、A | 10、B | 11、A | 12、A |
13、A | 14、B | 15、B | 16、D | 17、B | 18、B |
二、填空题:
1、DMA使用()技术从存储器中或者向存储器中传送数据。周期挪用
2、在几种I/O控制方式中,()方式是一种忙等方式。使用轮询的可编程IO方式
3、在DMA方式中,数据是在I/O设备和主存之间直接传输的,不需要经过()。处理器
4、磁盘访问时间包括()时间、()时间和传输时间。对磁盘进行调度是为了缩短()时间。寻道 旋转延迟 寻道
5、 键盘、打印机的I/O控制通常采用()控制方式,磁盘的I/O控制通常采用()控制方式。 中断驱动I/O DMA
6、 在活动磁头的磁盘系统中,将磁头移动到相应磁道所需要的时间称()时间。寻道
7、 磁头定位到磁道上以后,相应扇区旋转到磁头下所需要的时间称为()时间。旋转延迟
8、缓冲管理时采用的缓冲技术有()、()、()和()。
单缓冲 双缓冲 循环缓冲 缓冲池
9、利用缓冲区能有效地缓和()和()之间速度不匹配地矛盾。I/O设备 处理机
10、从资源分配的角度看,可以把设备分为独占设备和共享设备。打印机属于()设备,而磁盘属于()设备。独占 共享
11、虚拟设备是通过()技术把()设备变成能为若干用户()的设备。SPOOLing 独占 共享
12、 通道是一个独立于()的专用的处理机,它控制()与内存之间的信息交换。
CPU I/O设备
三 判断题:
1. 直接存储器访问DMA使得CPU的执行速度变慢了。()对
2. 使用轮询的可编程I/O方式是一种忙等方式。()对
3. 减小磁盘的直径可以缩短磁盘的寻道时间。()对
4. 计算机系统中,对磁盘上信息读写的最小单位是“字符”。( )错
5. 在移臂调度中,扫描算法是寻找一个离磁头当前位置最近的一个柱面请求并为之服务。()错
四 综合题:
1. 为什么要在设备管理中引入缓冲技术?
(1)缓和CPU与I/O设备间速度不匹配的矛盾。
(2)减少对CPU的中断频率,放宽对CPU中断响应时间的限制。
(3)提高CPU和I/O设备之间的并行性。
2.I/O控制可用哪几种方式实现?
-
- 使用轮询的可编程IO方式
- 使用中断的可编程I/O控制方式
- 直接存储器访问(DMA)I/O控制方式
- I/O通道控制方式
3、什么是SPOOLing技术?SPOOLing系统包含哪四个部分?
答 这种在联机情况下实现的同时外围操作称为SPOOLing,或称为假脱机操作。SPOOLing系统由以下三部分组成:
(1) 输入井和输出井
(2) 输入缓冲区和输出缓冲区
(3) 输入进程和输入进程
(4) 井管理程序
4.说明I/O系统的基本功能
(1)隐藏物理设备的细节
(2)与设备的无关性
(3)提高处理机和I/O设备的利用率
(4)对I/O设备进行控制
(5)确保对设备的正确共享
(6)错误处理
5、DMA的中文名称是什么?简述DMA的工作流程?
(1)直接存储器访问
(2)
6、假脱机系统向用户提供共享打印机的基本思想是什么?
打印机是常用的输出设备,属于独占设备。利用假脱机技术可将它改造为一台可供多个用户共享的的打印设备,从而提高设备的利用率,也方便了用户。假脱机打印系统有三部分组成:(1)磁盘缓冲区(2)打印缓冲区(3)假脱机管理进程和假脱机打印进程
7、某磁盘共200个磁道,编号为0-199。某时刻等待访问的磁道分别为:67,65,124,14,122,37,183,98。假设磁头刚从60磁道移动到67磁道,目前正停在第67磁道上。请分别计算按照FCFS、SSTF、SCAN、CSCAN磁盘调度算法进行调度时的磁道访问顺序以及磁头总移动距离。
答:FCFS:67—65—124—14—122-37—183—98 总距离:595
SSTF:67—65—37—14—98—122--124—183 总距离:222
SCAN:67—98—122—124—183—65—37—14 总距离:285
CSCAN:67—98—122—124—183—14—37—65 总距离 336
8、若磁头的当前位置为100磁道,磁头正在向磁道号增加的方向移动。现有一磁盘读写请求队列:23,205,132,19,81,190,29,4,18,40。请分别计算按照FCFS、SSTF、SCAN、CSCAN磁盘调度算法进行调度时的磁道访问顺序以及计算出“平均寻道长度”各为多少?
FCFS:100-23-205-132-19-81-190-29-4-18-40 平均寻道长度:83.8
SSTF:100-81-40-29-23-19-18-4-132-190-205 平均寻道长度:29.7
SCAN:100-132-190-205-81-40-29-23-19-18-4 平均寻道长度 30.6
CSCAN:100-132-190-205-4-18-19-23-29-40-81 平均寻道长度:38.3
9、某磁盘共200个磁道,编号为0-199。某时刻有9个磁盘请求分别要对如下个磁道进行访问:86,147,91,177,94,150,102,175,130。假设磁头刚从140磁道移动到143磁道完成了访问。请分别计算按照FCFS、SSTF、SCAN、CSCAN磁盘调度算法进行调度时的磁道访问顺序以及磁头总移动距离。
答:FCFS:143-86-147-91-177-94-150-102-175-130 总距离:565
SSTF:143-147-150-130-102-94-91-86-175-177 总距离:162
SCAN:143-147-150-175-177-130-102-94-91-86 总距离:125
CSCAN:143-147-150-175-177-86-91-94-102-130 总距离 169
10、若干个等待访问磁盘者依次要访问的柱面为20,44,40,4,80,12,76,假设每移动一个柱面需要3毫秒时间,移动臂当前位于40柱面,请按下列算法分别计算为完成上述各磁道访问总共花费的寻找时间。
(1)先来先服务算法;
磁盘访问顺序:40-20-44-40-4-80-12-76
移动距离:20+24+4+36+76+68+64=292
寻找时间:292*3=876
(2)最短寻找时间优先算法;
磁盘访问顺序:40-40-44-20-12-4-76-80
移动距离:0+4+24+8+8+72+4=120
寻找时间:120*3=360
11、假设一个可移动磁头的磁盘具有200个磁道,其编号为0~199,当前它刚刚结束了125道的存取,正在处理149道的服务请求,假设系统当前磁盘请求序列为:88, 147, 95, 177, 94, 150, 102, 175, 138。试问对以下的磁盘调度算法而言,满足以上请求序列,磁头将如何移动?并计算总的磁道移动数。
(1)先来先服务策略
149-88-147-95-177-94-150-102-175-138 寻道距离:61+59+52+82+83+56+48+73+37=551
(2)最短寻道时间优先策略
149-150-147-138-175-177-102-95-94-88 寻道距离:1+3+9+37+2+75+7+1+6=141
(3)扫描策略
149-150-175-177-147-138-102-95-94-88寻道距离:1+25+2+30+9+36+7+1+6=117
12、一个快速SCSI-II总线上的磁盘转速为7200rmp,每磁道160个扇区,每扇区512字节。那么,理想状态下,其数据传输率是多少?
磁盘转速为7200转/分钟,即120转/秒。一周一个磁道,一个磁道160个扇区,每扇区512B,则转一周可以访问160×512B=80KB的数据。这样一秒可以传输数据120×80KB=9600KB,即理想状态下,数据传输率是9600KB/秒。
第七章 文件管理
一、单选题
题号 | 1 | 2 | 3 | 4 | 5 |
答案 | A | B | D | C | B |
二、填空题
1. (文件系统)是用来组织和管理计算机中存储的程序和数据。
2. 文件的逻辑结构分为两大类,有(有结构文件)和(无结构文件),根据用户和系统管理上的需要,有结构文件可以分为(顺序文件)、(索引文件)、(索引顺序文件)。
3. 在文件的记录中,能唯一标示记录的一个或几个数据项的集合称为(关键字)。
4. 文件目录的结构一般有(单级目录结构)、(两级目录结构)和(多级目录结构)。
5. 在有结构文件中文件由若干(记录)组成,而无结构文件则被看成是一个(字符流)。
三、简答题
1、什么是文件,什么是文件系统。
文件是信息的一种组织形式,是存储在外存上的具有文件名的一组相关信息的集合。
文件系统是指操作系统中与文件管理有关的那部分软件以及被他们管理的文件和文件属性的集合。
2、在大多数OS中都引入了“打开”和“关闭”文件系统调用,解释这两个操作的含义。
打开文件操作:将基本文件目录中的内容读入用户活动文件表中,并在系统活动文件表中记录文件的打开次数。
关闭文件操作:将撤销用户的活动文件表中相应的表项,改变系统活动文件表中的文件打开次数信息。如果需要,还要将被改动过的文件目录信息写回基本文件目录中。
3. 什么是索引节点?索引节点与文件的关系?
(1)什么是索引节点?
索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一一个元素对应。系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号。
(2)索引节点与文件的关系
每个文件分配一个称为索引节点的号码inode,可以将inode简单理解成一个指针,它永远指向本文件的具体存储位置。系统是通过索引节点(而不是文件名)来定位每一个文件。文件系统处理文件所需要的所有信息都放在称为索引节点的数据结构中。文件名可以随时更改,但是索引节点对文件是唯一的,并且随文件的存在而存在。
4. 某操作系统的文件系统采用混合索引分配方式,索引节点中包含文件的物理结构数组iaddr[10],其中前7项iaadr[0]-iaddr[6]为直接地址,iaadr[7]-iaddr[8]为一次间接地址,iaadr[9]为二次间接地址。系统盘块的大小为4KB,磁盘的每个扇区大小也为4KB,描述磁盘块的数据项需要4个字节,其中1个字节标示磁盘分区,3个字节标示物理块,请回答:
该文件系统支持的单个文件的最大程度是多少?
答:磁盘块大小为4KB,每个磁盘块需要4个字节标识,则一个磁盘块中可以存4KB/4=1K个磁盘块。
采用直接地址的文件长度=7*4KB=28KB。
采用一级间接地址的文件长度=2*1K*4KB=8MB。
采用二级间接地址的文件长度=1K*1K*4KB=4GB。
故该文件系统支持的单个文件的最大长度为28KB+8MB+4GB。
第八章 磁盘存储器管理
一、单选题
题号 | 1 | 2 | 3 | 4 | 5 | 6 |
答案 | A | A | B | A&D | A | B |
二、填空题
1. 磁盘高速缓存Disk Cache,是为了解决磁盘I/O速度的瓶颈问题,在(内存)中为磁盘扇区开辟的缓冲区。
2. 磁盘高速缓冲存储器可以提高磁盘存取效率的理论依据是(局部性)原理。
3.在文件系统中,可以采用(文件分配)表来管理磁盘上已经分配给文件的空间。
4.在文件系统中,采用(磁盘分配)表管理磁盘上未分配的自由空间。
5.文件的外存分配方式主要有(连续分配)、(链接分配)和(索引分配)三种分配方式。
6.文件存储空间的管理方法有(空闲表),(空闲链表),(位示图)和(成组链接法)四种。
7.文件控制块(FCB)文件存在的标志。
8.位示图由5行×6列个位数构成,则第2行、第1列的盘块号是(13)。
简答题
1、 目前常用的外存有哪几种组织方式?
(1)连续组织方式。为文件分配一片连续的磁盘空间。
(2)链接组织方式。为文件分配不连续的磁盘空间,通过链接指针将一个文件的所有盘块链接在一起。
(3)索引组织方式。
2、 在链接文件中分为隐式链接和显式链接,试比较这两种链接方式。
隐式链接:文件目录项含有指向链接文件第一个盘块和最后一个盘块的指针。每个盘块中都含有指向下一个盘块的指针。
显式链接:把用于链接文件各物理块的指针显式的保存在内存一张链接表中也称为FAT表,整个磁盘一张。文件FCB的物理地址记录文件的第一个盘块号,其他的将根据FAT表确定文件还占有其他哪些盘块。
3、对空闲存盘空间的管理常采用哪几种分配方式?在UNIX操作系统中是采用何种分配方式?
(1)空闲表法。
(2)空闲链表法。
(3)位示图法。
(4)成组链接法。UNIX系统中采用的是成组链接法。
4、试说明廉价磁盘冗余阵列RAID的主要优点。
(1)可靠性高,除了RAID0级外,其余各级都采用了容错技术。
(2)磁盘I/O速度高,采取了并行交叉存取方式。
(3)性价比高。