1.什么是多道程序设计?多道程序设计与分时系统的区别是什么?
多道程序设计技术,是指允许多个程序同时进⼊内存并运⾏。即同时把多个程序放⼊内存中,并允许它们交替在CPU中运⾏,共享系统中的各种硬、软件资源,当⼀道程序因I/O请求⽽暂停运⾏时,CPU便⽴即转去运⾏另⼀道程序。多道程序设计技术提⾼了CPU、I/O设备和内存的利⽤率,从⽽提⾼了整个系统的资源利⽤率和系统吞吐量,最终提⾼了整个系统的效率。
多道程序设计与分时系统的区别在于:多道程序设计主要关注的是如何让多个程序在内存中同时存在并交替执⾏,以提⾼资源利⽤率。分时系统则是在多道程序设计的基础上进⼀步发展,它不仅允许多个程序并发执⾏,还通过时间⽚轮转的⽅式为每个⽤户分配CPU时间,使得多个⽤户可以⼏乎同时使⽤计算机,提供交互式服务。
2.什么原因推动了操作系统从批处理发展到多道程序,进而发展到分时系统?
批处理系统的运⾏效率被低速I/O设备限制,CPU空闲时间多,利⽤率低,因此发展出多道程序系统;
多道程序系统平均周转时间⻓,不能提供交互作⽤能⼒,因此发展出允许多个⽤户共享计算机,多个程序分时共享硬、软件资源的分时系统。
3.什么是陷阱?与中断的区别是什么?什么是系统调用?
陷阱是⼀种同步异常,是程序内部有意设置的某⼀特定指令执⾏的结果,例如系统调⽤。陷阱是程序执⾏过程中预期的⾏为,可以复现,⽤于请求操作系统提供服务等。
中断是⼀种异步异常,通常由外部事件(I/O设备、处理器时钟或定时器)触发,与处理器正在执⾏的内容⽆关。中断是不可预测的,⽤于处理外部事件。
系统调⽤是⽤户程序与操作系统内核之间的接⼝,允许⽤户程序请求操作系统提供的服务。系统调⽤本质上是⼀种同步异常,或陷阱,⽤于安全地进⼊内核模式并执⾏特权操作。
4.判断:可移植的操作系统可以从一个系统架构移植到另外一个系统架构而无需修改。
错误。不同系统架构之间存在指令集差异、内存管理方式不同、硬件寄存器配置不一致等根本性区别,操作系统必须针对这些硬件特性进行调整。
(1)请解释为什么构建完全可移植的OS是不可能的?
不同硬件架构的指令集、总线设计和CPU字长等存在差异,操作系统必须依赖硬件相关代码,⽆法完全通⽤。
(2)如果需要你设计一个高度可移植的OS,那么请描述你需要设计的两个层次?
高度可移植的操作系统由机器相关层和机器无关层组成。机器无关层只需实现一次即可。
机器相关层处理硬件的具体特性,必须针对每个架构单独实现。该层为机器无关层提供统一的接口。为实现高度可移植性,机器相关层的规模应尽可能最小化。
5.在设计操作系统时,一些设计指标是相互矛盾的,例如资源利用率、吞吐量、处理时间、健壮性等。请给出一对相互矛盾的设计实例。
资源利⽤率与响应时间。
资源利⽤率⾼意味着尽可能多地利⽤系统资源,但可能导致频繁的切换和复杂的调度策略,从⽽增加响应时间。响应时间短要求操作系统能够快速响应⽤户请求,可能保留更多的资源⽤于即时响应,导致资源利⽤率下降。
6.一个计算机系统有输入机一台、打印机两台,现有二道程序同时投入运行,且程序A先开始运行,程序B后运行。程序A的运行轨迹为:计算50ms,打印信息100ms,再计算50ms,打印信息100ms,结束。程序B运行的轨迹为:计算50ms,输入数据80ms,再计算100ms,结束。要求:
(1)用图画出这二道程序并发执行时的工作情况。
(2)说明在二道程序运行时,CPU有无空闲等待?若有,在哪段时间内等待?为什么会空闲等待?
有。在100ms~150ms,程序A在打印信息,程序B在输入数据,故CPU处于空闲等待。
(3)程序A、B运行时有无等待现象?在什么时候会发生等待现象?
程序A没有,程序B有。
在180ms~200ms,程序B完成了输入数据,在等待CPU空闲,而程序A占用了处理器,正在进行计算,故程序B等待了20ms。