semaphore

カーネルがファイルアクセスのための同期技術を実装する方法
semaphore

カーネルがファイルアクセスのための同期技術を実装する方法

ファイルにアクセスすると、カーネルが同期メカニズムを実装していることを読みました。たとえば、read()他のプロセスで同時にファイルシステム上のファイルを使用、書き込み、または読み取ろうとすると、カーネルは競合状態を防ぎます。write() どのように実装されますか?私はコードを書くときに異なるスレッドやプロセスがコードの一部を同時に実行するのを防ぐためにmutexとセマフォを使用しました。 この場合、カーネルは、複数のプロセスまたはスレッドが同じファイル記述子を読み書きする場合にのみロック機構を実装する必要があると仮定します。これはいつでも呼び出さread...

Admin

既存の名前付きセマフォを開く方法は?
semaphore

既存の名前付きセマフォを開く方法は?

O_CREAT明らかに、既存のセマフォを開くときはO_EXCL必要ありません。 O_CREAT新しいセマフォを作成するときに必要です。 O_EXCLと OR で連結された場合にのみ意味がありO_CREAT、指定された名前のセマフォがすでに存在する場合にエラーが返されることを指定します。 sem_open の Linux マニュアルページ説明する フラグ値の定義は、<fcntl.h> を含めて取得できます。 しかし、旗を見つけられませんでした。fcntl.hこれは、既存のセマフォを開く方法を教えてくれます。 ...

Admin

FIFOベースのセマフォの説明
semaphore

FIFOベースのセマフォの説明

私は多くのプロセス(何百ものノードで転送/実行されるタスク)でいくつかの並列化を実行しようとしています。私はこの解決策を見つけました: https://unix.stackexchange.com/a/216475 # initialize a semaphore with a given number of tokens open_sem(){ mkfifo pipe-$$ exec 3<>pipe-$$ rm pipe-$$ local i=$1 ...

Admin

GNUパラレルPythonセマフォ
semaphore

GNUパラレルPythonセマフォ

ファイルに出力したい特定の結果を見つけるGNU Parallelを介して並列化されたPythonスクリプトがあります。現在、標準のPythonファイルIOを介してこれを行います。問題は、これらのファイルを各並列スレッドで開いたことです。 FIFOセマフォを実装したいのですが、それがGNUパラレルスクリプトにある必要があると思いますが、Pythonでファイルにアクセスする場合はこれを行う方法がわかりません。私の現在のスクリプトは次のとおりです。 #!/bin/bash time parallel -j$(nproc) -N0 python3 ./polyno...

Admin

並列Bashスクリプトのスレッド数の制限
semaphore

並列Bashスクリプトのスレッド数の制限

私が使用するいくつかの写真処理スクリプトを改善するためにセマフォを使用しようとしています。私は与えられたファイル名を引数として取り、ファイルを処理するtravailという関数を使ってsable GNU / DEBIANを実行します。 現在、この関数はループを介して同じスクリプトから呼び出されます。 for i in *.png ; do travail $i & done 問題は写真が多ければメモリをたくさん使うという点だ。スレッド数を制限するためにセマフォを使用したいと思います。 私は試した: for i in *....

Admin

シェルスクリプトのセマフォから権限を取得して返す
semaphore

シェルスクリプトのセマフォから権限を取得して返す

シェルスクリプトでは、次のものを使用できます。 ipcmk -S 4 4つのスロットを持つセマフォを作成します。ipcrmセマフォを再度削除できます。しかし、どのように使用しますか? semwait、ipcsemgetなどのエントリが見つかりません。あなたはそうしなかった方法? ...

Admin

proc1.sh
semaphore

proc1.sh

閉鎖。この質問には詳細または明確性。現時点では回答は許可されていません。 ...

Admin

同じアプリケーションIDを持つシステムで複数のApacheインスタンスが実行されている場合は、特定のApacheインスタンスのセマフォオブジェクトと共有メモリオブジェクトを取得する方法
semaphore

同じアプリケーションIDを持つシステムで複数のApacheインスタンスが実行されている場合は、特定のApacheインスタンスのセマフォオブジェクトと共有メモリオブジェクトを取得する方法

この質問がこのフォーラムに関連しているかどうかはわかりません。 「同じ」アプリケーション/機能IDで実行される3つのApacheインスタンスを持つサーバーがあります。 これらのインスタンスは、同じボックス内のプロセス間通信を使用して、対応するSiteminder Webエージェントと通信します。 ipcsコマンドを実行してセマフォオブジェクトと共有メモリオブジェクトを見つけると、「すべての」オブジェクトが表示され、ipcrmコマンドを使用して削除されたオブジェクトが何であるかがわかりません。 特定のApacheインスタンスで使用されているインスタンス...

Admin

名前のないPOSIXセマフォの初期化を同期するには?
semaphore

名前のないPOSIXセマフォの初期化を同期するには?

複数のプロセスで名前のないPOSIXセマフォを使用するには、共有メモリの一部へのアクセスを作成/取得する必要があります。その後、プロセスはsem_init共有メモリへの参照を最初の引数として使用してセマフォを呼び出して初期化する必要があります。しかし、これは一度だけ許可されます! POSIX説明する: すでに初期化されているセマフォを初期化しようとすると、未定義の動作が発生します。 問題は、セマフォが存在して初期化されたかどうかを原子的にテストし、存在しない場合は初期化する方法がないことです。 セマフォが初期化されたかどうかを示すために、共有...

Admin

Bashのファイルでアトミック書き込み操作を実行する
semaphore

Bashのファイルでアトミック書き込み操作を実行する

後 ザ 乱交文書、これ質問とこれBashでファイルにアトミック書き込み(追加)操作を実行する方法はまだわかりません。複数のインスタンスで実行されるスクリプトがあり、ある時点でデータをファイルに書き込む必要があります。 echo "$RESULT" >> `pwd`/$TEMP_DIR/$OUT_FILE 同時に実行されるすべてのスクリプトでこのファイルへのすべての書き込みをアトミックにするにはどうすればよいですか(あるインスタンスのデータが他のインスタンスのデータと重複しないように) ...

Admin

プロセスはセマフォを待ちます。
semaphore

プロセスはセマフォを待ちます。

待機中のプロセスがあり、psWCHAN列でセマフォを取得するのを待っていることがわかる場合は、そのセマフォのアドレスを見つける方法はありますか? ...

Admin

semop失敗をデバッグする方法は?
semaphore

semop失敗をデバッグする方法は?

Linuxを使用して2.6.30-gentoo-r4非常に複雑なコードシステム(4.4.9-pl0-gentooおよび5.2.10-pl0-gentooを使用)を実行すると、セマフォブロックの問題が発生することがあります。関数呼び出しphpがブロックされ、最終的にシステムがクラッシュします。phpsem_acquire しかし、問題のセマフォはphp他のプロセスによってブロックされたように見えず、さらなる調査をするようになりました。php問題のあるプロセスとそのプロセスを特定してstraceブロックセマフォを発生させることができました。 .... 09:...

Admin

/procで現在実行中のプロセスセマフォを取得するには?
semaphore

/procで現在実行中のプロセスセマフォを取得するには?

現在セマフォを実行しているプロセスをインポートする方法を知りたいです/proc。 SysVIPCサブディレクトリを介して可能なようです。しかし、このコマンドをどのように使用するのかわかりません。 Ubuntu12.10 ...

Admin