# 操作系统 Operating System 清华大学OS课程: (内涵配套习题)https://github.com/chyyuu/os_course_info 哔哩哔哩网上课程:https://www.bilibili.com/video/av6538245?from=search&seid=2108582505794172756 2019年protokoll:https://files.zbin.de/Klausuren/Bachelor/BS/BS%20-%20Klausurprotokoll%20-%202019.pdf ## 目录 [TOC] --- ## 知识框架 ![](https://i.imgur.com/VfMIVxa.png) --- ## 进程与线程: [<img align="right" width="100" height="100" src="https://i.imgur.com/zQHdeVd.png"/>](#目录) 对应课件:2019春季OS课课件,第十一讲 进程与线程 ### 进程的概念,特点及结构特征 ![](https://i.imgur.com/tcRwfIf.png) 来源:http://www.kamow.top/c/%E8%BF%9B%E7%A8%8B%E7%9A%84%E7%89%B9%E7%82%B9 ### 进程与程序的联系和区别(考点) ![](https://i.imgur.com/Xvr4guJ.png) ![](https://i.imgur.com/MU4G1eI.png) ### 进程的组成 ![](https://i.imgur.com/KddVOJf.png) 进程控制块概念 ![](https://i.imgur.com/eckdH9m.png) 进程的生命周期 ![](https://i.imgur.com/MyvtEQq.png) 进程的挂起 ![](https://i.imgur.com/FCLdtgC.png) ### 线程的概念 ![](https://i.imgur.com/Om7wpAp.png) 线程的优缺点 ![](https://i.imgur.com/TTWRaFJ.png) 与进程比较 ![](https://i.imgur.com/kxdGG3t.png) 习题 ![](https://i.imgur.com/mkXsd9p.png) ![](https://i.imgur.com/ZQ4ZCuC.png) ***必须理解掌握fork(),pthread_create(),pthread_jion()的原理和各个参数的意义!!! ### Copy on write(必须掌握) ![](https://i.imgur.com/axRsuYd.png) 关于COW非常棒的文章:https://juejin.im/post/5bd96bcaf265da396b72f855 ### 僵尸进程与孤儿进程(必考) #### 孤儿 ![](https://i.imgur.com/mc5DXmF.png) ![](https://i.imgur.com/4jMnu5O.png) ![](https://i.imgur.com/6ZT4qCm.png) ##### 僵尸 ![](https://i.imgur.com/1D5xfPg.png) --- ## 调度算法 ![](https://i.imgur.com/PZ8pWOp.jpg) ![](https://i.imgur.com/73J0Z3L.jpg) ![](https://i.imgur.com/ODAh9Ot.jpg) 习题: ![](https://i.imgur.com/YXHHAeB.png) ### 调度算法:https://blog.csdn.net/xieminyao123/article/details/79116985 各种调度算法优缺点:https://blog.csdn.net/ttyue_123/article/details/52166497 调度算法模拟器: https://ess.cs.tu-dortmund.de/Software/AnimOS/CPU-Scheduling/ --- ## 同步 遗漏知识点很多,还未贯通 https://www.jianshu.com/p/70ffd63df6bb --- ## 死锁(重点考点) ### 什么是死锁? ![](https://i.imgur.com/PrTsIQv.png) ### 死锁的四个必要条件 https://blog.csdn.net/rabbit_in_android/article/details/50530960 ![](https://i.imgur.com/y5O8AmD.png) ![](https://i.imgur.com/K8GnoHO.png) ### 资源分类 ![](https://i.imgur.com/2abMI0X.png) ### 死锁的抽象图(没有完全理解)(考点-会画!) ![](https://i.imgur.com/tkUexZO.png) ![](https://i.imgur.com/3jkwGb7.png) ![](https://i.imgur.com/Wnidz2p.png) ### 资源占有图(考点-会画!) ![](https://i.imgur.com/g0tPxsP.png) ![](https://i.imgur.com/rJGwDwm.png) ### 进程预防 ![](https://i.imgur.com/lFsiCZl.png) ### 进程避免 ![](https://i.imgur.com/OwMYBvK.png) ### 进程检测 ![](https://i.imgur.com/fMIWjGi.png) ### 进程处理 ![](https://i.imgur.com/QyVRIOk.png) ### 竞争条件 ![](https://i.imgur.com/rghLHlv.png) - 习题 ![](https://i.imgur.com/1ScdCPS.png) ![](https://i.imgur.com/pdkORW2.png) ### 经典问题 https://www.bilibili.com/video/av6538245/?p=68 --- ## 进程间的通信 ### 概念 ![](https://i.imgur.com/4j9xhct.png) ### 信号,管道和消息队列 ![](https://i.imgur.com/O2LHW2e.jpg) --- ## 物理内存管理 ### 内部碎片和外部碎片 ![](https://i.imgur.com/mJXz1bC.jpg) https://blog.csdn.net/qq_22238021/article/details/80209062 ![](https://i.imgur.com/U4TllDL.png) ### 非连续物理内存分配 https://yuerer.com/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E4%B9%8B-%E7%89%A9%E7%90%86%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86-%E9%9D%9E%E8%BF%9E%E7%BB%AD%E5%86%85%E5%AD%98%E5%88%86%E9%85%8D/ - 目的 ![](https://i.imgur.com/qNFULjK.png) - 实现 ![](https://i.imgur.com/hvztaW0.png) - 段式(习题) ![](https://i.imgur.com/9mPA7XS.png) - 页式 ![](https://i.imgur.com/C7DcImf.png) ### 连续物理内存分配 https://yuerer.com/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E4%B9%8B-%E7%89%A9%E7%90%86%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86-%E8%BF%9E%E7%BB%AD%E5%86%85%E5%AD%98%E5%88%86%E9%85%8D/ - Frist Fit, Best Fit, Worst Fit ![](https://i.imgur.com/6HXxaKE.jpg) ### 伙伴算法Buddy(必考!) ![](https://i.imgur.com/tCCBJBd.png) ![](https://i.imgur.com/6DPW1LE.png) ![](https://i.imgur.com/X0jkD1v.png) ![](https://i.imgur.com/aKFjBZt.png) ### 连续分配方式 - 单一,固定分区分配 https://blog.csdn.net/dongyanxia1000/article/details/51674627 - 动态分区分配 https://blog.csdn.net/dongyanxia1000/article/details/51700179 - 可重定位分配 https://blog.csdn.net/dongyanxia1000/article/details/51705957 --- ## 虚拟存储 - 请求调页(去课件上看) ![](https://i.imgur.com/M8TWc3u.png) ![](https://i.imgur.com/uFOQKks.png) ### 页面替换算法 - FIFO ![](https://i.imgur.com/ydH2HAK.png) - 最远优先 ![](https://i.imgur.com/C2Jg6Y6.png) - LRU ![](https://i.imgur.com/aAkWaL3.png) - Clock ![](https://i.imgur.com/g6nyvPi.png) ![](https://i.imgur.com/ITedNn6.png) - 抖动 ![](https://i.imgur.com/ssR9VID.jpg) ## 文件系统 ### 块缓冲缓存 Block-Buffer-Cache ![](https://i.imgur.com/xhBBZOI.png) ![](https://i.imgur.com/07tKKoA.png) ![](https://i.imgur.com/K9c7BkH.png) ### TLB ![](https://i.imgur.com/2lJc70L.png) ![](https://i.imgur.com/N504znu.png) ![](https://i.imgur.com/dQ6Mquv.png) ### 常见内存分配算法(Platzierungsstrategie) https://blog.csdn.net/liying_1234/article/details/52053183 ![](https://i.imgur.com/Pg8I2VQ.png) ### Mutex与semaphore 互斥锁与信号量 简单来说。mutex只能由本线程解开 信号量可以在线程之间传递 https://www.zhihu.com/question/47704079 ![Uploading file..._4bnqtkkvz]() ![](https://i.imgur.com/jnwN8Jy.png) ### IO的一些工作方式 ![](https://i.imgur.com/v1YOxV2.png) #### Direct Memory Access(DMA) ![](https://i.imgur.com/5oY1B4x.png) #### Polling ![](https://i.imgur.com/c3wzYOO.png) #### 中断驱动IO ![](https://i.imgur.com/9qFRWvR.png) Unterbrechungsgetriebene E/A ### Interprozesskommunikation https://de.wikipedia.org/wiki/Interprozesskommunikation ### Platzierungs- und Ersetzungsstrategie ![](https://i.imgur.com/B43Nz04.png) ### Ring Puffer欢迎缓冲器 简单来说,存在一个读指针,指向可读区域,存在一个写指针,指向可写区域,通过互斥锁和信号来调节读写操作。 ![](https://i.imgur.com/38aOX3d.png) ### SSFT会导致饥饿 ![](https://i.imgur.com/UQ3TXoA.png) ### 虚拟轮询与轮询的区别 暂时记住一条即可,轮询对E/A不利,但是VRR更加公平,即,VRR不会对E/A不利。 但是VRR的kontextWehseln的次数会增加 ![](https://i.imgur.com/1F4g4PL.png) ### 虚拟存储的优点和缺点 ![](https://i.imgur.com/sQxWd4E.png) ### 抖动 Trashing 缘由:不好的交换策略,同一时间太多的进程。 解决:限制进程数量 ![](https://i.imgur.com/i7W9YqW.png) ### LRU ![](https://i.imgur.com/EKdWxo3.png) ![](https://i.imgur.com/Xv7t30R.png) ## 未完待续01.10.2019 ### MESI协议 https://zh.wikipedia.org/wiki/MESI%E5%8D%8F%E8%AE%AE ![](https://i.imgur.com/fA5g7TB.png)