[复习]操作系统

操作系统基础

操作系统定义

  1. 用户:是计算机与用户之间的接口
  2. 管理:管理计算机硬件与软件资源

操作系统特征

  • 并发
    并发:同一时间范围 并行:同一时刻
  • 共享
    互斥共享(临界资源)
    同时访问
  • 虚拟
    将一个物理实体变为多个逻辑上的对应物
    时分复用:虚拟处理器
    空分复用:虚拟储存器
  • 异步
    走走停停,不可预知的速度
  • 最基础的特征:并发与共享

操作系统功能

在这里插入图片描述

  1. 管理
    处理机,存储器,文件,设备管理
  2. 用户
    命令接口:
    • 联机/交互式命令接口 : 适用于分时/实时系统的接口
    • 脱机/批处理命令接口 : 适用于批处理系统
      程序接口:系统调用
  3. 对计算机资源的扩充

操作系统发展与分类

在这里插入图片描述

  1. 手工阶段
  2. 批处理阶段
    单道批:顺序 自动 单道
    多道批:宏观上并行 微观上串行 多道
    (中断的特点: CPU与外设并行)
  3. 分时操作
    将处理机运行时间划分为时间片,按时间片轮流将处理机分配给各联机作业使用
    T=QN (Q时间片,N用户数)
  4. 实时操作
    硬实时:必须在时间范围内完成
    软实时:偶尔犯错
    优点:及时性.可靠性
    在这里插入图片描述

微机(个人)操作系统

  1. 微型计算机使用的操作系统是微机操作系统
    分时与批处理相结合
  2. 分类:
    单用户单任务(dos)
    单用户多任务(windows)
    多用户多任务(uninx)
  3. 优点:便宜,规模小;资源与功能有限

网络操作系统

基于计算机网络,在各种操作系统上按照网络体系结构协议标准开发的软件,
包括网络管理,通信,安全,资源恭喜昂和各种网络应用
目标是相互通信与资源共享
windos ,unix ,linix,nt

现代操作系统的新特征

多线程,微内核,网络化,多媒体

操作系统的结构

  1. 无结构os(整体系统结构)
    整个操作系统是一组过程的集合
    优点:接口简单直接,系统效率高
    缺点:os庞大杂乱,调试困难
    在内核模式下运行
  2. 模块化os
    os按照功能划分为若干个模块,每个模块实现一个特定功能,模块之间的通信通过事先定义的接口进行
    优点: 模块之间相互独立,减少了模块之间复杂的调用关系,结构清晰
    缺点:模块之间依赖关系复杂,降低了模块之间的相对独立性,不利于修改
  3. 分层式os
    os的功能模块按照功能调用次序分为若干层,各层之间只有单向调用关系(上层调用下层)
    优点:每一层只使用其底层提供的功能与服务,使得系统易于调试与验证
    缺点:不灵活效率低
    运行模式:所有操作系统进程使用分层模式在内核模式下进行
  4. 宏内核
    性能好
  5. 微内核结构
    运行在核心态,常驻内存
    进程管理,存储器管理,I/O设备管理,进程间通信
    采用C/S模式,面向对象技术
    os核心进程在内核模式下运行
  6. 混合内核结构
    所有进程都在内核模式中运行,
    关键操作系统运行在微内核,
    其余使用C/S模式运行(操作系统服务是服务器,应用程序进程是客户端)
    优点:灵活,可扩充,可靠,可以运行在分布式系统中
  7. 外核
    为虚拟机分配资源

处理机的状态

计算机有两类程序在运行,用户程序与系统程序,对系统资源与机器指令有不同的使用权限
权限次序: 核态(管态)>目态(用户态)

  1. 核态(cpu 0):允许cpu使用全部的资源与全部指令,包括特权指令
    时钟管理,中断机制,原语,系统控制的数据结构以及处理(进程管理,存储器管理,设备管理)
  2. 用户态(cpu 1):禁止使用特权指令,不能直接使用系统资源以及改变cpu状态
    访管指令
    在这里插入图片描述

特权指令

  1. 允许与禁止中断
  2. 在进程之间切换处理机
  3. 存取用于内存保护的寄存器
  4. 执行输入与输出
  5. 停止一个中央处理机的工作
    I/O,关中断,内存清零,存取寄存器,送PSW

状态转换

目态 -> 核态 : 通过中断/异常机制,由硬件实现
核态 -> 目态 : 中断返回指令

中断与异常

中断处理过程中

  • PC PSW 硬件自动保存
  • 通用寄存器内容 os保存
  • 块表,Cache 硬件机构保存
    外中断:
    可屏蔽中断:INTR线实现
    不可屏蔽中断:NMI线,紧急断电,硬件故障
    内中断(异常)
  • 故障
    指令异常引起,
  • 自陷
    用户态下调用操作系统内核程序引起
  • 终止
    使得CPU不能执行的硬件故障

操作系统引导

cpu - > BIOS -> MBR ->PBR
找硬盘 找硬盘分区 找硬盘分区的操作系统 启动操作系统

虚拟机

  1. 第一类
    裸机+VMM
  2. 第二类
    宿主OS + VMM

进程与线程管理

进程并发执行的特点

  1. 并发:程序的执行在时间上可以重叠
  2. 共享:可以共享变量,通过引用共享变量交换信号
  3. 制约:程序并发执行获写作完成统一人任务,产生制约,需要对并发执行的次序进行协调
  4. 交互:程序在执行中共享某些变量,产生交换

进程的定义

  • 程序:具有独立功能的一组指令或语句的集合,或是指出处理机执行操作的步骤
  • 进程:程序在某个数据集上的一次执行活动
  • 进程=程序+数据+PCB
    程序:表示该进程所要进行的操作
    数据集合:程序加工的对象与场所,包括操作的数据和程序自己的变量单元
    进程控制块PCB:用于刻画进程处于不同阶段的状态的数据块,进程存在的唯一标志

PCB

为了方便进程的调度与管理,将各个进程的PCB组织起来
常用的组织方式:

  • 链接方式
  • 索引方式

进程的特性

  • 动态;进程最基本的特征
  • 并发:若干进程可以同时执行,轮流占用处理器交替执行
  • 独立:系统中独立获得资源与调度的基本单位
  • 异步:进程按照各自的独立的不可预知的速度向前推进(顺序不定)
  • 结构特征:进程映像(程序段/正文段,数据段,堆,栈以及进程控制段)

进程与程序的区别

  1. 程序是静态,进程是动态的
  2. 进程是暂时的,程序是永久的
  3. 组成不同
  4. 通过多次执行,一个程序对应多个进程;通过调用,一个进程包括多个程序
  5. 进程是资源分配,处理机调度的基本单位,是一个独立的运行单位

进程状态

在这里插入图片描述

  • 就绪:有了所有资源,除了cpu
  • 阻塞:还需要其他资源
    阻塞到就绪: 进程是被动的,需要中断处理程序的协助
    运行到阻塞: 进程是主动的

进程控制

原语: 一种特殊的系统调用,执行过程不允许被中断
进程控制原语:创建,撤销,阻塞,唤醒原语

进程通信

低级通信

互斥与同步(只能传递控制信息)
pv操作

高级通信

共享存储
  • 基于数据结构的共享----低级方式
  • 基于存储区的共享—高级方式
消息传递

进程间的数据交换以格式化的消息为单位

  • 直接通信方式
    发送进程直接将消息发送给接收进程
  • 间接通信方式
    发送进程将消息发给中间人,例如信箱,接收进程在信箱中取得
管道通信

管道是一个特殊的共享文件,pipe文件,固定大小的缓冲区,只允许单向通信,数据在管道中先进先出

线程

共享进程的地址空间与全局变量,自己不拥有系统资源,是独立调度与分配的基本单位

TCB 线程控制块

线程终止后,不立即释放自己占用的资源

线程实现方式

  • 用户级线程
    ULT ,线程的创建,管理在用户态进行
    优点: 没有模式切换的开销
    缺点:当一个线程执行系统调用被阻塞,整个进程的线程都被阻塞;不能发挥多cpu的优势
  • 内核级线程
    KLT,线程管理的工作在内核态进行
    缺点: 同一进程中的线程切换,需要从用户态转到核心态进行,系统开销大
  • 组合方式
    用户级线程通过时分多路复用实现内核级线程对应多个用户级线程
  • 线程库
    为程序员提供线程管理的API
    1)用户空间提供
    2)操作系统直接支持
    eg: Windows API 内核级线程库;Java线程API 宿主系统的API

多线程模型

  1. 多对一
    多个用户级线程对应一个内核级线程
    线程的管理在用户空间执行
  2. 一对一
    每个用户级线程对应一个内核级线程
    线程的切换由内核完成
  3. 多对多
    n个用户级线程对应m个内核级线程,n>=m66

cpu调度

why: 提高cpu利用率

调度层次

高级调度 / 作业调度

从外存调入内存

中级调度 / 内存调度

将不能运行的进程挂起调职外存等待
提高内存的利用率

低级调度 / 进程调度

从就绪队列中选取进程分配cpu

调度程序

排队器 ,分派器 ,上下文切换器
调度程序是操作系统内核程序
调度完成后,进行进程切换

调度方式

  1. 非抢占式
  2. 抢占式

闲逛进程

进程切换时,如果没有就绪进程,就会调度闲逛进程,此进程不需要cpu以外的资源

线程调度

  1. 内核级线程调度
  2. 用户级线程调度

调度目标

cpu利用率
系统吞吐量
周转时间 = 作业完成时间 - 作业提交时间
带权周转时间: 周转时间/作业实际运行时间
等待时间 = 等待cpu时间
响应时间

进程切换

进程在操作系统内核的支持下运行的,与内核紧密相关
先调度再切换

上下文切换
切换cpu 到另一个进程,需要保存当前进程状态,并恢复另一个进程的状态,进程改变了
模式切换
用户态与内核态的切换

调度算法

  1. 先来先服务 FCFS
  2. 短作业优先 SJF
  3. 高响应比优先 HRRN
    响应比=(等待时间+要求服务时间)/要求服务时间
  4. 优先级调度算法
  5. 时间片轮转 RR
  6. 多级队列调度算法

在这里插入图片描述

实时操作系统: 优先级调度
分时操作系统: 高响应比优先,时间片轮转,多级反馈队列

同步互斥

同步: 进程之间的直接制约关系,协调次序
互斥: 进程之间的间接制约关系

临界资源:一次只允许一个进程使用的资源
临界区:访问临界资源的代码

实现临界区互斥的准则

  • 空闲让进
  • 忙则等待
  • 有限等待
  • 让权等待:当进程不能进入临界区,应该立即释放cpu

实现临界区互斥方法

软件方法
  1. 单标志法
    两个进程必须交替进入临界区,如果一个进程不再进入,则另一个进程永远不能进入,违背空闲让进
  2. 双标志先检查法
    你不想,我想
    两个进程可能同时进入,违背忙则等待
  3. 双标志后检测法
    我想,你不想
    两个进程可能都进不去,违背空闲让进,有限等待,产生饥饿现象
  4. Peterson 算法
    我想,我让给你
    违背让权等待,一直执行while循环
硬件方法
  1. 中断屏蔽方法
    只能在内核态执行,不适用于多处理机
  2. 硬件指令方法–TestAndSet
    TS指令是原子操作,设置共享布尔变量lock,适用于多处理机系统,不能实现让权等待
  3. 硬件指令方法–Swap
    每个临界资源设置共享变量lock,每个进程再设置局部布尔变量key

互斥锁

采用硬件机制实现,主要缺点忙等待

信号量

  1. 整型信号量: 表示资源数目
  2. 记录信号量: 整型变量+进程链表
    p-,wait
    v+,signal

经典同步问题

  1. 生产者-消费者
  2. 读者-写者
  3. 哲学家进餐

管程

管程:进程同步工具,保证进程互斥,提供条件变量实

  1. 管程的名称
  2. 共享数据结构说明
  3. 对该数据结构进行操作的一组过程/函数
  4. 对共享数据设置初始值的语句

死锁

多个进程竞争资源造成的僵局
竞争统一资源,等待对方资源
饥饿 VS 死锁
1. 发送饥饿的进程可能只有一个,可能处于阻塞态/就绪态
2. 发生死锁的进程>=2,只会处于阻塞态

