软件工程-操作系统(二)

文章介绍了内存管理的不同策略,包括静态和动态重定位,连续分配的固定和可变分区,以及分页和分段分配。在地址映像中,讨论了直接和间接映射,页表的优化如多级页表和反置页表。虚存分配涉及页表的扩展功能,如有效位和访问位。文件系统的部分涵盖了连续、链接和索引分配。磁盘管理和I/O系统讨论了磁盘访问延迟、调度算法以及DMA在I/O操作中的作用。
摘要由CSDN通过智能技术生成

内存管理

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)索引分配

用一个物理块来保存索引用表(与分页类似)

  1. 散列分配

直接存取文件又称为哈希(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与外设并发

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值