XJTUSE-OS-ch9-13

第九章-Memory Management

背景

基本硬件

  1. 基地址寄存器
  2. 界限地址寄存器

地址绑定

按照不同的时段进行绑定分为以下三种:

  1. 编译时:生成绝对地址
  2. 加载时:生成可重定位代码,静态重定位
  3. 执行时:需要特定的硬件完成,动态重定位。

逻辑/物理地址空间

MMC:内存管理单元,一个硬件设备,完成逻辑地址到物理地址的映射。

基地址寄存器:重定位寄存器

动态加载

即,一个子程序只有再调用的时候才被加载。

动态链接与共享库

可以看到动态链接在图的左下角,即二进制镜像对每一个库程序的引用都有一个存根。

第一次使用时,无论在或不在,最后都会留下一个子程序地址。当下次在执行,可通过子程序代码直接执行。

交换

如图所示:

有时候也称滚入和滚出。

连续内存分配

内存映射和保护

前面已经讲过,简单来说就是通过基地址寄存器和界限寄存器。

内存分配

方法一:

多分区方法:将内存分为固定的大小的分区,一个进程一个分区(不再使用)

方法二:

可变分区:

孔:一大块可用内存

动态分配方法(掌握,会应用):

  1. 首次适应
  2. 最好适应
  3. 最差适应

碎片问题:会产生外部碎片问题

解决外碎片方法:紧缩;允许分配空间非连续(引出分页和分段)。

分页

基本方法

这一部分就是计组的知识...

物理内存分块,叫帧;逻辑内存分块,叫页;

p称为页号;d称为偏移

For given logical address space 2^m and page size 2^n

p=m-n;d=n

为了提升查找效率,增加了TLB(联想寄存器

硬件支持

硬件的工作原理如下:

不再赘述。PCB(program control block)

有关逻辑地址到物理地址的转化要学会,就是计组作业那些东西,不再赘述

保护

Valid-invalid bit(有效-无效位)来表明页是否在进程的逻辑地址空间内,即是不是合法的页。这样子进行了保护。

可以注意到一件事情,即最后一个页存在内碎片

两级页表机制

这一部分完全就是计组的知识了,简单给个图激活一下记忆即可

同理,可以推至多级页表。

Hashed Page Tables

 Inverted Page Table

按照物理内存建表,增加了查找表的时间。

Shared Pages

特点

n 没有外碎片,每个内碎片不超过页大小。
n 一个程序不必连续存放。
n 程序全部装入内存。

分段

基本方法

一图胜前言!!

硬件实现

特点

没有内碎片,外碎片可以通过内存紧缩来消除。

便于改变进程占用空间的大小。

进程全部装入内存

分页VS分段

第十章-Virtual Memory

背景

常规存储器特征:一次性;驻留性;

局部性原理:时间局部性,空间局部性

按需调页

页面调入策略:预调页(准确率低),请求调页

性能评价

假设p为页错误的概率,有效访问时间为

有效访问时间 = (1-p)*内存访问时间 + p*页错误时间

页面置换算法

为什么需要页面置换?发生了缺页,但内存中没用空闲的块,则需要将一个页面置换出来,把需要的页面调入。

算法:

算法都要掌握,但我不再给出算法的具体步骤!

  1. 最佳算法(OPT)
  2. 先进先出算法(FIFO):可能产生Belady异常(更多的页框会产生更多的缺页)
  3. 最近最久未使用算法(LRU)
  4. LRU近似算法

LRU近似算法有:

  1. 附加引用位算法
  2. 二次机会算法
  3. 增强型二次机会算法

基于计数的页置换算法:

  1. 最不经常使用页置换算法
  2. 最常使用页置换算法

帧分配

最少数量

n Each process needs minimum number of pages 每个进程所需要的最少的页的数目).
n 保证进程正常运行所需的最小物理块数
n 若系统为某进程所分配的物理块数少于此值时,进程将无法正常运行 ( 频繁发生缺页 )
n 这个数目取决于指令的格式、功能和寻址方式。

分配算法

  1. 平均分配
  2. 比例分配
  3. 优先级分配

全局置换vs局部置换

全局置换:在所有帧中选择一个置换

局部置换:只能在被分配的帧中选择一个置换。

全局置换不能控制页错误率,但是可以使得系统有更好的吞吐量。

局部置换可以控制调页的执行时间,但是无法使用别的进度不常用的内存。

颠簸-Trashing

调入又调出:刚被换出的页很快又被访问,需重新调入,导致系统频繁地交换页面,以致大部分CPU时间花费在完成页面置换的工作上。

为了防止颠簸,应该给进程提供足够多的帧
Why does thrashing occur ?( 为什么颠簸会发生)
         size of locality  >  total memory size

 使用工作集合窗口

D = S WSS i º total demand frames (总需求)
i f D > m (可用帧的数量)=>  Thrashing
Policy if D > m, then suspend one of the processes.

第十一章-File-System

基本概念

文件系统

用户角度:实现按名存取

系统角度:文件系统是对文件存储器的存储空间进行组织、分配和回收,负责文件的存储、检索、共享和保护。

作用:

  • 提供对文件的各种操作,实现按名存取
  • 提供合适的访问方式
  • 提供目录管理和操作
  • 实现文件的共享、保护
  • 统一管理文件的存储空间,实现存储空间的分配和回收
  • 实现逻辑文件与物理文件间的转换

文件

文件:记录在外存上的具有名字的相关信息的集合

文件属性:

文件名、类型、大小、位置、保护(读取、改写权限)、时间…

属性信息放在目录中存储在硬盘里

文件系统结构

文件控制块FCB:由一个文件的相关信息组成的存储结构

文件结构与存储设备

角度

对于文件而言,用户和文件系统角度不一样:

用户:使用角度

文件系统:存储、检索的角度。

文件逻辑/物理结构

逻辑结构:用户对文件的组织结构

物理结构:文件在外存储器上的存储结构

文件的逻辑结构存储

  • 无结构的流式文件
  • 有结构的记录式文件。

记录文件的结构有:

  1. 顺序
  2. 索引
  3. 索引顺序

访问文件的方式有:

  1. 顺序访问
  2. 随机存取

文件的物理结构

1、顺序分配:产生外碎片。

从逻辑地址映射到物理地址:逻辑地址/块大小=块号 逻辑地址%块大小=偏移

2、链式分配:无外碎片,但查询效率慢、易出错等。

改进措施:使用文件分配表FAT。

3、索引结构

引出了多级索引结构。

学会计算多级索引的最大文件容量

目录结构

目录概念

目录:一个包含着所有文件信息的节点的集合

目录中的信息:名称、类型、地址、当前长度、最大长度、最后访问时间、数据最后更新时间、所有者ID、保护信息

文件控制块FCB

用于描述和控制文件的数据结构,它至少要包括文件名和存放文件的盘物理地址

文件控制块的有序集合称为文件目录,即一个文件控制块FCB就是一个文件目录项。

FCB包含:

  • 文件基本信息:文件名,用户名,文件地址,文件长度,文件逻辑结构,物理结构
  • 存取控制信息:文件存取权限
  • 管理信息:共享计数,文件的建立日期,保存期限,最后修改日期,最后访问日期

文件目录VS目录文件

  • 文件目录:文件控制块的有序集合
  • 目录文件:为了实现对文件目录的管理,将文件目录以文件的形式保存在外存,这个文件就叫目录文件
     

目录的逻辑结构

  1. 单级目录
  2. 二级目录
  3. 无环图结构目录
  4. 有环图结构目录

文件操作

建立文件:

建立文件的FCB

分配必要的外存空间

在文件目录中为之建立一个目录项,目录项中记录新文件的文件名及其在外存的地址等属性,返回一个文件描述符。

删除文件:

从目录中找到要删除文件的目录项

使之成为空闲目录项

回收该文件所占用的存储空间

读文件 :

查找目录,找到指定文件的目录项,从中得到被读文件在外存的地址

从外存将数据读入内存

写文件 :

查找目录,找到指定文件的目录项

利用目录中的文件指针将信息写入文件

打开文件: 为了避免每次访问文件时都要从外存中查找文件目录,系统提供了打开文件命令。

将待访问文件的目录信息读入内存活动文件表中,建立起用户和文件的联系。

在有些系统中,也可以通过读命令隐含地向系统提出打开文件的要求。若在读写命令中不包含打开文件功能,则在使用文件之前,必须先打开文件。

关闭文件:

撤消主存中有关该文件的目录信息,切断用户与该文件的联系;

若在文件打开期间,该文件作过某种修改,则应将其写回辅存。

Free-Space Management

位图法

用一串二进制位反映磁盘空间中分配使用情况, 每个物理块对应一位, 分配物理块为0,否则为1。 申请物理块时,可以在位示图中查找为1的位,返回对应物理块号; 归还时;将对应位置1。

位图的大小由磁盘空间的大小缺点,保存在主存中

空闲块表

将所有空闲块记录在一个表中,即空闲块表,有两项:该空闲区的第一个盘块号、该区的空闲盘块总数

空闲块链表

把所有空闲块链成一个链. 扩展:成组链接法

成组链接法

文件系统实现

第十二章-Secondary-Storage

磁盘结构(略)

计组的知识点

磁盘访问速度(略)

计组的知识点

磁盘调度

  1. 先来先服务FCFS
  2. 最短寻道时间优先SSTF
  3. SCAN
  4. C-SCAN
  5. LOOK
  6. C-LOOK

磁盘高速缓存

就是在内存开了一块存储空间,用来充当缓冲,提升磁盘的读取效率。

交换空间管理

交换空间管理 交换空间管理追求的是访问速度,而不是存储效率。

磁盘可靠性

