2020-2021第一学期20202411《计算机科学概论》第五周自习总结
自习内容:《计算机科学概论》第10章 操作系统 第11章 文件系统和目录
这两部分已经深入到了操作系统层并且允许用户通过编写与机器进行交互。相比之前的几章,这两章的内容我们是更加的熟悉。因为这里已经是用户能够直观感受到的层面了。
第10章 操作系统
操作系统是其他软件依附的基础,并且允许我们编写与机器进行交互的程序。
10.1 操作系统的角色
现代软件可以分为两类,即应用软件和系统软件。
应用软件(Application software):帮助我们解决现实世界问题的程序。
系统软件(System software):管理计算机系统并与硬件进行交互的程序。
操作系统(Operating system):管理计算机资源并为系统交互提供界面的系统软件。
一台计算机通常只有一个活动的操作系统,在系统运行中负责控制工作。具有两个或多个操作系统的配置称为双引导或多引导系统 。不过,任何时候都只有一个操作系统在控制计算机。以Mac为例吧,登录时会要求选择系统,而两个系统之间又互不干扰。又如虚拟机,在操作虚拟机时,指令默认输入到虚拟机而非物理机,两个的转换又需要过程。
操作系统的各种角色通常都围绕着一个中心思想“良好的共享”。
多道程序设计(multi programming):同时在主存中驻留多个程序,由它们竞争CPU的技术。
内存管理(memory management):了解主存中载有多少个程序以及它们的位置的动作。
进程(process):程序执行过程中的动态表示法。
进程管理(process management):了解活动进程中的信息的动作。
CPU调度(CPU scheduling):确定主存中的哪个进程可以访问CPU以便执行的动作。
内存管理、进程管理和CPU调度是本章的三个重点。操作系统自身也是必须执行的程序,所以在内存中也要和其它系统程序软件及应用程序一起管理和维护OS进程,执行OS的CPU就是执行其他程序的CPU。因此也要把OS进程排进竞争CPU的队列中。
分时(timesharing):多个交互用户同时共享CPU时间的系统。
虚拟机(virtual machine):分时系统创建的每个用户都有专有机器的假象。
主机(mainframe):一个大型的多用户计算机,通常与早期的分时系统相关。
哑终端(dumb terminal):在早期的分时系统中用户用于访问主机的一套显示器和键盘。
每个用户由主机上运行的一个登录系统进程表示。
微型机第一次采用单个的集成芯片作为CPU,成了可以放在书桌上的计算机,从而引发了个人计算机(PC)的想法。
实时系统(real-time system):应用程序的特性决定了响应时间至关重要的系统。
响应时间(response time):收到信号和生成响应之间的延迟时间。
10.2 内存管理
操作系统必须采用技术来执行以下任务:
跟踪一个程序驻留在内存的什么位置以及是如何驻留的
把逻辑程序地址转换成实际的内存地址
逻辑地址(logical address):对一个存储值的引用,是相对于引用它的程序的。
物理地址(physical address):主存储设备中的真实地址。
地址联编(address binding):逻辑地址和物理地址间的映射。
单块内存管理(single contiguous memory management):把应用程序载入一段连续的内存区域的内存管理方法。
单块内存管理法的优点在于实现和管理都很简单,但却大大浪费了内存空间和CPU时间。
固定分区法(fixed-partition technique):把内存分成特定数目的分区以载入程序的内存管理方法。
动态分区法(dynamic-partition technique):根据容纳程序的需要对内存分区的内存管理方法。
基址寄存器(base register):存放当前分区的起始地址的寄存器。
界限寄存器(bounds register):存放当前分区的长度的寄存器。
有三种常用分区选择法:
最先匹配(first fit):把第一个足够存放程序的分区分配给它。
最佳匹配(best fit):把最小的能够容纳程序的分区分配给它。
最差匹配(worst fit):把最大的能够容纳程序的分区分配给它。
在动态分区中作业可以在内存中移动,以创建较大的空白分区。这个过程叫作压缩(compaction)。难怪在创建虚拟机时一般选择动态分配。
页式内存管理法(paged memory technique):把进程划分为大小固定的页,载入内存时存储在帧中的内存管理方法。
帧(frame):大小固定的一部分主存,用于存放进程页。
页(page):大小固定的一部分进程,存储在内存帧中。
页映射表(Page Map Table,PMT):操作系统用于记录页和帧之间关系的表。
分页的优点在于不必再把进程存储在连续的内存空间中。
请求分页(demand paging):页式内存管理法的扩展,只有当页面被引用(请求)时才会被载入内存。
页面交换(page swap):把一个页面从二级存储设备载入内存,通常会使另一个页面从内存中删除。
请求分页带来了虚拟内存的思想,即对程序大小没有任何限制的假象。
虚拟内存(virtual memory):由于整个程序不必同时处于内存而造成的程序大小没有限制的假象。
系统颠簸(thrashing):连续的页面交换造成的低效处理。
10.3 进程管理
进程状态(process state):在操作系统的管理下,进程历经的概念性阶段。
在创建阶段,将创建一个新进程。
在准备就绪状态中,进程没有任何执行障碍,只是等待使用CPU的机会。
运行状态下的进程是当前CPU执行的进程。
等待状态下是当前在等待资源(除CPU以外的资源)的进程。
终止状态下的进程已经完成了它的执行。
可能有多个进程处于准备就绪或等待状态,但只有一个进程处于运行状态。
进程控制块(Process Control Block,PCB):操作系统管理进程信息使用的数据结构。
上下文切换(context switch):当一个进程移出CPU,另一个进程取代它时发生的寄存器信息交换。
10.4 CPU调度
CPU调度就是确定把哪个处于准备就绪状态的进程移入运行状态。
非抢先调度(nonpreemptive scheduling):当当前执行的进程自愿放弃了CPU时发生的CPU调度。
抢先调度(preemptive scheduling):当操作系统决定照顾另一个进程而抢占当前执行进程的CPU资源时发生的CPU调度。
周转周期(turnaround time):从进程进入准备就绪状态到它最终完成之间的时间间隔,是评估CPU调度算法的标准。
先到先服务(FCFS)调度方法
最短作业优先(SJN)调度方法
轮询法
时间片(time slice):在CPU轮询算法中分配给每个进程的时间量。
第11章 文件系统和目录
11.1 文件系统
文件(file):数据的有名集合,用于组织二级存储设备。
文件系统(file system):操作系统为它管理的文件提供的逻辑视图。
目录(directory):文件的有名分组。
可以把文件看作位序列、字节序列、行序列或记录序列。
文本文件(text file):包含字符的文件。
二进制文件(binary file):包含特定格式的数据的文件,要求给位串一个特定的解释。
文件类型(file type ):文件中存放的关于类型的信息。
文件扩展名(file extension):文件名中说明文件类型的部分。
改变文件扩展名不会改变文件中的数据或它的内部格式。
顺序文件访问(sequential file access):以线性方式访问文件中的数据的方法。
直接文件访问(direct file access):通过指定逻辑记录编号直接访问文件中的数据的方法。
在多用户系统中,文件保护的重要性居于首要地位。
11.2 目录
目录树(directory tree):展示文件系统的嵌套目录组织的结构。
根目录(root directory):包含其他所有目录的最高层目录。
工作目录(working directory):当前活动的子目录。
路径(path):文件或子目录在文件系统中的位置的文本名称。
绝对路径(absolute path):从根目录开始,包括所有后继子目录的路径。
相对路径(relative path):从当前工作目录开始的路径。
11.3 磁盘调度
最重要的二级存储设备是磁盘驱动器。把数据传入或传出二级存储设备是一般的计算机系统的首要瓶颈。
磁盘调度(disk scheduling):决定先满足哪个磁盘I/O请求的操作。
先到先服务磁盘调度法
最短寻道时间优先磁盘调度法
SCAN磁盘调度法
LOOK磁盘调度法(变体)
Q&A见小组讨论