---
title: "《操作系统》操作系统的基本概念"
date: 2022-08-18T15:53:40+08:00

---

## 知识框架

* 概论
  * 特征
    * 并发(最基本)
    * 共享(最基本)
    * 虚拟
    * 异步
  * 目标和功能
    * 计算机系统资源管理者
    * 扩充机器
    * 用户与计算机系统之间的接口
      * 命令接口
      * 程序接口
      * GUI
  * 发展
    * 批处理操作系统$\rightarrow$分时操作系统$\rightarrow$实时操作系统$\rightarrow$网络和分布式操作系统
  * 运行机制
    * 中断和异常
    * 系统调用
  * 体系结构
    * 大内核
    * 微内核


## 操作系统的基本概念

### 操作系统的概念

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

操作系统是计算机系统中最基本的系统软件

### 操作系统的特征

基本特征包括并发、共享、虚拟和异步

#### 并发

并发指两个或多个事件在同一时间间隔内发生

操作系统的并发性指计算机系统中同时存在多个运行的程序,因而具有处理和调度多个程序同时执行的能力。

同一时间间隔(并发)和同一时刻(并行)的区别:

1. 宏观上有多道程序同时进行,微观上这些程序依旧是分时交替执行的,操作系统的并发性正是分时得以实现的
2. 并行性则是具有同时进行运算或操作的特性,同一时刻能完成两种或两种以上的工作,需要硬件的支持



#### 共享

共享通常指系统中的资源可供内存中多个并发执行的进程共同使用,拥有两种资源共享方式

* 互斥共享方式

互斥式共享:

当进程A访问某个资源时,必须先提出请求,若此时该资源空闲,则系统将其分配给进程A使用,此后有其他进程也要访问该资源时,就必须等待。仅当进程A访问完并释放该资源后,才允许另一个进程对该资源进行访问。

临界资源(独占资源):

一段时间内只允许一个进程访问的资源

互斥共享要求一种资源在一段时间内(哪怕是很小的时间)只能满足一个请求,否则就会出现严重的问题

* 同时访问方式

宏观上存在一些资源允许多个进程同时访问,微观上这些进程是交替地对该资源进行访问,即分时共享

---------------------------

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

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


#### 虚拟

虚拟是指把一个物理上的实体变为若干逻辑上的对应物。

操作系统中采用了多种虚拟技术来实现虚拟处理器、虚拟内存和虚拟外部设备等

虚拟技术可归纳为:

1. 时分复用技术,如处理器的分时共享
2. 空分复用技术,如虚拟存储器


#### 异步

程序的异步性:

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

异步性导致的问题:

异步性会使操作系统运行在一种随机的环境下,可能导致进程产生与时间有关的错误。然而在运行环境相同的情况下,操作系统就需要保证多次运行进程后得到的结果相同

### 操作系统的目标和功能

操作系统应具有以下功能来给多道程序提供良好的运行环境

1. 处理机管理、存储器管理、设备管理和文件管理
2. 需向用户提供接口以方便用户使用
3. 可用于扩充机器来提供更方便的服务、更高的资源利用率


#### 操作系统作为计算机系统资源的管理者

* 处理机管理

在多道程序环境下,处理机的分配和运行都以进程(线程)为主要单位

处理机的管理可归结为对进程的管理,因此进程创建、撤销、管理、避免冲突、合理共享就是进程管理的主要任务

进程管理的主要功能:

1. 进程控制
2. 进程同步
3. 进程通信
4. 死锁处理
5. 处理机调度


* 存储器管理

存储器管理用于给多道程序的运行提供良好环境,便于用户使用及提高内存利用率

主要功能:

1. 内存分配与回收
2. 地址映射
3. 内存保护与共享
4. 内存扩充

* 文件管理

负责文件管理的部分称为文件系统

主要功能:

1. 文件存储空间的管理
2. 目录管理
3. 文件读写管理和保护

* 设备管理

主要任务是完成用户I/O请求,方便用户使用设备,提高设备利用率

主要功能:

1. 缓冲管理
2. 设备分配
3. 设备处理
4. 虚拟设备

#### 操作系统作为用户与计算机硬件系统之间的接口

##### 命令接口

* 联机命令接口

联机命令接口又称为交互式命令接口,适用于分时或实时系统的接口

可由用户在控制台或终端输入命令,经命令解释程序解释并执行后,控制权再转交回控制台或终端,这一过程往往强调交互性

常见为 命令提示符中输入单条指令

* 脱机命令接口

脱机命令接口又称为批处理命令接口,适用于批处理系统

脱机用户不能干预作业运行,事先使用作业控制命令编写"命令清单",系统调度到该作业时,命令解释程序逐条解释并执行,从而间接控制作业的进行

常见为 使用命令编写脚本后运行

##### 程序接口

该接口由一组系统调用组成,用户通过在程序中使用这些系统调用来请求操作系统为其提供服务

常见为用户图形界面(GUI),如linux的KDE桌面

#### 操作系统用作扩充机器

没有任何软件支持的计算称为裸机,它仅是计算机系统的物质基础。操作系统提供的资源管理功能和方便用户的各种服务功能,将裸机改造成功能更强,使用更方便的机器

通常将覆盖了软件的机器称为扩充机器或虚拟机