wait3/wait4メモ

システムコール wiat3/wait4 を使うと、通常の wiat/waitpid と異なり fork した子プロセスのリソース情報も取得できる事を教わったのでメモ。

機能の概要

wait/waitpid を使うと、終了した子プロセスを zombie にならないように回収できる。wait3/wait4 を使うと、回収するだけでなく、子プロセスが消費したリース情報も取得できる。リソースは、システムコール getrusage で取得できるもの。

waitpid で置き換え可能
wait3/wait4 はともに waitpid で置き換え可能。

C Version

wait3(status, options, rusage)
=>
waitpid(-1, status, options);

wait4(pid, status, options, rusage)
=>
waitpid(pid, status, options)

Python Version

os.wait3(options)
=>
os.waitpid(-1, options)

os.wait4(pid, options)
=>
os.waitpid(pid, options)

WUNTRACED/WCONTINUED 対応
オプション WUNTRACED/WCONTINUED を渡すことで、プロセスが停止/復帰した時にも、リソース情報を返すようにできる。

wait3 はシステムコールではない

Linux では wait3 はシステムコールではない。

On Linux, wait3() is a library function implemented on top of the wait4() system call.
http://www.kernel.org/doc/man-pages/online/pages/man2/wait4.2.html

うっかり wait3 strace しようものなら、怒られてしまう。

$ strace -e wait3,wait4 ...
strace: invalid system call `wait3'

関数名に含まれる数字の意味

関数名につく 3 や 4 の意味がふめいだったのだけど、、、

The names for these two system calls refer to the number of arguments they each take.
Michael Kerrisk : The Linux Programming Interface. pp.552

使ってみる
fork して、適当に CONT/STOP シグナルを送りつつ wait3/wait4 する Python プログラムが以下。

Advertisements
Tagged with: , ,
Posted in linux

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Archives
  • RT @__apf__: How to write a research paper: a guide for software engineers & practitioners. docs.google.com/presentation/d… /cc @inwyrd 4 months ago
  • RT @HayatoChiba: 昔、自然と対話しながら数学に打ち込んだら何かを悟れるのではと思いたち、専門書1つだけ持ってパワースポットで名高い奈良の山奥に1週間籠ったことがある。しかし泊まった民宿にドカベンが全巻揃っていたため、水島新司と対話しただけで1週間過ぎた。 それ… 5 months ago
  • RT @googlecloud: Ever wonder what underwater fiber optic internet cables look like? Look no further than this deep dive w/ @NatAndLo: https… 5 months ago
  • @ijin UTC+01:00 な時間帯で生活しています、、、 10 months ago
  • RT @mattcutts: Google's world-class Site Reliability Engineering team wrote a new book: amazon.com/Site-Reliabili… It's about managing produc… 1 year ago
%d bloggers like this: