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

7.8 KiB
Raw Permalink Blame History

🗺️ 操作系统课程导航

课程:操作系统 | 对象:软件工程 3、4 班 | 主讲:徐钦桂 教材汤小丹《计算机操作系统》、《操作系统概念》、《Linux编程》 资料来源F:\操作系统\ 目录下的课件(.ppt/.pptx、实验指导书.doc、源代码


📚 课程内容总览

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/客户端服务器)
      并发服务器(多进程/多线程/预线程化)
    系统底层
      程序代码优化
    操作系统实践
      Web服务器初步实现
      多进程多线程服务器
      线程池与业务分割模型

🛤️ 推荐学习路线

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讲

🖥️ 操作系统实践

实践 主题 核心内容 涉及章节
实践01_Web服务器初步实现 Web服务器初步实现 单进程迭代式服务器、HTTP请求处理、RIO函数库、性能测试与优化 第09讲、第10讲、第18讲
实践02_多进程多线程服务器 多进程多线程服务器 fork并发、pthread并发、select/epoll多路复用、性能对比 第06讲、第07讲、第10讲
实践03_线程池与业务分割 线程池与业务分割模型 线程池实现、预线程化、sbuf生产者消费者、业务分割模型 第07讲、第10讲

📎 附录


📂 源代码索引

课程源代码位于 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