欢迎来到系统软件的世界!
你有没有想过,电脑是如何在同时开启 Chrome、播放 Spotify 并执行系统更新的情况下,还能保持流畅而不死机的呢?这就是系统软件 (Systems Software) 的魔力所在。你可以把它想象成电脑的“经理”。应用程序(如游戏或 Word)是帮助你执行任务,而系统软件则是帮助电脑顺利运作并管理其硬件资源。
在本章中,我们将探讨所有软件的“大佬”:操作系统 (Operating System),以及它如何运用巧妙的技巧让一切井然有序。
1. 操作系统 (Operating System, OS)
操作系统是一组负责管理电脑硬件并提供应用程序执行平台的程序。没有它,你的电脑就只是一堆昂贵的金属和塑料零件!
操作系统的主要功能:
1. 处理器管理 (Processor Management): 决定 CPU 处理哪个工作以及处理的时间长短。
2. 内存管理 (Memory Management): 为正在执行的程序分配 RAM 空间。
3. I/O 管理 (I/O Management): 管理输入及输出设备(例如鼠标、键盘和打印机)。
4. 文件管理 (File Management): 管理硬盘上的数据存储方式。
5. 安全性 (Security): 处理用户名、密码及访问权限。
重点复习:操作系统在用户与硬件之间充当接口的角色。
2. 内存管理
当你开启一个应用程序时,它需要被载入到 RAM(主内存)中。由于 RAM 容量有限,操作系统必须非常聪明地运用它。你需要掌握以下三种主要技术:
A. 分页 (Paging)
分页将内存划分为固定大小的区块,称为页面 (pages)。这些是物理的划分。一个程序可能会被拆分成多个页面,分散存储在 RAM 的不同位置。操作系统会使用“页表 (page table)”来追踪这些页面的位置。
B. 分段 (Segmentation)
分段将内存划分为大小不一的区块,称为分段 (segments)。这些是逻辑性的划分。例如,一个程序可以被拆分为主代码段、数据段和函数库段,它遵循程序原本的结构。
C. 虚拟内存 (Virtual Memory)
如果觉得难懂也不用担心!只要记住:虚拟内存是“假”的 RAM。当你的 RAM 完全用尽时,操作系统会把目前没在用的数据移到硬盘 (Hard Drive) 或 SSD 的特定空间中。这让电脑“误以为”自己拥有比实际更大的内存空间。
常见的错误观念:千万别搞混分页与分段!分页指的是固定大小的物理区块,而分段则是程序的逻辑区块。
3. 中断 (Interrupts) 与中断服务程序 (ISR)
中断是一个传送给 CPU 的信号,意思是:“嘿!有紧急的事发生,先停下你手头的工作!”例如打印机缺纸或是你按下了鼠标。
中断服务程序 (Interrupt Service Routine, ISR)
当 CPU 收到中断时,它不会慌张,而是依照以下步骤执行:
1. 完成目前的 Fetch-Decode-Execute(提取-解码-执行)周期。
2. 存储寄存器目前的状态(以便稍后能恢复工作)。
3. 查找中断服务程序 (ISR)——这是一小段程序代码,告诉 CPU 如何处理该特定问题。
4. 当 ISR 执行完毕后,CPU 会载入先前存储的状态,并从中断点继续执行。
冷知识:在每一个 Fetch-Decode-Execute 周期的结尾,CPU 都会检查是否有中断发生!
4. 调度 (Scheduling)
由于 CPU 同时间只能做一件事,操作系统必须决定下一个由哪个进程 (process) 使用 CPU。这称为调度。目标是保持公平性并让电脑运作起来流畅。
常见的调度算法:
1. 循环法 (Round Robin): 每个进程获得相等的时间片。如果没能在该时间内完成,它就会被排到队列的最末端。(非常公平!)
2. 先到先服务 (FCFS): 谁先到,谁先处理。(简单,但长作业可能会卡住其他人)。
3. 最短作业优先 (SJF): CPU 挑选预计完成时间最短的作业。
4. 最短剩余时间优先: 与 SJF 类似,但如果有更新、更短的作业进来,CPU 会立即切换过去。
5. 多级反馈队列 (Multi-level Feedback Queues): 使用多个具有不同优先级的队列。虽然复杂,但能让系统保持极高的响应速度。
重点总结:调度可以防止“饥饿 (starvation)”现象,也就是某个进程永远无法获得 CPU 使用权的情况。
5. 操作系统类型
由于电脑用途各异,我们有不同的操作系统类型:
分布式操作系统 (Distributed OS): 多台电脑共同合作处理单一任务,但对用户而言看起来像是一套系统(例如大型科学计算)。
嵌入式操作系统 (Embedded OS): 内建在特定设备中,如洗衣机或微波炉。通常接口简单且任务单一。
多任务操作系统 (Multi-tasking OS): 能同时执行多个程序(如 Windows 或 macOS)。
多用户操作系统 (Multi-user OS): 允许许多用户同时登录同一台强大的电脑。
实时操作系统 (Real-Time OS, RTOS): 保证在特定时间限制内完成任务。用于飞机控制或医院监护仪等生死攸关的系统。
6. BIOS 与设备驱动程序
BIOS (基本输入输出系统)
BIOS 是你开启电脑时执行的一小段程序。它存储在 ROM(只读内存)中。其主要工作是执行 POST (Power-On Self-Test,加电自检),确保硬件运作正常,然后“开机”并讲操作系统从硬盘载入到 RAM。
设备驱动程序 (Device Drivers)
设备驱动程序是一小段软件,告诉操作系统如何与特定的硬件通讯。如果你买了一款炫酷的新电竞鼠标,你可能需要安装驱动程序,让操作系统知道那些额外的按键该做什么功能。
7. 虚拟机 (Virtual Machines, VM)
虚拟机 (VM) 是一种软件,其表现得就像一台真正的物理电脑。你可以在一套操作系统(如 Windows)里面执行另一套操作系统(如 Linux)。
为什么要使用它?
1. 中间代码 (Intermediate Code): Java 等语言使用虚拟机,让同一段程序代码可以在任何设备上执行。
2. 测试: 开发人员可以在不同的操作系统上测试软件,而无需购买十台不同的电脑。
3. 安全性: 如果病毒感染了 VM,它会被困在那个“虚拟”泡沫中,不会损害你的物理电脑。
快速总结:系统软件是维系你电脑运作的隐形胶水,它管理内存、硬件和时间,让你的应用程序能完美执行!