学习记录9

来源:互联网 发布:游戏推广联盟源码 编辑:程序博客网 时间:2024/06/06 03:56

关于操作系统篇

页面置换算法  

抖动:一个进程在运行中把大部分时间都花费在页面置换工作上   
一、最佳置换算法和先进先出置换算法  
(一)最佳置换算法  
要知道未来需要哪页.实际上不可能  
(二)先进先出页面置换算法  
剔走最老的页  
  
二、最近最久未使用和最少使用置换算法  
(一)最近最久未使用  
看最近的n个,最老的踢走  
(二)LRU置换算法的硬件支持  
寄存器: 8位寄存器.R7~R0.R值最小的页被踢出  
栈:最新访问的是栈顶  
(三)最少使用置换算法  
现实使用这个多.一旦访问就在最高位置一  
  
三、Clock置换算法  
(一)简单的CLOCK置换算法  
也叫最近未使用算法.就是有个访问位,1→0→换出  
(二)改进型CLOCK置换算法  
四类:A M = 0 0 ~ 1 1  
第一步:先找 0 0  
第二步:再找 0 1,并置所有页0 X  
第三步:再找0 0,最后找0 1,一定找到  
优点:减少I/O  
缺点:增加系统开销  
  
四、页面缓冲算法  
(一)影响页面换进换出效率的若干因素  
页面置换算法、写回磁盘的频率、读入内存的频率  
(二)页面缓冲算法PBA  
显著降低页面换进、换出频率,减少页面换进换出的开销  
换入换出的开销大幅减少,才能使用简单的置换策略,如FIFO  
要在内存中设置:空闲页面链表、修改页面链表  
  
五、访问内存的有效时间  
如果考虑快表的命中率和缺页率:EAT = .......  
如果仅考虑缺页率:EAT =   
  
④“抖动”与工作集  
一、多道程序度与“抖动”  
(一)现象  
先增后减  
(二)原因  
进程太多,物理块不够分  
  
二、工作集  
(一)工作集的基本概念  
如果可以预知,就可以先调入内存,大大降低缺页率,从而显著提高处理机利用率  
(二)工作集的定义  
引用的集合,类似FIFO  
  
三、“抖动”的预防方法  
(一)采取局部置换策略  
“抖动”影响较小  
(二)把工作集算法融入到处理机调度中  
每个进程在内存的驻留页面是否足够多,如果是就调入新作业、否则增加新物理块  
(三)利用L=S准则调节缺页率  
缺页之间的平均时间= 平均缺页服务时间  
(四)选择暂停的进程  
先暂停优先级最低的进程、在选择并不重要,但较大的进程  
  
⑤请求分段存储管理方式  
其实也类似于分页,要硬件和软件支持  
一、请求分段中的硬件支持  
(一)请求段表机制  
段表项:段名、段长、段基址、存取方式、访问字段A、修改位M、存在位P、增补位、外存始址  
A、M:改进型CLOCK置换算法  
P:本段是否调入内存  
增补位:看是否做过动态增长  
(二)缺段中断机制 (图5-12)  
万一虚段S不在内存中,就阻塞请求进程。如果没有空闲区,就要拼接空闲区或者淘汰实段以形成空闲区  
之后读入段S,修改段表及内存空区链  
(三)地址变换机构  
就是一个地址变换机构  
  
二、分段的共享和保护  
(一)共享段表  
共享进程计数count、存取控制字段、段号  
(二)共享段的分配与回收  
共享段的分配、共享段的回收  
(三)分段保护  
越界检查、存取控制检查、环保护机构  
  
第六章 输入输出系统  
①I/O系统的功能、模型和接口  
一、I/O系统的基本功能  
(一)隐藏物理设备的细节  
(二)与设备的无关性  
自动安装并寻找驱动程序,即插即用  
(三)提高处理机和I/O设备的利用率  
让处理机和I/O设备并行操作  
(四)对I/O设备进行控制  
这是驱动程序的功能  
(五)确保对设备的正确共享  
独占设备:打印机、磁带机  
共享设备:磁盘  
(六)错误处理  
低级能够解决就不向高级报告,请求高级软件解决  
  
二、I/O系统的层次结构和模型  
(一)I/O软件的层次结构  
用户层I/O软件  
设备独立性软件:映射、保护、分块、缓冲、分配  
设备驱动程序:设置设备寄存器、检查状态  
中断处理程序  
(二)I/O系统中各种模块之间的层次视图  
I/O系统上下接口(图6-2)  
I/O系统的分层:中断处理程序→设备驱动程序→设备独立性软件  
  
三、I/O系统接口  
(一)块设备接口  
块设备、隐藏磁盘二维结构、抽象命令映射为低层操作  
(二)流设备接口(Unix的)  
字符设备:效率低、不可寻址  
get和put操作:有缓冲区  
in-control指令:互斥方式实现共享  
(三)网络通信接口  
  
②I/O设备和设备控制器  
一、I/O设备  
(一)I/O设备的类型  
按使用特性:存储设备、I/O设备(输入输出交互的)  
按传输速率:低速、中速、高速  
(二)设备与控制器之间的接口  
接口:数据信号线、控制信号线、状态信号线  
  
二、设备控制器  
(一)设备控制器的基本功能  
接收和识别命令、数据交换、标识和报告设备的状态、数据缓冲区、差错控制  
(二)设备控制器的组成  
设备控制器与处理机的接口、设备控制器与设备的接口、I/O逻辑  
  
三、内存映像I/O  
(一)利用特定的I/O指令  
缺点:访问内存和访问设备要两种不同的指令  
(二)内存映像I/O  
就是k为界限,0≤k≤n-1,就是内存地址;k≥n,就是寄存器地址。统一了对内存和对控制器的访问方法  
  
四、I/O通道  
(一)I/O通道设备的引入  
这是一种特殊的处理机,但只局限于I/O相关的指令、而且没有自己的内存  
(二)通道类型  
字节多路通道:一个大水喉,多条小水管;一个换头快,一个速率慢  
数组选择通道:利用率低  
数组多路通道:甚至可以并行操作  
(三)“瓶颈”问题  
增加通路即可解决  
  
③中断机构和中断处理程序  
一、中断简介  
(一)中断和陷入  
中断:由外部设备引起,暂停当前程序,执行中断处理程序  
陷入:CPU内部事件引起的,多是出错故障  
(二)中断向量表和中断优先级  
中断向量表:asm有学  
中断优先级:现实中有多个中断信号源,要规定不同优先级  
(三)对多中断源的处理方式  
屏蔽中断:顺序执行。优点简单;缺点无视实时中断请求  
嵌套中断:有个优先级  
  
二、中断处理程序  
测定是否有未响应中断信号;  
保护被中断进程的CPU环境;  
转入相应设备处理程序;  
中断处理;  
恢复CPU现场并退出中断  
  
④设备驱动程序  
一、设备驱动程序概述  
(一)设备驱动程序的功能  
接收命令和参数,并转换为低层操作序列  
检查I/O合法性,了解I/O工作状态,传递I/O设备操作有关参数,设置设备工作方式  
及时响应设备控制器发来的中断请求,并根据中断类型,调用响应中断处理程序  
(二)设备驱动程序的特点  
抽象的I/O请求转换成具体的I/O操作,反映给I/O进程  
和硬件特性紧密相关,终端驱动程序可以只有一个  
常用控制方式:中断驱动、DMA  
一部分必须用汇编语言写,很多驱动程序基本部分已经固化在ROM  
允许可重入  
(三)设备处理方式  
一类设备一个进程  
一个I/O进程负责各类设备的I/O操作  
只为各类设备设置相应的设备驱动程序,供用户或系统进程调用(目前用得最多)  
  
二、设备驱动程序的处理过程  
(一)将抽象要求转换为具体要求  
(二)对服务请求进行校验  
譬如要求打印机输入数据  
(三)检查设备的状态  
检测寄存器中的不同位,了解设备的状态  
(四)传送必要参数  
波特率、奇偶校验等等参数  
(五)启动I/O设备   
了解数据是否到达  
  
三、对I/O设备的控制方式  
(一)使用轮询的可编程I/O方式  
无限等待,好浪费CPU  
(二)使用中断的可编程I/O方式  
百倍提高CPU利用率  
(三)直接存储器访问方式  
至少传送一个数据块,DMA方式提高CPU和I/O之间的并行程度  
(四)I/O通道控制方式  
使用通道程序完成CPU指定的I/O任务  
  
⑤与设备无关的I/O软件  
一、与设备无关软件的基本概念  
(一)以物理设备名使用设备  
以前应用程序与物理设备直接相关  
(二)引入了逻辑设备名  
通过更换逻辑设备表即可改变显示终端  
(三)逻辑设备名称到物理设备名称的转换  
要搞一张逻辑设备表  
  
二、与设备无关的软件  
(一)设备驱动程序的统一接口  
要有统一接口,同时抽象设备名要映射到适当的驱动程序上  
(二)缓冲管理  
设置缓冲区,缓和CPU和I/O设备之间的速度矛盾、提高CPU利用率  
(三)差错控制  
暂时性错误:只有连续多次出错才报告上层,否则由设备驱动程序自己处理  
持久性错误:要查清发生错误的原因,避免以后再发生错误  
(四)对独立设备的分配与回收  
独占设备要先申请  
(五)独立于设备的逻辑数据块  
  
注:与设备无关软件功能:设备驱动程序的统一接口、缓冲、错误报告、分配与释放专用设备、提高与设备无关的块大小  
  
三、设备分配  
(一)设备分配中的数据结构  
系统设备表SDT→设备控制表DCT:类型、标识符、状态、设备队列队首指针、重复执行次数、指向控制器表的指针→控制其控制表COCT→通道控制表CHCT  
(二)设备分配时应考虑的因素  
设备固有属性:独占、共享、虚拟设备  
设备分配算法:FCFS、优先级高优先  
安全性:安全、不安全  
(三)独占设备的分配程序  
独占设备:分配设备、控制器、通道  
如果要设备无关地找设备,就要从SDT找DCT,再逐个测试安全性  
  
原创粉丝点击