[解決済み] Linuxのプロセス状態
2023-02-20 17:51:21
質問
Linuxでは、ディスクからブロックを読み込む必要がある場合、プロセスの状態はどうなるのでしょうか?ブロックされるのでしょうか?もしそうなら、どのようにして他のプロセスが実行されるように選択されるのでしょうか?
どのように解決するのですか?
を待っている間
read()
または
write()
をファイル記述子から返すと、プロセスは "D" または "Disk Sleep" として知られる特別な種類のスリープ状態になります。これは特殊で、この状態にある間はプロセスを強制終了したり、中断したりすることができないからです。ioctl() からの返事を待っているプロセスも、この方法でスリープ状態になります。
例外は、ファイル (端末や他の文字デバイスなど) を開く際に
O_NONBLOCK
モードで開かれ、デバイス (モデムなど) が初期化するのに時間がかかると想定される場合です。しかし、質問ではブロックデバイスを指定されています。また、私は
ioctl()
のような、ノンブロッキングモードで開かれた fd でブロックしそうなものは試したことがありません (少なくとも知っているわけではありません)。
他のプロセスがどのように選択されるかは、使用しているスケジューラーに完全に依存し、また、そのスケジューラー内で他のプロセスがその重みを修正するために行ったかもしれないことです。
特定の状況下でのユーザー空間プログラムのいくつかは、再起動するまで永遠にこの状態のままであることが知られています。これらは通常、他のゾンビと一緒にグループ化されますが、技術的に消滅しているわけではないので、この用語は正確ではありません。
関連
-
deepin depth systemはどのような内容でアップデートされましたか?deepinの最新版アップデート内容まとめ
-
[解決済み】Macでポート3000をロックしているプロセスを検索(およびkill)する
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] Linux上で動作するC++コードのプロファイリングを行うにはどうすればよいですか?
-
[解決済み] すべてのディレクトリとサブディレクトリを再帰的にgrepするにはどうしたらいいですか?
-
[解決済み] プロセスとスレッドの違いは何ですか?
-
[解決済み] find .コマンドでディレクトリを除外する方法
-
[解決済み] Linuxで特定のポートで動作しているプロセスを停止させる方法は?
-
[解決済み] Linux/Unixで$PATHを永久に設定する方法 [終了しました].
-
[解決済み] アプリケーションやプロセスの実際のメモリ使用量を測定するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Linux NICがRTNETLINK answersというエラーで起動できない場合、どうすればよいですか?ファイルが存在するか?
-
Linux Mint システムの背景画像を変更する方法は? Linuxでデスクトップの背景を変更するためのヒント
-
LinuxでJenkinsプラグインのインストールが遅い場合の解決策
-
2020年deepin Deep OS V20のアップデートによる更新情報
-
ubuntu 12.04 eclipse でプログラム g++ がパスに見つからなかったと報告される。
-
[解決済み] CPAN.pmが@INCに見つからない(@INCには含まれています。/usr/local/lib/perl5 /usr/local/share/perl5。
-
[解決済み] bash sh - command not found [重複].
-
[解決済み] mkdirのオプションが明確でない
-
[解決済み] Linux で grep を使ってファイル名だけを表示するにはどうしたらいいですか?
-
[解決済み] bashスクリプトでset -eはどういう意味ですか?