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

温馨提示:

        完整笔记已设置成专栏,欢迎各位点击右上角“订阅专栏”,收藏完整笔记。

目录

一、操作系统概述

二、进程管理

三、存储管理

四、设备管理

五、文件管理

六、总 结


一、操作系统概述

1、基本概念

        操作系统两个作用:第一,通过资源管理提高计算机系统的效率;第二,改善人机界面向用户提供友好的工作环境。系统软件分层:

特点及功能:P181

        4个特征:并发性、共享性、虚拟性、不确定性

        5个功能:处理机管理(进程管理)、文件管理、存储管理、设备管理、作业管理

2、操作系统分类
分类特点
批处理操作系统单道批:一次一个作业入内存,作业由程序、数据、作业说明书组成多道批:一次多个作业入内存,特点:多道、宏观上并行微观上串行
分时操作系统采用时间片轮转的方式为多个用户提供服务,每个用户感觉独占系统特点:多路性、独立性、交互性和及时性
实时操作系统实时控制系统和实时信息系统交互能力要求不高,可靠性要求高(规定时间内响应并处理)
网络操作系统方便有效共享网络资源,提供服务软件和有关协议的集合主要的网络操作系统有: Unix、 Linux 和 Windows Server 系统
分布式操作系统任意两台计算机可以通过通信交换信息是网络操作系统的更高级形式,具有透明性、可靠性和高性能等特性
微机操作系统Windows: Microsoft 开发的图形用户界面、多任务、多线程操作系统Linux:免费使用和自由传播的类 Unix 操作系统,多用户、多任务、多线程和多 CPU 的操作系统
嵌入式操作系统运行在智能芯片环境中特点:微型化、可定制(针对硬件变化配置)、实时性、可靠性、易移植性(HAL 和 BSP 支持)

嵌入式操作系统 -- 特点

微型化。从性能和成本角度考虑,希望占用资源和系统代码量少,如内存少、 字长短、运行速度有限、能源少(用微小型电池)。

可定制。从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用需要。

实时性。嵌入式操作系统主要应用于过程控制、数据采集、传输通信、多媒体信息及关键要害领域需要迅速响应的场合,所以对实时性要求高。

可靠性。系统构件、模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和防故障措施。

易移植性。为了提高系统的易移植性,通常采用硬件抽象层 (HAL) 和板级支持包 (BSP) 的底层设计技术。

二、进程管理

1、基本概念

        程序:是指令和数据的有序集合,是存放在磁盘文件中的可执行文件,是一个静态的概念。

        进程:是程序的一次执行过程,是一个动态的概念。由程序、数据和进程控制块PCB组成。

        前趋图:在前趋图中,前趋活动完成后通知所有后继活动;后继活动开始之前要检查是否前趋活动已经全部完成。

2、进程状态
(1)三态模型

运行态:进程占有处理器正在运行的状态。进程已获得CPU,其程序正在执行。

就绪态:当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行,进程这时的状态称为就绪状态。

等待态:一个进程正在等待某一事件发生而暂时停止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。

        【总结:运行:处在CPU中;就绪:仅需cpu资源;等待:还需其他资源。】

(2)五态模型

(3)线程共享内容

3、进程间通信
(1)同步与互斥

        同步:是合作进程间的直接制约问题。各进程速度有差异,在一定情况下需等待,是进程间的协作关系。

        互斥:是申请临界资源进程间间接制约问题。是各进程对同类资源的竞争关系。

        临界资源:诸进程间需要互斥方式对其进行共享的资源,如打印机、 磁带机等。

        临界区:每个进程中访问临界资源的那段代码称为临界区。【4个原则:有空即进、无空则等、有限等待、让权等待】P190

        信号量:是一种特殊的变量,表示资源数。当信号量小于 0 时,还可以表示排队进程数。

(2)信号量(★★★★)

        信号量分为两类:

【1】公用信号量:实现进程间互斥,初值为1或资源的数量

【2】私用信号量:实现进程间同步,初值为0或某个正整数

信号量S的物理意义:

        S>=0 表示某资源的可用数量

        S<0 其绝对值表示阻塞队列中等待该资源的进程数量

(3)PV操作(★★★★)

        PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),针对信号量进行相应的操作。

        P(S): ①将信号量S的值减1,即S=S-1; ②如果S<0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。

        V(S): ①将信号量S的值加1,即S=S+1; ②如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。

        P操作表示申请一个资源,V操作表示释放一个资源。

【解题技巧】

        前趋图与 PV 操作结合,根据前趋图箭线标注信号量,再根据进程图填空。

        针对箭线标注信号量:

                箭线的起点位置是V操作(即前趋活动完成后以V操作通知后继活动);

                箭线的终点位置是P操作(即后继活动开始前以P操作检查前趋活动是否完成)。

4、进程调度
【1】基本概念

        进程调度是指当有更高优先级的进程到来时如何分配CPU。

        调度方式分为2种:可剥夺、不可剥夺。P195

【2】调度算法

        1、先来先服务

        2、时间片轮转

        3、优先级调度

        4、多级反馈调度

5、死锁

        所谓死锁,是指两个以上的进程互相都需要对方已经占有的资源,导致无法继续运行下去的现象。

1、进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。

        如果一个进程在等待一件不可能发生的事,则进程就死锁了。而如果一个或多个进程产生死锁,就会造成系统死锁。

