操作系统(1)第一章- 操作系统的概念和功能

操作系统(Operating System,简称 OS )是管理计算机硬件与软件资源的系统软件 ,是计算机系统的核心与基石。它处于硬件层应用层之间,向下抽象并管控硬件资源,向上为应用程序提供统一、易用的接口,是用户、应用程序与计算机硬件之间的 "桥梁"。

一、 操作系统的核心概念

1. 本质定位

操作系统不是硬件,也不是普通应用程序,而是一套资源管理与协调的软件集合,核心目标是:

  • 高效性:最大化硬件资源的利用率(如 CPU 分时复用、内存按需分配);
  • 稳定性:保证多程序并发运行时互不干扰,避免资源冲突;
  • 易用性:屏蔽硬件的复杂性,为用户和应用程序提供简洁的操作与编程接口;
  • 安全性:隔离不同用户和程序的资源访问权限,防止非法操作。

2. 核心特征

特征 具体说明
并发性 支持多个程序同时运行(宏观并行,微观可能是 CPU 分时切换),是操作系统最核心的特征
共享性 硬件资源(CPU、内存、外设)和软件资源(文件、数据)可被多个并发程序共享,需通过同步机制避免冲突
虚拟性 通过软件技术将物理硬件抽象为多个逻辑资源,如 "虚拟内存"(硬盘模拟内存)、"虚拟 CPU"(分时复用)
异步性 程序的执行是 "走走停停" 的,进程的推进速度由调度算法决定,不可预知但整体有序

3. 常见操作系统分类

分类维度 典型代表 适用场景
按用户界面 命令行操作系统(Linux 终端)、图形界面操作系统(Windows、macOS) 服务器(命令行)、桌面端(图形界面)
按运行环境 桌面操作系统(Windows、macOS)、服务器操作系统(Linux、Unix)、嵌入式操作系统(RT-Thread、VxWorks)、移动操作系统(Android、iOS) 日常办公、云计算、工业控制、智能手机
按内核架构 宏内核(Linux、Windows)、微内核(QNX、Minix) 通用场景(宏内核)、高可靠场景(微内核,如航空航天)

二、 操作系统的五大核心功能

操作系统的所有模块都围绕 "资源管理" 展开,核心功能可分为五大模块,相互协同支撑整个系统的运行。

1. 进程与线程管理(CPU 资源管理)

这是操作系统最核心的功能,负责合理分配 CPU 时间片,保证多程序并发运行。

  • 核心任务
    1. 进程控制:创建、撤销、阻塞、唤醒进程,管理进程的生命周期(新建→就绪→运行→阻塞→终止);
    2. 进程调度:通过调度算法(如时间片轮转、优先级调度、多级反馈队列),决定哪个进程获得 CPU 使用权;
    3. 进程同步与互斥:解决多个进程共享资源时的冲突问题,如信号量、管程、临界区保护;
    4. 线程管理:管理轻量级进程(线程),实现进程内的并发执行,降低上下文切换开销。
  • 核心意义:最大化 CPU 利用率,避免 CPU 空闲等待外设。

2. 内存管理(内存资源管理)

负责分配、回收和保护内存空间,解决 "内存空间有限" 与 "程序需求多样" 的矛盾。

  • 核心任务
    1. 内存分配与回收:为进程分配连续或离散的内存空间,进程结束后回收内存;
    2. 地址映射 :通过内存管理单元(MMU) 实现虚拟地址→物理地址的转换,隔离不同进程的内存空间;
    3. 虚拟内存管理:利用硬盘空间模拟内存,扩展进程可用的地址空间,解决 "大程序运行在小内存" 的问题;
    4. 内存保护:通过页表权限位、段寄存器等机制,防止进程越界访问其他进程的内存。
  • 关键技术:分页存储、分段存储、段页式存储、页面置换算法(LRU、Clock)。

3. 设备管理(I/O 外设资源管理)

负责管理所有输入输出设备,协调 CPU、内存与外设之间的数据传输。

  • 核心任务
    1. 设备分配与回收:根据设备类型(独占设备如打印机、共享设备如硬盘)分配资源;
    2. I/O 控制:实现四种 I/O 控制方式(程序查询、中断驱动、DMA、通道控制),提升数据传输效率;
    3. 缓冲管理:在内存中设置缓冲区,解决 CPU 与外设的速度差异(如硬盘读写缓冲区、打印机缓冲区);
    4. 设备独立性:应用程序通过逻辑设备名访问外设,无需关心物理设备的具体型号,由操作系统完成映射。
  • 核心意义:屏蔽外设的硬件差异,提升 I/O 传输效率。

