操作系统第一章:计算机系统概述

这个专栏基于王道考研复习指导,文章内容会根据博主做题与复盘不断优化完善,也肯定广大读者对专栏内容积极勘误。


一、操作系统的本质

操作系统是管理计算机硬件与软件资源的系统软件,在整个计算机体系中扮演三大核心角色:

  • 资源管理者:统筹处理机、存储器、I/O 设备、文件四大核心资源,负责分配、调度与回收,解决资源竞争与高效利用的问题。
  • 用户与硬件的接口:提供三种交互方式 ------ 命令接口(如 Shell 命令)、程序接口(系统调用)、图形用户接口(GUI),让用户无需直接操作硬件即可使用计算机。
  • 系统扩展器:通过虚拟技术将裸机抽象为功能更强的 "虚拟机",扩展硬件的能力边界,比如让单 CPU 支持多任务并行,让硬盘空间充当内存使用。

二、操作系统的四大基本特征

这四个特征是操作系统运行的底层逻辑,彼此关联、缺一不可,是理解多任务处理的关键:

  1. 并发

    多个程序在同一时间间隔内交替执行,宏观上呈现 "同时运行" 的效果,微观上 CPU 在不同程序间快速切换。它是操作系统最核心的特征,也是多任务处理的基础,即使单 CPU 也能通过并发实现多程序运行。

  2. 共享

    系统资源可供多个并发程序共同使用,分为两种形式:

    • 互斥共享:同一时间只能有一个程序占用资源,如打印机、键盘等独占设备。

    • 同时共享:同一时间多个程序可同时访问资源,如磁盘、内存等存储设备。

      核心联系:并发与共享互为存在条件 ------ 没有并发,资源无需共享;没有共享,并发程序无法正常执行。

  3. 虚拟

    通过技术手段将物理资源抽象为多个逻辑资源,实现资源复用。常见方式包括:

    • 时分复用:将时间划分为时间片,多个程序轮流使用资源,如虚拟 CPU、分时系统。

    • 空分复用:将物理空间划分为多个逻辑空间,如虚拟内存、虚拟磁盘。

      高阶应用:虚拟机技术,通过虚拟机管理程序(VMM)将一台物理机虚拟为多台独立的逻辑计算机,每台虚拟机可安装独立的操作系统与应用。

  4. 异步

    程序的执行过程是 "走走停停" 的,由于资源竞争或等待 I/O,程序会被暂停,后续再由操作系统调度继续执行。虽然执行速度不可预知,但操作系统会通过调度机制保证程序最终完成运行。


三、操作系统的发展历程

操作系统的发展,本质是不断提升资源利用率与用户体验的过程,每个阶段都有其标志性技术、核心特点及优缺点:

  1. 手工操作阶段
    • 特点:无操作系统,程序员直接操作硬件,独占计算机资源。
    • 优点:无软件层开销,硬件操作直接可控。
    • 缺点:人机矛盾突出,CPU 等待 I/O 设备时间过长,资源利用率极低,仅适用于单程序、小规模计算场景。
  2. 批处理系统
    • 单道批处理:引入监督程序,批量处理作业,减少手工操作时间,内存仅存一道程序。
    • 多道批处理:核心技术为多道程序设计,内存同时存放多道程序,CPU 在程序等待 I/O 时切换执行,实现 CPU 与 I/O 设备并行工作。
    • 优点:大幅提升 CPU 与内存利用率,减少人工干预,提高系统吞吐量。
    • 缺点:用户无交互能力,无法中途修改或控制程序;作业周转时间长,适合计算密集型、无需实时响应的任务。
  3. 分时操作系统
    • 特点:采用时间片轮转机制,将 CPU 时间划分为固定片长,多个用户通过终端轮流使用 CPU,实现多用户同时交互。典型代表:UNIX 系统。
    • 优点:同时性、交互性、独立性、及时性,用户可实时控制程序运行,大幅提升用户体验。
    • 缺点:系统资源开销较大,对硬实时场景支持不足,无法满足工业控制等低延迟需求。
  4. 实时操作系统
    • 特点:针对工业控制、航天、医疗等场景设计,要求在严格时间内响应外部事件,分为硬实时(必须严格遵守时间限制,否则系统失效)与软实时(允许少量时间延迟,不影响整体功能)。
    • 优点:高可靠性、强及时性,能保障关键任务的优先执行,适用于对时间敏感的场景。
    • 缺点:交互性较弱,资源调度策略固化,灵活性不足,不适用于普通多用户交互场景。
  5. 分布式与网络操作系统
    • 网络操作系统:管理网络中多台独立计算机,实现资源共享与通信,各计算机保持独立性。
    • 分布式操作系统:将多台物理机通过网络连接成统一系统,协同完成任务,用户感知不到多台机器的存在,核心是 "分布式协同"。
    • 优点:资源利用率高、系统扩展性强,支撑云计算、大数据等大规模计算场景,具备容错能力。
    • 缺点:系统复杂度高,需要解决网络延迟、分布式一致性、数据同步等问题,开发与维护成本高。

