操作系统的基本概念
概念
操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件。
换句话说就是, 操作系统是系统资源的管理者,它向上层提供方便易用的服务,是最接近硬件的一层软件。
直观的例子:打开 Windows 操作系统的“任务管理器”(快捷键:Ctrl+Alt+Del)
功能和目标
作为系统资源的管理者
- 提供的功能
- 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 操作系统中,删除一个文件只需要把文件“拖拽”到回收站即可。
命令接口
-
联机命令接口 又称交互式命令接口,特点是用户说一句,系统跟着做一句,比如在终端输入time回车,系统显示当前时间并让输入新时间。
-
脱机命令接口 又称批处理接口,特点是用户说一堆,系统跟着做一堆。 例如windows系统中的批处理文件(.bat)
程序接口
可以在程序中进行系统调用来使用程序接口。普通用户不能直接使用程序接口,只能通过程序代码间接使用。
小结
- 直接给用户使用的
- GUI
- 命令接口
- 联机命令接口
- 脱机命令接口
- 给软件/程序员使用的
- 程序接口 即系统调用,用户通过程序间接使用
程序接口和命令接口统称为用户接口
作为最接近硬件的层次
需要实现对硬件机器的拓展 没有任何软件支持的计算机成为裸机。在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器。 通常把覆盖了软件的机器成为扩充机器,又称之为虚拟机。
类比汽车: 发动机——只会转;轮胎——只会滚; 在原始的硬件机器上覆盖一层传动系统——让发动机带着轮子转——使原始的硬件机器得到拓展。 操作系统对硬件机器的拓展:将CPU、内存、磁盘、显示器、键盘等硬件合理地组织起来,让各种硬件 能够相互协调配合,实现更多更复杂的功能 普通用户无需关心这些硬件在底层是怎么组织起来工作的,只需直接使用操作系统提供的接口即可。
操作系统的4个特征
并发
指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。常考易混概念——并行:指两个或多个事件在同一时刻同时发生。
并发 VS 并行
eg:假设小渣和老渣每人有两个女朋友。任务1:和一号约会;任务2:和二号约会…
操作系统的并发性指计算机系统中“同时”运行着多个程序,这些程序宏观上看是同时运行着的,而微观上看是交替运行的。操作系统就是伴随着“多道程序工作”而出现的。因此,操作系统和程序并发是一起诞生的。
注意 单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行 多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行
比如Intel 的第八代 i3 处理器就是 4 核CPU,意味着可以并行地执行4个程序。 即使是对于4核CPU来说,只要有4个以上的程序需要“同时”运行,那么并发性依然是必不可少的,因此并发性是操作系统一个最基本的特性。
共享
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。 共享有两种方式
- 互斥共享 系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源
- “同时”共享 系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问
所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问的(即分时共享) 生活实例: 互斥共享方式:使用QQ和微信视频。同一时间段内摄像头只能分配给其中一个进程。 同时共享方式:使用QQ发送文件A,同时使用微信发送文件B。宏观上看,两边都在同时读取并发送文件,说明两个进程都在访问硬盘资源,从中读取数据。微观上看,两个进程是交替着访问硬盘的。 也有同时共享但不互斥的例子,比如扬声器同时播放游戏和音乐声音。
并发和共享的关系 并发性指计算机系统中同时存在着多个运行着的程序。 共享性是指系统中的资源可供内存中多个并发执行的进程共同使用。 并发和共享互为存在条件。 通过上述例子来看并发与共享的关系: 使用QQ发送文件A,同时使用微信发送文件B。
- 两个进程正在并发执行(并发性)
如果失去并发性,则系统中只有一个 程序正在运行,则共享性失去存在的 意义
- 需要共享地访问硬盘资源(共享性)
如果失去共享性,则QQ和微信不能同时访问硬盘资源,就无法实现同时发送文件,也就无法并发。
虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上 对应物(后者)是用户感受到的。
用一个例子来理解虚拟工作中的“空分复用工作”
背景知识:一个程序需要放入内存并给它分配CPU才能执行
GTA5需要4GB的运行内存,QQ 需要256MB的内存,迅雷需要256MB的内 存,网易云音乐需要256MB的内存……
我的电脑:4GB内存
问题:这些程序同时运行需要的内存远大于4GB,那么为什么它们还可以 在我的电脑上同时运行呢?
答:这是虚拟存储器工作。实际只有4GB的内存,在用户看来似乎远远大于4GB。
再用一个例子来理解虚拟工作中的“时分复用工作”:微观上处理机在 各个微小的时间段内交替 着为各个进程服务。
某单核CPU的计算机中,用户打开QQ、浏览器、微信、迅雷
问题:既然一个程序需要被分配CPU才能正常执行,那么为什么单核CPU 的电脑中能同时运行这么多个程序呢?
答:这是虚拟处理器工作。实际上只有一个单核CPU,在用户看来似乎有 6个CPU在同时为自己服务
虚拟工作
- 空分复用工作(如虚拟存储器工作)
- 时分复用工作(如虚拟处理器)
显然,如果失去了并发性,则一个时间段 内系统中只需运行一道程序,那么就失去 了实现虚拟性的意义了。因此,没有并发性,就谈不上虚拟性
异步
异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的, 而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统的两个最基本的特征