1、下列关于线程的描述中,错误的是
A.内核级线程的调度由操作系统完成
B.操作系统为每个用户级线程建立一个线程控制块
C.用户级线程间的切换比内核级线程间的切换效率高
D.用户级线程可以在不支持内核级线程的操作系统上实现
答案:B
解析:应用程序没有进行线程管理的代码,只有一个到内核级线程的编程接口,内核为进程及其内部的每个线程维护上下文信息,调度也是在内核中由操作系统完成的,即A选项正确;
在多线程模型中,用户级线程和内核级线程的连接方式分为多对一、一对一和多对多,操作系统为每个用户级线程建立一个线程控制块是属于一对一模型,其他两个模型没有为用户级线程建立一个线程控制块,即B选项错误;
用户级线程的切换可以在用户空间内完成,内核级线程的切换需要操作系统帮助进行调度,需要一定的开销,即用户级线程间的切换比内核级线程间的切换效率高,即C选项正确;
用户级线程的管理工作可以只在用户空间中进行,因此可以在不支持内核级线程的操作系统上实现,即D选项正确。
多线程模型
(1)多对一模型

(2)一对一模型

(3)多对多模型

2、下列关于多任务操作系统的叙述中,正确的是____。
Ⅰ.具有并发和并行的特点
Ⅱ.需要实现对共享资源的保护
Ⅲ. 需要运行在多CPU的硬件平台上
A. 仅Ⅰ
B. 仅Ⅱ
C. 仅Ⅰ、Ⅱ
D. Ⅰ、Ⅱ、Ⅲ
答案:C,多CPU并非是多任务操作系统的必备硬件,单CPU也可运行多任务。
并行:指在 同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是一起执行的。
并发:指在 同一时刻只能有一条指令执行,但多个进程指令被 快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行
3、某单CPU系统中有输入和输出设备各1台,现有3个并发执行的作业,每个作业的输入、计算和输出时间均分别为2ms、3ms和4ms,且都按输入、计算和输出的顺序执行,则执行完3个作业需要的时间最少是 ()。
A.15ms
B.22ms
C.17ms
D.27ms
解析:
CPU、输入设备、输出设备都只有一个,各操作步骤不能重叠,
画出运行图后就能清楚地看到不同作业间的时序关系,如下图所示。

4、下列选项中,会导致用户进程从用户态切换到内核态的操作是()。
I.整数除以零 II. sin()函数调用 III. read 系统调用
仅 I、 II
仅 I、 III
仅 II、 III
I、 II 和 II
用户态切换到内核态的三种方式:
系统调用:比如读取命令行输入。本质上是通过中断实现的。系统调用指代的是系统函数调用。这是发生在用户态主动请求切换到内核态的过程中的。
用户程序发生异常:比如发生缺页异常。会触发当前运行的进程切换到处理此内核异常的内核相关程序中,即切换到内核态。
外围设备的中断:外围设备完成用户请求的操作之后,会先CPU发出中断信号,这时CPU会转去处理对应的中断处理程序
sin() 函数不是系统函数。
5、

1、计算要占CPU
2、I/O不占CPU
3、先出发的先执行
4、计算使用CPU可以与I/O一起进行,但是不能与I/O并行
