問題一覧
1
1つの仕事を協調して処理するのに、必要な通信システムは?
共有メモリシステム
2
共有資源を操作するための3条件は?
相互排除, 進捗, 有限待機
3
相互排除の説明は以下のどれか
どれかひとつのプロセスがcritical sectionに入ると他が入れない
4
進捗の説明は以下のどれか
どのプロセスもまだ際どい部分を実行してない
5
有限待機の説明は以下のどれか
critical sectionに入る要求をすると他のプロセスがcritical sectionに入れる回数に限度がある
6
critical section実行中に他プロセスを実行させないためのOSレベルでの対策はどれか
カーネルモード, 横取り
7
critical section実行中に他プロセスを実行させないためのソフトウェアレベルでの対策はどれか
Petersonの解法
8
Petersonの解法について、例えば0番プロセスと1番プロセスが同時にcritical sectionに入ったとき、有効になるのはどちらのプロセスか
最後に入った方
9
アトミック命令によって行われる制御をという?
排他制御
10
アトミック命令によるロックを実現するための命令を答えよ
テスト&セット命令, スワップ命令
11
モニタとは、相互排他を①してユーザから②することでバグを減らすためのツールである。
抽象化, 隠蔽
12
シグナルとはユーザや他のプロセスから入力があったときの①を定義する割り込みツールである
応答
13
signal関数を使うと①を受け取ったときの②を決められる
シグナル, 動作
14
while(wait(&status)!=pid); とは ①したプロセスのIDが②プロセスでなければ待つ という意味である
終了, 自分の子
15
exit()や_exit()を使いたいときは、 #include〈①.h〉を使う
stdlib
16
pid_t pid=fork(); を実行すると pidの値には、①のidが格納される
子プロセス
17
pid_t pid=fork(); を実行するとき 自分が最も子供であった場合、 pidの値には、①が格納される
0
18
fork()やpause()などのシステムコールを使いたいときは、 #include〈①.h〉を使う
unistd
19
シグナル処理をしたいときは、 #include〈①.h〉を使う
signal
20
プロセスID(pid_t)を定義したいときは、 #include〈①.h〉を使う
sys_types
21
wait()を使いたいときは、 #include〈①.h〉を使う
sys/wait