操作系统-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-操作系统的存储管理和设备管理的主要内容,如果未能解决你的问题,请参考以下文章