第十章 操作系统
1.操作系统的角色
应用软件(application software):帮助我们解决现实世界问题的程序。
系统软件(system software):管理计算机系统并与硬件进行交互的程序。
操作系统(operating system):管理计算机资源并为系统交互提供界面的系统软件。
一台计算机通常只有一个活动的操作系统,在系统运行中负责控制工作。计算机硬件是靠电线连接的,初始时载入永久存储器(ROM)中存储的一小组系统指令。这些指令将从二级存储器(通常是硬盘)中载入大部分系统软件。最终将载入操作系统软件的所有关键元素,执行启动程序,提供用户界面,系统就准备就绪了。这个过程就叫作引导计算机。术语“引导”来自于“靠自己的努力振作起来”这一思想,这也正是计算机开机后它所做的事情。
计算机可以具备两个或更多个操作系统,用户在计算机开机时可以选择使用哪个操作系统。这种配置称为双引导或多引导系统。不过,任何时候都只有一个操作系统在控制计算机。
内存、进程与CPU管理
多程序设计(multiprogramming):同时在贮存中驻留多个程序,由它们竞争CPU的技术。
内存(memory management):了解主存中载有多少个程序以及它们的位置的动作。
进程(process):程序执行过程中的动态表示法。
进程管理(process management):了解活动进程的信息工作。
CPU调度(CPU scheduling):确定主存中的哪个进程可以访问CPU以便执行的动作。
批处理
在交付程序时,用户需要为所执行程序所需的系统软件或其他资源提供一套单独的指令。程序和系统指令集合在一起,称为作业。
分时
分时(timesharing):多个交互用户共同享用CPU时间的系统。
虚拟机(virtual machine):分时系统创建的每个用户都有专有机器的假象。
主机(mainframe):一个大型的多用户计算机,通常与早期的分时系统相关。
哑终端(dumb terminal):在早期的分时系统中用户用于访问主机的一套显示器和键盘。
每个用户由主机上运行的一个登录进程表示。当用户运行程序时,将创建另一个进程(由用户的登陆进程生成)。CPU时间由所有用户创建的所有进程共享。每个进程将顺次得到一小段CPU时间。前提是CPU足够快,能够处理多个用户的请求并不使任何用户发现自己在等待。事实上,分时系统的用户有时会发现系统响应减慢了,这是由活动用户的数量和CPU的能力决定的。也就是说,当系统负荷过重时,每个用户的机器看来都变慢了。
其他OS要素
实时系统(real-time system):应有程序的特性决定了响应时间至关重要的系统。
响应时间(response time):收到信号和生成响应之间的延迟时间。
2.内存管理
操作系统必须采用下列技术:
- 跟踪一个程序驻留在内存的什么位置以及是如何驻留的
- 把逻辑程序地址转换成实际的内存地址
逻辑地址(logical address):对一个存储值的引用,是相当于引用它的程序的。
物理地址(physical address):主存储设备中的真实地址。
地址联编(address binding):逻辑地址和物理地址间的映射。
三种技术:
- 单块内存管理
- 分区内存管理
- 页式内存管理
单块内存管理
单块内存管理(single contiguous memory management):把应用程序载入一段连续的内存区域的内存管理方法。
在这种内存管理机制中,逻辑地址只是一个相对于程序起始位置的整数值。也就是说,创建逻辑地址就像将程序载入地址是0的主存中一样。因此,要生成物理地址,只要用逻辑地址加上程序在物理主存中的起始地址即可。
分区内存管理
固定分区法(fixed-partition technique):把内存分成特定数目的分区以载入程序的内存管理方法。
动态分区法(dynamic-partition technique):根据容纳程序的需要对内存分区的内存的管理方法。
基址寄存器(base register):存放当前分区的起始地址的寄存器。
界限寄存器(bounds register):存放当前分区的长度的寄存器。
三种常用的分区选择法:
- 最先匹配,即把第一个足够容纳程序的分区分配给它。
- 最佳匹配,即把最小的能够容纳程序的分区分配给它。
- 最差匹配,即把最大的能够容纳程序的分区分配给它。
页式内存管理
页式内存管理法(paged memory technique):把进程划分为大小固定的页,载入内存时存储在帧中的内存管理办法。
帧(frame):大小固定的一部分主存,用于存放进程页。
页(page):大小固定的一部分进程,存储在内存帧中。
页映射表(Page Map Table,PMT):操作系统用于记录页和帧之间的关系的表。
请求分页(demand paging):页式内存管理法的扩展,只有当页面被引用(请求)时才会被载入内存。
页面交换(page swap):把一个页面从二级存储设备载入内存,通常会使另一个页面从内存中删除。
虚拟内存(virtual memory):由于整个程序不必同时处于内存而造成的程序大小没有限制的假象。
系统颠簸(thrashing):频繁的页面交换造成的低效处理。
3.进程管理
进程状态
进程状态(process state):在操作系统的管理下,进程历经的概念性阶段。
下面分析在进程的每个状态会发生哪些事情:
- 在创建阶段,将创建一个新进程。例如,可能是由用户登陆到一个分时系统创建了一个登录过程,也可能是在用户提交程序后创建了一个应用进程,或者是操作系统为了完成某个特定的系统任务而创建了一个系统进程。
- 在准备就绪状态中,进程没有任何执行障碍。也就是说,准备就绪状态下的进程并不是在等待某个事件的发生,也不是在等待从二级存储设备载入数据,而只是使用CPU的机会。
- 运行状态下的进程是当前CPU执行的进程。它的指令将按照读取-执行周期被处理。
- 等待状态下的进程是当前在等待资源(除了CPU以外的资源)的进程。例如,一个处于等待状态的进程可能在等待从二级存储设备载入一个页面,也可能在等待另一个进程给它发送信号,以便继续执行。
- 终止状态下的进程已经完成了它的执行,不再是活动进程。此时,操作系统不再需要维护有关这个进程的信息。
进程控制块
进程控制块(process control block):操作系统管理进程信息使用的数据结构。
上下文切换(context switch):当一个进程移出CPU,另一个进程取代它时发生的寄存器信息交换。
4.CPU调度
非抢先调度(nonpreemptive scheduling):当当前执行的进程自愿放弃了CPU时发生的CPU调度。
抢先调度(preemptive scheduling):当操作系统决定照顾另一个进程而抢占当前执行进程的CPU资源时发生的调度。
周转周期(turnaround time):从进程进入准备就绪状态到它最终完成之间的时间间隔,是评估CPU调度算法的标准。
先到先服务
在先到先服务(FCFS)调度方法中,进程按照它们达到运行状态顺序转移到CPU。FCFS调度是非抢先的。一旦进程获得了CPU的访问权,那么除非它强制请求转入等待状态(如请求其他进程正在使用的设备),否则将一直占用CPU。
最短作业优先
最短作业优先(SJN)CPU调度算法将查看所有处于准备就绪状态的进程,并分派一个具有最短服务时间的。
轮询法
CPU的轮询法将把处理时间平均分配给所有准备就绪的进程。该算法建立单独的时间片(或时间量子),即在每个进程被抢占并返回准备就绪状态之前收到的时间量。被抢占的进程最终会得到其他的CPU时间片。这个过程将持续到进程得到了完成所需的全部时间从而终止了为止。
时间片(time slice):在CPU轮询算法中分配给每个进程的时间量。
小结
- 操作系统是管理计算机资源软件的一部分,是人类用户、应用软件和系统硬件设备之间的协调者。
- 多道程序设计技术允许在内存中同时驻留多个程序,让它们竞争CPU时间。
- 批处理把使用相同或相似的作业组织成批。
- 操作系统必须管理内存 ,以控制和监管把进程载入主存中的什么位置。
- 操作系统管理进程的生命状态,即程序在执行过程中要经历的阶段。
- CPU调度算法确定了下一个使用CPU的进程。
第十一章 文件系统和目录
1.文件系统
文件(file):数据的有名集合,用于组织二级存储设备。
文件系统(file system):操作系统为它管理的文件提供逻辑视图。
目录(directory):文件的有名分组。
文本文件和二进制文件
文本文件(text file):包含了字符的文件。
二进制文件(binary file):包含特定格式的数据的文件,要求给位串一个特定的解释。
文件类型
文件类型(file type):文件(如Java程序或Microsoft文档)中存放的关于类型的信息。
文件扩展名(file extension):文件名中说明文件类型的部分。
文件操作
在操作系统协助下,可以对文件进行下列操作:
- 创建文件
- 删除文件
- 打开文件
- 关闭文件
- 从文件中读取数据
- 把数据写入文件
- 重定位文件中的当前文件指针
- 把数据附加到文件结尾
- 删减文件(删除它的内容)
- 重命名文件
- 复制文件
文件访问
顺序文件访问(sequential file access):以线性方式访问文件中的数据的方法。
直接文件访问(direct file access):通过指定逻辑记录编号直接访问文件中的数据的方法。
文件保护
在多用户系统中,文件保护的重要性居于首要地位。也就是说,除非是特许的,否则我们不想让一个用户访问另一个用户的文件。确保合法的文件访问是操作系统的责任。不同操作系统管理文件保护的方式不同。无论哪种情况,文件保护机制都决定了谁可以使用文件,以及为什么目的而使用文件。
2.目录
目录树
目录树(directory tree):展示文件系统的嵌套目录组织的结构。
跟目录(root directory):包含其他所有目录的最高层目录。
工作目录(working directory):当前活动的子目录。
路径名
路径(path):文件或子目录在文件系统中的位置的文本名称。
绝对路径(absolute path):从根目录开始,包括所有后继子目录的路径。
相对路径(relative path):从当前工作开始的路径。
3.磁盘调度
磁盘调度(disk scheduling):决定先满足哪个磁盘I/O请求的操作。
先到先服务磁盘调度法
最短寻道时间优先磁盘调度法
SCAN磁盘调度法
小结
- 文件系统定义了组织二进制存储设备的方式
- 用文件名的扩展名可以说明文件类型
- 对文件执行的操作包括创建文件、删除文件、打开文件和关闭文件。
- 磁盘调度算法决定了处理未解决的磁盘请求的顺序。