操作系统笔记

✅导论


✅ (1) 什么是操作系统(Definition of OS)

操作系统是控制和管理计算机各种硬件和软件资源的系统软件,能够有效组织多道程序运行,是用户与计算机之间的接口。

🔸Operating System (OS) is the core system software that manages hardware and software resources, organizes the execution of programs, and acts as a bridge between users and hardware.

📌 记忆要点 Memory Tips:

中文关键词 英文关键词
是什么:核心系统软件 What: Core system software
管什么:控制硬件资源 Manages: Hardware/software resources
有何用:扩展硬件,方便用户 Purpose: Extends hardware, simplifies usage

✅ (2) 操作系统的五大主要功能(Five Major Functions of OS)

功能 中文解释 英文解释
存储器管理 分配、保护和扩充内存资源 Memory Management: Allocation, protection, expansion
处理机管理 控制和调度进程、线程 CPU/Process Management: Scheduling and control
设备管理 管理I/O设备、驱动、缓冲等 Device Management: I/O, drivers, buffering
文件管理 管理文件系统和访问权限 File Management: File systems, directories, access
用户接口管理 提供命令、图形或系统调用接口 User Interface: CLI, GUI, System Calls

✅ (3) 操作系统的地位(Position of OS)

  • 操作系统是裸机(bare machine)上的第一层软件
  • 所有应用程序都必须建立在操作系统之上
  • 它为上层软件提供运行平台和基础服务

OS is the first layer above the bare hardware, and it provides the foundation for all other software.


✅ (4) 操作系统的基本特征(Basic Characteristics)

特征 中文解释 英文解释
并发性 Concurrency 多个程序在同一时间间隔穿插运行 Multiple programs executing in overlapping time
共享性 Sharing 多个任务共享系统资源 System resources are shared among tasks
异步性 Asynchronism 程序执行不可预知,由系统调度控制 Execution order is unpredictable, depends on OS scheduling

🔸形象理解

  • 并发:大家都在动 → “大家都前进了”
  • 共享:资源大家用 → “一件东西大家用”
  • 异步:程序不一定同步 → “你走我停”

✅ (5) 操作系统的主要类型(Major Types of OS)

类型 中文说明 英文解释
多道批处理系统 多个作业成批处理,提高资源利用率 Multi-programmed Batch System
分时系统 多用户共享CPU时间片,交互性强 Time-Sharing System (e.g., UNIX)
实时系统 实时响应外部事件,严格时限 Real-Time System
个人机系统 为单个用户或家庭用户设计 Personal Computer OS
网络操作系统 连接多台计算机实现通信 Network Operating System
分布式操作系统 看似单机,实为多机协作 Distributed OS

✅ (6) 分时概念(Time-Sharing Concept)

分时(Time Sharing) 是指多个用户或程序共享 CPU 时间资源,每个用户感觉自己独占计算机。

Time-sharing allows multiple users to use the CPU by giving each a short time slice (quantum), making it seem like simultaneous use.


✅ (7) UNIX 命令格式(UNIX Command Format)

1
2
命令名 [选项] [参数]
Command [options] [arguments]
  • 命令名(command): 要执行的命令,如 ls, cd, cp
  • 选项(option): 用于修改命令功能,如 -l, -a
  • 参数(argument): 操作对象,如文件、目录名等

🔸示例 Example:

1
ls -l /home/user

列出 /home/user 目录下的文件(长格式)


✅ (8) 现代操作系统的三种用户界面(Three Types of Interfaces)

界面类型 中文解释 英文解释
命令行界面 CLI 输入命令,功能强,适合高级用户 Command-Line Interface
图形用户界面 GUI 使用图标、菜单等,操作简单 Graphical User Interface
系统调用接口 程序与OS交互的接口 System Call Interface

✅ (9) 分时系统 vs 实时系统(Time-Sharing vs Real-Time)

系统 特点 应用
分时系统 资源由多个用户共享,响应及时 UNIX, 多用户环境
实时系统 事件发生后立即处理,要求高时效性 工业控制、嵌入式系统

📘 进程管理 Process Management


1️⃣ 什么是进程?What is a Process?

定义 Definition

  • 进程是程序的一次执行过程,具有动态性并发性
  • 是系统进行资源分配和调度的基本单位。
  • 拥有独立的地址空间和执行状态。

与程序的区别 Difference from a Program

程序(Program) 进程(Process)
静态的代码集合 动态执行过程(“活的”)
不能独立运行 能独立调度和分配资源
无并发性 可与其他进程并发执行
没有控制信息(PCB) 有进程控制块(PCB)

