您的位置:首页 > 其它

CPU 上下文切换之理论篇(上)

2019-08-22 01:39 1441 查看

  • 1.什么是上下文?
    答:上下文是由CPU寄存器和程序计数器组成
  • 2.CPU为什么进行上下文切换?
    答:CPU上下文切换,是保证Linux系统正常工作的核心功能之一
  • 3.什么是CPU上下文切换?
    答:CPU上下文切换,就是先把前一个任务的CPU上下文保存起来,然后加载新任务的上下文到这些寄存器和程序计数器中,最后跳转到程序计数器所指的新位置,运行任务
  • 4.什么是cpu寄存器?
    答:cpu寄存器是cpu内置很小、但速度极快的内存
  • 5.什么是程序计数器?
    答:是用来存储CPU正在执行的指令位置、或者即将执行的下一条指令位置
  • 6.cpu保存的上下文会存储在哪里?
    答:存储在系统内核中
  • 7.操作系统管理的任务是什么?
    答:进程和线程
  • 8.cpu上下文切换有哪些场景?
    答:进程上下文切换、线程上下文切换、中断上下文切换
  • 9.ring0和ring3分别是什么?
    答:ring0是内核态、ring3是用户态
  • 10.特权模式切换是通过什么进行完成的?
    答:系统调用
  • 11.特权模式切换的步骤是什么?
    答:CPU寄存器里原来的用户指令需要先保存起来,为了执行内核态代码,CPU寄存器需要更新为内核态指令的新位置,最后跳转到内核运行内核任务
  • 12.一次特权模式切换发生了几次CPU上下文切换?
    答:2次
  • 13.什么是进程上下文切换?
    答:是指从一个进程切换到另一个进程
  • 14.进程上下文切换与特权模式切换有什么区别?
    答:进程上下文切换,是指一个进程切换到另一个进程
    特权模式切换是一直运行同一个进程
  • 15.什么时候会切换进程上下文?
    答:只有在进程调度时,才需要切换上下文
  • 16.进程在什么时候才会被调度到 CPU 上运行?
    答:
    (1)当某个进程时间片耗尽
    (2)进程在系统资源不足时
    (3)当进程通过sleep主动挂起时
    (4)当有优先级更高的进程运行时
  • 17.什么是进程?
    答:进程是调度的基本单位
  • 18.什么是线程?
    答:线程是资源拥有的基本单位
  • 19.线程与进程最大的区别是什么?
    答:
    (1)当进程只有一个线程时,可以认为进程等于线程
    (2)当进程拥有多个线程时,这些线程会共享相同的虚拟内存和全局变量等资源。这些资源上下文切换时是不需要修改的
  • 20.线程上下文切换有哪几种情况?
    答:前后线程不属于同一进程、前后线程属于同一进程
  • 21.什么是中断上下文切换?
    答:为了快速响应硬件事件,中断处理会打断进程的正常调度和执行

注:有哪些减少上下文切换的技术用例?
答:数据库连接池(复用连接)、合理设置应用的最大进程,线程数、直接内存访问DMA、零拷贝技术

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: