操作系统大的方面主要也就分为
1背景知识介绍
2进程有关问题:同步互斥、饥饿死锁等问题
3内存管理有关问题:虚拟内存、调度问题
4以及输入输出文件模块
这儿首先对操作系统的做一个总的概述 主要记录背景知识模块
基本构成:计算机主要有四个构件:
处理器:CPU
内存(易失性)
输入输出模块
系统总线(在另外三个模块间通信的设施)
指令的执行:程序的执行是不断重复取指令和执行指令的过程组成的 取到的指令和数据分别保存在对应的寄存器中
执行指令可以分为:
处理器-存储器 间的数据传送
处理器-I/O 间的数据传送
数据处理
控制 (改变执行顺序 例如while和for循环)
中断:其他模块(I/O 存储器)中断处理器正常处理过程的机制
分类:
程序中断:由于程序员的原因 程序执行出错 比如3/0 算术溢出等
时钟中断:轮到该程序执行的事件片已用完
I/O中断:I/O控制器通知 I/O操作的正常完成或者错误条件
硬件失效中断:比如拔掉电源
时间上分:
短I/O等待:I/O执行时间较短 当I/O操作完成时 CPU立即返回处理
长I/O等待:I/O执行时间较长 一般是CPU再次需要I/O操作时 在来处理
中断处理:设备发送中断信号->处理器结束当前指令执行 并响应中断->处理器检查并给提交中断的设备发送确认信号->CPU保存当前进程的程序状态子PSW和程序计数器PC压入栈->根据中断 加载新的PC值->保存剩余处理状态信息->处理中断->恢复中断状态信息->恢复旧的PSW和PC值
多个中断情况:正在处理一个中断时,又发生了一个或多个中断 此时有两种处理方法
第一种:处理一个中断时、禁止再有中断发生 当再有中断发生时 不去理会 中断将被挂起
第二种:定义中断优先级 处理一个中断时 当又发生中断的优先级大于当前 则处理新的中断
存储器的层次结构--总是跟 容量 价格 速度有关
存储器层次结构金字塔: 板上处理器(寄存器、高速缓存、内存)
板外处理器(磁盘)
离线处理器(磁带)(..这个从上到下光看左边还是有点像金字塔的...)
从上到下:价格、访问速度、访问概率递减 容量递增
板上处理器都是易失性的
高速缓存:处理器和内存的速度不匹配 并且近年来处理器速度的提高一直快于内存速度的提高 导致了利用局部性原理的高速缓存出现
若处理要访问的字在高速缓存中将直接传递给处理器;否则将包含这个字的块装入高速缓存中 然后将字传递给处理器
设计问题:
高速缓存大小 块大小 高速缓存级数
映射函数:内存中读的块放在高速缓存的哪个部分
置换函数:高速缓存已满时如何置换
写策略:块上的数据改变时 何时写回内存
直接内存存取
执行I/O操作方式:
可编程I/O:I/O模块执行请求动作并设置I/O状态寄存器中相应的位 但不通知处理器 等处理器执行完定期检查I/O模块状态
中断驱动I/O:将打断处理器的执行并请求服务
直接内存存取(DMA):由系统总线中的一个独立模块完成 处理器读或写一块数据时给MDA一条命令 之后的过程不需要处理器参与
多处理器和多核
对称多处理器(SMP)
特点:1具有两个以上处理器
2处理器共享内存和I/O设备 处理器共享对I/O设备的访问
3所有处理器执行相同的功能(称之为对称)
4整个系统由统一的操作系统控制
交互的基本单元可以为单个数据 而多处理器系统中物理单元是一个消息或文件
相对单处理器优点:性能更好 可用性 渐增势成长 可伸缩性
SMP中的多个处理器都含有自身的控制单元、算术逻辑单元、和寄存器 同时也会有告诉缓存一致性问题
多核处理器:计算机将多个处理器组装在同一块硅里面