操作系统笔记
✅导论
✅ (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.
1 2 命令名 [选项] [参数] Command [options] [arguments]
命令名(command) : 要执行的命令,如
ls
, cd
, cp
选项(option) : 用于修改命令功能,如
-l
, -a
参数(argument) : 操作对象,如文件、目录名等
🔸示例 Example:
列出 /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
临界资源 :一次只能由一个进程访问的资源(如打印机)。
临界区 :访问临界资源的那段代码。
进入临界区的三原则 :
空闲时允许进入
只能一个进程在临界区
有限等待
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 ) 唤醒等待队列中的一个进程; }
应用 :
7️⃣ 多道程序设计
Multi-Programming
同时把多个程序加载进内存,让它们交替运行。
优点 :
提高 CPU 利用率
提高内存、I/O 使用率
增加系统吞吐量
8️⃣ 死锁 Deadlock
定义 Definition :
若多个进程无限期地互相等待对方占用的资源,系统就处于死锁状态。
四个必要条件 (同时满足才会产生死锁):
互斥条件 Mutual Exclusion
不可剥夺条件 No Preemption
占有且申请条件 Hold and Wait
循环等待条件 Circular Wait
9️⃣ 死锁的解决 Deadlock
Handling
🛡 死锁预防(Prevention):
🚦 死锁避免(Avoidance):
动态判断是否进入死锁,例如使用银行家算法(Banker's Algorithm)
🧹 死锁检测与恢复:
🔟 进程的生命周期 Process
Lifecycle
创建(Create)
就绪(Ready)
运行(Running)
阻塞(Blocked)
唤醒(Wake Up)
终止(Terminate)
📘 处理机管理 Processor
Management
1️⃣
作业调度与进程调度 Job Scheduling vs Process Scheduling
类型
功能 Function
说明 Description
作业调度 (Job Scheduling)
负责作业从“后备状态”进入“执行状态”
挑选作业、分配资源、创建进程、记录作业完成情况
进程调度 (Process Scheduling)
负责将就绪进程分配给 CPU
必须的调度,用来实现进程并发运行
📌 类比类比:作业调度 = 演员选角;进程调度 =
演员上场表演
2️⃣ 作业的四种状态 Four
States of a Job
提交(Submit) :用户提交作业,进入外存等待
后备(Hold) :在后备队列中等待调度
执行(Execution) :已被作业调度选中,进入内存开始运行
完成(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
执行流程 :
用户输入命令
Shell 解析命令(如 ls -l
)
Shell 查找命令对应的可执行文件
Shell 创建一个子进程
子进程执行命令程序(如 /bin/ls
)
命令运行结束,子进程退出
控制权回到 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
内存分配 Memory
Allocation :将内存划分给多个进程使用
地址映射 Address
Mapping :将逻辑地址转换为物理地址
内存保护 Memory
Protection :防止非法访问他人内存空间
内存扩充 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 的四个基本特征
虚拟扩充 :逻辑内存 > 物理内存
部分装入 :程序无需全部进内存即可执行
离散分配 :程序分块加载,不连续
多次对换 :页面可多次换入换出内存
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:
文件管理 :创建、删除、读写、修改等操作
目录管理 :维护层级结构,方便检索
存储空间管理 :空间分配、释放
文件访问控制 :确保文件访问安全、权限合理
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
4️⃣ 路径名与文件链接 Pathnames
& Links
🔹 路径名 Pathname
类型
说明
示例
绝对路径
从根目录 /
开始
/home/user/file.txt
相对路径
相对于当前目录
../docs/file.txt
🔹 文件链接 File Links
硬链接 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 -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
监视设备状态 (Monitor Device Status)
设备分配与回收 (Device Allocation &
Deallocation)
完成I/O操作 (Perform I/O Operations)
缓冲管理与地址转换 (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
用户程序发出 I/O 请求(如 read/write 调用)
系统调用陷入内核(进入内核态)
I/O 管理模块检查权限、分配设备
启动 I/O 操作并注册中断处理程序
控制权返回用户进程或进入等待状态
I/O 完成后,设备发出中断信号
系统通过中断响应进行中断处理
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
系统调用是用户进程与内核交互的桥梁 。
系统调用的一般过程:
用户进程发出系统调用请求(如 read()
)
进入内核态(由陷入指令实现)
内核执行指定的服务(如读文件)
操作完成后恢复用户态并返回结果