操作系统Review

  1. I/O System

Operating Systems Review

  • I/O 软件 系统
  • I/O控制
    • 轮询 流程?弊端
    • 中断 什么是中断?中断处理流程?多重?抢占?弊端
    • DMA 流程?
  • Spooling
    • 什么是假脱机 ? 假脱机 vs 脱机?
    • 组成部分
    • 工作原理:假脱机打印机
    • 特点 (虚拟?why spooling?)
  • Buffer
    • Why buffer?
    • Single , double, circle ,buffer pool
    • 作用
  • 磁盘调度
    • 磁盘访问时间 = 寻道时间 + 旋转延迟 + 传输时间
    • FCFS , SSJF , SCAN , C-SCAN , N-Setp-SCAN , FSCAN 算法流程
    • 利弊?如何选择? SCAN适用于磁盘负荷大
    • SSJF(平均寻道时间最短)
    • 饥饿( FCFS , SSJF ) -> 解决饥饿( SCAN,C-SCAN ) SCAN -> C-SCAN (减少等待时间)
    • 解决磁壁粘着(N-Setp-SCAN,FSCAN(简化版N-step))
  • 设备独立性
    • 1
    • 2
    • 3
  • 操作系统Intro
    • OS 目标,作用,发展动力
    • 发展历史 无操作系统(人工操作 -> 脱机IO ) -> 单道批处理系统 -> 多道批处理系统 -> 分时系统,实时系统
    • 什么是脱机IO ?why? 解决人机矛盾以及CPU,IO速度不匹配 什么是人机矛盾?
  • 文件系统
    • 什么是文件?目录 ?文件的逻辑结构?组织结构?目录结构?
    • 分配方法及其优缺点
      • 连续分配 随机访问 外部碎片&大小声明
      • 链式分配
        • 隐式链接 无外部碎片&大小可变 随机访问&指针占用空间
        • 显示链接 无外部碎片&%大小可变&随机访问 链接表占用空间
      • 索引分配&多级索引 随机访问&外部碎片&大小可变 索引表占空间&一级索引文件大小受限
      • 增量式多级索引 unix采用
      • FAT NTFS
    • 空闲空间管理
      • Bit Vector
      • Linked List
      • Grouping
      • Count
    • RAID 各级别
    • 提高可靠性
    • 数据一致性
  • Memory 管理
    • 链接,装载
    • 连续内存分配
      • 单一,固定分区,动态分区
      • 动态分区
        • 数据结构 空闲分区表
        • 分配算法 first fit , next fit , best fit , worst fit
        • 回收
      • 覆盖 Overlay 将不会同时同时运行的程序段共享一块内存,by programmer
      • 紧凑(compaction)
        • Compaction is possible only if relocation is dynamic, and is done at execution time (运行时的动态可重定位技术)
      • 对换(swap)
    • 离散内存分配
      • 分段
      • 分页
      • 段页式
  • 虚拟内存
  • 进程间通信
  • 死锁

I/O System

一无所知还写。我tmD的真的是一无所知,什么都不知道。辣鸡。误人子弟。

计算机的两大任务就是 计算 与 I/O操作。 在冯诺依曼体系结构中,计算机有五大部件,分别是运算器,控制器,主存,输入系统,输出系统组成。 对于主存,需要频繁的进行读,写操作,可以将其看作是一种特殊的I/O设备。
因此不严格地说,这五大部件可以分为CPU(运算器,控制器),I/O设备。
计算机在运行时,需要与I/O进行交互。譬如当你浏览网页时,需要用鼠标点击或者是使用触控板。当你编辑时,需要使用键盘来键入。
需要计算机的任务(job)可以大致分为两种类型,一种是I/O密集型,即需要频繁大量的I/O操作,一种是CPU密集型,即需要大量的运算。

I/O设备层出不穷,各式各样。 计算机的任务是让用户能够使用这些I/O设备。
更好的是,能让用户方便的使用,高效的使用这些设备。

譬如说,对于磁盘读写而言、
典型的磁盘读写需要用磁头进行操作,先让磁头移动到指定的位置,然后进行读或者写。 
这是一个非常底层的工作,如果用户进行磁盘读写时需要自己操作磁头,这将是一个多么恐怖的事情。  

可用性 Availability
    因此为了让用户能够使用这些设备。我们需要对底层进行抽象,隐藏。
    可以添加以磁盘控制器Controller,每次需要读写的时候,只需要向磁盘控制器发送一个信号就可以了。
    这个信号可能包括指令(读,还是写),地址(在哪里写),数据(写什么数据)。然后磁盘控制器可以操作磁头完成用户的这些请求操作。 
    控制器Controller应该算是一个硬件设备。完成可用性的应该是计算机组成原理等底层硬件的相关技术。
    事实上,对于所有的I/O设备而言,都尤其对应的控制器,来隐藏底层,向上层提供一个接口,用户只需要提供一个接口就可以使用这些设备。  
易用性与高效性
    完成了可用性的工作,接下来的目标便是高效的完成I/O操作。 
    一方面,我们可以降低I/O操作的时延,即能够快速响应。
    另一方面,我们可以增加不同设备间的并行性,让不同的设备可以并行地进行工作。 

    为了更加方便的使用IO设备,完成IO操作,需要进一步进行抽象,隐藏底层。 
    磁盘读写操作而言,CPU通过总线向磁盘contrller发送信号。然后磁盘完成相应的操作。 
    可以进一步封装为read(),write()操作,用户在编程是可以直接调用这样的接口。
    进一步抽象,用户只需要提供read(filename),或者write(filename,data)即可完成相应的操作。接下来的操作由CPU,和磁盘控制器来完成。  


    1、轮询
    2、终端
    3、DMA
    4、通道
    操作系统在I/O方面的作用是管理和控制I/O操作和设备。
可拓展性 Scalability

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 rat_racer@qq.com

×

喜欢就点赞,疼爱就打赏