关于中断与进程的切换问题
大家好,我最近在看 《一个操作系统的实现》
,看到第六章 进程
的时候,感觉有点吃力,有一个问题始终不理解,所以想大家请教,希望各路大神帮帮我!!!感激不尽!
我的问题时, 《一个操作系统的实现》
这本书的进程的实现中, TestA()
是这样的:
void TestA()
{
int i = 0;
while(1){
disp_str( "A" );
disp_int( i++ );
disp_str( "." );
delay(1);
}
}
我的问题就是,既然进程 TestA
是一个死循环,那么中断与进程是如何切换的?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
中断是幕后的,你可以这么理解,你在一个人不知道的情况下把它打晕,然后他醒了继续做之前的事情。死循环和不死循环的程序没有区别。
你把一个人打晕了,然后把现场设为另一个人晕之前的现场,然后叫醒后者,后者以为自己一直在做事。
不了解。但是感觉你说的程序上的死循环和进程的中断切换没有任何关系。建议你了解一下进程,信号相关的知识。
你可以这么理解,进程是操作系统来调度的。就好想操作系统是老板,进程是员工,而中断就是优先级很高而且很紧急的任务,当老板收到这个任务的时候,就中断对应员工的工作,叫员工处理这个任务。所以不管这个员工在干什么,都会被打断。
操作系统内部在每条指令执行完之后都会检测中断,若有中断则进入中断处理。