考研操作系统操作系统引论

Posted MangataTS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了考研操作系统操作系统引论相关的知识,希望对你有一定的参考价值。

考研操作系统(一)操作系统引论

文章目录

一、基本概念

1.1 什么是操作系统

操作系统 (Operating System, OS)是指控制和管理整个计算机系统的硬件与软 件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。 操作系统是计算机系统中最基本的系统软件。

简单来说就是一个向下管理资源、向上服务软件的一个系统

1.2 操作系统的特征

操作系统的基本特征大体分为四种,并发、共享、虚拟、异步

1.2.1 并发

并发是指两个或多个事件在 同一时间间隔内 发生。操作系统的并发性是指计算机系统中同川才 存在多个运行的程序,因此它具有处理和调度多个程序同时执行的能力。

这里需要和并行区别开来, 并行指的是在同一时刻同时运行

举个简单的例子来认识并发和并行,例如

如果你在 9 : 00 − 9 : 10 9:00-9:10 9:009:10 仅吃面包,在 9 : 10 − 9 : 20 9 :10 - 9:20 9:109:20 仅写字,在 9 : 20 − 9 : 30 9:20-9:30 9:209:30 仅吃而包,在 9 : 30 一 10 : 00 9: 30一10:00 9:3010:00 仅写字,那么在 9 : 00 一 10 : 00 9 :00一10:00 9:0010:00 吃面包和写字这两种行为就是并发执行的;再如 ,如果你在 9 : 00 一 10 : 00 9:00一10:00 9:0010:00 右手写字,左手 同时 拿着面包吃,那么这两个动作就是并行执行的。

1.2.2 共享

资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。共享方式可分为 互斥资源共享同时访问资源共享

1.2.2.1 互斥资源共享方式

互斥资源共享的文件又称 独占资源 或者 临界资源 ,指的是在一段时间内只允许一个进程访问该资源,例如打印机、磁带机虽然可以被多个进程所调用,但是在一段时间内,只允许一个进程进行操作

1.2.2.2 同时访问资源共享方式

系统中还有另一类资源,这类资源允许在一段时间内由多个进程“同时”访问。这里所说的“同时”通常是宏观上的,而在微观上,这些进程 可能是交替地 对该资源进行访问即 “分时共享” 的 。 可供多个进程“同时”的问的典型资源是磁盘设备, 一些用重入码编写的文件也可被“同时” 共享,允许若干个用户同时访问该文件

并发和共享是操作系统两个最基本的特征,两者之间互为存在的条件:

  • ①资源共享是以程序的并发为条件的 , 若系统不允许程序井发执行,则自然不存在资源共享问题
  • ②若系统不能对资源共享实施有效的管理,则必将影响到程序的并发执行,甚至根本无法井发执行。

1.2.3 虚拟

虚拟是指把一个物理上的实体变为若干逻辑上的对应物。物理实体(前者〉是实的,即实际存在的;而后者是虚的,是用户感觉上的事物。用于实现虚拟的技术,称为虚拟技术。操作系统中利用了多种虚拟技术来实现虚拟处理器、虚拟内存和虚拟外部设备等。

例如,虚拟处理器技术,采用多道程序并发执行的方法,来分时使用一个CPU,虽然只有一个CPU但是能为多个用户进行服务,让用户感觉到有一个专门的CPU在为自己服务,这就是虚拟处理器技术,利用多道程序设计技术,将一个物理CPU虚拟化为多个虚拟CPU

1.2.4 异步

多道程序环境允许多个程序井发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进,这就是进程的异步性

Ps:通过后面的中断操作,可能更好理解异步

1.3 操作系统的目标和功能

操作系统的目的是提升对资源管理的效率,更好的服务上层软件应用等,为了给多道程序提供良好的运行环境,操作系统应具有以下几方面的功能:处理机管理存储器管理设备管理文件管理。为了方便用户使用操作系统,还必须向用户提供接口 。 同时,操作系统可用来扩充机器,以提供更方便的服务、更高的资源利用率

我们用一个直观的例子来理解这种情况。 例如,用户是雇主,操作系统是工人(用来操作机器〉, 计算机是机器(由处理机、存储器、设备、文件几个部件构成〉,工人有熟练的技能,能够控制和协调各个部件的工作,这就是操作系统对资源的管理;同时,工人必须接收雇主的命令,这就是“接口”; 有了工人,机器就能发挥更大的作用,因此工人就成了“扩充机器”。

1.3.1 系统资源的管理者

1.3.1.1 处理机管理

在多道程序环境下,处理机的分配和运行都以进程(或线程〉为基本单位,进程管理的主要功能包括进程控制、进程同步、进程通信、 死锁处理、处理机调度等

1.3.1.2 存储器管理

主要包括内存分配与回收、地址映射、内存保护与共享和内存扩充等功能

1.3.1.3 文件管理

文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护等

1.3.1.4 设备管理

设备管理的主要任务是完成用户的 I / 0 I/0 I/0 请求,方便用户使用各种设备,并提高设备的利用率,主要包括缓冲管理、设备分配、设备处理和虚拟设备等功能

1.3.2 用户与计算机硬件系统之间的接口

为了方便用户操作系统硬件并运行程序,操作系统提供了相应的接口,主要分为两类:命令类接口、程序接口

1.3.2.1 命令接口

命令接口又分为:联机命令接口脱机命令接口

  • 联机命令接口

又称为 交互式命令接口 ,适用于时分或者实时系统的接口,用户通过控制台或终端输入操作命令,向系统提出各种服务要求(例如windows或者Linux的终端),每当我们在终端输入这些指令,那么通过命令解释器系统就会将我们的命令执行

  • 脱机命令接口

又称为 批处理命令接口 ,适用于批处理系统,这个就好比我们平时写的一些脚本程序,它是由一些控制命令组成,用户不能直接干预,只能通过命令执行完成后查看情况。

1.3.2.2 程序接口

程序接口由一组 系统调用 (也称 广义指令 )组成。 用户通过在程序中使用这些系统调用来请求操作系统为其提供服务,如使用各种外部设备、申请分配和回收内存及其他各种要求

1.3.3 操作系统用作扩充机器

操作系统所提供的资源管理功能和方便用户的各种服务功能,将棵机改造成功能更强、使用更方便的机器,我们将 覆盖了软件的机器 称为扩充机器,或者虚拟机

二、发展过程

2.1 手工操作阶段

手工操作阶段有两个突出的缺点:

  • 用户独占全机,不会出现因资源已被其他用户占用而等待的现象,但资源利用率低
  • C P U CPU CPU 等待手工操作, C P U CPU CPU 的利用不充分

2.2 批处理阶段

2.2.1 单道批处理系统

系统对作业的处理是成批进行的,但内存中始终保持一道作业。单道批处理系统是在解快人机矛盾及 C P U CPU CPU I / 0 I/0 I/0 设备速率不匹配的矛盾中形成的,其主要特征如下:

  • 自动性。在顺利的情况下,磁带上的一批作业能自动地逐个运行,而无须人工干预。
  • 顺序性 。 磁带上的各道作业顺序地进入内存,先进入的作业先完成
  • 单道性 。 内存中仅有一道程序运行

由于单道的这种特性,每次主机内存中仅存放一道作业,每当它在运行期间发出输入/输出请求后 , 高速的 C P U CPU CPU 便处于等待低速的 I / 0 I/0 I/0 完成状态。这样就大量浪费了 C P U CPU CPU 的时间

2.2.2 多道批处理系统

多道程序设计技术允许多个程序同时进入内存并允许它们在 C P U CPU CPU 中交替地运行,这些程序共享系统中的各种 硬/软件 资源。当一道程序因 I / 0 I/0 I/0 请求而暂停运行时, C P U CPU CPU 便立即转去运行另一道程序。这样让 C P U CPU CPU 尽可能的忙起来,就能使得效率有很大的提升,其主要特征如下:

  • 多道。 计算机内存中同时存放多道相互独立的程序
  • 宏观上并行。 同时进入系统的多道程序都处于运行过程中,即它们先后开始各自的运行,但都未运行完毕。
  • 微观上串行。 内存中的多道程序轮流占有 CPU,交替执行

其优缺点也很显然:

  • 优点:资源利用率高,多道程序共享计算机资源,从而使各种资源得到充分利用;系统吞吐量大, CPU 和其他资源保持“忙碌”状态 。

  • 缺点:用户响应的时间较快; 不提供人机交互能力

故多道批处理是实现作业自动控制而无须人工干预的系统

2.3 分时操作系统阶段

所谓分时技术,是指把处理器的运行时间分成很短的 时间片 ,按时间片轮流把处理器分配给各联机作业使用 。 若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时停止运行, 把处理器让给其他作业使用, 等待下一轮再继续运行。 由于计算机速度很快,作业运行轮转得也很快,因此给每个用户的感觉就像是自己独占一台计算机,因此这种系统很适合进行人机交互,那么就能得到如下特征:

  • 同时性。同时性也称多路性,指允许多个终端用户同时使用一台计算机
  • 交互性。用户能够方便地与系统进行人机对话,即用户通过终端采用人机对话的方式直接控制程序运行,与同程序进行交互。
  • 独立性。系统中多个用户可以彼此独立地进行操作,互不干扰,单个用户感觉不到别人 也在使用这台计算机,好像只有自己单独使用这台计算机一样
  • 及时性。用户请求自旨在很短时间内获得响应。分时系统采用时间片轮转方式使一台计算机同时为多个终端服务,使用户能够对系统的及时响应感到满意。

2.4 实时操作系统

为了能在某个时间限制内完成某些紧急任务而不需要时间片排队,诞生了实时操作系统。 这里的时间限制可以分为两种情况:

  • 若某个动作必须绝对地在规定的时刻(或规定的时间范围)发生,则称为 硬实时系统 ,如飞行器的飞行自动控制系统,这类系统必须提供绝对保证,让某个特定的动作在规定的时间内完成。
  • 若能够接受偶尔违反时间规定且不会引起任何永久性的损害, 则称为软实时系统,如飞机订票系统、银行管理系统。

在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并在严格的时限内处理完接收的事件。 实时操作系统的主要特点是及时性可靠性

2.5 微机操作系统

微机操作系统又称个人操作系统,是目前使用最广泛的操作系统,它广泛应用于文字处理、电子表格、游戏中,常见的有 WindowsLinuxMacintosh 等。

2.6 分布式系统

分布式计算机系统是由多台计算机组成并满足下列条件的系统:

  • 系统中任意两台计算机通 过通信方式交换信息
  • 系统中的每台计算机都具有同等的地位,即没有主机也没有从机
  • 每台计算机上的资源为所有用户共享
  • 系统中的任意台计算机都可以构成一个子系统,并且还能重构

任何工作都可以分布在几台计算机上,由它们并行工作协同完成。用于管理分布式计算 机系统的操作系统称为分布式计算机系统

该系统的主要特点是:分布性并行性。分布式操作系统与网络操作系统的本质不同是,分布式操作系统中的若干计算机相互协同完成同一任务。

2.7 嵌入式系统

嵌入式系统一般是一些小型定制化的系统,更加符合具体的应用的系统,例如路由器,给他内置一个Linux或者Windows显然是不显示的,因为内存等一些固件配置没有那么高,那么就需要嵌入式系统进行特定的定制。

三、主要功能

在上面基本概念,简单提了一下处理机管理功能、存储器管理功能、设备管理功能、文件管理功能,这里详细谈一下

3.1 处理机管理功能

3.1.1 进程控制

在多道程序环境下为使作业能并发执行,必须为每道作业创建一个或几个进程,并为之分配必要的资源。因此,进程控制的主要功能也就是为作业创建进程、终止已结束进程,以及控制进程在运行中的状态转换

3.1.2 进程同步

为使多个进程能有条不紊地运行,系统中必须设置相应的进程同步机制。该机制的主要任务是为多个进程(含线程)的运行进行协调。常用的协调方式有两种:

  • ①进程互斥方式,这是指诸进程在对临界资源进行访问时,应采用互斥方式
  • ②进程同步方式,指在相互合作去完成共同任务的诸进程间,由同步机构对它们的执行次序加以协调。最简单的用于实现进程互斥的机制是为每一一个临 界资源配置一把锁 W W W ,当锁打开时,进程可以对该临界资源进行访问;而当锁关上时,则禁止进程访问该临界资源。而实现进程同步时,最常用的机制是信号量机制。

3.1.3 进程间通信

进程间通信一般发生在一些合作的进程之间,例如某一个进程获取数据,另一个进程对数据进行处理,那么这个数据传递的过程就是进程间通信

3.1.4 调度

在传统OS中,调度包括作业调度和进程调度两步

  • (1)作业调度。作业调度的基本任务是从后备队列中按照–定的算法选择出若干个作业,为它们分配运行所需的资源,在将这些作业调入内存后,分别为它们建立进程,使它们都成为可能获得处理机的就绪进程,并将它们插入就绪队列中。

  • (2)进程调度。进程调度的任务是从进程的就绪队列中按照一定的算法选出一个进程,将处理机分配给它,并为它设置运行现场,使其投入执行。

3.2 存储器管理功能

3.2.1 内存分配

内存分配主要做这几项:

  • (1)为每道程序分配内存空间,使它们“各得其所”。

  • (2)提高存储器的利用率,尽量减少不可用的内存空间(碎片)。

  • (3)允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。

OS在实现内存分配时,可采取静态和动态两种方式:

(1)静态分配方式。每个作业的内存空间是在作业装入时确定的,在作业装入后的整个运行期间不允许该作业再申请新的内存空间,也不允许作业在内存中“移动”。

(2)动态分配方式。每个作业所要求的基本内存空间虽然也是在装入时确定的,但允许作业在运行过程中继续申请新的附加内存空间,以适应程序和数据的动态增长,也允许作业在内存中“移动”。

3.2.2 内存保护

内存保护主要做两件事:

  • ①确保每道用户程序都仅在自己的内存空间内运行,彼此互不干扰
  • ②绝不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其它用户程序中去执行

3.2.3 地址映射

在多道程序环境下,每一个程序经过编译和连接后所形成的可装入程序地址都是从 0 0 0 开始的,但不可能每一个程序都从物理 0 0 0 地址开始装入内存,于是为了保证程序正常运行,存储器管理就需要为程序提供地址映射的功能

例如:假设真实的物理地址是 200 200 200 此时我们将其映射为 0 0 0 地址,那么 201 201 201 的物理地址就是逻辑的 1 1 1 地址,这样就解决了程序装载问题,当然注意的是这个功能是在 硬件的支持 下完成的。

3.2.4 内存扩充

借助虚拟存储技术,从逻辑上扩充容量,而非物理扩充容量,这样让用户感觉到使用的内存容量比实际容量大了很多

3.3 设备管理功能

3.3.1 缓冲管理

如果在 I / O I/O I/O 设备和 C P U CPU CPU 之间引入缓冲,则可有效地缓和 C P U CPU CPU I / O I/O I/O 设备速度不匹配的矛盾,提高 C P U CPU CPU 的利用率,进而提高系统吞吐量。

最常见的缓冲区机制有:

  • 单缓冲机制
  • 能实现双向同时传送数据的双缓冲机制
  • 能供多个设备同时使用的公用缓冲池机制

3.3.2 设备分配

设备分配的基本任务是根据用户进程的 I / O I/O I/O 请求、系统现有资源情况以及按照某种设备分配策略,为之分配其所需的设备。为了实现设备分配。系统中应当设置:设备控制表、控制器控制表等数据结构,用于记录设备以及控制器等标识符和状态,在设备使用完成后系统应当立即回收

3.3.3 设备处理

设备处理程序又称为设备驱动程序,其任务主要是用于实现 C P U CPU CPU 和设备控制器之间的通信,即由 C P U CPU CPU 向设备控制器发出 I / O I/O I/O 命令,并要求其完成指定的操作,同时 C P U CPU CPU 还能接收控制器发来的中断请求,并作出反应

通常来说设备处理的流程如下:

  • 首先检查 I / O I/O I/O 请求的合法性,了解设备状态是否是空闲的,读取有关的传递参数及设置设备的工作方式

  • 然后向设备控制器发出 I / O I/O I/O 命令,启动 I / O I/O I/O 设备完成指定的 I / O I/O I/O 操作。

此外设备驱动程序还应能及时响应由控制器发来的中断请求,并根据该中断请求的类型,调用相应的中断处理程序进行处理对于设置了通道的计算机系统,设备处理程序还应能根据用户的 I / O I/O I/O 请求自动地构成通道程序。

3.4 文件管理功能

3.4.1 文件存储空间管理

文件管理功能为每一个文件分配必要的外存空间,提高外存的利用率,进而提高文件系统的存、取速度。系统也有相应的数据结构来记录文件存储空间的使用情况,以供分配存储空间时思考。并且还具有对存储空间进行分配和回收的功能

3.4.2 文件目录管理

  • 目录管理为每一个文件建立一个目录项,目录项包括文件名、属性、文件的物理位置等,并对众多的目录项进行有效的组织,以实现方便的按名存取
  • 目录管理还能实现文件共享,只需要在外存上保留一份该共享文件的副本。
  • 目录管理提供快速查找目录的功能,以提高文件检索的速度

3.4.3 文件读写管理

该功能是根据用户的请求,从外存中读取数据,或将数据写入外存。

  • 在进行文件读/写时,系统先根据用户给出的文件名去检索文件目录,从中获得文件在外存中的位置。

  • 然后,利用文件读/写指针,对文件进行读/写。一旦读/写完成,便修改读/写指针,为下一次读/写做好准备。

由于读和写操作不会同时进行,故可合用一个读/写指针。

四、结构设计

软件开发技术的不断发展,促进了OS结构的更新换代。这里,我们把早期的无结构的OS(第一代)、模块化结构的OS(第二代)和分层式结构的OS(第三代),都统称为传统结构的 O S OS OS ,而把微内核结构 O S OS OS 称为现代结构的 O S OS OS

4.1 无结构操作系统

在早期的操作系统中,设计者为了提高效率 以及内存利用率对操作系统没有一个好的设计,而是想编写出一个紧凑的程序,于是操作系统就是一种零散的一些程序,每一个程序可以任意的调用其他的进程,导致操作系统内部既复杂又混乱,随着系统的不断扩大,这种没有全面设计的操作系统就出现了很多问题,这就是早期的无结构系统,也有人称其为整体系统结构

4.2 模块化结构操作系统

为了让操作系统有更加清晰的结构,设计者按照功能精心的划分为若干个具有一定独立性和大小的模块,每个模块都有对应的功能,并且约定好各个模块的接口,方便模块间的互相调用,然后再逐步细分各个模块为子模块,最终实现操作系统整体的结构,如图:

在模块划分的时候需要注意独立性问题,一般有以下两个标准:

  • 内聚性:指模块内部各部分的联系,内聚性越高模块的独立性越高
  • 耦合性:指模块间互相联系和互相影响的程度。耦合性越低模块的独立性越强

4.3 分层式结构操作系统

4.4 微内核结构操作系统

五、运行环境

5.1 运行机制

5.2 中断和异常

5.3 系统调用

以上是关于考研操作系统操作系统引论的主要内容,如果未能解决你的问题,请参考以下文章

操作系统 王道考研2019 第二章:进程管理 -- 进程同步进程互斥(临界资源)实现临界区互斥的基本方法(软(单/双 标志Peterson )硬件(中断屏蔽TSSwap))饥饿

操作系统 王道考研2019 第二章:进程管理 -- 进程调度的时机(临界资源临界区)切换与过程调度方式调度算法的评价指标(CPU利用率,系统吞吐量周转时间等待时间响应时间)

(王道408考研操作系统)第二章进程管理-第三节2:实现进程互斥的软件方法

(王道408考研操作系统)第二章进程管理-第三节5:用信号量实现进程互斥同步和前驱关系

操作系统王道考研 p17-19 进程同步与互斥进程互斥的软硬件实现方法

(王道408考研操作系统)第二章进程管理-第三节3:实现进程互斥的硬件方法