软件设计师(二):操作系统基本原理(二)

简介: 软件设计师(二):操作系统基本原理(二)

3、存储管理


3.1 分区存储组织


88ab0588abdcc5a5bf437da9fa408c2a_e8a8e913e9cec2f29d405b75dce5b12b.png


①首次适应算法:空闲分区以地址递增的次序链接。对于上面这个题,作业4申请内存9k,按照地址递增的情况,此时作业4会被分配到25k的空闲分区,占用9k,剩余25-9=16k。

②循环首次适应算法:与首次适应算法的区别是:不是每次都从链首开始查找,而是从上一次找到的空闲分区的下一个空闲分区开始查找。所以作业4申请9k,而作业2和作业3所在的空闲分区的下一个空闲分区为28k,即作业4被分配到了28k这个空闲分区,占用9k,剩余28-9=19k。

③最佳适应算法:空闲分区按其容量从小到大的顺序链接。作业4申请9k,而当前空闲分区的容量从小到大依次为:10k、25k、28k,所以作业4被分配到10k这个空闲分区,占用9k,剩余10-9=1k。

④最差适应算法:空闲分区按其容量从大到小的顺序链接(与最佳适应算法相反)。作业4被分配到容量最大的空闲分区28k中,占用9k,剩余28-9=19k。


3.2 页式存储


026538a0839e44b972a913417ae57f60_image-20221016205526557.png


b2d40dc3b63c0908b098a5a55eee67d4_image-20221016211628408.png


我们来看上面这道例题,首先页面大小为4K=2^12,表示页内地址为12位,所以在对逻辑地址变换的时候,就要保留它的低12位作为物理地址,因为逻辑地址是16进制数5A29H,它的低12为是A29,那么只需要对前面的页号进行变换就可以了,由页表可知,页号5对应的物理块号(页帧号)为6,所以经变换后的物理地址为:6A29H。

第二空,进程P要访问的页面4不在内存,应该淘汰哪个页面?这里我们考虑的是:只能淘汰在内存中的页面,因为如果一个页面压根就不在内存,那你是无法淘汰它的(换句话说,你淘汰它有何意义呢?),所以我们看到状态位是1表示在内存(有页面0、1、2、5),而对于淘汰而言,我们不能淘汰刚刚被访问过的页面,只能淘汰没有被访问过的页面(即访问位为0),查表得,页面1的访问位为0,所以将其淘汰。即第一空选D,第二空选B。


3.3 段式存储


a0c3932f9b11b1d043664f85000b240e_a216737a0226bbfce6f80535ecba3533.png


3.4 段页式存储


759e88ad6a57c9eee860d26da5883746_d8719c994d9ea55d5926847a2834d427.png


3.5 快表


2fb0d741d3ceed77adc08d38b31f1de7_ab208620576b74e139e7300068fc26d2.png


3.6 页面置换算法


最优(Optimal OPT)算法

随机(RAND)算法

先进先出(FIFO)算法:有可能产生“抖动”。例如,432143543215序列,用3个页面,比4个缺页要少

最近最少使用(LRU)算法:不会抖动


bf9d9b77bfc6f92f1fe2ff0efc8eeebe_image-20221017112907851.png


6c5031f546fe1fe2706ff43476d18b6c_462a56788328f627a6fc5011ae94550d.png


练习题:


ae50a1c7993f67d95132d140dea5625b_a6c8181afe24642cc4512744c1922588.png


4、文件管理


4.1 索引文件结构


98ec833ce7b5b95e2b293009fcbcea4b_image-20221017211633323.png


练习题



这道题中,物理块号50对应逻辑块号0,物理块号67对应逻辑块号1,物理块号68对应逻辑块号2,物理块号78对应逻辑块号3,物理块号89对应逻辑块号4,这五个采取的是直接地址索引;而物理块号90和91采取的是一级间接地址索引,90→58对应的是逻辑块号5,所以逻辑块号5对应的物理块号为58。

因为题目中说每个地址项的大小为4字节,而对于一级和二级间接地址索引,每个物理块可以存1024字节的内容,所以在每个一级、二级间接地址索引中,有1024/4=256个地址项。所以在物理块号90中,存放的是从5260(5+256-1);在物理块号91中,存放的就是从261516(261+256-1),所以逻辑块号261对应的物理块号为187。

观察上图可知,101号物理块显然采取的是二级间接地址索引的方式,所以其中存放的是二级地址索引表。


4.2 文件和树型目录结构


4993ed8dd757d7be8475d79651c2e3be_image-20221017213518252.png


4.3 空闲存储空间的管理


ad9eba8bdb787438477366b6b0ebada7_image-20221017214320986.png


ebb67f6ed55620b943a8c0969c174d35_image-20221018104557706.png


0007dcc856c904d1b74ab297fd785fb5_image-20221018105352804.png

 

