我对操作系统的内部运作一无所知,但是我可以或多或少地猜测许多功能的近似行为。不过,我无法弄清的一件事是多任务处理。
从理论上讲,操作系统会根据CPU以较小的时间间隔运行各种程序来管理时间。但目前还不清楚这是如何真正起作用。
假设操作系统要启动我的程序。机器代码从某个地址开始加载到RAM中的某个位置。我想应该跳转到该地址,以便执行我的代码。但是以这种方式,直到我跳回操作系统,操作系统才能重新获得控制权。
基本上,我可以想象只有两种方式可以完成这项工作,但似乎都不合适:
操作系统可以读取我要执行的机器指令并对其进行仿真,而不是直接执行它们。我故意含糊其词,因为我不知道这将如何工作,但似乎会大大减慢该程序的速度。
或者,操作系统可以等到我进行系统调用。在那一刻,它重新获得控制权,并可以检查我已经运行了多长时间并进行了分时操作。这可能有效,但是似乎不可靠,因为我可以进行很长的计算而不涉及系统调用,并且会挂起所有内容一段时间。
因此,似乎这两种机制都无法很好地发挥作用。实际如何执行多任务处理?
interrupt
INT
指令。对我来说,有些事情仍然很神秘