プロセス管理(4週目のOSコース)
6996 ワード
Process Management
この文章は以下の授業を聞いてまとめたものです.
授業情報:オペレーティングシステム/梨花女子大学クラス孝経
レッスンリンク
1.プロセスの作成
書き込みコピー(COW)技術
親プロセスサブプロセスの作成
プロセスツリーの作成(階層)
プロセスにリソースが必要です
リソース共有
実行
アドレス空間
Unixの例
fork()
システムコール生成新フローfork
後続exec()
システムコールで新プログラムをメモリにアップロードプロセスは最後のコマンドを実行してオペレーティングシステムに通知する(
exit
)wait
)親プロセス終了子プロセス(
abort
)2.fork()システムコール
A Process is created by the
fork()
system call.int
main()
{
int pid;
pid = fork();
if (pid == 0)
printf("Hello, I am child!\n");
else if (pid > 0)
printf("Hello, I am parent!\n");
}
3.exec()システムコール
A process can execute a different program by the
exec()
system call.int
main()
{
int pid;
pid = fork();
if (pid == 0)
{
printf("Hello, I am child! Now I'll run date.\n");
execlp("/bin/date", "/bin/date", (char *)0);
}
else if (pid > 0)
printf("Hello, I am parent!\n");
}
4.wait()システムコール
プロセスAがwait()システムプロトコルを呼び出すと
カーネルはプロセスAをchild終了までスリープします.(ブロック状態)
Child processが終了すると、カーネルはプロセスAを起動します.(準備完了ステータス)
5.exit()システムコール
プロセス終了
5-1. 自動終了
最後の文を実行した後、exit()システムで呼び出します.
コンパイラは、プログラムに明記することなく、メイン関数を戻り位置に配置します.
5-2. 非自発的終了
親プロセス強制終了子プロセス
キーボードがkill、breakなどを叩く.
親が終了した場合
6.プロセスに関するシステムプロトコル
fork()
: create a child (copy)exec()
: overlay new imagewait()
: sleep until child is doneexit()
: frees all the resources, notify parent7.プロセス間コラボレーション
7-1. 独立プロセス
7-2. コラボレーションプロセス
7-3. プロセス間コラボレーションメカニズム
メッセージの転送方法
アドレス空間の共有方法
8. Message Passing
Message system
Direct Communication
9. Interprocess Communication
Reference
この問題について(プロセス管理(4週目のOSコース)), 我々は、より多くの情報をここで見つけました https://velog.io/@dogfootbirdfoot/Process-Management-OS강의-4주차テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol