内存管理
1.重定位
<1>静态重定位
进入内存之前完成重定位(编译,链接,装入的时候完成),执行效率高,但是不可以移动。
<2>动态重定位
运行的时候完成重定位,可随意移动,但是执行效率低。(现代使用较多)
2.连续分配
未分分区表:起始地址,长度。
<1>固定分区分配(分区大小,数目固定)
有内零头,但是管理过程简单。
<2>可变分区分配
通过改变未分分区表实现分配。
有外零头,存在于未分分区表一段时间不可用。
可变分区分配有三种分配算法:
(1)首次适应算法:按照起始地址大小顺序找到一个可以满足条件的空间
(2)最佳适应算法:按可用分区大小进行排序,找到一个最小的空间进行分配。
(3)最差适应算法:找一块最大的空间进行分配。
程序浮动:合并大的碎片(前提是所有的碎片求和可以放的下该程序)
3.离散分配
<1>分页分配
Frame页架:固定大小的框页
Page页:保存未分页框(页表来储存)
1.将一个job分成很多个页,页与页框大小一样;
2.物理地址空间按照2的n次方分成页框;
3.作业的逻辑地址空间按照Frame大小分成页;
4.连续也可以分配不连续页框;
5.逻辑地址表示(p,d)p=A/(2^n),d=A%(2^n);
6.每个作业一张页表用于保存进程各页在主存分配;
7.设置一堆Register(包括base和limit)页表的表目。
(1)多级页表
将页框分为多级,然后进程页表加入多个空来区分;
(2)Hash页表
用较小的主存保存所有页表表目,hash表随机散列存多个页表;
(3)反置页表
系统设置一张表,以页框构建,可以在页目中加入进程名,进程页号。
<2>分段分配
1.物理地址空间:可变分区分配;
2.逻辑地址空间(S,d);
3.每个作业一张段表,保存每个分段内存位置;
4.分配离散分配;
5.系统设置一堆寄存器表示段表的起始地址和长度。
4.地址映像
<1>直接地址映像——查页表
通过frame+d可以得到一个可以访问的物理地址,通常需要两次访问内存。
<2>间接地址映像
增加若干寄存器保存当前运行进程表目
置换缓冲(原理是程序局部性特征:1.时间局部性;2.空间局部性)
页表表目扩充:页号,页框号,保护位,有效位
5.虚存分配
逻辑地址-》物理地址空间(某些空间运行过程中不需要)
页表表目:页号,页框,保护位,有效位(是否在内存里面并且合法),+访问位(看谁用的少便于后期置换),修改位(是否需要回写)。
置换过程:
1.找一个空的页架,将需要运行的放进去;
2.修改页表;
3.重新执行(一个指令可能执行很多次)。
置换算法:
(1)First in first out
奇异现象 多框时缺页率反而更多
(2)最佳置换
置换最远将来使用的页框
(3)LRU(最近最少使用算法)
通过画图不断比较得到最好的置换的页
(4)基于计数的置换方法
分配算法:
1.固定分配:按比例分配,平均分配
2.按优先级分配:按进程优先级进行分配
抖动
大量的时间用于置换,CPU利用率减少。
道数过多会抖动
文件系统
若文件保存在顺序介质,则只能通过顺序访问(磁带),保存在磁盘上则可以直接访问。
首先查找目录找到相关的目录信息(文件名,位置)建立操作系统与文件的联系。
1.文件访问
(1)一级目录:命名冲突,访问效率低,不支持分组
(2)二级目录以及多级目录可以解决以上问题
(3)通用图可以用来描述目录但是要没有环
(4)应用程序--》逻辑文件--》文件系统--》具体物理位置--》I/O设置-
》设备(分层设计的文件系统)
2.文件组织
(1)连续分配
每个文件在磁盘上占用一个连续的块,简单可随机访问,但是浪费空间大;
(2)链接分配
一个文件占用多个块通过链表来存储,浪费小但是不可以随机访问;
(3)索引分配
用一个物理块来保存索引用表(与分页类似)
- 散列分配
直接存取文件又称为哈希(Hash)文件或散列文件,即利用哈希函数及其处理冲突的方法,把文件散列到外存上,通常是磁盘上。
3.未分分区空间管理
(1)位示图
选取一块来表示是否已经分配,如果已经分配则值为一,否则为零
(2)空闲块链
将空闲的块用链表来串起来,需要时从链表中弹出即可
(3)组
通过空白文件目录来实现找到空闲区域
4.提高访问性能
(1)提前读(读入缓存区)
(2)即刻释放
磁盘管理
数据量与弧度有关与长度无关,一个盘面两个读写头,柱面越靠外面刻度越小
1.磁盘访问延时
寻道时间,旋转时间
2.磁盘调度
(1)FCFS
先来先服务,谁先要访问就先转到哪儿
(2)SSTF
与磁头最近的外存区域优先访问
(3)SCAN
来回处理任务
(4)C-SCAN
回的时候不处理任务
I/O系统
DMA设备控制器对于块的输入输出
1.I/O硬件
设备状态表,内核I/O系统,通道-I/O处理机(与DMA联合使用,包括字节多路,数据多路,选择通道)-可以反馈给CPU
2.假脱机
将慢速设备(打印机)改造成可以共享的虚设备
组成:输入井,输出井(都是暂存)
内存缓冲
sp0,sp1系统进程
以打印为例,将打印内容写到输出井上,进行后续操作(本质山是以磁盘来代替CPU对慢速设备的控制)
特点:
将慢速设备改造成可以共享的设备
缓解CPU与慢速设备之间的性能联系
CPU与外设并发