1、为何引入多道程序设计?在多道程序设计中,内存中的作业是否越多越好?请说明原因。
引入多道程序设计技术是为了提高计算机系统资源的利用率。
在多道程序系统中,内存中作业的道数并非越多越好。一个计算机系统中的内存、外设等资源是有限的,只能容纳适当数量的作业。当作业道数增加时,将导致对资源的竞争激烈,系统开销增大,从而导致作业的执行缓慢,系统效率下降。
2、多道程序设计会带来那些问题?如何解决?
带来的问题:
1、处理器资源管理问题
2、内存资源管理问题
3、设备资源管理问题
解决办法: 确定适当的分配策略,对资源进行管理。
3、什么是进程?进程具有哪些特点?试比较进程与程序之间相同点与不同点。
进程:进程是具有一定独立功能的程序关于一个数据集合的一次运行活动。
特点:并发性、动态性、独立性、交往性、异步性、结构性
相同点与不同点:程序是静态的,进程是动态的;进程是有生命周期的,而程序没有,一个程序可对应多个进程,一个进程对应一个程序。
4、有人说,用户进程所执行的程序一定是用户自己编写的。这种说法正确吗?如果不正确,请举例说明。
这种说法是不正确的,例如C编译程序是以用户进程身份运行,但是C编译程序并不是用户自己写的;此外还有字处理程序等工具。
5、什么是进程上下文?进程上下文包含哪些成分?哪些成分是对目态程序可见?
将进程的物理实体与支持进程运行的物理环境合称为进程上下文
进程上下文包括三个部分:
其中用户级上下文以及寄存器上下文对目态程序是可见的。
6、进程一般具有哪3种主要状态?举例说明状态转换的原因。
进程在生命周期内可能存在3中状态:
进程的三个基本状态之间是可以相互转换的。具体地说,当一个就绪进程获得处理机时,其状态由就绪变为运行 ; 当一个运行进程被剥夺处理机时,如用完系统分给它的时间片,或出现高优先级别的其它进程,其状态由运行变为就绪;当一个运行进程因某事件受阻时,如所申请资源被占用,启动 I/O 传输未完成,其状态由运行变为等待当所等待事件发生时,如得到申请资源,I/O 传输完成,其状态由等待变为就绪。
7、有几种类型的进程队列?每类各应设置几个队列?
进程有三种类型的队列:就绪队列(整个系统一个)、等待队列(每个等待事件一个)、运行队列(在但CPU系统中只有一个)
8、什么是进程控制块?进程控制块中一般包含了哪些内容?
进程控制块(PCB)记录操作系统需要的、用于描述进程情况以及控制进程运行所需要的全部信息。
进程控制块中包含:进程表示、用户表示、进程状态、调度参数、现场信息、程序地址、当前打开文件、进程队列指针等。
9、什么是线程?图示线程与进程之间的关系。
线程可以理解为轻量级的进程,是程序执行的最小单元。在某个进程启动后,会默认产生一个主线程,主线程可以创建多个子线程,因此线程是存在进程内的,位于一个进程内的线程可以共享部分资源,故线程间的切换比进程少得多。
进程与线程之间的关系:
11、什么是线程控制块?线程控制块中一般包含哪些内容?
线程控制块(TCB)用来保护运行时线程状态的数据结构,在线程切换时用来保持线程信息域。
线程控制块中包括了:线程控制ID、线程运行计数器、线程堆栈指针、堆栈起始地址、堆栈大小、当前时间片(剩余运行时间)、新的时间片等
12、同一进程中的多个线程有哪些成分是共用的,哪些成分是私用的?
公用的部分:堆数据和程序代码
私用部分:线程序块、寄存器和用户栈
13、试比较用户级别线程与核心级别线程间在以下哪几个方面的差别各自的优缺点。
(1)创建速度 (2)切换速度 (3)并行性 (4)线程控制块的存储位置
用户级线程由系统库支持线程的创建和撤TCB 保存在销,以及线程状态的变化都由库函数控制并在目态完成,与线程相关的控制结构目态空间并由运行系统维护。由于线程对操作系统不可见,系统调度仍以进程为单位,核心栈的个数与进程个数相对应用户级别线程的优点在于:
(1) 线程不依赖于操作系统,可以采用与问题相关的调度策略,灵活性好:
(2)同一进程中的线程切换不需进入操作系统,因而实现效率较高。
缺点在于:
(1)同一进程中的多个线程不能真正并行,即使在多处理机环境中;
(2)由于线程对操作系统不可见,调度在进程级别,某进程中的一个线程通过系统调用进入操作系统受阻,该进程的其它线程也不能运行核心级别线程通过系统调用由操作系统创建,线程的控制结构 TCB 保存于操作系统空间,线程状态转换由操作系统完成,线程是CPU 调度的基本单位。 另外由于系统调度以线程为单位,操作系统还需要为每个线程保持一个核心栈核华心级线程的优点是并发性好,在多 CPU 环境中同一进程中的多个线程可以真正并行执行心级别线程的缺点是线程控制和状态转换需要进入操作系统完成,系统开销比较大。
15、何谓作业?何谓作业步?作业合适转变为进程?
作业:指用户在解决或是一个事物处理过程中要求计算机系统做的工作的集合。
作业步:作业中一个相对独立的处理步骤作业进入内存,根据作业步的要求建立进程。
16、试分析作业、进程、线程三者之间的关系
一个作业包含多个进程,一个进程包含多个线程
作业是向计算机提交任务的任务实体,进程是执行实体,是资源分配的基本单位,线程是处理器调度的基本单位。
17、何谓系统开销?
运行操作系统程序对系统进行管理而花费的时间和空间。如作业调度、进程调度、进程切换等。