2020-2021-1学期 20202424 《网络空间安全导论》第五周学习总结 学习内容:《计算机科学导论》第10、11章 第10章 操作系统 第11章 文件系统和目录 小结

林俊丞2020/11/11

第10章 操作系统

10.1 操作系统的角色

应用软件(Application software):帮助我们解决现实世界问题的程序。

系统软件(System software):管理计算机系统并与硬件进行交互的程序。

操作系统(Operating system):管理计算机资源并为系统交互提供界面的系统软件。

2020-2021-1学期 20202424 《网络空间安全导论》第五周学习总结
学习内容:《计算机科学导论》第10、11章
第10章 操作系统
第11章 文件系统和目录
小结

操作系统是系统软件的核心,负责管理资源,而这些资源通常是由使用它们的程序共享的,因此,操作系统的各种角色通常都围绕着一个中心思想——“良好的共享”

计算机启动时先从ROM中载入系统指令,再由这些指令从二级存储器(通常是硬盘)中载入大部分系统软件,最终载入操作系统软件所有的关键元素,执行启动程序,最后操作者就能看到用户界面了。这个过程叫做引导(booting)计算机。

双引导系统多引导系统是指具备两个或更多操作系统的计算机。注意,任何时候都只有一个操作系统在控制计算机,用户在开机时选择使用哪个操作系统。

10.1.1 内存、进程与CPU管理

多道程序设计(multiprogramming):同时在主存中驻留多个程序,由它们竞争CPU的技术。

内存管理(memory management):了解主存中载有多少个程序以及它们的位置的动作。

进程(process):程序执行过程中的动态表示法。

进程管理(process management):了解活动进程的信息的动作。

CPU调度(CPU scheduling):确定主存中的哪个进程可以访问CPU以便执行的动作。

注意,操作系统本身也是必须执行的程序,在内存中也要和其他系统软件及应用程序一起管理和维护OS进程。执行OS的CPU就是执行其他程序的CPU,因此也要把OS进程排进竞争CPU的队列中。

10.1.2 批处理

早期计算机系统的资源、程序管理工作是由人手动做的,管理员将用户提交的的作业(程序和单独配套的系统指令)集中,组织成分批,输入计算机执行操作。一个分批包含了一组需要相同或相似资源的作业,避免了反复载入和准备相同的资源。

2020-2021-1学期 20202424 《网络空间安全导论》第五周学习总结
学习内容:《计算机科学导论》第10、11章
第10章 操作系统
第11章 文件系统和目录
小结

现代操作系统中的批处理概念允许用户把一组OS命令定义为一个批文件,以控制一个大型程序或一组交互程序的处理。尽管目前使用的大多数计算机是交互式的,但有些作业仍然会自行批处理。

10.1.3 分时

分时(timesharing):多个交互用户同时共享CPU时间的系统。

虚拟机(virtual machine):分时系统创建的每个用户都有专有机器的假象。

主机(mainframe):一个大型的多用户计算机,通常与早期的分时系统相关。

哑终端(dumb terminal):在早期的分时系统中用户用于访问主机的一套显示器和键盘。

分时系统运行时事实上还是只有一台计算机在运行,只不过多道程序设计法允许有多个活动进程,从而允许多个用户同时使用同一台计算机。因此,当活动进程过多,系统负荷过重时,用户会明显感觉到计算机变慢了。

注意,这里的“虚拟机”是指一种“假象”,而我们用Virtual Box等软件搭建的”虚拟机“则是通过软件模拟出的”计算机系统“。

主机的概念已经过时,但是分时的概念仍有意义,目前,许多台式计算机运行的操作系统都通过网络以分时的方式支持多个用户。

10.1.4 其他OS要素

设备驱动程序‘了解’特定设备接受和发布信息所希望采用的方式,并协助操作系统与各种各样的设备通信。

操作系统需要支持实时系统的,实时系统就是必须给用户提供最少响应时间的系统。必须严格控制收到信号和生成响应之间的延迟。

尽管所有操作系统都知道响应时间的重要性,但是事实操作系统则更加致力于优化该方面。

实时系统(real-time system):应用程序的特性决定了响应时间至关重要的系统。

