操作系统第三单元思考题和练习题
Posted 程序小黑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统第三单元思考题和练习题相关的知识,希望对你有一定的参考价值。
1、什么是多道程序设计
多道程序设计是指在计算机中同时存在两个或者两个以上的在操作系统管理下互相穿插运行的程序。
2、多道程序设计怎么提高系统效率?多道程序设计一定能提高系统效率么?
多道程序设计通过在极短时间内不断切换程序执行,减少IO等待时间来提高系统效率。
多道程序设计可能会导致死锁,所以不一定能提高系统效率。
3、操作系统为什么要引入“进程”?进程和程序有什么区别?
进程是独立占有资源的一个单位。为了能更好的描述程序的并发执行,实现操作系统的并发性和共享性,引入了进程这个概念。
进程的动态的,程序是静态的,程序被装入内存调用时就会变成进程。进程具有产生其他进程的能力。
4、可再入程序有什么特征。
能被多个用户同时调用且不改变程序本身。
6、进程有哪些基本状态,他们的变化关系是怎么样的?
进程三态模型:运行、等待、就绪
运行中的进程缺少需要的资源时进入等待态,当没有运行进程时,根据调度算法选择一个就绪态的进程进入运行态,当等待态的进程得到一个资源时,加入就绪态。
7、系统中有n(n>1)个进程,在任意时刻,处于运行、就绪、等待状态的进程最多、最少有几个。
运行态最多:1个,最少:0个
就绪态最多:n个,最少:0个
等待态最多:n个,最少:0个
8、进程控制块的作用是什么,其主要内容是什么?
进程控制块是描述一个进程存在的数据结构。其中保存了进程号、进程优先级、进程名、当前状态、自愿清单、程序状态字等内容。
其作用就是便于操作系统控制和描述进程的活动过程。用来描述进程的基本情况和运行的变化过程。
9、进程能否修改访问自己的进程控制块的内容?
不能,进程控制块是系统中较为重要的一个部分,只能由操作系统进行修改。
10、当进程调度选中一个进程之后,怎样才能让他占用处理器?
把CPU分配给该进程,把PCB中的有关的现场信息传递到相应的寄存器中。
11、为什么要引入线程?线程和进程之间的区别和联系是什么?
为了更好的实现进程之间的并发执行,更合理的利用进程资源,引入了线程这一概念。
线程是进程的一个组成部分,线程不能独立的拥有资源,线程需要通过进程分配资源。
进程是可拥有资源的独立单位。进程是独立调度和分派的最小单位。
12、为什么说线程之间的状态切换比进程之间的状态切换开销更低?同一个进程中的两个线程切换的开销是否也比不同进程中的两个线程切换的开销小?
因为线程之间的状态切换不需要CPU介入。
是的
13、进程调度的作用是什么?引起进程调度的因素有哪些?
进程调度的作用是更好的实现程序的并发执行,提高操作系统资源的利用率。
因素:时间片用完。没有资源被阻塞。
14、抢占式调度和非抢占式调度有什么区别。
抢占式调度会打断当前正在运行的进程,使当前进程进入运行态
非抢占式调度会在当前进程执行后,将自己插入到运行态。
15、对于进程调度,较小的优先级值是表示较小的优先级还是表示较高的优先级?
有的系统中,优先级值越小,优先级越高。
16、在一个单处理器的多道程序设计中,现有两道程序同时运行,其中一道以计算为主,另一个以输入输出为主。将怎样赋予进程占有处理器的优先数,解释为什么。
计算为主的为计算密集型,需要高优先级,让CPU经常进行计算,减少计算等待时间。
输入输出为主的为IO密集型,设计低优先级,避免CPU等待IO,减少等待IO时间。
17、假定就绪队列中的进程按优先数自大到小的顺序排列,当有进程要加入就绪队列时,应按他的优先数排入相应的位置,试就单向链接的方式写出实现进程入队的程序。
For(int I=0;i<count(program_list);i++)
If(program_list[i] < now)
For(int j = count(program_list)+1;j>i+1;j–)
Program_list[j+1] = program_list[j];
Program_list[i] = now;
以上是关于操作系统第三单元思考题和练习题的主要内容,如果未能解决你的问题,请参考以下文章
JAVA语言程序设计课后习题----第三单元解析(仅供参考)