一、绪论

  1. 操作系统是指控制和管理整个计算机系统的硬件与软件资源、合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合
  2. 功能:处理机管理、存储器管理、设备管理、文件管理、提供命令接口
  3. 特征
    • 并发

      • 并发:同一时刻内只能执行一个程序,宏观上并行,微观上交替进行
      • 并行:同一时刻可以同时执行多个程序(多流水线、多处理机)
    • 共享
      • 互斥共享方式:一段时间内只允许一个进程访问该资源
      • 同时访问方式:一段时间内允许多个进程“同时”访问
    • 虚拟
    • 异步
  4. 发展阶段
    • 批处理系统

      • 缺点:用户响应时间长,不提供人机交互能力
    • 分时操作系统
      • 特征:同时性、交互性、独立性、及时性
    • 实时操作系统
      • 特征:及时性、可靠性
  5. 用户态和核心态
    • 执行系统调用过程:传递系统调用参数→执行访管指令→执行服务程序→返回用户态
    • 访管指令:用户态切换为核心态

二、进程管理

  1. 定义:进程是程序的一次执行过程

  2. 特征:动态性、并发性、独立性、异步性、结构性

  3. 进程实体:程序段、相关数据段、PCB

  4. 进程控制块(PCB):描述进程的基本情况和运行状态。PCB是进程存在的唯一标志

  5. 进程状态:创建态、就绪态、运行态、阻塞态、结束态

    • 转换条件

      • 就绪态→运行态:处于就绪态的进程获得处理机进入运行态
      • 运行态→就绪态:处于运行态的进程时间片用完,让出处理机进入就绪态
      • 运行态→阻塞态:进程请求除处理机外的其他资源,此时运行态进入阻塞态
      • 阻塞态→就绪态:进程等待其他资源的获得,如IO资源、或者中断结束
  6. 进程控制

    • 进程阻塞:主动执行阻塞原语(Block),由运行态变为阻塞态
    • 进程唤醒:调用唤醒原语(Wakeup),将等待该事件的进程唤醒
    • 进程切换:处理机从一个进程的运行转到另一个进程运行
  7. 进程组织:进程描述信息、进程控制和管理信息、资源分配清单、处理机相关信息

  8. 进程通信

    • 共享存储:通信进程之间存在一块可以被直接访问的共享空间,通过对这片共享

      空间进行写、读操作实现进程之间的信息交换

    • 消息传递:程通过系统提供的发送消息和接收消息的两个原语进行数据交换

      • 直接通信方式:发送进程直接发送消息给接收进程,并将它挂在接收进程呈的消息缓冲

        直接通信方式队列上,接收进程从消息缓冲队列中取得消息

      • 间接通信方式:发送进程把消息发送给某个中间实体,接收进程从中间实体中获得消息

    • 管道通信:发送进程以字符流形式将大量数据送入写管道,接收进程从管道中接收数据,半双工通信

  9. 线程

    • 调度:线程是独立调度的基本单位,进程是资源的基本单位

      注:不同进程的线程切换会引起进程切换

    • 资源:进程的地址空间之间相互独立,统一进程的各线程之间共享进程的地址空间和其他资源,某进程的线程对其他进程不可见

    • 通信:进程间通信需要进程同步和互斥手段的辅助,保证数据的一致性,线程间可以直接读/写进程序段来进行通信、

    • 属性

      • 不拥有系统资源拥有唯一标识符和线程控制块
      • 不同的线程可以执行相同的程序,同一个服务程序被不同用户调用线程时,操作系统将其创建为不同线程
      • 同一进程的线程共享享该进程拥有的全部资源
      • 线程是处理机的独立调度单位
  10. 调度

    • 三级调度

      • 作业调度(高级调度):从辅存中选择作业送入内存,每个作业只调入一次,调出一次
      • 内存调度(中级调度):将暂时不能运行的进程调至外存,使其进入挂起态。或者将已经具备运行条件的进程调入内存。修改其状态为就绪态
      • 进程调度(低级调度):按照某种策略或者方法从就绪队列中选取一个进程,将处理机分配给它

      注:

      不能调度的情况如下:处理中断过程、进程在操作系统内核程序临界区、需要完全屏蔽中断的原子操作过程

      可以调度的情况如下:发生引起调度条件且当前进程无法继续进行、中断处理结束或者自陷处理结束后

    • 调度方式:剥夺、非剥夺

    • 调度标准

      • 周转时间=完成时间−提交时间{\color{Green} 周转时间=完成时间-提交时间}周转时间=完成时间−提交时间
      • 平均周转时间=总周转时间/N个作业{\color{Green} 平均周转时间=总周转时间/N个作业}平均周转时间=总周转时间/N个作业
      • 带权周转时间=周转时间/运行时间{\color{Green} 带权周转时间=周转时间/运行时间}带权周转时间=周转时间/运行时间
      • 平均带权周转时间=总带权周转时间/N个作业{\color{Green} 平均带权周转时间=总带权周转时间/N个作业}平均带权周转时间=总带权周转时间/N个作业
    • 等待时间=开始时间−提交时间{\color{Green} 等待时间=开始时间-提交时间}等待时间=开始时间−提交时间

      • 完成时间=开始时间+运行时间{\color{Green} 完成时间=开始时间+运行时间}完成时间=开始时间+运行时间
    • 进程调度算法

      • 先来先服务算法(FCFS)
      • 短作业优先算法(SJF):对长作业不利,可能产生“饥饿现象”
      • 优先级调度算法(HPF):动态优先级、静态优先级,可能产生“饥饿现象”
      • 高响应比调度算法(HRRN):响应比=(等待时间+运行时间)/运行时间{\color{Green}响应比=\left ( 等待时间+运行时间 \right ) /运行时间}响应比=(等待时间+运行时间)/运行时间
      • 时间片轮转算法
      • 多级反馈队列调度算法:可能产生“饥饿现象”
  11. 进程同步

    • 临界资源:一次只允许一个进程访问的资源

    • 同步:直接制约关系,为了完成某任务而建立的多个进程,相互合作,所以要相互进行通信同步

      同步机制遵循原则:空闲让进、忙则等待、有限等待、让权等待

    • 互斥:间接制约关系,当一个进程访问临界资源的时候,其他进程不能访问

    • 信号量

      • 整型信号量:定义一个用于表示资源数目的整形量S,让进程处于“忙等”,未遵循“让权等待”原则

        wait(S){while(S<=0);S=S-1;
        }
        signal(S){S=S+1;
        }
        
      • 记录型信号量(semaphore):value用于代表资源剩余数量,value<0说明有进程在等待该资源;链表L用于链接所有等待该资源的进程

        typedef struct{int value;struct process *L;
        } semaphore;
        

        注:利用信号量实现同步(公共信号量=0)、互斥(互斥信号量=1)、前驱关系。

    • 管程

      • 概念:一组数据以及定义在这组数据之上的对这组数据的操作组成的软件模块,这组操作能初始化并改变管程中的数据和同步进程
      • 组成
        • 局部于管程的共享结构数据说明
        • 对该数据结构进行操作的一组过程
        • 对局部于管程的共享数据设置初始值的语句
      • 特性
        • 局部于管程的数据只能被局部于管程内的过程所访问
        • 一个进程只有通过调用管程内的过程才能进入管程访问共享数据
        • 每次仅允许一个进程在管程内执行某个内部过程
    • 死锁

      • 原因:对不可剥夺资源的不合理分配、系统资源的竞争、进程推进顺序非法

      • 必要条件:互斥条件、不可剥夺条件、请求并保持条件、循环等待条件

        注:发生死锁一定有循环等待、但发生循环等待不一定发生死锁

      • 死锁处理策略

        • 死锁预防:破坏必要条件,防止死锁

        • 避免死锁:在资源的动态分配中,用某种方法防止系统进入不安全状态,避免死锁

          安全状态:按某种推进顺序为每个进程分配所需的资源,使每个进程都可顺利完成。若无一个安全序列,则处于不安全状态。并非所有不安全状态都是死锁状态,只要处于安全状态,则可避免进入死锁状态

          • 银行家算法

            • 可利用资源向量Available
            • 最大需求矩阵Max
            • 已分配矩阵Allocation
            • 需求矩阵Need
            • 工作向量Work=Available
        • 死锁检测和解除

          • 资源分配图

            • 圆:进程
            • 框:资源
            • 进程→资源:请求边
            • 资源→进程:分配边
          • 死锁定理:若资源分配图可以消去所有边,则不存在死锁,反之存在死锁
          • 死锁解除
            • 资源剥夺法:挂起某些死锁进程,抢占资源
            • 撤销进程法:强制撤销部分或全部死锁进程,并抢占资源
            • 进程回退法:让进程回退到避免死锁的地步

