操作系统

操作系统

第一章 操作系统概念

  1. 操作系统的定义和功能
    操作系统属于系统软件 ,是硬件基础上的第一层软件,是其他软件和硬件之间的接口。(硬件管理,软件接口)

  2. 操作系统的四大特征
    (1) 并发性
    并发: 多件事件在同一时间间隔发生。
    并行: 多件事宏观微观同时发生。
    串行: 多件事情按顺序发生。
    (2) 共享性: 共享性是指计算机系统中的资源能够被并发执行的多个进程共同使用。
    共享是由并发引起,而共享是并发的基础,二者相互依存。
    互斥共享,交替共享。
    (3) 异步性: 异步性(随机性),是指多道程序环境中多个进程的执行、推进和完成时间都是随机的、交替的、不可预测的。
    (4) 虚拟性: 虚拟性是指操作系统通过某种技术将一个实际存在的实体变成多个逻辑上的对应体。

  3. 理解多道程序的定义和表现,实现硬件基础
    在内存中放多道程序,使它们在管理程序的控制下相互穿插地运行。
    基础:通道和中断

  4. 什么是通道和中断
    通道:用于控制I/O设备与内存间的数据传输。它是独立于CPU的专门负责数据输入/输出传输工作的处理机,对外部设备实现统一管理,代替CPU对输入/输出操作进行控制,从而使输入,输出操作可与CPU并行操作。
    中断:是指CPU在收到外部中断信号后,停止原来工作,转去处理该中断事件,完毕后回到原来断点继续工作。

  5. 三大基本操作系统的特征,批处理,分时,实时
    (1) 单道,多道批处理操作系统
    主要特征:
    用户脱机工作
    成批处理作业
    单/多道程序运行
    作业周转时间长
    没有交互性
    (2) 分时操作系统
    主要特征:
    多路性:分时系统的终端用户通过多路卡或计算机网络进入系统,同时联机分享计算机资源。终端用户之间彼此独立,互不干扰。
    及时性:分时系统的终端用户发出的请求能够被分时系统及时响应。
    交互性:分时系统的终端用户通过操作系统命令直接与计算机系统交互
    (3) 实时操作系统:
    系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。

  6. 理解操作系统的两大接口,操作接口,程序接口
    (1) 程序接口:为应用程序的开发和运行创建良好的环境.
    系统调用和内核函数, 内核提供一系列具备预定功能的内核函数,通过一组系统调用的接口呈现给用户。
    (2) 操作接口:命令接口, 图形接口

  7. 为什么应用程序不能直接调用内核函数?
    主要原因:实现对系统的保护
    程序的运行空间分为:
    内核空间(核心态,管态)
    用户空间(用户态,目态)
    当应用程序需要获得系统服务时,就必须利用操作系统提供给用户的特殊接口——系统调用
    一种中介角色,把用户和硬件隔离,是应用程序获得操作系统服务唯一途径
    (1)实现对系统资源进行保护
    (2)实现对资源的抽象,提供一致性接口,避免用户在使用资源时产生错误,提高编程效率

  8. 联机 脱机 假脱机
    联机操作:输入/输出操作在计算机直接控制下进行的。联机时,操作者“正在”使用计算机资源。
    脱机操作:输入/输出操作在要进行操作的计算机以外的设备上进行,在需要时再送计算机处理。
    假脱机(Spooling):是指输入/输出不直接送往输入/输出设备或计算机,而是先送到外存储器,典型的例子是打印。

第二章 进程和线程

  1. 进程定义
    进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。
    程序:是一个包含了所有指令和数据的静态实体。
    线程: 线程是进程中能并发执行的实体, 是进程的组成部分, 也是处理器调度和分派的基本单位.
    作业: 是用户提交给系统的一个正在执行的任务,这个任务有可能只需一个进程来完成,也有可能需要多个进程完成。

  2. 进程和程序的区别
    (1) 进程更能真实地描述并发,而程序不能
    (2) 进程是由程序、数据和PCB等部分组成的􀂄
    (3) 程序是静态的,进程是动态的􀂄
    (4) 进程有生命周期,有诞生有消亡,短暂的;而程序是相对长久的
    (5) 一个程序可对应多个进程,反之亦然
    (6) 进程具有创建其他进程的功能,而程序没有

  3. 顺序执行和并发执行的特征
    (1)顺序执行(串行)的主要特性:
    执行的顺序性
    环境的封闭性:环境是由程序本身决定的
    执行结果的确定性
    计算过程的可再现性
    (2) 并发执行的主要特性
    执行是间断的
    失去封闭性,相互制约
    过程不可再现,
    结果不确定

  4. 并发程序设计方法
    现代计算机硬部件能同时进行工作,但怎样才能充分发挥它们的并行工作能力还取决于程序的编制方法。
    通常将一个程序分成若干个可同时执行的程序模块,每个程序模块和它执行时所处理的数据就组成了一个进程,它们可以并发执行。

  5. 进程控制块,PCB,放什么,地位
    进程控制块PCB :操作系统为了描述和控制进程专门设置的数据结构,用于记录和刻划进程状态及有关信息,
    内容: 包括进程执行时的情况,以及进程让出处理器后所处的状态、断点等信息。
    (1)进程描述信息:
    进程标识符(process ID),唯一,通常是一个整数,进程号(内部标识符)
    进程名,通常基于可执行文件名(不唯一)(外部标识符)
    用户标识符(user ID);进程组标识, 用户组名

    (2) 进程控制信息:
    当前状态
    优先级(priority)
    代码执行入口地址
    程序的外存地址
    运行统计信息(执行时间、页面调度)
    进程间同步和通信;阻塞原因
    进程的队列指针,进程的消息队列指针

    (3) 所拥有的资源和使用情况:
    虚拟地址空间的现状􀂄
    打开文件列表

    (4) 现场保护信息:
    寄存器值(通用、程序计数器PC、状态PSW,地址包括栈指针)
    指向赋予该进程的段/页表的指针

    地位: 系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志
    进程与PCB是一一对应的

  6. 进程映像和上下文
    进程映像
    进程控制块(PCB)
    程序块(共享正文段,共享代码)
    进程栈(核心和用户栈)
    进程数据块(数据,私有代码)

    进程上下文:进程物理实体和支持进程运行的环境。由以下三部分组成:
    1.用户级上下文:进程的代码区、数据区、用户栈区和共享存储区;编译成目标文件时生成,占据进程的虚拟地址空间
    2.寄存器上下文:程序状态字寄存器,各类控制寄存器等
    3.系统级上下文:PCB,内存管理信息,核心栈

    一个进程被系统调度而占有CPU时,会发生CPU在新老进程之间切换,切换的内容是进程上下文,进程运行是在进程的上下文中执行的

  7. 进程队列
    为了有效地管理并发系统中的众多进程,需要把不同状态的进程(PCB)组织起来
    进程队列(PCB表):把处于同一状态的所有进程的PCB链接在一起的结构
    (运行队列,就绪队列,等待队列)
    同一状态进程的PCB既可按先来先到的原则排成队列;也可按优先数或其它原则排成队列。

  8. 进程三际态模型
    进程的三种基本状态:
    运行,就绪,等待
    运行态(Running):进程占有CPU,并在CPU上运行􀂄
    就绪态(Ready):一个进程已经具备运行条件,但由于无CPU暂时不能运行的状态(当调度给其CPU时,立即可以运行)􀂄
    等待态(Blocked):阻塞态、封锁态、睡眠态指进程因等待某种事件的发生而暂时不能运行的状态(即使CPU空闲,该进程也不可运行)

    进程在生命消亡前处于且仅处于三种基本状态之一
    不同系统设置的进程状态数目不同

  9. 五态 七态 九态,挂起态
    (1) 五态
    新建态
    OS 已完成为创建一进程所必要的工作􀂄 已构造了进程标识符, 已创建了管理进程所需的表格, 但还没有置为就绪态,没有提交到就绪队列, 因为资源有限

    终止态
    进程完成任务,到达正常结束点, 因出现无法克服的错误而异常终止被操作系统及有终止权的进程终止.
    两个步骤:
    善后处理
    回收资源并删除进程

    挂起(suspend)状态
    进程没有占用内存空间, 处在挂起状态的进程映像在磁盘上(调节负载,对换)

    为什么要引入挂起状态?
    由于进程的不断创建,系统资源已不能满足进程运行的要求,就必须把某些进程挂起(suspend),对换到磁盘镜像区中,暂时不参与进程调度,起到平滑系统操作负荷的目的。
    (2)七态模型
    挂起就绪态(ready suspend):表明进程具备运行条件但目前在二级存储器中,当它被对换到主存才能被调度执行。
    挂起等待态(blocked suspend): 表明进程正在等待某一个事件且在二级存储器中。

  10. 相关进程的两种关系,竞争协作

