Kymotz's Blog

操作系统|存储管理、文件系统、输入和输出系统


1、说一说程序的编译过程

以 C 语言为例:

预处理阶段->编译阶段->汇编阶段->链接阶段

  1. 预处理阶段:读取 c 源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理。如对 #include 及宏定义 #define 替换成其真正的内容
  2. 编译阶段:把预处理后的文件(.i 结尾)的文件编译为汇编文件
  3. 汇编阶段:把汇编语言翻译为二进制机器指令(这个过程中把指令变成了可重定位程序)
  4. 链接阶段:把调用的库和函数合并到程序中

2、程序的链接方式

链接方式:

  • 装入静态链接方式
  • 装入时链接方式
  • 运行时动态链接方式

3、说一下地址重定位

重定位是指将程序中的逻辑地址转换为内存中的物理地址的过程。

重定位分为:

  • 静态重定位:程序装入内存时一次性完成逻辑地址到物理地址的转换,之后不再进行地址转换。
  • 动态重定位:当程序转入内存时并对将其逻辑地址进行转换,只有当程序执行时才进行转换。

image.png

4、常用的内存分配算法

  • 首次适应算法(first fit): 所有的可分配空闲分区链接成一个链,分配第一个满足使用的分区
  • 循环首次适应算法(next fit):有一个记录上一次分配位置的指针,在此分配时从上次之后开始
  • 最佳适应算法(best fit):每次都将空闲分区从小到大排列,每次划分从第一个开始,选择第一个满足空间要求的进行分配,缺点:易产生难以利用的小空间(内部空间)
  • 最坏适应性算法(worst fit):每次都将空闲分区从大到小排列,每次从第一个开始寻找,找到能满足需求的就分配,特点:中型空闲分区产生的比较多,大型空闲分区会快速消耗,使得需要大空闲分区的程序无法运行。

5、简述内存交换技术(内存对换(swaping)技术、虚拟内存技术)

因为内存容量与程序体积总是存在差异,内存空间总是无法满足程序整个的运行,为了节省、(逻辑上)扩大内存的容量、提高内存的利用效率,所以出现了内存交换技术。

交换技术分为:

  • 内存对换(Swaping),内存对换是指把内存中一部分不用的进程暂时从内存转移到磁盘,待到用时再从磁盘读入内存,这样来达到高效利用内存的目的。
  • 虚拟内存技术,虚拟内存建立再分页式和分段式存储器管理的基础上实现的(在其基础上增加了请求分页(分段)调入调出),虚拟内存技术实现了只装入程序部分程序就可以运行,从而在逻辑上扩大了内存的容量,使用户使用的内存远比实际的大(8G 的内存运行 16G 的游戏)。

6、说一说分页式存储管理、分段式存储管理

分页式管理把内存划分成多个大小相同页面,分页式是一维的且地址空间连续。分页式存储管理的页面划分与 IP 划分网段相似,前一部分代表页号,后一部分表示页内地址,例如一个 32 位字长的计算机,可以划分 2^20 页即 1M 页,2^12 即 4Kb 页内地址。

分段式存储区管理与分页式存储管理相似,但采用离散的方式管理空闲分区,分区管理依靠段表,段表包括:短号、段长、基址等内容。

二者的区别:

  • 在分页式存.2 储管理中,用户只需要提供一个逻辑地址(页号和偏移地址可以算出来)就可以使用,而分段式存储管理中用户需要提供两个地址(段地址和段内偏移地址)
  • 分页的地址是一维的(线性地址空间),分段是二维的,程序在标识一个地址时既需要给出段地址又需要给出段内地址。
  • 分页的大小固定(由系统确定),段的大小不固定(通常是按程序大小分配的)

7、请求分页置换算法

最佳页面置换算法 Optimal 先进先出 FIFO 最久未使用算法 LRU、最少使用置换算法 Clock 及其改进 Clock 置换算法

8、设备驱动程序

是 I/O 高层与设备控制器之间的通信程序

9、简述 I/O 的层次结构

image.png

用户层软件:格式化 I/O 请求,SPOOLing 技术 设备独立性:这一层把物理设备抽象为一个“逻辑符号”,程序通过“逻辑符号”访问设备,操作系统通过设备表对物理设备进行管理。 设备驱动程序:设备驱动程序是系统高层与设备控制器之间的通信程序 中断处理程序: 通过中断向量表找到中断程序然后进行处理

10、I/O 设备的控制方式

  • 轮询可编程 I/O 控制方式
  • 中断可编程 I/O 控制方式
  • DMA 控制方式
  • I/O 通道控制方式

11、计算机中设备独立性是如何实现的

设备独立性是在计算机中使用一个通用的设备逻辑名称代表一个物理设备,再配以设备分配表。使用时只需要使用逻辑设备名称,设备分配情况记录在设备分配表,这样就实现了物理设备的独立性。

12、SPOOLing(假脱机技术)

SPOOLing 即假脱机技术,

13、磁盘调度算法

  • 先来先服务
  • 最短路径优先
  • 电梯算法

14、外存的组织方式

外存的组织方式分为顺序组织、链接组织、索引组织(单级索引、多级索引、增量索引)

  • 顺序组织:数据以顺序方式存放,读取时顺序读、支持随机访问,但不利于更新
  • 链接组织:数据以链的方式链接,读取时顺序读,不支持随机访问,不利于读但利于更新
  • 索引组织(离散组织):很好的平衡了数据的读取和更新。支持直接访问,读取时仅读取索引可以加快访问速度。
    • 单级索引
    • 多级索引
    • 增量式索引(混合索引,Unix/Linux), 为每个文件分配 40KB 的空间,小文件直接存放,如果不过存放就启用一级或二级索引。

14、简述文件存储的组织方式

空闲表法、空闲链表法、位示图法、成组链接法

15、简述 FAT 文件系统

FAT 是 Windows 上的一个文件系统。 FAT 使用一张单独的表记录文件的空间分配。 FAT 支持将个磁盘最多分成四个逻辑分区


Top↑
comments powered by Disqus