点击阅读:操作系统系列文章
1. 操作系统的概念
大家熟悉的操作系统:iOS、Windows、Android、Linux、Symbian、HarmonyOS等。
操作系统是为它们所运行的程序提供服务,如执行新程序、打开文件、读文件、分配存储区以及获得当前时间等
1.1 计算机系统的层次结构:
计算机系统自下而上可以大致分为4部分:硬件、操作系统、应用程序和用户。
1.2 操作系统的定义:
操作系统,Operating System(OS):
- 控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配。
- 提供给用户和其他软件方便的接口和环境。
- 计算机系统中最基本的系统软件。
2. 操作系统的功能和目标
根据操作系统定义我们可知操作系统的功能和目标:
2.1 操作系统是系统资源的管理者
作为系统资源的管理者,操作系统提供的功能:
- 文件管理
- 存储器管理
- 处理机管理
- 设备管理
目标:安全、高效
2.2 操作系统向上层提供方便易用的服务
底层硬件只懂二进制指令(01010101...),如果直接对外暴露接口,是不友好的接口。在硬件之上安装了操作系统,操作系统对外暴露了友好的交互接口。
封装思想:操作系统把一些丑陋的硬件功能封装成简单易用的服务,使用户能更方便地使用计算机,而无需关心底层硬件的原理,只需对操作系统发出命令即可。
举例:
-
GUI:图形化用户接口(Graphical User Interface)。删除一个文件,只需将该文件“拖拽”到回收站即可。
-
用户通过命令接口交互:早期是没有图形化界面的,用户通过命令行与操作系统进行交互,命令接口分为两种:
- 联机命令接口:又称交互式命令接口。如 cmd 命令行,特点:用户说一句系统跟着做一句。
- 脱机命令接口:又称批处理命令接口。如 *.bat 文件,特点:用户说一堆,系统跟着做一堆。
-
程序接口:可以在程序中进行系统调用来使用程序接口。普通用户不能使用程序接口,程序员使用,只能通过代码间接调用。
程序接口由一系列的系统调用组成。系统调用类似于函数调用,是应用程序请求操作系统服务的唯一方式。
用户可以通过使用GUI、命令接口等与操作系统进行交互。应用程序可以通过程序接口与操作系统进行交互。
2.3 操作系统是最接近硬件的一层软件
需要实现对硬件机器的拓展。通常把覆盖软件的机器称为扩充机器,又称虚拟机。
操作系统对硬件机器进行了拓展:将CPU、磁盘、内存、显示器等硬件合理地组织起来,让各种硬件相互协调配合,实现更多复杂的功能。
3. 操作系统的特征
操作系统的特征有:并发、共享、虚拟和异步。
并发和共享是操作系统的两个最基本的特征,二者互为存在条件。
3.1 并发
并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
并行:指两个或多个事件在同一时刻发生。
操作系统的并发性:指计算机系统中同时运行很多个程序,在宏观上这些程序是同时运行的,但微观上是交替发生的。
操作系统和程序并发是一起诞生的。
- 单核CPU中,各个程序只能并发执行。
- 多核CPU中,多个应用程序可以并行执行。
3.2 共享
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
两种资源共享方式:
- 互斥共享方式:一个时间段内只允许一个进程访问资源。
- 同时共享方式:一个时间段内允许多个进程同时(分时共享,微观上交替访问)访问资源。
并发和共享的关系: 并发性指计算机系统中同时存在着多个运行着的程序。共享性指系统中的资源可供内存中多个并发执行的进程共同使用。 并发性和共享性是互为存在条件。
3.3 虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上对应物是用户感受到的。
两种虚拟技术:
- 空分复用技术:如虚拟存储器技术
- 时分复用技术:如虚拟处理器
没有并发性就没有虚拟性。
3.4 异步
异步,指在多道程序环境下,允许多个程序并发执行,但由于资源有限,程序的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
没有并发性,就不能导致异步性。
没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统的两个最基本的特征。
4. 操作系统的发展历程
4.1 手工操作阶段
早期电子计算机缺乏操作系统。程序员通常需要手动控制机器(如纸带机),使用插线板或设置开关来编程计算任务,处理速度慢,出错几率高。
手工操作系统操作步骤:
- Step 1:程序员将有代码的纸带放入纸带机。(超慢)
- Step 2:计算机从纸带机读取纸带。(慢)
- Step 3:计算机进行计算。(快)
- Step 4:纸带机从计算机中读取结果。(慢)
- Step 5:程序员从纸带机中取出结果纸带。(超慢)
手工操作的缺点:
- 用户独占全机。并且每次只能运行一个任务。
- 人机速度矛盾导致资源利用率极低。
4.2 批处理阶段
4.2.1 单道批处理系统
引入脱机输入/输出技术(外围机 + 磁带),并由监督程序(操作系统雏形)负责控制作业的输入、输出。
通过外围机把程序提前存到磁带里。
单道批处理系统的优点:
- 缓解了一定程度的人机速度矛盾,资源利用率有所提升。
单道批处理系统的缺点:
- 资源利用率依然低。内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU仍有大量时间是在空闲等待I/O 完成。
4.2.2 多道批处理系统
每次向内存中读入多道程序。操作系统正式诞生,用于支持多道程序并发运行。
多道批处理系统的优点:
- 资源利用率大幅度提升。多道程序并发运行,共享计算机资源,系统吞吐量增大。
多道批处理系统的缺点:
- 用户响应时间长,没有人机交互功能。用户提交自己的作业后只能等待计算机处理完成。
4.3 分时操作系统
计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端(键盘、鼠标等)与计算机进行交互。
分时操作系统的优点:
- 用户请求可以被即时响应,解决了人机交互问题。
- 允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感觉不到别人的存在。
4.4 实时操作系统
实时操作系统的特点:及时性和可靠性。在实时操作系统的控制下,计算机系统接收到外部信号后即时进行处理,并且要在严格的时限内处理完事件。
实时操作系统分为两种:
- 硬实时操作系统:必须在绝对严格的规定时间内完成处理。自动驾驶系统、导弹控制系统。
- 软实时操作系统:能接受偶尔违反时间规定。火车订票系统。
实时操作系统的优点:能够响应一些紧急任务,某些紧急任务不需要时间片排队。
4.5 其他几种操作系统
4.5.1 网络操作系统
网络操作系统伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。
如 Windows NT 操作系统。
4.5.2 分布式操作系统
分布式操作系统:系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由他们并行、协同完成这个任务。
分布式操作系统特点:分布性和并行性。
4.5.3 个人操作系统
方便个人使用。如 Windows、MacOS 等 。
点击阅读:操作系统系列文章