目录
一、存储管理
1.1 分区存储管理
1.1.1 概念
1.1.2 系统分配内存的算法(可变分区)
1.1.3 逻辑页
1.1.4 页面置换算法
1.1.5 快表
1.2 分段存储管理
1.3 段页式存储
二、设备管理
2.1 概述
2.2 I/O软件
2.3 设备管理技术
三、文件管理
3.1 概述
3.2 文件的类型
3.3 文件的结构
3.4 索引文件结构
3.5 文件目录
3.6 文件存储空间管理
四、考试真题练习
一、存储管理
1.1 分区存储管理
1.1.1 概念
所谓分区存储组织,就是整存,将某进程运行所需的内存整体一起分配给它然后再执行。有三种分区方式:
-
固定分区:静态分区方法,将主存分为若干个固定的分区,将要运行的作业装配进去,由于分区固定,大小和作业需要的大小不同,会产生内部碎片。
-
可变分区:动态分区方法,主存空间的分区是在作业转入时划分,正好划分为作业需要的大小,这样就不存在内部碎片,但容易将整片主存空间切割成许多块,会产生外部碎片。可变分区的算法(1.2)。
-
可重定位分区:可以解决碎片问题,移动所有已经分配好的区域,使其成为一个连续的区域,这样其他外部细小的分区碎片可以合并为大的分区,满足作业要求。只在外部作业请求空间得不到满足时进行。
1.1.2 系统分配内存的算法(可变分区)
-
首次适应算法(First Fit):将内存分块,从内存的起始位置开始,找到第一个大小满足要求的空闲块,进行分配。
-
最佳适应算法(Best Fit):在所有空闲块中找到大小最接近需求的块进行分配,以尽量减少剩余碎片。
-
最坏适应算法(Worst Fit):在所有空闲块中找到大小最大的块进行分配,以便将更多的空闲块保留给后续请求。
-
快速适应算法(Quick Fit):将内存划分为几个固定大小的块,每个块有一个空闲块链表,根据所需大小直接从相应链表中取得空闲块进行分配。
-
分区算法(Partitioning):将内存划分为固定大小或可变大小的分区,每个分区只能被一个进程占用。常见的分区算法包括等分分区算法、按比例分区算法和动态分区算法。
这些算法在资源分配效率、内存利用率、响应速度等方面有不同的优势和劣势,根据具体的应用场景和需求选择合适的算法。
1.1.3 逻辑页
逻辑页分为页号和页内地址,页内地址就是物理偏移地址,而页号与物理块号并非按序对应的,需要查询页表,才能得知页号对应的物理块号,再用物理块号加上偏移地址才得出了真正运行时的物理地址。
-
优点:利用率高,碎片小,分配及管理简单。
-
缺点:增加了系统开销,可能产生抖动现象
1.1.4 页面置换算法
-
最优算法:OPT,理论上的算法,无法实现,是在进程执行完后进行的最佳效率计算,用来让其他算法比较差距。原理是选择未来最长时间内不被访问的页面置换,这样可以保证未来执行的都是马上要访问的。
-
先进先出算法:FIFO,先调入内存的页先被置换淘汰,会产生抖动现象,即分配的页数越多,缺页率可能越多(即效率越低)。
-
最近最少使用:LRU,在最近的过去,进程执行过程中,过去最少使用的页面被置换淘汰,根据局部性原理,这种方式效率高,且不会产生抖动现象,使用大量计数器,但是没有LFU多。
-
淘汰原则:优先淘汰最近未访问的,而后淘汰最近未被修改的页面
1.1.5 快表
-
快表是一块小容量的相联存储器,由快速存储器组成,按内容访问,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号。
-
快表是将页表存于cache中;慢表是将页表存于内存上。慢表需要访问两次内存才能取出页,而快表是访问一次cache和一次内存,因此更快。
1.2 分段存储管理
将进程空间分为一个个段,每段也有段号和段内地址,与页式存储不同的是每段物理大小不同,分段是根据逻辑整体分段的,因此,段表也与页表的内容不同,页表中直接是逻辑页号对应物理块号,而下图所示,段表有段长和基址两个属性,才能确定一个逻辑段在物理段中的位置。
-
优点:多道程序共享内存,台各段程序修改互不影响。
-
缺点:内存利用率低,内存碎片浪费大。
1.3 段页式存储
对进程空间先分段,后分页,具体原理图和优缺点如下:
-
优点:空间浪费小、存储共享容易、存储保护容易、能动态链接。
-
缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降。
二、设备管理
2.1 概述
-
设备是计算机系统与外界交互的工具,具体负责**计算机与外部的输入/输出工作所以常称为外部设备(简称外设)**。在计算机系统中,将负责管理设备和输入/输出的机构称为!/0 系统。因此,I/0 系统由设备、控制器、通道(具有通道的计算机系统)、总线和I/0 软件组成。
-
设备的分类:
-
按数据组织分类:块设备、字符设备。
-
按照设备功能分类:输入设备、输出设备、存储设备、网络联网设备、供电设备。
-
资源分配角度分类:独占设备、共享设备和虚拟设备。
-
数据传输速率分类:低速设备、中速设备、高速设备。
-
-
设备管理的任务是保证在多道程序环境下,当多个进程竞争使用设备时,按-定的策略分配和管理各种设备,控制设备的各种操作,完成1/0 设备与主存之间的数据交换。
-
设备管理的主要功能是动态地掌握并记录设备的状态、设备分配和释放、缓冲区管理、实现物理I/0 设备的操作、提供设备使用的用户接口及设备的访问和控制。
2.2 I/O软件
I/O设备管理软件的所有层次及每一层功能如下图:
当用户程序试图读一个硬盘文件时,需要通过操作系统实现这一操作。 与设备无关软件检查高速缓存中有无要读的数据块,若没有,则调用设备驱动程序,向I/O 硬件发出一个请求。然后,用户进程阻塞并等待磁盘操作的完成。当磁盘操作完成时,硬件产生一个中断,转入中断处理程序。中断处理程序检查中断的原因,认识到这时磁盘读取操作已经完成,于是唤醒用户进程取回从磁盘读取的信息,从而结束此次I/0 请求。用户进程在得到了所需的硬盘文件内容之,后继续运行。
整体来说就是个大U,需要记住这些层次的顺序。
2.3 设备管理技术
-
一台独占设备,在同一时间只能由一个进程使用,其他进程只能等待,且不知道什么时候打印机空闲,此时,极大的浪费了外设的工作效率。
-
引入SPOOLING(外围设备联机操作)技术,就是在外设上建立两个数据缓冲区,分别称为输入井和输出井,这样,无论多少进程,都可以共用这一台打印机,只需要将打印命令发出,数据就会排队存储在缓冲区中,打印机会自动按顺序打印,实现了物理外设的共享,使得每个进程都感觉在使用一个打印机这就是物理设备的虚拟化。如下图所示:
三、文件管理
3.1 概述
-
文件是具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合。
-
信息项是构成文件内容的基本单位,可以是一个字符,也可以是一个记录记录可以等长,也可以不等长。一个文件包括文件体和文件说明。文件体是文件真实的内容。文件说明是操作系统为了管理文件所用到的信息,包括文件名文件内部标识、文件的类型、文件存储地址、文件的长度、访问权限、建立时间和访问时间等。
-
文件管理系统就是操作系统中实现文件统一管理的一组软件和相关数据的集合,专门负责管理和存取文件信息的软件机构,简称文件系统。文件系统的功能包括按名存取,统一的用户接口;并发访问和控制;安全性控制;优化性能;差错恢复。
3.2 文件的类型
-
1.按文件性质和用途可将文件分为系统文件、库文件和用户文件。
-
2.按信息保存期限分类可将文件分为临时文件、档案文件和永久文件。
-
3.按文件的保护方式分类可将文件分为只读文件、读/写文件、可执行文件和不保护文件。
-
4.UNIX 系统将文件分为普通文件、目录文件和设备文件(特殊文件)
3.3 文件的结构
-
文件的逻辑结构可分为两大类:有结构的记录式文件;无结构的流式文件。
- 文件的物理结构是指文件在物理存储设备上的存放方法,包括:
-
1.连续结构。连续结构也称顺序结构,它将逻辑上连续的文件信息(如记录)依次存放在连续编号的物理块上。
-
2.链接结构。链接结构也称串联结构,它将逻辑上连续的文件信息(如记录)存放在不连续的物理块上,每个物理块设有一个指针指向下一个物理块。
-
3.索引结构。将逻辑上连续的文件信息(如记录)存放在不连续的物理块中系统为每个文件建立一张索引表。索引表记录了文件信息所在的逻辑块号对应的物理块号,并将索引表的起始地址放在与文件对应的文件目录项中。
-
4.多个物理块的索引表。索引表是在文件创建时由系统自动建立的,并与文件一起存放在同一文件卷上。根据一个文件大小的不同,其索引表占用物理块的个数不等,一般占一个或几个物理块。
-
3.4 索引文件结构
如图所示,系统中有13个索引节点:
-
0-9为直接索引,即每个索引节点存放的是内容,假设每个物理盘大小为4KB,共可存4KBX10=40KB数据;
-
10号索引节点为一级间接索引节点,大小为4KB,存放的并非直接数据,而是链接到直接物理盘块的地址,假设每个地址占4B,则共有1024个地址,对应1024个物理盘,可存1024X4KB=4096KB数据
-
11号索引节点为二级索引节点类似,直接盘存放一级地址,一级地址再存放物理盘快地址,而后链接到存放数据的物理盘块,容量又扩大了一个数量级,为1024X1024X4KB数据。
3.5 文件目录
文件控制块中包含以下三类信息:基本信息类、存取控制信息类和使用信息类。
-
1.基本信息类。例如文件名、文件的物理地址、文件长度和文件块数等。
-
2.存取控制信息类。文件的存取权限,像UNIX 用户分成文件主、同组用户和一般用户三类,这三类用户的读/写执行RWX 权限。
-
3.使用信息类。文件建立日期、最后一次修改日期、最后一次访问的日期、当前使用的信息(如打开文件的进程数、在文件上的等待队列)等。
-
文件控制块的有序集合称为文件目录
-
相对路径:是从当前路径开始的路径。
-
绝对路径:是从根目录开始的路径。
-
全文件名=绝对路径+文件名。
-
注意,绝对路径和相对路径是不加最后的文件名的,只是单纯的路径序列。
3.6 文件存储空间管理
文件的存取方法是指读/写文件存储器上的一个物理块的方法。通常有顺序存取和随机存取两种方法。顺序存取方法是指对文件中的信息按顺序依次进行读写,随机存取方法是指对文件中的信息可以按任意的次序随机地读/写。文件存储空间的管理:
-
1.空闲区表。将外存空间上的一个连续的未分配区域称为“空闲区”。操作系统为磁盘外存上的所有空闲区建立一张空闲表,每个表项对应一个空闲区,适用于连续文件结构。
-
2.位示图(重点)。这种方法是在外存上建立一张位示图(Bitmap)记录文件存储器的使用情况。每一位对应文件存储器上的一个物理块,取值0 和 1 分别表示空闲和占用。
-
3.空闲块链。每个空闲物理块中有指向下一个空闲物理块的指针,所有空闲物理块构成一个链表,链表的头指针放在文件存储器的特定位置上(如管理块中),不需要磁盘分配表,节省空间。
-
4.成组链接法。例如,在实现时系统将空闲块分成若干组,每100个空闲块为一组,每组的第一个空闲块登记了下一组空闲块的物理盘块号和空闲块总数假如某个组的第一个空闲块号等于0,意味着该组是最后一组,无下一组空闲块。
四、考试真题练习
- 4.1 某计算机系统页面大小为4K,若进程的页面变换表如下所示,逻辑地址为十六进制1D16H。该地址经过变换后,其物理地址应为十六进制()。
-
A.1024H
-
B.3D16H
-
C.4D16H
-
D.6D16H
-
页号 | 物理块号 |
---|---|
0 | 1 |
1 | 3 |
2 | 4 |
3 | 6 |
-
4.2 某进程有4个页面,页号为0~3,页面变换表及状态位、访问位和修改位的含义如下图所示,若系统给该进程分配了3个存储块,当访问前页面1不在内存时,淘汰表中页号为()的页面代价最小。
A.0 ; B.1 ; C.2 ;D.3
-
4.3 设某进程的段表如下所示,逻辑地址( )可以转换为对应的物理地址。
-
A.(0,1597)、(1,30)和(3,1390)
-
B.(0,128)、(1,30)和(3,1390)
-
C.(0,1597)、(2,98)和(3,1390)
-
D.(0,128)、(2,98)和(4,1066)
-
-
4.4 若某文件系统的目录结构如下图所示,假设用户要访问文件Fault.swf,且当前工作目录为swshare,则该文件的全文件名为(),相对路径和绝对路径分别为()。
A.fault.swf
B.flash\fault.swf
C.swshare\flash\fault.swf
D.\swshare\flash\fault.swf
A.swshare\flash\和\flash\
B.flash 和\swshare\flash\
C.\swshare\flash和 flash
D.\flash\和\swshare\flash\
-
4.5 某文件管理系统采用位示图(Bitmap)记录磁盘的使用情况。如果系统的字长为32位,磁盘物理块的大小为4MB,物理块依次编号为:0、1、2、......,位示图字依次编号为:0、1、2、......,那么16385号物理块的使用情况在位示图中的第()个字中描述:如果磁盘的容量为1000GB,那么位示图需要()个字来表示。
A.-128 B.256
C.512 D.1024
A.1200 B.3200
C.6400 D.8000
人工分割线
答案
-
4.1 B
-
解析:页面大小为4K,则页内偏移地址为12位,才能表示4K大小空间;由此,可知逻辑地址1D16H的低12位D16H为偏移地址,高4位1为逻辑页号,在页表中对应物理块号3,因此物理地址为3D16H。
-
-
4.2 D
-
4.3 B
-
解析:因为0段的段长只有600,而逻辑地址(0,1597)中的1597已经越界,不能转换成逻辑地址,而选项A和选项C中都包含逻辑地址(0,597)所以是错误的。又因为4段的段长只有960,而逻辑地址(4,1066)中的1066已经越界,也不能转换成逻辑地址,而选项D中包含逻辑地址(4,1066)所以是错误的。
-
-
4.4 D、B
-
4.5 C、D
-
解析:在位示图中,-个物理块占1个字中的1位,第16385占到16386位(从0编号)16386/32=512余数2,可知,其在513个字中描述,但因为从0开始编号,是第512个字;磁盘容量1000GB,共1000GB/4MB=250x1024个物理块,需要250KB表示,即250x1024bit/32bit=8000个字。
-