当该进程调用的系统调用正在运行时,如果调用系统调用的进程进入休眠状态或被抢占状态会发生什么?
如果系统调用被抢占,如何重新加载并返回该进程?
答案 0 :(得分:1)
系统维护每个进程状态,其中存储暂停和稍后重新启动进程所需的所有内容。大部分都是你想象的 - 你的地图 内存实际驻留,文件句柄列表等。
正在进行不会立即完成的长期事务的系统进程必须非常仔细地编写,以确保所有资源都被考虑,所有锁都被释放等。这显然是I / O的情况,但是其他事情也可能涉及特殊 资源。
大多数系统调用都不是特别的,它们是由普通库实现的,这些库只是您流程的一部分。真正的系统调用在最低级别,这样做的速度很慢,事情的结构是“让我睡觉并在......时唤醒我”,因此进入睡眠状态是自动但无形的过程。