第二章操作系统奇数

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1、什么是PSW?其主要作用是什么?答案:PSW是指程序状态字。PSW的作用是用来指示处理器状态,控制指令的执行顺序,并且保留和指示与运行程序有关的各种信息,主要作用是实现程序状态的保护和恢复。每个正在执行的程序都有一个与其当前状态相关的相关的PSW,而每个处理器都设置一个硬件PSW寄存器,一个程序占用处理器执行时,其PSW将占用硬件的PSW寄存器。3、为什么现代计算机要设置两种或多种CPU状态?答案:为了确定处理器当前是操作系统还是应用程序在其上运行,在不同的程序时根据执行程序对资源和机器指令的使用权限将处理器设置成不同的状态。5、为什么要把机器指令分成特权指令和非特权指令?答案:这是因为应用程序在执行有关资源管理的机器指令时易于导致系统混乱,造成系统或用户信息被破坏,因此,再多到程序设计环境中,从资源管理和多道程序执行的角度出发,必须把指令系统中的指令分为两种:特权指令和非特权指令。7、从中断事件的性质来说,可以把它们分成哪些类型?答案:可以分为两类:强迫性中断和自愿性中断,其中强迫性中断又分为:1、机器故障中断,2、程序性中断3、外部中断4、输入输出中断9、从中断事件的实现来说,可以把它们分成哪些类型?答案:分为硬中断和软中断,其中硬中断包括外中断和内中断,软中断是信号和软件中断。11、概述程序性中断的处理方式?答案:程序性中断常出现几种错误,如果是语法错误,程序将在编译时报错,如果逻辑错误,可有测试发现错误并报错,如果运行中产生异常,操作系统会立即执行这种中断并处理。13、何谓中断的优先级?为什么要对中断事件进行分级?答案:中断装置所预设的响应顺序称为中断的优先级。因为中断是随时发生的,所以在不发生中断丢失的情况下把紧迫程度相当的中断源归为一类,紧迫程度差别大的中断源归为不同级别,级别高的中断有优先获得响应的权利,如果系统正在执行某种优先级的中断服务程序,那么只有更高优先权的中断请求才能中断此服务程序。15、概述系统调用的执行过程?答案:系统调用把应用程序的请求传送至内核,调用相应的内核函数完成所需的处理。将结果返回相应的程序。17、试述时钟中断在操作系统中的重要性及其主要作用?答案:时钟是操作系统进行调度工作的重要工具,如维护系统的绝对时间和日期、让分时进程按时间片轮转、让实时进程定时发送或接收控制信号、系统定是唤醒或阻塞进程、对用户进程记账、测量系统性能等,利用定时器能够确保操作系统在必要时获得控制权,陷入死循环的进程最终会因时间片耗尽而终止被迫让出处理器。19、操作系统如何处理多重中断事件?答案:对于多重中断,可能是同一优先级的不同中断,也可能是不同优先级的中断。如果是前者,通常由同一个中断处理程序按自左至右的顺序逐个处理并清除,对于后者可分为串行处理,嵌套处理,即时处理。21,按中断事件的来源和实现手段可将中断划分为硬中断和软中断两类。硬中断可划分为外中断和内中断;软中断可划分为信号和软件中断。硬中断与软中断的类比:11.“中断”(硬中断)用于外部设备对CPU的中断(中断正在运行的任何程序),转向中断处理程序执行。12.“异常”(硬中断)因指令执行不正常而中断CPU(中断正在执行的这条指令的程序),转向异常处理程序执行。13.“软件中断”(软中断)用于硬中断服务程序对内核的中断,在上半部分中发出软件中断(即标记下半部分),使得中断下半部分在适当时刻获得处理。14.“信号”(软中断)用于内核或进程对某个进程的中断,向进程通知某个特别事件发生或迫使进程执行信号处理程序。5.每个处理器都有一个中断请求级别设置,其值随着内核代码的执行而改变,运行于核心态的线程可以提高或降低正在运行处理器的优先级,从而屏蔽低级中断。Dispatch/DPC和APC中断是内核和设备驱动程序所产生的软件中断,优先级为2和1,他们启动线程调度、延迟过程调用和异步过程调用的执行;普通线程运行于0级,允许发生所有级别的中断。当发生中断的时,陷阱调度程序讲提高处理器优先级别至中断源所具有的优先级别上,保证服务于此中断的处理器不被同级别或低级的中断抢先,被屏蔽的中断将被另一处理器响应,或被阻拦直至优先级降低到相对应的优先级以下时才能被处理。由于改变处理器的优先级别非常重要,故处理器的优先级只能在核心态改变。从而win2003动态实现了中断屏蔽功能。3.APC:AsynchronousProcedureCall,异步过程调用,用于中断一个特定程序和执行,为应用程序和系统代码提供一种在特殊线程描述表中执行代码的方法。等待执行的APC在内核管理的APC队列中,是特定于线程而言的。27.Linux中,处理快中断仅保存那些被常规C函数修改的寄存器,会屏蔽其他中断。快中断处理完毕后,通常会恢复现场,返回被中断的进程继续执行,属于非抢占式调度。而处理慢中断之前需保存所有寄存器的内容,通常不屏蔽其他中断信号,慢中断处理完毕后,通常不返回被中断的进程,而是转向调度程序重新进行调度,调度结果未必是被中断的进程继续执行,属于抢占式调度。而且慢中断的工作比较多。28.Linux中断下半部分处理的原理:提供静态创建的下半部分处理的数据结构,建立一个函数指针数组,采用数组索引的方式访问,最多有32个不同的下半部分处理函数。31.讨论Linux的bottomhalf、taskqueue、tasklet、workqueue和softirq机制。Bottomhalf,提供静态创建的下半部分处理的数据结构,建立一个函数指针数组,采用数组索引的方式访问,最多有32个不同的下半部分处理函数。HB机制存在两方面的局限性:(1)下半部分处理函数的数量限制为32个,且每个HB上只能挂接一个函数,随着系统设备的增多,HB的应用范围越来越广,这个数目还不够用。(2)每个HB在全局范围内同步,即使属于不同的处理器,也不允许任何两个HB同时执行,这种机制使用方便但不够灵活,安全简单但尚存在性能瓶颈。所以在开发V2.5内核版本时,HB接口最终被抛弃。Taskqueue,进一步的改进方法是引入任务队列(taskqueue)机制,实现对各种任务的延迟执行。为此,内核定义一组队列,每个队列包含一个由等待调用的函数组成的链表,不同队列中的函数在某个时刻会被触发执行。显然,任务队列不一定非要与中断处理有关,但是可以用它来代替HB,当驱动程序或内核相关部分要将任务排队进行延迟处理时,可将任务添加到相应的任务队列中,然后,采用适当的方式通知内核执行任务队列函数。典型的下半部分处理均有相关联的任务队列,任务队列在Linux中的应用范围相当广泛,还在其他场合被使用。任务队列与下半部分相比较,任务队列可以动态的定义和管理,而下半部分却由内核静态定义,且处理函数不能超过32种。由于任务队列的灵活性较差,无法代替整个HB接口,也不能胜任像网络等性能要求较高的子系统,此系统已从V2.5版本中除去Tasklet,(小任务)也是一种下半部分机制,能够更好地支持对称式多处理器,它基于软中断来实现,但比软中断的借口要简单,锁保护的要求低。因为HB是全局串行处理,不适应多处理器对称系统,引入tasklet之后,不同的tasklet可同时运行于不同的CPU上。当然由系统保证相同的tasklet不会同时在不同的CPU上运行。在这种情形下,tasklet就无需是可重入的。Workqueue,工作队列,与其他机制的工作原理都不同,它把一个任务延迟,并将其交给内核线程去完成,且此任务总是在进程上下文中执行。这样,通过工作队列执行的代码能够占尽进程上下文的优势,最重要的是,工作队列允许重新调度和阻塞。如果延迟执行的任务需要阻塞、需要获取信号量或需要获得大量的主存空间,那么可以选择工作队列,否则就使用tasklet或softirq。Softriq,迄今,Linux沿用最早的HB思想,但在此机制上实现了庞大和复杂的软中断子系统——softriq,它既是一种软中断机制,又是一个框架,包括tasklet及为网络操作专门设计的软中断。Tasklet允许动态注册,但softriq在编译时静态定义。33.进程有哪些主要属性,试解释之。(1)结构性进程包含数据集合和运行于其上的程序,它至少有程序块、数据块和进程控制块等要素组成。(2)共享性同一程序同时运行于不同的数据集合上时,将构成不同的进程,即多个进程可以执行相同的程序,所以进程和程序不是一一对应的。共享性还表现在进程之间可以共享某些公用变量,通过引用公用变量就能够交换信号,从而进程的运行环境不再是封闭的。(3)动态性进程是程序在数据集合上的一次执行过程,是动态的概念,同时,进程有生命周期,由创建而产生、由调度而执行、由事件而等待、由撤销而消亡;而程序是一组有序指令所组成的序列,是静态的概念,所以程序作为一种系统资源是永久存在的。(4)独立性进程是系统中资源分配、保护和调度的基本单位,说明它具有独立性,凡是未建立进程的程序,都不能作为独立单位参与调度和运行。此外每个进程都可以有各自独立的、不可预知的速度在处理器上推进,即按照异步方式执行,这也表现出进程的独立性。(5)制约性并发进程之间存在着制约关系,造成进程执行速度的不可预测性,必须对进程的并发执行次序、相对执行速度加以协调。(6)并发性进程的执行可以在时间上有所重叠,在单处理器系统中可并发执行,在多处理器系统中可并发执行。对于单处理器系统而言,m个进程轮流占用处理器并发地执行。35.五态模型的进程中,新建态和终止态的主要作用是什么?新建态的引用对于进程管理非常有用,新建态对应于进程被处理时的状态,进程尚未进入就绪队列,创建进程要通过两个步骤:首先,为新进程分配所需资源,建立必要的管理信息;然后,设置此进程为就绪态,等待被调度执行。终止态是指进程完成任务,到达正常结束点,或因出现无法到达的错误而异常终止,或被操作系统及又终止权的进程所终止时所处的状态。处于终止状态的进程不再被调度执行,下一步将被系统撤销,最终从系统中消失。类似的,进程终止也要通过两个步骤实现:首先,等待操作系统或相关进程进行善后处理,然后,回收被占用的资源并由系统删除进程。37.多数时间片轮转调度使用使用固定大小的时间片,请给出:(1)选择小时间片的理由。(2)选择大时间片的理由。时间片长短的确定遵循这样的原则:既要保证系统中各个用户进程及时地得到响应,又不要由于时间片太短而增加调度的开销,降低系统的效率。(1)选择小时间片的理由是:使轮转的总时间减少,是用户进程尽快得到应答。(2)选择大时间片的理由是:减少进程调度次数,提高系统效率。39.什么情况下会产生挂起等待态和挂起就绪态?试举例说明。挂起就绪态表明进程具备运行条件,但目前在辅助存储器中,只有当进程被换到主存时才能调度执行;挂起等待态则表明进程正在等待某一事件发生且进程在辅助存储器中。挂起进程等同于不在主存的进程,因此,挂起进程不会参与低级调度直到它们被对换进主存。挂起进程具有以下特征:此进程不能立即执行;此进程可能会等待某事件发生,所等待的事件独立于挂起事件,时间结束并不能导致进程具备可执行条件;此进程进入挂起状态是由于操作系统、父进程或进程自身阻止其运行;进程挂起状态的结束命令只能通过操作系统或父进程发出。41每个进程有且仅有一个进程控制块,或成进程描述符,它是进城存在的唯一标识,是操作系统用来记录和刻画进程状态及有关信息的数据结构,是进程动态特征的一种汇集,也是操作系统掌握进程的唯一资料结构和管理进程的主要依据。进程控制块包括进程执行时的情况以及进程让出处理器之后所处的状态、断点等信息,一般来说包括三类信息,标识信息、现场信息和控制信息。43线性方式、链接方式、索引方式45进程上下文实际上是进程执行活动全过程的静态描述。我们把已执行过的进程指令和数据在相关寄存器与堆栈中的内容称为上文,把正在执行的指令和数据在寄存器和堆栈中的内容称为正文,把待执行的指令和数据在寄存器与堆栈中的内容称为下文。具体的说,进程上下文包括计算机系统中与执行该进程有关的各种寄存器(例如通用寄存器,程序计数器PC,程序状态字寄存器PS等)的值,程

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功