4. 文件管理(软件资源管理)

负责管理存储在外存(硬盘、U 盘)上的文件和目录,是用户与外存之间的接口。

  • 核心任务
    1. 文件存储空间管理:分配和回收外存空间,如空闲表法、空闲链表法、位示图法;
    2. 目录管理:建立和维护目录结构(树形目录、多级目录),实现文件的按名存取;
    3. 文件操作:提供创建、删除、打开、关闭、读、写等文件操作接口;
    4. 文件保护:通过权限控制(读 / 写 / 执行)、密码保护等方式,防止文件被非法访问或修改。
  • 关键技术:文件的逻辑结构(顺序文件、索引文件)、物理结构(连续分配、链接分配、索引分配)。

5. 用户接口(人机交互接口)

为用户和应用程序提供与操作系统交互的渠道,分为两类接口:

  • 用户接口
    1. 命令接口 :用户通过命令行输入指令(如 Linux 的 lscd 命令),操作系统执行相应操作;
    2. 图形用户接口(GUI):用户通过图标、菜单、窗口等图形元素操作计算机(如 Windows 的桌面、macOS 的 Finder)。
  • 程序接口(系统调用) :应用程序通过系统调用 请求操作系统提供服务,如进程创建(fork)、文件读写(read/write)、内存分配(malloc)。系统调用是应用程序进入内核态的唯一入口,保证了系统的安全性。

三、 操作系统的核心价值

  1. 硬件抽象层:屏蔽不同硬件的差异,让应用程序无需关心硬件细节即可运行;
  2. 资源调度器:高效分配 CPU、内存、外设等资源,最大化系统整体性能;
  3. 程序运行的支撑环境:提供进程管理、内存管理等功能,保证程序的并发、安全运行;
  4. 用户与计算机的交互桥梁:提供友好的接口,降低用户使用计算机的门槛。

简单来说:没有操作系统,用户只能通过机器语言直接操作硬件;有了操作系统,用户可以轻松运行各种应用程序

四、操作系统的特征

操作系统的核心特征是其区别于普通软件的本质属性,这些特征相互关联、互为支撑,共同实现多程序并发运行、硬件资源高效管理 的核心目标。操作系统的四大核心特征为:并发性、共享性、虚拟性、异步性 ,其中并发性是最核心的特征,其他特征均围绕并发性展开。

一、 并发性(Concurrence)

1. 核心定义

宏观上多个程序同时运行,微观上可能交替执行的特性。

  • 宏观并行:从用户视角看,计算机能同时运行多个程序(如一边听歌、一边写代码、一边下载文件);
  • 微观交替 :在单 CPU 系统中,CPU 通过时间片轮转机制,快速切换执行不同程序的指令,给用户 "同时运行" 的错觉;在多 CPU 系统中,可实现真正的硬件并行。

2. 关键区别

  • 并发 vs 并行
    • 并发:同一时间段内多个程序交替执行(单 CPU 核心的核心工作模式);
    • 并行:同一时刻多个程序同时执行(多 CPU 核心或多核处理器的工作模式)。操作系统的并发性既支持并发,也支持并行。

3. 核心支撑技术

进程 / 线程调度、上下文切换、中断机制,这些技术保证了 CPU 资源能被多个程序高效复用。

二、 共享性(Sharing)

1. 核心定义

系统中的硬件和软件资源可被多个并发程序共同使用的特性。共享性是并发性的必然要求 ------ 若程序无法共享资源,并发运行将失去意义。

2. 共享的两种方式

共享方式 核心特点 适用资源 示例
互斥共享 同一时刻,资源只能被一个程序占用;占用方释放后,其他程序才能使用 临界资源(如打印机、键盘、独占式外设,或内存中的共享变量) 打印机打印文件时,其他程序需排队等待;两个进程修改同一变量时需加锁
同时共享 同一时刻,资源可被多个程序同时访问(宏观同时,微观可能交替) 可重入资源(如内存、硬盘、网卡、文件) 多个程序同时读取同一文件;多个进程同时占用内存的不同区域

3. 核心问题与解决

共享资源的最大挑战是冲突与竞争 ,操作系统通过同步与互斥机制(如信号量、管程、临界区保护)解决这一问题,保证资源的有序使用。

三、 虚拟性(Virtualization)

1. 核心定义

指操作系统通过软件技术,将物理上的一个资源抽象为逻辑上的多个资源,或将多个物理资源抽象为一个逻辑资源,从而提升资源利用率的特性。

