复习资料一:操作系统复习1
复习资料二:操作系统复习2
复习资料三:操作系统复习3
目录
十、 文件系统接口
10.1 文件
10.2 逻辑文件及其访问方法
10.2.1 顺序文件
10.2.2 直接文件
10.2.3 索引文件
10.3 文件目录
10.3.1 目录结构
十一、 文件系统实现
11.1 基本概念
11.2 存储空间分配
11.2.1 连续分配
11.2.2 链接分配
11.2.3 索引分配
十二、 磁盘
12.1 磁盘结构
12.1.1 地址映射关系
12.1.2 磁盘访问时间
12.2 磁盘调度
12.2.1 先来先服务 FCFS
12.2.2 最短寻道时间优先 SSTF
12.2.3 扫描算法 SCAN
12.2.4 循环扫描算法 C-SCAN
12.2.5 循环Look算法 C-LOOK
十三、 I/O系统
13.1 基本概念
13.2 I/O控制
13.2.1 中断驱动I/O
13.2.2 直接内存访问DMA
13.3 I/O内核子系统
13.3.1 假脱机 SPOOLing
文件是计算机系统中的基本组成单元之一,它用于存储和组织数据以及程序代码。
文件相关的概念:
文件: 文件是存储在计算机中的一组相关数据。它可以包括文本、图像、视频、程序代码等。文件可以有不同的格式和类型,取决于其所包含的数据内容。
文件名: 每个文件都有一个唯一的标识符,称为文件名。文件名通常用来区分不同的文件,使用户能够轻松识别和访问它们。
文件路径: 文件路径是指文件在文件系统中的位置。它可以是绝对路径(从根目录开始的完整路径)或相对路径(相对于当前工作目录的路径)。
文件扩展名: 文件扩展名是文件名的一部分,用来指示文件的类型和格式。例如,".txt" 表示文本文件,".jpg" 表示图像文件等。
文件属性: 文件具有一些与之相关的属性,例如大小、创建时间、修改时间、访问权限等。这些属性可以提供关于文件的基本信息。
目录(文件夹): 目录是一种特殊类型的文件,用于组织和存储其他文件和子目录。目录可以包含文件和其他子目录,从而形成一个层次结构。
文件系统: 文件系统是一种用于管理文件的组织结构,它定义了文件和目录如何存储、访问和操作。常见的文件系统包括FAT、NTFS(Windows)、ext4(Linux)等。
文件访问权限: 操作系统通常会为每个文件设置访问权限,以控制哪些用户或程序可以读取、写入或执行文件。这是保护文件安全的一种方式。
文件操作: 操作系统提供了一系列用于管理文件的操作,包括创建、打开、读取、写入、关闭、复制、移动、删除等。
文件描述符: 在许多操作系统中,程序通过文件描述符来访问文件。文件描述符是一个非负整数,代表了程序打开的文件。
文件类型: 文件可以分为不同的类型,例如普通文件、目录、链接文件等。不同类型的文件在操作和使用上有不同的特点。
文件的基本操作:
逻辑文件是用户或程序员定义的文件,用于表示在应用程序中所需的数据集合。它反映了应用程序对数据的逻辑组织方式,而不涉及具体的物理存储结构。
特点:
概念:顺序文件是一种将数据按照特定的顺序存储在文件中的方式。数据在文件中的存储顺序与其在实际物理存储介质中的位置一致。
特点:
概念:直接文件是一种通过使用记录的物理地址直接访问记录的文件类型。每个记录都有一个唯一的物理地址,可以通过这个地址来直接访问记录。
特点:
概念:索引文件是一种通过使用索引表(或索引项)来加速对数据的访问的文件类型。索引表中包含了关键字和相应记录的物理地址之间的映射关系。
特点:
文件目录(又称文件夹)是文件系统中用于组织和存储文件的一种特殊类型的文件(文件目录本身也是文件)。它可以包含其他文件和子目录,从而形成一个层次结构,使得用户能够更方便地管理和浏览文件。
文件目录通过路径来标识,路径可以是绝对路径(从根目录开始的完整路径)或相对路径(相对于当前工作目录的路径)。
每个文件系统通常包括一些特殊的目录,如根目录(最顶层的目录)、当前目录(用户当前所在的目录)等
所有的文件目录和文件可以形成一个树状的结构,根目录是整个文件系统的顶级目录
文件目录是文件系统的重要组成部分之一,其他组件包括文件、文件属性、文件系统的管理模块等。
不同的文件系统可以采用不同的目录结构来组织文件和目录,这些结构包括单层、双层、树形、无环图和通用图等。
单层目录结构:
概念:单层目录结构是最简单的一种目录组织方式,所有的文件和目录都在同一个层次上。
特点:
/ (根目录)
|- file1
|- file2
|- file3
双层目录结构:
概念:双层目录结构引入了子目录的概念,使得文件和目录可以被分组和组织。
特点:
/ (根目录)
|- dir1
| |- file1
| |- file2
|
|- dir2
|- file3
|- file4
树形目录结构:
概念:树形目录结构是一种层次化的组织方式,其中的每个目录都可以包含其他子目录或文件,形成一个树状结构。
特点:
/ (根目录)
|- dir1
| |- sub_dir1
| | |- file1
| |
| |- sub_dir2
| | |- file2
|
|- dir2
|- file3
|- file4
无环图目录结构:
概念:无环图目录结构允许目录之间形成复杂的关系,可以有多个路径可以到达同一个目录。
特点:
/ (根目录)
|- dir1
| |- dir2
| | |- file1
|
|- dir2
| |- file2
|
|- dir3
|- file3
通用图目录结构:
概念:通用图目录结构是最灵活的一种目录组织方式,允许目录之间形成任意的有向图,包括可能存在环路的情况。
特点:
/ (根目录)
|- dir1
| |- dir2
| | |- file1
|
|- dir2
| |- dir3
| | |- dir1 (环路)
|
|- dir3
|- file2
文件系统(File System)是计算机系统中用于组织、存储和管理文件的一套机制或软件。它负责将数据以文件的形式存储在存储介质(如硬盘、固态硬盘等)中,并提供了一组接口和功能,使用户或程序可以对这些文件进行访问、操作和管理。
文件系统 | 系统角度 | 用户角度 |
功能 | 对存储设备的空间进行组织和分配 负责文件检索、读写等操作 |
提供按名存取的文件访问机制 文件的组织管理 |
目的 | 存取速度和存储空间效率 | 方便的文件存取机制 |
文件系统的层次架构
物理块(簇):一个或多个(2n)扇区组成,基本文件读写单位,也是存储设备的基本分配单位
分区(Partition):磁盘分割成若干个独立的空间,每个空间称为分区,可分为主分区和拓展
卷(逻辑磁盘)(Volume):磁盘上的逻辑分区,建立在物理分区上。每个卷可建立一个文件系统
两种文件系统实现方式:磁盘文件系统、内存文件系统
磁盘文件系统结构:
虚拟文件系统(Virtual File System):把多个文件系统整合成一个目录结构,为用户屏蔽各个文件系统的差异。
文件系统中的存储空间分配方式是将文件在物理存储介质(如硬盘)上的空间如何分配给文件的方法。常见的存储空间分配方式有连续分配、链接分配和索引分配三种。连续分配是连续的存储空间,而链接和索引是离散的存储空间。
概念:连续分配将文件存储在物理介质上的一系列连续的存储块中。这意味着文件的所有数据都被存储在物理上相邻的位置上。
特点:
缺点:
地址映射:
概念:链接分配将文件分散存储在存储介质上的不同位置,每个文件包含一个指向下一个存储块的链接。
特点:
缺点:
地址映射:
链接表一般在文件系统装载时装入内存
链接表大小
链接分配不适合大容量磁盘:
概念:索引分配使用一个索引表来存储文件的地址信息,索引表中包含了指向文件存储块的指针。
特点:
缺点:
地址映射:
假如物理块大小S=4KB,索引项(块号)大小:4Bytes
n级索引文件大小=4*(1K)^nKB
磁盘是计算机系统中常用的外部存储设备,用于存储数据、程序和文件等信息。它是一种非易失性存储介质,意味着即使断电,磁盘上的数据也会保持不变。
磁盘类型:
硬盘驱动器(HDD):使用旋转的磁性圆盘来存储数据,具有较大的存储容量,但读写速度相对较慢。
固态硬盘(SSD):使用闪存芯片来存储数据,相对于HDD,它具有更快的读写速度和更高的抗震性,但存储容量相对有限。
混合硬盘:结合了HDD和SSD的优点,具有较大的存储容量和相对快速的读写速度。
磁盘管理:磁盘分区、格式化、挂载、复制、移动
物理结构:
磁盘通常由一个或多个圆盘(磁盘片)组成,这些圆盘叠放在一起并通过一个轴固定在一起形成磁盘组。
每个圆盘都被划分成许多同心圆的磁道,每个磁道又被划分成若干个扇区(通常是512字节或4KB),这是磁盘上的最小数据存储单元。
数据的读写是通过磁头实现的,磁头会在磁道上移动并在特定的扇区上进行数据读写。
例子:4KB块, 7200 RPM磁盘, 5ms平均寻道时间, 1Gb/sec传输率,0 .1ms 控制开销:
5ms + ½*1/(7200/60)sec + 4KB / 1Gb/sec + 0.1ms
=5.1ms + 4.17ms+0.04ms
=9.31ms
调度目标:减少磁盘访问时间,寻道时间最小化。寻道时间≈寻道距离
假定有一个请求序列(0-199道):98, 183, 37, 122, 14, 124, 65, 67。磁头当前位置在53
先提交先访问,后提交后访问
简单、公平,易实现;但是寻道时间长。
每次移动到离现在位置最近的磁道,类似于最短作业优先(SJF)
寻道距离短;存在饥饿、磁头频繁变换移动方向,增加寻道时间
磁头从磁盘一端向另一段移动,沿途响应服务请求。即电梯算法
同一方向扫描,寻道时间短;有的请求等待时间长。
磁头从磁盘外道(0道)移到内道过程中处理请求。内道移动到外道的过程中不处理请求。
更均匀的等待时间
磁头只移动到一个方向上最远请求为止,而不是继续到磁盘尽头。
I/O(输入/输出)系统是计算机系统中的一个重要组成部分,它负责管理计算机与外部设备之间的数据传输和通信。其主要功能是协调和控制数据在CPU、内存和外部设备之间的传递,以满足用户和程序的输入输出需求。
对象:I/O设备和对应的设备控制器
任务:完成用户提出的I/O请求;提高I/O速率;改善I/O设备的利用率
功能:
连接外部设备:I/O系统负责管理计算机与外部设备(如键盘、鼠标、磁盘、打印机等)的连接和通信。
数据传输:I/O系统控制数据在内存、CPU和外部设备之间的传递,确保正确、高效地完成数据的输入和输出操作。
缓存管理:为了提高性能,I/O系统通常会使用缓存技术来暂存数据,减少与外部设备的频繁交互。
错误处理:I/O系统负责处理可能出现的错误,如设备故障、数据传输错误等,以保证数据的完整性和可靠性。
提供抽象接口:I/O系统提供了一套抽象的接口,使得应用程序可以通过相同的方式与不同类型的设备进行交互,而不需要了解具体硬件细节。
组成:
设备控制器:设备控制器是连接计算机和外部设备的硬件组件,负责管理设备的工作状态、数据传输等。
设备驱动程序:设备驱动程序是软件组件,用于控制和管理设备控制器,使其与操作系统能够正确地通信和交互。
中断处理程序:中断处理程序负责响应外部设备的中断信号,将控制权转移到相应的设备处理程序。
I/O缓冲区:I/O缓冲区用于暂存数据,以平衡CPU和设备之间的速度差异,提高数据传输效率。
设备管理器:设备管理器是I/O系统的一个核心组件,负责协调和管理所有连接的外部设备。
I/O控制方式主要有以下三种:
程序控制I/O:由CPU直接控制I/O操作,需要等待I/O操作完成后再继续执行程序(轮询)。
中断驱动I/O:程序发送I/O请求后,CPU继续执行其他任务,当设备完成操作时,会发送一个中断信号,通知CPU进行后续处理。
直接内存访问(DMA):通过DMA控制器,数据可以在设备和内存之间直接传递,减轻了CPU的负担。
程序控制I/O由CPU定时发出询问,询问设备是否忙,进程进入忙等。不忙即进行I/O,否则转1
这种方式实现容易,但效率偏低,CPU会长期处于忙等待。
中断驱动I/O允许程序在发起I/O请求后不必等待操作完成,而是可以继续执行其他任务。当I/O操作完成时,外部设备会发送一个中断信号给CPU,通知它可以处理I/O结果。
中断I/O工作流程:
优点:
异步性:相比于程序控制I/O,中断驱动I/O允许程序在I/O操作进行的同时继续执行其他任务,从而提高了系统的并发性。
提高CPU利用率:在I/O操作的等待期间,CPU可以执行其他任务,有效地提高了CPU的利用率。
降低响应时间:中断驱动I/O可以更快地响应设备的状态变化,从而减少了对设备状态的轮询。
中断处理程序(ISR):
检测是否有未响应的中断信号
保护被中断进程的CPU环境
转入相应的设备处理程序
中断处理
恢复CPU的现场并退出中断
中断向量:
中断控制器:
中断控制器负责管理和分发中断信号,以确保CPU能够正确地响应中断。
在多设备系统中,中断控制器会根据优先级或其他策略来决定哪个中断信号优先被处理。
中断屏蔽:
DMA允许外部设备直接访问内存,而无需通过CPU的中介,从而减轻了CPU在数据传输过程中的负担,提高了系统的性能。
DMA控制器:
DMA控制器是一种硬件组件,它负责管理DMA操作。它通常包括多个通道,每个通道可以同时管理一个DMA传输任务。
DMA控制器会根据应用程序的配置来进行数据传输,包括源地址、目的地址、数据长度等。
工作原理:
应用程序首先通过DMA控制器配置一个数据传输任务,包括源地址、目的地址和数据长度。
DMA控制器会在后台自动执行数据传输,将数据从外部设备读取到内存,或从内存传输到外部设备,而不需要CPU的直接参与。
当数据传输完成时,DMA控制器会发出一个中断信号,通知CPU数据准备好可以进行处理。
优点:
减轻CPU负担,降低系统延迟
提高数据传输效率:相比于由CPU控制的传输,DMA通常更快。
并行处理:DMA可以在后台执行数据传输,CPU可以同时执行其他任务,实现并行处理。
缺点:
需要专门的硬件支持,因此并非所有计算机系统都支持DMA。
I/O内核子系统提供了与I/O有关的服务,建立在硬件和设备驱动程序结构之上,还负责保护自己免受错误进程和恶意用户的危害。以下是I/O内核子系统的功能:
I/O调度:按设备队列排序,按照先来先服务完成设备I/O请求
缓冲区:I/O设备在与CPU交换数据时的内存地带。解决设备之间的速度差异和协调传输数据大小不一致的问题。
错误处理:
I/O保护: 防止非法I/O指令的执行
内核数据结构: 内核保存了I/O组件的状态信息,包括文件打开表、网络连接、字符设备状态等
目的: 为了缓和CPU的高速性与I/O设备的低速性间的矛盾。
系统特点: