中断(interrupt)的作用:

中断是由外部设备发送到CPU的信号,通常是I/O设备。它们告诉CPU停止当前的活动并执行操作系统的适当部分。

有三种类型的中断:

  • 硬件中断(Hardware Interupts):由硬件设备生成,以表明它们需要来自操作系统的一些关注。他们可能刚刚收到一些数据(例如键盘敲击键盘或以太网卡上的数据);或者他们刚刚完成了一个操作系统之前要求的任务,比如在硬盘和内存之间传输数据。
  • 软件中断(Software Interupts):当程序想要请求由操作系统执行的系统调用时,会由程序生成。

  • 陷阱(Traps是由CPU本身生成的,用来表示一些错误或者条件发生了,需要操作系统的帮助。

中断很重要,因为它们能让用户更好地控制计算机。如果没有中断,用户可能不得不等待一个给定的应用程序在CPU上有更高的优先级才会运行起来。这确保了CPU能够立即处理这个过程。

CPU执行模式:

有两种执行方式,分别为用户模式(user mode)和内核(kernel)或监督(supervisor)模式。用户模式受到限制,因为某些指令无法执行,无法访问某些寄存器,无法访问I/O设备。内核模式没有这些限制。系统调用会将CPU设置为内核模式,就像陷阱和中断一样。应用程序不能这样做。

模式位:

  • Supervisor mode

    • 可以执行所有机器指令

    • 可以引用所有内存位置

  • User mode

    • 只能执行指令的一个子集

    • 只能引用内存位置的子集

CPU响应中断:

理解操作系统如何工作的一个关键点是理解当中断发生时CPU会做什么。CPU的硬件对每个中断执行相同的操作,这就是允许操作系统从当前运行的用户进程中获得控制的原因。从运行用户级进程切换到操作系统内核,并且在恢复当前进程之前通常会用于其他用户进程,这就是上文切换。

Wiki

在计算中,上下文切换是存储进程或线程的状态的过程,以便可以恢复并从同一点恢复执行。这允许多个进程共享一个CPU,并且是多任务操作系统的一个基本特性。

短语“上下文切换”的确切含义在用法上有很大差异。在多任务环境中,它指的是为一个任务存储系统状态的过程,这样任务就可以暂停,而另一个任务又恢复了。上下文切换也可以作为中断的结果发生,例如当任务需要访问磁盘存储时,为其他任务释放CPU时间。一些操作系统还需要在用户模式和内核模式任务之间切换上下文切换。上下文切换的过程可能会对系统性能产生负面影响,尽管这个影响的大小。

cpu依赖于一对寄存器中的数据来正确处理中断。一个寄存器保存一个指向当前正在运行的进程的进程控制块的指针。这个寄存器是在每个进程被载入内存时设置的。另一个寄存器保存一个指向一个表的指针,而该表包含指向操作系统内核中用于中断处理程序和系统调用的指令的指针。该寄存器中的值和这个表的内容是在当在引操作系统引导时间初始化时设置的。

在中断时,他会执行以下操作:

1.使用指向当前进程控制块的指针,并保存进程的状态和所有寄存器值,以用于当稍后该进程重启时。

2.CPU模式位切换到内核模式。

3.使用指向中断处理程序表的指针和中断向量,来确定要执行的内核代码的位置。中断向量是指硬件中断(从中断控制器寄存器读取)类型的IRQ(即Interrupt Request,中断请求)和用于软件中断的中断汇编语言指令的一个参数。

4.处理被转换到内核的适当部分。

CPU使用一个表和中断向量来查找操作系统的代码,以响应中断。这里显示了一个软件中断。

随着计算机的运行,在接收到硬件和软件中断时,处理用户进程和操作系统之间的切换。

results matching ""

    No results matching ""