2. 典型的虚拟技术

虚拟类型 核心实现 作用 示例
虚拟处理器(CPU 虚拟化) 通过时间片轮转,将一个物理 CPU 抽象为多个逻辑 CPU 让多个程序 "同时" 使用 CPU 单 CPU 系统中同时运行浏览器、编辑器、音乐播放器
虚拟内存 通过页表机制 + 硬盘交换区,将物理内存和部分硬盘空间整合,抽象为连续的逻辑内存空间 突破物理内存大小限制,支持大程序运行 4GB 物理内存的电脑可运行占用 8GB 内存的软件
虚拟外设 通过设备抽象层,将物理外设抽象为标准化的逻辑设备 屏蔽硬件差异,方便程序调用 不同品牌的打印机,在操作系统中都被抽象为 "打印机" 设备,程序无需区分型号
虚拟终端 / 虚拟机 终端虚拟化:通过软件模拟多个命令行终端;虚拟机:通过 Hypervisor 模拟完整的计算机系统 提升人机交互效率,或实现系统隔离 Linux 的 TTY1~TTY6 虚拟终端;VMware、VirtualBox 虚拟机

四、 异步性(Asynchronism)

1. 核心定义

程序的执行是 "走走停停" 的,推进速度不可预知,但整体运行有序的特性。

  • 程序运行时,会因抢占 CPU、等待 I/O、等待资源等原因暂停(如程序等待硬盘读写数据时,CPU 会切换执行其他程序);
  • 当满足继续执行的条件时(如 I/O 完成、获得 CPU 时间片),程序会恢复运行。
  • 从单个程序的视角看,执行过程是异步、不可预测 的;但从操作系统的视角看,所有程序的执行都被调度机制管理,整体是有序、可控的。

2. 核心原因

  • 程序执行依赖资源分配(CPU、内存、外设),而资源分配由调度算法决定;
  • 外设的 I/O 速度远慢于 CPU,程序频繁等待 I/O 完成,导致执行过程中断。

3. 关键保障

操作系统通过进程状态管理、中断响应、调度算法,保证异步执行的程序不会出现混乱,最终能完成预期功能。

五、 四大特征的关联关系

  1. 并发性是核心:没有并发性,共享性、虚拟性、异步性都失去存在的意义;
  2. 共享性是并发性的支撑:程序并发运行的前提是能共享 CPU、内存、外设等资源;
  3. 虚拟性提升并发和共享的效率:通过虚拟化技术,让有限的物理资源能服务更多程序;
  4. 异步性是并发和共享的必然结果:多程序共享资源、交替执行,必然导致单个程序的异步执行。

六、操作系统的发展和分类

操作系统(OS)的发展历程是硬件性能提升用户需求演进共同驱动的结果,从最初的 "手工操作" 到现代的 "分布式云操作系统",其功能从单一的 "硬件管控" 逐步扩展为 "资源管理、并发调度、人机交互、安全隔离" 的综合系统软件。同时,根据不同的划分维度,操作系统可分为多种类型,适配不同的应用场景。

一、 操作系统的发展历程(按阶段划分)

操作系统的发展大致可分为 5 个核心阶段,每个阶段都解决了前一阶段的核心痛点,功能逐步完善。

1. 手工操作阶段(无操作系统,20 世纪 40 年代末 - 50 年代初)

  • 硬件背景:第一代电子计算机(如 ENIAC),采用真空管和穿孔卡片,运算速度慢(每秒数千次),无外部存储设备。
  • 操作方式 :程序员手工插拔线路板、装载穿孔卡片,独占整个计算机资源;程序运行时,CPU 需等待人工操作,资源利用率极低(CPU 空闲时间远超工作时间)。
  • 核心痛点:无任何自动化管理,完全依赖人工,效率极低,仅能支持单程序运行。

2. 批处理操作系统阶段(20 世纪 50 年代中 - 60 年代初)

  • 硬件背景:第二代计算机,采用晶体管,出现磁带、磁盘等外部存储设备,CPU 运算速度提升。
  • 核心改进 :引入批处理监控程序(操作系统的雏形),将多个用户的程序和数据 "批量" 输入到磁带 / 磁盘中,由监控程序自动依次加载运行,无需人工干预。
  • 细分类型
    • 单道批处理:内存中仅能存放一个程序,CPU 执行完一个程序后再加载下一个;仍存在 CPU 等待外设(如磁带读写)的问题。
    • 多道批处理 :内存中同时存放多个程序,CPU 采用多道程序设计技术 ,在一个程序等待 I/O 时,切换执行另一个程序,首次实现 CPU 与外设的并行工作,大幅提升资源利用率。
  • 核心意义:标志着操作系统的诞生,实现了程序运行的自动化管理。

