文件系统实现
一、文件系统结构磁盘提供大多数的外存,以便维护文件系统。磁盘在这方面有以下两个优势: 磁盘可以原地重写。可以从磁盘上读取一块,修改该块,并写回原来的位置。 磁盘可以直接访问所包含的任何信息块。因此,可以简单地按顺序或随机访问文件。从一个文件切换到另一个文件时只需要移动读写磁头,并等待磁盘旋转。 文件系统本身通常由许多不同的层块组成。如下图所示就是一个分层设计的例子。 ...
文件系统接口
一、文件概念操作系统对存储设备的物理属性加以抽象,从而定义逻辑存储单位,即文件。文件是记录在外存上相关信息的命令组合,有不同类型,包括文本文件、源文件、可执行文件等。 1.1 文件属性文件的属性因操作系统而异,但通常包括: 名称:符号化的文件名称是以人类可读形式来保存的唯一信息。 标识符:这种唯一标记(通常为数字)标识文件系统的文件,是非人类可读的名称。 类型:支持不同类型文件的系统需要这种信息。 位置:该信息为指向设备与设备上文件位置的指针。 大小:文件当前大小,以及可能允许的最大大小。 保护:访问控制信息确定谁能进行读取、写入、执行等。 时间戳和用户标识:文件创建、最后修改和最后使用的相关信息。 所有文件的信息都保存在目录结构中。通常,目录条目由文件的名称及其唯一标识符组成。根据标识符可以定位其他文件属性。 1.2 文件操作文件是抽象数据类型。操作系统一般都会提供 7 种基本文件操作,包括: 创建文件:在文件空间中为文件找到空间 + 在目录中创建新文件的条目。 打开文件:调用 open()...
虚拟内存
本系列笔记整理自 https://www.bilibili.com/video/BV1YE411D7nH 个人认为讲解比较清晰,容易理解。 一、虚拟内存的基本概念1.1 传统存储管理方式的特征、缺点在之前我们已经整理了连续分配和非连续分配的存储管理方式。但是,它们有一个共同的缺点就是很多暂时用不到的数据也会长期占用内存,导致内存利用率不高。 总结来说,这些传统的存储管理方式都有以下两个特征: 一次性:作业必须一次性全部装入内存后才能开始运行。这就导致那些无法一次装入内存的大作业无法运行。只有少量小作业可以运行,最终导致多道程序并发度下降。 驻留性:一旦作业被装入内存,就会一直驻留在内存中,直至作业运行结束。事实上,在一个时间段内,只需要访问作业的一小部分数据即可正常运行,这就导致了内存中会驻留大量数据,浪费了宝贵的内存资源。 为解决以上问题,人们便发明了虚拟存储技术。 1.2...
操作系统原理与设计(6)调度的概念、层次和切换过程
本系列笔记整理自 https://www.bilibili.com/video/BV1YE411D7nH 个人认为讲解比较清晰,容易理解。 一、调度的基本概念和层次1.1 调度的基本概念什么是调度?我们为什么需要调度?我们知道计算机中有许多任务,但资源有限,很多事情没法同时处理。这就需要确定某种规则来决定处理这些任务的顺序,这就是“调度”要研究的问题。 1.2 调度的三个层次调度可以分为三个层次,分别是高级调度、低级调度。下面我们分开讲解这几个概念。 1.2.1 高级调度作业在计算机中指的是一个具体的任务。当用户向系统同时提交多个作业时,操作系统就要按照一定的原则从外存的作业后备队列中挑选一个作业调入内存,并创建进程,这就是高级调度。每个作业只调入一次,调出一次。作业调入时会建立 PCB,调出时撤销 PCB。 Tip: 内存空间有限,有时无法将用户提交的作业全部放入内存,这时就会准备一个作业后备队列在外存中。当内存空间足够时才会将一定的作业调入内存。 1.2.2...
操作系统原理与设计(5)进程控制和进程通信
本系列笔记整理自 https://www.bilibili.com/video/BV1YE411D7nH 个人认为讲解比较清晰,容易理解。 一、进程控制1.1 什么是进程控制进程控制的主要功能是对系统中所有进程实施有效管理,它具有创建新进程,撤销已有进程,实现进程状态转换等功能。简而言之,进程控制就是要实现进程状态转换。 1.2 如何实现进程控制进程控制主要是通过“原语”实现的。原语是一种特殊的程序,它的执行具有原子性。也就是说,这段程序的运行必须一气呵成,中间不能存在中断。 为什么进程控制的过程要“一气呵成”呢?如下图,假设我们需要将一个 PCB 的状态由 2 变成 1。中间至少需要做两件事:(1)将 PCB 的状态值设为 2;(2)将 PCB 从阻塞队列放到就绪队列。如果中间完成第一步后,因为中断而导致程序暂停,就会出现 PCB 明明状态值为 1,却处于阻塞队列的情况。显然,这是不符合我们预期的行为。因此,原语的不可中断性就非常重要了! 1.3...
操作系统原理与设计(4)进程的基本概念和状态转换
本系列笔记整理自 https://www.bilibili.com/video/BV1YE411D7nH 个人认为讲解比较清晰,容易理解。 一、进程的基本概念在多道程序环境下,允许多个程序并发运行。正是因为并发执行的特征,导致了在操作系统中引入进程的概念。 1.1 进程的特征1)结构特征 并发执行的程序失去了封闭性,导致不可再现,因此一般的程序是不能并发执行的。为了让程序能独立运行,需要为之配置一进程控制块,即 PCB;而由程序段、相关数据段和 PCB 三部分便构成了进程实体。 在很多时候所说的进程,实质上是指进程实体。比如说,创建进程指的是创建进程实体中的 PCB;撤销进程指的是撤销进程的...
操作系统原理与设计(3)中断异常、系统调用与体系结构
本系列笔记整理自 https://www.bilibili.com/video/BV1YE411D7nH 个人认为讲解比较清晰,容易理解。 一、中断和异常1. 中断的作用在前一节中我们提到“中断”会使CPU由用户态变为内核态,让操作系统重新夺回对CPU的控制权。如果没有“中断”机制,那么一旦应用程序在CPU上运行,CPU就会一直运行这个应用程序,那么也就无法实现“并发”。 2. 中断的分类中断分为内中断和外中断,分类的依据主要是当前执行指令的来源。 2.1 内中断内中断与当前执行的指令有关,中断信号来源于CPU内部。 例如:试图在用户态下执行特权指令,或是执行除法指令时发现除数为0。这些都是非法指令,会引发一个中断信号。 有些时候,应用程序也会主动地请求操作系统内核的服务,这时就会执行一条特殊的指令——陷入指令,该指令会引发一个内部中断信号。例如:“系统调用”就是通过陷入指令完成的。 【补充】“陷入指令”实在内核处于用户态下执行的,因此它不是一条特权指令。 当CPU检测到中断信号时,会切换到内核态,接着处理中断信号的内核程序。 2.2...
操作系统原理与设计(2)操作系统的发展、分类和运行机制
本系列笔记整理自...
操作系统原理与设计(1)操作系统概述
本系列笔记整理自 https://www.bilibili.com/video/BV1YE411D7nH 个人认为讲解比较清晰,容易理解。 一、操作系统的概念1.1 操作系统的定义操作系统(OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其它软件方便的接口和环境。它是计算机系统中最基本的系统软件。 下面我们将按照上述定义,从三个方面讨论操作系统的功能和目标。 1.2 操作系统的功能和目标1.2.1 操作系统是系统资源的管理者在定义中,操作系统首先是控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其它软件方便的接口和环境。 在运行一个程序的过程中,操作系统作为系统资源的管理者,它可以整理可执行文件存放位置;可以将程序指令和相关数据放入内存;可以让处理机(CPU)处理对应进程;也可以将所需设备合理地分配给各个进程。 以上四点对应的就分别是:文件管理、存储器管理、处理机管理和设备管理。 1.2.2...