第二章
一、思考题
1.什么是PSW,它有何作用?
psw:操作系统将程序运行时的一组动态信息会聚在一起,称为程序的状态字
作用:实现程序状态的保护和恢复
3.为什么要把机器指令分成特权指令和非特权指令?
应用程序在执行有关资源管理的机制指令时易于导致系统混乱,造成系统或用户信息被破坏,因此在多道程序设计环境中,从资源管理和控制程序执行的角度出发,必须把指令系统中的指令分成这两类。
4.试分别从中断事件的性质、来源和实现角度对其进行分类
从中断事件的性质和激活的手段来说,可以分成两类:
(1)强迫性中断事件强迫性中断事件不是正在运行的程序所期待的,而是由于某种事故或外部请求信息所引起的,分为:
机器故障中断事件。
程序性中断事件。
外部中断事件。
输入输出中断事件。
(2)自愿性中断事件自愿性中断事件是正在运行的程序所期待的事件。
按事件来源和实现手段分类:
(1)硬中断;硬中断分为外中断(中断、异步中断)和内中断(异常、同步中断);
(2)软中断;软中断分为信号和软件中断。
9.什么是系统调用?试述API、库函数及系统调用间的关系。叙述系统调用执行流程。
由操作系统实现的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。系统调用是一种API,是应用程序同系统之间的接口。
库函数是语言本身的一部分,可以调用多个系统调用;系统调用(函数)是内核提供给应用程序的接口,属于系统的一部分,可以认为是某种内核的库函数;操作系统API是有系统调用(函数)的集合(也就是将许多的系统调用封装在了一起)。
一是编写系统调用服务例程;二是设计系统调用入口地址表,每个入口地址都指向一个系统调用的服务例程,有的还包括系统调用自带的参数个数;三是陷阱处理机制,需要开辟现场保护区,以保存发生系统调用时应用程序的处理器现场。应用程序执行系统调用,产生中断指向内核态,进入陷阱处理程序,它将按功能查询入口地址表,并转至对应服务例程执行,完成后退出中断,返回应用程序断点继续运行。
进程间通信和线程间通信的区别14.简述Linux的快中断和慢中断
快中断:快中断处理仅要保存被常规C函数修改的寄存器;中断处理时会屏蔽所有其他中断;中断处理完毕后,通常恢复现场返回被中断的进程继续执行(是非抢先式调度)。
慢中断:处理慢中断前需保存所有寄存器的内容,中断处理时,不屏蔽其他中断信号,慢中断处理完毕后,通常不立即返回被中断的进程,而是进入调度程序重新调度,调度结果未必是被中断的进程运行(是抢先式调度)。
17.讨论Linux系统的tasklet、work queue和softirq任务延迟处理进制。
(1)tasklet:能更好支持SMP,它基于软中断来实现,但比软中断接口简单,锁保护要求低;softirq保留给执行频率及时间要求特高的下半部分使用(如网络和SCSI),多数场合下可使用tasklet。
使用tasklet的步骤:声明 、编程、调度 。
BH全局串行处理,不适应SMP环境,而不同tasklet可同时运行于不同CPU上,当然,系统保证相同tasklet不会同时在不同CPU上运行,在这种情形下,tasklet就不需要是可重入的。
在新版Linux中,tasklet是建议的异步任务延迟执行机制。
(2)work queue:Linux 2.5内核引入-工作队列,它把一个任务延迟,并交给内核线程去完
成,且该任务总是在进程上下文中执行,通过工作队列执行的代码能占尽进程上下文的优势,最重要的是工作队列允许重新调度及阻塞。
默认的工作者线程:event/n
如果延迟执行的任务需要阻塞,需要获取信号量或需要获得大量主存时,那么,可选择工作队列,否则可使用tasklet或softirq。
(3) Sorfirq:(软中断)是一种软中断机制,亦即是一种信号机制,中断处理程序在其返回前标记下半部分,让其稍后执行;它又是一个框架,纳入了tasklet及为网络操作专门设计的软中断。
18.什么是进程?计算机系统中为什么要引入进程?
(1)进程定义:
进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和保护的基本单位
(2)刻画系统的动态性,发挥系统的并发性,提高资源利用率。
程序是并发执行的,即不是连续而是走走停停的。程序的并发执行引起资源共享和竞争问题,执行的程序不再处在封闭环境中。
“程序”自身只是计算任务的指令和数据的描述,是静态概念无法刻画程序的并发特性,系统需要寻一个能描述程序动态执行过程的概念,这就是进程。
它能解决系统的“共享性”,正确描述程序的执行状态。程序与程序的执行不再一一对应
19.进程有哪些主要属性?试解释之
•共享性:同一程序同时运行于不同数据集合上时构成不同进程,即多个不同进程可执行相同的程序,所以进程和程序不是一一对应的。
•动态性:进程是程序在数据集合上的一次执行过程,是动态概念,同时它有生命周期,由创建而产生、由调度而执行、由事件而等待、由撤销而消亡;而程序是一组有序指令序列,是静态概念,所以程序作为系统中的一种资源是永远存在的
•独立性:每个进程是操作系统中的一个独立实体,有自己的虚存空间,程序计数器和内部状态;
•制约性:进程因共享进程资源或协同工作产生相互制约关系,造成进程执行速度的不可预测,必须对进程的执行次序或相对执行速度加以协调;
•并发性:多个进程的执行在时间上可以重叠,在单处理器系统中可并发执行;在多处理器环境中可并发执行。因此,并发的执行是可被打断的,或者说,进程执行完一条指令后在执行下一条指令前可能被迫让出处理器,由其它若干个进程执行若干条指令后才能再次获得处理器执行。
20.进程最基本的状态有哪些?哪些事件可能引起不同状态间的转换?
运行态、就绪态、等待态
(1)运行态-等待态:运行进程等待使用某种资源或者某事件发生
(2)等待态-就绪态:所需资源得到满足或某事件已经完成
(3)运行态-就绪态:运行时间片到时或出现更高优先级的进程,当前进程被迫让出处理器。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论