3. 分时操作系统与实时操作系统阶段(20 世纪 60 年代中 - 70 年代)

  • 硬件背景:第三代计算机,采用集成电路,CPU 运算速度大幅提升,出现多终端设备。
  • (1)分时操作系统
    • 核心思想 :将 CPU 的时间划分为时间片,轮流分配给多个终端用户的程序,每个用户都能 "实时" 感受到独占计算机。
    • 关键特征交互性、多路性、独立性、及时性;用户通过终端输入命令,操作系统即时响应,支持多人同时使用计算机。
    • 典型代表:UNIX 系统(1969 年,肯・汤普森在贝尔实验室开发),奠定了现代操作系统的基础架构。
  • (2)实时操作系统
    • 核心需求 :针对工业控制、军事等场景,要求在规定的时间内完成任务,否则会导致严重后果。
    • 关键特征高可靠性、强实时性、优先级调度;分为硬实时(必须在截止时间前完成,如导弹控制系统)和软实时(允许少量延迟,如视频会议)。
    • 典型代表:VxWorks、RT-Thread、QNX。
  • 核心意义:操作系统从 "批处理的非交互模式" 进化为 "分时的交互模式",同时分化出面向工业控制的实时分支。

4. 通用操作系统阶段(20 世纪 80 年代 - 21 世纪初)

  • 硬件背景:第四代计算机,采用大规模集成电路,个人计算机(PC)普及,网络技术兴起。
  • 核心特征 :融合批处理、分时、实时的功能,支持多用户、多任务、网络通信,兼顾交互性和高效性。
  • 典型代表
    • 桌面操作系统:MS-DOS(1981 年)、Windows(1985 年,图形界面革命)、macOS(基于 UNIX);
    • 服务器操作系统:Linux(1991 年,林纳斯・托瓦兹开发,开源免费)、UNIX 的各类变种(Solaris、AIX);
  • 核心意义:操作系统进入 "通用化" 时代,覆盖个人办公、企业服务器等多种场景;Linux 的出现推动了开源软件生态的发展。

5. 现代操作系统阶段(21 世纪初至今)

  • 硬件背景:多核 CPU、云计算、物联网、移动设备普及,计算资源从单机扩展到分布式集群。
  • 核心演进方向
    • 移动操作系统:针对智能手机、平板,优化触控交互、低功耗管理,典型代表:Android(基于 Linux 内核)、iOS(基于 UNIX);
    • 分布式操作系统:管理跨地域的多台计算机集群,将其抽象为统一的计算资源池,支持海量数据处理和高并发,典型代表:Google GFS、Hadoop、Kubernetes(容器编排系统);
    • 物联网操作系统:针对嵌入式设备(传感器、智能家电),优化内存占用、低功耗、实时性,典型代表:Contiki、FreeRTOS、鸿蒙(HarmonyOS,面向万物互联);
    • 云操作系统:管理云计算中心的硬件资源,为用户提供弹性的计算、存储服务,典型代表:OpenStack、阿里云飞天;
  • 核心特征网络化、分布式、智能化、跨设备兼容,支持 "万物互联" 和 "大规模并行计算"。
相关推荐
序属秋秋秋8 小时前
《Linux系统编程之进程控制》【进程创建 + 进程终止】
linux·c语言·c++·操作系统·进程·进程创建·进程终止
rayylee12 小时前
从零开始安装Asterinas NixOS操作系统
rust·操作系统·os
想做后端的小C2 天前
操作系统:Unix 系统的 13 个索引节点
操作系统
散修-小胖子3 天前
进程的概念、组成、特征—简单易懂
计算机网络·操作系统
怀民民民4 天前
双通道点光源追踪系统
单片机·嵌入式硬件·开源·操作系统·串口·硬件·frtos
想做后端的小C5 天前
操作系统:SPOOLing(假脱机技术)
操作系统·假脱机技术
小林up5 天前
【MIT-OS6.S081作业5.1】Lab5-lazy page allocation-Eliminate allocation from sbrk()
操作系统·xv6
AthlonxpX866 天前
关于OceanBase tpmC场景与异数OS 元宇宙OLTP场景的异同答疑。
操作系统·oceanbase·架构师·元宇宙·tps·oltp·数据库引擎
fakerth6 天前
【OpenHarmony】Hiview架构
架构·操作系统·openharmony