2️⃣ 进程的三种基本状态 Three Basic States of a Process

状态 State 描述 Description
运行态 Running 正在占用 CPU 执行指令
就绪态 Ready 有执行条件,等待 CPU
阻塞态 Blocked 等待某事件(I/O、信号量等)

状态转换图 State Transitions

1
2
3
就绪(Ready) ─→ 运行(Running) ←─ 被调度
↑ ↓
阻塞(Blocked)←─ 运行中等待事件

3️⃣ 进程组成 Components of a Process

  • PCB(Process Control Block,进程控制块):系统用来管理进程的核心数据结构。
  • 程序段(Code Segment):可执行指令代码。
  • 数据段(Data Segment):进程运行时的数据。

4️⃣ 同步与互斥 Synchronization & Mutual Exclusion

概念 Concept 说明 Explanation
同步 Synchronization 进程间为完成共同任务,必须协调顺序
互斥 Mutual Exclusion 多进程竞争同一资源时,需保证同一时刻只能有一个进程使用

5️⃣ 临界资源与临界区 Critical Resource & Section

  • 临界资源:一次只能由一个进程访问的资源(如打印机)。
  • 临界区:访问临界资源的那段代码。

进入临界区的三原则

  1. 空闲时允许进入
  2. 只能一个进程在临界区
  3. 有限等待

6️⃣ 信号量与 PV 操作 Semaphore and PV Operations

信号量(Semaphore)

  • 一个整数 + 一个等待队列
  • 控制进程同步与互斥的工具

P 操作(wait)

1
2
3
4
P(S) {
S = S - 1;
if (S < 0) 进程阻塞,放入等待队列;
}

V 操作(signal)

1
2
3
4
V(S) {
S = S + 1;
if (S <= 0) 唤醒等待队列中的一个进程;
}

应用

  • 互斥锁:初值为 1
  • 资源计数:初值为资源个数

7️⃣ 多道程序设计 Multi-Programming

  • 同时把多个程序加载进内存,让它们交替运行。
  • 优点
    • 提高 CPU 利用率
    • 提高内存、I/O 使用率
    • 增加系统吞吐量

8️⃣ 死锁 Deadlock

定义 Definition

  • 若多个进程无限期地互相等待对方占用的资源,系统就处于死锁状态。

四个必要条件(同时满足才会产生死锁):

  1. 互斥条件 Mutual Exclusion
  2. 不可剥夺条件 No Preemption
  3. 占有且申请条件 Hold and Wait
  4. 循环等待条件 Circular Wait

9️⃣ 死锁的解决 Deadlock Handling

🛡 死锁预防(Prevention):

  • 破坏必要条件之一(例如不允许“占有且申请”)

