请问进程的上下文切换怎么理解?
网友回复
对于CPU来说,它只知道取指令,执行指令,然后执行下一条指令,他可不关心当前执行的指令是从哪个进程/线程来的,这是上面的操作系统需要关心的。
由于程序总归免不了读写内存,读写磁盘,或者网络交互,这些动作比CPU的速度慢了很多个数量级,为了不让cpu忙等这些操作,就得想办法让多个程序"同时"运行,a程序执行io读写时把cpu交给b程序,b程序发送网络包时再把cpu让给c程序,尽力提高CPU的使用率,操作系统为此抽象出了进程的概念。
要让这些进程都有机会被CPU执行,操作系统就得在一个进程正在被CPU执行时,将其切换走,把CPU让给其他进程,这就是进程的上下文切换
那么问题来了,切换切的到底是啥?怎么个切法?
前面说了,CPU干的事情很简单,就是取指令然后执行它,作为操作系统,你得让CPU知道从哪里取指令,指令执行时还需要数据,数据从哪里拿你也得告诉它,如果在执行过程中被切换走,CPU计算过程中产生的一些临时数据也得告诉它,这样它才可以正常执行指令,怎么告诉CPU这些信息呢?只要给CPU的各种寄存器赋值就好了,包括程序计数器里的下一条指令地址,数据段寄存器里的程序数据段起始地址,代...点击查看剩余70%
linux stream如何限制单个目录最大容量?
哪有免费的千问qwen3.6-plus的api可以使用?
python如何自动根据视频图片等素材自动按照要求剪辑视频生成剪映草稿?
gemma4与开源的qwen3.5哪个更厉害?
wan2.7 video与seedance2哪个更好?
claude code 51万行代码泄露被迫开源在哪能找到源码?
有没有免费的虚拟局域网工具可以将互联网设备组成一个大的局域网?
全球顶尖大模型这么强,为啥AGI 测试集体溃败 人类满分 AI 最高仅 0.37%?
听说字节seedance3的视频生成长度可达到10分钟?
谷歌的TurboQuant是不是真的?


