【操作系统的概念】
操作系统(Operating System,OS)是配置在计算机硬件之上的第一层软件,其是对硬件系统的首次扩充,在计算机开机后,其会被首先加载到内存中
具体来说,操作系统是控制、管理计算机系统的软、硬件资源,能够合理的组织计算机工作、资源分配,是为用户、软件提供方便接口与环境的程序集合
操作系统设计的主要目标有四点:
- 方便性:便于用户使用
- 有效性:提高系统资源利用率
- 可扩充性:使用模块化以便于修改和扩充
- 开放性:系统遵循国际标准以便实现互连
【操作系统的功能】
用户与计算机硬件间的接口
用户通过 OS 来使用计算机,从下图可以看出,用户可以通过系统调用、命令方式、图形窗口三种方式来实现与 OS 的通信,并取得其服务
对于系统调用来说,其常见于程序接口中,这是一种由用户间接使用 OS 服务的方式,是在程序中使用系统调用的方法来请求 OS 提供服务,如 C 语言中的库函数
对于命令方式来说,其是通过命令接口来由用户直接调用的,具体分为以下两种:
- 联机命令接口:交互式,由键盘操作命令组成,如
cmd
命令行窗口 - 脱机命令接口:批处理,由作业控制命令组成,如
.bat
文件
对于图形窗口来说,其通过调用程序接口来实现,不属于 OS,但其调用的系统调用命令,属于 OS
计算机系统资源的管理者
在计算机系统中,包含多种软硬件资源,OS 的主要功能正是对资源进行管理,归结来说,总共分为四类:
- 处理机管理:处理机的分配与控制
- 存储器管理:内存的分配与回收
- I/O 设备管理:I/O 设备的分配、回收与操纵
- 文件管理:对数据和程序文件的存取、共享、保护
对硬件机器扩展
将 OS 附加在裸机(完全无软件的计算机系统)上,实现了对裸机的首次扩充,之后,系统软件及更上层的用户软件在操作系统虚拟机上进行运行,使得计算机成为功能更强大的多层虚拟机
【操作系统的特征】
并发
并行是指两个或多个事件在同一时刻发生,并发是指两个或多个事件在同一时段发生
在单处理机系统中,多个程序宏观来看是并行,实际上是多个程序交替占用 CPU;而在多处理机系统中,多个程序被分配到多个处理机上,每个处理机处理一个可并发执行的程序
在未引入进程的系统中,同属一应用程序的计算程序与 I/O 程序间只能顺序执行,这样极大地影响了系统资源利用率
若对内存中的多个程序都分别建立一个进程,他们就可以并发执行,从而提高系统资源利用率,所谓进程是指系统中能独立运行并作为资源分配的基本单位,是由一组机器指令、数据、堆栈等组成的能独立运行的实体
目前市面上流行的 CPU,单核 CPU 是指同一时刻只允许一个程序运行,各程序并发执行;多核 CPU 是同一时刻允许多个程序运行,各程序可并行执行
共享
在 OS 下的资源共享是指系统中的资源可供内存中多个并发执行的进程共同使用,由于内存资源有限,系统必须对资源共享进行妥善管理,以避免进程对共享资源的争夺
根据资源属性的不同,进程对资源复用的方式也不同,目前主要有以下两种方式:
- 互斥共享方式:在一段时间内只允许一个进程访问资源(临界资源)
- 同时访问方式:在一段时间内允许多个进程同时访问(在单处理机上,本质上是串行的)
需要注意的是,并发与共享之间是互为存在的关系,共享以并发为条件,没有并非就无法共享,并发以共享为基础,没有共享就无法实现并发
虚拟
虚拟最早出现在通信系统中,为提高信道利用率从而引入了虚拟技术,所谓虚拟,是指通过某种技术将一个物理实体变为若干逻辑上的对应物。
在 OS 中,借鉴了通信系统的虚拟设备技术,有以下两种实现方式:
- 时分复用:利用处理机的空闲时间运行其他进程,提高处理机利用率
- 空分复用:利用存储器的空闲空间,分区域存放运行多道程序,提高内存利用率
异步
由于资源等因素的限制,多个进程并发执行时间和执行顺序是不可预知的,所谓异步即是指进程的执行顺序与执行时间的不确定性
尽管如此,但只要在 OS 中配置有完善的进程同步机制,且运行环境相同,作业即使经过多次运行,得到的结果是完全相同的