2、根据题干给出的进程和资源分配,判断形成死锁的最小资源数或其他参数:对于这种情况,分配资源时每个进程得到可以完成进程的资源数减一,此时是形成死锁的最差情况,在此情况下多 1 个资源即可解决死锁问题,即不可能形成死锁。假设 m个进程各自需要 w 个 R 资源,系统中共有 n 个 R 资源,此时不可能形成死锁的条件是:m*(w-1)+1<=n。

3、避免死锁>>>银行家算法:当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程。进程可以分期请求资源,但请求的总数不能超过最大需求量。当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源。根据银行家算法判断相关进程序列是否会形成死锁,是则为不安全序列。

三、存储管理

1、基本概念

        物理地址:给内存的存储地址进行编址,可以理解成为内存中的某个存储单元编号。

        虚拟地址:又称逻辑地址,是从0号单元开始编址并顺序分配所有对应地址单元的。

        地址重定位:将逻辑地址转变成内存物理地址的过程

2、分页存储管理
(1)分页原理

        页:将一个进程的地址空间划分为若干个大小相等的区域。

        块:将内存空间划分成与页相同大小的若干个物理块。

        在为进程分配主存时,将进程若干页分别装入到多个不相邻的块中。

(2)地址结构

        分页系统地址结构由两部分组成:页号+偏移量。如图中地址长度为32位,其中0~11位是页内地址(每页大小4kb),12~31位是页号,允许地址空间大小最多为1Mb个页。

(3)页表

        当进程多个页面离散地分配到主存的多个物理块时,系统应能保证在主存中找到进程要访问的页面所对应的物理块。为此,系统为每个进程建立了一张页表。页表中的一条记录代表某个页在主存中对应的物理块号。

3、分段存储管理
(1)基本原理

        在分段存储管理方式中,作业地址空间被划分为若干个段,每个段是一组完整的逻辑信息,每个段都有自己的名字,都是从0开始编址的一段连续的地址空间,各段长度不相等。

(2)地址结构

        分段系统地址结构有2部分:段号+段内地址。如图为长度32位的地址结构,允许一个作业最多有64kb个段,每个段最大长度为64kb。

(3)段表

        分段式存储系统会为每个段分配一个连续的分区,进程中的各个段可以离散地分配到主存的不同分区中。为此,系统会为每个进程建立一张段表。段表中记录了某段的长度及该段在主存中的起始地址。

4、段页存储管理
(1)基本原理

        先将整个主存划分成大小相等的块,将用户程序划分为若干段,再将每个段划分成若干页,以块为单位离散分配。

        系统要同时配置段表和页表。

(2)地址结构

        段页式管理的地址结构:

(3)变换过程

        在段页式系统中,逻辑地址>>>>>>物理地址变换过程:

【1】根据段号s查段表,得到页表的起始地址

【2】根据页号p查页表,得到物理块号b

【3】将物理块号b+页内地址w,得到物理地址

5、虚拟存储管理
(1)程序局部性原理

        在一段时间内,程序的执行仅局限于某个部分,相应地,它所访问的存储空间也局限于某个区域。

【1】时间局限性:指如果程序中的某条指令一旦执行,则不久的将来该指令可能再次被执行;如果某个存储单元被访问,则不久以后该存储单元可能再次被访问。其原因是在程序中存在着大量循环操作

【2】空间局限性:一旦程序访问了某个存储单元,则不久的将来,其附近的存储单元也最有可能被访问。其原因为程序是顺序执行的。

(2)虚拟存储器的实现

        【1】请求分页系统

        【2】请求分段系统

        【3】请求段页式系统

(3)请求分页管理

        请求分页是在纯分页系统基础上增加了请求调页功能、页面置换功能所形成的页式虚拟存储系统。它是目前常用的一种虚拟存储器方式。

        请求分页系统,每当所要访问的页面不在主存时,便会产生一个缺页终端,请求OS将所缺页调入主存。

(4)页面置换算法

        在进程运行时,如果发生缺页,而此时主存中又没有空闲块时,未来保证进程能正常运行,必须从主存中调出一页程序或数据送磁盘的对换区。但究竟将那个页面调出,需要一定的页面置换算法。

【1】最有算法OPT(理想型)

【2】随机算法 RAND(随机性)

【3】先进先出 FIFO(可能产生“抖动”):“抖动”>>>>>>刚被置换出去的页很快又被访问,需重新调入。

【4】最近最少使用 LRU(依据局部性原理):最常用

【解题技巧】

页面淘汰时,主要依据原则(考试中默认按照此原则进行淘汰):

        首先,淘汰最近未被访问的(访问位为 0),

        其次,淘汰被访问但未被修改的(即修改位为 0,因为修改后的页面淘汰时代价更大)。

6、解题总结

(1)知道页面大小时,可以依此判断页内地址的长度,并据此知道该地址的页号;

(2)页号与页帧号的转换可以通过查表进行;

(3)段地址的格式,段号后跟段内地址不能超过段长;

(4)页式存储:将程序与内存均划分为同样大小的块,以页为单位将程序调入内存。

(5)段式存储:按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度可以不一样。

(6)段页式存储:段式与页式的综合体。先分段,再分页。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。

六、总 结

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

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

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

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

  • 20
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ai安歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值