第10章 操作系统
10.1 操作系统的角色
应用软件:是为了满足特定需要——解决现实世界问题——而编写的。
系统软件:负责在基础层上管理计算机系统,它为创建和运行应用软件提供了工具和环境。系统软件通常直接与硬件交互,提供功能比硬件自身提供的更多。
操作系统(英语:Operating System,简称OS):管理计算机资源并为系统交互提供界面的系统软件,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
10.1.1内存、进程与CPU管理
多道程序设计:同时在主存中驻留多个程序,由它们竞争CPU的技术。
内存管理:了解主存中载有多少个程序以及它们的位置的动作。
进程:程序执行过程中的动态表示法。
进程管理:了解活动进程的信息的动作。
CPU调度:确定主存中的哪个进程可以访问CPU以便执行的动作。
10.1.2 批处理
10.1.3分时
分时:多个交互用户同时共享CPU时间的系统。
虚拟机:分时系统创建的每个用户都有专用机器的假象。
主机:一个大型的多用户计算机,通常与早期的分时系统有关。
哑终端:在早期的分时系统中用户用于访问主机的一套显示器和键盘。
10.1.4其他OS元素
实时系统:应用程序的特性决定了响应时间至关重要的系统,必须给用户提供最少响应时间的系统。
响应时间:收到信号和生成响应之间的延迟时间。
10.2 内存管理
逻辑地址:对一个存储值的引用,是相对于引用它的程序的。
物理地址:主存储设备中的真实地址。
地址联编:逻辑地址和物理地址间的映射。
10.2.1 单块内存管理
一次只能处理一个程序,把应用程序载入一段连续的内存区域的内存管理方法。
物理主存地址=逻辑地址(相对地址)+载入程序的起始地址
10.2.2 分区内存管理
固定分区法:把内存分成特定数目的分区以载入程序的内存管理方法。
动态分区法:根据容纳程序的需要对内存分区的内存管理方法。
基址寄存器:存放当前分区的起始地址的寄存器。
界限寄存器:存放当前分区的长度的寄存器。
三种常用的分区选择法:
最先匹配:即把第一个足够容纳程序的分区分配给它。
最佳匹配:即把最小的能够容纳程序的分区分配给它。
最差匹配:即把最大的能够容纳程序的分区分配给它。
压缩:作业在内存中移动,以创建较大的空白分区。
10.2.3 页式内存管理
页式内存管理:把进程划分为大小固定的页,载入内存时存储在帧中的内存管理方法。
帧:大小固定的一部分主存,用于存放进程页。
页:大小固定的一部分进程,存储在内存帧中。
页映射表:操作系统用于记录页和帧之间的关系的表。
页式内存管理思想的一个重要扩展就是请求分页思想,它利用了程序的所有部分不必同时处在内存中这一事实。任何时刻CPU都只访问进程的一个页面。在请求分页中,页面经过请求才会被载入内存。如果一个页面没有在内存中,就要从二级存储设备把这个页面载入可用的帧,再完成访问。从二级存储设备载入页面通常会把其他页面写回二级存储设备,这种行为叫做页面交换。
请求分页法带来了虚拟内存思想,消灭了进程大小始终有一个上限的限制。不过虚拟内存需要很多开销,经常需要在主存和二级存储设备间进行页面交换,当一个程序等待页面交换时,另一个进程接管CPU的控制,这种开销是可以接受的。
页面交换过多叫做系统颠簸,会严重降低系统的性能。
10.3 进程管理
10.3.1 进程状态
在操作系统的管理下,进程历经的概念性阶段。
10.3.2 进程控制块
英文简称PCB,操作系统管理进程信息使用的数据结构。
上下文切换:当一个进程移出CPU,另一个进程取代它时发生的寄存器信息交换。
10.4 CPU调度
首先重新回顾一下CPU的概念
中央处理器(CPU,英语:Central Processing Unit / Processor),是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。电脑中所有操作都由CPU负责读取指令,对指令译码并执行指令的核心部件。
程序是由指令构成的序列,执行程序就是按指令序列逐条执行指令。一旦把程序装入主存中,就可以由CPU自动地完成从主存取指令和执行指令的任务。
非抢先调度:当当前执行的进程自愿放弃了CPU时发生的CPU调度。
抢先调度:当操作系统决定照顾另一个进程而抢占当前执行进程的CPU资源时发生的CPU调度。
周转周期:从进程进入准备就绪状态到它最终完成之间的时间间隔,是评估CPU调度算法的标准。
接下来介绍三种从准备就绪状态首选进入哪个进程进入运行状态的方法。
10.4.1 先到先服务(FCFS)
此调度是非抢先的,进程按照它们到达运行状态的顺序转移到CPU。
10.4.2 最短作业优先(SJN)
SJND这种CPU调度算法将查看所有处于准备就绪状态的进程,并分派一个具有最短服务时间的,它也是非抢先算法。
10.4.3 轮询法
CPU的轮询法将把处理时间平均分配给所有准备就绪的进程,该算法建立单独的时间片。
时间片:在CPU轮询算法中分配给每个进程的时间量。
第11章 文件系统和目录
11.1文件系统
文件:数据的有名集合,用于组织二级存储设备。
文件系统:操作系统为它管理的文件提供的逻辑视图。
目录:文件的有名分组。
11.1.1 文本文件和二进制文件
文本文件:包含字符的文件。
二进制文件:包含特定格式的数据的文件,要求给位串一个特定的解释。
11.1.2 文件类型
文件类型(file type):文件中存放的关于类型的信息。
文件扩展名(file extension):文件名中说明文件类型的部分。
扩展名 文件类型
txt 文本文件
mp3 au wav 音频文件
gif tiff jpg 图像文件
doc wp3 文字处理文件
java c cpp 程序源文件
11.1.3 文件操作
从文件中读取数据 把数据写入文件 重命名文件等
11.1.4 文件访问
顺序文件访问:以线性方式访问文件中的数据的方法。
直接文件访问:通过制定逻辑记录编号直接访问文件中的数据的方法。
11.1.5 文件保护
11.2 目录
11.2.1 目录树
目录树:展示文件系统的嵌套目录组织的结构。
根目录:包含其他所有目录的最高层目录。
工作目录:当前活动的子目录。
11.2.2 路径名
路径:文件或子目录在文件系统中的位置的文本名称。
绝对路径:从根目录开始,包括所有后继子目录的路径。
相对路径:从当前工作目录开始的路径。
11.3 磁盘调度
决定先满足哪个磁盘I/O请求的操作。
11.3.1 先到先服务磁盘调度法
FCFS算法按照请求到达的顺序处理它们,并不考虑读写头的当前位置。
11.3.2 最短寻道时间优先磁盘调度法
通过尽可能少的读写头移动满足所有未解决的请求。
11.3.3 SCAN磁盘调度法
读写头向轴心移动,再向盘片边缘移动。
不可能出现饿死现象,因为每个柱面都会被依次处理到。
最后用脑图总结一下学习成果