此时由单线程进程过渡到多线程进程

  1. 为什么引入线程
    进程创建 撤销和切换开销大
    进程通讯代价大
    进程并发粒度大,并发度不高.
    解决: 同一进程设置多个控制流, 控制流并行执行, 且直接通过内存区通信.

  2. 线程定义
    线程: 线程是进程中能并发执行的实体, 是进程的组成部分, 也是处理器调度和分派的基本单位.

  3. 此时进程为分为两部分
    资源集合, 线程集合
    线程成了资源分配和保护的基本单位.
    线程成了可并发执行实体.
    进程

  4. 什么是同步互斥
    进程同步的定义: 为完成共同任务的并发进程基于某个条件来协调其运行进度、执行次序而等待、传递信号或消息而产生的协作制约关系
    进程互斥的定义: 是若干进程因相互争夺独占型资源而产生的竞争制约关系。
    相同: 互斥是一种特殊的同步关系——以一定次序协调地使用共享资源

  5. 理解临界资源和临界区,调度原则
    临界资源:某段时间内只能允许一个进程使用的共享资源
    临界区:访问临界资源的代码段

  6. 什么是原语
    由若干条指令组成,实现某个特定功能,在执行过程中不可被中断的程序段
    原语和机器指令类似,执行是顺序的不能并发执行
    通常在核心态/管态下执行
    实现方法:以系统调用的方式提供原语接口,采用屏蔽中断的方式来实现

    原语和系统调用的区别:
    相同点:都是使用访管指令实现,具有相同的调用形式,都处于核心态
    不同点:原语不允许中断(屏蔽中断的方式实现的),系统调用允许中断;系统调用能调用原语,而原语不能调用系统调用

  7. 什么是信号量和PV操作和具体过程推论
    P(s):将信号量 s 的值减 1,若结果小于 0,则调用 P(s)的进程被阻塞,并进入信号量 s 的阻塞队列中;若结果大于等于0,则调用 P(s)的进程继续运行
    V(s):将信号量 s 的值加 1,若结果不大于 0,则调用 V(s)的进程从该信号量阻塞队列中释放,唤醒一个处于等待状态的进程,将其转换为就绪状态,调用 V(s)的进程继续运行; 若结果大于 0,则调用 V(s)的进程继续运行。

  8. 信号量PV操作解决问题

  9. 三大经典同步互斥问题

  10. 管程,概念

  11. 理解进程通讯消息传递的三种概念
    进程通信:消息传递通信(缓冲区),共享内存通信,管道通信(共享文件)

  12. 什么是死锁,为什么发生
    如果在一个进程集合中的每个进程都在等待只能由该集合中其他一个进程才能引发的事件,而无限期陷入僵持的局面称为死锁
    死锁产生的原因: 并发进程对临界资源的竞争,并发进程推进顺序不当

  13. 死锁产生的四个必要条件
    互斥条件:系统存在临界资源
    占有和等待条件:进程在请求资源得不到满足等待的同时也不释放已占有的资源
    不剥夺条件:资源只能自己释放
    循环等待条件:存在循环等待链

  14. 如何防止四个死锁,破坏必要条件
    破坏死锁产生的四个条件:

  15. 掌握银行家算法解题
    看下这两个视频就懂了
    https://www.bilibili.com/video/BV1Nx411X7hT?from=search&seid=15267721408221156319
    https://www.bilibili.com/video/BV1rJ411p7au?from=search&seid=15267721408221156319

  16. 理解死锁解除方法
    主要的死锁防止方法
    破坏互斥条件
    破坏占有并请求(等待):静态分配
    允许剥夺
    阻止环路等待

  17. 低级调度 中级调度 高级调度
    低级调度(进程调度, 一级调度(低)): 用来决定就绪队列中哪个进程应该获得处理器, 再分排程序把处理机分配给进程的具体操作.
    中级调度(二级调度(高 低)): 根据存储资源量和进程的当前状况来决定辅存和主存中进程的对换.
    高级调度(作业调度, 三级调度(高 中 低)): 按一定原则对外存输入井上的大量后备作业进行选择调入内存, 并为他们创建进程, 分配必要的资源.

