美文网首页
程序的上下文

程序的上下文

作者: Myth52125 | 来源:发表于2017-10-13 16:29 被阅读0次

    通俗点讲,就是进程需要的额外信息。参考文章

    进程上下文

    由多任务(线程)引出的进程上下文

    现代计算机绝大多数都可以执行多任务(进程)。通常cpu数少于某一段时间要执行的任务(进程)总数。这必将导致,进程轮流执行。进程的一些信息存储在寄存器中,内核中,内存中。当cpu在不同的进程之间调度的时候,上一个进程需要将这些信息存储起来(不存储就会丢失啊),以备下次执行的时候使用,同时即将要执行的进程需要将他之前执行时(假设不是首次执行)的信息,加载进cpu。
    这些需要临时存储起来的信息就是上下文。
    这些信息包括:

    1. 用户级上下文
      包括:正文,数据,用户堆栈,共享内存
    2. 寄存器上下文
      包括:通用寄存器,程序寄存器(PC),处理器状态,栈指针
    3. 系统级上下文
      包括:进程控制块,内存管理信息内核栈

    可以简单的归纳为:CPU的所有寄存器中的值、进程的状态以及堆栈上的内容。
    当内核需要切换到另一个进程时,它需要保存当前进程的所有状态,即保存当前进程的进程上下文,以便再次执行该进程时,能够恢复切换时的状态,继续执行。

    在linux中PCB数据结构存储了所有进程信息。

    中断上下文

    参考文章硬件通过触发信号,导致内核调用中断处理程序,进入内核空间。这个过程中,硬件的一些变量和参数也要传递给内核,内核通过这些参数进行中断处理。

    中断发生的时候,从用户态进入内核态,这时候需要将中断进程的信息传给内核,同时还有硬件传递过来的和中断有关的信息,这些信息就是中断上下文。
    同时进程也需要保存这些信息,以便再次运行进程。

    这个涉及到内核了?有些看不懂

    相关文章

      网友评论

          本文标题:程序的上下文

          本文链接:https://www.haomeiwen.com/subject/vpjayxtx.html