四、操作系统的运行环境

为了保障系统安全与稳定,CPU 设计了两种运行状态,配合中断、异常与系统调用机制,实现资源的安全管理:

  1. CPU 的两种运行状态

    • 内核态:运行操作系统内核程序,拥有最高权限,可执行特权指令(如 I/O 操作、修改程序状态字),能访问所有内存地址。
    • 用户态:运行普通应用程序,权限受限,只能执行非特权指令,仅能访问用户空间的内存区域。
  2. 核心机制

    • 中断:来自 CPU 外部的事件(如键盘输入、I/O 完成),是操作系统实现并发的基础。中断发生时,CPU 暂停当前程序,转而去执行中断处理程序,处理完成后返回原程序继续执行。
    • 异常:来自 CPU 内部的错误(如非法指令、内存越界、除数为 0),无法被屏蔽,一旦发生必须立即处理,否则会导致程序崩溃。
    • 系统调用:用户程序请求操作系统服务的唯一合法途径。当程序需要执行特权操作时,通过执行 "陷入" 指令触发异常,从用户态切换到内核态,由内核完成操作后,再返回用户态继续执行。常见的系统调用包括进程控制、文件操作、内存管理等。

五、操作系统的引导

按下电源键后,计算机通过以下步骤完成启动,实现从硬件到操作系统的接管:

  1. 硬件自检(POST):BIOS 或 UEFI 程序首先运行,检查 CPU、内存、显卡等核心硬件是否正常,确保硬件满足启动条件。
  2. 加载引导程序:自检通过后,BIOS/UEFI 读取硬盘的主引导记录(MBR)或 EFI 分区中的引导加载程序(如 GRUB),该程序是连接硬件与操作系统的桥梁。
  3. 加载内核:引导加载程序根据配置文件找到操作系统内核文件,将其加载到内存并执行,内核开始接管系统资源。
  4. 系统初始化 :内核初始化硬件驱动、进程管理、内存管理等核心模块,创建第一个用户进程(如initsystemd),启动各类系统服务。
  5. 启动用户环境:系统服务启动完成后,加载登录管理器,用户登录后进入桌面环境或命令行界面,此时操作系统完全启动,等待用户操作。

六、操作系统的结构设计

操作系统的结构设计直接影响其性能、可靠性、可扩展性与维护成本,主流结构包括以下四种,各有优劣:

  1. 分层式结构

    • 核心思想:将系统按功能划分为多个层次,层间单向依赖,上层只能调用下层的功能,底层为硬件,顶层为用户接口。
    • 优点:结构清晰,模块独立性强,便于调试与验证(下层错误不会影响上层),系统维护与扩展简单。
    • 缺点:分层难度大,合理划分层次需要大量设计经验;层间调用会带来额外性能开销,系统效率较低。
  2. 模块化结构

    • 核心思想:按功能将系统划分为若干独立的模块,每个模块实现特定功能,模块间通过预先定义的接口通信,无需了解彼此内部实现。
    • 优点:结构灵活,可维护性强,便于模块的替换与升级;支持并行开发,缩短开发周期。
    • 缺点:接口定义复杂,模块间的依赖关系难以梳理;缺乏统一的调度与管理机制,系统整体协调性较弱。
  3. 宏内核(大内核)

    • 核心思想:将所有核心功能(进程管理、内存管理、设备管理、文件管理等)集成在一个内核中,全部运行在内核态。典型代表:Linux、Windows。
    • 优点:模块间通信无需状态切换,效率高,系统整体性能强;功能集成度高,便于资源的统一调度与管理。
    • 缺点:内核体积庞大,结构复杂,维护难度大;耦合度高,一处模块错误可能导致整个系统崩溃,可靠性较低。
  4. 微内核

    • 核心思想:仅保留最基础的功能(如进程通信、中断处理、内存管理的核心部分)在内核态,其余功能(如文件管理、设备驱动、网络协议)移至用户态的服务进程中,通过消息传递实现通信。典型代表:QNX、Minix。
    • 优点:内核体积小,结构简单,易于维护与移植;可靠性高,服务进程崩溃不会影响内核,可实现故障隔离;扩展性强,新增功能只需添加新的服务进程。
    • 缺点:内核态与用户态之间的消息传递频繁,带来较大的性能开销;系统整体效率低于宏内核。

七、虚拟机

虚拟机是虚拟特征的典型应用,通过虚拟机管理程序(VMM,又称 Hypervisor),在一台物理机上虚拟出多台逻辑独立的计算机,每台虚拟机拥有独立的 CPU、内存、I/O 设备等资源,可安装独立的操作系统。

根据 VMM 的运行位置,虚拟机分为两类:

  • 第一类 VMM(裸金属架构):直接运行在物理硬件上,如 VMware ESXi、KVM,性能高,适合企业级虚拟化场景。
  • 第二类 VMM(寄居架构):运行在宿主操作系统之上,如 VMware Workstation、VirtualBox,易用性强,无需额外硬件配置,适合个人学习与开发。

一类 VMM(裸金属架构)**:直接运行在物理硬件上,如 VMware ESXi、KVM,性能高,适合企业级虚拟化场景。

  • 第二类 VMM(寄居架构):运行在宿主操作系统之上,如 VMware Workstation、VirtualBox,易用性强,无需额外硬件配置,适合个人学习与开发。

虚拟机技术实现了硬件资源的高效复用,是云计算、大数据等技术的核心支撑,也为跨平台开发与测试提供了便利。

相关推荐
张火火isgudi1 小时前
fedora 下使用 oh-my-posh 美化 bash
linux·bash
weixin_462446231 小时前
使用 pip3 一键卸载当前环境中所有已安装的 Python 包(Linux / macOS / Windows)
linux·python·macos
梁洪飞1 小时前
armv7 cache机制
linux·arm开发·嵌入式硬件·arm·memcache
举手1 小时前
UDP Echo Server(学习版)
linux·服务器·网络·网络协议·学习·udp
fpcc1 小时前
跟我学C++中级篇——文件和目录
linux·c++
Pth_you1 小时前
Uptime Kuma安装/定时通知脚本
linux·运维·安全
weixin_462446231 小时前
Ubuntu 使用 systemd + Nginx 部署 code-server(含 HTTPS)
nginx·ubuntu·https
leo03081 小时前
Ubuntu (NVIDIA Jetson) 开启 Wi-Fi 后系统高延迟、Ping 不通甚至硬死机排查全过程
linux·运维·ubuntu
济6171 小时前
linux 系统移植(第八期)----Linux 内核的获取、编译、顶层 Makefile 的简介-- Ubuntu20.04
linux