diff --git a/notes/计算机操作系统.md b/notes/计算机操作系统.md index 17e799cf..718b0b8d 100644 --- a/notes/计算机操作系统.md +++ b/notes/计算机操作系统.md @@ -1,73 +1,30 @@ -* [第一章 概述](#第一章-概述) +* [一、 概述](#一-概述) * [操作系统基本特征](#操作系统基本特征) - * [1. 并发](#1-并发) - * [2. 共享](#2-共享) - * [3. 虚拟](#3-虚拟) - * [4. 异步](#4-异步) * [系统调用](#系统调用) * [中断分类](#中断分类) - * [1. 外中断](#1-外中断) - * [2. 异常](#2-异常) - * [3. 陷入](#3-陷入) * [大内核和微内核](#大内核和微内核) - * [1. 大内核](#1-大内核) - * [2. 微内核](#2-微内核) -* [第二章 进程管理](#第二章-进程管理) +* [二、 进程管理](#二-进程管理) * [进程与线程](#进程与线程) - * [1. 进程](#1-进程) - * [2. 线程](#2-线程) - * [3. 区别](#3-区别) * [进程状态的切换](#进程状态的切换) * [调度算法](#调度算法) - * [1. 批处理系统中的调度](#1-批处理系统中的调度) - * [2. 交互式系统中的调度](#2-交互式系统中的调度) - * [3. 实时系统中的调度](#3-实时系统中的调度) * [进程同步](#进程同步) - * [1. 临界区](#1-临界区) - * [2. 同步与互斥](#2-同步与互斥) - * [3. 信号量](#3-信号量) - * [4. 管程](#4-管程) * [进程通信](#进程通信) - * [1. 管道](#1-管道) - * [2. 信号量](#2-信号量) - * [3. 消息队列](#3-消息队列) - * [4. 信号](#4-信号) - * [5. 共享内存](#5-共享内存) - * [6. 套接字](#6-套接字) * [经典同步问题](#经典同步问题) - * [1. 读者-写者问题](#1-读者-写者问题) - * [2. 哲学家进餐问题](#2-哲学家进餐问题) -* [第三章 死锁](#第三章-死锁) +* [三、死锁](#三死锁) * [死锁的必要条件](#死锁的必要条件) * [死锁的处理方法](#死锁的处理方法) - * [1. 鸵鸟策略](#1-鸵鸟策略) - * [2. 死锁检测与死锁恢复](#2-死锁检测与死锁恢复) - * [3. 死锁预防](#3-死锁预防) - * [4. 死锁避免](#4-死锁避免) -* [第四章 存储器管理](#第四章-存储器管理) +* [四、存储器管理](#四存储器管理) * [虚拟内存](#虚拟内存) * [分页与分段](#分页与分段) - * [1. 分页](#1-分页) - * [2. 分段](#2-分段) - * [3. 段页式](#3-段页式) - * [4. 分页与分段区别](#4-分页与分段区别) * [页面置换算法](#页面置换算法) - * [1. 最佳(Optimal)](#1-最佳optimal) - * [2. 先进先出(FIFO)](#2-先进先出fifo) - * [3. 最近最久未使用(LRU, Least Recently Used)](#3-最近最久未使用lru,-least-recently-used) - * [4. 时钟(Clock)](#4-时钟clock) -* [第五章 设备管理](#第五章-设备管理) +* [五、设备管理](#五设备管理) * [磁盘调度算法](#磁盘调度算法) - * [1. 先来先服务(FCFS, First Come First Serverd)](#1-先来先服务fcfs,-first-come-first-serverd) - * [2. 最短寻道时间优先(SSTF, Shortest Seek Time First)](#2-最短寻道时间优先sstf,-shortest-seek-time-first) - * [3. 扫描算法(SCAN)](#3-扫描算法scan) - * [4. 循环扫描算法(CSCAN)](#4-循环扫描算法cscan) -* [参考资料](#参考资料) +* [六、参考资料](#六参考资料) -# 第一章 概述 +# 一、 概述 ## 操作系统基本特征 @@ -131,7 +88,7 @@ 因为需要频繁地在用户态和核心态之间进行切换,所以会有一定的性能损失。 -# 第二章 进程管理 +# 二、 进程管理 ## 进程与线程 @@ -533,7 +490,7 @@ void test(i) { // 尝试拿起两把筷子 -# 第三章 死锁 +# 三、死锁 ## 死锁的必要条件 @@ -647,7 +604,7 @@ void test(i) { // 尝试拿起两把筷子 - 假若找到这样一行,将该进程标记为终止,并将其已分配资源加到 A 中。 - 重复以上两步,直到所有进程都标记为终止,则状态时安全的。 -# 第四章 存储器管理 +# 四、存储器管理 ## 虚拟内存 @@ -733,7 +690,7 @@ Clock 页面置换算法需要用到一个访问位,当一个页面被访问 首先,将内存中的所有页面链接成一个循环队列,当缺页中断发生时,检查当前指针所指向页面的访问位,如果访问位为 0,就将该页面换出;否则将该页的访问位设置为 0,给该页面第二次的机会,移动指针继续检查。 -# 第五章 设备管理 +# 五、设备管理 ## 磁盘调度算法 @@ -759,7 +716,7 @@ SCAN 算法在 SSTF 算法之上考虑了磁头的移动方向,要求所请求 CSCAN 对 SCAN 进行了改动,要求磁头始终沿着一个方向移动。 -# 参考资料 +# 六、参考资料 - Tanenbaum A S, Bos H. Modern operating systems[M]. Prentice Hall Press, 2014. - 汤子瀛, 哲凤屏, 汤小丹. 计算机操作系统[M]. 西安电子科技大学出版社, 2001.