关于操作系统实现进程并发的有关问题
关于操作系统实现进程并发的问题
我们都知道 操作系统有时间片轮转的策略来实现进程并发
但是我对此总有一个疑问
程序式一个个体,按道理说,程序里面本事如果没有让出CPU的指令,那么就会一直运行到结束。操作系统式怎么让运行在其中的程序被动的让出CPU的?
我知道事实上还有中断的存在。我也觉得,只有中断既能做到满足让程序让出CPU,又灵活应变节省时间。
以上只是假想,那么具体的……到底操作系统式怎么做到让运行在其中的程序被动让出CPU的呢?
------解决方案--------------------
1. CPU必须支持多任务切换,就是说CPU自己可以切换上下文。
2. 每一次时钟中断,CPU会保存当前所有寄存器的内容,并调用时钟中断例程
3. 时钟中断例程按照优先级选择一个就绪的线程装入CPU运行
4. 等待下一次时钟中断
我们都知道 操作系统有时间片轮转的策略来实现进程并发
但是我对此总有一个疑问
程序式一个个体,按道理说,程序里面本事如果没有让出CPU的指令,那么就会一直运行到结束。操作系统式怎么让运行在其中的程序被动的让出CPU的?
我知道事实上还有中断的存在。我也觉得,只有中断既能做到满足让程序让出CPU,又灵活应变节省时间。
以上只是假想,那么具体的……到底操作系统式怎么做到让运行在其中的程序被动让出CPU的呢?
------解决方案--------------------
1. CPU必须支持多任务切换,就是说CPU自己可以切换上下文。
2. 每一次时钟中断,CPU会保存当前所有寄存器的内容,并调用时钟中断例程
3. 时钟中断例程按照优先级选择一个就绪的线程装入CPU运行
4. 等待下一次时钟中断