操作系统整理(下)

七 内存管理

名词解释
  • 页框

    内存中固定长度的块

  • 二级存储器中如磁盘固定长度的块

  • 二级存储器中如磁盘非固定长度的块

  • 内部碎片

    分区内未使用的空间

  • 外部碎片

    分区外未使用的空间

内存管理需求
  • 重定位

    把逻辑地址(虚地址)转换为物理地址(实地址)

    静态重定位:地址转换工作在进程执行前一次完成;无须硬件支持,易于实现,不允许程序在执行过程中移动位置

    动态重定位:地址转换工作在进程执行时完成;允许程序在主存中移动、便于主存共享、主存利用率高

  • 保护

    保护操作系统不受用户进程所影响,保护用户进程不受其他用户进程所影响

    存储键保护

    界限寄存器,分为上、下界防护和基址、限长防护

  • 共享

    允许多个进程访问内存的同一部分

  • 逻辑组织

    希望操作系统和计算机硬件能够有效地处理以某种模块的形式组织的用户程序和数据

  • 物理组织

    内存和外存之间信息流的组织

内存分区
固定分区

系统生成阶段,内存被划分成许多静态分区

根据分区大小划分为大小相等的分区和大小不等的分区

大小相等的分区

  • 程序可能太大而不能放到一个分区中
  • 内存的利用率非常低,会有内部碎片
  • 只要存在可用的分区,进程就可以装入分区
  • 若所有分区都被处于不可运行状态的进程所占据,则选择其中一个进程换出,为新进程让出空间

大小不等的分区

  • 可缓解上述问题,但不能完全解决

  • 把每个进程分配到能够容纳它的最小分区

    1 每个分区维护一个调度队列,用于保存从这个分区换出的进程

    2 为所有进程只提供一个队列

缺点

  • 分区的数目在系统生成阶段已经确定,限制了系统中活动进程的数目
  • 分区大小在系统生成阶段事先设置,小作业不能有效地利用分区空间
动态分区

分区长度和数目是可变的,当进程被装入内存时,系统会给它分配一块和它所需容量完全相等的内存空间

缺点

存在外部碎片

外部碎片解决方法:压缩(移动进程使得进程占用空间连续),但是十分浪费处理器时间

放置算法

  • 首次适配

    从开始扫描内存,选择大小足够的第一个可用块

  • 下次适配

    首次适配的变种,每次分配时从未分配区的上次扫描结束处顺序查找,选择下一个大小足够的可用块

  • 最佳适配

    选择与要求的大小最接近的块

  • 最差适配

    选择符合要求大小的最大容量的块

伙伴系统

一种固定分区和可变分区折中的主存管理算法
在这里插入图片描述

简单分页

进程中称为页的块可以指定到内存中称为页框的可用块,一个进程可以占据多个页框,一个进程占据的多个页框不需要是连续的

操作系统为每个进程维护一个页表,页表表示页与页框的位置对应关系

逻辑地址转为物理地址:

  1. 逻辑地址/页大小,商=页号,余数=偏移量,根据页表查找对应的页框号
  2. 物理地址=页框号*页大小+偏移量
简单分段

把程序和其相关的数据划分到几个段中,一个程序可以占据多个非连续的分区,会产生外部碎片,但跟动态分区比,会很小

操作系统为每个进程维护一个段表,段表包含段号+段在内存的起始地址+段长

逻辑地址转为物理地址:

  1. 判断逻辑地址的段号是否存在于段表,若不在则地址非法
  2. 判断逻辑地址的段内位移是否超过对应段的段长,若超过则地址非法
  3. 物理地址=段在内存的起始地址+段内位移
内存管理技术总结

在这里插入图片描述

八 虚拟内存

什么是虚拟内存

虚拟内存是计算机系统内存管理的一种技术,为每个进程提供了一个一致的、私有的地址空间,它让每个进程产生了一种自己在独享主存的错觉(每个进程拥有一片连续完整的内存空间),并且把内存扩展到硬盘空间,从而允许进程的执行不必完全在内存中,程序可以比物理内存大

虚拟内存的功能
  • 缓存

    在主存中自动缓存最近使用的存放磁盘上的虚拟地址空间的内容

  • 内存管理

    简化了内存管理,进而又简化了连接、在进程间共享数据、进程的内存分配以及程序加载

  • 内存保护

    通过在每条页表条目中加入保护位,从而简化了内存保护

程序的局部性原理

程序在执行过程中的一个较短时间内,所执行的指令地址或操作数地址分别局限于一定的存储区域中

  • 时间局部性

    最近访问过的程序代码和数据很快又被访问

  • 空间局部性

    某存储单元被使用之后,其相邻的存储单元也很快被使用

抖动:频繁将数据块换入或换出内存

虚存分页

不把作业信息(程序和数据)全部装入主存,仅装入立即使用的页面,在执行过程中访问到不在主存的页面时,产生缺页中断,再从磁盘动态地装入

多级页表

进程的页数越多,页表越大,页表占用的内存空间越多,使用多级页表解决问题,根页表在内存,用户页表在虚存
在这里插入图片描述

倒排页表

多级页表的问题:页表大小与虚拟空间大小成正比

倒排页表使用页框号来索引页表项,页表项包括页号、进程ID、控制位、链指针
在这里插入图片描述

转换检测缓冲区/快表

每次虚存访问可能引起两次物理内存访问(查找页表+取数据),需要加速虚拟地址到物理地址的转换

  1. 根据虚拟地址中的页号查快表
  2. 如果该页在快表中,直接从快表中读取页框号得到相应的物理地址
  3. 如果该页不在快表中,就访问内存中的页表,再从页表中读取页框号得到物理地址,同时将页表中的该映射表项添加到快表中
  4. 当快表填满后,又要登记新页时,就按照一定的淘汰策略淘汰掉快表中的一个页
虚拟分段

把作业的所有分段的副本都存放在辅助存储器中,当作业被调度投入运行时,首先把当前需要的一段或几段装入主存,在执行过程中访问到不在主存的段时再把它们装入

段页式

分页对程序员是透明的,分段对程序员是可见的,把两者结合起来就是段页式存储管理(先分段后分页)

  • 内存划分成大小小等的页框
  • 用户的地址空间被程序员划分成许多段,每个段一次划分成许多固定大小的页,页的长度等于内存中的页框大小
操作系统策略
读取策略

确定一个页何时取入内存

  • 请求分页
  • 预先分页
放置策略

决定一个进程块驻留在内存中什么地方

置换策略

当读取一个新页以处理一次缺页中断时,决定当前在内存中的哪个页将被置换

页面置换算法

  • 最佳

    选择置换下次访问距当前时间最长的页,要求操作系统必须知道将来的事件,所以不可能实现

  • 最近最少使用

    置换上次使用距前时间最长的页

  • 先进先出

    置换驻留在内存中时间最长的页,可能会产生Belady异常(缺页率随着所分配的帧数增加而增加的现象)

  • 时钟

    简单时钟策略:

    给每个页框关联一个称为使用位的附加位

    一个页面首次装入内存,其“使用位”置1

    主存中的任何页面被访问时, “使用位”置1

    当需要置换一页时,扫描以查找“使用位”为0的页框。查找过程中,把遇到的“使用位”是1的页面的“引用位”清0,跳过这个页面,继续查找

    时钟策略改进算法:

    把”引用位”和”修改位”结合起来使用,共组合成四种情况

驻留集管理

驻留集:驻留在内存的进程需要分配多大空间

页框分配策略
  • 固定分配
  • 可变分配
置换范围
  • 局部置换
  • 全局置换
工作集策略

进程工作集:某一段时间间隔内进程运行需要访问的页面集合

清楚策略

确定在何时将一个被修改过的页写回辅存

  • 请求式清除
  • 预约式清除
加载控制

加载控制会影响到驻留在内存中的进程数目,即系统并发度

如果系统并发度被减小,一个或多个当前驻留进程必须被挂起

九 单处理器调度

处理器调度类型

在这里插入图片描述

  • 长程调度

    决定哪个程序可以进入系统中处理,控制着系统的并发度,执行频率较低

  • 中程调度

    决定进程的换入换出,执行频率稍高

  • 短程调度

    决定进程的执行、阻塞、等待,执行频率最高

    导致短程调度发生的事件包括时间中断、操作系统调用、I/O中断、信号(如信号量)

调度准则
  • 面向用户,与性能相关

    周转时间、响应时间、最后期限

    周转时间=等待时间+服务时间

    归一化周转时间=周转时间/服务时间

  • 面向用户,与性能无关

    可预测性

  • 面向系统,与性能相关

    吞吐量、处理器利用率

  • 面向系统,与性能无关

    公平性、强制优先级、平衡资源

调度算法
  • 先来先服务

    非抢占

  • 轮转

    抢占、指定时间片q

  • 最短进程优先

    服务时间短的进程优先、非抢占、等某个进程执行完再调度

  • 最短剩余时间

    选择剩余服务时间最短的进程、抢占

  • 最高响应比优先

    响应比=(等待时间+服务时间)/服务时间

    非抢占、进程执行完成时计算响应比

  • 优先级

    数小代表优先级高

    非抢占优先级:进程完成时再比较优先级

    抢占优先级:进程到达时比较优先级

  • 反馈法

    按时间片抢占、动态优先级