响应时间(response time):收到信号和生成响应之间的延迟时间。

10.2 内存管理

程序中到处都是对变量的引用和对程序其他部分的引用。在编译程序时,这些引用将被转换成数据或代码驻留的内存地址。这里使用的地址有两种——逻辑地址(有时又叫虚拟地址相对地址)和物理地址

逻辑地址(logical address):对一个存储值的引用,是相对于引用它的程序的。

物理地址(physical address):主存储设备中的真实地址。

在编译程序时,对标识符(如变量名)的引用将被转化为逻辑地址。当程序最终载入内存时,每个逻辑地址将被转化成对应的物理地址。

地址联编(address binding):逻辑地址和物理地址间的映射。

把逻辑地址联编到物理地址的时间越迟,灵活度越大。逻辑地址使得程序可以在内存中移动,或者每次载入不同的位置。只要知道程序存储的位置就可以确定任何逻辑地址对应的物理地址。

10.2.1 单块内存管理

单块内存管理(single contiguous memory management):把应用程序载入一段连续的内存区域的内存管理方法。

为了简化问题,整个应用程序被载入了一大块内存中,除了在操作系统外,一次只能处理一个程序。进行地址联编所要做的只是把操作系统的地址考虑在内。

2020-2021-1学期 20202424 《网络空间安全导论》第五周学习总结
学习内容:《计算机科学导论》第10、11章
第10章 操作系统
第11章 文件系统和目录
小结

在这种内存管理机制中,逻辑地址只是一个相对于程序起始位置的整数值。因此要生成物理地址,只要用逻辑地址加上程序在物理主存中的起始地址即可。

单块内存管理法的实现和管理都很简单,但是大大浪费了内存空间和CPU时间。

10.2.2 分区内存管理

划分内存的方法有两种——固定分区法动态分区法

固定分区法(fixed-partition technique):把内存分成特定数目的分区以载入程序的内存管理方法。

动态分区法(dynamic-partition technique):根据容纳程序的需要对内存分区的内存管理方法。

在固定分区法中,OS具有一个地址表,存放了每个分区的起始地址和长度。

操作系统维护着一个分区信息表,在动态分区中,地址信息会随着程序的载入和清除而改变。

无论是固定分区还是动态分区,任何时候内存都是被划分为一组分区。且二者的地址联编基本上是一样的。与单块内存管理法一样,逻辑地址是相对于0起始点的整数。

OS处理地址转换细节的方式有很多,一种方法是使用CPU中的两个专用寄存器帮助管理寻址。当CPU开始运行一个程序时,OS将把程序的分区起始地址存储到基址寄存器中,分区的长度将被存入界限寄存器

当逻辑地址被引用时,首先它将与界限寄存器中的值进行比较,确保该引用属于分配给程序中的内存空间。如果是这样,那么逻辑地址的值将被加到基址寄存器中的值上以生成物理地址。

2020-2021-1学期 20202424 《网络空间安全导论》第五周学习总结
学习内容:《计算机科学导论》第10、11章
第10章 操作系统
第11章 文件系统和目录
小结

基址寄存器(base register):存放当前分区的起始地址的寄存器。

界限寄存器(bounds register):存放当前分区的长度的寄存器。

三种常用分区选择法:

  • 最先匹配(first fit):把第一个足够存放程序的分区分配给它。
  • 最佳匹配(best fit):把最小的能够容纳程序的分区分配给它。
  • 最差匹配(worst fit):把最大的能够容纳程序的分区分配给它。

以上三种分区法各有所长。

在动态分区中作业可以在内存中移动,以创建较大的空白分区。这个过程叫作压缩(compaction)。压缩提高了对主存的利用效率。

10.2.3 页式内存管理

页式内存管理法(paged memory technique):把进程划分为大小固定的页,载入内存时存储在帧中的内存管理方法。

(frame):大小固定的一部分主存,用于存放进程页。

(page):大小固定的一部分进程,存储在内存帧中。

页映射表(Page Map Table,PMT):操作系统用于记录页和帧之间关系的表。

为了便于讨论,我们假设页的大小等于帧的大小。

程序执行时,进程的页将被载入分散在内存中的各个未使用的帧中,因此一个进程的页可能是四处散落的、无序的,与其它进程的页混合在一起。