🚦 死锁避免(Avoidance):

  • 动态判断是否进入死锁,例如使用银行家算法(Banker's Algorithm)

🧹 死锁检测与恢复:

  • 允许死锁发生,检测后杀死某些进程以恢复

🔟 进程的生命周期 Process Lifecycle

  1. 创建(Create)
  2. 就绪(Ready)
  3. 运行(Running)
  4. 阻塞(Blocked)
  5. 唤醒(Wake Up)
  6. 终止(Terminate)

📘 处理机管理 Processor Management


1️⃣ 作业调度与进程调度 Job Scheduling vs Process Scheduling

类型 功能 Function 说明 Description
作业调度(Job Scheduling) 负责作业从“后备状态”进入“执行状态” 挑选作业、分配资源、创建进程、记录作业完成情况
进程调度(Process Scheduling) 负责将就绪进程分配给 CPU 必须的调度,用来实现进程并发运行

📌 类比类比:作业调度 = 演员选角;进程调度 = 演员上场表演


2️⃣ 作业的四种状态 Four States of a Job

  1. 提交(Submit):用户提交作业,进入外存等待
  2. 后备(Hold):在后备队列中等待调度
  3. 执行(Execution):已被作业调度选中,进入内存开始运行
  4. 完成(Finish):作业运行完毕,系统清理资源

3️⃣ 三种常见调度算法 Three Common Scheduling Algorithms

算法 英文 原理 特点
先来先服务法 FCFS (First Come First Served) 按到达时间先后 简单公平,但响应慢
时间片轮转法 RR (Round Robin) 给每个进程分配固定时间片 适用于时间共享系统
优先级调度法 Priority Scheduling 按优先级调度进程 快速响应高优先级进程,可能导致饥饿

4️⃣ 调度算法评价指标 Scheduling Evaluation Metrics

指标 英文 含义
吞吐量 Throughput 单位时间内完成的作业数
周转时间 Turnaround Time = 完成时间 - 到达时间 作业从提交到完成的总时间
平均周转时间 Avg Turnaround Time 所有作业周转时间的平均值
带权周转时间 Weighted Turnaround Time = 周转时间 ÷ 服务时间 反映相对效率
平均带权周转时间 Avg Weighted Turnaround Time 所有作业带权周转时间的平均值

📊 示例计算 Example Table(用于算法题计算):

作业 到达时间 Arrival 服务时间 Service 完成时间 Finish 周转时间 TAT 带权周转时间 WTAT
J1 0 4 4 4 1.0
J2 1 3 7 6 2.0
J3 2 2 9 7 3.5

5️⃣ shell 命令执行过程 Shell Command Execution Flow

1
$ ls -l

执行流程

  1. 用户输入命令
  2. Shell 解析命令(如 ls -l
  3. Shell 查找命令对应的可执行文件
  4. Shell 创建一个子进程
  5. 子进程执行命令程序(如 /bin/ls
  6. 命令运行结束,子进程退出
  7. 控制权回到 Shell,等待下一条命令

📌 本质:命令执行 = 创建子进程 + 执行程序


🧠 存储器管理 Memory Management 详解笔记


1️⃣ 存储系统的层次结构 Three-Level Memory Hierarchy

层级 中文 英文 特点
第一级 高速缓存 Cache 速度最快,容量小,价格高
第二级 主存 / 内存 Main Memory / RAM CPU直接访问的存储区域
第三级 辅助存储 Secondary Storage 如磁盘、硬盘,容量大,速度慢

📌 三层存储结构是为了在速度、容量和成本之间达到平衡。


2️⃣ 用户程序的处理阶段 Program Processing Stages

阶段 英文 功能
编辑 Edit 编辑源代码
编译 Compile 编译器将源代码翻译为目标代码
连接 Link 将多个目标模块链接成一个完整程序
装入 Load 将程序装入内存以准备运行
运行 Run 程序被调度运行,使用CPU

3️⃣ 存储器管理的基本功能 Memory Management Functions

  1. 内存分配 Memory Allocation:将内存划分给多个进程使用
  2. 地址映射 Address Mapping:将逻辑地址转换为物理地址
  3. 内存保护 Memory Protection:防止非法访问他人内存空间
  4. 内存扩充 Memory Expansion:通过虚拟存储等机制扩大逻辑内存

4️⃣ 核心概念 Core Concepts

概念 英文 解释
逻辑地址 Logical Address 程序使用的地址,由CPU生成
物理地址 Physical Address 实际在内存中的位置,由硬件管理
可重定位地址 Relocatable Address 在程序装入时可变换的地址
重定位 Relocation 将逻辑地址转换为物理地址的过程
静态重定位 Static Relocation 装入时进行重定位,之后不变
动态重定位 Dynamic Relocation 程序运行时由硬件实时转换地址
内碎片 Internal Fragmentation 被分配但未使用的内存空间
外碎片 External Fragmentation 多段小空间无法满足一个大请求
虚拟存储器 Virtual Memory 把磁盘当作“虚拟主存”进行扩展

✅ 虚拟存储器 Virtual Memory 的四个基本特征

  1. 虚拟扩充:逻辑内存 > 物理内存
  2. 部分装入:程序无需全部进内存即可执行
  3. 离散分配:程序分块加载,不连续
  4. 多次对换:页面可多次换入换出内存

5️⃣ 分页存储管理 Paging

📌 概念说明:

  • 逻辑地址空间划分为固定大小的页(Page)
  • 物理内存空间划分为相同大小的页框(Frame)
  • 使用页表(Page Table)来进行地址转换

📎 地址转换过程(逻辑地址 → 物理地址):

逻辑地址 = 页号(Page Number)+ 页内偏移(Offset) 物理地址 = 页框号(由页表查得)+ 偏移


6️⃣ 分段存储管理 Segmentation

📌 概念说明:

  • 将程序按逻辑模块划分为若干段(如代码段、数据段、栈段)
  • 每段有段号(Segment Number)段内偏移(Offset)
  • 使用段表(Segment Table)进行地址转换

📎 地址转换:

逻辑地址 = 段号 + 段内偏移 物理地址 = 段表[段号].基址 + 偏移


7️⃣ 分页 vs 分段 Paging vs Segmentation

对比项 分页 Paging 分段 Segmentation
单位 固定大小的页 逻辑上的段
产生目的 内存利用率高 方便程序设计
地址结构 页号 + 页内偏移 段号 + 段内偏移
表结构 页表 段表
外部碎片 有可能
内部碎片 有可能 较少

8️⃣ 页面置换 Page Replacement

当缺页中断发生、但物理内存已满时,系统必须选择一个页将其换出:

✅ 常见算法:

算法 英文 思路
先进先出法 FIFO (First In First Out) 最早进入内存的页最先被淘汰
最佳置换法 OPT (Optimal) 将未来最久不用的页换出(理论最优)
最近最少使用 LRU (Least Recently Used) 淘汰最近最少被访问的页

📌 实际系统中常用近似LRU方法(如时钟算法)。


9️⃣ 对换技术 Swapping

对换是指将暂时不用的进程整体或部分从内存换出到磁盘,为活跃进程腾出空间。


🧮 示例题:分页地址转换

假设:页面大小为 4KB,逻辑地址为 0x1234 页号 = 0x1 = 1 页内偏移 = 0x234 = 564 页表[1] = 0x5(即物理页框号为5) → 物理地址 = 0x5000 + 0x234 = 0x5234


📁 文件系统 File System 详细笔记(含UNIX命令)


1️⃣ 文件与文件系统的基本概念

名称 中文 英文 说明
文件 File 操作系统中数据的逻辑单位,用于持久化存储信息
文件系统 File System 管理和组织文件的机制,包括文件组织、目录结构、权限控制
目录 Directory 一种特殊的文件,用于保存其他文件的名字及其信息

✅ 文件系统的主要功能 Functions of File System:

  1. 文件管理:创建、删除、读写、修改等操作
  2. 目录管理:维护层级结构,方便检索
  3. 存储空间管理:空间分配、释放
  4. 文件访问控制:确保文件访问安全、权限合理

2️⃣ 文件的逻辑与物理组织

🔷 文件的逻辑组织 Logical Organization

逻辑上,文件可分为以下类型:

类型 英文 说明
顺序文件 Sequential File 数据按顺序排列,读取也从头到尾
索引文件 Indexed File 通过索引表查找,提高访问效率
直接文件 Direct File 使用某种函数(如哈希)直接定位记录

🔷 文件的物理组织 Physical Organization

主要解决文件如何在磁盘块上存储的问题:

方式 英文 说明
连续分配 Contiguous Allocation 文件各部分连续存储,简单但易产生外碎片
链接分配 Linked Allocation 每个块指向下一个块,解决碎片但读写慢
索引分配 Indexed Allocation 使用索引块存储所有数据块地址,访问快但占空间

3️⃣ 目录与目录结构 Directory and Directory Structure

✅ 常见目录结构:

结构 英文 特点
单级目录 Single-Level 简单,但容易命名冲突
两级目录 Two-Level 每个用户有自己的目录,隔离性好
树型结构 Tree Directory 每个目录可以有子目录,UNIX系统采用
有向无环图 DAG Directory 允许共享子目录或文件
通用图结构 General Graph 最灵活,但易出现循环结构,管理复杂

✅ UNIX 系统目录结构特点:

  • 根目录为 /,一切从根开始
  • 使用层级结构(Tree-like)
  • 示例路径:/home/user/docs/file.txt

🔹 路径名 Pathname

类型 说明 示例
绝对路径 从根目录 / 开始 /home/user/file.txt
相对路径 相对于当前目录 ../docs/file.txt
  • 硬链接 Hard Link:多个路径名指向同一个 inode
  • 符号链接 Symbolic Link(软链接):一个文件指向另一个文件的路径(类似快捷方式)

5️⃣ 文件存取控制 File Access Control

✅ 存取控制作用:防止未授权访问或误操作

🔐 UNIX 系统采用的方式:

使用 访问权限位(rwx) + 用户分类,组成9位权限字段:

1
2
3
rwx rwx rwx
↑ ↑ ↑
u g o (用户、组、其他)
字母 权限 说明
r read
w write
x execute 执行

✅ 权限显示命令:

1
ls -l filename

示例输出:

1
-rw-r--r--  1 user group 1234 Apr 30 10:00 file.txt

解释:

  • -:表示普通文件(d 表示目录)
  • rw-:用户有读写权限
  • r--:组有只读权限
  • r--:其他人也有只读权限

6️⃣ UNIX 文件的分类 Types of UNIX Files

类型 含义
普通文件(Regular File) 文本、二进制文件等
目录文件(Directory File) 存储其他文件名及其 inode
链接文件(Link File) 符号链接
设备文件(Device File) 映射到物理设备,如 /dev/sda
套接字文件(Socket File) 进程间通信用
命名管道(FIFO) 一种特殊的通信方式

7️⃣ 文件与目录的基本UNIX操作命令

命令 功能 示例
cat 查看文件内容 cat file.txt
more 分页查看 more file.txt
ls 列出目录内容 ls -l /home
cp 复制文件或目录 cp a.txt b.txt
mv 移动/重命名文件 mv old.txt new.txt
rm 删除文件 rm file.txt
rmdir 删除空目录 rmdir emptydir
cd 改变当前目录 cd /home/user
pwd 显示当前目录 pwd
touch 创建空文件 touch new.txt
chmod 改变权限 chmod 755 file.sh

⚙️ 设备管理 Device Management 详细笔记


1️⃣ 设备的分类 Classification of Devices

类型 英文名称 特点 示例
块设备 Block Devices 以块为单位访问,可定位访问 硬盘、U盘、SSD
字符设备 Character Devices 按字符流访问,顺序处理 键盘、鼠标、打印机
虚拟设备 Virtual Devices 通过软件模拟的设备 虚拟打印机、网络设备

2️⃣ 设备管理的主要功能 Functions of Device Management

  1. 监视设备状态(Monitor Device Status)
  2. 设备分配与回收(Device Allocation & Deallocation)
  3. 完成I/O操作(Perform I/O Operations)
  4. 缓冲管理与地址转换(Buffer Management & Address Mapping)

3️⃣ 缓冲技术 Buffering Technology

🔹 目的:

  • 弥补CPU 与 I/O 速度不匹配的问题
  • 提高设备利用率
  • 降低中断频率,提高系统吞吐量

🔹 缓冲方式:

方式 英文 特点
单缓冲 Single Buffer 一个缓冲区,CPU 与 I/O 串行工作
双缓冲 Double Buffer 两个缓冲区,I/O 与 CPU 可并行
循环缓冲 Circular Buffer 缓冲队列,适合多设备并发访问

4️⃣ 常用设备分配技术 Device Allocation Techniques

技术 英文 适用场景 说明
独占分配 Dedicated Allocation 打印机等 设备仅供一个进程使用
共享分配 Shared Allocation 显示器、键盘 多个进程可轮流使用
虚拟分配 Virtual Allocation 虚拟打印机 系统模拟设备,间接访问

5️⃣ SPOOLing 技术(模拟输入输出)Spooling System

SPOOL(Simultaneous Peripheral Operations On-Line)

✅ 功能与思想:

  • 使用磁盘当作缓冲区,将输入输出请求临时排队
  • 实现虚拟设备共享,提高资源利用率
  • 常用于打印机、批处理系统

✅ 实现方式:

1
用户请求打印 → 数据写入磁盘缓冲区 → 后台打印服务读取缓冲区 → 控制打印机输出

6️⃣ I/O请求的处理步骤 Steps in Handling an I/O Request

  1. 用户程序发出 I/O 请求(如 read/write 调用)
  2. 系统调用陷入内核(进入内核态)
  3. I/O 管理模块检查权限、分配设备
  4. 启动 I/O 操作并注册中断处理程序
  5. 控制权返回用户进程或进入等待状态
  6. I/O 完成后,设备发出中断信号
  7. 系统通过中断响应进行中断处理

7️⃣ 中断系统 Interrupt System

📌 关键概念

名称 英文 含义
中断 Interrupt 设备向CPU发出信号,通知事件完成或异常
中断请求 IRQ (Interrupt Request) 外设发给 CPU 的中断信号
中断源 Interrupt Source 引起中断的设备或事件(如硬盘完成读写)
中断响应 Interrupt Response CPU 保存现场并转去执行中断服务程序

8️⃣ 中断处理的一般过程 General Interrupt Handling Process

1
2
3
4
5
6
7
① 外设发出中断信号 →
② CPU 检测到中断请求 →
③ 保存当前执行现场(程序计数器PC、寄存器等) →
④ 跳转到中断处理程序 →
⑤ 执行设备I/O处理 →
⑥ 恢复原现场 →
⑦ 继续原程序执行

✨ 操作系统使用 中断向量表(Interrupt Vector Table) 来快速定位对应的中断处理程序地址。


9️⃣ 系统调用 System Call

系统调用是用户进程与内核交互的桥梁

系统调用的一般过程:

  1. 用户进程发出系统调用请求(如 read()
  2. 进入内核态(由陷入指令实现)
  3. 内核执行指定的服务(如读文件)
  4. 操作完成后恢复用户态并返回结果