fbpx
维基百科

wait (Unix)

wait(意指“等待”)为类UNIX操作系统系统调用

功能 编辑

多进程系统内的进程(或任务)有时需要等待其他进程以完成自己的执行过程,而在包含父-子进程机制的类UNIX系统中,父进程能创建可独立运行的子进程,并在需要时调用wait(函数声明为pid_t wait(int *stat_loc))以使自己在子进程执行过程中保持休眠状态。当任一子进程结束后,该子进程会向操作系统返回一个退出状态,而后系统即向休眠中的父进程发送一个SIGCHLD信号以提醒之,至此父进程“复苏”并从内核获取子进程的退出状态,而后内核释放原有子进程所占用的资源,父进程也继续执行。

衍生 编辑

对于带有线程机制的类UNIX系统来说,对于线程调度也有对应wait的实现:pthread_join会让当前进程强制休眠,等待指定线程执行完毕后再继续执行。

类UNIX系统还提供多种wait的衍生调用(如waitpidwaitid)以扩展适用范围。借助于这些变种,父进程可以休眠至任一子进程结束,也可以等待满足指定条件(如匹配给定的进程标识符)的子进程结束后再继续执行。另外,若利用额外选项做参数,waitpidwaitid在指定进程继续运行或暂停执行时也会返回。

僵尸进程 编辑

即使没有提前调用wait,在任一进程终止后,系统内核都会向其父进程发送SIGCHLD,这时父进程可以选择使用SIG_IGN作为处理函数,令内核知晓自己不需获得状态,并直接交由init进程处理;亦可调用wait,则立即返回子进程退出状态。若两者皆不做,则子进程在进程表中占用的资源就无法得到释放,进而成为僵尸进程,持续浪费资源[1]。为解决这一问题,系统常以特殊进程reaper(“收割者”)定位僵尸进程,并获取其状态以使系统可以解除资源分配,从而“收割”之[2]

参见 编辑

  • exit (操作系统)英语Exit (operating system)
  • fork (操作系统)
  • sleep (操作系统)英语Sleep (operating system)
  • Spawn (计算机)英语Spawn (computing)
  • wait (Shell)
  • 等待状态英语Wait state

参考来源 编辑

  1. ^ M. Tim Jones. Gnu/Linux Application Programming. Cengage Learning. 2005: 178. 
  2. ^ Scott Mann, Ellen L. Mitchell. Linux System Security: An Administrator's Guide to Open Source Security Tools. Prentice Hall Professional. 2000: 167. 

wait, unix, wait, 意指, 等待, 为类unix操作系统系统调用, 目录, 功能, 衍生, 僵尸进程, 参见, 参考来源功能, 编辑多进程系统内的进程, 或任务, 有时需要等待其他进程以完成自己的执行过程, 而在包含父, 子进程机制的类unix系统中, 父进程能创建可独立运行的子进程, 并在需要时调用wait, 函数声明为pid, wait, stat, 以使自己在子进程执行过程中保持休眠状态, 当任一子进程结束后, 该子进程会向操作系统返回一个退出状态, 而后系统即向休眠中的父进程发送一个sigc. wait 意指 等待 为类UNIX操作系统系统调用 目录 1 功能 2 衍生 3 僵尸进程 4 参见 5 参考来源功能 编辑多进程系统内的进程 或任务 有时需要等待其他进程以完成自己的执行过程 而在包含父 子进程机制的类UNIX系统中 父进程能创建可独立运行的子进程 并在需要时调用wait 函数声明为pid t wait int stat loc 以使自己在子进程执行过程中保持休眠状态 当任一子进程结束后 该子进程会向操作系统返回一个退出状态 而后系统即向休眠中的父进程发送一个SIGCHLD信号以提醒之 至此父进程 复苏 并从内核获取子进程的退出状态 而后内核释放原有子进程所占用的资源 父进程也继续执行 衍生 编辑对于带有线程机制的类UNIX系统来说 对于线程调度也有对应wait的实现 pthread join会让当前进程强制休眠 等待指定线程执行完毕后再继续执行 类UNIX系统还提供多种wait的衍生调用 如waitpid和waitid 以扩展适用范围 借助于这些变种 父进程可以休眠至任一子进程结束 也可以等待满足指定条件 如匹配给定的进程标识符 的子进程结束后再继续执行 另外 若利用额外选项做参数 waitpid和waitid在指定进程继续运行或暂停执行时也会返回 僵尸进程 编辑主条目 僵尸进程 即使没有提前调用wait 在任一进程终止后 系统内核都会向其父进程发送SIGCHLD 这时父进程可以选择使用SIG IGN作为处理函数 令内核知晓自己不需获得状态 并直接交由init进程处理 亦可调用wait 则立即返回子进程退出状态 若两者皆不做 则子进程在进程表中占用的资源就无法得到释放 进而成为僵尸进程 持续浪费资源 1 为解决这一问题 系统常以特殊进程reaper 收割者 定位僵尸进程 并获取其状态以使系统可以解除资源分配 从而 收割 之 2 参见 编辑exit 操作系统 英语 Exit operating system fork 操作系统 sleep 操作系统 英语 Sleep operating system Spawn 计算机 英语 Spawn computing wait Shell 等待状态 英语 Wait state 参考来源 编辑 M Tim Jones Gnu Linux Application Programming Cengage Learning 2005 178 Scott Mann Ellen L Mitchell Linux System Security An Administrator s Guide to Open Source Security Tools Prentice Hall Professional 2000 167 wait 系统界面 System Interfaces 参考 单一UNIX 规范第7期 由國際開放標準組織发布 waitid 系统界面 System Interfaces 参考 单一UNIX 规范第7期 由國際開放標準組織发布 waitpid 系统界面 System Interfaces 参考 单一UNIX 规范第7期 由國際開放標準組織发布 pthread join The Open Group Base Specifications Issue 7 2013 01 10 原始内容存档于2022 01 26 取自 https zh wikipedia org w index php title Wait Unix amp oldid 74878138, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。