总目录
操作系统主要复习下部分
- 进程管理
- 内存管理
- 存储管理
- 保护与安全
而分布式操作系统与分布式一起复习
概述
现代操作系统的核心进程和并发
计算机系统分为四个部分
- 硬件
- os
- 系统程序和应用程序
- 用户
os(内核kernel)定义:进行资源分配和调度程序,提供给应用程序运行环境的软件,是用户和硬件的中间人,一直运行的程序(内核)
中断定义:外部事件发生后,使状态转入os模式
中断包括 硬件中断和软件软中断(如system call)
中断向量(interrupt vector):指向中断处理程序的指针表,位于内存的低地址位。
中断会将cpu控制权交给中断处理程序(是os 的一部分),中断后不会立即执行中断处理程序,需要先切换上下文(保存pcb和加载pcb)
程序必须加载到内存中才能运行。
内存是cpu能唯一访问的大容量存储(相对与外存而言。cpu还能访问寄存器等)
内存由于 1. 内存太小,不能存放所有数据 2. 内存是断电易失存储(volatile storage).。故需要外存,非易失存储
cpu与多个设备控制器通过总线相连。
每个设备控制器对应一类IO设备。os为每个设备控制器提供一个设备驱动程序。
设备控制器维护一定的本地缓存和寄存器。
cpu加载设备驱动程序,将指令写入寄存器,设备寄存器检查寄存器,执行指令,产生中断,返回结果。该情况适用与少量数据的情况。大量数据传输适用DMA(direct memory access)
多处理系统/并行系统/紧耦合系统:多cpu,共享总线,内存等。
集群系统:多个独立的系统耦合而成
os分为:批处理系统和多道程序系统。
批处理系统不能交互,一次处理一个任务。
多道程序系统提高了cpu的利用率。分时系统和多任务系统是其延伸
所有任务最初都在外存中。
job schedule /long term schedule是指将任务从外存加载到内存中。job pool 是外存上
cpu schedule/short term schedule 是指cpu选择内存中的任务进行执行。
通过virtual memory ,不需要将运行的程序全部加载到内存中。
os是中断驱动的。
陷阱trap或异常是软中断(包括异常出错和系统调用)。
为了保证计算机的安全,设置双模式位,用户模式和监督程序模式/管理模式/系统模式/特权模式/内核模式。
在硬件上增加模式位,标记当前模式。
cpu运行os时,是内核模式;运行任何损害的机器指令,为内核模式(将这些指令做为特权指令privileged instuction)
os可以通过设置timer来保持对cpu对控制。
cache 高速缓存,由硬件实现,比内存快。
os的服务
提供的服务
- UI
- shell 命令解释程序(获取用户输入并执行)分为两种:一种是shell自己包含命令,自己执行,另一种是shell调用其他程序执行(unix)
- 友好且有用的UI不是os要考虑的问题
- GUI
- 程序执行
- IO操作(为了提高效率和保护,用户不可直接操作设备)
- 文件系统操作
- 通信(进程间,pc间)
- 错误检测
- 资源分配
- 统计
- 保护和安全
系统调用(system call)
- 程序员不使用系统调用,而是API(便于程序的移植)
- 向操作系统传参的方法
- 寄存器
- 内存块,将地址写入寄存器中
- 程序堆栈中,os弹出去读
- 系统调用的类型
- 进程控制
- 文件管理
- 信息维护
- 通信(消息传递和共享内存)
- 设备管理
os设计
机制是如何做,策略是决定做什么。
内存管理和cpu调度程序可能是最关键的子程序。
操作系统结构
- 简单结构
- 分层结构(构造和调试简单,效率低)
- 微内核(最小的进程管理和内存管理以及通信,其他功能放在用户空间)
系统启动
引导程序/引导转载程序能定位内核位置并装载到内存中
reference
操作系统概念 第七版