在这里插入图片描述

  1. 调度算法
    作业周转时间: ti , 运行所需时间tk,
    带权周转时间 wi=ti / tk
    平均带权周转时间 W = (w1 + w2 +w3 +… )/n

在操作系统中, 大多数调度算法对作业调度和低级调度都是适用的
先来先服务算法

最短作业优先算法

最短剩余时间优先算法

响应比最高者优先算法

优先级调度算法

第三章 内存管理

  1. 理解逻辑地址和物理地址
    逻辑地址: 目标程序使用的地址
    物理地址: 程序在物理内存中的实际存储位置

  2. 地址重定位及静态重定位和动态重定位
    地址重定位:把程序和数据的逻辑地址转换为物理地址,使程序正确运行的过程

    静态重定位:在用户作业装入内存时由装入程序(装配程序)实现从逻辑地址到物理地址的转换,地址转换在作业执行前一次完成
    优点: 实现简单
    缺点: 只能为程序分配连续存储空间

    动态重定位:程序执行过程中,CPU 在访问程序和数据之前才实现地址转换
    优点: 可以为程序分配离散存储空间
    缺点: 需要硬件支持, 且实现复杂

  3. 存储管理的 4 大功能;
    内存的分配和回收:
    提高内存的利用率:
    通过虚拟存储技术“扩充”内存容量。
    内存信息保护

  4. 单一连续内存管理
    内存只存放一道程序, 系统区通常位于低地址, 用户区位于高地址

  5. 固定分区内存管理的方法及地址转换过程
    固定分区:固定分区内存管理是预先把可分配的内存空间分割成若干个大小固定的连续区域,每个区域的大小可以相同,也可以不同,每个区域称为一个分区。每个分区可以装入且只能装入一个用户作业。
    静态重定位:装入程序在进行地址转换时检查其绝对地址是否在指定的分区中,若是,则可把程序装入,否则不能装入。固定分区方式的内存回收很简单,只需将内存分配表中相应分区的占用标志位置成“0”即可。
    动态重定位:如图3.8所示,计算机系统设置了一对地址寄存器——上限/下限寄存器;当一个进程占有CPU执行时,操作系统就从内存分配表中取出相应的地址放进上限/下限寄存器;硬件的地址转换机构根据下限寄存器中保存的基地址B1与逻辑地址相加就得到绝对地址;硬件的地址转换机构同时把绝对地址和上限/下限寄存器中保存的地址进行比较,就可以实现存储保护。
    在这里插入图片描述

    固定分区分配的优点和缺点
    优点: 与单一连续分配方式比较,固定分区分配方式使得系统资源的利用率和吞吐量有一定的提高。
    缺点:
    内存空间的利用率不高, 两个作业可能实际只需要8K和16K的内存,但它们却占用了10K和20K的两个分区,分别浪费了2K和4K的内存空间。
    由于每个分区大小固定,这样就限制了可容纳的程序的大小。在装入一个程序时,若找不到足够大的分区,则无法装入。只能通过覆盖技术

  6. 理解可变分区内存管理方法及地址转换过程
    变分区内存管理方法: 可变分区是指事先不确定分区的大小,也不确定分区的数目。当某一用户作业申请内存时,检查内存中是否有一块能满足该作业的连续存储空间,若有就把这一空间划出一块区域给该用户使用,这种方式就称作可变分区内存管理。由于分区的大小是按作业的实际需要量来定的,且分区的个数也是随机的,所以可变分区内存分配可以克服固定分区方式中的内存的浪费现象。

    与固定分区的比较
    相同点:都属于连续分配内存方式
    不同点:
    (1)分区建立时刻:可变式分区的分区建立不是在系统初启时,而是在系统运行过程中,在作业装入时动态建立;
    (2)分区的大小:不是事先设定的,而是根据作业对内存的需求量而分配的;
    (3)分区的个数:是变化不定的
    (4)固定分区容易出现内碎片,可变分区容易形成外碎片
    (5) 对固定分区一般采用静态重定位,可变分区采用动态重定位

  7. 了解可变分区内存分配算法
    可变分区的内存分配算法
    1)最先适应分配算法。每次分配时,总是从头顺序查找未分配区表或空闲区链表,将找到的第一个能满足长度要求的空闲区分配给用户作业使用。从该空闲分区中分割一部分给作业,另一部分仍作为空闲分区;如果空闲分区全部查找完也不能满足该作业要求,则系统不能为该作业分配内存。
    该分区分配算法首先利用内存中的低地址空闲分区,保留了大的高地址空闲分区,以便能容纳大的用户作业。该算法的缺点是系统每次都是从未分配分区表或空闲区链表的开始查找空闲分区,低地址段的空闲分区被不断分割,形成了许多小的、难以利用的空闲分区,这样的小空闲分区称为“碎片”;同时每次都从开始查找,查找的过程花费的时间较长。
    2)循环首次适应分配算法。循环首次适应法是对最先适应法的改进。为作业分配内存时,系统不是从空闲分区表的开始处开始查找,而是从上次为作业分配分区后的位置开始查找,找到第一个满足作业大小的空闲分区,分配并分割该空闲分区。
    该分区分配算法克服了首次适应算法的缺点,使得空闲分区的分布更加均匀,查找空闲分区所需要的时间更短。但是,小分区或“碎片”问题仍然不能解决。
    3)最优适应分配算法。该分配算法是从空闲区中挑选一个能满足作业要求的最小分区,这样可以避免分割一个更大的区域,使大作业比较容易装入。采用这种分配算法时可把空闲区按长度以递增顺利排列,查找时总是从最小的一个区开始,直到找到一个满足要求的区为止。按这种方法,在收回一个分区时也必须对空闲区链重新排列。
    最优适应分配算法找出的分区一般都是无法正好满足作业的内存要求,分割后剩下的空闲区很小,无法再次使用,成为“碎片”。另外,这些小的空闲区占据了空闲区表的开始部分,增加了查找空闲区表或空闲区链的时间开销。
    4)最合适应分配算法。其思想是:从空闲区中挑选一个最大的区给作业使用,这样可使分割后剩下的空闲区仍然比较大,任然能满足以后的作业装入要求,也减少了内存中“碎片”的大小和个数。采用这种分配算法时可把空闲区按长度以递减顺序排列,查找时只要看第一个分区能否满足作业要求,若能满足,则分配给该作业使用。这样使最坏适应分配算法的查找效率很高。这种算法对中、小作业是有利的。
    最差适应分配算法缺点:随着系统的运行,大空闲区会不断减少,这样,大的作业可能会无法装入内存。
    5)快速适应算法。快速适应算法把不同长度的空闲区归类,为每种长度的空闲区设立单独的空闲区链表。这样,系统中存在多个空闲分区链。例如,有一个N项的空闲分区表,该表第一项是指向长度为2KB的空闲区链表表头的指针,第二项是指向长度为4KB的空闲区链表表头的指针,第三项是指向长度为8KB的空闲区链表表头的指针,依此类推。为作业分配内存时,根据作业大小查找空闲分区表,找到能够容纳它的最小的空闲分区链表的起始指针,然后再从相应的空闲分区链中取第一个空闲分区分配给该作业即可。
    该算法的优点是查找空闲分区迅速,找到的空闲分区是能容纳它的最小空闲区,这样能够保留大的空闲分区。该算法的缺点是回收分区较困难,算法复杂,系统开销大。

    地址转换与内存保护
    可变分区内存管理是采用动态重定位方式来装入作业的,其地址转换由硬件机构完成。硬件设置了两个专门的寄存器:基址寄存器和限长寄存器。基址寄存器存放分配给作业使用的分区的起始地址,限长寄存器存放该分区的存储空间的长度。
    在这里插入图片描述

  8. 理解为什么引进离散分配算法

  9. 分页管理基本原理
    基本思想:打破程序装入的整体性和存储分配的连续性,首先将用户进程的逻辑地址空间划分成多个子部分,以子部分为单位装入物理内存,这些子部分可以分布在若干非连续的内存块上,实现了离散储存,以充分利用内存。

    内存的非连续分配方式主要包括页式存储管理和段式存储管理两种方式
    地址转换
    借助于硬件的地址转换机构,按页面动态地址重定位
    在进程运行前把该进程的页表基地址和页表长度送入页表控制寄存器中;
    CPU获得逻辑地址,硬件自动把逻辑地址分成页号p和页内位移d;
    从页表基址寄存器找到页表,再用页号p作为索引查找页表,得到对应的块号
    物理地址=块号*块长+页内位移

    整个系统只有一个页表控制寄存器,只有占用CPU的进程才占有页表控制寄存器,进程上下文切换时也必须让出页表控制寄存器

  10. 分页管理根据逻辑地址计算物理地址
    硬件能自动分离出页号和页内地址,我们可以通过计算得到:
    (1)如果给出的逻辑地址是十进制形式,那么可按如下公式算得页号和页内地址
    程序地址/页长
    商为页号,余数为页内地址。
    例如:程序地址为8457, 页长为4KB,则8457/4096可得:商为2,余数为256。

  11. 了解快表的概念
    引入快表的原因: 那就是每一次对内存的访问都要访问页表,页表是放在内存中的,也就是说每一次访问内存的指令至少要访问两次内存,运行速度要下降一半。
    解决这个问题的一种方法是在硬件中设置相联存储器,把最近访问的部分页表项放入这种速度更快(但容量小,价格贵)的相联存储器中,这种快速存储器组成的页表称为快表,把存放在内存中的页表称为慢表。
    查找时先查块表,找不到再查慢表
    为了提高命中率,块表的内容需要不断更新

  12. 了解多级页表
    可将页表也分页,并对页表所占的空间进行索引形成外层页表(页目录表),由此构成二级页表,更进一步可形成多级页表。

    上述解法只能实现页表的离散存放,但并没有减少页表空间的占用
    在上述存储页表的基础上,可以采用页表的动态调入:进程运行涉及页面的页表页应存放在主存中,而其他页表页使用时动态调入,可以在页目录表中增加标志位,指示对应的页表页是否已调入主存

  13. 理解分段管理的基本原理,以及为什么用这个

  14. 段式管理地址转换过程
    逻辑地址,{段号, 段内偏移量} —>段表—>物理地址: 段

  15. 分页和分段的联系和区别
    分页和分段的主要区别:
    1.段是信息的逻辑单位,它是根据用户的需要划分的,因此段对用户是可见的;页是信息的物理单位,是为了管理主存的方便而划分的,对用户是透明的
    2.引入段是为了用户模块化编程的需要,引入页是系统为了实现离散分配并提高主存利用率
    3.页的大小固定不变,由系统决定。段的大小是不固定的,由用户根据完成的功能决定
    4.段向用户提供的是二维地址空间,页向用户提供的是一维地址空间
    5.段式管理和分区管理一样可能产生主存碎片,而页式管理很好地消除了碎片
    6.段式与页式一样,为实现地址转换,处理机要花费较大的开销,为实现管理需要设置跟多的表格
    段页式管理:
    用户程序划分:按段式划分(对用户来讲,按段的逻辑关系进行划分;对系统讲,按页划分每一段)
    内存划分:按页式存储管理方案
    内存分配:以页为单位进行分配

  16. 虚拟内存的定义

  17. 虚存管理的主要思想,部分装入部分替换

  18. 虚拟内存的大小影响因素,地址位数

  19. 理解请求分页存储的管理过程

  20. 理解请求分页的页表如何扩充

  21. 了解三个策略,

  22. 掌握三种页面置换算法

