关于中断与进程的切换问题

大家好,我最近在看 《一个操作系统的实现》 ,看到第六章 进程 的时候,感觉有点吃力,有一个问题始终不理解,所以想大家请教,希望各路大神帮帮我!!!感激不尽!

我的问题时, 《一个操作系统的实现》这本书的进程的实现中, TestA() 是这样的:

void TestA()
{
        int i = 0;
        while(1){
                disp_str( "A" );
                disp_int( i++ );
                disp_str( "." );
                delay(1);
    }
}

我的问题就是,既然进程 TestA 是一个死循环,那么中断与进程是如何切换的

阅读 7.7k
4 个回答

中断是幕后的,你可以这么理解,你在一个人不知道的情况下把它打晕,然后他醒了继续做之前的事情。死循环和不死循环的程序没有区别。

你把一个人打晕了,然后把现场设为另一个人晕之前的现场,然后叫醒后者,后者以为自己一直在做事。

不了解。但是感觉你说的程序上的死循环和进程的中断切换没有任何关系。建议你了解一下进程,信号相关的知识。

你可以这么理解,进程是操作系统来调度的。就好想操作系统是老板,进程是员工,而中断就是优先级很高而且很紧急的任务,当老板收到这个任务的时候,就中断对应员工的工作,叫员工处理这个任务。所以不管这个员工在干什么,都会被打断。

新手上路,请多包涵

操作系统内部在每条指令执行完之后都会检测中断,若有中断则进入中断处理。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进