这道例题,首先物理块是从0开始编号的,系统中字长为32位(相当于一个字中包含了32个物理块),那么对于4195号物理块,实际上是第4196个物理块,那么,每个字的长度均为32位,所以4196/32=131.125,表示的是超过第131个字了,要将前131个字都填满,而当前物理块是在第132个字中描述,第一空选D。

第二空问系统应该怎么样?既然要将物理块分配给某文件,必须取值为1(1表示占用),所以排除A和C;我们再来看,前131个字所表示的物理块范围是0131×31:04191,所以第132个字中,第0位置表示4192,第1位置表示4193,第2位置表示4194,第3位置表示4195,所以在第132个字的第3位置对应上了4195号物理块。所以第二空选B。


5、设备管理


5.1 数据传输控制方式


fd6517c85705d2cf8963b6f030d583e6_image-20221018105547223.png


5.2 虚设备与Spooling技术


4a3d55c324bb5d909d792e9f4b8ec8a1_d3d43662c1c02a1a01feb98cf7aa9d9a.png



6、微内核操作系统


f3d8043e59a8cd06d64c467640895c19_bb9fa03c1a2720ca7e08c14e0bc1028e.png

相关文章
|
4天前
|
运维 算法 安全
深入理解操作系统的内存管理:原理与实践
【4月更文挑战第25天】 在现代计算机系统中,操作系统扮演着至关重要的角色,它负责协调和管理硬件资源,为上层应用提供必要的服务。其中,内存管理是操作系统的核心功能之一,它不仅关乎系统性能,也直接影响到系统的稳定性和安全性。本文将深入探讨操作系统内存管理的关键原理,包括虚拟内存、物理内存分配、分页机制以及内存保护等,并结合Linux操作系统实例,分析其内存管理的实现细节。通过理论与实践的结合,旨在为读者提供一个全面、深入的操作系统内存管理视角。
|
4天前
|
算法 调度 UED
深入理解操作系统内存管理:原理与实践
【4月更文挑战第23天】 在现代计算机系统中,操作系统的内存管理是保证系统高效、稳定运行的关键组成部分。本文旨在深入探讨操作系统中内存管理的理论基础、关键技术以及实际操作过程,通过对内存分配策略、虚拟内存技术、分页与分段机制等核心概念的详细解析,为读者提供一个清晰、全面的内存管理视角。此外,文章还将通过案例分析,展示内存管理在解决实际问题中的应用,以期加深读者对操作系统内存管理复杂性的认识和理解。
|
23小时前
|
算法 程序员 内存技术
深入理解操作系统内存管理:原理与实践
【5月更文挑战第18天】 在现代计算机系统中,操作系统扮演着关键角色,其中内存管理作为其核心功能之一,保障了系统资源的高效利用和程序的顺利运行。本文旨在探讨操作系统内存管理的基本原理及其在实际中的应用,涉及物理内存的组织、虚拟内存技术的实现以及内存分配策略等关键技术点。通过分析不同内存管理机制的优势与局限,我们将对操作系统如何协调多任务环境下的内存使用有更深刻的认识。
|
1天前
|
存储 缓存 算法
深入理解操作系统内存管理:原理与实践
【5月更文挑战第17天】 本文旨在探讨操作系统中的内存管理机制,通过分析其核心原理及提供实际应用场景,帮助读者深化对操作系统内存管理的认识。文章首先介绍内存管理的基础知识,然后详细阐述连续分配与非连续分配策略,接着讨论分页和分段机制,并探索虚拟内存技术如何使得内存管理更加高效。此外,文中还将涉及内存优化技巧以及现代操作系统中内存管理面临的挑战。
|
4天前
|
存储 算法 Linux
深入理解操作系统内存管理:原理与实践
【5月更文挑战第14天】 在现代计算机系统中,操作系统的内存管理是确保系统高效稳定运行的关键组成部分。本文将详细探讨操作系统内存管理的基本原理,包括虚拟内存的概念、物理内存与进程地址空间的映射机制、以及分页和分段技术的具体实现。此外,文章还将介绍内存分配策略、内存碎片问题及其解决方案,以及现代操作系统中采用的高级内存管理特性,如Linux内核的内存管理子系统。通过理论分析与实际案例相结合的方式,旨在帮助读者深入理解并掌握操作系统内存管理的核心知识。
|
4天前
|
Ubuntu Unix Java
【操作系统原理】—— 文件系统编程
【操作系统原理】—— 文件系统编程
7 0
|
4天前
|
存储 Linux 程序员
【操作系统原理】—— Linux内存管理
【操作系统原理】—— Linux内存管理
8 0
|
4天前
|
Ubuntu Linux C语言
【操作系统原理】—— 信号量与PV操作实现
【操作系统原理】—— 信号量与PV操作实现
8 0
|
4天前
|
消息中间件 安全 Ubuntu
【操作系统原理】—— 线程同步
【操作系统原理】—— 线程同步
15 1
|
4天前
|
算法 Ubuntu Linux
【操作系统原理】—— 进程调度
【操作系统原理】—— 进程调度
7 0