Files
obsidian/操作系统/00_课程导航.md

178 lines
7.8 KiB
Markdown
Raw Permalink Normal View History

2026-06-13 23:46:22 +08:00
# 🗺️ 操作系统课程导航
> **课程**:操作系统 | **对象**:软件工程 3、4 班 | **主讲**:徐钦桂
> **教材**汤小丹《计算机操作系统》、《操作系统概念》、《Linux编程》
> **资料来源**`F:\操作系统\` 目录下的课件(.ppt/.pptx、实验指导书.doc、源代码
---
## 📚 课程内容总览
```mermaid
mindmap
root((操作系统))
基础篇
系统运行机制(中断/MMU/CPU模式/系统调用)
Linux简介与使用(目录/文件/命令)
Linux C编程(gdb/make/编译链接)
文件与存储
文件IO(UNIX IO/mmap/重定向)
磁盘空间管理(FAT/NTFS/Ext2/RAID)
存储管理(分页/分段/段页式)
虚拟存储器(请求分页/页面置换/工作集)
进程与线程
进程控制(fork/exec/wait/signal)
多线程(互斥/同步/生产者消费者)
进程间通信(管道/消息队列/共享内存)
处理机调度(FCFS/SJF/RR/MFQ/CFS)
死锁(预防/避免/检测/银行家算法)
网络与并发
网络编程(socket/客户端服务器)
并发服务器(多进程/多线程/预线程化)
系统底层
程序代码优化
2026-06-14 19:05:57 +08:00
操作系统实践
Web服务器初步实现
多进程多线程服务器
线程池与业务分割模型
2026-06-13 23:46:22 +08:00
```
---
## 🛤️ 推荐学习路线
```mermaid
graph LR
A["第01讲 系统运行机制
中断·MMU·系统调用"] --> B["第02讲 Linux基础
目录·文件·命令"]
B --> C["第03讲 C编程基础
gdb·make·编译"]
C --> D["第04讲 文件IO
open·read·write·mmap"]
D --> E["实验01 IO编程"]
C --> F["第05讲 进程控制
fork·exec·signal"]
F --> G["实验02 进程控制"]
F --> H["第06讲 多线程
mutex·sem·生产者消费者"]
H --> I["实验03 多线程"]
F --> J["第07讲 进程间通信
pipe·shm·msg"]
J --> K["实验04 IPC"]
D --> L["第08讲 网络编程
socket·toggle"]
L --> M["实验05 网络通信"]
L --> N["第09讲 并发服务器
多进程·多线程·预线程化"]
N --> O["实验06 并发服务器"]
A --> P["第11讲 处理机调度
FCFS·SJF·RR·MFQ·CFS"]
P --> Q["第12讲 死锁
银行家算法·检测·解除"]
D --> R["第10讲 磁盘管理
FAT·Ext2·RAID"]
D --> S["第13讲 存储管理
分页·分段·TLB"]
S --> T["第14讲 虚拟存储器
请求分页·置换算法"]
C --> U["第15讲 代码优化"]
```
---
## 📖 各讲笔记
### 基础篇
| 讲次 | 主题 | 核心内容 | 课件 |
|------|------|----------|------|
| [[01_系统运行机制]] | 系统运行机制 | 中断机制、MMU地址变换、CPU双模式、系统调用 | 第01讲_系统运行机制.ppt |
| [[02_Linux基础]] | Linux简介与使用 | UNIX/Linux历史、目录结构、文件操作、权限 | 第02讲_Linux简介与使用.pptx |
| [[03_C语言编程基础]] | Linux C编程 | 编译链接过程、gdb调试、Makefile、wrapper库 | 第03讲/Linux C编程 |
### 文件与IO
| 讲次 | 主题 | 核心内容 | 课件 |
|------|------|----------|------|
| [[04_文件IO编程]] | 文件IO编程 | open/read/write/close、mmap、dup2、文件共享 | 第04讲/实验01 |
| [[05_磁盘空间管理]] | 磁盘空间管理 | 连续/链接/索引组织、FAT12/16/32、NTFS、Ext2、RAID | 第04讲_磁盘空间管理.ppt |
### 进程与线程
| 讲次 | 主题 | 核心内容 | 课件 |
|------|------|----------|------|
| [[06_进程控制]] | 进程控制 | fork/exec/wait/exit、信号机制、shell实现 | 第05讲/实验02 |
| [[07_多线程编程]] | 多线程编程 | pthread、互斥锁、信号量、生产者消费者、并行计算 | 第06讲/实验03 |
| [[08_进程间通信]] | 进程间通信 | 管道、FIFO、消息队列、共享内存、IPC信号量 | 第07讲/实验04 |
### 网络与并发
| 讲次 | 主题 | 核心内容 | 课件 |
|------|------|----------|------|
| [[09_网络编程基础]] | 网络编程 | socket API、gethostbyname、客户端服务器模型 | 第08讲/实验05 |
| [[10_并发服务器]] | 并发网络服务器 | 多进程/多线程/预线程化服务器、sbuf缓冲区 | 第09讲/实验06 |
### 系统管理
| 讲次 | 主题 | 核心内容 | 课件 |
|------|------|----------|------|
| [[11_处理机调度]] | 处理机调度 | FCFS/SJF/HRRF/RR/优先级/MFQ、Linux CFS调度 | 第10讲_处理机调度.ppt |
| [[12_死锁]] | 死锁 | 四个必要条件、预防/避免/检测/解除、银行家算法 | 第11讲_死锁.ppt |
### 存储管理
| 讲次 | 主题 | 核心内容 | 课件 |
|------|------|----------|------|
| [[13_存储管理基础]] | 存储管理概念与程序装入 | 逻辑/物理地址、地址空间、装入链接、内核/用户空间 | 第12讲_存储管理概念与程序装入.ppt |
| [[14_分页存储管理]] | 分页存储管理 | 页表、地址变换、TLB快表、多级页表、倒转页表 | 第12讲_分页式存储管理.ppt |
| [[15_段式存储管理]] | 段式存储管理 | 分段原理、段表、段页式存储管理 | 第12讲_段式存储管理.ppt |
| [[16_虚拟存储器]] | 虚拟存储器 | 局部性原理、请求分页、页面置换算法、工作集、抖动 | 第12讲_虚拟存储器.ppt |
### 系统底层
| 讲次 | 主题 | 核心内容 | 课件 |
|------|------|----------|------|
| [[17_程序代码优化]] | 程序代码优化 | 编译优化、循环优化、缓存友好编程 | 第14讲_程序代码优化.ppt |
---
## 🔬 实验指南
| 实验 | 主题 | 核心任务 | 涉及章节 |
|------|------|----------|----------|
| [[实验01_IO编程]] | Linux IO编程 | student.txt处理、结构体IO、测时、词频统计 | 第04讲 |
| [[实验02_进程控制]] | 进程控制编程 | 进程树、shell实现、daemon监控、信号管理 | 第06讲 |
| [[实验03_多线程编程]] | 多线程编程 | 3线程打印、信号量互斥、生产者消费者、并行求和 | 第07讲 |
| [[实验04_进程间通信]] | 进程间通信 | 管道通信、消息队列CS、共享内存+信号量同步 | 第08讲 |
| [[实验05_网络通信]] | 网络通信编程 | toggle测试、weblet服务器、文件下载、远程shell | 第09讲 |
| [[实验06_并发服务器]] | 并发网络应用 | 多进程/多线程/预线程化weblet、web代理 | 第10讲 |
---
2026-06-14 19:05:57 +08:00
## 🖥️ 操作系统实践
| 实践 | 主题 | 核心内容 | 涉及章节 |
|------|------|----------|----------|
| [[实践01_Web服务器初步实现]] | Web服务器初步实现 | 单进程迭代式服务器、HTTP请求处理、RIO函数库、性能测试与优化 | 第09讲、第10讲、第18讲 |
| [[实践02_多进程多线程服务器]] | 多进程多线程服务器 | fork并发、pthread并发、select/epoll多路复用、性能对比 | 第06讲、第07讲、第10讲 |
| [[实践03_线程池与业务分割]] | 线程池与业务分割模型 | 线程池实现、预线程化、sbuf生产者消费者、业务分割模型 | 第07讲、第10讲 |
---
2026-06-13 23:46:22 +08:00
## 📎 附录
- [[附录A_Wrapper库参考]] — 课程提供的C语言包装库wrapper.h/libwrapper.a
- [[附录B_术语表]] — 操作系统核心术语速查
- [[附录C_学习路径指南]] — 根据基础定制学习方案
---
## 📂 源代码索引
课程源代码位于 `F:\操作系统\` 下:
| 目录 | 内容 | 文件数 |
|------|------|--------|
| `chap3/` | C语言基础hello.c, sum.c, gdbuse.c, cmdpar.c等 | ~10 |
| `chap4/` | 文件IOcpfile.c, fcopy1.c, lseek1.c, mmap1.c, dup2.c等 | ~15 |
| `chap5/` | 进程控制fork1-3.c, exec1.c, waitpid1.c, signal1.c, shellex.c等 | ~20 |
| `chap6/` | 多线程pthread1.c, threadrace.c, mutex1.c, norace.c等 | ~15 |
| `chap7/` | IPCpipe1.c, fifo1.c, shmread.c, msgsnd1.c等 | ~20 |
| `chap8/` | 网络编程hostinfo.c, toggle.c, togglec.c等 | ~15 |
| `chap9/` | 并发服务器toggless1-2.c, togglest.c等 | ~15 |
| `lib/` | wrapper库wrapper.h, libwrapper.a | 2 |