死锁发生的必要条件

  1. 互斥
  2. 不可剥夺
  3. 请求并保持
  4. 循环等待条件

处理死锁的方法

  1. 死锁预防
    破坏死锁的必要条件
  2. 死锁避免
    在动态分配的时候,采取措施,防止系统进入不安全状态
    发生死锁一定处于不安全状态,但是处于不安全状态不一定死锁
    银行家算法
  3. 死锁检测
    允许死锁发生,再消除
    死锁定理:s为死锁,当且仅当s的资源分配图不可完全简化
  4. 死锁解除
    取消/挂起发生死锁的进程
    • 撤销进程
    • 资源剥夺:挂起死锁进程,抢占资源
    • 进程回退:进程自愿释放资源,回退

死锁的检测与解除

内存管理

存储管理的功能

存储管理是对用户区域进行管理,其目标是方便用户,提高主存空间的利用率
存储管理的功能如下:

  1. 地址映射:将程序中使用到的逻辑地址变化成为主存中的地址
  2. 主存分配:按照算法将空闲的主存区分配给进程
  3. 存储保护:保证用户程序(进程映像)在各自的存储区域中操作,互不影响
  4. 主存扩充:提供虚拟存储技术,使用户程序的大小与结构不受主存容量与结构的限制

存储器的三级结构

  1. 高速缓存:SRAM组成,空间换时间的技术
  2. 主存(内存):DRAM组成
  3. 外存(辅存):时间换空间的技术

程序链接与装入

编译->链接->装入

os 通过内存管理部件MMU,将逻辑地址转化为物理地址

链接

  1. 静态链接
    在运行之前,链接成一个完整的装入模块
  2. 装入时动态链接
    在装入内存时,边装入边链接
  3. 运行时动态链接
    运行到需要某模块,才进行链接

装入

  1. 绝对装入
    按照编译产生的绝对地址装入
  2. 可重定位装入
    装入时对相对地址的修改过程称为重定位,是在进程装入时一次性完成的,称为静态重定位
    运行期间不能在内存中移动
  3. 动态运行时装入

进程的内存映像

  • 代码段
  • 数据段
  • 进程控制块
  • 堆:存放动态分配的变量
  • 栈:高地址向低地址方向生长

内存保护

  1. 设置上下限寄存器
  2. 设置重定位寄存器 和 界地址寄存器

内存共享

进程的内存空间中,只有可读的区域/才可以共享,可重入代码称为纯代码,不允许修改

内存的分配与回收

主存空间划分

  1. 系统区:操作系统与硬件的相关信息
  2. 用户区:存放用户的程序与数据

连续分配方式

单一连续分配

用户区内存中只有一道用户程序
会产生内部碎片

固定分区分配

将用户区内存分为若干大小固定的分区
每个分区装入一道作业
设置分区使用表
会产生内部碎片

动态分区分配

使用空闲分区表/链
动态分配分区,分区的大小数量可变
会产生外部碎片 ---- 可以通过紧凑技术解决,需要使用动态重定位寄存器的支持

顺序分配
  1. 首次适应 FF 算法
    空闲分区按地址递增的顺序排列
    性能最好,会让内存低地址部分出现碎片
  2. 邻近适应 NF 循环首次适应算法
    分配内存从上次查找结束的位置开始
  3. 最佳适应 BF
    空闲分区按照容量递增的次序排列
    产生最多的外部碎片
  4. 最坏适应
    空闲分区按照容量递减的次序排列
索引分配

在大中型系统中采取索引分配算法,根据大小对空闲分区分类
对于大小相同的空闲分区设置一个空闲分区链

  1. 快速适应
    找到最小的能容纳进程的空闲分区链
  2. 伙伴系统
    ???没看懂
  3. 哈希算法
    建立哈希函数,构建以空闲区大小为关键字的哈希表

非连续分配方式

页框,物理块,页帧: 将内存空间分为若干固定大小的分区
页/页面: 进程的逻辑空间分为与块大小相等的若干区域
os以页框为单位为各个进程分配内存空间

分页

进程的PCB中有页表
页表的页表项: 页号(不占存储空间)+块号
系统中有页表寄存器PTR,存放页表在内存中的始址和页表长度

快表 TLB / 相联存储器

