操作系统的奥秘
记得小时候常常念过的一首诗是这样的:
从小时候就开始数了。
数到懂事、数到成熟,
还没有数清。
天上的星星为什么数不清呢?
像记忆和幻想,
永远背负着固执的谜....
对于许多大学计算机及相关专业的同学来说,操作系统就像天上的星星,隐藏着一个固执的谜,永远学不清楚。不过,操作系统真的学不清楚吗?
不是的。学不清楚是因为没有看到其背后的奥秘。这个奥秘不是所有的人都知道的。即使是研究操作系统的人也不一定意识到它,更别提计算机初学者了。
那么这个奥秘是什么呢?
天上的星星数不清是因为我们试图做的事情是数星星。如果我们换个角度,不去数星星,而是寻找星星的设计师,让他告诉我们星星的数量,不就清楚了吗?
这也正是学习操作系统的奥秘。要理解操作系统,就要找到操作系统的设计师,让他们告诉我们操作系统所蕴涵的所有秘密。当然,这里的寻找设计师并不是真的找来他们,因为找到所有的设计师是不可能的。这里的设计师指的是一种抽象,一种所有设计师所共有的人生哲学,因为设计师在设计操作系统时会不自觉地将自己的思维或人生追求构造在操作系统里,从而赋予操作系统以心智,而操作系统也就在这种心智的指挥下运行着。
操作系统笔记大纲简介
内容太多,省略部分Σ( ° △ °|||)︴
笔记分为8篇,分别是基础原理篇、进程原理篇、线程原理篇、内存原理篇、文件原理篇、I/O原理篇、多核原理篇和操作系统设计篇
现在就让我们一起来揭示秘密, 数清操作系统里的星星吧。
第一篇、基础原理篇
大伪似真,大道无形
本篇最为重要的核心思想是操作系统在计算机运行过程中扮演的角色:魔术师和管理者。魔术师将丑陋变得美好,将没有变为有,将少变为多;而管理者则对所有计算机资源进行管理以达到公平和效率的“双料"境界。对操作系统这两个角色的理解将非常有助于对进程、线程、虚拟内存、文件系统和输入输出系统的掌握。
- 第1章操作系统导论
- 第2章操作系统历史
- 第3章操作系统基本概念
程序是如何运行的
管理者角色
面试题
- 什么是操作系统?请用一句话描述你对操作系统的理解。
- 你对操作系统和用户程序之间的关系有何看法?阐述你的想法。
- 简要列出操作系统覆盖的范畴及每个范畴的核心内容。
- 操作系统要对不同的部件进行管理,请论述这些管理之间的异同点。
- 设备管理要达到的目的是什么?
- 有人说设备管理软件(设备驱动程序)因为经常由第三方提供,因此不应该作为操作系统的一部分。你对此有何看法?你认为应该如何判断-一个软件是否属于操作系统?
- 请列出程序执行过程中操作系统的介入情况。
- 说操作系统是人造学科,根据是什么?
- 人造学科的特点是什么?它对我们学习操作系统有何帮助?
- OS需要编译器来编译,而编译器的运行需要OS来支持,那到底是谁先出现谁后出现呢?
操作系统的演变过程
操作系统的未来发展趋势
计算机硬件基本知识
操作系统结构
第二篇、进程原理篇
恍兮惚兮,其中有像;惚兮恍兮,其中有物
本篇包括第4~6章的内容。第4章阐述的内容包括进程出现的逻辑必然性、多道编程的效率、进程的创建和消亡、进程的状态及其转换、进程与地址空间、进程管理和进程模型的缺陷。第5章讲解的内容包括调度的目标、先来先服务、时间片轮转、短任务优先、优先级调度、混合调度、实时调度等算法,并对优先级倒挂和线程的不确定性进行讨论。第6章包括为什么要通信、管道、记名管道、套接字、信号、信号量、共享内存、消息队列等。
- 第4章进程
- 第5章进程调度
- 第6章进程通信
进程概论
多道编程的好处
进程管理
进程拥抱:共享内存
第三篇、线程原理篇
本篇即对进程级的并发机制——进程模型进行讨论。本篇包括第7~10章的内容。第7章的内容包括进程分身术进程、 进程管理、进程的用户态、内核态和混合态实现、现代操作系统的进程实现模型、多进程之间的关系、进程模型主要考虑的问题。第8章的内容包括为什么同步、同步的目的、锁原语的进化、睡觉与叫醒原语、信号量、管程、消息传递和栅栏。第9章对死锁的产生、发展、防止与避免进行讲解,并讨论死锁、活锁和饥饿的关系。第10章讲述如何使用中断启用和禁止、测试与设置来实现锁原语。
- 第7章线程
- 第8章线程同步
- 第9章死锁应对之哲学原理
- 第10章锁的实现
进程的分身术——线程
内核态线程实现
用户态线程实现
从用户态进入内核态
无发制人:死烦的动态避免
第四篇、内存原理篇
本篇包括第11~14章的内容。
第11章讲述内存管理的环境、虚拟内存、操作系统在内存中的位置、程序在内存里的位置(固定加载地址、固定分区、可变分区)、基本内存管理机制(地址翻译、基址极限、交换)、闲置空间管理等内容。
第12章讲解的内容包括基址极限的问题、分页管理、页表、页面翻译过程、分页管理系统的优缺点、多级页表、地址翻译速度、锁住页面、内存抖动和页面尺寸设计。
第13章对页面更换算法的来龙去脉、欲达到的目的、各种具体的页面更换算法进行细致讲解。
第14章的内容包括页式管理系统的局限、分段管理系统、分段的优缺点、段号与寻址位数,并对否定之否定在内存管理模式发展过程中的作用进行讨论。
虚拟内存的概念
先进先出算法
使用矩阵实现LRU算法
分段管理系统
第五篇、文件原理篇
大成若缺,其用不敝;大盈若冲,其用不穷
本篇内容包括第15~ 18章的内容。
第15章 讲述的内容包括磁盘结构、磁盘访问速度、磁盘的操作系统界面、磁盘访问过程和磁盘调度。
第16章讲述为什么需要文件系统、什么是文件系统、文件系统的目的、文件的基本知识、文件的存储结构、文件类型、文件访问、文件属性、文件操作、文件夹、相对与绝对路径、共享与链接、内存映射的文件等内容。
第17章 的内容包括文件系统分布、文件的实现、文件夹的实现、共享文件的实现、磁盘空间的管理等。
第18章的内容包括文件安全性能(文件访问控制、访问控制表、能力表)、文件可靠性能(持久性、一致性、 日志、交易、随影、一致性检查)和文件系统的效率性能( 提前读取、减少磁臂移动距离、日志结构的文件系统LFS)。
- 第15章碰盘操作
- 第16章文件系统.
- 第17章文件系统实现
- 第18章文件系统性能
盘面的结构
文件系统
文件内容组织
文件的实现
访问控制的实施
文件系统持久性
第六篇、I/O原理篇
善者,不善人之师;不善者,善人之资
因此,要想计算机真的有用,就得有输入和输出。操作系统既然是计算机的掌控者,当然也需要对输入和输出进行控制。本篇即对计算机与外界进行沟通的输入与输出机制进行讲解。本篇仅有一章(第19章),讨论的内容包括输入输出的重要性和目的、输入输出硬件、物理I/O模式(专有通道I/O、内存映射的IO、复合I/O、DMA)、输入输出软件、软件I/O模式(可编程I/O、中断驱动的I/O、DMA)、I/O软件分层、设备驱动程序等。
设备控制器
物理I/O模式
逻辑I/O模式
第七篇、多核原理篇
美言不信,信言不美
本篇对新出现的多核技术进行讲解。重点讨论多核环境给操作系统带来的影响。全篇包括第20章和第21章两章。第20章的内容包括多核处理器结构(超线程结构、多核结构、多核超线程结构)、多核内存结构(UMA、NUMA、COMA、NORMA)、对称多核处理器计算机的启动过程、多处理器之间的通信、SMP缓存一致性等。第21章的内容包括多核进程同步、多核环境下的软件同步原语、旋锁及其实现、队列旋锁、多核环境下的进程调度、多核环境下的能耗管理和多核系统性能。
- 第20章多核结构与内存
- 第21章多核环境下的进程同步与调度
多处理器结构
多核结构
SMP缓存一致性
第八篇、操作系统设计篇
多闻数穷,不若守中
本篇从高屋建瓴的角度对操作系统设计的十条哲学原理进行阐述。显然,操作系统的设计原理有很多,本篇选取的只是诸多原理里面非常重要的十条。第22章将从操作系统和人类社会两个层面对这十条原理进行论述与比较,以使读者更加清楚地明白操作系统就是人类社会在计算机里面的反映,明白了人类社会的运转就明白了操作系统的运转。读完本篇后,读者可自行发现挖掘操作系统的其他设计原则和原理。
操作系统设计的第1条哲学原理:层次架构
哲学原理:简单为美——求于至简,归于永恒
完整版见文末
这两份【操作系统笔记】文档分别为400+、300+页,需要完整版的朋友,可以点赞此文关注小编,见下图,获取!!
第二份操作系统笔记
内容极多,略Σ( ° △ °|||)︴.......................................................
进程和线程
进程间通信
调度
内存
无存储器抽象
地址空间的概念
文件系统
空闲空间块
文件系统的管理和优化
物理转储和逻辑转储
文件系统的一致性
I/O
I/O设备
I/O层次结构
盘
大厂常见面试题
省略..............................................................................................
关于操作系统,你必须知道的名词
(由于内容太多了,就不一一展示了Σ( ° △ °|||)︴)
这两份【操作系统笔记】文档分别为400+、300+页,需要完整版的朋友,可以点赞此文关注小编,见下图,获取!!
不要失望,
失望会使我们衰老,
趁我们还年轻,
抬起头来,让我们数星星;
也许,我们能数得清;
也许,我们能看到真相:
也许,我们能找到希望....