十 多处理器和实时调度

多处理器系统分类
  • 松耦合、分布式多处理器、集群
  • 专门功能的处理器
  • 紧耦合多处理
同步粒度和进程

在这里插入图片描述

进程调度

多处理系统中一般使用简单的FCFS或者在静态优先级方案中使用FCFS

线程调度
  • 负载分配

    系统维护一个就绪线程的全局队列,每个处理器只要空闲就从队列中选择一个线程

  • 组调度

    一组相关的线程基于一对一的原则,同时调度到一组处理器上运行

  • 专用处理器调度

    组调度的一种极端形式,在一个应用程序执行期间,把一组处理器专门分配给这个应用程序

  • 动态调度

    某些应用程序允许动态地改变进程中线程数目,需要动态调度。操作系统负责分配处理器给作业,作业自行调度

实时调度算法
  • 静态表法
  • 静态优先级抢占法
  • 基于动态规划调度法
  • 动态尽力调度法
限期调度

启动最后期限:任务必须开始的时间

完成最后期限:任务必须完成的时间

  • 完成最后期限的最早最后期限调度

    抢占、周期性

  • 启动最后期限的最早最后期限调度

    改进:有自愿空闲时间的最早最后期限调度-让紧急的任务先执行,不紧急的任务延迟执行

    非抢占、非周期性

速率单调调度

适应于周期性任务调度,最短周期的任务具有最高优先级,次短周期的任务具有次高的优先级,以此类推

优先级反转

系统内环境迫使一个较高优先级的任务去等待一个较低优先级的任务

解决方法

  • 优先级继承

    高优先级任务在资源上阻塞时,低优先级任务继承与其共享同一个资源的高优先级任务的优先级,资源被释放时,继承结束

  • 优先级置顶

    资源优先级被设定为比使用该资源的最高优先级任务的优先级要高一级,调度程序动态地将这个优先级分配给访问资源的任务,使用完恢复任务的优先级

十一 I/O管理和磁盘调度

I/O设备类别
  • 人可读
  • 机器可读
  • 通信
I/O设备差异
  • 数据速率
  • 应用
  • 控制复杂性
  • 传送单位
  • 数据表示
  • 错误条件
执行I/O的三种技术
  • 程序控制I/O
  • 中断驱动I/O
  • 直接存储器访问DMA
    在这里插入图片描述
直接存储器访问流程
  1. 当处理器想读或写一块数据时,通过向DMA模块发送信息来给DMA模块发出一条命令
  2. 处理器继续执行其工作
  3. DMA模块直接从存储器中或往存储器中传送整块数据,一次传送一个字
  4. 传送结束后,DMA模块给处理器发送一个中断信号
I/O缓冲
引入缓冲目的

改善中央处理器与外围设备之间速度不配的矛盾

提高CPU和I/O设备的并行性

I/O设备
  • 面向块

    磁盘、U盘

  • 面向流

    打印机、通信端口、鼠标、终端

缓冲分类
  • 单缓冲
  • 双缓冲
  • 循环缓冲
磁盘调度
磁盘性能参数
  • 寻道时间

    将磁头臂移到指定磁道所需要的时间

  • 旋转延迟

    将磁盘的待访问地址区域旋转到读/写磁头可访问的位置所需要的时间

  • 传输时间

    读或写操作的数据传输所需的时间

传输时间=要传送的字节数/(旋转速度*一个磁道中的字节数)

平均存取时间=平均寻道时间+平均旋转延迟1/(2*旋转速度)+传输时间

调度策略
  • 先进先出

    比较公平

    通常不能提供最快的服务

  • 最短寻道时间优先

    选择与当前磁头位置最近的待处理请求

    较先进先出大大提高了性能

    可能会导致一些请求得不到服务,并不是最佳

  • 扫描/电梯

    磁臂从磁盘的一端向另一端移动,同时当磁头移过每个柱面时,处理位于该柱面上的服务请求。当到达另一端时,磁头改变方向,处理继续

    需要知道磁头的当前位置和磁头移动的方向

    某些请求处理可能不及时

  • 循环扫描

    将磁头从磁盘一端移到另一端,随着移动不断的处理请求。不过,当磁头移到另一端时,马上返回,返回时不处理请求

RAID

独立磁盘冗余阵列,包括了7个级别,从0到6。不同级别表明了不同的设计体系结构,有三个共同特性:

  • RAID是一组物理磁盘驱动器,操作系统把它视为一个单个的逻辑驱动器
  • 数据分布在物理驱动器阵列中–条带化
  • 使用冗余的磁盘容量保存奇偶检验信息,从而保证当一个磁盘失效时,数据具有可恢复性
    在这里插入图片描述
