CPU状态分为目态和管态两种,从目态转换到管态的惟一途径是?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CPU状态分为目态和管态两种,从目态转换到管态的惟一途径是?相关的知识,希望对你有一定的参考价值。
参考技术A从目态转换为管态的唯一途径是中断(访管指令或系统调用)。
机器处于目态时,程序只能执行非特权指令。用户程序只能在目态下运行,如果用户程序在目态下执行特权指令,硬件将发生中断,由操作系统获得控制,特权指令执行被禁止,这样可以防止用户程序有意或无意的破坏系统。
当CPU处理系统程序的时候,CPU会转为管态,CPU在管态下可以执行指令系统的全集。(包括特权指令与非特权指令)
从管态到目态可以通过修改程序状态字来实现,这将伴随着由操作系统程序到用户程序的转换。
扩展资料:
访管指令的操作原理:
当源程序中有需要操作系统服务的要求时,编译程序就会在由源程序转换成的目标程序中安排一条“访管指令”并设置一些参数。当目标程序执行时,中央处理器若取到了“访管指令”就产生一个中断事件,中断装置就会把中央处理器转换成管态,并让操作系统处理该中断事件。
操作系统分析访管指令中的参数,然后让相应的“系统调用”子程序为用户服务。系统调用功能完成后,操作系统把中央处理器的管态改为目态,并返回到用户程序。
从程序调用的角度来看,用户应用程序中要调用一些子程序。子程序可以分为用户自己编写的子程序和软件提供的子程序,对后者的访问即被称为访问系统程序(访管)指令,又称为陷阱(TRAP)指令。
访管指令并不是特权指令。所谓特权指令,是指用于操作系统或其他系统软件的指令,一般不提供给用户使用。
参考资料来源:百度百科-访管指令
参考资料来源:百度百科-目态
参考资料来源:百度百科-管态
操作系统:进程控制
核心态和用户态
为了防止操作系统及关键的数据受到用户程序有意无意的破坏,通常将处理器的运行分为核心态和用户态两种。
- 核心态:又称为管态。它具有较高的特权,能够执行一切命令,并访问所有寄存器和存储区。
- 用户态:又称为目态。这是具有较低特权的运行状态,它只能执行规定的指令,访问制定的寄存器和存储区。
处理器管理的一个重要任务就是进程管理。
进程管理:系统使用一些具有特定功能的程序来创建、撤销进程以及完成进程各个状态之间的转换,从而达到多进程、高效率的并发执行和协调,实现资源共享的目的。
原语
在核心状态下执行的某些具有特定功能的程序称之为原语,其特点是执行期间不允许中断,是一个不可分割的单位。
原语的执行是顺序的不是并发,系统对应进程的控制使用原语来实现。
用于进程控制的原语有:进程创建、进程撤销、进程阻塞与唤醒、进程挂起与激活。
进程创建
在系统生成时,要创建一些必须的、承担系统资源分配和管理工作的系统进程。
对于用户作业,每当调入系统时,由操作系统的作业调度程序为它创建相应的进程。
创建者成为父进程、被创建者成为子进程,创建父进程的进程被称为祖父进程,这样就形成了一个进程家族。
无论是系统或是用户创建进程都必须调用创建原语来实现
创建原语的主要功能是创建一个指定标识符的进程,主要任务是形成该进程的PCB
进程撤销
操作系统通常提供撤销(或终止)进程的方法。
其分为:
- 正常终止
- 由于错误而非正常终止
- 由于祖先进程的要求而被终止。
当进程被撤销时,必须从系统队列中移除,并且释放所有资源,同时审查是否有子进程,如果有的话,一并撤销。
进程阻塞与唤醒
有了常见原语和撤销原语,还不能完成各个进程状态之间的转换。
还需要阻塞原语和唤醒原语。
阻塞原语:
当一个进程出现等待事件的时候,该进程调用阻塞原语将自己阻塞。
阻塞原语的功能是:把CPU现场送至该进程的现场保护区,置进程的状态为等待,并插入到相应的等待队列中去,然后转到进程调度程序,另选一个进程投入运行。
唤醒原语:
进程处于等待状态时不能唤醒自己。
有一个“发现者”进程能够在进程所期待的事件出现的时候用唤醒原语叫醒他。
唤醒原语的功能:唤醒处于某一等待队列中的进程,入口信息为唤醒进程名
进程的挂起与激活
由于输入输出的速度比处理机的运算速度更慢,经常会出现处理机等待输入输出的情况。这时操作系统需要将主存中的进程兑换至外存(或称为辅存)。为了刻画这种状态,新增一种为“挂起”的状态。当所有进程阻塞的时候,所有的进程都是等待态,处理机空闲。操作系统可以将一个或者一些进程置为挂起状态,并将他们交换到外存的交换区。
而当计算机中出现了或者空出了进程所需要的资源,操作系统调用激活原语激活进程,将挂起状态的进程从外存调入主存中使用空出的组员,修改这个进程状态为就绪态。
以上是关于CPU状态分为目态和管态两种,从目态转换到管态的惟一途径是?的主要内容,如果未能解决你的问题,请参考以下文章