描述

慢速或快速是从操作系统角度,来判断一个系统调用执行所需要的时间。

这个时间并无固定标准(非实时操作系统),而是取决于该调用执行的具体情况。

若该调用等待事件(TCP连接建立)或其他执行体操作(相对OS来说,比较耗时,如磁盘IO),则属于慢速系统调用。

反之,则属于快速系统调用,如getpidgettimeofday

为什么需要这样划分?

因为慢速系统调用,需依赖外部,则可以将其放入等待队列,无需调度。这样便提高了资源(CPU)利用率。

特性

  • 快速系统调用,被信号中断后,会自动重启,应用层无感知,
    而慢速系统调用(没有设置O_NONBLOCK)会出错返回(-1),errno=EINTR

参考

  1. http://unix.stackexchange.com/questions/14293/difference-between-slow-system-calls-and-fast-system-calls

留言