タグ

programmingとProgrammingと排他制御に関するgirledのブックマーク (1)

  • セマフォを使った排他制御

    排他制御とは、あるメモリやある操作を、同時に複数のプログラムからアクセスあるいは実行させないようにするための処理です。 プロセス間で排他制御をするには、グローバル変数は使えません。グローバル変数はプロセスごとにもつものだからです。 共有メモリの1バイトをフラグとして使ったりすると、フラグを立てた瞬間に2つ以上のプロセスが同時に 走ってしまう危険性があります。ファイルを作成し、ファイルが存在するか否かをフラグに使っても同じような 問題があります。 セマフォとは以上のような問題点を解決するための仕組みです。セマフォはOSが用意するグローバルなフラグのようなもので、 そのフラグを待っているプロセスが複数あったとしても、セマフォから実行の許可が得られるプロセスを1つ に制限させることができます。 サンプルプログラムを考えます。このプログラムは親が500バイト共有メモリを作成します。 そして、for

    girled
    girled 2009/04/23
    はじめて聞いた言葉だったので勉強。やっぱねえ、遊びじゃない規模でアプリケーション作るといろいろ問題起きてくるわけですよ。あー、胃が痛い。
  • 1