开发者社区> 问答> 正文

在Linux性能调优中进程上下文切换和系统调用的区别?

在Linux性能调优中进程上下文切换和系统调用的区别?

展开
收起
我是小美女 2021-10-30 11:30:47 521 0
1 条回答
写回答
取消 提交回答
  • 网络规划设计师、敏捷专家、CISP、ITSS服务经理、ACA全科目、ACP4项、ACE、CBP、CDSP、CZTP等。拥有 PRINCE2 Foundation/Practitioner、CCSK、ITIL、ISO27001、PMP等多项国际认证。 专利5+、期刊10+、知识产权师。核心期刊审稿人。

    您好,进程是由内核来管理和调度的,进程的切换只能发生在内核态。所以,进程的上下文不仅包括了虚拟内存、栈、全局变量等用户空间的资源,还包括了内核堆栈、寄存器等内核空间的状态。

    系统调用过程中,并不涉及到虚拟内存等进程用户态的资源,也不会切换进程。

    · 进程上下文切换,是指从一个进程切换到另一个进程进行。
    · 系统调用过程中一直是同一个进程在运行。
    
    

    因此,进程的上下文切换比系统调用时多了一步:在保存当前进程的内核状态和 CPU 寄存器之前,需要先把该进程的虚拟内存、栈等保存下来;而加载了下一个进程的内核态后,还需要刷新进程的虚拟内存和用户栈。

    2021-10-30 13:05:55
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载