【软件设计师—基础精讲笔记2】第二章 操作系统2

简介: 【软件设计师—基础精讲笔记2】第二章 操作系统1

四、设备管理

1、I/O软件

       /O设备管理软件一般分为4层:中断处理程序、设备驱动程序、设备无关软件、用户级软件。如图。

硬件:完成具体的 I/O 操作。

中断处理程序:I/O 完成后唤醒设备驱动程序

设备驱动程序:设置寄存器,检查设备状态

设备无关 I/O 层:设备名解析、阻塞进程、分配缓冲区

用户级 I/O 层:发出 I/O 调用。

2、相关技术

(1)程序查询方式(CPU 一直处于询问、等待的过程,占用 CPU 时间最长,CPU 利用率最低);

(2)中断方式(I/O 完成后向 CPU 发送中断请求信号,CPU 和 I/O 可以并行);

(3)直接主存存取DMA(CPU 只做初始化,不参与具体数据传输过程):指数据在主存与I/O设备间直接成块传送,不需要CPU干涉,只需要CPU做初始化,实际操作由DMA硬件直接执行完成。

(4)通道方式:引入通道的目的是数据传输独立于CPU。在设置通道后,CPU只需要向通道发出I/O命令,通道来执行命令,仅当通道在完成I/O指令后才向CPU发出中断信号。

3、磁盘调度

磁盘调度分为移臂调度和旋转调度,并且是先进行移臂调度,然后进行旋转调度。

(1)存取时间=寻道时间+等待时间

寻道时间是指磁头移动到磁道所需的时间;

等待时间为等待读写的扇区转到磁头下方所用的时间,有时还需要加上数据的传输时间。

(2)磁盘调度算法

【1】先来先服务 FCFS(谁先申请先服务谁);

【2】最短寻道时间优先 SSTF(申请时判断与磁头当前位置的距离,谁短先服务谁);

【3】扫描算法SCAN(电梯算法,双向扫描);

【4】循环扫描 CSCAN(单向扫描)

(移臂时只需要考虑柱面信息即可,扇区不需要考虑,同一柱面的多个扇区先后顺序随机)

(3)单缓冲区

在处理过程中,如果有关于缓冲区的使用,需要明白对于单缓冲区每次只能被一个进程使用,即向缓冲区传输数据的时候不能从缓冲区读取数据,反之亦然。

(4)优化存储

对于磁盘存储的优化是因为磁头始终保持转动状态,当读取数据在传输或处理时,磁头会移动到超前的位置,需要继续旋转才能回到逻辑下一磁盘块;优化存储就是调整磁盘块的位置,让逻辑下一磁盘块放到磁头将要开始读取该逻辑块的位置。

五、文件管理

1、绝对路径与相对路径(★★★)

(1)绝对路径从根目录开始写起,并且该文件的全名即为绝对路径+文件名。

(2)相对路径从当前位置下一级目录开始写起。

2、存储空间管理

【1】空闲区表

【2】位示图(★★)

       在外存上建立一张位示图,记录文件存储器的使用情况。每一bit位对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用。

       位示图按字进行分组,根据不同的计算机,具体一个字多长,一个字占多少bit位也不同;

【3】空闲块链

【4】成组链接法

3、索引文件结构(★★)
(1)基本概念

【1】直接索引:索引结点(线索)---->地址指向----->物理块号,结点编号的直接指向物理块,物理块里存储的是文件本身(文件的逻辑页,文件的数据),在直接索引中索引编号是连续的,对应物理块中的逻辑页也是连续的;

【2】一级间接索引:索引结点(线索)---->一级间接索引表----->物理块号,结点编号不直接指向物理块,而是指向一级间接索引表,由一级间接索引表编号指向物理块;

【3】二级间接索引:索引结点(线索)---->一级间接索引表----->二级间接索引表----->物理块号,结点编号不直接指向物理块,而是指向两次间接索引表,经过两次间接索引表编号最后指向物理块;

【4】三级间接索引:索引结点(线索)---->一级间接索引表----->二级间接索引表----->三级间接索引表----->物理块号,结点编号不直接指向物理块,而是指向三次间接索引表,经过三次间接索引表编号最后指向物理块;

       一般的索引文件结构由 13 个结点组成,其中 0 - 9 个结点为直接的物理盘块(直接索引),第 10 个结点是一级间接索引,第 11 个结点是二级间接索引,第 12 个结点是三级间接索引

(2)索引扩展原理

【1】如果一个存储结构不使用索引,那么他的容量= 物理块数 * 单位大小。

       例如,如果每个物理块的单位大小为 4K,则总空间为 52K,如下图所示。

