Multithreading 语境转换的步骤
我被要求描述上下文切换(1)在两个不同进程之间以及(2)在同一进程中的两个不同线程之间所涉及的步骤Multithreading 语境转换的步骤,multithreading,process,context-switch,Multithreading,Process,Context Switch,我被要求描述上下文切换(1)在两个不同进程之间以及(2)在同一进程中的两个不同线程之间所涉及的步骤 在上下文切换期间,内核将在其PCB中保存旧进程的上下文,然后加载计划运行的新进程的保存上下文 操作系统可以安排同一进程中两个不同线程之间的上下文切换,使它们看起来并行执行,因此通常比两个不同进程之间的上下文切换快 这是否过于笼统,或者您会添加哪些内容来更清楚地解释流程?按照相反的顺序解释这些内容要容易得多,因为流程切换总是涉及线程切换 单核CPU上的典型线程上下文切换如下所示: 所有上下文开关都由
这是否过于笼统,或者您会添加哪些内容来更清楚地解释流程?按照相反的顺序解释这些内容要容易得多,因为流程切换总是涉及线程切换 单核CPU上的典型线程上下文切换如下所示:
在任何实际系统上,这些机制都是依赖于体系结构的,上述内容对上下文切换的含义都是一个粗略而不完整的指南。进程切换产生的其他开销不是严格意义上的交换机的一部分-进程切换后可能会有额外的缓存刷新和页面错误,因为它的一些内存可能已被分页,而有利于属于拥有之前运行的线程的进程的页面。我希望我可以提供更多的解决方案详细/清晰的图片 首先,操作系统调度线程,而不是进程,因为线程是系统中唯一的可执行单元。进程切换只是一个线程切换,其中线程属于不同的进程,因此过程基本相同
- 非自愿的转变。在当前运行的线程之外发生了一些影响调度的外部事件。例如,过期的计时器唤醒了具有高优先级的线程;或者磁盘控制器已报告文件的请求部分已读入内存,等待它的线程可以继续执行;或者系统计时器告诉内核线程的时间量用完了;等等
- 自动切换。线程显式地请求