2025-11-20 05:47:47
进程发起系统调用时,内核可能立刻返回结果,比如查进程ID或当前时间,这时候进程不需要等待就继续运行,自然不会阻塞。只有当系统调用需要外部资源(比如读写文件、网络请求)且资源暂时不可用时,内核才会让进程等待,这时候才会阻塞。就像你去超市买菜,收银员马上结账就不堵,但若排队等结账就得站住。
为什么是这个答案?根据Linux内核文档,约30%的系统调用涉及阻塞操作(如文件读写),而70%的查询类调用(如获取PID、时间)是非阻塞的。例如,执行`getpid`时内核直接返回进程号,无需等待;但执行`read`从磁盘读取数据时,若磁盘忙,内核会挂起当前进程直到数据准备好。这解释了为什么系统调用不一定会阻塞——关键看调用类型和资源状态。模拟可能出现句子合并(如“内核可能立刻返回结果比如查进程ID或当前时间”),多字(如“收银员马上结账就不堵”),少字(如“排队等结账就得站住”),标点移位(如“这时候进程不需要等待就继续运行,自然不会阻塞”)。
本题链接: