引论
1.3 计算机硬件
- 处理器/CPU:从内存中取出指令并执行
- 寄存器:保存关键变量和临时数据
- 程序计数器:保存下一条指令的地址
- 堆栈指针:指向内存中当前栈的顶端
- 程序状态字:条件码位、模式(用户or内核)、CPU优先级
- 流水线机制
- 超标量CPU(执行顺序问题)
- 寄存器:保存关键变量和临时数据
- 存储器
- 顶层:寄存器,由软件管理,少,快
- 第二层:高速缓存,硬件控制,少,快
- 第三层:主存/RAM,稍大,慢。高速缓存未命中的访问都将送往主存
- 第四层:磁盘
- 磁道
- 扇区:512字节
- 柱面
- 第五层:磁带,保存大量数据
- 只读存储器/ROM:快,便宜,只读
- EEPROM和闪存:非易失,可擦除和重写
- CMOS:易失的
- 磁盘
- 磁带
- I/O设备
- 设备控制器
- 设备本身
- 总线
- 启动计算机
- 基本输入输出系统/BIOS运行
- BIOS检查各设备及储存是否正常
- 扫描总线上的设备并记录、配置
- BIOS通过尝试存储在CMOS存储器中的设备清单决定启动设备
- 操作系统询问BIOS,获得配置,检查驱动并调入内核
- 初始化表格,创建背景进程,启动登录程序或GUI
1.4 操作系统们
- 大型操作系统:OS/390
- 服务器操作系统:linux、window server
- 多处理器操作系统
- 个人计算机操作系统
- 掌上计算机操作系统
- 传感器节点操作系统
- 实时操作系统
- 智能卡操作系统
1.5 操作系统概念
- 进程
- 地址空间
- 文件
- 输入/输出
- 保护
- shell
1.6 系统调用
- 操作系统的作用:为用户程序提供抽象和管理计算机资源
- 一个CPU一次只能执行一条指令
- TRAP指令:用户态和内核态切换
- 用于进程管理的系统调用
- fork(派生)
- waitpid
- execve
- 用于文件管理的系统调用
- open
- read
- write
- 用于目录管理的系统调用
- mkdir
- rmdir
- link
- mount(树)
1.7 操作系统结构
- 单体系统:全部操作系统在内核态中以单一方式运行
- 构造目标程序的方法:编译所有单个过程或文件,然后通过系统链接程序将它们链接成单一目标文件
- 层次式系统:上层软件都是在下层软件的基础上构建的
- 每一层都不需要关心其下面层已经构建好的功能的细节
- 各个部分仍由链接完成单个过程
- 微内核:为了实现高可靠性,将操作系统划分成小的、定义良好的模块。只有其中一个微内核运行在内核态上,其余全在用户态上。
- 内核态的外部
- 驱动:
- 用户态:完成操作系统的多数操作
- 内核态的外部
- 客户-服务器模式
- 虚拟机
- 外核