存放页表的部分副本,其有效性在90%以上,基于局部性原理

分类

  • 基本(简单)分页存储管理:在作业调入内存之前,先判断是否有足够多的块,没有就不调入
  • 请求分页存储管理:作业中要允许的部分分配内存块,其余留在外部,需要执行的时候再分配内存块
分段

将用户逻辑地址空间,划分为大小不等的段
系统中存放段表寄存器

段页式

先分段再分页

可变式分区常用的数据结构

内存分为系统区与用户区
用户区可划分为多个区,每个区加载一个作业,根据划分方式不同有:固定分区,可变分区
可变分区常用的数据结构

  1. 空闲空间表
  2. 空闲分区链
  3. 请求表

虚拟内存

局部性原理

  • 时间局部性:指令执行后,不久后会再次执行
  • 空间局部性:某个存储单元被访问后,其附近位置不久后也会被访问

虚拟存储器引入

由于分区,分页,分段方式中,若进程过大,无法调入,进而无法运行
基于程序执行的局部性原理 , 操作系统把各级存储器统一管理,将需要执行的部分调入内存,其余部分放在磁盘上,需要的时候再换入

虚拟存储器的定义与特征

定义:
有请求调入与置换功能,逻辑上扩充内存容量
逻辑容量=内存+外存,速度接近内存,成本接近外存
实现所需要的物质基础
1. 有相当容量的辅存
2. 有一定容量的主存
3. 页表机制,缺页中断机构与地址变换机构

特征:
1. 多次性:一个作业分成多次调入内存运行
2. 对换性:作业运行中可以换进,换出
3. 虚拟性:逻辑上扩充内存容量

虚拟存储器的实现建立在离散分配的存储管理方式的基础上

  • 请求分页
  • 请求分段
  • 请求段页式存储管理

页框分配

驻留集: 给一个进程分配的页框的集合

页面分配 与 置换策略
  • 固定分配局部置换
    为每个进程分配固定数量的物理块
    进程如果缺页,从分配给进程的页面中选择一页淘汰再调入
  • 可变分配全局置换
    为每个进程分配一定数目的物理块
    进程如果缺页 , 从空闲的物理块选择一个分配
  • 可变分配局部置换
    为每个进程分配一定数目的物理块
    进程如果缺页,从分配给进程的页面中选择一页淘汰再调入
物理块调入算法

采用固定分配算法时,将物理块分配给进程时,可采取以下

  • 平均分配
  • 按比例分配
  • 优先权分配
调入页面
  1. 预调页策略
  2. 请求调页策略

从哪里调入页面

外存= 文件区+对换区

页面置换算法

在这里插入图片描述

  1. 最佳置换算法
  2. 先进先出算法
  3. 最近最久未使用算法
    将过去时间内最久没访问使用的页面淘汰
  4. 时钟置换算法

抖动 工作集

抖动: 刚换入又被马上换出等 频繁的页面调度行为,根本原因是分配的物理块太少
工作集: 进程要访问的页面集合
驻留集 >= 工作集

内存映射文件

将文件 映射 到虚拟内存中
属于系统调用

  1. 通过访问内存的方式实现读写文件
  2. 通过共享内存来进行进程通信
    共享内存就是 通过映射相同文件到通信进程的虚拟地址空间

文件管理

文件

  1. 文件:逻辑上具有完整意义的信息集合,每个文件有文件名
  2. 分类
    • 性质/用途:系统文件,库文件,用户文件
    • 组织形式/处理方式:普通,目录,特别文件
    • 使用/管理:临时,档案,永久文件
    • 文件保护:只读,读/写,执行,不保护文件
    • 文件信息流向:输入,输出,输入输出文件

文件控制块与索引节点

文件与FCB 一一对应,
FCB的集合叫做文件目录
文件目录中的每一项 ; 文件名 + 索引节点

  • 磁盘索引节点
  • 内存索引节点

完成文件打开 open系统调用后,其余的文件操作的系统调用使用索引节点不使用文件名

文件保护

  • 口令保护
  • 加密保护
  • 访问控制

文件逻辑结构

  1. 无结构文件
    流式文件,对文件的访问只能穷举搜索
  2. 有结构文件
    记录式文件,分为定长记录,变长记录
有结构文件
  1. 顺序文件
    串结构,顺序结构
  2. 索引文件
    索引表
  3. 索引顺序文件
  4. 直接文件/散列文件

文件的物理结构

要关注文件大小,记录是否等长,返回的频繁程度与存取方法
磁带文件的组织
顺序结构,由文件头标,文件信息,文件尾标组成

  1. 连续分配
  2. 链接分配
    隐式/显式链接
  3. 索引分配
    单级索引
    多级索引
    混合索引

存储介质:
记录信息的磁盘,光盘,卡片等
单位:卷,一个磁带可以称为一个卷
存储设备:
可安装存储介质的设备:磁带机,磁盘机
块:
存储介质上连续信息组成的区域,是主存与存储设备进行信息交换的单位

文件目录

  1. 文件目录即文件说明,文件控制块(FCB),文件名址录
  2. 每个文件占一个目录项
  3. 对目录管理的要求
    按名存取,允许重名,提高对目录的检索速度,文件共享

目录结构

  1. 单极目录结构
  2. 两级目录结构
  3. 树形目录结构
  4. 无环图目录结构

目录实现

  • 线性列表
  • 哈希表

文件共享

  • 基于索引节点的共享方式(硬链接)
    多个节点指向共享文件
  • 利用符号链 实现共享(软链接)
    多个节点指向的可能是共享文件的路径,没有真正指向共享文件

文件系统

  1. 定义:
    • 系统:复杂文件存储空间管理的机构
    • 用户:是用户在计算机上存储信息与使用信息的接口
  2. 目的
    • 对文件统一管理
    • 方便用户,保证文件可靠
    • 实现按名存取
  3. 组成
    文件目录,组织,操作,管理,安全措施
  4. 文件操作
    打开,关闭文件
    建立,删除,写,读文件

文件系统层次结构

在这里插入图片描述

空闲文件项

将空闲区看作文件记录在文件目录中
增加了目录的尺寸,增加了目录管理的复杂性
适用:系统有少量的大空闲区

空闲文件目录

所有空闲的文件建立一个目录
适用:存在少量空白文件

空闲块链

将所有的空闲块链在一起
链接方法:

  • 按照空闲区大小顺序链接—简单,效率低
  • 按照释放先后顺序链接—简单,效率低
  • 成组链接法

文件使用

读文件
打开->读->关闭
写文件
建立->写->关闭
删除文件
关闭->删除文件
使用文件要先打开,在关闭前不允许非打开者使用
关闭后的文件不能使用,必须再次打开

文件共享与安全

保护:
建立副本,定时转储,允许同时使用但是限制文件使用权限
文件保护的三种方式
口令保护,加密保护---->文件保密
访问控制
访问控制方式:
访问控制矩阵,存储控制表,用户权限表,隐藏文件目录

输入输出管理

计算机中除了cpu与内存之外的设备,统称为外部设备,主要功能以输入输出为主

I/O设备

外部设备的分类

传输速度:

  • 低速:鼠标键盘
  • 中速:打印机
  • 高速:磁盘机,光盘机

数据传输方式

  • 块设备:以数据块为单位进行传输,效率较高如磁带,盘带
  • 字符设备:以字节为单位传输数据,键盘,显示器等低速设备

设备使用特性:

  • 存储设备
  • 输入输出设备

设备的共享属性

  1. 独占设备 :
    为了保证信息传输的连续性,此类设备仅供一个进程使用,该设备空闲期间其他设备也不能使用,如cpu,打印机等
  2. 共享设备
    允许多个进程同时使用,如磁盘
  3. 虚拟设备
    利用假脱机(Spooling)技术,将独占设备改造可供多个进程使用的共享设备

I/O接口 设备控制器

设备控制器
  • 设备控制器用来控制一个或者多个I/O设备,实现I/O设备与计算机之间的数据交换
  • 是CPU与I/O设备之间的接口,接受从CPU发出的命令,控制I/O设备
  • 可以编址的设备,当连接一个设备有唯一的设备地址,当连接多个设备,有多个地址
  • 分类:
    控制字符设备的控制器
    控制块设备的控制器
    微机与小型机的控制器,称为接口卡

