操作系统是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的系统软件(或 程序集合),是用户与计算机之间的接口。
操作系统的基本特征是:并发、共享和异步性。
1)含义:OS 是一组系统软件,它是软硬件资源的控制中心,它以尽量合理有效的方法组织多个用户共享计算机的各种资源。
2)功能:管理计算机的软硬件资源(包括:处理机管理,作业管理,存储管理,设备管理,文件管理)、提高资源的利用率、方便用户。
1) OS 是一个系统软件,是控制和管理计算机系统硬件和软件资源,有效、合理地组织计算机工作流程以及方便用户使用计算机系统的程序集合。
2)功能:管理计算机的软硬件资源、提高资源的利用率、方便用户。
3)组成模块:
(1)处理机管理(或进程管理):对 CPU 的管理、调度和控制。
(2)存储管理:管理主存的分配、使用和释放。
(3)设备管理:管理设备的分配、使用、回收以及 I/O 控制。
(4)文件管理:管理外存上文件的组织、存取、共享和保护等。
(5)作业管理:对作业的管理及调度。(或用户接口,使用户方便的使用计算机)
(1)中断向量:存放中断处理程序入口地址的内存单元称为中断向量。
(2)多级中断:为了便于对同时产生的多个中断按优先次序来处理,所以在设计硬件时,对各种中断规定了高低不同的响应级别。优先权相同的放在一级。
(3)中断处理步骤:响应中断,保存现场;分析中断原因,进入中断处理程序;处理中断;恢复现场,退出中断。
多道程序设计技术就是在系统(内存)中同时存放并运行多道相互独立的程序(作业),主机以交替的方式同时处理多道程序。它是一种宏观上并行,微观上串行的运行方式。
分时系统通用性强,交互性强,及时响应性要求一般(通常数量级为秒);实时系统往往是专用的,系统与应用很难分离,常常紧密结合在一起,实时系统并不强调资源利用率,而更关心及时响应性 (通常数量级为毫秒或微秒)、可靠性等。
SPOOLing 是 Simultaneous Peripheral Operation On-Line (即并行的外部设备联机操作)的缩写,它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。 SPOOLing 技术是在通道技术和多道程序设计基础上产生的,它由主机和相应的通道共同承担作业的输入输出工作,利用磁盘作为后援存储器,实现外围设备同时联机操作。
SPOOLing 系统由专门负责 I/O 的常驻内存的进程以及输入井、输出井组成;它将独占设备改造为共享设备,实现了虚拟设备功能。
操作系统的用户界面是操作系统与使用者的接口,现代操作系统通常提供两种界面:命令界面(图形界面)和系统调用界面 DOS 操作系统和 UNIX 操作系统为命令界面的代表(目前 UNIX 也提供图形界面)。
图形界面的代表为微软的 Windows 操作系统,大多数普通用户使用这种界面。
系统调用是操作系统提供给编程人员的接口。在 UNIX 系统中,系统调用以 C 函数的形式出现的。它 只能在 C 程序中使用,不能作为命令在终端输入。
(1)程序基本状态
(2)中断码
(3)中断屏蔽位
(1)不同:
作业:是用户在一次上机活动中,要求计算机系统所做的一系列工作的集合。也称作任务(task)。
进程:是一个具有一定独立功能的程序关于某个数据集合的一次可以并发执行的运行活动。
作业是一个宏观的执行单位,它主要是从用户的角度来看待的。作业的运行状态是指把一个作业 调入内存,然后产生若干个进程可以去竞争 CPU。
进程是微观的执行单位,它主要从系统的角度来看待的,它是抢占 CPU 和其他资源的基本单位。
进程的执行状态是指一个进程真正占用了 CPU。
(2)关系:一个作业调入内存以后,处于执行状态,则此作业对应在系统建立若干个进程。进程的所有状态对应作业的执行状态,通过这若干个进程的执行,来完成该作业。
进程是一个具有一定独立功能的程序关于某个数据集合的一次可以并发执行的运行活动。线程是进程内可以并行执行的单位 ,即处理机调度的基本单位。
它们的关系是:一个线程只能属于一个进程,而一个进程可以有多个线程;资源分配给进程,同一
进程的所有线程共享该进程的所有资源;处理机分给线程,即真正在处理机上运行的是线程;线程在运行过程中,需要协作同步,不同进程的线程间要利用消息通信的办法实现同步。
(1)完成任务;正在运行的进程完成任务,释放 CPU
(2)等待资源;等待资源或事件,放弃 CPU
(3)运行时刻;规定时间片已用完,时钟中断,让出 CPU
(4)发现标志;核心处理完中断或陷入事件后,发现“重新调度标志”被置上,执行进程调度。
(1)保存当前正在运行进程的现场;
(2)从就绪队列中挑选一个合适的进程(使用一定的调度算法),将其状态改为运行态,准备分配 CPU 给它;
(3)为选中的进程恢复现场,分配 CPU
(1)作业调度是宏观调度,它所选择的作业只是具备获得处理机的资格,但尚未占有处理机,不能立即在其上实际运行;而进程调度是微观调度,它动态地把处理机实际地分配给选中进程,使之活动;
(2)进程调度相当频繁,而作业调度的执行次数很少;
(3)有的系统可以不设作业调度,但进程调度必不可少。
系统把所有就绪进程按先入先出的原则排成一个队列,新来的进程加到就绪队列末尾。每当执行进程调度时,进程调度程序总是选出就绪队列的队首进程,让它在 CPU 中运行一个时间片的时间。当进程用完分配给它的时间片后,调度程序便停止该进程的运行,并把它放入就绪队列的末尾;然后,把CPU 分配给就绪队列的队首进程。
17、简述优先级调度算法的实现思想?
(1)从就绪队列中选出优先级最高的进程,把 CPU 分配给它;
(2)非抢占式优先级法是当前占用 CPU 的进程一直运行直到完成任务或阻塞才让出 CPU,调度优先级高的进程占用 CPU。
(3)抢占式优先级法是当前进程在运行时,一旦出现一个优先级更高的就绪进程,调度程序就停止当前进程的运行,强将 CPU 分给那个进程。
作业调度的主要功能是:
①记录系统中各个作业的情况;
②按照某种调度算法从后备作业队列中挑选作业;
③为选中的作业分配内存和外设等资源;
④为选中的作业建立相应的进程;
⑤作业结束后进行善后处理工作。
进程调度的主要功能是:
①保存当前运行进程的现场;
②从就绪队列中挑选一个合适进程;
③为选中的进程恢复现场。
(1)进程调用 sleep 程序
(2)进程终止
(3)进程从系统调用态返回用户态时,重新调度标志被置上
(4)核心处理完中断后,进程回到用户态,但存在比它更适宜运行的进程
过程如下:
(1)终端进程读命令
(2)分析用户键入的命令是否正确
(3)创建一个子进程
(4)等待子进程完成工作
(5)子进程运行
(6)子进程完成工作终止
(7)子进程唤醒父进程
(8)父进程运行,发出提示符。
同步:并发进程之间存在的相互制约和相互依赖的关系。
互斥:若干进程共享一资源时,任何时刻只允许一个进程使用。
页号、标志、主存块号 、磁盘上的位置
虚拟存储器是由操作系统提供的一个假想的特大存储器。 虚拟存储器的基本特征是:
(1)虚拟性。即不是物理上而是逻辑上扩充了内存容量;
(2)兑换性(部分装入)。即每个作业不是全部一次性地装入内存,而是只装入一部分,将当前不运行的程序、数据调至外存盘交换区;
(3)离散性,即不必占用连续的内存空间,而是“见缝插针”;
(4)多次性,即所需的全部程序和数据要分成多次调入内存。
虚拟存储器的容量主要受到指令中表示地址的字长和外存的容量的限制。
(1)管理内存空间;
(2)进行虚拟地址(或:逻辑地址)到物理地址的转换;
(3)实现内存的逻辑扩充;
(4)完成内存信息的共享和保护。
存储管理的主要功能是解决多道作业的主存空间的分配问题。主要包括:
(1)内存区域的分配和管理:设计内存的分配结构和调入策略,保证分配和回收。
(2)内存的扩充技术:使用虚拟存储或自动覆盖技术提供比实际内存更大的空间。
(3)内存的共享和保护技术。除了被允许共享的部分之外,作业之间不能产生干扰和破坏,须对内存中的数据实施保护。
(1)地址空间与存储空间
目标程序所在的空间称为地址空间,即程序员用来访问信息所用的一系列地址单元的集合;存储空间是指主存中一系列存储信息的物理单元的集合。
(2)逻辑地址与物理地址
答:在具有地址变换机构的计算机中,允许程序中编排的地址和信息实际存放在内存中的地址有所 不同。逻辑地址是指用户程序经编译后,每个目标模块以 0 为基地址进行的顺序编址。逻辑地址又称相对地址。物理地址是指内存中各物理存储单元的地址从统一的基地址进行的顺序编址。物理地址又称绝对地址,它是数据在内存中的实际存储地址。
(3)虚地址与实地址
答:虚地址同逻辑地址,实地址同物理地址。
(4)地址重定位
答:重定位是把逻辑地址转变为内存的物理地址的过程。根据重定位时机的不同,又分为静态重定位(装入内存时重定位)和动态重定位(程序执行时重定位)。
“抖动”是指内外存交换频繁使效率下降的现象(刚调出的页马上又要调入,所造成页面的频繁转换现象) 抖动现象与内存中并发的用户进程数以及系统分配给每个用户的物理块数有关.减少抖动的方法有: 采取局部置换策略、在 CPU 调度中引入工作集算法、挂起若干进程等。
1) 每一段在逻辑上是相对完整的一组信息,分段技术中共享信息是在段一级出现的。因此,任何共享的信息可以单独作一个段,同样段中所有内容就可以用相同的方式进行使用,从而规定相同的使用权限;
2) 而页是信息的物理单位,在一个页面中可能存在逻辑上互相独立的两组或更多组信息都各有不同的使用方式和存取权限。
因此,分段技术较分页技术易于实现程序或数据的共享。
请求页式管理的基本原理是将逻辑地址空间分成大小相同的页,将存储地址空间分块,页和块的大小相等,通过页表进行管理。页式系统的逻辑地址分为页号和页内位移量。页表包括页号和块号数据项,它们一一对应。根据逻辑空间的页号,查找页表对应项找到对应的块号,块号乘以块长,加上位移量就形成存储空间的物理地址。每个作业的逻辑地址空间是连续的,重定位到内存空间后就不一定连续了。
此外,页表中还包括特征位(指示该页面是否在内存中)、外存地址、修改位(该页的内容在内存中是否修改过)等。
页式存储管理在动态地址转换过程中需要确定某一页是否已经调入主存。若调入主存,则可直接将虚地址转换为实地址,如果该页未调入主存,则产生缺页中断,以装入所需的页。
页式存储管理将不常用的页面调出内存,使内存的利用率高;虚拟的容量大,用户不必担心内存不够;不要求作业连续存放,有效地解决了“碎片”问题。
在多道系统中,交换是指系统把内存中暂时不能运行的某部分作业写入外存交换区,腾出空间,把外存交换区中具备运行条件的指定作业调入内存。交换是以时间来换取空间,减少对换的信息量和时间是设计时要考虑的问题 。
由于 CPU 在某一时刻只能执行一条指令,所以一个作业不需要一开始就全装入内存,于是将作业的常驻部分装入内存,而让那些不会同时执行的部分共享同一块内存区,后调入共享区的内容覆盖前面调入的内容,这就是内存的覆盖技术。
两者的区别主要有:交换技术由操作系统自动完成,不需要用户参与,而覆盖技术需要专业的程序员给出作业各部分之间的覆盖结构,并清楚系统的存储结构;交换技术主要在不同作业之间进行,而覆盖技术主要在同一个作业内进行;另外覆盖技术主要在早期的操作系统中采用,而交换技术在现代操作系统中仍具有较强的生命力。
(1)分页是出于系统管理的需要,分段是出于用户应用的需要。一条指令或一个操作数可能会跨越两个页的分界处,而不会跨越两个段的分界处。
(2)页大小是系统固定的,而段大小则通常不固定。
(3)逻辑地址表示:分页是一维的,各个模块在链接时必须组织成同一个地址空间;分段是二维的, 各个模块在链接时可以每个段组织成一个地址空间。
(4)通常段比页大,因而段表比页表短,可以缩短查找时间,提高访问速度。
进行实际输入输出操作的硬件设施是物理设备. 操作系统中规定用户程序中不要直接使用设备的物理名称,而用一另外的名称代之来操作,这就是逻辑设备.
逻辑设备是物理设备属性的表示,它并不特指某个具体的物理设备,而是对应于一批设备,具体的对应则在操作系统启动初始化时确定,或在运行过程中根据设备的使用情况由系统或用户再次确定.
设备控制器应具有以下功能:
(1)接收和识别来自 CPU 的各种命令。
(2)实现 CPU 与设备控制器、设备控制器与设备之间的数据交换。
(3)记录设备的状态供 CPU 查询。
(4)识别控制器的每个设备的地址。
设备无关性指用户使用设备时仅与逻辑名设备有关,而与具体的物理设备无关。它包含两个方面的 内容:
1)从程序设计的角度看待 I/O 设备,所体现的接口应该是一致的。
2)在操作系统管理设备和相应的操作时,对所有设备都采用统一的方式进行。
将一台独享打印机改造为可供多个用户共享的打印机,是应用 SPOOLing 技术的典型实例。具体做法是:系统对于用户的打印输出,但并不真正把打印机分配给该用户进程,而是先在输出井中申请一个空闲盘块区,并将要打印的数据送入其中;然后为用户申请并填写请求打印表,将该表挂到请求打印队列上。若打印机空闲,输出程序从请求打印队首取表,将要打印的数据从输出井传送到内存缓冲区,再进行打印,直到打印队列为空。
按资源分配管理的特点,输入输出设备可分为独享设备、共享设备和虚拟设备三类。
(1)独享设备:即不能共享的设备,一段时间只能由一个作业独占。如打印机、读卡机、磁带机等。所有字符型输入输出设备原则上都应是独享设备。
(2)共享设备:可由若干作业同时共享的设备,如磁盘机等。共享分配技术保证多个进程可以同时方便地直接存取一台共享设备。共享提高了设备的利用率。块设备都是共享设备。
(3)虚拟设备:利用某种技术把独享设备改造成多台同类型独享设备或共享设备。虚拟分配技术就是利用独享设备去模拟共享设备,从而使独占设备成为可共享的、快速 I/O 的设备。实现虚拟分配的最有名的技术是 SPOOLing 技术,即假脱机技术。
字符设备是以“字符”为单位进行输入、输出的设备,即这类设备每输入或输出一个字符就要中断一次主机 CPU 请求进行处理,故称为慢速设备。
块设备是以“字符块”为单位进行输入输出的设备,在不同的系统或系统的不同版本中,块的大小定义不同。但在一个具体的系统中,所有的块一旦选定都是一样大小,便于管理和控制,传送效率较高。
通道是一个独立于 CPU 的专管输入/输出控制的处理机,它控制设备与内存直接进行数据交换。它有自己的通道指令,这些通道指令受 CPU 启动,并在操作结束时向 CPU 发中断信号。
通道方式进一步减轻了 CPU 的工作负担,增加了计算机系统的并行工作程度。
在设备管理中设置缓冲区的作用:
(1)缓和 CPU 和 I/O 设备之间速度不匹配的矛盾。
(2)减少中断 CPU 的次数。
(3)提高 CPU 和 I/O 设备之间的并行性。
根据系统设置缓冲区的个数,可以分为单缓冲、双缓冲、多缓冲以及缓冲池等四种。
文件系统是指负责存取和管理文件信息的机构,也就是负责文件的建立、撤销、组织、读写、修改、复制及对文件管理所需要的资源(如目录表、存储介质)实施管理的软件部分。
引入文件系统的目的: 实现文件的“按名存取”,力求查找简单;使用户能借助文件存储器灵活地存取信息,并实现共享和保密。
文件系统所要解决的问题(功能)主要有:
1)有效地分配文件存贮器的存贮空间(物理介质)。
2)提供一种组织数据的方法(按名存取、逻辑结构、组织数据)
3)提供合适的存取方法(顺序存取、随机存取等)。
4)方便用户的服务和操作。
5)可靠的保护、保密手段。
文件系统多级目录结构中,将第一级作为目录树的根结点,又称为根目录。
系统调用是操作系统提供给编程人员的唯一接口。利用系统调用,编程人员在源程序中动态请求和释放系统资源,调用系统中已有的功能来完成那些与机器硬件部分相关的工作以及控制程序的执行速度等。系统调用如同一个黑匣子,对使用者屏蔽了具体操作动作,只是提供了有关功能。
有关文件系统的系统调用是用户经常使用的,包括文件的创建(create)、打开(open)、读(read)、写(write)、关闭(close)等。
文件的逻辑结构是从用户的观点看到的文件组织形式。它与存储设备的特性无关。分为两种形式:无结构的流式文件和有结构的记录式文件。
文件的物理结构是指文件在外存上的存储组织形式。文件的物理结构与存储设备的特性有很大关系。通常有三种形式:顺序结构、链接(或串联)结构、索引结构。
树形目录结构的特点如下:
(1) 解决了重名问题,允许在不同的子目录中使用相同的名字命名文件或下级子目录。
(2)层次清楚,便于管理。
(3)提高检索文件的速度。
(4)能进行存取权限的控制,实现对文件的保护和保密。
(1)SSTF 方法:根据磁头的当前位置,首先选择请求队列中距磁头距离最短的请求为之服务。
(2)C_SCAN 方法:磁头从盘面上的一端(逐柱面地)向另一端移动,遇到请求立即服务;回返时直接快速移至起始端而不服务于任何请求。如此往返单向地扫描并平均地为各种请求服务。
(3)性能比较:SSTF 方法可以获得较短的寻道时间,但可能有饿死现象。适合于负载不大的系统。C_SCAN 方法在负载较大的系统中,可以获得较好的性能,并且不存在饿死现象。