首先,考虑选择正在等待另一个进程的情况(例如,另一个进程可能会执行一些计算,然后通过管道输出结果).在这种情况下,内核会将您的进程标记为等待输入,因此它不会为您的进程提供任何cpu时间.当其他进程输出数据时,内核将唤醒您的进程(在cpu上给予时间),以便它可以处理输入.即使其他进程仍在运行,这将会发生,因为现代 *** 作系统使用抢占式多任务,这意味着内核会定期中断进程以使其他进程有机会使用cpu(“时间分片”).
当选择等待I / O时,图像会发生变化;网络数据,或键盘输入.在这种情况下,虽然古老的硬件必须旋转cpu等待输入,但所有现代硬件都可以将cpu本身置于低功耗“等待”状态,直到硬件提供中断 – 内核处理的特殊处理事件.在中断处理程序中,cpu将记录传入的数据,并且从中断返回后将唤醒您的进程以允许其处理数据.
总结以上是内存溢出为你收集整理的linux – 系统调用如select()或poll()在引擎盖下工作?全部内容,希望文章能够帮你解决linux – 系统调用如select()或poll()在引擎盖下工作?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)