第九章 虚拟内存
1、虚拟内存的优点:地址空间>物理内存;部分程序或程序的部分放入物理内存
2、交换:内存不足时以进程为单位在内外存之间交换
3、调页(惰性交换):以页为单位在内外村之间交换,不常交换
4、请求调页(按需调页):对不在内存中的“页”,进程执行时需要才调入(分页适合)
基本思想:当MMU发现页不在内存中,中断CPU,CPU处理此中断,找到空闲页框,将磁盘上的页读入此页框,若无空闲页框,则需要置换某页
5、页表(帧号)项增加有效/无效位记录页是否在内存中
6、一条指令会引起好几次调页,例mov [1001],[29823],这一指令最差情况下调6次页
7、CR2:异常处理寄存器保存缺页时刻的线性地址
8、页面置换方法:(评价方法:缺页次数,第一次调入也算缺页)
(1)FIFO:淘汰最早调入的页面
(2)OPT(MIN):选未来最远将使用的页,最优方案,缺页数最小
(3)LRU:OPT可实现的近似方法,最近最少使用
实现方法:3.1计数器法:每次页引用,计数器+1,复制到相应页表项中,需要置换页时,选择计数值最小的页
评价:几乎没人用,代价大,每次访问要修改时间戳,需维护全局时钟,需找最小值
3.2页码栈法:建立一个容量为有效帧数的页码栈,每当引用某页时,此页号置顶,置换页时换栈底,栈底为LRU页
评价:每次地址访问都要修改栈,代价仍然大
3.3LRU近似实现(SCR)—clock算法:每次访问该页时设置该位为1,需要置换时,扫描,是1时清0,并继续扫描,直到碰到0时淘汰该页,记录该位子,下次继续,当所有的R为1时,退化为FIFO
9、给进程分配页框置换策略:全局置换、局部置换
10、颠簸:进程增多->每个进程缺页率增大->缺页率增大到一定程度,进程总等待调页完成->CPU利用率降低->进程进一步增多,缺页率更大……
防止的根本手段:给进程分配足够多的帧
11、belady异常:对有的页面置换算法,缺页率可能会随着分配帧数增加而增加,栈式算法无此现象,LRU属于栈式算法
第十章 IO设备管理
1、设备管理的3个主要方法:OS直接操纵设备的运行,例直接程序控制、中断方式控制;OS间接操纵设备的运行,例DMA和通道方式;OS通过设备驱动程序,将设备管理工作通过任务(进程)的形式来体现
2、PCI总线:外部部件互联,独立于CPU总线,可与CPU总线并行操作
3、外设工作过程:CPU向控制器中的寄存器读写数据,控制器完成真正的工作,并向CPU发出中断信号
4、设备文件:不同的设备对应不同的文件,文件中存放了设备的属性
5、每个设备都有open(),read(),close(),write(),操作系统为用户提供统一接口
6、设备控制器的结构:
7、I/O系统向读写设备控制器的寄存器发送设备命令
8、设备寄存器的编址:独立编址:需要独立的指令,如in,out、内存映像编址:内存物理空间地址的一部分
9、设备管理程序:按用户的要求自动启动具体设备进行数据传输操作,并且处理设备的中断,此部分程序即为设备管理程序
9、设备管理的任务和功能:登记系统中的所有设备;提供和实现方便的用户界面;进行设备的分配;提供设备保护,避免设备使用冲突;提高设备的利用率和系统效率,尽量做到能使各设备充分地并行工作;确保设备的有效性和均衡性(SPOOLING技术)
10、I/O控制方法
(1)程序直接控制方法:轮询:不断的循环查询设备状态寄存器的值,检查I/O工作是否完成,非就绪就继续读I/O状态,直到I/O就绪再读取数据
优点:工作过程简单,不需要复杂的硬件支持
缺点:CPU利用率极低,循环查询中浪费大量时间
(2)中断控制方法(最常见):发送命令后CPU做其他工作,CPU与I/O并行,设备就绪则产生I/O中断告诉CPU,中断方法控制I/O设备读入数据流程
优点:极大提高了CPU资源的利用率
缺点:一批数据I/O过程会产生多次中断;每次中断都要保存现场、恢复现场等操作,仍占用许多CPU时间;不适用于数据量大、速度要求高的I/O情况
中断读磁盘每个字节从缓存移动到内存都由CPU负责完成,这种简单任务可以交给有一定处理能力的外围设备
(3)直接内存存取(DMA)方式:无需CPU干预,但需要挪用CPU工作周期。数据传输基本单位是数据块。存取细节由DMA考虑,操作系统只需考虑中断处理,DMA完成将数据读入内存任务后向CPU发出中断信号,CPU只需向DMA发送命令,对DMA进行初始化,存放数据的内存起始地址和要输入数据的字节数
优点:更加节省CPU时间
缺点:仍然占用CPU部分时间(挪用工作周期)
(4)通道控制方式:通道具有CPU,可编程,可同时管理多个设备同时工作,真正实现CPU与外部设备的并行工作
优点:除初始化和I/O结束外,不需CPU干涉,真正做到CPU与外设并行;一个通道可以同时管理多个设备工作
缺点:实现复杂,造价昂贵
11、缓冲的目的:解决CPU和外设速度不匹配的矛盾,提高CPU和外设之间的并行性,减少对CPU的中断频率
12、缓冲技术的实现:硬件缓冲(利用专门的硬件寄存器作为缓冲区)、软件缓冲(借助操作系统的管理,在内存中专门开辟若干单元作为缓冲区,有4种实现方法:单缓冲,外设与CPU对缓冲区的操作是串行的、双缓冲,在一定程度上实现并行交换是数据、环形缓冲,当full=empty时,整个缓冲区列表为空、缓冲池,多个大小相同的缓冲区,系统公共资源,所有进程共享,由系统管理程序统一管理)
13、SPOOLING/SPOOL/假脱机系统:操作系统中采用的一项将独占设备改造成共享设备的技术,截获向某独享设备输出的数据,暂时保存到内存缓冲区或磁盘文件中,进行排队,之后逐个输出到外设上。磁盘上有输出井和输入井,分别存储I/O设备的输出输入数据