目录

操作系统的基本概念

概念

操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件。 换句话说就是, 操作系统是系统资源的管理者,它向上层提供方便易用的服务,是最接近硬件的一层软件。 直观的例子:打开 Windows 操作系统的“任务管理器”(快捷键:Ctrl+Alt+Del) https://gitee.com/lienhui68/picStore/raw/master/null/20200709155536.png

功能和目标

作为系统资源的管理者

  • 提供的功能
    • cpu管理
    • 存储器管理
    • 文件管理
    • 设备管理
  • 目标 安全、高效

补充知识:执行一个程序前需要将该程序放到内存中,才能被CPU处理。

用QQ和朋友视频聊天的过程:

Step 1:在各个文件夹中找到 QQ 安装的位置(如 D:/Tencent/QQ/Bin)

文件管理

Step 2:双击打开 QQ.exe

需要把该程序相关数据放入内存, 存储管理

Step 3:QQ 程序正常运行

对应的进程被处理机(CPU)处理, cpu管理

Step 4:开始和朋友视频聊天

需要将摄像头设备分配给进程, 设备管理

向上层提供方便易用的服务

硬件只听得懂二进制指令,如: 01010111101110111010101 硬件对外暴露了“丑陋”、不友好的交互接口

在硬件之上安装了操作系统,操作系统对 外暴露了“美丽”、友好的交互接口

这里体现了封装思想:操作系统把一些丑陋的硬件功能封装成简单易用的服务,使用户能更方便地使用计算机,用户无需关心底层硬件的原理,只需要对操作系统发出命令即可

GUI:图形化用户接口(Graphical User Interface)用户可以使用形象的图形界面进行操作,而不再需要记忆复杂的命令、参数。例子:在 Windows 操作系统中,删除一个文件只需要把文件“拖拽”到回收站即可。

命令接口

  1. 联机命令接口 又称交互式命令接口,特点是用户说一句,系统跟着做一句,比如在终端输入time回车,系统显示当前时间并让输入新时间。

  2. 脱机命令接口 又称批处理接口,特点是用户说一堆,系统跟着做一堆。 例如windows系统中的批处理文件(.bat)

    https://gitee.com/lienhui68/picStore/raw/master/null/20200709160910.png

程序接口

可以在程序中进行系统调用来使用程序接口。普通用户不能直接使用程序接口,只能通过程序代码间接使用https://gitee.com/lienhui68/picStore/raw/master/null/20200709161052.png

小结

  • 直接给用户使用的
    • GUI
    • 命令接口
      • 联机命令接口
      • 脱机命令接口
  • 给软件/程序员使用的
    • 程序接口 即系统调用,用户通过程序间接使用

程序接口和命令接口统称为用户接口

作为最接近硬件的层次

需要实现对硬件机器的拓展 没有任何软件支持的计算机成为裸机。在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器。 通常把覆盖了软件的机器成为扩充机器,又称之为虚拟机。

类比汽车: 发动机——只会转;轮胎——只会滚; 在原始的硬件机器上覆盖一层传动系统——让发动机带着轮子转——使原始的硬件机器得到拓展。 操作系统对硬件机器的拓展:将CPU、内存、磁盘、显示器、键盘等硬件合理地组织起来,让各种硬件 能够相互协调配合,实现更多更复杂的功能 普通用户无需关心这些硬件在底层是怎么组织起来工作的,只需直接使用操作系统提供的接口即可。

操作系统的4个特征

并发

指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。常考易混概念——并行:指两个或多个事件在同一时刻同时发生。

并发 VS 并行 eg:假设小渣和老渣每人有两个女朋友。任务1:和一号约会;任务2:和二号约会… https://gitee.com/lienhui68/picStore/raw/master/null/20200709165032.png

操作系统的并发性指计算机系统中“同时”运行着多个程序,这些程序宏观上看是同时运行着的,而微观上看是交替运行的。操作系统就是伴随着“多道程序工作”而出现的。因此,操作系统和程序并发是一起诞生的

注意 单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行 多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行

比如Intel 的第八代 i3 处理器就是 4 核CPU,意味着可以并行地执行4个程序。 即使是对于4核CPU来说,只要有4个以上的程序需要“同时”运行,那么并发性依然是必不可少的,因此并发性是操作系统一个最基本的特性。

共享

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

  • 互斥共享 系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源
  • “同时”共享 系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问

所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问的(即分时共享) 生活实例: 互斥共享方式:使用QQ和微信视频。同一时间段内摄像头只能分配给其中一个进程。 同时共享方式:使用QQ发送文件A,同时使用微信发送文件B。宏观上看,两边都在同时读取并发送文件,说明两个进程都在访问硬盘资源,从中读取数据。微观上看,两个进程是交替着访问硬盘的。 也有同时共享但不互斥的例子,比如扬声器同时播放游戏和音乐声音。

并发和共享的关系 并发性指计算机系统中同时存在着多个运行着的程序。 共享性是指系统中的资源可供内存中多个并发执行的进程共同使用。 并发和共享互为存在条件。 通过上述例子来看并发与共享的关系: 使用QQ发送文件A,同时使用微信发送文件B。

  1. 两个进程正在并发执行(并发性)

如果失去并发性,则系统中只有一个 程序正在运行,则共享性失去存在的 意义

  1. 需要共享地访问硬盘资源(共享性)

如果失去共享性,则QQ和微信不能同时访问硬盘资源,就无法实现同时发送文件,也就无法并发。

虚拟

虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上 对应物(后者)是用户感受到的。

用一个例子来理解虚拟工作中的“空分复用工作”

背景知识:一个程序需要放入内存并给它分配CPU才能执行

GTA5需要4GB的运行内存,QQ 需要256MB的内存,迅雷需要256MB的内 存,网易云音乐需要256MB的内存……

我的电脑:4GB内存

问题:这些程序同时运行需要的内存远大于4GB,那么为什么它们还可以 在我的电脑上同时运行呢?

答:这是虚拟存储器工作。实际只有4GB的内存,在用户看来似乎远远大于4GB。

再用一个例子来理解虚拟工作中的“时分复用工作”:微观上处理机在 各个微小的时间段内交替 着为各个进程服务。

某单核CPU的计算机中,用户打开QQ、浏览器、微信、迅雷

问题:既然一个程序需要被分配CPU才能正常执行,那么为什么单核CPU 的电脑中能同时运行这么多个程序呢?

答:这是虚拟处理器工作。实际上只有一个单核CPU,在用户看来似乎有 6个CPU在同时为自己服务

虚拟工作

  • 空分复用工作(如虚拟存储器工作)
  • 时分复用工作(如虚拟处理器)

显然,如果失去了并发性,则一个时间段 内系统中只需运行一道程序,那么就失去 了实现虚拟性的意义了。因此,没有并发性,就谈不上虚拟性

异步

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

https://gitee.com/lienhui68/picStore/raw/master/null/20200709182038.png

没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统的两个最基本的特征