第一章
CPU内部结构
指令执行流程
中断处理的过程 多中断处理过程
时间和空间局部性原理 簇
高速缓存 存储槽,块,置换算法 LRU
单核多处理器 高速缓存一致性问题
多核多处理器
第二章 操作系统概述
操作系统的目标和功能
操作系统提供以下几个方面的服务:
- 程序开发
- 程序运行
- I/O设备访问
- 文件访问控制
- 系统访问
- 错误检测和响应
- 记账
三个重要接口
指令系统体系结构(Industry Standard Architecture ISA)
定义了计算机遵循的机器语言指令系统,该接口时硬件与软件的分界线。应用程序和实用程序都可以直接访问ISA,这些程序使用指令系统的一个子集(用户级ISA)。操作系统能使用其它一些操作系统的资源的机器语言指令(系统级ISA)
应用程序二进制接口(Application Binary Interface ABI)
定义了操作系统的系统调用接口,描述了应用程序和操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的低层接口。
应用程序编程接口(Application Program Interface API)
操作系统的发展
串行处理
简单批处理系统
特征:监控程序,用户程序,内存保护,定时器,特权指令,无中断,单道程序设计
多道批处理系统
多道程序设计(多任务处理):内存空间可以保存操作系统(常驻监控程序)和一个用户程序。那么当一个作业需要等待I/O时,处理器可以切换到另一个可能不需要等待I/O的作业。进一步还可以拓展存储器以保存三个,四个或者更多的程序并且在她们之间进行切换。
目的:为了让处理器和I/O设备包括存储设备同时保持忙状态,以实现最大效率。
关键机制是:在响应表示I/O事务结束的信号时,操作系统将对内存中驻留的不同程序进行处理器切换。
分时系统
多用户,时间片(time slicing)技术,内存中有多个作业,必须保护她们不相互干扰,比如不会修改其它作业的数据,必须对文件系统进行保护,处理资源竞争问题
实时事务系统
错误错误的4个主要原因
- 不正确的同步
- 失败的互斥
- 不确定的程序操作
- 死锁
进程
由三部分组成的
- 一段可执行的程序
- 程序所需的相关数据(变量,工作空间,缓冲区等)
- 程序的执行上下文(进程状态)
内存管理
- 进程隔离
- 自动分配和管理
- 支持模块化程序设计
- 保护和访问控制
- 长期存储
虚拟存储
信息保护和安全
调度和资源管理
- 公平性
- 有差别的响应性
- 有效性
操作系统中维护着多个队列,每个队列代表等待某些资源的进程的简单列表。短程队列(short-term queue),长程队列(long-term queue),I/O队列,短期调度器
队列策略
- 时间片轮转(round-robin):依次给队列中的每个进程一定时间。
- 给不同进程分配不同的优先级,根据优先级进行调度。
操作系统要避免由于允许太多的进程进入系统而过量的使用内存或处理时间。
操作系统的分类
- 微内核体系结构
- 多线程
- 对称多处理(SMP)
- 分布式操作系统
- 面向对象设计
虚拟机
- 进程虚拟机
- 系统虚拟机
第二章简答题
什么是操作系统的内核?
指大多数操作系统的核心部分,由操作系统中用于管理存储器,文件,外设和系统资源的那些部分组成。
什么是多道程序设计?
是在计算机内存中同时存放击倒相互独立的程序,使它们在管理程序控制下,相互穿插的运行。两个或以上程序在计算机系统中同处于开始到结束之间的状态。
什么是进程?
它是正在进行的程序的实例,是操作系统基本的分配单元也是基本的执行单元。它包含一段可执行的程序,程序的执行上下文以及相关数据。
操作系统对存储器的管理责任?
- 进程隔离,操作系统必须保护独立的进程,防止互相干扰各自的存储空间,包括数据和指令。
- 自动分配和管理,程序应该根据需要在存储层次间动态地分配,分配对程序猿是透明的,可以在需要时才给作业分配存储空间
- 支持模块化程序设计
- 保护和访问控制,存储器的共享都会产生一个程序访问另一个程序存储空间的潜在可能性。它可能会威胁到程序的完整性,操作系统必须允许一部分内存可以由各种用户以各种方式进行访问
- 长期存储
描述时间片轮转调度技术?
每个进程被分配一个时间段(时间片),如果在该时间片结束时进程还在运行,则CPU讲被剥夺并分配给另一个进程;如果进程在时间片结束前阻塞或者结束,则CPU当即进行切换,调度程序所有做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。将时间片设为100毫秒通常时一个比较合理的折衷。
解释单体内核和微内核的区别?
单体内核将操作系统的全部功能都做进内核中,包括调度,文件系统,网络,设备驱动器,存储管理,资源分配,进程间通信,进程间切换管理,文件切换管理,存储管理,网络等。它时在一块代码中实际包涵了所有操作系统功能呢,并作为一个单一的进程运行,具有唯一地址空间。Linux是单体内核系统。
微内核与单体内核不同,它只是将操作系统中最核心的功能放入内核,包括IPC通信,地址空间分配和基本的调度,而其他功能作为一个个出于用户态的进程而向外提供某种服务来实现,而且这些出于用户态的进程可以针对某些特定的应用和环境需求进行定制。