页式内存管理系统中的逻辑地址也是从一个相对于程序起始点的整数值开始。但这个地址转换成两个值——页编号偏移量

用页面大小除逻辑地址得到的商就是页编号,余数是偏移量,逻辑地址通常被表示为<页编号,偏移量>。

要生成物理地址,首先需要查看PMT,找到页所在的帧的编号,然后用帧编号乘以帧大小再加上偏移量即可。注意,有两种逻辑地址是无效的,一种是越过了进程的界限,一种是偏移量大于帧大小。

分页的优点在于不必再把进程存储在连续的内存空间中。

页式内存管理思想的一个重要扩展就是请求分页思想,它利用了程序的所有部分不必同时处在内存中这一事实。任何时刻CPU都只访问进程的一个页面。

在请求分页中,页面经过请求才会被载入内存。如果一个页面没有在内存中,就要从二级存储设备把这个页面载入可用的帧,再完成访问。从二级存储设备载入页面通常会把其他页面写回二级存储设备,这种行为叫做页面交换

请求分页(demand paging):页式内存管理法的扩展,只有当页面被引用(请求)时才会被载入内存。

页面交换(page swap):把一个页面从二级存储设备载入内存,通常会使另一个页面从内存中删除。

请求分页法带来了虚拟内存思想,消除了进程大小始终有一个上限的限制。

不过,虚拟内存需要很多开销,经常需要在主存和二级存储设备间进行页面交换。当一个程序等待页面交换时,另一个进程接管CPU的控制,这种开销是可以接受的。页面交换过多叫做系统颠簸,会严重降低系统的性能。

虚拟内存(virtual memory):由于整个程序不必同时处于内存而造成的程序大小没有限制的假象。

系统颠簸(thrashing):连续的页面交换造成的低效处理。

10.3 进程管理

10.3.1 进程状态

进程状态(process state):在操作系统的管理下,进程历经的概念性阶段。

2020-2021-1学期 20202424 《网络空间安全导论》第五周学习总结
学习内容:《计算机科学导论》第10、11章
第10章 操作系统
第11章 文件系统和目录
小结

  • 创建阶段
  • 准备就绪阶段
  • 运行状态
  • 等待状态
  • 终止状态

注意,可能同时有多个进程处于准备就绪或等待状态,但是只能有一个进程处于运行状态。在运行过程中,进程可能被操作系统中断,以便另一个进程能够获得CPU资源。当等待中的进程的得到了它在等待的资源后,它将再次转移到准备就绪的状态。

10.3.2 进程控制块

进程控制块(Process Control Block,PCB):操作系统管理进程信息使用的数据结构。

操作系统必须为每个活动进程管理大量的数据。这些数据通常存储在称为进程控制块的数据结构中。通常每个状态由一个PCB列表表示,处于该状态的每个进程对应一个PCB。当进程状态转移时,PCB也会相应的转移,。新的PCB是在当初创建进程的时候创建的,将一直保持到进程中止。

上下文切换(context switch):当一个进程移出CPU,另一个进程取代它时发生的寄存器信息交换。

PCB存储了有关进程的各种信息,还存储了进程在其他所有CPU寄存器中的值。只有一套CPU寄存器,当一个进程移出CPU,另一个进程取代它时候,寄存器信息发生交换,这种信息交换叫做“上下文切换”。

10.4 CPU调度

CPU调度算法决定把CPU给予哪个过程,以便它能够运行。

非抢先调度(nonpreemptive scheduling):当当前执行的进程自愿放弃了CPU时发生的CPU调度。

抢先调度(preemptive scheduling):当操作系统决定照顾另一个进程而抢占当前执行进程的CPU资源时发生的CPU调度。

通常用特殊的标准(如进程的周转周期)来评估调度算法。

周转周期(turnaround time):从进程进入准备就绪状态到它最终完成之间的时间间隔,是评估CPU调度算法的标准。

10.4.1 先到先服务(FCFS)

FCFS调度是非抢先的。一旦进程获得了CPU的访问权,除非它强制请求转入等待状态(如请求其他进程正在使用的设备),否则将一直占用CPU。