RAID技术:将多个物理磁盘通过一定的逻辑关系集合起来,成为一个大容量的虚拟磁盘。

练习

练习一

105-110-170-180-195-68-45-35-12

练习二

第十三章-I/O Systems

我觉得这章不管是PPT还是MOOC讲的就是依托..非常不清楚明了,让我猜谜语

I/O Devices

按信息交换的单位分类


块设备
用于存储信息。 由于信息的存取总是以数据块为单位,故而得名。 典型的块设备是磁盘,每个盘块的大小 为 512 B~4 KB 。磁盘设备的基本特征是其传输速率较高,通常每秒钟为几兆位;另一特征是可寻址 ,即对它可随机地读 / 写任一块;此外,磁盘设备的 I/O 常采用DMA 方式。

字符设备
用于数据的输入和输出。 其基本单位是字符, 故称为字符设备。

时钟:既不是块设备也不是字符设备

按设备的共享属性分类


独占设备:在一段时间内只能有一个进程使用的设备,一般为低速I/O设备(如打印机,磁带等)

共享设备:在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高(如硬盘)

虚拟设备:通过虚拟技术把一台独占设备变换为若干台逻辑设备,可供多个用户使用
 

Controller

每个 I/O 设备通过设备控制器与计算机的数据总线和地址总线相连接。

设备控制器是 CPU I/O 设备间的接口,它接收从 CPU 发来的命令,并去控制 I/O 设备工作。
接收和识别命令
数据交换
设备状态的了解和报告
地址识别
数据缓冲

                  差错控制

I/O通道

定义:通道是独立于CPU的专门负责数据I/O传输工作的处理机,对外部设备实现统一管理,代替CPU对I/O操作进行控制,从而使I/O操作可与CPU并行操作。 通道可以执行通道程序.

目的:建立独立的I/O操作,不仅使数据的传送独立于CPU,而且使有关对I/O操作的组织、管理及其结束处理也尽量独立,即把CPU从繁杂的I/O任务中解脱出来,提高CPU与设备,设备与设备之间的并行工作能力. 

Bus

公用的信号或数据传输通道

I/O控制方式

  1. 程序I/O方式(轮询Polling)
  2. 中断驱动I/O
  3. DMA控制方式
  4. I/O通道控制方式

缓冲技术

缓冲技术的目的:

  1. 缓和CPU与I/O设备间速度不匹配的矛盾
  2. 减少对CPU的中断频率,放宽对中断响应时间的限制
  3. 提高CPU和I/O设备之间的并行性

缓冲形式:

  1. 单缓冲
  2. 双缓冲
  3. 循环缓冲

缓冲池

I/O软件

设备独立软件

设备分配的数据结构

设备控制表DCT

控制器控制表COCT

通道控制表CHCT

系统设备表 SDT

设备分配需考虑:

独占设备:静态分配(运行前完成分配)、动态分配(运行时进行分配)

分时式共享设备:同时分配多个进程使用。

把独占设备改造成虚拟设备=>设备独立性

设备独立性

目的:为了提高OS的可适应性和可扩展性。

基本含义: 应用程序独立于具体使用的物理设备。

为了实现设备独立性而引入了逻辑设备和物理设备这两个概念

应用程序使用逻辑设备名称来请求使用设备

系统使用物理设备名

系统需将逻辑设备名称转换为某物理设备

Spooling技术

用于将一台独占设备改造成共享设备的一种行之有效的技术

利用多道程序中的一道程序来模拟脱机输入时的外围控制机的功能,把低速I/O设备上的数据传送到高速磁盘上;

用另一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上

这样,便在主机的直接控制下,实现脱机输入、输出功能。

此时的外围操作与CPU对数据的处理同时进行,这种在联机情况下实现的同时外围操作称为SPOOLing (Simultaneous Peripheral Operations On-Line),或称假脱机操作。

组成
SPOOLing系统是对脱机输入、输出工作的模拟,它必须有高速随机外存的支持,这通常是采用磁盘。

SPOOLing系统组成如下图:

输入井和输出井;

输入缓冲和输出缓冲;

输入进程和输出进程。

特点

提高了I/O速度

将独占设备改造为共享设备

实现了虚拟设备功能

设备驱动程序

操作系统能够以统一的方式对待不同的I/O设备,因为具体的差别被称为设备驱动程序 的内核模块所封装。与设备相关的代码放在设备驱动程序中。应为每一类设备配置一种驱动程序

设备驱动程序实际是处理或操作硬件控制器的软件

中断处理程序

在 I/O 时,设备控制器如果准备好服务会向CPU发出一中断请求。

这些中断表示输入数据已有,或输出已完成,或已检测到错误。

CPU响应后便转向中断处理程序

无论是哪种I/O设备,其中断处理程序的处理过程都包含了以下几个步骤

唤醒被阻塞的驱动程序进程;

保护被中断进程的CPU环境;

分析中断原因、转入相应的设备中断处理程序;

进行中断处理;

恢复被中断进程的现场。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值