学习记录之操作系统终章 概念篇

来源:互联网 发布:win10怎么安装java 编辑:程序博客网 时间:2024/05/26 12:53
逻辑设备名到物理设备名映射的实现  
(一)逻辑设备表LUT  
逻辑设备名、物理设备名、设备驱动程序的入口地址  
(二)逻辑设备表设置问题  
整个系统一张LUT  
或每个用户一张LUT  
  
⑥用户层的I/O软件  
一、系统调用与库函数  
(一)系统调用  
使用系统调用I/O设备,用户态→内核态→用户态  
(二)库函数  
库函数与调用程序接在一起  
  
二、假脱机系统  
(一)假脱机技术  
利用专门的外围控制机,先将低速I/O设备上的设局传送到高速磁盘上,或相反  
(二)SPOOLing的组成  
输入井和输出井、输入缓冲区和输出缓冲区、输入进程和输出进程、井管理程序  
(三)SPOOLing系统的特点  
提高I/O速度、将独占设备改造为共享设备、实现虚拟设备功能  
(四)假脱机打印机系统  
磁盘缓冲区、打印缓冲区、假脱机管理进程和假脱机打印进程  
(五)守护进程  
有个假脱机目录,由守望进程按目录文件依次完成各个进程设备的请求,就可以将一个独占设备改为多个进程共享设备  
  
⑦缓冲区管理  
一、缓冲的引入  
(一)缓和CPU与I/O设备间速度不匹配的矛盾  
速度有差距,都可以设置缓冲区  
(二)减少对CPU的中断频率  
(三)解决数据粒度不匹配的问题  
生产者生产的数量和消费者消费的数量差距  
(四)提高CPU和I/O设备之间的并行性  
CPU和打印机可以并行工作呢  
  
二、单缓冲区和双缓冲区  
(一)单缓冲区  
缓冲区也会阻塞  
(二)双缓冲区  
CPU执行第一行中的命令时,用户可以继续向第二缓冲区输入下一行数据  
如果两台电脑只设置但缓冲,就要再设置一个接收缓冲区,一个发送缓冲区  
  
三、环形缓冲区  
(一)环形缓冲区的组成  
空区R,装满的区G,正在使用的现行工作缓冲区C;另外还有多个指针  
(二)环形缓冲区的使用  
Getbuf和Releasebuf  
(三)进程之间的同步问题  
Nexti赶上Nextg:输入速度>处理速度  
Nextg赶上Nexti:处理速度>输入速度  
  
四、缓冲池  
(一)缓冲池的组成  
专为生产者-消费者设置的,包含一个管理数据结构和一组操作函数,管理多个缓冲区  
包括空白缓冲队列、输入队列、输出队列  
(二)Getbuf过程和Putbuf过程  
设置MS(type)互斥访问缓冲池队列和RS(type)进程同步使用缓冲区  
(三)缓冲区的工作方式  
收容操作、提取输入、收容输出、提取输出  
  
⑧磁盘存储器的性能和调度  
一、磁盘性能简述  
(一)数据的组织和格式  
数据组织和格式:磁盘-双面可存储盘片(存储面)-扇区-磁道(柱面)  
(二)磁盘的类型  
固定头磁盘、移动头磁盘  
(三)磁盘访问时间  
  
二、早期的磁盘调度算法  
(一)先来先服务  
就是先来的先找,很公平很简单,但平均寻道好长  
(二)SSTF最短寻道时间优先  
选择一个与磁头距离最近的磁道  
  
三、基于扫描的磁盘调度算法  
(一)扫描算法SCAN  
来回  
(二)循环扫描算法CSCAN  
单程  
(三)NStepSCAN和FSCAN调度算法  
N步扫描算法:将磁盘请求队列分成若干长度为N的子队列,再用FCFS依次处理这些子队列  
FSCAN算法:只分两个队列,一个现在要扫描的,一个是扫描时新冒出来的  
  
第七章 文件管理  
①文件和文件系统  
一、数据项、记录和文件  
(一)数据项  
基本数据项:描述以对象某种属性的字符集,如学号、姓名、年龄这些不能再细分的  
组合数据项:若干个基本数据项组成的,就是还可以细分的  
(二)记录  
描述一个对象在某方面的属性,注意要有关键字key,方便查找  
(三)文件  
多条记录组成文件  
文件属性:类型、长度、物理位置、建立时间(即最后一次修改时间)  
  
二、文件名和类型  
(一)文件名和拓展名  
没什么好说的,都懂  
(二)文件类型  
按用途分:系统文件、用户文件、库文件  
按文件数据形式:源文件、目标文件、可执行文件  
按存取控制属性:只执行文件、只读文件、读写文件  
按组织形式和处理方式分类:普通文件、目录文件、特殊文件  
  
三、文件系统的层次结构  
(一)对象及其属性  
管理对象:文件、目录、磁盘存储空间  
(二)对对象操纵和管理的软件集合  
I/O控制层、基本文件系统层、基本I/O管理程序、逻辑文件系统  
(三)文件系统的接口  
命令接口、程序接口  
  
四、文件操作  
(一)最基本的文件操作  
创建、删除、读、写、设置读写位置  
(二) 文件的“打开”和“关闭”操作  
(三)其他文件操作  
 设置和获得文件的属性、查询文件状态  
有关目录的,就是创建、删除、改变当前目录等  
  
②文件的逻辑结构  
一、文件逻辑结构的类型  
有结构文件:记录式文件  
无结构文件:流式文件  
(一)按文件是否有结构分类  
有结构文件(如数据库):定长记录、变长记录  
无结构文件(txt):源程序、可执行文件  
(二)按文件的组织方式分类  
顺序文件:可以定长可以变长,一直按顺序下去(如犯人的记录)  
索引文件:加张索引表  
索引顺序文件:分组,组内是顺序,组头有索引  
  
二、顺序文件  
(一)顺序文件的排列方式  
串结构:要从头开始找  
顺序结构:有个关键字  
(二)顺序文件的优缺点  
最高效、但交互应用中效率好差、而且增加删除一个记录困难  
所以要配置一个运行记录文件,按时合并  
  
三、记录寻址  
(一)隐式寻址方式  
一个一个读,读了(n-1)个才找到n  
(二)显式寻址方式  
定长就方便,直接乘索引号即可  
变长就要加上Li,表示一段记录的长度  
或者利用关键字查找  
  
四、索引文件  
(一)按关键字建立索引  
索引文件三要素:索引号、长度、指针  
多个索引表的索引文件:从不同属性查找同一对象  
  
五、索引顺序文件  
(一)索引顺序文件的特征  
引入文件索引表,可以实现对索引顺序文件的随机访问;  
增加溢出文件,可以记录新增加、删除和修改的记录  
(二)一级索引顺序文件  
分组,组首进入索引顺序文件  
(三)两级索引顺序文件  
索引顺序表做组  
  
六、直接文件和哈希文件  
(一)直接文件  
关键字本身就决定记录的物理地址,所以可以直接查找,有键值转换  
(二)哈希文件  
A = H(K),通常是指向某一目录表相应表目的指针  
  
③文件目录  
要求:  
实现“按名存取”  
提高对目录的检索速度  
文件共享  
允许文件重名  
一、文件控制块和索引结点  
(一)文件控制块FCB  
包含三类信息:基本信息、存取控制信息、使用信息  
基本信息:文件名、文件物理位置、文件逻辑结构、文件物理结构  
存取控制信息:各类人的存取权限  
使用信息类:建立时间、最近修改时间、当前使用信息  
(二)索引结点  
引入:怕文件目录太大,只用文件名,轻量级文件目录  
磁盘索引结点:文件主标识符、文件类型、文件存取权限、文件物理地址、文件长度、文件连接计数、文件存取时间  
内存索引结点:索引结点编号、状态、访问计数、文件所属文件系统的逻辑设备号、链接指针  
  
二、简单的文件目录  
(一)单级文件目录  
整个文件系统只有,一张目录表,目录项有:文件名、文件扩展名、文件长度、文件类型、文件物理地址和其他属性  
每次创建都要搜索有没有相同的文件名  
优点是简单,但只实现了“按名存取”,其他三个要求没有实现  
(二)两级文件目录  
MFD→UFD  
会有隔离,这个结构可以有效将多个用户隔开,在各个用户完全无关时,这是一个优点。  
但如果要合作完成一个大任务时,这种隔离就会使诸多用户之间不便于共享  
  
三、树形结构目录  
(一)树形目录  
一个目录文件中的目录项,可以既作为目录文件的FCB,又是数据文件的FCB  
(二)路径名和当前目录  
路径名:唯一通路,用/连接  
当前目录,相对路径名,绝对路径名  
(三)目录操作  
创建、删除、不删除非空目录、可删除非空目录  
改变、移动、链接目录、查找目录  
(四)目录查询技术  
线性检索法:在单级目录中,用用户提供的文件名,顺序查找;在树形目录中,就按路径名查找  
Hash方法:建立一张Hash索引文件目录,利用Hash方法查询——利用用户提供的文件名,转换为文件目录索引值,再用索引值在目录中查找  
注:如果使用了通配符,就无法用Hash方法检索了  
“冲突”:1.看目录项是否空 2.看文件名是否匹配 3. 如果不匹配,就要在Hash值加上一个常数,形成新的索引值  
  
④文件共享  
一、基于有向无循环图实现文件共享  
(一)有向无循环图DAG  
由附加操作Append来完成,而新增加的盘块只会出现在执行了操作的目录中,新增加的部分不能被共享  
(二)利用索引结点  
用索引结点,任何用户对共享文件所进行的Append操作或修改,都将引起相应结点内容的改变  
还增加一个count链接计数  
其他用户在使用,拥有者删了,文件依然存在  
  
二、利用符号链接实现文件共享  
(一)利用符号链接的基本思想  
即允许一个文件或子目录有多个父目录,但只有一个是“主”父目录  
(二)如何利用符号链实现共享  
由系统创建一个LINK类型的新文件,取名为F,并将F写入链接父目录D5中,就可以实现D5与F8的链接。新文件只有被链接文件F8的路径名——所以叫做“符号链接”——新文件的路径名被看做“符号链”  
(三)利用符号链实现共享的优点  
用户删了链接文件,也不会删掉本来的文件;文件主删了文件,其他用户访问不了,自然会删掉符号链  
(四)利用符号链的共享方式存在的问题  
读盘需时、符号链太多,琐碎  
  
第八章 磁盘存储器的管理  
①外存的组织方式  
连续组织方式、链接组织方式、索引组织方式  
一、连续组织方式  
位于同一磁道,读写不用移动磁头  
优点:顺序访问容易、顺序访问速度快  
缺点:要求为一个文件分配连续的存储空间、要事先知道文件长度、不够灵活删除和插入、对于动态增长的文件,很难分配空间  
  
二、链接组织方式  
优点:消除外部碎片,提高外存利用率;对插入、删除修改记录都非常容易;能够适应动态增长  
隐式链接:一个跟一个,如同链表;碎片多;万一一个错,整个文件用不了  
显式链接:将各物理块的指针显式存在内存的一个表内,每个FCB对应一个字段,因为在内存查找,所以大大提高检索速度,还减少访问磁盘的次数,而这叫做FAT  
  
五、索引组织方式  
(一)单级索引组织方式  
不支持高效直接存取,要对一个较大的文件进行存取,就要顺序地查找许多盘块号  
FAT需要占用较大内存空间  
所以创造“表中表”——索引分配图  
(二)多级索引组织方式  
就是多级,如同“全语言字典”  
优点:大大加快对大型文件的查找速度  
(三)增量式索引组织方式  
增量式索引组织方式的基本思想  
小的用直接寻址、中的用单级索引组织方式、大的用两三级索引组织方式  
Unix System V的组织方式:索引结点有13个地址项,前十个是直接地址,最大放40KB;第十一个是一次间接地址,1K个盘块号,允许文件长达4MB;如果还超过4MB+40KB,就放二次间接地址,有4GB;还超过,就放3次间接地址,有4TB  
  
②文件存储空间的管理  
一、空闲表法和空闲链表法  
(一)空闲表法  
即在外存所有空闲区建立一张空闲表,每个空闲区对于一个表项,记录序号、第一空闲盘块号、空闲盘块数  
分配和回收与内存相似,但在外存为加快分配速度,连续分配依然有用。小的连续分配,大的离散分配,多媒体文件依然连续分配  
(二)空闲链表法  
空闲盘块链:一直分配,按链表分配。如果删除文件就挂在链尾  
优点:简单,缺点:但为一个文件分配时可能重复操作多次,分配和回收效率较低,而且盘块链会很长  
空闲盘区链:优点:分配回收效率较高,盘区链短;缺点复杂  
  
二、位示图法  
(一)位示图  
利用二进制的一位来表示磁盘中一个盘块的使用情况,也可以是二维数组  
(二)盘块的分配  
扫描位示图,找到一个或一组0,之后计算盘块号: b = n(i -1)+j,修改位示图=1  
(三)盘块的回收  
从盘块号转换为行列号:  
i = (b-1) DIV n +1  
j = (b-1) MOD n + 1  
  
三、成组链接法  
(一)空闲盘块的组织  
每组含有盘块总数N和该组所有盘块号记入前一组的第一个盘块的S.free(0)~S.free(99),这样各组第一个盘块可链接成一条链  
(二)空闲盘块的分配与回收  
当栈中空闲盘块号已达100时,表示栈已满,便将先有栈中100个盘块号记入新回收的盘块中,将盘块号作为新栈底  
阅读全文
0 0