操作系统 习题
E15:UNIX V6++文件系统
一、单项选择题
1. T0 时刻,系统中有两个进程 P1 和 P2,分别独立打开并同时访问小文件 example。则在
内存打开文件结构中有( )个内存 i 节点指向该文件?( )个 file 结构记录着
进程对文件的访问情况?
A. 1 B. 2
在哪个数据结构中登记有进程对文件的访问方式(读或读写)?( )
文件的读写指针保存在( )?
组成文件的每个逻辑盘块(信息块)在磁盘上的地址保存在( )?
A. 内存 i 节点 B. file结构 C. i_addr数组
若 P2 进程向文件追加写入 10000 个字符后关闭该文件,引发( )操作;稍后,P1 关
闭 example 文件,引发( )操作。
A. 释放 file 结构 B. 释放内存 i 节点
C. 将内存 i 节点写回磁盘 D. 不执行任何操作
二、应用题
2. UNIX V6++文件系统涉及的数据结构有哪些?请图示它们之间的关系。
3. 为什么 UNIX 文件系统中有两个 inode 结构?它们的主要作用是什么?
4. 请文字描述或图示 open 系统调用的执行过程。
5. 对文件“/usr/ast/temp”,请给出详细的目录搜索过程,其中各个目录文件的内容如下图
所示。
bin
dev
usr
根目录文件
(101#扇区)
4
7
6
…... …
dick
ast
jim
usr文件
(132#扇区)
19
30
51
…... …
Grants
temp
books
ast文件
(406#扇区)
64
80
92
…... …
根目录的Inode
...
d_addr[0]=101
...
6# Inode
...
d_addr[0]=132
...
30# Inode
...
d_addr[0]=406
...
6. 假如文件 Jerry 大小为 750 字节,现在执行下面的代码:
==========================================
int fd = open(“Jerry”, 2); //以可读可写方式打开文件
char data[300];
seek(fd, 500, 0);
int count = read ( fd, data, 300);
write(fd, data, 300);
==========================================
请尽量详细的写出系统调用 seek,read 和 write 的执行过程(假设当前系统中缓存的使
评论0