操作系统原理与设计(1)操作系统概述
本系列笔记整理自 https://www.bilibili.com/video/BV1YE411D7nH
个人认为讲解比较清晰,容易理解。
一、操作系统的概念
1.1 操作系统的定义
操作系统(OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其它软件方便的接口和环境。它是计算机系统中最基本的系统软件。

下面我们将按照上述定义,从三个方面讨论操作系统的功能和目标。
1.2 操作系统的功能和目标
1.2.1 操作系统是系统资源的管理者
在定义中,操作系统首先是控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其它软件方便的接口和环境。
在运行一个程序的过程中,操作系统作为系统资源的管理者,它可以整理可执行文件存放位置;可以将程序指令和相关数据放入内存;可以让处理机(CPU)处理对应进程;也可以将所需设备合理地分配给各个进程。
以上四点对应的就分别是:文件管理、存储器管理、处理机管理和设备管理。

1.2.2 操作系统向上层提供方便易用的服务
原本的计算机硬件只能接受二进制“01串”形成的代码,而操作系统把一些丑陋的硬件功能封装成简单易用的服务,使用户能更方便地使用计算机,用户无需关心底层硬件的原理,只需要对操作系统发出命令即可。
操作系统提供的服务包括类似图形化用户接口(GUI)、联机命令接口实例(交互式命令接口,一问一答,也就是常说的小黑窗)、脱机命令接口(批处理命令接口,一堆问一堆答)、程序接口(可以在程序中使用系统调用又称广义指令,来完成程序接口)。

1.2.3 操作系统实现对硬件机器的拓展
没有任何软件支持的计算机称为裸机。在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器。
通常将覆盖了软件的机器称为扩充机器,又称之为虚拟机。
操作系统将CPU、内存、磁盘、显示器、键盘等硬件合理地组织起来,让各种硬件能够相互协调配合,实现更多更复杂的功能。
二、操作系统的特征
2.1 操作系统的并发特征
并发指的是两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
【区别两个词语】并行指的是两个或多个事件同时发生,并发指的是两个或多个事件宏观上同时发生,但细节上交替进行。举例:一个人一天内要和两个人约会,第一个人选择同时和两个人形成三人约会,这就是并行;第二个人选择在一天内交替和两个人进行约会,同一时间只和一个人约会,这就是并发。
操作系统的并发性指计算机系统中“同时”运行着多个程序,这些程序宏观上看是同时运行着的,而微观上看是交替运行的。操作系统就是伴随着“多道程序技术”而出现的。因此,操作系统和程序并发是一起诞生的。
单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行;多核CPU同一时刻可以执行多个程序,多个程序可以并行地执行。
2.2 操作系统的共享特征
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。

所谓的“同时”往往是宏观上,而微观上,这些进程可能是交替地对该资源进行访问(分时共享)。
并发性指计算机系统中同时存在着多个运行着的程序,共享性是指系统中的资源可供内存中多个并发执行的进程共同使用。
如果失去并发性,则系统中同一时刻只有一个程序正在运行,也就没有了共享性的意义;反之,如果失去共享性,则多个程序无法同时访问一个内存,也就无法完成并发。所以我们可以说两者是互为存在条件的。
2.3 操作系统的虚拟特征
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上对应物是用户所感受到的。
比如说:对于一个单核CPU计算机,用户可以同时打开多个软件,这就是因为使用了虚拟处理器技术,“时分复用技术”,即在微观时间上的各个时间段内交替运行各个进程。

2.4 操作系统的异步特征
异步指的是,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预告的速度向前推进,这就是进程的异步性。
根据以上的讲述,我们可以发现,如果没有并发和共享也就没有讨论虚拟和异步的意义了,所以我们说并发和共享是操作系统的最基本特征。