mms*_*swe 7 operating-system kernel process
我认为程序计数器是硬件的一部分.阅读以下内容后我感到困惑.有人可以澄清区别吗?
单线程进程有一个程序计数器指定要执行的下一条指令.(线程在第4章中介绍.)这样一个过程的执行必须是顺序的.CPU一个接一个地执行该过程的一个指令,直到该过程完成.此外,在任何时候,代表该过程最多执行一条指令.因此,尽管两个进程可以与同一程序相关联,但它们仍被认为是两个单独的执行序列.多线程进程有多个程序计数器,每个程序计数器指向要为给定线程执行的下一条指令.
use*_*003 11
每个CPU都有一个硬件程序计数器.每个线程都有一个程序计数器VALUE,它只在线程执行时加载到硬件程序计数中.
如果在多处理系统上执行,则进程可以具有多个硬件程序计数器.每个线程可以在单独的处理器上运行,并在该处理器上有一个程序计数器.
如你所说,"程序计数器"(也称为"指令指针")是硬件的一部分; 更具体地说,它是一个处理器寄存器.该寄存器的整个目的是指向处理器正在执行的存储器中的当前指令.一旦执行该指令,PC就被改变为指向要执行的下一条指令.
如今大多数现代操作系统都是多任务处理.这实际上意味着它们可以同时运行多个进程.但是,如果您只有一个处理器,那么您无法同时执行多个进程,对吧?为了创建这样的错觉,即多个进程在一个处理器上同时执行多个进程,多任务操作系统可以非常快速地在可运行进程之间切换:它们推进一个进程,暂停它,然后它们推进其他进程,依此类推这一切都在一秒钟内完成.
要实现此机制,操作系统必须具有适当的结构以保持所有正在运行的进程的当前状态.操作系统应该在这些结构中保留的最重要的值之一是进程的当前PC值,它指示其程序代码中当前正在执行的位置.
| 归档时间: |
|
| 查看次数: |
5874 次 |
| 最近记录: |