学习记录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,再逐个测试安全性
阅读全文
0 0
- Java学习记录9
- js学习记录9
- 学习记录9
- go语言学习记录9
- java的学习记录9
- 9/21/16 学习记录
- 我的学习记录9
- Metron学习9_Apache Metron学习记录
- --学习记录
- 学习记录
- 学习记录
- 学习记录
- 学习记录
- 学习记录
- 学习记录
- 学习记录
- 学习记录
- 学习记录
- 设计模式-观察者模式
- 扫描全国的ip并识别摄像头
- Flag
- javascript之checkbox全选反选功能实现
- RocketMQ原理(1)——服务端组件介绍
- 学习记录9
- shiro框架---认证
- 辩证法中包括一个关系、两大特征、三大规律、四种方法、五对范畴
- unity 位置 管理
- 2017.11.16考试总结
- Hive提示警告SSL
- 更改keyspace复制策略(九)
- 1153: sum
- Redhat 7 安装 MySQL 5.7.10, 安装JDK 1.7, 安装Tomcat 7.0 配置web服务器