操作系统中的特权指令和非特权指令
在本教程中,我们将学习操作系统中的特权和非特权指令。在学习这些指令之前,让我们先了解一下操作系统的情况。
操作系统
操作系统是一个程序,它被用来作为计算机和计算机硬件之间的中介或网关。操作系统(OS)是在启动程序安装在计算机上之后或之前,处理计算机上所有其他应用程序的软件。
开机程序的安装是由指定的应用程序接口完成的,应用程序向操作系统寻求服务(API)。此外,用户可以通过使用用户界面,如图形用户界面(UI)或命令行界面(CLI)或(GUI)直接与操作系统进行交流
双模式操作
只有当操作系统运行良好时,计算机才能正常工作。因此,我们必须确保操作系统具有或在正确的执行下工作。
为了确保操作的正确执行,我们必须确保操作系统的正确执行,我们必须能够区分操作系统代码和用户定义代码的执行。所有的计算机都遵循这种方法。之所以采用这种方式,是因为操作系统为硬件提供支持,它可以帮助我们,让我们看到各种执行模式之间的差异。
我们还需要各种操作模式,因为程序中的错误会给现有的和正在执行的进程造成或带来许多问题。
例如,如果正在运行的程序被卡在一个无限循环中。那么,所有剩余的进程都必须等待现有进程的完成。实际上,程序永远不会停止执行,直到所有的资源被耗尽。因此,为了防止所有这些问题的发生,我们使用了这种双模式操作。
双模式操作中使用的两种操作是。
- User Mode
- Kernel Mode
用户模式
用户模式是在计算机系统执行给操作系统的进程时使用的,当用户应用如在记事本中创建文件或使用任何内置程序时,那么在这些情况下,操作系统使用用户模式。
将会有一个从用户模式到内核模式的切换,以处理用户程序对操作系统服务、中断或系统调用的请求。
内核模式
内核模式是在计算机系统执行给操作系统的进程时使用的,当操作系统启动并处于加载状态时,系统就会安装启动程序,硬件在内核中启动。这种模式用于在用户模式下启动用户应用程序。
为了保护内核模式,操作系统只使用只能在内核模式下执行的特权指令。如果用户试图在用户模式下运行特权指令,那么操作系统将把指定的指令视为非法,并向操作系统发出陷阱。
内核模式也被称为监督者模式、系统模式、特权模式等。
用户模式和内核模式之间的关系
用户模式和内核模式是通过一个位来区分的。这个位也被称为模式位。这个模式位被添加到计算机硬件中。这种添加是为了了解计算机的当前模式。
如果该位或模式位为零(0),那么,执行的模式就是内核模式。
如果该位或模式位为一(1),那么,执行的模式是用户模式。
这有助于将用户模式和内核模式之间的任务分开。当计算机系统代表一个用户应用程序执行时,系统处于用户模式。然而,当一个用户应用程序向操作系统请求服务时(通过.系统调用),它必须从用户模式过渡到内核模式来完成请求。在系统启动时,硬件以内核模式启动。然后,操作系统被加载并在用户模式下启动用户应用程序。
指令
指令是一个应用程序或应用程序给计算机的工作或命令。这些指令由计算机中使用的操作系统来执行。在操作系统中,有两种类型的指令。它们是
1.特权指令
2.非特权指令
在了解它们之前,让我们了解一下操作系统中指令的生命周期。
指令的生命周期
指令的演变从最初执行指令开始,在内核模式下进行,由操作系统控制。当一个应用程序被用户启动时,它的控制权立即被转移到用户模式。
每当指令被系统调用或有系统中断或有系统陷阱时,指令的工作就会被突然送入内核模式。当系统调用被执行时,控制权被转移回之前的指令。所有的指令都是以这种方式执行的。
现在让我们来讨论一下特权指令和非特权指令。
特权指令
这些指令只在内核模式下执行,并且可以使其运行。那么,这些类型的指令被称为特权指令(Privileged Instructions)。
我们知道,一个特权指令只能在内核模式下执行。但是,特权指令试图在用户模式下被执行或运行。由于该指令不能在用户模式下执行,那么该指令就会被扔掉,并被视为非法指令。该指令在操作系统中会被硬件停止。
操作系统有责任确保停止的指令被执行或不被执行。操作系统也有责任在给予任何用户或系统应用程序访问或控制之前,为任何系统中断设置定时器。
如果发生系统中断,操作系统可以保持对定时器的控制权。
操作系统的职责是确保特权指令的正常运行。
特权指令的例子。
1.清除记忆
2.输入和输出指令
3.停止指令
4.语境说明
5.从内存中删除一个进程
6.设置定时器
7.关闭所有中断
8.修改设备状态表中的条目
9.冲洗数据缓存
10.重置一个处理器
11.加载和读取系统寄存器
12.将处理器模式从内核变为用户
13.改变处理器的电压和频率
14.使数据缓存失效
15.无效TLB条目
特权指令是非常危险的。因此,我们必须非常小心。我们应该非常聪明地使用它们。它们可能会给我们的计算机带来问题。
非特权指令
这些指令只在用户模式下执行,并且可以使其运行。那么,这些类型的指令就被称为非特权指令。
非特权指令的例子。
1.进行算术运算
2.阅读系统时间
3.将最终的输出结果送入打印机进行打印输出
4.读取处理器的状态
5.产生一个陷阱指令
切换模式所遵循的机制是
1.用户 – – – – > 内核(内置于硬件中)。
2.内核——>用户(特权指令)。
我们都知道,计算机有两个不同的部分。它们是
- Hardware
- Software
软件部分通过使用上述规定的指令与硬件部分进行通信来工作。
非特权指令是安全指令。它们不会在将来给计算机带来任何问题。
软件部分可以根据指令分为不同的类别。它们是
- Kernel
- Application
内核仅能执行特权指令。
而且,
该应用程序有能力执行特权指令和非特权指令。
操作系统中特权指令和非特权指令的区别
序列号 | 特权指令 | 非特权指令 |
---|---|---|
1. ) | 这些指令只在内核模式下执行,并且可以使其运行。那么,这些类型的指令被称为特权指令(Privileged Instructions)。 | 这些指令只在用户模式下执行,并且可以使其运行。那么,这些类型的指令就被称为非特权指令。 |
2.) | 这些指示通常用于微妙的程序,只允许在某些条件下进行。 | 由于它们不共享任何资源,这些指令的执行不会干扰其他操作。 |