Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Operating system 上下文切换问题:管理上下文切换涉及操作系统的哪个部分?_Operating System_Hardware_Context Switch_Process Control - Fatal编程技术网

Operating system 上下文切换问题:管理上下文切换涉及操作系统的哪个部分?

Operating system 上下文切换问题:管理上下文切换涉及操作系统的哪个部分?,operating-system,hardware,context-switch,process-control,Operating System,Hardware,Context Switch,Process Control,我被要求回答这些关于操作系统上下文切换的问题,这个问题相当棘手,我在教科书中找不到任何答案: 在一个特定的时间,一个系统中存在多少PCB 哪两种情况会导致上下文切换发生?(我认为它们是进程的中断和终止,但我不确定) 硬件支持可以改变切换所需的时间。两种不同的方法是什么 管理上下文切换涉及操作系统的哪个部分 在给定的时刻,系统中可能存在任意数量的PCB。每个PCB都链接到一个进程 抢占式内核中的计时器中断或进程放弃对协作内核中处理器的控制。当然,还有进程终止和I/O操作阻塞 我不知道这里的答案,但

我被要求回答这些关于操作系统上下文切换的问题,这个问题相当棘手,我在教科书中找不到任何答案:

  • 在一个特定的时间,一个系统中存在多少PCB
  • 哪两种情况会导致上下文切换发生?(我认为它们是进程的中断和终止,但我不确定)
  • 硬件支持可以改变切换所需的时间。两种不同的方法是什么
  • 管理上下文切换涉及操作系统的哪个部分
  • 在给定的时刻,系统中可能存在任意数量的PCB。每个PCB都链接到一个进程
  • 抢占式内核中的计时器中断或进程放弃对协作内核中处理器的控制。当然,还有进程终止和I/O操作阻塞
  • 我不知道这里的答案,但是你看
  • 内核中的一个调度程序
  • 在给定的时刻,系统中可能存在任意数量的PCB。每个PCB都链接到一个进程
  • 抢占式内核中的计时器中断或进程放弃对协作内核中处理器的控制。当然,还有进程终止和I/O操作阻塞
  • 我不知道这里的答案,但是你看
  • 内核中的一个调度程序

  • 调度程序是管理上下文切换的操作系统的一部分,它在以下条件之一下执行上下文切换:
    1.多任务

    2.中断处理

    3.用户和内核模式切换


    每个进程都有自己的PCB

    调度程序是管理上下文切换的操作系统的一部分,它在以下条件之一下执行上下文切换:
    1.多任务

    2.中断处理

    3.用户和内核模式切换


    每个进程都有自己的PCB

    3:一系列可能的硬件优化

    • 较小的寄存器集(因此在上下文切换时保存和还原的寄存器集较少)
    • 浮点/向量处理器寄存器集的“脏”标志-允许内核避免保存上下文(如果自其被切换以来未发生任何事情)。FP/VP上下文通常非常大,很多线程从不使用它们。一些RTO提供了一个API,告诉内核线程根本不使用FP/VP,从而消除了更多的上下文恢复和一些保存—特别是当处理ISR的线程先占另一个线程,然后快速完成时,内核会立即重新调度原始线程
    • 阴影寄存器组:出现在带有板载单周期SRAM的小型嵌入式CPU上。CPU寄存器是内存备份的。因此,交换组仅仅是交换寄存器的基址的一种情况。这通常是在几个指令中实现的,而且非常便宜。在这些系统中,上下文的数量通常受到严重限制
    • 阴影中断寄存器:ISR中使用的阴影寄存器组。例如,所有ARM CPU的快速中断处理程序都有大约6或7个寄存器的阴影库,而常规中断处理程序的阴影库略少。 虽然严格来说,上下文切换的性能并没有提高,但这有助于降低ISR背后的上下文切换成本
    • 物理而不是虚拟映射的缓存。如果MMU发生更改,则必须在上下文开关上刷新虚拟映射缓存,这将出现在任何具有内存保护的多进程环境中。然而,物理映射缓存意味着虚拟物理地址转换是加载和存储操作的关键路径活动,并且在缓存上花费了很多门来提高性能。因此,虚拟映射缓存是一些为嵌入式系统设计的CPU的设计选择
    3:大量可能的硬件优化

    • 较小的寄存器集(因此在上下文切换时保存和还原的寄存器集较少)
    • 浮点/向量处理器寄存器集的“脏”标志-允许内核避免保存上下文(如果自其被切换以来未发生任何事情)。FP/VP上下文通常非常大,很多线程从不使用它们。一些RTO提供了一个API,告诉内核线程根本不使用FP/VP,从而消除了更多的上下文恢复和一些保存—特别是当处理ISR的线程先占另一个线程,然后快速完成时,内核会立即重新调度原始线程
    • 阴影寄存器组:出现在带有板载单周期SRAM的小型嵌入式CPU上。CPU寄存器是内存备份的。因此,交换组仅仅是交换寄存器的基址的一种情况。这通常是在几个指令中实现的,而且非常便宜。在这些系统中,上下文的数量通常受到严重限制
    • 阴影中断寄存器:ISR中使用的阴影寄存器组。例如,所有ARM CPU的快速中断处理程序都有大约6或7个寄存器的阴影库,而常规中断处理程序的阴影库略少。 虽然严格来说,上下文切换的性能并没有提高,但这有助于降低ISR背后的上下文切换成本
    • 物理而不是虚拟映射的缓存。如果MMU发生更改,则必须在上下文开关上刷新虚拟映射缓存,这将出现在任何具有内存保护的多进程环境中。然而,物理映射缓存意味着虚拟物理地址转换是加载和存储操作的关键路径活动,并且在缓存上花费了很多门来提高性能。因此,虚拟映射缓存是一些为嵌入式系统设计的CPU的设计选择