第6章 文件管理(第3讲)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《操作系统》
第六章文件管理(第3讲)
主讲:黄伯虎
上一讲内容回顾
文件的目录
文件目录的内容、功能 文件的目录结构
一级目录结构
二级目录结构
多级目录结构
文件目录的维护
打开文件机构
内存文件控制块
系统打开文件表
用户打开文件表
外存空间管理
空闲区表
位示图
空闲块链
成组链接法*
将空闲块分成若干组,每100个空闲块为一组。每组的第一个空闲块登记了下一组空闲块的物理盘块号和本组空闲块总数。
分配算法
释放算法
共享的含义
文件共享是指不同用户或进程使用同一文件,实际上文件的实体只有一个。
静态共享
静态的含义
一个文件同时属于多个文件目录项,但实际上文件仅仅只有一处物理存储,这种多个文件目录项对应一个文件实体的多对一的关
系叫做文件链接。
特点:
静态共享中这种关系不管文件此时是否在被使用,都存在。
静态共享的实现
硬链接
UNIX 中的文件链接的系统调用
link(oldname, newname);例如link (“/bin/ls”,“/usr/dir”);执行步骤如下:根目录文件
文件体
bin boot unix usr mnt
etc tmp dey
I=2 I =3 I=4 I=5 I=2
ls
10I=5
I=1.. .. .. .. 根目录索引节点
usr 目录文件
I=10bin 目录文件
di_nlink+1
.. .. dir .. .. 10struct dinode{
ushort di_mode; short di_nlink; ushort di_uid; ushort di_gid;
off_t di_size; char di_addr[40]; time_t di_atime;time_t di_mtime; time_t di_ctime; }
软连接
也称符号链接,生成符号链接文件时,将新文件登记在该用户共
享目录项中,文件内容为被链接文件的路径名。
根目录文件
文件体
bin boot unix usr mnt etc tmp dey
I=2 I =3 I=4 I=5 I=2
ls
10I=5
I=1.. ..
.. .. 根目录索引节点
usr 目录文件
I=10bin 目录文件
.. .. dir .. .. 11
I=11
文件体
/bin/ls
举例:ln -s /bin/ls /usr/dir
动态共享
特点:
出现在进程共享文件时,伴随着进程的生成而存在,进程的终止而消失。
举例
P1进程代码:
fd1=open(“/etc/test”, o_RDONLY);
fd2=open(“pocal”, o_WRONLY);
P2为P1的子进程,代码如下:
fd3=open(“/etc/testexa”,o_RDONLY);
P3执行如下代码:
fd1=open(“/etc/test”, o_RDWR);
fd1=open(“/etc/test”, o_RDONLY);
fd2=open(“pocal”, o_WRONLY); f_flag:写f_count=1f_inode
…P1: u_ofile
fp1fp2……
f_flag:读f_count=1f_inode file[]
…
i_number i_count=1┇i_addr[13]
内存inode
test
文件存储位置
i_number i_count=1
┇i_addr[13]pocal
fd3=open(“/etc/testexa”,o_RDONLY);
fd1=open(“/etc/test”, o_RDWR);
f_flag:读写f_count=1f_inode i_number i_count=1
┇i_addr[13]
testexa
P2: u_ofile
fp1fp2fp3…f_flag:读f_count=2f_inode f_flag:写f_count=2f_inode P3: u_ofile
…fp1…
f_flag:读写f_count=1f_inode
i_number i_count=2
┇i_addr[13]
影响文件系统性能的因素 存储介质
磁盘性能的好坏
磁盘调度算法的好坏
磁盘高速缓冲区的大小
磁盘调度
磁盘是一种共享设备,为了保证信息的安全,系统每一时刻只允许一个进程启动磁盘进行I/O操作,其余的进程只能等待。因此合理的设置调度算法就十分重要。
设置磁盘调度算法的目标:使各进程对磁盘的平均访问时间最小。
影响磁盘访问时间的因素:
移臂时间
移臂时间
磁盘移臂调度算法
先来先服务(FCFS)
思想:严格按照进程请求访问磁盘的先后次序进行调度,是一种最简单的磁盘调度算法。
假设当前磁头位于110#磁道
磁头平均移动次数= 478 / 9 = 53.1