三、内存管理

  1. 功能:内存空间的分配与回收、逻辑地址转换为物理地址、内存空间扩充(虚拟存储技术)、存储保护

  2. 装入链接

    • 编译:由编译程序将用户源代码编译成若干目标模块(将高级语言翻译成机器语言)
    • 链接:将目标模块及所需的库函数链接,形成完整的装入模块(形成逻辑地址)
      • 静态链接:运行前链接
      • 装入时动态链接:装入内存时,边装入边链接
      • 运行时动态链接:执行时链接
    • 装入:将装入模块装入内存运行(形成物理地址)
      • 绝对装入:按照实际的内存地址
      • 静态重定位:装入时将相对地址转换为绝对地址
      • 动态重定位:装入内存后依然为相对地址,运行时转换为绝对地址
    • 内存保护:内存分配前,需要保护操作系统不受用户进程的影响,同时保护用户进程不受其他用户进程的影响
      1. 在CPU中设置一对上、下限寄存器,存放用户作业在主存中的下限和上限地址,每当CPU要访问一个地址时,分别和两个寄存器的值相比,判断有无越界。
      2. 采用重定位寄存器(或基址寄存器)和界地址寄存器(又称限长寄存器)来实现这种保护。重定位寄存器含最小的物理地址值,界地址寄存器含逻辑地址的最大值。每个逻辑地址值必须小于界地址寄存器;内存管理机构动态地将逻辑地址与界地址寄存器进行比较,若未发生地址越界,则加上重定位寄存器的值后映射成物理地址,再送交内存单元。
  3. 连续分配管理方式(为程序分配一块连续的内存空间)

    • 单一连续分配:内存分为系统区和用户区,系统区仅供操作系统使用,用户区为用户提供,内存中只存在一道用户程序。无外部碎片、存在内部碎片
    • 固定分区分配:将用户空间划分为若干固定大小的区域(分区大小相等、分区大小不等),每个分区只装入一道作业。无外部碎片,存在内部碎片
    • 动态分区分配:不预先划分内存,在进程装入内存的时候,根据进程的大小动态的建立分区。存在外部碎片
    • 动态分区分配算法
      1. 首次适应算法:空闲分区按照地址递增的顺序查找
      2. 最佳适应算法:空闲分区按容量递增的顺序
      3. 最坏适应算法:空闲分区按容量递减的顺序
      4. 邻近适应算法:从上次查找结束的位置开始继续查找
  4. 非连续分配管理方式(将一个程序分散的装入不相邻的内存分区)

    • 分类

      1. 分区大小是否固定:分页存储管理方式、分段存储管理方式
      2. 运行作业时是否要把作业的所有页面都装入内存:基本分页存储管理方式、请求分页存储管理方式
    • 基本分页存储管理方式

      • 页面:进程块(页)、内存块(页框、物理块)

      • 页面大小:2的整数幂

      • 地址结构:页号P:页内偏移量W

      • 页表:实现页号到物理块号的映射。由页表项组成,页表项结构:页号P:块号。

        注:通过页号P在页表中找到对应的内存块号,内存块号∗内存块大小+页内偏移量W=物理地址{\color{Green}内存块号*内存块大小+页内偏移量W=物理地址}内存块号∗内存块大小+页内偏移量W=物理地址
        页号=逻辑地址页面长度页号=\frac{逻辑地址}{页面长度} 页号=页面长度逻辑地址​

        页内偏移量=逻辑地址mod页面长度页内偏移量=逻辑地址\mod{页面长度} 页内偏移量=逻辑地址mod页面长度

        页表中页号P对应的页表项=页表起始地址F+页号P×页表项长度页表中页号P对应的页表项=页表起始地址F+页号P\times 页表项长度 页表中页号P对应的页表项=页表起始地址F+页号P×页表项长度

        物理地址=块号×块(页面)大小+偏移量物理地址=块号\times 块(页面)大小+偏移量 物理地址=块号×块(页面)大小+偏移量

      • 基本地址变换机构

        • 两次访寸:一次查表获取物理地址,一次访问内存单元
      • 带快表地址变换机构(TLB)

        • 快表命中:一次访问块表,一次访问内存
        • 块表未命中(快表慢表同时):一次查慢表获取物理地址,一次访问内存
      • 二级页表(多级页表)

        • 顶级页表只能有一个,因此页表大小不能超过页面大小

    • 基本分段存储管理方式

      • 地址结构:段号S:段内偏移量W
    • 段页式管理方式

      • 地址结构:断号S:页号P:页内偏移量W
  5. 虚拟内存管理

    • 局部性

      • 时间局部性:程序中存在着大量的循环操作,一条指令执行后 ,不久之后指令可能被再次执行
      • 空间局部性:指令通常是顺序存放,顺序执行的,数据般也是以向量、 数组、表等形式簇聚存储的,一旦程序访问了 某个存储单元,不久之后附近的存储单元也将被访问
    • 虚拟存储器:基于局部性原理,程序一部分装入内存,一部分留在外存,需要的时候将外存内容调入内存,好像系统为用户提供了一个比实际大的内存空间(覆盖和交换

      • 特征:

        1. 多次性:作业在运行时,分多次调入内存运行
        2. 对换性:作业不必一直驻留内存,允许作业在运行过程中进行换进换出
        3. 虚拟性:从逻辑上扩充内存容量,使用户看到的内存容量远大于实际的内存容量
    • 请求分页管理方式

      • 页表机制

        • 状态位P:当前页是否已经调入内存
        • 访问字段A:记录本页在一段时间内被访问的次数
        • 修改位M:记录本页是否被修改过
        • 外存地址:指出该页在外存上的位置(通常是物理块号)
      • 缺页中断机构:当访问页面不在内存时就会产生缺页中断,请求操作系统将所缺的页调入内存。若内存中有空闲块,则分配块。若内存中没有空闲块,则淘汰某页

        注:缺页中断属于内部中断,在指令执行期间产生和处理中断信号。条指令在执行期间,可能产生多次缺页中断

      • 地址变换机构:检索快表,若找到访问页,修改页表项中的访问位,利用页表项中给出的物理块号和页内地址形成物理地址;没有找到改页的页表项,去内存中寻找页表,看该页是否已经调入内存,没有调入则产生缺页中断,请求从外存把该页调入内存

        注:只有“写指令”才需要修改“修改位”,一般只需要修改快表中的数据,只有要将快表项删除时才回写慢表

      • 页面置换算法

        • 最佳置换算法(OPT):淘汰未来最长时间内不再被访问(向后找)
        • 先进先出页面置换算法(FIFO):优先淘汰最早进入内存的页面,
          • Belady异常:增大分配的物理块数但是缺页数不减反增
        • 最近最久未使用置换算法(LRU):选择最近最长时间没有被访问的页面进行淘汰(向前找)
        • 时钟(CLOCK)置换算法(最近未用算法NRU):每个页面设置一个使用位(访问位),像一个时钟一样转圈,遇到没有被使用的就会将页面换出,然后将使用位置0,如果遇到使用的就会将使用位置0,然后扫描下一个
        • 改进型CLOCK置换算法:在使用位(访问位)的基础上增加修改位,选择第一个使用位和修改位都为0的页面换出;
          • 优先级:00,01,10,11
      • 页面分配策略

        • 驻留集:给每个进程分配的物理页框的集合
        • 分配策略
          • 固定分配局部置换:每个进程分配固定物理块数,缺页的时候从改进程在内存中的页面中选出一页进行换页
          • 可变分配局部置换:进程分配一定物理块,系统自身保留一定空闲物理块,如果进程缺页,就对该进程分配新的物理块
          • 可变分配全局置换:根据进程的缺页情况,对物理块进行动态分配,如果频繁缺页,就对其多分配物理块,如果缺页率特别低,就减少其物理块
      • 抖动:刚换出的页面又要换入内存,刚换入的页面马上又要换出内存1进程在换页上用的时间多于执行时间

      • 工作集:某段时间内,进程要访问的页面集合

四、文件管理

  1. 概念:以计算机硬盘为载体的存储在计算机上的信息集合

  2. 文件打开:首次使用文件,会调用open请求指明文件的属性(包括其物理位置)从外存复制到内存“打开文件表”的一个表目中,并将该表目的编号(索引)返回给用户;调用open请求(创建、只读、读写、添加等)得到允许,进程就可以打开文件,open会返回一个指向打开文件表中的一个条目的指针,通过使用该指针进行I/O操作

  3. 文件关闭:系统回收分配给该文件的内存空间等资源

  4. 逻辑结构

    • 无结构文件(流式文件)
    • 有结构文件(记录式文件)
      • 顺序文件:文件的记录一个接一个排列,记录通常是定长,可以顺序存储或链式存储
      • 索引文件
        • 定长记录文件:第N条记录的地址=N*文件长度
        • 变长记录文件:查找前n-1条记录后,才能查找第n条记录,只能顺序查找
      • 索引顺序文件:索引顺序文件将顺序文件中的所有记录分成若干组,为顺序文件建立起一张索引表,在索引表中为每组中的第一条记录建立一 个索引项,其中含有该记录得关键字值和指向该记录的指针
      • 散列文件(直接文件):给定记录的键值或通过散列函数转换的键值直接决定记录的物理地址
  5. 目录结构:用于关联文件管理系统和文件

    • 文件控制块(FCB):用于存放控制文件需要的各种信息的数据结构,以实现“按名存取”。FCB的有序集合称为文件目录,一个FCB就是一个文件目录项。
    • 索引结点:文件的描述信息单独形成为索引结点的数据结构,文件目录的目录项仅由文件名和指向索引结点的指针组成
    • 分类
      • 单机目录结构:整个系统只建立一张目录表,每个文件占一个目录项,实现了按名存取
      • 两级目录结构:分为主目录和用户目录,解决了多用户文件重名问题
      • 多级目录结构:树形目录结构,有效对文件分类
      • 无环图目录结构:有利于实现文件共享
  6. 文件物理结构

    • 连续分配:每个文件在磁盘上占有一组连续的块
    • 链接分配:离散分配
      • 隐式链接:每个文件对应一个磁盘块的链表,除最后一个盘块外,每个盘块都有指向下一个盘块的指针
      • 显式链接:指把用于链接文件各物理块的指针,从每个物理块的块末尾中提取出来,显式地存放在内存的文件分配表(FAT),文件的第一个盘块号记录在目录中,后续的盘块可通过查FAT
      • 索引分配:每个文件的所有盘块号都集中放在一起构成索引块,每个文件都有索引块,索引块的第i条目录指向文件的第i块
  7. 文件存储空间管理(对空闲块的管理和组织)

    • 空闲表法:连续分配方式,系统为空闲区建立一张空闲盘块表,每个空闲区对应一个空闲表项

    • 空闲链表法:将所有的空闲盘区拉成一条空闲链

      • 空闲盘块链:将磁盘上所有空闲空间以盘块为单位拉成一条链
      • 空闲盘区链:将磁盘上所有空闲盘区拉成一条链(连续的盘块组成一个盘区)
    • 位示图法:采用二进制的位来表示一个盘块的使用情况,磁盘上所有的盘块都有一个二进制位与之对应,0空闲,1已分配
      从1开始:i行j列对应盘块号b=每行列数n×(行数i−1)+列数j从1开始:i行j列对应盘块号b=每行列数n\times \left ( 行数i - 1\right )+列数j 从1开始:i行j列对应盘块号b=每行列数n×(行数i−1)+列数j

      从0开始:i行j列对应盘块号b=每行列数n×行数i+列数j从0开始:i行j列对应盘块号b=每行列数n\times行数i+列数j 从0开始:i行j列对应盘块号b=每行列数n×行数i+列数j

      i行=(盘块号b−1)每行列数n+1i行=\frac{\left ( 盘块号b - 1\right )}{每行列数n} +1 i行=每行列数n(盘块号b−1)​+1

      j列=(盘块号b−1)mod每行列数n+1j列=\left ( 盘块号b - 1\right )\mod{每行列数n} +1 j列=(盘块号b−1)mod每行列数n+1

      注:分配后将对应位置1,回收后置0

    • 成组链接法

  8. 磁盘

    • 组成:磁道,磁头,扇区,盘面

    • 地址结构:柱面号:盘面号:扇区号(块号)

    • 读写时间:一次磁盘读写操作时间由寻找时间、延迟时间和传输时间决定

      • 寻找时间:将磁头移动到指定磁道需要的时间:Ts=m×n+sTs=m \times n+sTs=m×n+s
      • 延迟时间:磁头定位到某一磁道扇区需要的时间:Tr=12r(转速r)Tr=\frac{1}{2r}\left ( 转速r \right )Tr=2r1​(转速r)
      • 传输时间:从磁盘读出或写入数据的时间:Tr=brNTr=\frac{b}{rN}Tr=rNb​

      注:磁头在读写个物理块后需要经过短暂的处理时间才能开始处理下一块,对盘面交替编号可以减少延迟时间

    • 磁盘调度算法

      • 先来先服务算法(FCFS):按照进程请求访问磁盘的先后顺序进行调度
      • 最短寻找时间有限算法(SSTF):选择调度处理的磁道与当前磁头所在磁道距离最近的磁道,会产生饥饿现象
      • 扫描(SCAN)算法:在磁头当前移动方向上选择与当前磁头所在的磁道距离最近的请求作为下一次服务对象
      • 循环扫描算法(C-SCAN):磁头单向移动,回返时直接回到起始端
      • LOOK算法:在扫描算法的基础上改进为,磁头不需要到达磁盘端点
      • C-LOOK算法:磁头单向移动,回返时直接回到左边第一个进程
    • 磁盘格式化:低级格式化(物理分区)、逻辑格式化(创建文件管理系统)

五、I\O管理

  1. 分类

    • 特性:人机交互类外部设备、存储设备、网络通信设备
    • 传输速率:低俗设备、中速设备、高速设备
    • 信息交换单位:块设备、字符设备
  2. 控制方式

    • 程序直接控制方式(轮询):计算机从外部设备读取数据到存储器,每次读一个字的数据,对读入的每个字,CPU都要对外设状态进行循环检查。读写单位:字

    • 中断驱动方式(中断):允许IO设备主动打断CPU的运行并请求服务,进而解放CPU,使其向I0控制器发送读命令后可以继续做其他工作。读写单位:字

    • DMA方式:CPU接收到I/O设备的DMA请求时,给I/O控制器发出一条命令,启动DMA控制器,然后继续其他工作。DMA控制器直接与存储器交互,传送整个数据块。传送完成后,DMA控制器发送一个中断信号给处理器。读写基本单位:数据块

      • DMA控制寄存器:命令/状态寄存器(CR)、内存地址寄存器(MAR)、数据寄存器(DR)、数据计数器(DC)
    • 通道控制:设置一个专门负责输入/输出的处理机,实现对一组数据块的读写以及相关控制和管理。读写单位:一组块

      注:

      1. DMA需要CPU来控制传输的数据块大小、传输的内存位置,而通道方式中这些信息是由通道控制
      2. DMA控制器对应一台设备与内存传递数据,通道可以控制多台设备与内存的数据交换
  3. I/O子系统层次结构

    1. 用户层I/O软件:实现与用户交互的接口
    2. 设备独立性软件(设备无关性):用于实现用户程序与设备驱动器的统一接口、 设备命令、设备保护及设备分配与释放
    3. 设备驱动程序:与硬件直接相关,负责实现系统对设备发出的操作命令,驱动IO设备工作的驱动程序
    4. 中断处理程序:用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理, 处理完并恢复被中断进程的现场后, 返回被中断进程
    5. 硬件:IO设备通常包括一个设备和一个设备控制器
  4. 设备控制器

    • 功能:接收和识别CPU或通道发来的命令、实现数据交换、发现和记录设备及自身的状态信息、设备地址识别
    • 组成:
      • 设备控制器与CPU的接口:信号线(数据线、地址线、控制线)
      • 设备控制器与设备的接口:每个接口存在数据、控制和状态三种类型的信号
      • IO控制逻辑:用于实现对设备的控制。通过一组控制线与CPU进行交互,对从CPU受到的IO命令进行译码
  5. I/O核心子系统

  6. 磁盘高速缓存的两种形式

    1. 在内存中开辟一个单独的存储空间作为磁盘高速缓存 ,大小固定
    2. 把未利用的内存空间作为一个缓冲池,供请求分页系统和磁盘IO时共享
  7. 缓冲区

    1. 功能

      • 缓和CPU与IO之间的速度差异矛盾
      • 减少对CPU的中断频率,放宽对CPU中断响应时间的限制
      • 解决基本数据单元大小不匹配的问题
      • 提高CPU和IO设备之间的并行性
    2. 缓冲技术分类:单缓冲、双缓冲、循环缓冲、缓冲池
  8. 设备

    • 使用方式:独占式使用设备(打印机)、分时式共享使用设备(磁盘)、以SPOOLing方式使用外部设备
    • 数据结构
      • 设备控制表(DCT):一个设备控制表代表一个设备
      • 控制器控制表(COCT):COCT与DCT一对应关系 , DCT需要一个表项来表示控制器,即
      • 通道控制表( CHCT):CHCT提供服务的那几个设备控制器
      • 系统设备表(SDT):系统只有一张SDT,记录已经连接到系统中的所有物理设备的情况
    • 设备分配
      • 原则:充分发挥设备效率,避免死锁
      • 方式
        • 静态分配:系统一次性把设备分配给相应作业,直到作业结束
        • 动态分配:进程执行过程中根据执行需要进行分配
    • 逻辑设备表(LUT)
      • 功能:将逻辑设备名映射为物理设备名
      • 目的:提高设备分配的灵活性和利用率、实现IO重定向、引入设备独立性
  9. SPOOLing假脱机技术:为了缓解CPU与IO的速度差异矛盾,利用专门的外围控制机,将低速/O设备上的数据传送到高速磁盘上

    • 输入井(IO→CPU):收纳IO设备的数据
    • 输出井(CPU→IO):模拟输出时的磁盘
    • 输入缓冲区:暂存由输入设备送来的数据
    • 输出缓冲区:暂存从输出井送来的设备
    • 输入进程:模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区送到输入井中,当CPU需要数据,直接将输出井中的数据送入内存
    • 输出进程:模拟脱机输出时的外围控制机,把用户要求输出的数据先从内存送到输出井中,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备
    • 特点:提高了IO速度、独占设备变成了共享设备、实现了虚拟设备功能,用空间换时间

王道计算机操作系统考研复习指导知识点总结相关推荐

  1. 计算机专业考研复习要点,计算机专业考研的复习要点

    计算机专业考研的复习要点 考生们在进行计算机专业考研的时候,要掌握好复习的要点.小编为大家精心准备了计算机专业考研复习的知识点,欢迎大家前来阅读. 计算机考研重点:运输层 1.TCP提供端对端.可靠的 ...

  2. 2019数据结构考研复习指导习题代码(王道论坛)

    2019数据结构考研复习指导习题代码(王道论坛) 1.从顺序表删除具有最小值的元素(假设唯一)并由函数返回被删除元素的值.空出的位置由最后一个元素补充,若顺序表为空则显示出错信息并退出运行. bool ...

  3. 考计算机科学考研老师问,名师答疑:计算机专业考研复习6问!

    原标题:名师答疑:计算机专业考研复习6问! 摘要:针对计算机专业考研,有不少同学存在些疑问,下面是老师对集中问题给的回答. ▶问题一:计算机考研专业课2009年开始实行统考,老师能不能结合往年的计算机 ...

  4. 操作系统考研复习——第四章(文件管理)

    操作系统考研复习--第四章(文件管理) 4. 文件管理 4.1 文件管理基础 4.1.1 文件的概念 1. 数据项.记录和文件 2. 文件属性 3. 文件系统的接口 4. 文件的基本操作 5. 文件的 ...

  5. 计算机组成原理指导,计算机组成原理课程复习指导课件

    <计算机组成原理课程复习指导课件>由会员分享,可在线阅读,更多相关<计算机组成原理课程复习指导课件(33页珍藏版)>请在人人文库网上搜索. 1.计算机组成原理课程复习指导,刘亚 ...

  6. BISTU计算机组成原理期末复习指导

    BISTU计算机组成原理期末复习指导 一.学时分配 计算机系统概论(2学时) 运算方法和运算器(12学时) 存贮器(10学时) 指令系统(4学时) 中央处理器(14学时) 输入输出系统(6学时) 二. ...

  7. 研大考研:2015西医综合考研复习指导

    研大考研:2015西医综合考研复习指导 西医综合复习技巧 1.了解考点:十几年来,考试范围的变化并不大.要认真的归纳总结过去的真题,所有的考点,就会跃然纸上.通过总结我们发现,有许多试题,在不同的年份 ...

  8. 云南大学网络课程作业计算机,云南大学842计算机程序设计考研复习经验

    考研是一场持久战,在云南大学842计算机程序设计考研复习的过程中,难免会遇到各种各样的问题和挑战.在进入强化冲刺阶段之后,高强度的学习和心里压力更是让很多学子身心疲惫!如何少走弯路,及时解决这些问题和 ...

  9. 计算机操作系统指导书,《计算机操作系统》实验指导书-2015

    q.num++; System.out.println(\已生产第:\个产品!\ try { Thread.currentThread().sleep(100); } catch (Interrupt ...

最新文章

  1. 客户端码农学习ML —— Numpy基本用法
  2. docker容器间数据共享
  3. HashMap源码浅析
  4. Leet Code OJ 2. Add Two Numbers [Difficulty: Medium]
  5. 服务降级,服务熔断,服务限流
  6. SDUT--Pots(二维BFS)
  7. 利用MSFM算法计算程函方程的走时CT胖射线反演法
  8. 动态数组 —— 框架搭建
  9. 记忆网络之在对话系统中的应用
  10. 工程学导论——心得体会
  11. SiamRPN++简述
  12. python曲线拟合预测_python曲线拟合
  13. 飞塔防火墙HA详解与配置
  14. excel 链接sql server数据库,并使用sql语句导出自己想要的数据
  15. 我的大学 --- 郭天祥【4】
  16. GD32VF103_定时器中断
  17. 领导看了会炸毛的溢出理论
  18. 【python】解决给文件写入汉字,中文字符乱码问题
  19. 分享:ThinkPad E40无线网卡驱动安装 FOR CENTOS6.3
  20. 程序员职业如何选择?从榜样雷军谈起

热门文章

  1. FlyMCU下载hex到STM32
  2. 作为程序员未来发展的规划
  3. Linux新建目录并指定挂载点,Linux中将/var等已有目录挂载到新添加的硬盘
  4. CMake添加-g编译选项/CMake编译Debug版本
  5. git 码云多人合作开发
  6. cc9.3 indesign_InDesign CC实战从入门到精通(全彩版)
  7. 绿色版的正则表达式测试工具及正则表达式入门教程
  8. nginx--default_server定义规则及配置
  9. SQL20 分组排序练习题
  10. NCRE | 三级信息安全技术笔记