1682 字
8 分钟
1.1.1 操作系统的概念、功能和目标

1.1.1 操作系统的概念、功能和目标#

核心结论 操作系统(Operating System,OS)是控制和管理整个计算机系统的硬件与软件资源、合理组织计算机工作流程,并为用户和应用程序提供接口的系统软件。

从不同角度看,操作系统有三种核心角色:系统资源的管理者、用户与硬件之间的接口、对硬件机器的扩充。

熟悉的操作系统举例#

操作系统的层次结构#

tips

  1. 操作系统位于计算机硬件与应用程序、用户之间,是最接近硬件的一层系统软件。
  2. 操作系统通过管理底层资源并封装复杂的硬件操作,为上层软件提供统一、易用的运行环境。

操作系统的概念#

操作系统的目标#

  • 方便性:隐藏硬件细节,为用户和程序提供易用的接口。
  • 有效性:合理分配处理器、内存和 I/O 设备,提高资源利用率与系统吞吐量。
  • 可扩充性:采用便于增加新功能和适配新硬件的结构。
  • 开放性:遵循标准,使不同软硬件能够兼容和协同工作。

操作系统的功能#

引例

  • 我们假设:用户是雇主,操作系统是工人(用来操作机器),计算机是机器(由处理机(CPU)、存储器、设备、文件几个部件构成)
  • 工人有熟练的技能去控制和协调各个部件的工作,这就是操作系统对资源的管理
  • 同时,工人必须接受雇主的命令,这就是"接口"
  • 有了工人,机器就能发挥更大的作用,因此工人就成了"扩充机器"
  • 工人操作机器、机器有了更大的作用比如GUI界面,于是工人便成了扩充机器,去扩充GUI界面等功能

1. 作为计算机系统资源的管理者#

操作系统负责管理计算机中的软硬件资源,并协调多个程序对资源的使用

管理对象主要任务
处理器管理进程控制、进程同步、进程通信、死锁处理、处理机调度
存储器管理内存分配与回收、地址转换、内存保护与共享、内存扩充
文件管理文件存储空间管理、目录管理、文件读写与访问保护
设备管理缓冲管理、设备分配、设备处理、虚拟设备管理

处理器(CPU)管理#

在多道程序环境下,CPU的分配和运行都以进程(或线程)为基本单位,因此对CPU的管理可理解为对进程的管理。进程管理的主要功能包括进程控制、进程同步、进程通信、死锁处理、处理机调度等

存储器管理#

为多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率,主要包括内存分配与回收、地址映射、内存保护与共享和内存扩充等功能

文件管理#

计算机中所有的信息都是以文件的形式存在的,操作系统中负责文件的管理的部分称为文件系统,文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护等

设备管理#

设备管理的主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率,主要包括缓存管理、设备分配、设备处理和虚拟设备等功能

2. 作为用户与计算机硬件之间的接口#

操作系统封装了复杂的硬件功能,使用户和应用程序无须直接操作底层硬件。

命令接口#

命令接口供用户直接使用,可分为以下两类:

联机命令接口#
类型别名特点典型场景
联机命令接口交互式命令接口用户输入一条命令,系统立即执行一条命令终端、命令行

脱机命令接口#
类型别名特点典型场景
脱机命令接口批处理接口用户预先提交一组命令,系统依次执行,执行期间通常无须人工干预批处理作业、脚本

批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。批处理文件的扩展名为bat

程序接口#

程序接口由一组系统调用组成,也称广义指令。应用程序通过系统调用请求操作系统提供服务,例如:

  • 创建或终止进程;
  • 申请或释放内存;
  • 读写文件;
  • 使用外部设备。

用户不能直接执行系统调用,而是通过应用程序间接使用程序接口。

图形用户界面#

图形用户界面(GUI)通过窗口、图标、菜单等元素让用户操作计算机,是面向用户的交互方式。GUI 的底层实现仍会调用操作系统提供的服务,但 GUI 本身不等同于由系统调用组成的程序接口。

区分“直接”和“间接”

  • 用户通过命令接口或 GUI 直接与操作系统交互。
  • 应用程序通过系统调用间接请求操作系统服务。

3. 作为扩充机器(虚拟机)#

  • 裸机:没有配置任何软件、只包含物理硬件的计算机。
  • 扩充机器(虚拟机):硬件经过操作系统封装后,呈现出功能更强、使用更方便的逻辑机器。

这里的“虚拟机”强调操作系统对裸机功能的抽象和扩充,不特指 VMware、VirtualBox 等由虚拟化平台创建的虚拟计算机。

知识点回顾#

易错点#

常见混淆

  1. 操作系统是系统软件,不是硬件,也不是普通应用软件。
  2. 命令接口供用户直接使用;程序接口供应用程序通过系统调用间接使用。
  3. 系统调用是程序接口的组成部分,库函数不一定会触发系统调用。
  4. “扩充机器”强调对裸机功能的封装和扩展,不是简单地在硬件上安装任意软件。

参考资料#