第四章 设备管理

  1. 设备分类
    (1)按服务功能分类
    存储类设备。通常以存贮大量信息和快速检索为目标,也称外存或后备存储器、辅助存储器,是计算机系统用以存储信息的主要设备,如U盘、光盘等。
    输入/输出类设备。主要完成把外界信息输入计算机,或者把运算结果从计算机输出的功能,例如键盘、显示器、打印机、音响、摄像头、扫描仪。
    通信类设备。这类设备主要完成计算机和外界的通信过程,如网卡、红外设备、蓝牙设备等。
    (2)按每次信息交换的单位分类
    字符设备。指以单个字符为单位来传送信息的设备,如字符显示终端、键盘、打印机、异步通讯接口等。
    块设备。指以数据块为单位来组织和传送数据的设备,属于有结构设备,如磁盘、摄像头等。磁盘输入输出以一个扇区为基本单位,摄像头(或图形屏幕)抓取(或显示)以一帧为单位。
    (3)按使用特征分类
    独占设备。这类设备在用户作业的整个运行期间必须为此用户所独占,才能保证传送信息的连贯性。独占性是设备本身的属性。
    共享设备。这类设备通常指磁带、磁盘一类的存取设备。这里的共享是指多个用户进程运行期间可以交替地使用它们,对它们进行读写。
    虚拟设备。为了将慢速的独占设备改造成多个用户可共享的设备,以提高设备的利用率、提高系统进程并行的程度,可借助于假脱机技术(Simultaneously Peripheral Operation On Line,SPOOLing)进行模拟。模拟独占设备的那部分共享设备的空间称为虚拟设备。

  2. 设备控制方法
    查询方式
    由处理器提供I/O相关指令来实现,主要实现过程: CPU要不断的发送I/O测试指令用以测试设备控制器是否就需,若设备就绪,则主存与外部设备交换一个字符或一个字。若设备未就绪,则I/O测试指令不断对它进行测试,直到设备就绪为止。
    优点:控制简单,在CPU速度慢、要求不高的场合下常被采用
    缺点:
    (1)由于CPU的速度远高于I/O设备的速度,使得CPU绝大部分时间都处于等待I/O完成的循环测试之中。显然,这对CPU是极大的浪费。
    (2)CPU轮询会浪费CPU宝贵的时间;实际的I/O传输工作也需要CPU参与,CPU和设备只能串行工作

    中断方式
    在查询方式中,CPU之所以要不断地测试I/O设备的状态,就是因为在CPU中无中断机构,使I/O设备无法向CPU报告它已完成了一个字符的输入操作。引入中断机构是为了消除设备驱动程序不断地轮询控制器状态寄存器的开销,当I/O操作结束后,由设备控制器“自动地”通知设备驱动程序。
    中断方式要求CPU与设备控制器及设备之间有中断请求线,控制器的状态寄存器有相应中断允许位。
    消除了CPU轮询方式中的忙等待测试,但是并没有把CPU从数据传输(设备和主存储器)中解脱出来

    DMA方式
    DMA方式具有以下特点:
    一是数据传输的基本单位是数据块,即每次传送至少一个数据块;
    二是所传送的数据是从设备直接送入内存,或者直接读出内存的;
    三是在传输时CPU参与更少,仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。
    DMA控制器和处理器都可以访问内存,但是,需要互斥访问内存。通常的情况是,处理器把一个存取周期时间让给DMA控制器占有内存总线,让DMA控制器控制设备控制器直接传输数据到内存。

    DMA 方式与中断的主要区别
    中断方式是在数据缓冲寄存区满或空后,发中断请求,CPU进行中断处理
    DMA方式则是在所要求传送的数据块全部传送结束时要求CPU进行中断处理, 大大减少了CPU进行中断处理的次数
    中断方式的数据传送是由CPU控制完成的, 而DMA方式则是在DMA控制器的控制下不经过CPU控制完成的

    DMA 方式的缺点
    每发出一次I/O指令,只能读写一个数据块,如果需要一次能够读写多个离散的数据块,并把它们传送到不同的主存区域或相反,则需要由CPU发出多条启动I/O的指令及多次I/O中断才能实现

    通道方式。

  3. 设备的4种I/O控制方式及其性能比较
    主要差别在于中央处理器和外围设备并行工作的方式不同,并行工作的程度不同。
    1)查询方式:对CPU造成极大的浪费,但控制简单,在CPU速度慢、要求不高的场合下常被采用
    2)中断方式:消除了CPU轮询方式中的忙等待测试,很大程度上提高了CPU的利用率,
    但并没有把CPU从数据传输(设备和主存储器)中解脱出来
    3)DMA方式:较之中断方式减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度
    4)通道方式:是DMA方式的发展,进一步减少CPU对I/O的干预
    主要差别在于中央处理器和外围设备并行工作的方式不同,并行工作的程度不同。

  4. 理解缓冲区的主要作用
    凡是数据到达和离去速度不匹配的地方均可采用缓冲技术。
    缓冲区:有一定容量、暂存信息的存贮装置。
    缓冲技术主要有以下作用:
    (1)它能改善中央处理器与外围设备之间速度不匹配的矛盾,提高 CPU 和 I/O 设备的并行性。
    (2)它能减少 I/O 对 CPU 的中断次数和放宽对 CPU 中断响应时间的要求。
    (3)缓冲技术还能协调逻辑记录大小与物理记录大小不一致的问题。

  5. 理解设备独立性的好处
    所谓设备独立性,也称为设备无关性,是指在用户程序中不要直接使用物理设备名(或设备的物理地址),而只能使用逻辑设备名。
    设备独立性优点:
    1.使得设备分配更加灵活,提高了设备的利用率
    2.可以实现I/O重定向

  6. 理解虚拟设备实现原理,虚拟打印机
    SPOOLING的含义在多道程序环境下,利用多道程序中的一道或者两道程序来模拟脱机输入/输出中的外围控制机的功能,以达到“脱机”输入/输出的目的。
    利用这种技术可把独占设备转变成共享的虚拟设备,从而提高独占设备的利用率和进程的推进速度;
    假脱机技术:用一类物理设备模拟另一类物理设备的技术,从而把独占型设备变成共享设备的技术。
    (例如用磁盘模拟打印机,磁盘模拟网络输入和输出)

    SPOOLing技术的具体实现
    •系统在磁盘上开辟“输入井”和“输出井”:缓冲的区域,用于调节供求矛盾
    •组成:预输入程序(将信息从输入设备送至“输入井”);缓输出程序(将信息从磁盘输出缓冲区送至输出设备);井管理程序
    •有的操作系统用守护进程,有的用核心态线程,但操作系统都向用户提供:显示spooling队列,删除一个任务,挂起一个任务等服务

  7. 设备分配的三种策略

