1、计算机的基本组成1.1、计算机组成五大部件冯·诺依曼体系结构五大部件1运算器ALU也叫算数逻辑单元完成对数据的各种常规运算如加减乘除也包括逻辑运算移位比较等它是最核心的执行部件但自己不会主动干活。2控制器CU从存储器中逐条取出指令、分析指令它是整个计算机系统的控制中心它指挥计算机各部分协调地工作保证计算机按照预先规定的目标和步骤进行操作运算器 控制器 CPU中央处理器​也就是常说的“芯片”。3存储器记事的存放程序和数据硬盘、U盘属于外存储器速度慢但能长期保存通常不算在五大部件的“存储器”里。4输入设备把现实世界的信息转换成二进制送入计算机例如键盘、鼠标、扫描仪。5输出设备把计算机能识别的信息转换为人能识别的信息进行呈现例如显示器、打印机、音箱。6核心工作流程程序和数据先通过输入设备存入存储器---控制器取指令、发信号---运算器从存储器取数据进行计算结果写回存储器---最后由输出设备呈现结果。1.2、系统总线系统总线System Bus​就是连接 CPU、存储器、I/O 设备的公共通信干线。它解决了“部件两两直连太乱太贵”的问题——所有部件都挂到同一组线路上像公共走廊一样。1数据总线用来在各个功能部件中间传输数据是双向传输总线----(CPU可以发数据写内存也可以收数据读内存所以是双向的)关键考点数据总线的位数 机器字长相关指标一次能并行传送多少位数据。位数越多一次搬运的数据越多速度越快。2地址总线用来指出数据总线上的源数据或目的数据在主存单元的地址或 io 设备的地址要访问内存哪个单元、哪个 I/O 端口地址由 CPU 发出所以是单向的。关键考点地址总线的位数条数决定了 CPU 的寻址范围。比如 32 位地址总线 → 可寻址 2³² 4GB 内存空间。3控制总线由于各个连接在数据总线和地址总线的部件都是共享这两类总线的那么在某一时刻由谁来使用就是控制总线负责完成的整体双向。4总线的重要特性分时同一时刻只能有一个部件向总线发送信息否则信号冲突共享但可以多个部件同时接收信息总线上的信息传输方式串行/并行1.3、指令1指令是指示计算机执行的某种操作的命令。一条指令通常由两部分构成地址码和操作码操作码说明“做什么”——是加法、减法、存数、取数还是跳转操作码的位数决定指令系统最多有多少种指令n 位操作码最多 2ⁿ 条。地址码说明“对谁做”——数据操作数存放在哪个内存单元或寄存器。按地址码个数分有一地址指令、二地址指令、三地址指令等。2程序由一条一条的指令构成3指令周期cpu每取出并执行一条指令所需的全部时间称为指令周期4指令系统计算机能够执行的全部指令的集合称为该计算机的指令系统5RISC精简指令系统计算机6CISC复杂指令系统计算机注意CISC vs RISC复杂指令系统计算机指令多而复杂如 x86 vs 精简指令系统计算机指令少而简单、执行快如 ARM——你的手机芯片就是 RISC7程序与指令高级指令 汇编助记符 机器指令8指令的执行过程CPU 执行一条指令分三步周而复始取指令控制器按程序计数器PC给出的地址从内存取出指令分析指令控制器对操作码译码判断要做什么操作执行指令运算器等部件具体动作完成后PC自动加1指向下一条指令、2、进程概论1进程一个正在运行的程序进程是“正在执行的程序”是操作系统分配资源的基本单位。程序是静态的磁盘上的文件进程是动态的运行中的实体。一个进程在生命周期中会在三种基本状态之间流转2PCB既是进程控制块是进程存在的唯一标志用来描述进程的属性信息3进程状态就绪、运行、阻塞就绪态万事俱备只欠 CPU多个就绪进程排在就绪队列里“排队等 CPU”。运行态正在 CPU 上执行单 CPU 系统中同一时刻最多只有一个进程处于运行态多核可以有多个。阻塞态主动让出等待事件进程因等待某事件如 I/O 完成、申请缓冲区而暂停执行即使 CPU 空着也不能运行。两个重点“不能”阻塞→ 运行不可能阻塞的进程即使它等的事件完成了也只能先进就绪队列排队不能直接抢 CPU。就绪 → 阻塞不可能。​ 就绪态的进程根本没在运行谈不上“发起 I/O 请求”——只有运行中的进程才能主动阻塞。3、内存管理3.1、简单分页 逻辑页 物理页 页表逻辑页是程序眼里的事物理页块是内存里的事页表是两者之间的“翻译对照表”。逻辑页是程序自己的视角——程序从 0 开始连续编址它不知道也不关心自己被放到了内存哪里。物理块是内存的真实分割——内存这 8GB 被切成一格一格的“框”。页表是每个进程私有的翻译表回答“逻辑上连续物理上散落各处”的问题——它让程序以为自己住在一套连续的房子里实际上房间散落全城。3.2、虚拟内存内存管理是操作系统的重要职能之一内存是 CPU 能直接访问的宝贵资源操作系统要负责内存的分配与回收、地址转换、内存保护、内存扩充。虚拟内存基于分页技术再进一步程序运行时只把当前用到的页调入内存暂时不用的留在磁盘上需要时再通过缺页中断调入。这样程序可以比物理内存大得多“逻辑内存”远超“物理内存”多道程序并发度更高页面淘汰算法如 LRU 最近最久未使用、FIFO决定“内存满了换谁出去”——这是常见考点虚拟内存提供的三个重要的能力它将主存看成是一个存储在磁盘上的地址空间的高速缓存在主存中只保存活动区域根据需要在磁盘和主存之间来回传送数据使得能够运行比内存大的多的进程。它为每个进程提供了一致的地址空间从而简化了存储器管理它保护每个进程的地址空间不被其他进程破坏4、操作系统发展阶段操作系统管理计算机上的软硬件资源为用户提供一个交互的接口。4.1、串行处理最早的用法一个人上机独占整台计算机的全部资源纸带/卡片要手工装卸程序之间完全串行。致命问题CPU 是贵重设备却大部分时间在等人操作——利用率极低。4.2、批处理为减少人工干预把一批作业预先成批录入磁带由监督程序Monitor​自动逐个处理作业间切换不再需要人。进步消灭了人工装卸时间。遗留问题内存里始终只有一道作业——它做 I/O如读磁带很慢时CPU 只能干等着。4.3、多道程序设计突破性想法内存里同时驻留多道作业。A 作业做 I/O 时CPU 立刻切去运行 B 作业B 也做 I/O 就切给 C——CPU 和 I/O 设备交叠工作谁也不闲着。三个关键词多道性内存中同时存放多道作业宏观上并行多个作业都在“同时”推进微观上串行单 CPU 任一时刻实际只执行一道作业它同时带来了操作系统的四大基本特征并发、共享、虚拟、异步。​多道程序设计是现代操作系统的理论基础也是这一讲最重要的考点。4.4、分时系统批处理的代价是用户不能交互作业提交后只能干等结果。分时系统的解法把 CPU 时间切成很短的时间片如几十毫秒轮流分配给各终端用户。由于轮转极快每个用户都觉得自己“独占”整台机器——可以边敲命令边看结果。分时系统四大特征必背多路性多个用户同时使用独立性各用户互不干扰仿佛独占及时性终端请求能在很短时间时间片内得到响应交互性人机对话式工作方式