1739c3a5da1cf53d4848b1e5df562f1c.png

1. 操作系统概述

1.1. 概述

操作系统是计算机系统中最重要、最基本的系统软件,它位于硬件和用户之间,一方面能向用户提供接口,方便用户使用计算机;另一方面能管理计算机软硬件资源,以便合理充分地利用它们。

从资源管理的角度来看,它是计算机系统中的资源管理器,负责对系统的软硬件资源实施有效的控制和管理,提高系统资源的利用率;从方便用户使用的角度来看,操作系统是一台虚拟机,它是计算机硬件的首次扩充,隐藏了硬件操作细节,使用户与硬件细节隔离,从而方便了用户的使用。

操作系统的作用可概括如下:

  • 管理系统的硬件、软件、数据资源
  • 控制程序运行
  • 人机之间的接口
  • 应用软件与硬件之间的接口

1.2. 操作系统的类型

一般来说,操作系统的类型可分为如下几种:

  • 单用户操作系统
  • 批处理系统(作业处理系统)
  • 分时操作系统
  • 网络操作系统
  • 分布式操作系统
  • 嵌入式操作系统

1.3. 操作系统的结构

从操作系统的结构来看,主要分为以下几种:

  • 整体结构
  • 层次结构
  • 客户/服务器结构
  • 面向对象结构

2. 进程管理

进程是一个具有独立功能的程序关于数据集合的一次可以并发执行的运行活动,是系统进行资源分配和调度的基本单位。相对于程序,进程是动态的概念,而程序是静态的概念,是指令的集合。进程具有动态胜和并发胜,需要一定的资源(例如,CPU寸间、内存、文件和I/O设备等)来完成其任务,这些资源在创建进程或执行时分配。

2.1. 进程的状态

一个进程从创建而产生至撤销而消亡的整个生命期间,有时占有处理器执行,有时虽可运行但分不到处理器,有时虽有空闲处理器但因等待某个事件的发生而无法执行,这一切都说明进程和程序不相同它是活动的且有状态变化的。

2.1.1. 三态模型

进程具有三种最基本的状态,分别是运行、就绪和阻塞,如下图所示。

2e2a8ce40fb2e97b78904c029fcc0555.png
三态模型

(1)运行状态。运行状态是进程占用处理机正在执行其程序的状态。在单处理机系统中,某个时刻只能有一个进程处于运行状态;在多处理机系统中,可能有多个进程同时处于运行状态。

(2)阻塞状态。阻塞状态也称为等待状态或睡眠状态,是进程由于等待某个事件的发生而处于暂停执行的状态。例如,进程因等待I/O的完成或等待缓冲空间等。

(3)就绪状态。就绪状态是进程已分配到除处理机以外的所有必要资源,具备了执行的条件,等待处理机调度的状态。在系统中,同一时刻可能会有多个进程处于就绪状态,排成就绪队列。

2.1.2. 五态模型

由于进程的不断创建,系统资源特别是内存资源已不能满足所有进程运行的要求。这时就必须将某些进程挂起,放到磁盘对换区,暂时不参加调度,以均衡负载。进程挂起的原因可能是系统出现故障,或者是用户调试程序,也可能是需要检查问题。下图是具有挂起状态的进程状态及其转换。

dec637a6e68e7b231ed5e06ac19663ad.png
五态模型

活跃就绪是指进程在内存并且可被调度的状态。静止就绪是指进程被对换到外存时的就绪状态,是不能被直接调度的状态,只有当内存中没有活跃就绪态进程,或者挂起就绪态进程具有更高的优先级,系统才将把挂起就绪态进程调回内存,并转换为活跃就绪。

活跃阻塞状态是指进程已在内存,一旦所等待的事件发生,便进入活跃就绪状态;静止阻塞状态是指进程对换到外存时的阻塞状态,一旦所等待的事件发生,便进入静止就绪状态。

2.2. 信号量与PV操作

2.2.1. 概念

(1)信号量

信号量是一个二元组(S,Q),其中S是一个整形变量,初值为非负数,Q为一个初始状态为空的等待队列。在多道程序系统中,信号量机制是一种有效的实现进程同步与互斥的工具。信号量的值通常表示系统中某类资源的数目,若它大于0,则表示系统中当前可用资源的数量;若它小于0,则表示系统中等待使用该资源的进程数目,即在该信号量队列上排队的PCB的个数。信号量的值是可变的,由PV操作来改变。

(2)PV操作

PV操作是对信号量进行处理的操作过程,而且信号量只能由PV操作来改变。P操作是对信号量减1,意味着请求系统分配一个单位资源,若系统无可用资源,则进程变为阻塞状态;V操作是对信号量加1,意味着释放一个单位资源,加1后若信号量小于等于0,则从就绪队列中唤醒一个进程,执行V操作的进程继续执行。

(3)同步与互斥

互斥:如千军万马过独木桥,同类资源的竞争关系。

同步:速度有差异,在一定情况停下等待,进程间的协作关系。

2.2.2. PV操作

  • 临界资源:诸进程间需要互斥方式对其进行共享的资源,如打印机、磁带机等。
  • 临界区:每个进程中访问临界资源的那段代码称为临界区
  • 信号量:是一种特殊的变量

注:P是荷兰语的Passeren,V是荷兰语的Verhoogo。

P操作和V操作示意图如下所示:

0cbb2d359b65c4d0373625c0b48c7ef5.png

未使用和使用了PV操作的区别如下:

83b44972c33fade6f245d1268874ea47.png

例题:

fafb8cd3239bc7bfba90d3ef1380fd0c.png

答案为D、A、C。具体计算过程如下:

f3e4f0e49a16c17df33c605e4d546fd6.png

2.2.3. 死锁问题

进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。如果一个进程在等待一件不可能发生的事,则进程就死锁了。而如果一个或多个进程产生死锁,就会造成系统死锁。

产生死锁的4个必要条件:

(1)互斥条件。任一时刻只允许一个进程使用资源。

(2)不剥夺条件。进程已经占用的资源,不会被强制剥夺。

(3)请求与保持条件。进程在请求其余资源时,不主动释放已经占有的资源。

(4)环路条件。环路中每一条边是进程在请求另一个进程已经占有的资源。

关于死锁的预防和死锁的避免如下图所示:

9003a943fb23b86e025f3786a50ad7cb.png

例题:

19b9cfd4b4149e402a0619a64100779f.png

答案:B。不可能产生死锁的条件:

2.2.4. 银行家算法

银行家算法:分配资源的原则

  • 当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程。
  • 进程可以分期请求资源,但请求的总数不能超过最大需求量。
  • 当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源。

银行家算法例题:

fc979627820d81f43d2812848694133a.png

答案:B。解答过程如下:

d267c5beb0f94168770c7ab09e1b0442.png

321e2dc5e97524c4c8a51b588876b72b.png

3. 存储管理

3.1. 页式存储组织

页式存储:将程序与内存均划分为同样大小的块,以页为单位将程序调入内存。如下图所示:

26e31c579a95719d8744a95baa733245.png
  • 优点:利用率高,碎片小,分配及管理简单。
  • 缺点:增加了系统开销;可能产生抖动现象。

相关位含义如下图所示:

22361bec56e783b537cc7dcb39aa90be.png

3.2. 段式存储组织

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

804e3c41072c4302a3ca7f600686df60.png
  • 优点:多道程序共享内存。各段程序修改互不影响。
  • 缺点:内存利用率低,内存碎片浪费大。

3.3. 段页式存储组织

段页式存储:段式与页式的综合体。先分段,再分页。1个程序有若干个段,每个段中可以有若干页,每个页的大小相同,但每个段的大小不同。如下图所示:

681f94bf66f7d2fd7735e4fb723a071e.png
  • 优点:空间浪费小、存储共享容易、存储保护容易、能动态连接。
  • 缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降。

3.4. 快表

快表是一块小容量的相联存储器(Associative Memory),由高速缓存器组成,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号。

快表:将页表存于Cache上;慢表:将页表存于内存上。

3.5. 页面置换算法

页面的置换算法有以下几种:

  • 最优(Optimal,OPT)算法
  • 随机(RAND)算法
  • 先进先出(FIFO)算法:有可能产生“抖动”。例如,432143543215序列,用3个页面,比4个缺页要少
  • 最近最少使用(LRU)算法:不会“抖动”,LRU的理论依据是“局部性原理”。
  • LFU(Least Frequently Used)算法根据数据的历史访问频率来淘汰数据,其核心思想是“如果数据过去被访问多次,那么将来被访问的频率也更高”。LFU的每个数据块都有一个引用计数,所有数据块按照引用计数排序,具有相同引用计数的数据块则按照时间排序。

时间局部性:刚被访问的内容,立即又被访问。

空间局部性:刚被访问的内容,临近的空间很快被访问。

4. 文件管理

4.1. 索引文件结构

索引文件结构如下图所示。

6c03607042c86a5cf4b816dc209521d3.png

4.2. 文件和树型目录结构

文件属性:

  • R只读文件属性
  • A存档属性
  • S系统文件
  • H隐藏文件

文件名的组成

  • 驱动器号
  • 路径
  • 主文件名
  • 扩展名

b2aea68f718d0757de6bca21aebc06f1.png
  • 绝对路径:是从盘符开始的路径。
  • 相对路径:是从当前路径开始的路径。

*若当前目前为:D1,要求F2路径,则绝对路径:/D1/W2/F2。相对路径:W2/F2。

4.3. 空闲存储空间的管理

  • 空闲区表法(空闲文件目录)
  • 空闲链表法
  • 位示图法
  • 成组链接法

5. 设备管理

5.1. 数据传输控制方式

数据传输控制方式及效率如下图所示:

7ea785546ffa8464f7649f6095e623d7.png

5.2. 虚设备与SPOOLING技术

SPOOLING技术的应用场景和相应概念:SPOOLING是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。 SPOOLing技术通过磁盘实现。

 SPOOLING技术的过程如下图所示:

267b7bca7a99ed9406337ecc43108b8d.png

6. 微内核操作系统

微内核由一群尽可能将数量最小化的软件程序组成,它们负责提供实现一个操作系统所需要的各种机制与功能,微内核操作系统就是一种基于微内核架构的操作系统。

c36d98415712b9e87942d84d366ec7e9.png

7. 嵌入式操作系统

嵌入式操作系统(Embedded Operating System,简称:EOS)是指用于嵌入式系统的操作系统。嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。

(1)嵌入式操作系统特点:

  • 微型化
  • 代码质量高
  • 专业化
  • 实时性强
  • 可裁减、可配置

(2)实时嵌入式操作系统的内核服务有:异常和中断、计时器、I/O管理。

(3)常见的嵌入式RTOS(实时操作系统)VxWorks、RT-Linux、QNX和 pSOS。

VxWorks和RT-Linux的对比如下表所示:

01531a571118ada717716a551ad7ff75.png
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