目录

操作系统CPU模式习题

目录

操作系统(CPU模式)习题

1、什么是内核态和用户态?处理器为什么要区分内核态和用户态两种操作方式?计算机如何识别?

答: 内核态 是指操作系统程序的运行状态,也称之为 特权态 。相对来说, 用户态 就是非特权态,在此种状态下访问的资源将受到限制。

如果一个程序运行在 内核态 ,则该程序就 可以访问 计算机的任何资源,即它的 资源访问权限 不受限制 。

如果一个程序运行在 用户态 ,则其 资源需求将受到各种限制 。区分内核态和用户态两种操作方式的目的是为了 保护操作系统程序

提高操作系统的 可靠性

安全性 。处理器的程序状态字寄存器(PSW)中有一个 状态位 用于记录 程序的 运行状态 ,即当前程序是内核态

还是用户态,这种状态是 处理器 的一种状态,而不是程序的状态。

2、简述用户态切换到内核态的几种方式。

答:用户态切换到内核态主要有如下3种方式:


系统调用 。这是用户态进程 主动要求 切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的的 服务程序 完成

工作。系统调用机制的核心还是使用了操作系统为用户特别开放的一个 中断 来实现。


异常 。当CPU在执行用户态程序时,发生了某些事先不可知的异常,这时会触发由 当前运行进程 切换到 处理此异常 的内核相关程序中,

也就转到了内核态,例如缺页异常。


I/O设备的中断 。当I/O设备完成用户请求操作后,会向CPU发出相应的中断信号,这时CPU会 暂停执行 下一条即将要执行的指令,转

而去执行与中断信号对应的的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态

的切换。例如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续的操作。

—   以上的这3种方式是系统在运行时由用户态转到内核态的最主要方式。

其中 系统调用 可以认为是 用户进程主动 发起的, 异常外部设备中断 则是 被动 的。

3、用户程序如何使用系统调用?

答: 访管指令 是一条可以在 用户态 下执行的指令,用户程序在编译时将 调用操作系统 的逻辑要求转换成一条访管指令,并设置一些参数;

当执行到访管指令,访管中断,转入内核态执行系统调用程序,实现指定功能;系统调用完成后回到用户态执行用户程序。

4、简述系统调用的概念和操作系统提供系统调用的原因。

答:系统调用也称 程序接口 ,是程序级的接口,即用户程序可以利用系统调用提供的一组系统调用命令去调用操作系统内核中的一个

(或一组)过程来完成自己所需要的功能。

系统调用可以看作是 操作系统内核应用程序 之间进行交互的接口,操作系统向用户程序提供系统调用的原因是为了 对系统进行“保护”

当用户程序需要系统服务,也就是要调用系统内核中的某些程序时,只能 从规定的位置进入内核 ,这样才能保证系统的安全。

5、简述系统调用的实现过程。

答:系统调用的一般处理过程如下:

—-  系统 产生软中断 ,由硬件完成现场保护,并通过中断向量转向系统调用总控程序,同时 处理器状态 由用户态切换为内核态。

—-  系统调用总控程序根据 系统调用号 和系统内部的 系统调用入口 转入相应的 系统调用处理过程

—-  系统调用处理过程执行完毕后,返回 执行成功与否 以及成功时的执行结果给调用者, 恢复 中断进程新调度进程 的CPU现场,

返回被中断进程或新进程运行。