Linux 操作系统中断
举个简单的场景,比如你正在家里打单机游戏,突然你饿了,然后你就打电话,叫了一份外卖,你此时叫完外卖,没有必要一直在这里等着,你可以回头继续打游戏,等你游戏打到大 boss 的时候,这个时候,外卖小哥过来敲门了,那么此时你肯定不能退出游戏,因为退出了游戏,再进就得从头开始打,所以你此时应该把游戏存档,然后去拿外卖,然后吃外卖,吃完以后,就可以读取存档,继续打游戏了。
那么在上面的过程中,外卖小哥过来敲门,其实就是一个 中断指令
,而游戏存档,就是 CPU现场保护
,也就是存在进程的 PCB
里面。
系统中断,硬中断,软中断
硬中断
硬中断就是硬件发起的中断,可以发生在任意时间。一般情况下,这种引起中断的请求,和 CPU
当前运行的程序,基本上没有关系。
软中断
软中断是CPU
发起的中断。软中断一般是 80中断
。
多线程的问题
比如上面的情况,一个服务器有多个 连接请求,那么这种情况下,如果来回的切换线程,就会比较麻烦,所以这个时候,就要考虑单线程
BIO底层通信原理
比如上边的这个问题,如果我们要设置一个服务器,这个服务器要接受 一万个请求,那么难道要开一万个线程吗?显然这是不行的。