0%

习题-王道-操作系统-ch1-计算机系统概论.md

凑数

凑数

凑数

凑数

处理器为什么要区分核心态和用户态两种操作方式?在什么情况下进行两种方式的切换?
解析

区分执行态的主要目的是保护系统程序。用户态到核心态的转换发生在中断产生时,而核心态到用户态的转换则发生在中断返回用户程序时。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
为什么说直到出现中断和通道技术后,多道程序概念才变得有用?
解析

多道程序并发执行是指有的程序正在CPU上执行,而另一些程序正在I/O设备上进行传输,即通过CPU操作与外设传输在时间上的重叠必须有中断和通道技术的支持,原因如下:

1)通道是一种控制一台或多台外部设备的硬件机构,它一旦被启动就独立于CPU运行,因而做到了输入/输出操作与CPU并行工作。但早期CPU与通道的联络方法是由CPU向通道发出询问指令来了解通道工作是否完成的。若未完成,则主机就循环询问直到通道工作结束为止。因此,这种询问方式是无法真正做到CPU与IO设备并行工作的。

2)在硬件上引入了中断技术。所谓中断,就是在输入/输出结束时,或硬件发生某种故障时,由相应的硬件(即中断机构)向CPU发出信号,这时CPU 立即停下工作而转向处理中断请求,待处理完中断后再继续原来的工作。

因此,通道技术和中断技术结合起来就可实现 CPU 与I/O设备并行工作,即CPU启动通道传输数据后便去执行其他程序的计算工作,而通道则进行输入/输出操作;当通道工作结束时,再通过中断机构向CPU发出中断请求,CPU则暂停正在执行的操作,对出现的中断进行处理,处理完后再继续原来的工作。这样,就真正做到了CPU与I/O设备并行工作。此时,多道程序的概念才变为现实。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
1.相对于传统操作系统结构,采用微内核结构设计和实现操作系统具有诸多好处,下列( )是微内核结构的特点。

I.使系统更高效

II.添加系统服务时,不必修改内核

III.微内核结构没有单一内核稳定

IV.使系统更可靠

A. I、III、IV

B. I、II、IV

C.II、IV

D.I、IV

解析

1.答案:$\color{green}{\text{C}}$

微内核结构将操作系统的很多服务移动到内核以外(如文件系统),且服务之间使用进程间通信机制进行信息交换,这种通过进程间通信机制进行的信息交换影响了系统的效率,所以Ⅰ错。由于内核的服务变少,且一般来说内核的服务越少内核越稳定,所以Ⅲ错。而II、IV正是微内核结构的优点。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
2.下列关于线程的叙述中,正确的是()。

A.线程包含CPU现场,可以独立执行程序

B.每个线程有自己独立的地址空间

C.进程只能包含一个线程

D.线程之间的通信必须使用系统调用函数

解析

2.$\color{green}{\text{A}}$

线程是处理机调度的基本单位,当然可以独立执行程序,A对;线程没有自己独立的地址空间,它共享其所属进程的空间,B错;进程可以创建多个线程,C错;与进程之间线程的通信可以直接通过它们共享的存储空间,D错。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
4.进程与程序的根本区别是()。

A.静态和动态特点

B.是不是被调入内存

C.是不是具有就绪、运行和等待三种状态

D.是不是占有处理器

解析

4.$\color{green}{\text{A}}$

动态性是进程最重要的特性,以此来区分文件形式的静态程序。操作系统引入进程的概念,是为了从变化的角度动态地分析和研究程序的执行。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
一个进程的基本状态可以从其他两种基本状态转变过去,这个基本的状态一定是()。

A.执行状态

B.阻塞态

C.就绪态

D.完成状态

解析

只有就绪态可以既由运行态转变过去又能由阻塞态转变过去。时间片到,运行态变为就绪态;当所需要资源到达时,进程由阻塞态转变为就绪态。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
并发进程失去封闭性,是指()。

A.多个相对独立的进程以各自的速度向前推进

B.并发进程的执行结果与速度无关

