2019-2020-1学期 20202410《计算机科学概论》第五周学习总结

2019-2020-1学期 20202410《计算机科学概论》第五周学习总结

10、11章分别重点讲操作系统扮演的部分角色和磁盘上的关键角色:文件系统和目录。

第10章 操作系统

一、操作系统的角色

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

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

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

操作系统负责管理硬件资源,它允许应用软件直接地或通过其他系统软件访问系统资源。它提供了直接的人机交互界面。操作系统在计算机系统元素中的相对位置可见下图:

计算机可以具备两个或更多个操作系统,用户在计算机开机时可选择使用哪个操作系统。这种配置称为双引导或多引导系统。但,任何时候都只有一个操作系统在控制计算机。

(一)内存、进程与CPU管理

多道程序设计是在主存中同时驻留多个程序的技术;这些程序为了能够执行,将竞争CPU的访问。所有现代操作系统都采用多道程序设计技术。因此,操作系统必须执行内存管理,以明确内存中有哪些程序以及它们驻留在内存的什么位置。

操作系统另一个概念是进程。程序是一套静态指令,而进程是动态实体,表示正在执行的程序。因为进程在执行过程中可能被打断,操作系统还需要进程管理,以跟踪进程的进展以及所有中间状态。

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

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

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

进程管理:了解活动进程的信息的动作。

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

(二)批处理

在交付程序时,用户需要为执行程序所需的系统软件或其他资源提供一套单独的指令。程序和系统指令集合在一起,称为作业。为了更有效的执行程序,操作员会把来自多个用户的作业组织成分批,一个分批包含一组需要相同或相似资源的作业。

现代操作系统中的批处理概念允许用户把一组OS命令定义为一个批文件,以控制一个大型程序或一组交互程序的处理。

(三)分时

分时系统允许多个用户同时与计算机进行交互。多道程序设计法允许同时有多个活动进程,从而给了程序员直接与计算机系统交互且仍然共享其资源的能力。

在分时系统中,每个用户都有自己的虚拟机,可以使用虚拟机中的所有系统资源(都是有效的),但其实这些资源是由多个用户共享的。

分时系统最初由一台主机和一组连接到主机的哑终端构成。

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

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

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

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

每个用户由主机上运行的一个登陆进程表示。当用户运行程序时,将创建另一个进程。CPU时间由所有用户创建的所有进程共享。每个进程将顺次得到一小段CPU时间。

(四)其他OS要素

微型机第一次采用单个的集成芯片作为CPU,从而引发了个人计算机(PC)的想法。

操作系统需要支持实时系统的,实时系统就是必须给用户提供最少响应时间的系统。即必须严格控制收到信号和生成响应之间的延迟。尽管所有操作系统都知道响应时间的重要性,但是事实操作系统则更加致力于优化这个方面。

实时系统:应用程序的特性决定了响应时间至关重要的系统。

响应时间:收到信号和生成相应之间的延迟时间。

二、内存管理

程序中到处都是对变量的引用和对程序其他部分的引用。在编译程序时,这些引用将被转换成数据或代码驻留的内存地址。知道使用什么地址的解决办法是使用两种地址————逻辑地址和物理地址。

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

物理地址:主存储设备中的真实地址。

编译程序时,候对标识符的引用将被转化为逻辑地址。当程序最终载入内存时每个逻辑地址将被转换成对应的物理地址。二者之间的映射叫做地址联编。把逻辑地址联编到物理地址的时间越迟,灵活度越大。逻辑地址使得程序可以在内存中移动,或者每次载入不同的位置。只要知道程序存储的位置就可以确定任何逻辑地址对应的物理地址。

地址联编:逻辑地址和物理地址间的映射。

(一)单块内存管理

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

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

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

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

(二)分区内存管理

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

使用固定分区法,主存将被划分为特定数目的分区。这些分区的大小不一定要相同,但是操作系统初始引导时它的大小就固定了。OS具有一个地址表,存放了每个分区的起始地址和长度。

使用动态分区法,将根据程序的需要创建分区。操作系统将维护一个分区信息表,不过在动态分区中,地址信息会随着程序的载入和清除而改变。

固定分区法和动态分区法的地址联编基本上是一样的。

OS处理地址转换细节的方式有很多,一种方法是使用CPU中的两个专用寄存器帮助管理寻址。当CPU开始运行一个程序时,OS将把程序的分区起始地址存储到基址寄存器中。同样,分区的长度将被存入界限寄存器。当逻辑地址被引用时,首先它将与界限寄存器中的值进行比较,确保该引用属于分配给程序中的内存空间。如果是这样,那么逻辑地址的值将被加到基址寄存器中的值上以生成物理地址。

固定分区法:把内存分成特定数目的分区以载入程序的内存管理方法。

动态分区法:根据容纳程序的需要对内存分区的内存管理方法。

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

界限寄存器:存放当前分区的长度的寄存器。

对于一个新程序,下面有三种常见的分区选择法: 最先匹配:把第一个足够容纳程序的分区分配给它。 最佳匹配:把最小的能够容纳程序的分区分配给它。 最差匹配:把最大的能够容纳程序的分区分配给它。

在动态分区中,作业可以在内存中移动以创建较大的空白分区,这个过程叫做压缩。

(三)页式内存管理

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

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

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

页映射表:操作系统用于记录页和帧之间的关系的表。

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

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

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

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

页式内存管理思想的一个重要扩展就是请求分页思想,它利用了程序的所有部分不必同时处在内存中这一事实。任何时刻CPU都只访问进程的一个页面。在请求分页中,页面经过请求才会被载入内存。如果一个页面没有在内存中,就要从二级存储设备把这个页面载入可用的帧,再完成访问。从二级存储设备载入页面通常会把其他页面写回二级存储设备,这种行为叫做页面交换。

三、进程管理

(一)进程状态

在计算机系统的管理下,进程会历经几种状态,即进入系统、准备执行、执行、等待资源以及执行结束。

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

下面来分析在进程的每个状态发生的事情————

在创建阶段,将创建一个新进程。

在准备就绪状态中,进程没有任何执行障碍。也就是说,准备就绪状态下的进程并不是在等待某个事件发生,也不是在等待从二级存储设备载入数据,而只是等待使用CPU的机会。

运行状态下的进程是当前CPU执行的进程。它的指令将按照读取-执行周期被处理。

等待状态下的进程是当前在等待资源(除了CPU以外的资源)的进程

终止状态下的进程已经完成了它的执行,不再是活动进程。此时,操作系统不再需要维护有关这个进程的信息。

注意:可能同时有多个进程处于准备就绪或等待状态,但是只能有一个进程处于运行状态。

(二)进程控制块

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

进程控制块:操作系统管理进程信息使用的数据结构。

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

四、CPU调度

CPU调度就是确定把哪个处于准备就绪状态的进程移入运行状态。即CPU调度算法决定把CPU给予哪个过程,以便它能够运行。

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

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

通常用特殊的标准来评估调度算法。

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

(一)先到先服务

FCFS这是非抢先的,一旦获得CPU访问权,除非强制请求转入等待状态,否则将一直占用CPU。

(二)最短作业优先

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

(三)轮询法

CPU的轮询法将把处理时间平均分配给所有准备就绪的过程。该算法建立单独的时间片(或时间量子),即在每个进程被抢占并返回准备就绪状态之前收到的时间量。

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

轮询算法是抢先的。时间片到期,进程就会被强制移出CPU。

第11章 文件系统和目录

一、文件系统

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

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

目录:文件的有名分组。

可以把文件看作位序列、字节序列、行序列和记录序列。

(一)文本文件和二进制文件

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

文本文件:包含字符的文件。

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

计算机上所有的数据最终都是以二进制数字存储的。

(二)文本类型

说明文件类型的常用方法是把文件类型作为文件名的一部分。文件名分为两部分:主文件名和文件扩展名。文件扩展名说明文件的类型。

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

文件类型:文件中存放的关于类型的信息。

文件扩展名:文件名中说明文件类型的部分。

(三)文件操作

操作系统用两种方式跟踪二级存储设备。它维护了一个表以说明哪些内存块是空的,还为每个目录维护了一个表,以记录该目录下的文件的信息。要创建一个文件,操作系统需要在文件系统中为文件内容找一块可用空间,然后把该文件条目加到正确的目录中,记录文件的名字和位置;要删除一个文件,操作系统要声明该文件使用的空间现在是空的,并删除目录表中相应条目

(四)文件访问

两种主要的访问方法——顺序访问法和直接访问法,任何类型的介质都可以存储这两种类型的文件。文件访问类型定义了重定位当前文件指针的方法,它们与存储文件的设备的物理限制无关。

顺序文件访问:以线性方式访问文件中的数据的方法。

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

(五)文件保护

文件保护机制决定了谁可以使用文件,以及为什么目的而使用文件。

二、目录

大多数操作系统都用文件表示目录。目录文件存放的是关于目录中的其他文件的数据。对于任何指定的文件,目录中存放有文件名、文件类型、文件存储在硬盘上的地址以及文件的当前大小。

一旦建立了目录文件,它就必须支持对目录文件的一般操作。

(一)目录树

一个文件目录还可以包含另一个目录,包含其他目录的目录叫做父目录,被包含的目录叫做子目录。一个目录可以包含多个子目录,另外子目录也可以有子目录,这样就形成了分级结构。文件系统通常被看作目录树,最高层叫做根目录。

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

根目录:包含其他所有目录的最高层目录。

无论何时你都可以认为自己在文件系统中的某个特定位置工作,这个子目录叫做当前工作目录,只要在文件系统中移动,当前工作目录就会改变。

工作目录:当前活动的子目录。

(二)路径名

大多数操作系统提供非图形化的界面,需要用文本说明文件的位置。

要用文本指定一个特定的文件,必须说明文件的路径,路径可以绝对也可以相对。

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

绝对路径:从根目录开始,包括所有后继子目录的路径。 相对路径:从当前工作目录开始的路径。

三、磁盘调度

由于二级I/O是一般计算机系统中最慢的部分,所以访问磁盘驱动器上的数据的方法对于文件系统至关重要。在计算机同时处理多个进程时候,将建立一个访问磁盘的请求列表。操作系统用于决定先满足那个请求的方法叫做磁盘调度。

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

(一)先到先服务磁盘调度法

FCFS算法按照请求到达的顺序处理它们,并不考虑读写头的当前位置。

(二)最短寻道时间优先磁盘调度法

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

(三)SCAN磁盘调度法

一些变体能用各种方法提高它的性能。

另一种变体则是最小化到轴心和到盘片边缘的移动极限。

原文地址:https://www.cnblogs.com/20202410wyy/p/13966632.html