cpu 与设备之间的接口,实现数据交换

接收cpu的命令,控制设备工作

组成

  • 设备控制器与cpu之间的接口
  • 设备控制器与设备之间的接口
  • I/O逻辑

分类

  1. 按照数据传送方式
    并行接口,串行接口
  2. 按主机访问i/o设备的控制方式
    程序查询接口,中断接口,DMA接口
  3. 按功能选择的灵活性
    可编程接口,不可编程接口
I/O端口

指的是设备控制器中可以被cpu直接访问的寄存器

  • 数据寄存器
  • 状态寄存器
  • 控制寄存器
    对I/0端口的编址方式
  • 与存储器独立编址
    I/O地址空间和内存是不同的空间
    用户程序不能访问,只有os使用特殊的i/o指令才能访问
  • 与存储器统一编址(内存映射I/O)
    将内存空间分一部分给端口进行编址
    无需另外的I/O指令,使用统一的访存指令
I/O 控制方式

指的是设备与主机之间的数据传送方式

  1. 程序直接控制
    cpu对I/O设备的控制采取轮询的I/O方式,又称程序轮询方式
    缺点:cpu与io设备只能串行工作
  2. 中断驱动
    运行io设备主动打断cpu并请求服务,解放cpu,使得cpu向设备控制器发出一条i/o指令后就可以做其他工作
  3. DMA
    直接存储器存取,在io设备与内存之间开辟直接的数据交换通路,彻底解放cpu
    1)传送的数据单位是
    2)传送到数据直接从设备进入内存
    3)仅在传送数据块的开始与结束需要cpu参与
    需要在DMA控制器中设置以下寄存器
    1)命令/状态寄存器 CR
    2)内存地址寄存器 MAR
    3)数据寄存器 DR
    4)数据计数器 DC
  4. 通道控制
    是一种特殊的处理机 ,放在主机的内存中,与cpu共享内存
    cpu只需要向通道发送I/O指令,之后由通道来完成任务,向cpu发送中断请求

I/O软件层次

  1. 用户层软件
  2. 设备独立性软件
    将逻辑设备名映射为物理设备名
  3. 设备驱动程序
    与硬件直接相关,具体执行设备发出的操作指令
  4. 中断处理程序

应用程序I/O接口

i/0系统与高层之间的接口

分类

  1. 字符设备接口
  2. 块设备接口

两种模式

  1. 阻塞I/O
    当进程调用io操作,进程会阻塞,一道阻塞队列
  2. 非阻塞I/O
    当进程调用i/o操作.进程不会被阻塞

输入输出操作

指的是 主存 与 外围设备之间的信息传送操作

  1. 存储性设备:信息传输单位是块
  2. 输入输出设备:信息传输单位是字节

设备度独立性软件

i/o系统中的最高层软件
包括执行所有设备公有性操作的软件
下层是设备驱动程序

磁盘高速缓存

利用内存空间,存储磁盘读出的信息
逻辑上属于磁盘,物理上是驻留在内存中的盘块

缓冲区 buffer

在内存中单独开辟一个空间

  1. 单缓冲
  2. 双缓冲
  3. 循环缓冲
缓冲池

使用未利用的内存空间作为缓冲池,大小固定

工作方式

  • 收容输入
  • 提取输入
  • 收容输出
  • 提取输出

设备分配

数据结构
  1. 设备控制表 DCT
  2. 控制器控制表 COCT
  3. 通道控制表CHCT
  4. 系统设备表 SDT
设备分配算法
  1. 先来先服务
  2. 优先级高者优先
分配步骤
  • 分配设备
  • 分配控制器
  • 分配通道
逻辑设备 到 物理设备的映射

设置逻辑设备表 LUT
两种方式

  1. 整个系统中设置一张
  2. 每个用户设置 一张

SPOOLING 假脱机技术

为了缓解 cpu的高速 和 I/O 设备的低速,将独占设备改造为共享设备的技术
在这里插入图片描述

磁盘与硬盘

磁盘

在这里插入图片描述

磁盘管理

  1. 磁盘初始化
  2. 分区
  3. 引导块
  4. 坏块

磁盘调度算法

磁盘存取时间
  • 寻道时间
    找磁道
  • 延迟时间
    找扇区
  • 传输时间
算法
  1. 先来先服务 FCFS
  2. 最短寻道时间优先 STTF
    每次选择与当前磁头最短的磁道,会产生饥饿
  3. 扫描算法 SCAN
    只有磁头移动到最外层磁道才能向内移动,如果最外层没有请求还是会移动
  4. 循环扫描 C-SCAN
    返回时直接回到起始端,中途不处理请求

LOOK调度:磁盘只需要到最远端的一个请求就返回,而不需要到达磁盘端点

减少延迟时间
  1. 同一个盘面的扇区交替编号
  2. 不同盘面错位命名

硬盘

基于闪存的存储器

读快,写慢
数据以页为单位读写
以块为单位擦除

磨碎均衡

闪存的擦写寿命有限
引入磨碎均衡技术

  1. 动态磨碎均衡
    写入数据自动选择新的闪存块
  2. 静态磨碎均衡
    让老的承担读任务.新的承担写任务

操作系统安全与防护

实现安全环境的目标与面临的威胁

目标:

  1. 数据机密性
  2. 数据完整性
  3. 系统可用性

威胁:

  1. 攻击者窃取信息
  2. 攻击者篡改信息
  3. 攻击者采用多种方法扰乱系统,使之瘫痪拒绝服务

系统安全的主要特征

  1. 多面性:物理安全,逻辑安全,安全管理
  2. 动态性:信息的时效性,攻击手段的不断翻新
  3. 层次性:通常采用层次-模块化结构方法
  4. 适度性:全面覆盖不可能实现,考虑全面覆盖的成本,系统安全的动态性

计算机安全的分类

  1. 1983 美国国防部颁布了历史上第一个计算机安全评价标准,最核心的文件是 TCSEC
  2. TCSEC将计算机系统的安全程度划分为4类D,C,B,A
    分为7个等级D,C1,C2,B1,B2,B3,A1

操作系统安全性的主要内容

安全策略:描述一组授权使用计算机以及资源的规则
安全模型:描述系统的安全策略,如何设计与实现安全控制的一个全面的理解与描述
安全机制:实现安全策略描述的安全问题,关注如何实现系统的安全性,包括

  1. 认证机制
  2. 授权机制
  3. 加密机制
  4. 审计机制
  5. 最小特权机制

数据加密技术

分类:

  • 数据传输加密
  • 数据存储加密

数据加密,数据解密,数字签名,签名识别以及数字证明等

用户验证概述

  1. 用户验证又称为识别或认证
  2. 当用户登录一台多用户计算机的时候,os对该用户进行验证,目的在于确定被验证对象是否真实
  3. 保障网络安全的第一道防线:验证技术的应用

早期系统内部攻击方式

  1. 窃权尚未清除的有用信息
  2. 通过非法系统调用来搅乱系统
  3. 使系统自己封杀校验口令程序
  4. 尝试许多在铭文规定中不允许做的操作
  5. 在os中增添陷阱门
  6. 骗取口令

计算机病毒的特征

寄生,传染,隐蔽,破坏

计算机病毒的类型

  1. 文件性病毒
  2. 内存驻留病毒
  3. 引导扇区病毒
  4. 宏病毒
  5. 电子邮件病毒

操作系统的安全需求

指的是设计一个安全操作系统时期望得到的安全保障,一般要求系统无错误配置,无漏洞,无后门,无特洛伊木马等,能防止非法用户对计算机资源的非法夺取,包括:

  1. 机密性需求
  2. 完整性需求
  3. 可记账性需求
  4. 可用性需求

安全策略

即有关管理,保护,分配以及发布系统资源及敏感信息的规则与实施细则
一个系统可以有一个或多个安全策略,其目的使安全需求得到保障

分类:

  • 军事安全策略:目的是机密性,完整性,可记账性和可用性
  • 商业安全策略:目的是完整性,也涉及机密性,可记账性和可用性

安全模型

要建立一个可信系统,需要在os核心构建一个安全模型,模型要非常简单以确保自身的安全性
安全模型:用于精确描述系统的安全需求与策略
安全模型:首先应当是精确的,同时也应当是简单和容易理解的,而且不涉及安全功能的具体实现细节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值