C.并发进程执行时,在不同时刻发生的错误

D.并发进程共享变量,其执行结果与速度有关

解析

$\color{green}{\text{D}}$.并发进程共享变量,其执行结果与速度有关

程序封闭性是指进程执行的结果只取决于进程本身,不受外界影响。也就是说,进程在执行过程中不管是不停顿地执行,还是走走停停,进程的执行速度都不会改变它的执行结果。失去封闭性后,不同速度下的执行结果不同。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
下面的说法中,正确的是()。

A.不论是系统支持的线程还是用户级线程,其切换都需要内核的支持

B.线程是资源分配的单位,进程是调度和分派的单位

C.不管系统中是否有线程,进程都是拥有资源的独立单位

D.在引入线程的系统中,进程仍是资源调度和分派的基本单位

解析

15.C

引入线程后,进程仍然是资源分配的单位。线程是处理器调度和分派的单位,线程本身不具有资源,它可以共享所属进程的全部资源,C对,B、D明显是错的。至于A,可以这样来理解:假如有一个内核进程,它映射到用户级后有多个线程,那么这些线程之间的切换不需要在内核级切换进程,也就不需要内核的支持。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
在多对一的线程模型中,当一个多线程进程中的某个线程被阻塞后,( )。

A.该进程的其他线程仍可继续运行

B.整个进程都将阻塞

C.该阻塞线程将被撤销

D.该阻塞线程将永远不可能再执行

解析

$\color{green}{\text{B}}$.整个进程都将阻塞

在多对一的线程模型中,用户级线程的“多”对操作系统透明,即操作系统并不知道用户有多少线程。因此该进程的一个线程被阻塞后,该进程就被阻塞,进程的其他线程当然也都被阻塞。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
c语言程序中各个数据结构存放的位置
图片详情找不到图片(Image not found)
解析

20.B、D、D、C、B、A

C语言编写的程序在使用内存时一般分为三个段,它们一般是正文段(即代码和赋值数据段)、数据堆段和数据栈段。二进制代码和常量存放在正文段,动态分配的存储区在数据堆段,临时使用的变量在数据栈段。由此,我们可以确定全局赋值变量在正文段赋值数据段,未赋值的局部变量和实参传递在栈段,动态内存分配在堆段,常量在正文段,进程的优先级只能在PCB内。

关于全局变量处于正文段的参考文献

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
在一个多道系统中,若就绪队列不空,就绪的进程数目越多,处理器的效率()。

A.越高

B.越低

C.不变

D.不确定

解析

$\color{green}{\text{C}}$.不变

由进程的状态图(见图2.1)可以看出,进程的就绪数目越多,争夺CPU的进程就越多但只要就绪队列不为空,CPU就总是可以调度进程运行,保持繁忙。这与就绪进程的数目没有关系,除非就绪队列为空,此时CPU进入等待态,导致CPU的效率下降。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
对进程的管理和控制使用( )。

A.指令

B.原语

C.信号量

D.信箱

解析

对进程的管理和控制功能是通过执行各种原语来实现的,如创建原语等。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
会导致新进程创建的操作
图片详情找不到图片(Image not found)
解析

$\color{green}{\text{C}}$

I.用户登录成功后,系统要为此创建一个用户管理的进程,包括用户桌面、环境等。所有户进程都会在该进程下创建和管理。II.设备分配是通过在系统中设置相应的数据结构实现的,不需要创建进程,这是操作系统中IO核心子系统的内容。Ⅲ.启动程序执行是引起创建进程的典型事件。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
【2012统考真题】下列关于进程和线程的叙述中,正确的是().

A.不管系统是否支持线程,进程都是资源分配的基本单位

B.线程是资源分配的基本单位,进程是调度的基本单位

C.系统级线程和用户级线程的切换都需要内核的支持

D.同一进程中的各个线程拥有各自不同的地址空间

解析

$\color{green}{\text{A}}$.不管系统是否支持线程,进程都是资源分配的基本单位

在引入线程后,进程依然是资源分配的基本单位,线程是调度的基本单位,同一进程中的各个线程共享进程的地址空间。在用户级线程中,有关线程管理的所有工作都由应用程序完成,无须内核的干预,内核意识不到线程的存在。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
【2010统考真题】下列选项中,降低进程优先级的合理时机是()。

A、进程时间片用完

B.进程刚完成IO操作,进入就绪队列

C.进程长期处于就绪队列

D.进程从就绪态转为运行态

解析

$\color{green}{\text{A}}$、进程时间片用完

A中进程时间片用完,可降低其优先级以让其他进程被调度进入执行状态。B中进程刚完成I/O,进入就绪队列等待被处理机调度,为了让其尽快处理IO结果,因此应提高优先级。C中进程长期处于就绪队列,为不至于产生饥饿现象,也应适当提高优先级。D中进程的优先级不应该在此时降低,而应在时间片用完后再降低。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
计算机两个系统中两个协作进程之间不能用来进行进程间通信的是().

A.数据库

B.共享内存

C.消息传递机制

D.管道

解析

$\color{green}{\text{A}}$.数据库

进程间的通信主要有管道、消息传递、共享内存、文件映射和套接字等。数据库不能用于进程间通信。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
进程何时会被唤醒
图片详情找不到图片(Image not found)
解析
图片详情找不到图片(Image not found)
题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
进程和程序之间可以形成一对一、一对多、多对一、多对多的关系,请分别举例说明在什么情况下会形成这样的关系。
解析

从进程的概念、进程与程序之间的关系来考虑问题的解答。进程是程序的执行过程,进程代表执行中的程序,因此进程与程序的差别就隐含在“执行”之中。程序是静态的指令集合,进程是程序的动态执行过程。静态的程序除占用磁盘空间外,不需要其他系统资源,只有执行中的进程才需要分配内存、CPU等系统资源。

进程的定义说明了两点:

1)进程与程序相关,进程包含了程序。程序是进程的核心内容,没有程序就没有进程。

2)进程不仅仅是程序,还包含程序在执行过程中使用的全部资源。没有资源,程序就无法执行,因此进程是程序执行的载体。

运行一个程序时,操作系统首先要创建一个进程,为进程分配内存等资源,然后加入进程队列中执行。对单个进程在某个时刻而言,一个进程只能执行一个程序,进程与程序之间是一对一的关系。但对整个系统中的进程集合及进程的生命周期而言,进程与程序之间可以形成一对一、多对一、一对多、多对多的关系。

解答:

执行一条命令或运行一个应用程序时,进程和程序之间形成一对一的大尔。光性A一个中可以加载执行不同的应用程序,从而形成一对多的关系;以不同的参数或数据多次执行同一个应用程序时,形成多对一的关系;并发地执行不同的应用程序时,形成多对多的关系。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
父进程创建子进程和主程序调用子程序有何不同?
解析

父进程创建子进程后,父进程与子进程同时执行(并发)。主程序调用子程序后,主程序暂停在调用点,子程序开始执行,直到子程序返回,主程序才开始执行。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
为什么进程之间的通信必须借助于操作系统内核功能﹖简单说明进程通信的几种主要方式。
解析

在操作系统中,进程是竞争和分配计算机系统资源的基本单位。每个进程都有自己的独立地址空间。为了保证多个进程能够彼此互不干扰地共享物理内存,操作系统利用硬件地址机制对进程的地址空间进行了严格的保护,限制每个进程只能访问自己的地址空间。

解答:

每个进程有自己独立的地址空间。在操作系统和硬件的地址保护机制下,进程无法访问其他进程的地址空间,所以必须借助于操作系统的系统调用函数实现进程之间的通信。进程通信的主要方式有:

1)共享内存区。通过系统调用创建共享内存区。多个进程可以(通过系统调用)连接同一个共享内存区,通过访问共享内存区实现进程之间的数据交换。使用共享内存区时需要利用信号量解决同步互斥问题。

