操作系统概述

146 阅读8分钟

点击阅读:操作系统系列文章


1. 操作系统的概念

大家熟悉的操作系统:iOS、Windows、Android、Linux、Symbian、HarmonyOS等。

操作系统是为它们所运行的程序提供服务,如执行新程序、打开文件、读文件、分配存储区以及获得当前时间等

1.1 计算机系统的层次结构:

计算机系统自下而上可以大致分为4部分:硬件操作系统应用程序用户

image.png

1.2 操作系统的定义:

操作系统,Operating System(OS):

  1. 控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配。
  2. 提供给用户和其他软件方便的接口和环境
  3. 计算机系统中最基本的系统软件

2. 操作系统的功能和目标

根据操作系统定义我们可知操作系统的功能和目标

image.png

2.1 操作系统是系统资源的管理者

image.png

作为系统资源的管理者,操作系统提供的功能

  • 文件管理
  • 存储器管理
  • 处理机管理
  • 设备管理

目标:安全、高效

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 手工操作阶段

早期电子计算机缺乏操作系统。程序员通常需要手动控制机器(如纸带机),使用插线板或设置开关来编程计算任务,处理速度慢,出错几率高。

image.png

手工操作系统操作步骤

  • Step 1:程序员将有代码的纸带放入纸带机。(超慢)
  • Step 2:计算机从纸带机读取纸带。(慢)
  • Step 3:计算机进行计算。(快)
  • Step 4:纸带机从计算机中读取结果。(慢)
  • Step 5:程序员从纸带机中取出结果纸带。(超慢)

手工操作的缺点

  1. 用户独占全机。并且每次只能运行一个任务。
  2. 人机速度矛盾导致资源利用率极低。

4.2 批处理阶段

4.2.1 单道批处理系统

引入脱机输入/输出技术(外围机 + 磁带),并由监督程序(操作系统雏形)负责控制作业的输入、输出。

通过外围机把程序提前存到磁带里。

image.png

单道批处理系统的优点

  1. 缓解了一定程度的人机速度矛盾,资源利用率有所提升。

单道批处理系统的缺点

  1. 资源利用率依然低。内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU仍有大量时间是在空闲等待I/O 完成。

4.2.2 多道批处理系统

每次向内存中读入多道程序。操作系统正式诞生,用于支持多道程序并发运行。 image.png 多道批处理系统的优点

  1. 资源利用率大幅度提升。多道程序并发运行,共享计算机资源,系统吞吐量增大。

多道批处理系统的缺点

  1. 用户响应时间长,没有人机交互功能。用户提交自己的作业后只能等待计算机处理完成。

4.3 分时操作系统

计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端(键盘、鼠标等)与计算机进行交互。

分时操作系统的优点

  1. 用户请求可以被即时响应,解决了人机交互问题。
  2. 允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感觉不到别人的存在。

4.4 实时操作系统

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

实时操作系统分为两种:

  • 硬实时操作系统:必须在绝对严格的规定时间内完成处理。自动驾驶系统、导弹控制系统。
  • 软实时操作系统:能接受偶尔违反时间规定。火车订票系统。

实时操作系统的优点:能够响应一些紧急任务,某些紧急任务不需要时间片排队。

4.5 其他几种操作系统

4.5.1 网络操作系统

网络操作系统伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。

如 Windows NT 操作系统。

4.5.2 分布式操作系统

分布式操作系统:系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由他们并行、协同完成这个任务。

分布式操作系统特点:分布性并行性

4.5.3 个人操作系统

方便个人使用。如 Windows、MacOS 等 。


点击阅读:操作系统系列文章