【2】如果引入了一级间接索引,索引指向了具体的物理块号,如下图所示。

       如果一个地址占用 4 个字节一个物理盘块有 4KB 容量,那么在第 10 个物理块中就可以存放 1024 (=4KB/4B)份地址,那么 10 号物理块就可以存储 1024 份容量,就是 1024 X 4KB = 4MB 的容量。

【3】如果引入了二级间接索引,索引指向了中间索引,中间索引在指向具体的物理块号,如下图所示。

       如果一个地址占用 4 个字节一个物理盘块有 4KB 容量,那么在第 11 个物理块中就可以存放 1024 份地址,每份子地址可以再存储 1024 份二级地址,那么 11 号物理块就可以存储 1024 * 1024 份容量,就是 1024 X 1024 X 4KB = 4GB 的容量。

(3)解题思路

【例题】现有一个文件系统采用索引结点管理模式,物理块大小为 1KB。 每个索引结点有 32KB 的存储空间,每个地址项占 4 字节,磁盘索引块和磁盘数据块大小均为 1KB。 其中 0 - 4 用直接地址索引,5 - 6 用一级间接地址索引,7 用二级间接地址索引,逻辑块号为 5 和 261 的物理块号在哪里?

【解题思路】逻辑块号从 0 开始编码,物理块号从 1 开始编码,所以逻辑块号 5 就代表第六块。每个地址项占 4 字节,磁盘索引块大小均为 1KB,所以一个物理块可以存放 256 份地址。 第 5 个逻辑块号的物理块号位置如下所示。

第 261 个逻辑块号的物理块号位置如下所示。

1、索引结点对应的索引方式一般题干会给出,没有给出的默认按照如图所示方式理解,下面的文件大小依图给出计算过程。

2、根据物理块大小(假设 1KB)和地址项长度(假设 4B),可以计算地址项个数=物理块大小/地址项长度,向下取整(1KB/4B =256,注意单位和进制转换)。

3、直接索引(即索引结点直接指向实际存储文件的物理块),能够表示的逻辑页号范围是 0~9,能够表示的文件大小时 10*1KB。

4、一级间接索引(即索引结点指向的物理块存放的是地址项,对应地址项个数256 个,可以指向 256 个实际存储文件的物理块),能够表示的逻辑页号范围是10~265,能够表示的文件大小是 256*1KB。

5、二级间接索引(即索引结点指向的物理块存放的是间接索引的地址项,共 256个,可以指向 256 个存放地址项的物理块,每个物理块指向实际存储文件的地址项有256 个,最终指向的物理块共有 256*256 个),能够表示的逻辑页号范围是266~ 65801,能够表示的文件大小是 65536KB。

六、总 结

       笔记总结不易,如果喜欢,请关注、点赞、收藏。

完整笔记下载地址:(后续完成后更新)

基础精讲课件地址:(请关注、点赞、收藏后,私信我)

基础精讲视频地址:(请私信我)

目录
相关文章
|
4月前
|
存储 算法 安全
【第二章】软件设计师 之 操作系统基本原理
这篇文章是软件设计师备考资料的第二章,讲解了操作系统的基本原理,包括操作系统概述、进程状态转换、同步与互斥问题、PV操作、死锁问题与银行家算法、存储管理、文件系统和设备管理等关键知识点。
【第二章】软件设计师 之 操作系统基本原理
|
6月前
|
调度
操作系统的目标和功能笔记分享
【6月更文挑战第1天】操作系统的目标和功能笔记分享
79 1
|
5月前
|
存储 算法 Unix
软考中级之数据库系统工程师笔记总结(三)操作系统
软考中级之数据库系统工程师笔记总结(三)操作系统
46 0
|
7月前
|
调度
操作系统的目标和功能笔记分享
【5月更文挑战第3天】操作系统的目标和功能笔记分享
64 2
|
7月前
|
存储 算法 安全
【软件设计师】深入探究操作系统
【软件设计师】深入探究操作系统
【软件设计师】深入探究操作系统
|
7月前
|
存储 算法 Unix
【软件设计师—基础精讲笔记2】第二章 操作系统1
【软件设计师—基础精讲笔记2】第二章 操作系统
109 1
|
1月前
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
60 0
Vanilla OS:下一代安全 Linux 发行版
|
1月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
67 4
|
1月前
|
人工智能 安全 Linux
|
2月前
|
Unix 物联网 大数据
操作系统的演化与比较:从Unix到Linux
本文将探讨操作系统的历史发展,重点关注Unix和Linux两个主要的操作系统分支。通过分析它们的起源、设计哲学、技术特点以及在现代计算中的影响,我们可以更好地理解操作系统在计算机科学中的核心地位及其未来发展趋势。