目录
7.应用程序与系统调用之间传递参数的方法(19-20-1-A已考)
4. 程序状态字(Program Status Word, PSW)
14.处理器调度算法(计算题8’ )【19-20-1-A已考两道批处理作业系统调度】
2.I/O软件四个层次【19-20-1-A已考 简答题 4’】
2.文件控制块(File Control Block,FCB)
附录 2018/2019学年第一学期《操作系统结构分析》期末试卷(A)
第一章 操作系统概述
1.操作系统的定义(19-20-1-A已考)
操作系统是最基本的系统软件,是一组有效管理和控制计算机硬件和软件资源、合理地对各类作业进行调度以组织和控制系统工作流程,并方便用户使用计算机的程序的集合。
2.操作系统的作用
(1)操作系统应隐藏复杂的、困难的、丑陋的、特殊的硬件细节,向应用程序提供一种简单的、高度抽象的处理;
(2)操作系统是用户与计算机系统进行交互的界面;
(3)操作系统需要对资源进行监控、分配、回收和保护,以使资源得到充分合理的利用;
(4)操作系统是工作流程的组织者,协调各个任务的推进速度。
3.用户接口的定义
用户接口(User Interface,简称 UI)是系统和用户之间进行交互和信息交换的媒介,它实现信息的内部形式与人类可以接受形式之间的转换。通常指软件接口,一般有命令接口、程序接口、图形接口三种。
4.程序接口的定义
程序接口由一组系统调用(System Call)组成,用户程序使用“系统调用”就可获得操作系统的底层服务,使用或访问系统的各种软硬件资源。
5.系统调用的定义
操作系统为了达到为应用程序的运行提供良好的环境,系统内核提供了一系列具备预定功能的内核函数,这一组特殊接口称为系统调用。
6.系统调用的实现原理、陷阱机制
第一步,编写系统调用函数;第二步,设计系统调用入口地址表,每个入口地址都指向一个系统调用的内核函数,部分包含系统调用自带参数的个数;第三步通过陷阱处理机制,开辟现场保护区,保存发生系统调用时的处理器现场。
由系统调用引起的处理器中断的机器指令称为访管指令、自陷指令、中断指令。访管指令为非特权指令,CPU目态执行下转为内核态。
7.应用程序与系统调用之间传递参数的方法(19-20-1-A已考)
(1)访管指令或自陷指令自带参数
(2)通过CPU通用寄存器传递参数
(3)在内存中开辟专用堆栈区传递参数
8.系统调用与函数调用的区别
|
|
系统调用 |
函数调用 |
| 调用形式 |
无入口地址,仅仅按功能号调用 |
有调用指令和转向地址 |
| 被调用位置 |
被调用代码在操作系统中 |
调用程序与被调用代码一般在同一程序内 |
| 提供方式 |
由操作系统提供 |
由编译系统提供 |
| 实现方式 |
通过中断实现 |
由跳转指令调用 |
9.微内核结构的原理
操作系统仅将所有应用必需的核心功能放入内核,称为微内核,其他功能都在内核之外,由在用户态运行的服务进程实现。运行在内核态的内核提供系统基本功能,运行在用户态的进程层采用客户—服务器模型,由相对独立的若干服务器进程提供操作系统其他部分功能,采用消息传递机制进行通信。
10.微内核结构的特点
(1)对进程的请求提供一致性接口;
(2)具有较好的可扩充性和易修改性,可移植性好;
(3)对分布式系统提供有力支撑;
(4)进程间必须通过内核的通信机制才能通信,运行效率较低。
第二章 处理器管理
1.特权与非特权指令
(1)特权指令
具备改变机器状态、修改寄存器内容、启动设备I/O等特权的机器指令,如启动I/O设备、设置时钟、置中断屏蔽位、清空内存、建立存储键,加载程序状态字等。特权指令仅能由操作系统使用,应用程序如果运行特权指令,将会导致异常。
(2)非特权指令
指令系统中除了特权指令之外的指令。非特权指令既可以被操作系统使用,也可以被应用程序使用。
2.内核态与用户态
(1)内核态
操作系统管理程序运行的状态,较高的特权级别,可以执行全部指令,使用所有资源,并具有改变处理器状态的能力,又称为核心态、管态。
(2)用户态
用户程序运行时的状态,较低的特权级别,只有非特权指令能执行,又称为普通态(普态)、目态。
3.处理器状态转换
(1)内核态→用户态
执行特权指令(如Intel x86中iret指令)将用户程序的程序状态字PSW加载到PSW寄存器,实现从内核态返回用户态,CPU的控制权转交给用户程序。
(2)用户态→内核态
①程序执行系统调用,请求操作系统服务;
②程序运行时发生中断事件,运行程序被中断,转去执行中断处理程序;
③程序在执行时发生了异常事件,运行程序被打断,转去执行异常处理程序。
4. 程序状态字(Program Status Word, PSW)
通常操作系统为每个运行中的程序引入程序状态字PSW来区别不同的处理器工作状态,并且保留和指示与运行程序有关的各种信息,存放在程序状态字寄存器中。PSW主要内容有程序基本状态(程序计数器PC;条件码:反映指令执行后的结果特征;处理器状态:内核态、用户态)、中断码(保存程序执行当时发生的中断事件)、中断屏蔽码(指明程序执行中发生中断事件时,是否响应出现的中断事件)。PSW的主要作用是实现程序状态的保护和恢复。
5.中断的定义
中断指在程序执行过程中遇到急需处理的事件时,暂时中止现行程序在CPU上的运行,转而执行相应的事件处理程序,待处理完成后再返回断点或调度其他程序执行的过程。
6.中断的分类
(1)外中断
①又称为中断或异步中断;
②泛指来自处理器之外的中断信号,包括外部设备中断、时钟中断、键盘中断和它机中断等;
③分为可屏蔽中断和不可屏蔽中断;
④高优先级中断可以部分或全部屏蔽低级中断。
(2)内中断
①又称为异常或同步中断;
②泛指来自处理器内部的中断信号,往往由于在程序执行过程中,发现与当前指令关联的、不正常的或错误的事件;
③细分为访管中断、硬件故障中断、程序性异常;
④内中断不能屏蔽,一旦出现应立即响应并处理。
(3)区别
|
|
内中断(异常) |
外中断(中断) |
| 发生时间 |
发生在指令执行当中 |
发生在指令执行之间 |
| 处理器状态 |
大部分异常发生在用户态,需要转换处理器的状态 |
发生在任何程序的执行过程中,处理器状态可能改变也可能不变 |
| 处理过程 |
异常处理程序处理过程可以被阻塞 |
中断处理程序处理过程中不能被阻塞 |
| 异常大多为一重 |
中断允许发生嵌套 |
|
| 异常处理过程中可能发生中断 |
中断处理过程绝不会被异常打断 |
7.进程的定义
进程(Process)是具有独立功能的程序在某个数据集合上的一次运行活动,是系统进行资源分配、调度和保护的基本单位。
8.进程的状态与转换(七态模型)

①新建态:进程正在创建
②就绪态:一个进程已经具备运行条件,等待分配处理器。
③挂起就绪态:进程具备运行条件但仍在外存中,只有被调入内存才能得以被调度执行。
④运行态:进程占有CPU,并在CPU上运行。
⑤等待态(阻塞、睡眠):进程因等待某种事件的发生而暂时不能运行的状态(即使CPU空闲,该进程也不可运行)
⑥挂起等待态:进程正在等待某事件并且在外存中。
⑦终止态:进程已经完成执行
9.进程控制块
(1)定义
进程控制块(Process Control Block, PCB)是系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的动态变化过程。
(2)内容
①标识信息,存储在进程控制块中的数字标识符(通常是0~32767),包括:该进程的标识符(进程ID)、创建该进程的父进程的标识符和用户标识符(用户ID)。
②现场信息,通用寄存器、PC寄存器、用户栈指针寄存器、PSW等。
③控制信息,包括进程调度信息、进程组成信息、进程间的族系信息、进程间通信信息、进程段/页表、进程映像在外存中的地址、CPU占用和使用信息、进程特权信息、资源清单和文件传输和I/O信息等。
10.进程上下文
在操作系统中,进程物理实体和支持进程运行的环境合称进程上下文(Process Context),进程切换时需要实施进程上下文切换,保存老进程的上下文且装入新进程的上下文,以便新进程运行。
①用户级上下文:进程的用户地址空间(包括用户栈各层次),包括用户正文段、用户数据段、用户栈和共享内存区;
②寄存器上下文: PSW寄存器、处理器状态寄存器、栈指针、通用寄存器的值;
③系统级上下文:进程控制块、内存管理信息(进程页表或段表)、核心栈(进程内核态运行时的工作区)等。
11.线程
(1)定义
线程是CPU使用的一个基本单元,它包括线程ID、程序计数器、寄存器组和堆栈。它与同一进程的其他线程共享代码段、数据段和其他操作系统资源,如打开文件和信号。引入线程后,进程作为系统分配和保护的独立单位,无须频繁地切换;线程作为系统调用和分派的基本单位,会被频繁地调度和切换。单线程(Single-threaded)进程又被为重量级(Heavyweight)进程,多线程(Multithreaded)进程又被称为轻量级(Lightweight)进程。
(2)线程和进程的区别与联系
|
|
线程 |
进程 |
| 根本区别 |
任务调度和执行的基本单位 |
操作系统资源分配的基本单位 |
| 开销 |
同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小 |
每个进程都有独立的代码和数据空间(进程上下文),进程之间的切换会有较大的开销 |
| 所处环境 |
同一个进程(程序)中有多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行) |
操作系统中能同时运行多个进程(程序) |
| 内存分配 |
除了CPU外,系统不会为线程分配内存(线程所使用的资源来自其所属进程的资源),线程组之间只能共享资源 |
系统在运行的时候会为每个进程分配不同的内存空间 |
| 联系 |
线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程 |
没有线程的进程可以看做是单线程 |
12.处理器调度(高级调度与低级调度)
调度是多道程序系统的关键所在。系统运行性能(如吞吐量大小、周转时间长短、响应及时性等)在很大程度上都取决于调度,特别是处理器调度。

(1)高级调度(作业、长程调度)
①把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程和分配必要资源;
②再将新创建进程插入到就绪队列上准备执行;
③作业完成后还要做结束阶段的善后工作。
(2)低级调度(进程、短程调度)
用来决定就绪队列中的哪个进程将获得处理机,然后再由分派程序(Dispatcher)执行把处理机分配给该进程的具体操作。
A. 剥夺调度方式(Preemptive Mode)
允许暂停正在执行进程和重新分配处理机;抢占原则(优先权/短作业优先/时间片原则);分时、实时及批处理系统均可,如 Win98/2K/XP, Linux, Unix等。
B. 非剥夺调度方式(Non-preemptive Mode)
处理机分配给进程直至完成或阻塞;引起进程调度的因素:当前进程执行完毕或因发生事件、提出I/O请求、执行原语操作而阻塞;实现简单、系统开销小,但难以满足紧急任务要求,故不宜在实时系统中采用,如DOS , Windows 3.x等系统。
13.周转时间的计算
假设作业i提交给系统的时刻是ts,完成的时刻是tf,所需运行时间为tk,那么:
①作业i的周转时间 ti = tf - ts
②平均作业周转时间 T=i=1nti∕n,![]()
③平均作业带权周转时间 W=i=1nwi∕n,
,其中单个作业的带权周转时间wi = ti / tk
14.处理器调度算法(计算题8’ )【19-20-1-A已考两道批处理作业系统调度】
(1)先来先服务算法(First-Come, First-Served)
【非剥夺】选择最先进入就绪队列的进程投入执行,即进程按照请求CPU的顺序使用CPU。
| 实例 |
三个进程如右表所示,到达顺序是: P1 , P2 , P3。 求平均等待时间、平均作业周转时间。 |
Process |
P1 |
P2 |
P3 |
| Time |
28 |
9 |
3 |
解 如下图所示。

等待时间分别是 P1= 0;P2= 28;P3 = 37
平均等待时间是 (0 + 28 + 37)÷ 3 = 22
平均作业周转时间是 (28 + 37 + 40)÷ 3 = 35
(2)最短作业优先算法(Shortest Job First)
【非剥夺】以进入系统作业/进程所要求的CPU时间长短为准,总是选取时间要求最短的投入运行。
| 作业 |
进入时间 |
运行时间 |
开始时间 |
结束时间 |
周转时间 |
带权周转时间 |
| 1 |
8:00 |
120 |
8:00 |
10:00 |
120 |
1 |
| 2 |
8:50 |
50 |
10:30 |
11:20 |
150 |
3 |
| 3 |
9:00 |
10 |
10:00 |
10:10 |
70 |
7 |
| 4 |
9:50 |
20 |
10:10 |
10:30 |
40 |
2 |
| 作业平均周转时间T=95 作业带权平均周转时间W=3.25 |
380 |
13 |
||||
(3)最短剩余时间优先算法(Shortest Remaining Time First)
【SJF+剥夺】如果一个新就绪进程所需的CPU时间比当前正在执行的进程所剩余时间短,那么新进程将抢占CPU。

&spm=1001.2101.3001.5002&articleId=103818277&d=1&t=3&u=ff4f4b89aad64abca1460d11cbd5a1c0)
1679

被折叠的 条评论
为什么被折叠?