磁盘高速缓存

磁盘高速缓存是内存中为磁盘扇区设置的一个缓冲区,它包含有磁盘中某些扇区的副本

十二 文件管理

文件结构
  • 基本数据单元

  • 记录

    一组相关的域的集合

  • 文件

    一组相似记录的集合

  • 数据库

    一组相关的数据的集合

在unix或类unix上,文件的基本结构是字节流

文件系统软件架构

在这里插入图片描述

文件组织(逻辑结构)
  • 数据按到达的顺序被收集,没有结构,对记录的访问通过穷举查找的方式进行

    对大多数应用都不适应

  • 顺序文件

    按关键字排序

    每条记录都使用一种固定的格式,所有记录都具有相同的长度,并且由相同数目、长度固定的域按特定的顺序组成

    举例:磁盘、磁带

    对于查询或更新记录的交互式应用,性能很差

  • 索引顺序文件

    比顺序文件多了文件索引、溢出文件

    极大地减少了访问单条记录的时间,同时保留了文件的顺序特性

  • 索引文件

    只能通过索引来访问记录,对记录的放置位置没有限制

    大多用于对信息的及时性要求比较严格且很少会对所有数据进行处理的应用程序中

  • 直接或散列文件

    使用基于关键字的散列,能直接访问磁盘中任何一个地址已知的块

    通常在要求快速访问时使用,并且记录的长度是固定的,一次只访问一条记录

文件目录
文件控制块

一种用于存放控制文件需要的各种信息的数据结构,FCB的有序集合叫做文件目录,一个FCB就是一个文件目录项,包含以下信息

  • 基本信息

    文件名、文件类型、文件组织

  • 地址信息

    卷、起始地址、使用大小、分配大小

  • 访问控制信息

    所有者、访问信息、许可的行为

  • 使用信息

    数据创建、创建者身份、最后一次读访问的日期、最后一次读用户的身份、最后一次修改的日期、最后一次修改者的身份、最后一次备份的日期、当前使用

结构

层次或树型结构

命名

系统中的任何文件都可以按照从根目录或主目录向下到各个分支,最后直到该文件的路径来定位。这一系列目录名和最后到达的文件名组成了该文件的路径名

对交互用户或进程而言,总有一个当前路径与之相关联,通常称为工作目录

文件共享
访问权限
  • 知道
  • 执行
  • 追加
  • 更新
  • 改变保护
  • 删除
同时访问

需要对文件加锁,解决互斥和死锁问题

记录组块
  • 定长组块
  • 变长跨越式组块
  • 变长非跨越式组块
文件分配(物理组织)
  • 连续分配

    预分配、大小可变分区、检索容易、不利于文件插入和删除、有外部碎片

  • 链式分配

    预分配或动态分配、没有外部碎片、有利于文件插入和删除、只能顺序访问

  • 索引分配

    预分配或动态分配、既能顺序存取又能随机存取、先访问索引表再访问物理块、索引表本身带来了系统开销

空闲空间的管理
  • 磁盘分配表
  • 位表
  • 索引
  • 空闲块列表
  • 链接空闲区

英文缩写汇总

PC 程序计数器

IR 指令寄存器

MAR 内存地址寄存器

MBR 内存缓存寄存器

I/O AR 输入输出地址寄存器

I/O BR 输入输出缓存寄存器

PSW 程序状态字

ISR 中断服务例程

DMA 直接内存存取

SMP 对称多处理器

ISA 指令系统体系结构

ABI 应用程序二进制接口

API 应用程序编程接口

JCL 作业控制语言

CTSS 兼容分时系统

IPC 进程间通信

MTTF 平均失效时间

MTTR 平均修复时间

LPC 本地过程调用

RPC 远程过程调用

PCB 进程控制块

PID 进程标识符

PPID 父进程标识符

UID 用户标识符

CPL 当前特权级别

IRT 中断返回

LWP 轻量级进程

PSR 处理器状态寄存器

ULT 用户级线程

KLT 内核级线程

TLB 快表

OPT 最佳

LRU 最近最少使用

FIFO 先进先出

CLOCK 时钟

PFF 缺页中断频率

FCFS 先来先服务

RR 轮转

SPN 最短进程优先

SRT 最短剩余时间

HRRN 最高响应比优先

RMS 速率单调调度

SSTF 最短服务时间优先

SCAN 扫描

RAID 独立磁盘冗余阵列

LFU 最不常使用页面置换

FCB 文件控制块

FAT 文件分配表

DAT 磁盘分配表

MMU 内存管理单元

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值