操作系统-04-操作系统的存储管理和设备管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统-04-操作系统的存储管理和设备管理相关的知识,希望对你有一定的参考价值。

参考技术A

早期的计算机由于结构较为简单,存储容量小,并不需要过多的的存储管理。

随着计算机和程序越来越复杂,使得存储管理成为必要。

单一连续分配是最简单的内存分配方式

只能在单用户、单进程的操作系统中使用

固定分区分配是支持多道程序的最简单存储分配方式

内存空间被划分为若干固定大小的区域

每个分区只提供给一个程序使用,互不干扰

根据进程实际需要,动态分配内存空间

不需要新建空闲链表节点

只需要把空闲区的容量增大为包括回收区的容量即可

将回收区和空闲区合并

新的空闲区使用原来回收区的地址

将两个空闲区和中间的回收区合并

新的空闲区使用空闲区1的地址

为回收区创建新的空闲节点

将该节点插入到相应的空闲区链表中

上面的部分主要是从物理的角度讲解内存管理,这部分主要是讲解操作系统是怎么管理进程的内存空间。

字块 是相对于物理设备的定义, 页面 是相对逻辑空间的定义。

页式存储管理主要是将进程逻辑空间等分成若干大小的页面,相应的把物理内存空间分成与页面大小的物理块,以页面为单位把进程空间装进物理内存中分散的物理块。

页面大小应该适中,过大难以分配,过小内存碎片过多,通常是512B~8K。

页表 记录进程逻辑空间于物理空间的映射

在页式存储管理, 页地址 = 页号 + 页内偏移

现代计算机系统中,可以支持非常大的逻辑 地址空间(2 32~2 64),这样,页表就 变得非常大,要占用非常大的内存空间,如, 具有32位逻辑地址空间的分页系统,规定页 面大小为4KB,则在每个进程页表中的页表 项可达1M(2^20)个,如果每个页表项占用 1Byte,故每个进程仅仅页表就要占用1MB 的内存空间。

为了解决这个问题,引入了多级页表。

多级页表有一个根页表,每一个字块指向了内存中的一片空间,这块空间存储的是二级页表。以此类推,最后一级页表指向的字块才是进程实际使用的内存。通过这种分级机制,大大减少了进程中页表数占用的空间。

段式存储管理将进程逻辑空间划分成若干段(非等分),段的长度由连续逻辑的长度决定。

例如一个程序有主函数MAIN、子程序段X、子函数Y等,这个时候会根据每一个函数的逻辑长度来分配逻辑空间。

页表由 页号 和 基址 组成,但在段式存储管理中由于每一段的长度是不固定的,段表由 段号 、 基址 以及 段长 组成。

在段式存储管理, 段地址 = 段号 + 段内偏移

分页可以有效提高内存利用率(虽然说存在页内碎片)

分段可以更好满足用户需求

两者结合,形成段页式存储管理

先将逻辑空间按段式管理分成若干段,再把段内空间按页式管理等分成若干页。

在段页式存储管理中, 段页地址 = 段号 + 段内页号 + 页内地址

有些进程实际需要的内存很大,超过物理内存的容量。
由于操作系统的多道程序设计,使得每个进程可用物理内存更加稀缺。
不可能无限增加物理内存,物理内存总有不够的时候,于是便有了虚拟内存的概念。

虚拟内存是操作系统内存管理的关键技术,使得多道程序运行和大程序运行成为现实,她通过将进程所使用的内存进行划分,将部分暂时不使用的内存放置在辅存。

根据局部性原理,程序运行时,无需全部装入内存,装载部分即可。如果访问页不在内存,则发出缺页中断,发起页面置换。

从用户层面看,程序拥有很大的空间,即是虚拟内存。

虚拟内存实际是对物理内存的补充,速度接近于内存,成本接近于辅存。

置换算法一般有先进先出算法(FIFO)、最不经常使用算法(LFU)、最近最少使用算法(LRU)。

从计算机组成原理篇章中,我们可以知道,CPU的高速缓存没有数据时,需要从主存中加载数据。此时若主存中也没有数据,则需要从辅存中载入页面数据。

内存替换策略发生在Cache-主存层次、主存-辅存层次。Cache-主存层次的替换策略主要是为了解决 速度问题 ,

主存-辅存层次则。主要是为了解决 容量问题 。

顺序文件是指按顺序存放在存储介质中的文件,例如磁带的存储特性使得磁带文件只能存储顺序文件。

顺序文件是所有逻辑文件当中存储效率最高的。

可变长文件不适合使用顺序文件格式存储,索引文件是为了解决可变长文件存储而发明的一种文件格式,索引文件需要配合索引表完成存储的操作。

目录的层级结构是树状的,成为目录树。

目录树中任何文件或目录都只有唯一路径。

对CPU而言,凡是对CPU进行数据输入的都是输入设备,凡是CPU进行数据输出的都是输出设备。

缓冲区主要是解决CPU与IO设备的速率不匹配的问题,减少CPU处理IO请求的频率,提高CPU与IO设备之间的并行性。

专用缓冲区只适用于特定的IO进程,当这样的IO进程比较多时,对内存的消耗也很大,所以操作系统划出可供多个进程使用的公共缓冲区,称之为缓冲池。

SPOOLing技术是关于慢速字符设备如何与计算机主机交换信息的一种技术,利用高速共享设备将低速的独享设备模拟为高速的共享设备,逻辑上,系统为每一个用户都分配了一台独立的高速独享设备,是一种虚拟设备技术。

SPOOLing技术把同步调用低速设备改为异步调用。在输入、输出之间增加了排队转储环节(输入井、输出井),SPOOLing负责输入(出)井与低速设备之间的调度,逻辑上,进程直接与高速设备交互,减少了进程的等待时间。

以上是关于操作系统-04-操作系统的存储管理和设备管理的主要内容,如果未能解决你的问题,请参考以下文章

存储管理学习笔记

win7系统分几位吗?

linux操作系统的磁盘存储管理中第二环是啥

操作系統-進程管理1

操作系統-進程管理(習題)

AIX磁盘管理 教程