2019-2020-1学期 20202409 《网络空间安全专业导论》第五周自学总结
第十章、操作系统
·操作系统
·内存和进程管理
·分时操作创建计算机假象
·逻辑地址,物理地址以及它们之间的关系
·内存管理的方法以及比较
·固定分区与动态分区
·分区选择算法
·请求分页,以及他是如何创建虚拟机假象的
·进程生存周期以及各阶段的过度
·CPU调度算法
关键术语
地址联编(address bimding) 页面交换(page swap) 应用软件(application software) 页式内存管理法(paged memory technique) 基址寄存器(base register) 物理地址(physical address) 界限寄存器(bounds register) 抢先调度(preemptive sheduling) 上下文切换(context switch) 进程(process) CPU调度(CPU sheduling) 进程控制块(Process Control Block) 请求分页(demand paging) 进程管理(process management) 哑终端(dum terminal) 进程状态(process state) 动态分区法(dynamic-partition technique) 实时系统(real-time system) 固定分区法(fixed-partition technique) 响应时间(response time) 帧(frame) 单块内存管理(single contiguous memory management) 逻辑地址(logical address) 系统软件(system software) 主机(mainframe) 系统颠簸(thrashing) 内存管理(memory management) 时间片(time slice) 多道程序设计(multiprog ramming) 分时(timrsharing) 非抢先调度(nonpreemptive sheduling) 周转周期(turnaround time) 操作系统(operating system) 虚拟机(virtual machine) 页(page) 虚拟机(virtual machine) 页映射表(page Map Table, PMT) 虚拟内存(virtual memory)
10·1 操作系统的角色:
应用软件(Application software):帮助我们解决现实世界问题的程序。
系统软件(System software):管理计算机系统并与硬件进行交互的程序。在基础层上负责管理计算机系统,为创建和运行应用软件提供了工具和环境,通常直接与硬件进行交互,能够提供比硬件自身更多的功能。
操作系统(Operating system):管理计算机资源并为系统交互提供界面的系统软件。是系统软件的核心,负责管理计算机资源并提供人机交互的界面,允许一个应用程序与其他系统资源进行交互。
内存、进程与CPU管理:
多道程序设计(multiprogramming):同时在贮存中驻留多个程序,由它们竞争CPU的技术。
内存管理(memory management):了解主存中载有多少个程序以及它们的位置动作。
进程(process):程序执行过程中的动态表示法。
进程管理(process management):了解活动进程的信息的动作。
CPU调度(CPU sheduling):确定主存中那个进程可以访问CPU以便执行的动作。
批处理:
在交付程序时用户需要为执行程序所需的系统软件或其他资源提供一套单独的指令程序和系统指令结合在一起,称为作业。一个分批包含一组需要相似或相同资源的作业。在多道程序设计的环境中执行分批系统,操作员把一个分批中的多个作业在如内存,这些作业将竞争CPU和其他共享资源的使用权。现在术语“批”表示的是一个系统,在这个系统中,程序和系统资源的写作与执行,不须用户和程序之间的交互。
分时:
分时(timesharing):多个交互用户同时共享CPU的时间系统。
虚拟机(virtual machine):分时系统创建的每个用户都有专有机器的假象。
主机(mainframe):一个大型的多用户计算机,通常与早期的分时系统相关。
哑终端(dumb terminal):在早期的分时系统中用户用于访问主机的一套显示器和键盘。
回答问题三:分时系统允许多个用户与计算机进行交互,营造出了每个用户独有这台计算机资源的假象,每个用户都拥有一台虚拟机,可以使用它的所有资源,但实际上,这些资源是哟多用户共享的。
操作系统的其他要素:
实时系统(real-time system):应用程序的特性决定了响应式时间的至关重要的系统。
响应时间(response time):收到信号和生成相应之间的延迟时间。
10·2 内存管理
主存中的每个字节或字有一个对应的地址,这个地址是一个整数,唯一标志了内存中的一个特定的部分。
操作系统必须采用技术来执行以下任务:
1、跟踪一个程序驻留在内存的什么位置以及是如何驻留的。
2、把逻辑地址转化为实际的内存地址。
逻辑地址(logical address):对一个存储值的引用,是相对于引用它的程序的。
物理地址(physical address):主储存设备中的真实地址。
地址联编(address binding):逻辑地址和物理地址之间的映射。把逻辑地址联编到物理地址的时间越迟,所得到的灵活度越大。因为逻辑地址可以允许程序在内存中运动,或每次载入不同的位置。
单块内存管理:
单块内存管理(single contiguous management):把应用程序载入一段连续的内存区域的内存管理办法。在这种内存管理机制中,要生成物理地址,只要用逻辑地址加上程序在物理主存中的起始地址即可。
分区内存管理:
固定分区法(fixed-partition technique):把内存分成特定数目的分区,已载入程序的捏邨管理方法。
动态分区法(dynamic-partition technique):根据容纳程序的需要对内存分区的内存管理方法。
基址寄存器(base register):存放当前分区起始地址的寄存器。
界限寄存器(bounds register):存放当前分区长度的寄存器。
固定分区与动态分区的地址联编基本上是一样的,于单块内存管理法一样,逻辑地址是相对于0起始点的整数。OS把程序分区起始地址存储到基址寄存器中。分区的长度将被存入界限寄存器。当逻辑地址被引用时,首先它将与界限寄存器中的值进行比较,确保该引用属于分配给它的内存空间。如果是这样,那么逻辑地址的值将被加到基址寄存器的值上,生成物理地址。
对于一个新程序,有下述分区方法:
- 最先分配(first fit),即把第一个能够足够容纳它的分区分配给他。
- 最佳分配(best fit),即把最小的能够容纳它的区域分配给它。
- 最差分配(worst fit),即把最大能够容纳它的分区分配给它。
在固定分区中,最差分配没有意义,但在动态分区中,最差分配往往是最有用的,因为它留下了最大可能的空白分区,可以容纳之后的其他程序。当程序终止时,分区表将被更新,以反映现在这个分区时空白的,新程序可以使用它了。动态分区中,连续的空白区域将被合并为一个大的空白区域。在动态分区中,作业可以在内存中移动以创建较大的空白部分,这个过程叫压缩(compaction)。
拓展:比特币是2009年引进的点对点支付系统,也可泛泛的被称为“电子货币”或“虚拟货币”。
页式内存管理:在该管理法中,主存被分为大小固定的储存块,叫做帧,进程被划分为页。在程序执行时,今生的页将被分散在主存中未被使用的帧中,因此,一个进程的页可以是四处散落的,无序的,与其他进程的页混合在一起。为了掌握进程页的分布,OS需要为内存中每一个页维护一个独立的页映射表,把每个页映射到它的帧,帧和页都是从零开始编号,可以简化地址的计算。
页式内存管理法(paged memory technique):把进程划分为大小固定的页,载入内存式储存在帧中的内存管理方法。
帧(frame):大小固定的一部分主存,用于存放进程页。
页(page):大小固定的一部分进程,储存在内存帧中。
页映射表(Page Map Table, PMT):操作系统用于记录页和帧之间关系的表。
页式内存管理系统中的逻辑地址与分区系统中的一样,都是从一个相对于程序起始点的整数值开始。但这个地址被转换为两个值———页编号和偏移量。用页面大小除以逻辑地址得到的商是页编号,余数是偏移量。逻辑地址通常被表示为<页编号,偏移量>,生成物理地址,转化为帧即可。
请求分页(demand paging):页式内存管理法的拓展,只有当页面被引用(请求)时才会被载入内存。
页面交换(page swap):把一个页面从二级存储设备中载入内存,通常会使另一个页面从内存中删除。
虚拟内存(virtual memory):由于整个程序不必同时处于内存而造成的内存大小没有限制的假象。
系统颠簸(thrashing):连续的页面交换造成的低效处理。
10·3 进程管理
进程状态(process state):在操作系统的管理下,进程历经的概念性阶段,如图:
进程控制块:
进程控制块(Process Control Block, PCB):操作系统管理进程信息所用的数据结构。
上下文切换(context switch):当一个进程移出CPU,另一个进程取代它时发生的寄存器信息交换。
10·4 CPU调度
非抢先调度(nonpreemptive scheduling):当当前执行的进程自愿放弃了CPU时发生的CPU调度。
抢先调度(preemptive scheduling):当操作系统决定照顾另一个进程而抢占当前执行进程的CPU资源时发生的CPU调度。
通常用特殊的标准来评估调度算法。
周转周期(turnaround time):从进程进入准备就绪阶段到它最终完成时的时间间隔,是评估CPUd调度算法的标准。
先到先服务(FCFS)调度方法
最短作业优先(SJN)调度算法
轮询法:把处理时间平均分配给所有准备就绪的进程。建立单独的时间片。
时间片(time slice):在CPU轮询算法中分配给每个进程的时间量。
第11章、文件系统和目录
操作系统要管理的另一个关键资源是二级存储设备,通常是磁盘。在日常的计算机中磁盘上的文件和目录的组织扮演着关键的角色。文件系统就像摆在桌上的卡片文件,提供了组织良好的数据访问方式。目录结构把文件组织在类别和子类别中。
·文件、文件系统和目录
·文本文件和二进制文件
·文件扩展名、文件类型
·解释文件类型如何能改进对文件的使用
·如何定义一个文件
·顺序文件访问、直接文件访问
·文件保护相关的问题
·目录树
·绝对路径、相对路径
·磁盘调度算法
关键术语:绝对路径(absolute path) 文件系统(file system) 二进制文件(binary file) 文件类型(file type) 直接文件访问(direct file access) 路径(path) 目录(directory) 相对路径(relative path) 目录树(directory tree) 根目录(root directory) 磁盘调度(disk scheduling) 顺序文件访问(sequential file access) 文件(file) 文本文件(text file) 文件扩展名(file extension) 工作目录(working directory)
11·1 文件系统
主存是存放活动的程序和正在使用的数据的地方。主存具有易失性,关掉电源后存储在主存中的信息就会丢失。二级存储设备则具有永久性,我们用二级存储设备来永久存储数据。磁盘上的数据都存储在文件中,这是电子媒介上组织数据的机制。所谓文件就是相关数据的有名集合。从用户的角度来看,文件是可以写入二级存储设备的最小数据量。用文件组织所有信息呈现出一个统一的数据存储视图。文件系统是操作系统提供的一个逻辑视图,使用户能够按照文件集合的方式管理数据,通常用目录来组织文件。
文件(file):数据的有名集合,用于组织二级存储设备。
文件系统(file system):操作系统为它管理的文件提供的逻辑视图。
目录(directory):文件的有名分组。
一般来说,文件存放的是某种形式的程序或一种类型或另一种类型的数据。有些文件的格式很严格而有些文件的格式则很灵活。可以把文件看作位序列、字节序列、行序列或记录序列。文件的创建者决定了文件的组织形式,每个用户都必须理解这种组织方式。
文本文件和二进制文件:
所有文件都可以被归为文本文件或二进制文件,在文本文件中,数据字节是ASCII或Unicode字符集中的字符。二进制要求基于文件中的数据给位串一个特定的解释。
文本文件(text file):包含字符的文件。
二进制文件(binary file):包含特定格式的数据的文件,要求给位串一个特定的解释。
文件类型:txt 文本文件
mp3, au, wav 音频文件
gif, tiff, jpg 图像文件
doc, wp3 文字处理文件
java, c, cpp 程序源文件
文件类型(file type):文件(如Java程序或Microsoft文档)中存放的关于类型的信息。
文件扩展名(file extension):文件名中说明文件类型的部分。
操作系统具有一个能识别文件类型的清单,而且会把每种类型关联到特定的应用程序上,在具有图形用户界面(GUI)的操作系统中,每种文件类型还有一个图标,当用户双击这个图标后,操作系统会启动与这种类型的文件相关的程序以载入该文件。你可以在操作系统中注册一个关联文件扩展名,并把它关联到相应程序,此后每当打开据有该文件扩展名的文件,操作系统都会运行这个编辑器。如何把文件扩展名与应用程序关联起来是由采用的操作系统决定的。你可以修改文件扩展名与应用程序的关联性,你也可以改变文件扩展名与默认应用程序的关联性。改变文件扩展名并不能改变文件的内部格式或数据。
文件操作:
- 关闭文件
- 从文件中读取数据:执行操作前操作系统会打开该文件,并维护当前打开文件的一个小表,以避免每执行一次操作都要在大的文件系统中检索该文件。一个打开的文件都有一个当前文件指针,说明下一次读写操作将要发生在什么位置。
- 把数据写入文件:操作系统为文件维护了一个表以说明那些内存块是空的,还为每个目录维护了一个表,以记录下该目录下的文件信息。
- 重定位文件中当前文件指针
- 把数据附加到文件结尾
- 删减文件:操作系统要声明该内存块为空,同时删除该文件的目录条目。删减文件的内容,但不删减它的管理条目。
- 重命名文件
- 复制文件
文件访问:
文件的访问类型是在创建文件时确立的。
顺序文件访问:(sequential file access)以线性方式访问文件中数据的方式。
直接文件访问(direct file access):通过指定逻辑记录编号直接访问文件中数据的方法。
文件保护:
确保合法的文件访问是操作系统的责任。
11·2 目录
关于目录管理的另一个重要的问题是如何反应目录中文件的关系 。
目录树:
目录树(directory tree):展示文件中嵌套目录组织的结构。
根目录(root directory):包含其他所有目录的最高层目录。
个人计算机通常使用文件夹来表示目录结构,这样构成了包容思想。任何一个目录下的所有文件名都必须是唯一的,但不同目录或子目录下的文件名则可以重复,无论何时,你都可以认为自己在文件系统中的一个特定位置工作,这个子目录叫当前工作目录。
工作目录(working directory):当前活动的子目录。
路径名·:
大多数操作系统提供非图形化的界面,因此必须用文本说明文件的位置。
路径(path):文件或子目录在文件系统中的位置的文本名称。
绝对路径(absolute path):从根目录开始,包括所有后续子目录的路径。
相对路径(relative path):从当前工作目录开始的路径。
11·3 磁盘调度
二级存储设备是一般计算机系统中最慢的部分,所以访问磁盘驱动器上的数据的方法对计算机来说至关重要
磁盘调度(disk sheduling):决定先满足那个磁盘存储请求的操作。
寻道时间是读写头到达指定柱面所花费的时间。等待时间是盘片旋转到正确位置以便能够读写数据的所花费的时间。在这两个事件中,寻道时间的要求更高,因此他是磁盘调度算法的重点。无论何时,磁盘驱动器可能都有一套必须要满足的请求。
先到先服务的磁盘调度算法:
最短寻道时间优先磁盘调度算法:
通常会比FCFS方法有所改进,不过会带来早期请求饿死的窘境。
SCAN磁盘调度法:这种机制下对新的请求没有任何特殊的处理,处理先后顺序是由读写头当前的位置和它的移动方向决定的。这种算法的变体能通过各种方式提高它的性能。
环形SCAN算法把磁盘看作是环而不是盘,当读写头到达一端后直接返回另一端,之间1不在处理任何请求。
Look磁盘调度算法:最小化轴心到盘边的运动极限,读写头只移动到请求最外面或最里面的柱面,不再移动到盘片边缘或轴心,在移动到下一个请求的柱面之前,会检查未处理的请求的列表,以判断当前的移动方向是否正确。