数据库作业第二章第三章.docx
《数据库作业第二章第三章.docx》由会员分享,可在线阅读,更多相关《数据库作业第二章第三章.docx(30页珍藏版)》请在冰豆网上搜索。
数据库作业第二章第三章
一、思考题
1.什么是PSW,它有何作用
psw:
操作系统将程序运行时的一组动态信息会聚在一起,称为程序的状态字
作用:
实现程序状态的保护和恢复
3.为什么要把机器指令分成特权指令和非特权指令
应用程序在执行有关资源管理的机制指令时易于导致系统混乱,造成系统或用户信息被破坏,因此在多道程序设计环境中,从资源管理和控制程序执行的角度出发,必须把指令系统中的指令分成这两类。
4.试分别从中断事件的性质、来源和实现角度对其进行分类
从中断事件的性质和激活的手段来说,可以分成两类:
(1)强迫性中断事件强迫性中断事件不是正在运行的程序所期待的,而是由于某种事故或外部请求信息所引起的,分为:
机器故障中断事件。
程序性中断事件。
外部中断事件。
输入输出中断事件。
(2)自愿性中断事件自愿性中断事件是正在运行的程序所期待的事件。
按事件来源和实现手段分类:
(1)硬中断;硬中断分为外中断(中断、异步中断)和内中断(异常、同步中断);
(2)软中断;软中断分为信号和软件中断。
9.什么是系统调用试述API、库函数及系统调用间的关系。
叙述系统调用执行流程。
由操作系统实现的所有系统调用所构成的集合即程序接口或应用编程接口(ApplicationProgrammingInterface,API)。
系统调用是一种API,是应用程序同系统之间的接口。
库函数是语言本身的一部分,可以调用多个系统调用;系统调用(函数)是内核提供给应用程序的接口,属于系统的一部分,可以认为是某种内核的库函数;操作系统API是有系统调用(函数)的集合(也就是将许多的系统调用封装在了一起)。
一是编写系统调用服务例程;二是设计系统调用入口地址表,每个入口地址都指向一个系统调用的服务例程,有的还包括系统调用自带的参数个数;三是陷阱处理机制,需要开辟现场保护区,以保存发生系统调用时应用程序的处理器现场。
应用程序执行系统调用,产生中断指向内核态,进入陷阱处理程序,它将按功能查询入口地址表,并转至对应服务例程执行,完成后退出中断,返回应用程序断点继续运行。
14.简述Linux的快中断和慢中断
快中断:
快中断处理仅要保存被常规C函数修改的寄存器;中断处理时会屏蔽所有其他中断;中断处理完毕后,通常恢复现场返回被中断的进程继续执行(是非抢先式调度)。
慢中断:
处理慢中断前需保存所有寄存器的内容,中断处理时,不屏蔽其他中断信号,慢中断处理完毕后,通常不立即返回被中断的进程,而是进入调度程序重新调度,调度结果未必是被中断的进程运行(是抢先式调度)。
17.讨论Linux系统的tasklet、workqueue和softirq任务延迟处理进制。
(1)tasklet:
能更好支持SMP,它基于软中断来实现,但比软中断接口简单,锁保护要求低;softirq保留给执行频率及时间要求特高的下半部分使用(如网络和SCSI),多数场合下可使用tasklet。
使用tasklet的步骤:
声明、编程、调度。
BH全局串行处理,不适应SMP环境,而不同tasklet可同时运行于不同CPU上,当然,系统保证相同tasklet不会同时在不同CPU上运行,在这种情形下,tasklet就不需要是可重入的。
在新版Linux中,tasklet是建议的异步任务延迟执行机制。
(2)workqueue:
Linux内核引入-工作队列,它把一个任务延迟,并交给内核线程去完成,且该任务总是在进程上下文中执行,通过工作队列执行的代码能占尽进程上下文的优势,最重要的是工作队列允许重新调度及阻塞。
默认的工作者线程:
event/n
如果延迟执行的任务需要阻塞,需要获取信号量或需要获得大量主存时,那么,可选择工作队列,否则可使用tasklet或softirq。
(3)Sorfirq:
(软中断)是一种软中断机制,亦即是一种信号机制,中断处理程序在其返回前标记下半部分,让其稍后执行;它又是一个框架,纳入了tasklet及为网络操作专门设计的软中断。
18.什么是进程计算机系统中为什么要引入进程
(1)进程定义:
进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和保护的基本单位
(2)刻画系统的动态性,发挥系统的并发性,提高资源利用率。
程序是并发执行的,即不是连续而是走走停停的。
程序的并发执行引起资源共享和竞争问题,执行的程序不再处在封闭环境中。
“程序”自身只是计算任务的指令和数据的描述,是静态概念无法刻画程序的并发特性,系统需要寻找一个能描述程序动态执行过程的概念,这就是进程。
它能解决系统的“共享性”,正确描述程序的执行状态。
程序与程序的执行不再一一对应
19.进程有哪些主要属性试解释之
•共享性:
同一程序同时运行于不同数据集合上时构成不同进程,即多个不同进程可执行相同的程序,所以进程和程序不是一一对应的。
•动态性:
进程是程序在数据集合上的一次执行过程,是动态概念,同时它有生命周期,由创建而产生、由调度而执行、由事件而等待、由撤销而消亡;而程序是一组有序指令序列,是静态概念,所以程序作为系统中的一种资源是永远存在的
•独立性:
每个进程是操作系统中的一个独立实体,有自己的虚存空间,程序计数器和内部状态;
•制约性:
进程因共享进程资源或协同工作产生相互制约关系,造成进程执行速度的不可预测,必须对进程的执行次序或相对执行速度加以协调;
•并发性:
多个进程的执行在时间上可以重叠,在单处理器系统中可并发执行;在多处理器环境中可并发执行。
因此,并发的执行是可被打断的,或者说,进程执行完一条指令后在执行下一条指令前可能被迫让出处理器,由其它若干个进程执行若干条指令后才能再次获得处理器执行。
20.进程最基本的状态有哪些哪些事件可能引起不同状态间的转换
运行态、就绪态、等待态
(1)运行态-等待态:
运行进程等待使用某种资源或者某事件发生
(2)等待态-就绪态:
所需资源得到满足或某事件已经完成
(3)运行态-就绪态:
运行时间片到时或出现更高优先级的进程,当前进程被迫让出处理器。
(4)就绪态-运行态:
当CPU空闲时,调度程序选中一个就绪进行执行
21.五态模型的进程中,新建态和终止态的主要作用是什么
新建态:
对应于进程被创建时的状态,进程尚未进入就绪队列,对于进程管理非常有用。
终止态:
进程完成任务到达正常结束点或者因错误而终止,或被操作系统及有终止权的进程时所处的状态。
进入终止态程序不再执行,等待操作系统进行善后处理。
24.什么是进程的挂起状态列出挂起进程的主要特征。
(1)为了让某些进程暂时不参与低级调度,释放它占有的资源,将其置于磁盘对换区中,以平滑系统负荷的目的而需引入挂起态;
(2)特征:
•该进程不能立即被执行。
•挂起进程可能会等待事件,但所等待事件是独立于挂起条件的,事件结束并不能导致进程具备执行条件。
•进程进入挂起状态是由于操作系统、父进程或进程本身阻止它的运行。
•结束进程挂起状态的命令只能通过操作系统或父进程发出
25.试述组成进程的基本要素,并说明其作用。
控制块:
存储进程的标志信息,现场信息和控制信息;
程序块:
规定进程的一次运行所应完成的功能;
核心块:
用来保护中断/异常现场,保存函数调用的参数和返回地址;
数据块:
存放各种私有数据
26.何谓进程控制块(PCB)它包含哪些基本信息
(1)进程控制块PCB,是操作系统用于记录和刻划进程状态及有关信息的数据结构。
也是操作系统掌握进程的唯一资料结构,它包括进程执行时的情况,以及进程让出处理器后所处的状态、断点等信息。
(2)进程控制块包含三类信息
标识信息
现场信息
控制信息
28.请列举组织进程队列的各种方法
通用队列组织方式:
线性方式
链接方式
索引方式
30.什么是进程上下文简述其主要内容
操作系统中把进程物理实体和支持进程运行的环境合称为进程上下文。
当系统调度新进程占有处理器时,新老进程随之发生上下文切换。
进程的运行被认为是上下文中执行。
进程上下文组成
•用户级上下文
•系统级上下文
•寄存器上下文
31.什么是进程切换试述进程切换的主要步骤
(1)进程切换是让处于运行态的进程中断运行,让出处理器,这时要做一次进程上下文切换、即保存老进程状态而装入被保护了的新进程的状态,以便新进程运行
(2)保存被中断进程的处理器现场信息
修改被中断进程的进程控制块有关信息,如进程状态等
把被中断进程的PCB加入有关队列
选择下一个占有处理器运行的进程
修改被选中进程的PCB的有关信息
根据被选中进程设置操作系统用到的地址转换和存储保护信息
根据被选中进程恢复处理器现场
32.什么是模式切换它与进程切换之间有何区别
模式切换即CPU模式切换,是从用户态到核心态或者核心态到用户态的转换是CPU模式切换,此时仍然在同一个进程中运行。
模式切换不同于进程切换,它不一定会引起进程状态的转换,也不一定会引起进程切换,在完成系统调度服务或中断处理之后,可通过逆向模式来恢复被中断进程的运行。
35.在操作系统引入进程概念后,为什么还有引入线程的概念
操作系统中再引入线程,则是为了减少程序并发执行时所付出的时空开销,使得并发粒度更细、并发性更好。
38.试从调度、并发性、拥有资源和系统开销等四个方面对传统进程和多线程进程进行比较。
40.试对下列系统任务进行比较:
(1)创建一个线程和创建一个进程
(2)两个进程间通信与同一进程中的两个线程间通信
(3)同一进程中的两个线程的上下文切换和不同进程中两个线程的上下文切换。
43.列举线程的组织方式和应用场合。
答:
线程组织方式:
(1)调度员/工作者方式
(2)组模式
(3)流水线模式
应用场合:
(1)前台和后台工作
(2)C/S应用模式
(3)异步处理
(4)加快执行速度
(5)设计用户接口
45.试分析Linux系统的进程和线程。
进程描述符task_struct中包含:
进程标识、链接信息、调度信息、文件信息、虚存空间信息、信号处理信息等。
Linux中认为线程就是共享地址空间及其他资源的进程,故并没有单独为线程定义数据结构,有一套在用户模式下运行的线程库-pthread,但每个线程都拥有惟一隶属于自己的task_struct
48.处理器调度分为哪几种类型简述各种调度的主要任务。
答:
(1)高级调度:
在多道处理操作系统中,从输入系统的一批作业中按照预定的调度策略挑选若干个作业进入主存,为其分配所需资源,并创建作业的相应用户进程后便完成启动阶段的高级调度任务;
(2)中级调度:
根据主存资源决定主存中所能容纳的进程数目,并根据进程的当前状态来决定辅助存储器和主存中的进程的对换;
(3)低级调度:
根据某种原则决定就绪队列中的哪个进程或内核级线程获得处理器,并将处理器让出给它使用。
49.试述衡量一个处理器调度算法优劣的主要任务。
根据调度机制的三个逻辑功能程序模块组成来评判:
(1)队列管理程序
(2)上下文切换程序
(3)分派程序
52.解释:
(1)作业周转时间;
(2)作业带权周转时间;(3)相应时间;(4)吞吐率。
答:
(1)作业周转时间:
批处理用户从系统提交作业开始,到作业完成为止的时间间隔;
(2)作业带权周转时间:
在操作系统中,带权周转时间反映作业(或进程)长短问题,带权周转时间越大,作业(或进程)越短;带权周转时间越小,作业(或进程)越长。
(3)响应时间:
从交互式进程提交一个请求至得到响应之间的时间间隔称为响应时间。
(4)吞吐率:
单位时间CPU处理作业的个数。
53.试述作业、进程、线程和程序之间的关系。
进程是操作系统结构的基础;是一个正在执行的程序;计算机中正在运行的程序实例;可以分配给处理器并由处理器执行的一个实体;由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单元。
线程(thread,台湾称执行绪)是"进程"中某个单一顺序的控制流。
也被称为轻量进程(lightweightprocesses)。
计算机科学术语,指运行中的程序的调度单位。
作业:
用户在一次运算过程中,或一次事务处理中要求计算机所做的全部工作的总和。
进程是在自身的虚拟地址空间正在运行的一个程序
程序运行产生进程
程序是一组静态的指令集,不占用系统运行资源
进程是随时都可能发生变化的,动态的。
占用系统运行资源的程序
一个程序可以产生多个进程
作业嘛,是一个或多个正在执行的相关进程。
一般来讲当进程与作业控制相关联时才被称为作业
55.在时间片轮转低度调级算法中,根据哪些因素确定时间片的长短
答:
进程数目、切换开销、系统效率及响应时间等多方面因素。
57.为什么多级反馈队列算法能较好地满足各种用户的需求
答:
高级调度的主要任务是根据某种算法,把外存上处于后备队列中的那些作业调入内存。
低级调度是保存处理机的现场信息,按某种算法先取进程,再把处理器分配给进程。
引入中级调度的主要目的是为了提高内存利用率和系统吞吐量。
使那些暂时不能运行的进程
不再占用内存资源,将它们调至外存等待,把进程状态改为就绪驻外存状态或挂起状态。
58.分析静态优先数和动态优先数低级调度算法各自的优缺点。
答:
静态优先级在进程或线程创建时确定,且生命周期中不再改变,可按照外部指定和内部指定方法计算静态优先级。
静态优先级算法的实现简单,但会产生饥饿现象,使某些低优先级进程或线程无限期对的被推迟进行。
动态优先级使各进程或线程优先级随时间而改变,克服了静态优先级的饥饿问题,等待时间足够长的进程或线程会因其优先级不断提高而被调度运行。
62.在多级反馈队列中,对不同的队列分配大小不同的时间片值,其意义何在
应用题
1.下列指令中,哪些只能在内核态运行
(1)读时钟日期
(2)访管指令(3)设时钟日期(4)加载PSW
(5)置特殊寄存器(6)改变存储器映像图(7)启动I/O指令
4.在按照动态优先数调度进程的系统中,每个进程的优先数需定时重新计算。
在处理器不断在进程之间交替的情况下,重新计算进程优先数的时间从何而来
许多操作系统重新计算进程的优先数在时钟中断处理例程中进行,由于中断是随机碰到哪个进程,就插入哪个进程中运行处理程序,并把处理时间记在这个进程的账上。
7.
8.
10.按照最短作业优先的算法可以使平均响应时间最短。
X取值不定,按照以下情况讨论:
1)x≤3次序为:
x,3,5,6,92)
33,x,5,6,93)
53,5,x,6,94)
63,5,6,x,95)
93,5,6,9,x
11.
(l)FCFS调度算法
(2)优先级调度算法
(3)时间片轮转法
按次序ABCDEBCDECDEDEE轮转执行。
12.
16.
20.
21.
A10:
0012:
40160
B10:
2010:
5030
C10:
3011:
5080
D10:
5013:
00130
E12:
0012:
2080
F11:
50120050
平均作业周转时间=(160+30+80+130+80+50)/6=
26.
(1)Job4最后一个完成
(2)各个作业的平均周转时间为:
(90+40+120+120+30)/5=80
各个作业的平均带权周转时间为:
+1++6+3)/5=
32.循环周期为4*100+400=800ms
A类进程需要2*1000/100=20个时间片的执行时间,B类进程需要2*1000/400=5个时间片的执行时间,
A类进程的平均周转时间为20*=16s
B类进程的平均周转时间为5*=4s
第三章
思考题:
一:
试述顺序程序设计的特点,以及采用顺序程序设计的优缺点。
答:
顺序程序设计的特性:
(1):
执行的顺序性。
一个程序在处理器上严格按序执行的,每一个操作必须在下一个操作开始之前结束。
(2):
环境的封闭性。
运行程序独占全机资源,资源状态只能由此程序本身决定和改变,也不受外界因素的影响。
(3):
结果的确定性。
程序在执行过程中允许出现中断,但这种中断不会对程序的最终结果产生影响。
(4):
过程的可在现行。
程序针对同一个数据结构的执行过程在下一次执行时会重现,即重复执行的程序会获得相同的执行过程和计算结果。
程序顺序执行与其速度无关,即程序的最终输出仅与初始输入数据有关,而与时间无关。
优点:
为程序的编制和调试带来很大方便。
缺点:
计算机系统的效率不高。
二:
试述并发程序设计的特点,以及采用并发程序设计的优缺点。
答:
特性:
从宏观上看:
并发性反映一个时间段内有几个程序都处于运行但运行尚未结束的状态;从微观上看:
任一时刻仅有一个程序的一个操作在处理器上执行。
程序的并发执行产生资源共享的需求,从而使程序失去封闭性、顺序性、确定性、可在现行。
优点:
(1):
若为单处理系统,可以有效地利用资源,让处理器和设备、设备和设备同时工作,充分发挥硬部件的并行工作能力;
(2):
若为多处理系统,可让进程在不同处理器上物理的并行工作,加快计算速度;
(3):
简化程序设计任务,一般来说,编制并发执行的小程序进度快,容易保持正确性。
可见,计算机硬部件能并行工作仅具备提高效率的可能性而并行工作的实现还需要通过并发程序设计和操作系统引入并发技术来发挥。
五:
解释并发进程的无关性和交互性。
答:
无关性:
无关的并发进程是指他们分别在不同的变量集合上操作,一个进程的执行与其他并发进程的进展无关,即一个进程不会改变另一个与其并发执行的晋城的变量。
交互性:
交互的并发进程共享某些变量,一个进程的执行可能会影响其他进程的执行结果,交互的并发进程之间具有制约关系。
六:
并发进程的执行可能产生于时间有关的错误,试各举一例来说明于时间有关错误的两种表现形式。
答:
时间有关的错误有两种形式,一是结果不唯一,二是永远等待。
结果不唯一:
飞机售票问题。
永远等待:
内存资源的管理问题。
八:
试述进程的互斥和同步两个概念之间的异同。
答:
进程互斥是指若干进程因相互争夺独占性资源而产生的竞争制约关系。
进程同步是指为完成共同任务的并发进程基于某个条件来协调其活动,因为需要在某些位置上排定执行的先后顺序而等待、传递顺序或消息所产生的协调制约关系。
进程互斥关系是一种特殊的进程同步关系,即逐次使用进程同步资源,也是对进程使用资源的次序的一种协调。
九:
什么是临界区和临界资源临界区管理的基本规则是什么
答:
并发进程中与共享变量有关的程序称为临界区。
共享变量所代表的资源称为临界资源。
临界区管理的基本规则:
(1):
一次至多只有一个进程进入临界区内执行。
(2):
如果已有近程在临界区中,试图进入此临界区的其他程序应等待。
(3):
进入临界区内的进程应在有限时间内退出,以便让等待队列中的一个进程进入。
可把临界区的调度原则总结为三句话:
互斥使用,有空让进;忙碌要等,有限等待;择一而入,算法可行。
十二:
那些硬件设施可以实现临界区的管理,简述其的用法。
答:
1:
关中断。
用法:
在进程进入临界区时关中断,进程进入临界区时开中断。
终端被关闭后,时钟中断也被屏蔽,进程上下文切换都是由中断事件引起的,这样进程的执行再也不会被打断,因此采用关中断、开中断的办法就能确保并发进程互斥的进入临界区。
2:
测试并设置指令。
用法:
使用硬件所提供的“测试并设置“机器指令TS(TestandSet),可把这条指令看做函数,他有布尔型参数x和返回条件码,当TS(&x)测到x值为true时则置x为false,且根据所测试到的x值形成条件码。
3:
兑换指令。
用法:
为每个临界区设置布尔型锁变量。
十三:
什么是信号量如何对其进行分类
答:
信号量:
将交通管制中的多种颜色的信号灯管理方法引入操作系统,让多个进程通过特殊变量展开交互。
一个进程在某一关键点上被迫停止执行直至接受到对应的特殊变量值,通过这一措施,任何复杂的进程交互要求均可达到满足,这种特殊变量就是信号量。
对其进行分类:
按用途分有两种:
公用信号量;私有信号量。
按取值分为两种:
二值信号量;一般信号量,又称计数信号量。
十五:
何谓管程他有什么属性
答:
管程是指吧分散在各个进程之间的临界区集中起来管理,并把共享资源用数据用数据结构抽象的表示,由于临界区是访问资源的代码段,建立一个“秘书“程序管理到来的访问。
管程与进程具有同等的表达能力。
管程的属性:
进程调用管程的过程是有一定的限制。
(1):
共享性。
管程中的移出过程可悲所有要调用管程的进程共享。
(2):
安全性。
管程的局部变量只能由此管理的过程访问,不允许进程访问或其他管程来直接访问,一个管程的过程也不应该访问非局部于他的变量。
(3):
互斥性。
在任意时刻共享资源的进程可以访问管程中的管理此资源的过程,但最多只有一个调用者能够真正地进入管程,其他调用者必须等待直至管程可用。
十六:
试述管程中条件变量的含义和作用。
答:
含义:
条件变量是出现在关城内的一种数据结构,且只有在管程中才能被访问,其功能是进程可以在该条件变量上等待或被唤醒他对管程内的所有过程是全局的,只能通过两个原语操作来控制它。
十七:
试比较管程与进程的不同点。
答:
(1):
管程定义的是公用数据结构,而进程所定义的是私有数据结构;
(2):
管程把共享变量上的同步操作集中起来统一管理,而临界区却分散在每个进程中;
(3):
管程是为解决进程共享资源的互斥而建立的,而进程是为战友系统资源和实现系统并发性而引入的;
(4):
管程被欲使用共享资源的所有进程所调用,管程和调用它的进程不能明确并行工作;而进程之间能够并行工作,并发性是其固有特性。
(5):
管程可作为语言或操作系统成分,不必创建或撤销;而进程有生命周期,由创建产生至撤销便消失。
十八:
已经有信号量和pv操作可用作同步工具,为什么还要有消息传递机制
答:
进程同步本质上是一种仅传送信号的进程通信,通过修改信号量,进程之间可以建立联系,相互协同运行和协同工作,但他缺乏传递数据的能力。
在多任务系统中,可由多个进程分工协作完成同一任务,于是他们需要共享一些数据,和相互交换信息,在很多场合需要交换大批量数据可以通过通信机制来完成。
二十二:
试述信号通信机制及其实现。
答:
(1):
每个进程task_struct结构中signal域专门保存接收到的信号,内核根据所发生的时间产生相应的信号并发送给接收数据。
(2):
进程task_struct结构中的blocked是信号屏蔽标记,相当于中断屏蔽寄存器。
(3):
信号处理函数的入口存放在进程task_struct的sigaction[]数组中,利用sigction函数为进程设置信号处理函数。
(4):
函数sigaction(signo,act,oldacd)为指定信号设置处理函数。
(5):
函数kill(pid,sig)用来向指定的进程或进程组发送指定信号。
(6):
信号检测和相应总发生在系统空间。
23:
试述进程的低级通信机制以及其高级通信机制。
24:
什么是死锁什么是饥饿试举生活中的例子加以说明。
答:
如果一个进程集合中的每个进程都在等待只能由此集合中的其他进程才能引发的事件,而无限期的陷入僵持的局面称为死锁。
25:
试述产生死锁的必要条件。
答:
(1):
互斥条件:
临界资源是独占资源,进程应互斥且排他的使用这些资源。
(2):
占有和等待资源:
进程在等待资源得不到满足而等待时,不释放以占有资源。
(3):
不剥夺条件:
又称为不可抢占,已获资源只能有进程自愿释放,不允许被其他