2021-2022-1学期 20212417《网络空间安全专业导论》第五周学习总结
目录
第十章 操作系统
10.1 操作系统的角色
(1)应用软件:帮助我们解决现实世界问题的程序。
(2)系统软件:管理计算机系统并与硬件进行交互的程序。
(3)操作系统:管理计算机资源并为系统交互提供界面的系统软件。
(4)一台计算机通常只有一个活动的操作系统,在系统运行中负责控制工作。而计算机可以具备两个或者更多个操作系统,用户在计算机开机时可以选择使用哪个操作系统。这种配置称为双引导或多引导系统。
10.1.1 内存、进程与CPU管理
(1)多道程序设计:同时在主存中驻留多个程序,由它们竞争CPU的技术。
(2)内存管理:了解主存中载有多少个程序以及它们的位置的动作。
(3)进程:程序执行过程中的动态表示法。
进程管理:了解活动进程的信息的动作。
(4)CPU调度:确定主存中的哪个进程可以访问CPU以便执行的动作。
*操作系统自身也是必须执行的程序,所以在内存中也要和其它系统软件及应用程序一起管理和维护OS进程。
执行OS的CPU就是执行其他程序的CPU,因此也要把OS进程排入竞争CPU的队列中。
10.1.2 批处理
(1)在交付程序时,用户需要为执行程序所需的系统软件或其他资源提供一套单独的指令。
程序和系统指令集合在一起,称为作业。
要把程序交付给操作员才能执行它
(2)为了更有效作业,操作员会把来自多个用户的作业组织成分批。
一个分批包含一组需要相同或相似资源的作业。
10.1.3 分时
(1)分时:多个交互用户同时共享CPU时间的系统。
多道程序设计法允许同时有多个活动进程,从而给了程序员直接与计算机系统交互且仍然共享其资源的能力。
(2)虚拟机:分时系统创建的每个用户都有专有机器的假象。
(3)主机:一个大型的多用户计算机,通常与早期的分时系统相关。
(4)哑终端:在早期的分时系统中用户用于访问主机的一套显示器的键盘。
(5)每个用户由主机上运行的一个登陆进程表示。当用户运行程序时,将创建另一个进程(由用户的登录进程生成)。
CPU时间由所有用户创建的所有进程共享。
10.1.4 其他OS要素
(1)操作系统还必须把计算机通常要连接到网络这个因素考虑在内。
目前,我们通过万维网进行网络通信。网络通信方式仍然是操作系统必须支持的。
操作系统要负责与各种各样的设备通信,且要支持实时系统(即必须严格控制收到信号和生成响应之间的延迟时间)。
(2)实时系统:应用程序的特性决定了响应时间至关重要的系统。
其实就是必须给用户提供最少响应时间的的系统。
(3)响应时间:收到信号和生成相应之间的延迟时间。
10.2 内存管理
(1)在多道程序设计环境中,操作系统必须采用下列技术:
- 跟踪一个程序驻留在内存的什么位置以及是如何驻留的。
- 把逻辑程序地址转换成实际的内存地址。
(2)知道程序被载入主存中位置的方法:使用两种地址——逻辑地址和物理地址。
逻辑地址(有时又叫做虚拟地址或相对地址):对一个存储值的引用,是相对引用它的程序的。指定了一个普通地址的值。
物理地址:主存储设备中的真实地址。
(3)编译程序时,对标识符(如变量名)的引用将被转化为逻辑地址。
当程序最终载入内存时,每个逻辑地址将被转换成对应的物理地址。
地址联编:逻辑地址和物理地址间的映射。
(4)把逻辑地址联编到物理地址的时间越迟,得到的灵活度越大。
逻辑地址使得程序可以在内存中移动,或者每次载入不同的位置。
只要知道程序存储的位置,就可以确定任何逻辑地址对应的物理地址。
10.2.1 单块内存管理
(1)单块内存管理:把应用程序载入一段连续的内存区域的的内存管理方法。
除了操作系统外,一次只能处理一个程序。
(2)在这种内存管理机制中,逻辑地址只是一个相对于程序起始位置的整数值。
即创建逻辑地址就像将程序载入地址是0的主存中一样。
——>要生成物理地址,只要用逻辑地址加上程序在物理主存中的起始位置即可。
(3)优点:实现和管理都很简单。
缺点:大大浪费了内存空间和CPU时间。
10.2.2 分区内存管理
(1)有两种划分内存的方法:
- 固定分区法:把内存分成特定数目和固定大小的分区以载入程序的内存管理方法。
OS有一个地址表,存放了每个分区的起始地址和长度。 - 动态分区法:根据容纳程序的需要对内存分区的内存管理方法。
无论是固定分区还是动态分区,任何时候内存都是被划分为一组分区,有些是空的,有些分配给了程序。
(2)当CPU开始运行一个程序时,OS将把程序的分区起始地址存储到基址寄存器。
同样,分区的长度将被存入界限寄存器。
- 基址寄存器:存放当前分区的起始地址的寄存器。
- 界限寄存器:存放当前分区的长度的寄存器。
当逻辑地址被引用时,首先它将与界限寄存器中的值进行比较,确保该引用属于分配给程序的内存空间。如果是这样,那么逻辑地址的值将被加到基址寄存器中的值上,以生成物理地址。
(3)三种常见的分区选择法:
- 最先分配:把第一个足够容纳程序的分区分配给它。
- 最佳分配:把最小的能够容纳程序的分区分配给它。
- 最差分配:把最大的能够容纳程序的分区分配给它。
在固定分配法中,最差分配没有意义,因为它将浪费较大的选区;最先匹配和最佳分配适用于固定分区。
但在动态分配法中,最差匹配常常是最有用的,因为它留下了最大可能的空白分区,可以容纳之后的其他程序。
当程序终止时,分区表将被更新,以反映这个分区现在是空白的,新程序可以使用它。在动态分区中,连续的空白分区将被合并成一个大的空白分区。
*一个分区必须要能够容纳整个程序。
在动态分区中,作业可以在内存中移动,以创建较大的空白分区。这个过程叫做压缩。
10.2.3 页式内存管理
(1)页式内存管理:把进程分为大小固定的页,载入内存是存储在帧中的内存管理方法。
页式内存管理需要跟踪分配的内存,还要解析地址,从而给操作系统增加了很多负担。但它也提供了很多好处。
(2)帧:大小固定的一部分主存,用于存放进程页。
页:大小固定的一部分进程,存储在内存帧中。
页映射表(PMT):操作系统用于记录页和帧之间的关系的表。
(3)一个进程的页可能是四处散落的、无序的,与其他进程的页混合在一起。
为了掌握进程页的分布,操作系统需要为内存中的每个进程维护一个独立的页映射表,把每个页映射到载入它的帧。
逻辑地址一般被表示为<页编号,偏移量>。
(4)逻辑地址除以页面大小得到的商是页编号,余数是偏移量。
要生成物理地址,首先需要查看PMT,找到页所在的帧的编号。然后用帧编号乘以帧大小,加上偏移量即可。
*有两种逻辑地址是无效的:
- 越过了进程的界限。
- 偏移量大于帧大小。
(5)分页的优点:不必再把进程存储在连续的内存空间中。这种分割进程的能力把为进程寻找一大块可用空间的问题转化成了寻找足够多的小块内存。
(6)请求分页:页式内存管理法的扩展,只有当页面被引用(请求)时才会被载入内存。
页面交换:把一个页面从二级存储设备载入内存,通常会使另一个页面从内存中删除。
(7)页式内存管理思想的一个重要扩展是请求分页思想,它利用了程序的所有部分不必同时处于内存中这一事实。
任何时刻CPU都只访问进程的一个界面,此时,进程的其他页面是否在内存中无关紧要。
在请求分页中,页面经过请求才会被载入内存。
也就是说,当引用一个页面时,首先要看它是否已经在内存中了,如果该页面在内存中,就完成访问,否则;要从二级存储设备把这个页面载入可用的帧,然后再完成访问。
(8)虚拟内存:由于整个程序不必同时处于内存而造成的程序大小没有限制的假象。
请求分页法带来了虚拟内存的思想。
进程大小始终有一个上限,请求分页法消除了这一限制。
但采用虚拟内存法,经常需要在主存和二级存储设备间进行页面交换。当一个程序等待页面交换时,另一个进程接管CPU的控制。
(9)系统颠簸:频繁的页面交换造成的低效处理。
10.3 进程管理
10.3.1 进程状态
(1)进程状态:在操作系统的管理下,进程历经的概念性阶段。
进程会历经几种状态:进入程序、准备执行、执行、等待资源、执行结束。
进程图中方框之间的箭头说明了一个进程如何以及为什么从一种状态转移到另一种状态。
(2)分析进程的每个状态会发生哪些事情:
- 创建阶段:将创建一个新进程。
- 准备就绪状态:进程没有任何执行障碍。即该状态下的进程并不是在等待某个事情的发生,也不是在等待从二级存储设备载入数据,而只是等待使用CPU的机会
- 运行状态:该状态下的进程是当前CPU执行的进程。它的指令将按照读取-执行周期被处理。
- 等待状态:该进程是当前在等待除CPU以外的资源的进程。
- 终止状态:该进程已经完成了它的执行,不再是活动进程。此时,操作系统不再需要维护有关这个进程的信息。
*可能同时有多个进程处于准备就绪或等待状态,但只有一个进程处于运行状态。
10.3.2 进程控制块
(1)进程控制块(PCB):操作系统管理进程信息使用的数据结构。
当进程从一个状态转移到另一个状态时,它对应的PCB也会从一个状态列表中转移到另一个状态列表。
新的PCB是在最初创建进程(新状态)的时候创建的,将一直保持到进程终止。
PCB存储了有关进程的各种信息,还存储了进程在其他所有CPU寄存器中的值。
*只有一个CPU,因此只有一套CPU寄存器。
(2)上下文切换:当一个进程移除CPU,另一个进程取代它时发生的寄存器信息交换。
PCB还要维护关于CPU调度的信息。
10.4 CPU调度
非抢先调度:当当前执行的进程自愿放弃了CPU时发生的CPU调度。
抢先调度:当操作系统决定照顾另一个进程而抢占当前执行进程的CPU资源时发生的CPU调度。
周转周期:从进程进入准备就绪状态到它最终完成之间的时间间隔,是评估CPU调度算法的标准。
10.4.1 先到先服务
先到先服务(FCFS)调度方法中,进程按照它们到达运行状态的顺序转移到CPU。
FCFS调度是非抢先的。
一旦进程获得了CPU的访问权,那么除非它强制请求转入等待状态,否则将一直占用CPU。
10.4.2 最短作业优先
最短作业优先(SJN)CPU调度算法将查看所有处于准备就绪状态的进程,并派发一个具有最短服务时间的。
SJN调度是非抢先的。
*本算法是基于未来信息的。
且本算法是可证明最佳的,即如果知道每个作业的服务时间,那么相对于其他算法来说,SJN算法能使所有作业生成最短的周转周期。
10.4.3 轮询法
轮询法将把处理时间平均分配给所有准备就绪的进程。
该算法建立单独的时间片(或时间量子),即在每个进程被抢占并返回准备就绪状态之前收到的时间量。
被抢占的进程最终会得到其他的CPU时间片。这个过程将持续到进程得到了完成所需的全部时间从而终止了为止。
*轮询算法是抢先的。
且该算法被认为是最公平的算法。
第十一章 文件系统与目录
11.1 文件系统
(1)文件:数据的有名集合,用于组织二级存储设备。
(2)文件系统:操作系统为它管理的文件提供的逻辑视图。
(3)目录:文件的有名分组
11.1.1 文本文件和二进制文件
(1)文本文件:包含字符的文件。
(2)二进制文件:包含特定格式的数据的文件,要求给位串一个特定的解释。
计算机上的所有数据最终都是以二进制数字存储的,“文本文件”“二进制文件”这些术语指的是格式化位串的形式。
(3)有些信息有字符表示法,通常使人更容易理解和修改。
有些信息类型则是通过定义特定的二进制格式或解释来表示数据以使其更有效且更符合逻辑。只有用专门解释这种类型的数据的程序才能够阅读或修改它。
11.1.2 文件类型
(1)文件类型:文件(如Java程序或Microsoft文档)中存放的关于类型的信息。
按照文件类型,操作系统可以按照对文件有效的方式操作它,这样就大大简化了用户的操作。
操作系统有一个能识别的文件类型的清单,并且会把每种类型关联到特定的应用程序。
(2)文件扩展名:文件名中说明文件类型的部分。
文件扩展名只说明了文件中存放的是什么。
11.1.3 文件操作
在操作系统协助下,可以对文件进行下列操作:
- 创建文件
- 删除文件
- 打开文件
- 关闭文件
- 从文件中读取数据
- 把数据写入文件
- 重定位文件中的当前文件指针
- 把数据附加到文件结尾
- 删减文件(删除它的内容)
- 重命名文件
- 复制文件
11.1.4 文件访问
两种主要的访问方法——顺序访问法和直接访问法。
(1)顺序文件访问:以线性方式访问文件中数据的方法。
(2)直接文件访问:通过指定编辑记录编号直接访问文件中数据的方法。
11.1.5 文件保护
在多用户系统中,文件保护的重要性居于首要地位。
确保合法的文件访问是操作系统的责任。
无论哪种情况,文件保护机制都决定了谁可以使用文件,以及为什么目的而使用文件。
11.2 目录
大多数操作系统都用文件表示目录。目录文件存放是关于目录中的其他文件的数据。
11.2.1 目录树
(1)目录树:展示文件系统的嵌套目录组织的结构。
(2)根目录:包含其他所有目录的最高层目录。
*任何一个目录下的所有文件的名字都必须是唯一的,但不同目录或子目录下的文件则可以是同名的。
这些文件存放的数据可能相同,也可能不同,我们所知道的只是它们的名字相同。
(3)工作目录:当前活动的子目录。
11.2.2 路径名
(1)路径:文件或子目录在文件系统中的位置的文本名称。
(2)绝对路径:从根目录开始,包括所有后继子目录的路径。
(3)相对路径:从当前工作目录开始的路径。
*使用相对路径时,有时需要返回上层目录,而使用绝对路径不会遇到这种情况。
11.3 磁盘调度
磁盘调度:决定先满足哪个磁盘I/O请求的操作。
11.3.1 先到先服务磁盘调度法
类似于CPU中的先到先服务调度算法。
虽然不是最有效的磁盘调度算法,但却是最容易实现的。
11.3.2 最短寻道时间优先磁盘调度法
将通过尽可能少的读写头移动满足所有未解决的请求。
这种算法可能会在满足一个请求后改变读写头的移动方向。
浙公网安备 33010602011771号