2)消息传递。通过发送/接收消息,系统调用实现进程之间的通信。当进程发送消息时,系统将消息从用户缓冲区复制到内核中的消息缓冲区,然后将消息缓冲区挂入消息队列。进程发送的消息保持在消息队列中,直到被另一进程接收。当进程接收消息时,系统从消息队列中解挂消息缓冲区,将消息从内核的消息缓冲区中复制到用户缓冲区,然后释放消息缓冲区。

3)管道系统。管道是先进先出(FIFO)的信息流,允许多个进程向管道写入数据,允许多个进程从管道读出数据。在读/写过程中,操作系统保证数据的写入顺序和读出顺序是一致的。进程通过读/写管道文件或管道设备实现彼此之间的通信。

4)共享文件。利用操作系统提供的文件共享功能实现进程之间的通信。这时,也需要信号量来解决文件共享操作中的同步和互斥问题。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
什么是多线程?多线程与多任务有什么区别?
解析

多线程是指在一个程序中可以定义多个线程并同时运行它们,每个线程可以执行不同的任务。

多线程与多任务的区别:多任务是针对操作系统而言的,代表操作系统可以同时执行的程序个数;多线程是针对一个程序而言的,代表一个程序可以同时执行的线程个数,而每个线程可以完成不同的任务。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
回答下列问题:

1)若系统中没有运行进程,是否一定没有就绪进程?为什么?

2)若系统中既没有运行进程,又没有就绪进程,系统中是否就没有进程?为什么?

3)在采用优先级进程调度时,运行进程是否一定是系统中优先级最高的进程?

解析

1)是。若系统中未运行进程,则系统很快会选择一个就绪进程运行。只有就绪队列中无进程时,CPU才可能处于空闲状态。

2〉不一定。因为系统中的所有进程可能都处于等待态,可能处于死锁状态,也有可能因为等待的事件未发生而进入循环等待态。

3)不一定。因为高优先级的进程有可能正处在等待队列中,进程调度会从就绪队列中选择一个进程占用CPU,这个被选中的进程可能优先级较低。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
现代操作系统一般都提供多进程(或称多任务)运行环境,回答以下问题:

1)为支持多进程的并发执行,系统必须建立哪些关于进程的数据结构?

2)为支持进程状态的变迁,系统至少应提供哪些进程控制原语?

3 )执行每个进程控制原语时,进程状态发生什么变化?相应的数据结构发生什么变化?

解析

1)为支持多进程的并发执行,系统为每个进程建立了一个数据结构:进程控制块(PCB),用于进程的管理和控制。PCB中记录了有关进程的一些描述信息和控制信息,包括进程标识符、进程当前的状态、优先级、进程放弃CPU时的现场信息,以及指示组成进程的程序和数据在存储器中存放位置的信息、资源使用信息、进程各种队列的连接指针和反映进程之间的隶属关系的信息等。

2)在进程的整个生命周期中,会经历多种状态。进程控制的主要职能是对系统中所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程的状态转换等功能。在操作系统内核中,有一组程序专门用于完成对进程的控制,这些原语至少需要包括创建新进程原语、阻塞进程原语、唤醒进程原语、终止进程原语等操作。系统服务对用户开放,即用户可以通过相应的接口来使用它们。

3)进程创建原语:从PCB集合中申请一个空白的PCB,将调用者参数(如进程外部标识符初始CPU状态、进程优先数、初始内存及申请资源清单等)添入该PCB,设置记账数据置新进程为“就绪”态。

终止进程原语:用于终止完成的进程,回收其所占资源。包括消去其资源描述块,消去进程的PCB。

阻塞原语:将进程从运行态变为阻塞态。进程被插入等待事件的队列,同时修改PCB中相应的表项,如进程状态和等待队列指针等。

唤醒原语:将进程从阻塞态变为就绪态。进程从阻塞队列中移出,插入就绪队列,等待调度,同时修改PCB中相应的表项,如进程状态等。

题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|
看图说话
图片详情找不到图片(Image not found)
解析
图片详情找不到图片(Image not found)
题目tag详情###### 总结 |题型|错因|教训|视频讲解| |---|---|---|---| ||||nan|