每个进程的周转周期是它的完成时间减去到达时间。

10.4.2 最短作业优先(SJN)

最短作业优先CPU调度算法将查看所有处于准备就绪状态的进程,并分派一个具有最短服务时间的,通常被实现为非抢先算法。

注意,由于进程的作业时间基本上是不可确定的,如果估算错误,SJN算法的性能将恶化。

10.4.3 轮询法

CPU的轮询法将把处理时间平均分配给所有准备就绪的过程。该算法建立单独的时间片(或时间量子)。

时间片(time slice):在CPU轮询算法中分配给每个进程的时间量。

注意,轮询算法是抢先的。时间片到期进程就会被强制移出CPU。它可能是应用最广泛的,被认为是最公平的算法。

第11章 文件系统和目录

11.1 文件系统

文件(file):数据的有名集合,用于组织二级存储设备。

文件系统(file system):操作系统为它管理的文件提供的逻辑视图。

目录(directory):文件的有名分组。

11.1.1 文本文件和二进制文件

所有文件都可以被归为文本文件和二进制文件。

文本文件(text file):包含字符的文件。

二进制文件(binary file):包含特定格式的数据的文件,要求给位串一个特定的解释。

11.1.2 文件类型

文件类型(file type ):文件(如Java程序或Microsoft文档)中存放的关于类型的信息。

文件扩展名(file extension):文件名中说明文件类型的部分。

2020-2021-1学期 20202424 《网络空间安全导论》第五周学习总结
学习内容:《计算机科学导论》第10、11章
第10章 操作系统
第11章 文件系统和目录
小结

改变文件扩展名不会改变文件中的数据或它的内部格式。如果要在专用的程序中打开一个扩展名错误的文件,只会得到错误信息。

11.1.3 文件操作

  • 创建文件
  • 删除文件
  • 打开文件
  • 关闭文件
  • 从文件中读取数据
  • 把数据写入文件
  • 重定位文件中的当前文件指针
  • 把数据附加到文件结尾
  • 删减文件(删除它的内容)
  • 重命名文件
  • 复制文件

11.1.4 文件访问

主要有两种——顺序访问法直接访问法

顺序文件访问(sequential file access):以线性方式访问文件中的数据的方法。

直接文件访问(direct file access):通过指定逻辑记录编号直接访问文件中的数据的方法。

2020-2021-1学期 20202424 《网络空间安全导论》第五周学习总结
学习内容:《计算机科学导论》第10、11章
第10章 操作系统
第11章 文件系统和目录
小结

2020-2021-1学期 20202424 《网络空间安全导论》第五周学习总结
学习内容:《计算机科学导论》第10、11章
第10章 操作系统
第11章 文件系统和目录
小结

11.1.5 文件保护

在多用户系统中,文件保护的重要性居于首要地位。

11.2 目录

11.2.1 目录树

目录树(directory tree):展示文件系统的嵌套目录组织的结构。

根目录(root directory):包含其他所有目录的最高层目录。

例:

2020-2021-1学期 20202424 《网络空间安全导论》第五周学习总结
学习内容:《计算机科学导论》第10、11章
第10章 操作系统
第11章 文件系统和目录
小结

工作目录(working directory):当前活动的子目录。

2020-2021-1学期 20202424 《网络空间安全导论》第五周学习总结
学习内容:《计算机科学导论》第10、11章
第10章 操作系统
第11章 文件系统和目录
小结

11.2.2 路径名

路径(path):文件或子目录在文件系统中的位置的文本名称。

绝对路径(absolute path):从根目录开始,包括所有后继子目录的路径。

相对路径(relative path):从当前工作目录开始的路径。

11.3 磁盘调度

磁盘调度(disk scheduling):决定先满足哪个磁盘I/O请求的操作。

11.3.1 先到先服务磁盘调度法

与FCFS相似。

11.3.2 最短寻道时间优先磁盘调度法

通过尽可能少的读写头移动满足所有未解决的请求。

存在问题:源源不断的请求过来,那么早期的请求有可能永远得不到满足,就会“饿死”

11.3.3 SCAN磁盘调度法

类似于电梯。

小结

偏向纯理论学习。多读即可解决。