第五章 文件系统

  1. 什么是文件?
    在计算机系统中,文件是指存储在外部存储介质上的、由文件名标识的一组相关信息的集合

  2. 文件的组织方式,逻辑方式,物理方式
    文件组织:文件中信息的配置和构造方式,同一个文件应该从两个侧面来观察它的文件组织方式:
    文件的逻辑结构:从用户的观点出发观察到的文件组织形式,用户可以直接处理,独立于文件的物理特性。分类:流式文件和记录式文件(顺序文件,索引文件,索引顺序文件)
    补充:
    流式文件: 文件内的数据不组成记录,只是依次的一串信息集合, 无结构文件, 就比如代码文件, 计算机读取是以字节或字符读取方式.(一次记录)
    记录式文件: 一种有结构的文件, 由若干定长或者不定长的记录构成, 记录又由若干数据项构成. 每次读取是第一个记录.(记录式文件的组织方式: 顺序文件, 索引文件, 索引顺序文件(多个索引合成一组,再把这些组建立索引))
    文件的物理结构:逻辑文件在物理存储空间中存放方法和组织关系,又称文件的存储结构。分类:连续文件,链接文件,索引文件,多级索引文件,直接文件
    补充: 考察文件的物理结构时应该把文件看作相关物理块的集合以及如何给文件分配所需要的物理块.

  3. 索引节点的物理

  4. Unix混合索引结构

  5. 什么是用户打开表,系统文件,活动索引

  6. 文件共享分成啥

  7. 文件目录
    为了加快文件的查找速度,通常把 FCB 集中起来进行管理,文件控制块的有序集合称为文件目录,即一个文件控制块
    就是一个文件目录项。
    文件目录也是以文件的形式保存在外存上的,这就形成了目录文件。
    因此,文件目录的目录项有两种,一种是用于描述子目录(即目录文件)的 FCB,一种是普通文件的 FCB。
    目录文件与普通文件不同之处:
    目录文件永远不会空,它至少包含两个目录项
    当前目录项“.”
    父目录项“…”
    目录文件的组织是指目录项的设计和 FCB 的存储组织方法。
    FCB 线性表,索引节点,哈希表组织方式

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值