操作系统基础
2022-06-17 本文已影响0人
摇摆苏丹
吐槽
- 有些啰嗦,我很怀疑这本三百多页的书能不能覆盖操作系统基本的内容 p1
- 处理器没有说明是软件的还是硬件的 p2
- 虚拟机的概念不要乱用 p4
- 明明按照cpu、内存、IO、硬盘的方式去说就非常清楚,非要增加别名 p4
- 对计算机发展史的描述太过混乱 p12-14
- 通信子网是这么用的吗 p14
- 习题质量不高 p18
- 分点表述不要超过5点 p28
- 书有些地方还是写的可以的,我怀疑就不是一个人写的,其中包括一个水货 p29
- 翻译成“盒”太蹩脚了 p37
感悟
- 操作系统发明的初衷就是在硬件的基础上抽象出一个软件层,以方便用户使用 p4
- 最早的操作系统负责将程序和数据从磁带搬到内存上,也就是将人工输入作业的过程自动化 p5
- 多道程序的作业运行情况图最重要的是启动顺序,各个资源的利用率 p7
- native的开发工具似乎可以作为操作系统的一部分 p9
- 特权指令与非特权指令 p19
- 处理器在处于管理状态的时候拥有修改自身状态的能力 p19
- 程序计数器指向下一条指令的地址 p20
- 程序状态字中包含条件码、中断屏蔽码、工作状态码 p20
- 条件码是多个位,包括进位标识符、溢出标识符、结果为0标识符、结果为负数标识符 p20
- 中断包含多个位,表示中断级别 p20
- 自陷中断指示位用于联机调试排错 p20
- 越界中断,即存储保护中断,计算机的本质就是一串开关 p22
- 越是基础的软件,就越是关心每个位的使用 p22
- 现代计算机往往有多个缓冲池,多个缓冲区 p23
- 中断是计算机对异步事件的相应,避免轮询 p24
- 中断位组成中断寄存器 p25
- 操作系统使用的中断是由CPU硬件的轮询实现的,每个CPU周期结束后,都会检查中断寄存器 p25
- 中断包括:可屏蔽中断(IO中断)、不可屏蔽中断(故障中断)、程序错误中断、软件中断 p25
- 中断包括:机器故障中断、IO中断、外部中断、程序中断、访管中断 p26
- 中断向量表记录中断的ID p26
- 时钟通过时钟寄存器与振荡器脉冲实现 p28
- 时钟有绝对时钟与间隔时钟两种,猜测绝对时钟是BIOS提供的功能 p29
- 间隔时钟通过队列管理定时任务,触发时钟中断 p30
- 地址的重定向进行绝对地址与相对地址的相互转换 p31
- 符号表 p32
- shell是重要的人机接口 p35
- 固件是有软件功能的硬件 p37
- 自己有必要学习一门计算机硬件原理的课程 p39
- 进程具有并行、制约、动态的特征 p42
- 进程就是运行中的程序 p42
- 进程包括运行、就绪、阻塞三种状态 p43
- 一般阻塞的程序会被挂起,阻塞接触后会回归到就绪状态 p43
- 进程还包括挂起就绪、挂起阻塞等状态 p44
- 操作系统使用PCB来描述进程信息 p45
- PCB包含进行标识符、处理器状态(上下文)、进程控制信息 p45
- PCB可以使用就绪队列来组织 p46
- 进程控制原语包括建立、撤销、挂起、恢复、改变优先级、阻塞、唤醒、调度, unix中叫做newproc p47
- 进程的控制需要PCB p48
- 撤销与挂起原语都有两种策略,一种是指定标识符、另一种递归地指定自己的子进程 p49
- 处理器有管理状态与用户状态两种模式,切换状态的代价很小,比如修改系统状态字即可 p52
- 进程切换的代价较大,需要修改进程的状态为就绪或者阻塞,需要修改PCB的状态,需要调整PCB的状态队列,还包括进程地址空间的变换开销 p53
- UNIX操作系统没有进程之间的开关,只有处理器执行模式的开关 p54
- Windows操作系统以进程方式运行 p54
- Unix操作系统每个用户都有自己的虚拟计算机,虚拟计算机的当前状态成为映像 p54
- Unix操作系统有一个进程表 p54
- 用户进程通过系统调用进入内核模式 p55
- 一般将多处理器带来的真的并行叫做并行性,其余虚拟技术实现的叫做并发 p58
- 需要共享资源是使用多线程的核心原因 p59
- 一个进程在某个时刻只能使用一个处理器 p59
- 线程是进程中一个独立的控制流序列 p59
- 线程中包含调度所需的必要信息 p60
- 线程没有挂起状态 p61
- 进程不会因为其中某个线程的阻塞而阻塞 p62
- 创建线程时,创建一个TCB,初始化线程ID,线程描述表,使其进入就绪队列 p66
- Unix未实现操作系统级别的进程 p67
- 用户级线程适用于所有操作系统,可以自由选择调度算法、开销更小 p69
- 线程控制原语包括:建立、撤销、阻塞、挂起、恢复、调度、线程通信、线程同步 p71
提问
- 现在真的是以存储器系统为中心的吗 p1
- 通道一般是在南桥吗 p5
- 多道操作系统的“道”是什么 p5 —— 多线程
- PC为什么不能考虑资源的充分利用 p5
- 微内核与宏内核的区别是什么 p15
- 现代操作系统是否有对多处理器的支持 p16
- 同一个进程的不同线程如何在不同的处理器上运行 p16
- 特权指令是可以由应用程序执行的吗 p33
- 如何直接使用硬件实现控制(组合逻辑控制) p38
- 如何使用微程序实现中断管理 p38
- 我倾向于将进程之间的调用视为进程之间的通信 p43
- 为什么要设置进程的内部与外部名 p51
- 操作系统是否以进程方式运行 p53
- 如何区分系统级线程与系统线程 p71