0%

OS-IO和文件

参考教材:《操作系统——精髓与设计原理》(第八版)

chp11 I/O管理和磁盘调度

选择

  • I/O设备的主要差别包括:错误条件、数据传送速率、数据表示
  • IO技术
    • 中断驱动IO:1)CPU初始化I/O并启动第一次I/O操作。 2)CPU去忙别的事情。 3)当I/O完成时,CPU将被中断。 4)CPU处理中断。 5)CPU恢复被中断的程序。
    • 程序控制IO:处理器代表一个进程给IO模块发送一个IO命令,该进程进入忙等待,直到操作完成才能继续执行
  • 面向块的设备:CD-ROM
  • 面向字节流的设备:打印机
  • 最接近硬件的层:调度和控制层
  • 循环缓冲:使用多于两个缓冲区的方案来处理进程需要执行大量IO操作的场景
  • 磁盘传输的一般时序:等待磁盘设备、寻道、旋转延迟

磁盘调度策略

item 描述
FIFO
SSTF 最短服务时间(找最近的)
SCAN 磁头保持运动方向,在某一方向到达极点就反向
C-SCAN 磁头总是单向,在某一方向到达极点就访问另一方向的极点,然后继续最初的方向

image-20220623014427440

others

IO控制技术

  • 程序控制IO:轮询image-20220622161958096
  • 中断驱动IO:设备通过发起中断请求告诉CPU可以执行了image-20220622162144536
  • DMA直接内存访问:是中断方式的更好改进。采用中断驱动I/O方式时的CPU,是以字(节)为单位进行干预的。如果将这种方式用于块设备的I/O,显然是极其低效的。为了进一步减少CPU对I/O的干预,而引入了直接存储器访问方式。image-20220622162244189

IO缓冲区

原因:

  • 缓和CPU和I/O设备之间的速度差异
  • 减少对CPU的中断频率
  • 放宽对中断响应时间的限制提高CPU和I/O设备之间的并行性

组织形式

  • 单缓冲区
  • 双缓冲区
  • 循环缓冲区
image-20220622172711764

chp12文件管理

简答

一、文件系统架构

image-20220617203443795

  • 设备驱动:通过设备驱动程序直接与外围设备通信
  • 基本文件系统/物理I/O层:处理在磁盘间或磁带系统间交换的数据块
  • 基本I/O管理程序:负责所有文件I/O的初始化和终止
  • 逻辑I/O:使用户和应用程序能够访问记录
  • 访问方法:即最上面一层,在应用程序和文件系统以及保存数据的设备之间提供了标准接口

*二、文件组织和访问

逻辑层

image-20220617211818719

    • 最简单的文件组织形式,数据按照到达顺序被收集。
    • 由于没有结构,对记录的访问只能通过穷举查找方式进行
  • 顺序文件
    • 最常用的。每条记录都使用一种固定的格式
    • 关键域:每条记录的第一个域,唯一标识这条记录。记录按关键域进行存储
  • 索引顺序文件
    • 记录仍按照关键域的顺序组织
    • 增加了用于支持随机访问的文件索引溢出文件
      • 索引:能够快速接近目标记录
      • 溢出文件:类似顺序文件中的日志文件
  • 索引文件
    • 仍基于文件的一个域进行处理
    • 采用多索引结构
  • 直接文件/散列文件
    • 能够直接访问磁盘中任何一个地址已知的块的能力
    • 根据文件中关键字的特点,设计一个散列函数和处理冲突的方法,将记录散列到存储设备上
适用场景
item 适用 不适用
1.数据在处理前采集并存储;
2.数据难以组织;
3.保存的数据大小和结构不同;
除前面限制外的其他
顺序文件 批处理应用(尤其是涉及到对所有记录的处理) 查询或更新记录的交互式应用
索引顺序文件 既适合于随机存取也适合于顺序存取
索引文件 对信息的及时性要求比较严格且很少会对所有数据进行处理的应用程序中
散列文件 要求快速访问时

三、SELinux的安全机制

Linux学习之CentOS(三十)–SELinux安全系统基础 - xiaoluo501395377 - 博客园 (cnblogs.com)

简介

SELinux(Secure Enhanced Linux)安全增强的Linux

  • 是一个内核级别的安全机制
  • :用来对进程进行限制
  • 上下文:用来对系统资源(文件、网络套接字、系统调用等)进行限制

策略

在SELinux中,我们是通过定义策略来控制哪些域可以访问哪些上下文。在CentOS/RHEL中,其默认使用的是目标(target)策略。

目标策略定义了只有目标进程受到SELinux限制,非目标进程就不会受到SELinux限制,通常我们的网络应用程序都是目标进程,比如httpd、mysqld,dhcpd等等这些网络应用程序。

模式

  • 强制模式(默认):只要是违反策略的行动都会被禁止,并作为内核信息记录
  • 允许模式:违反策略的行动不会被禁止,但是会提示警告信息
  • 禁用模式:禁用SELinux

选择

  • 记录型文件:一组相似记录的集合
  • 记录型的文件组织包括:
    • 堆:穷举查找
    • 顺序文件:适用于所有记录都需要被处理
    • 索引文件:与顺序文件类似,额外增加的两个特性是:文件索引和溢出文件
    • 直接/散列文件:一次只访问一条记录;记录长度是固定的;适用于快速访问
  • 文件目录
    • 使用信息:包含了文件创建者的身份等信息
  • 固定文件块-内部碎片
  • 磁盘分配表:维护可用磁盘空间信息
  • 磁盘空闲空间管理技术
    • 链接空闲区