next up previous
次へ: この文書について... 上へ: 情報システム実験(15) 戻る: 課題3 4バイトのスイッチ入力とLED出力

レポート

  1. copy_from_usercopy_to_userの違いを説明しなさい。
    L.D.D.3の「3.7 READとWRITE」を参照

  2. シグナル名SIGTSTPのシグナル番号はsignal.hヘッダーファ イルの中では、どのように定義されているか。

  3. シグナル名SIGINTのシグナル番号はsignal.hヘッダーファ イルの中では、どのように定義されているか。

  4. stty -aというコマンドを実行しなさい。
    画面の表示において、intr = ^Cはインタラプト(interrupt)を起 させるばあいのキー入力を示している。^[Control]キー を意味しているので、^C[Control]-[c]である。そこで、 このキー入力はSIGINT信号を生成することが分かる。

    さらに画面の表示を見ていくと、susp = ^Zがある。suspとは、 サスペンド(suspend)の略である。^[Control]キーを意味 しているので、^Z[Control]-[z]である。このキー入力で 生成される信号名はSIGTSTPであり、TSTPterminal stopの略である。このSTOP状態は一学期のジョブの実験の、フォ アグラウンド、バックグラウンド、停止状態(STOP)で体験した停止状態と 同じものである。

    そこで、この停止状態を使えば、デバイスドライバやアプリケーショ ンの開発でもemacsを終了しないでコンパイル作業をすることがで きる。

    emacsでソースファイルを作成し、C-x C-sでファイルをセー ブしてからシグナルC-zemacsを停止状態にすれば、そのままコ ンパイル作業に移ることができる。もし、コンパイル作業でエラーが発生 したばあいは、そのままフォアグラウンドのemacsに戻って修正作 業をすればよい。

    なお、コンパイルに成功したばあいは、C-x C-cemacsを終 了しておくことは当然である。さもないと、沢山のemacsが停止状 態で残ってしまうからである。これはjobsコマンドで確かめること ができる。そこでkill %<job番号>を使って終了してもよい。

    上記のC-x C-s[Control]-[x] [Control]-[s]の略であり、 C-z[Control]-[z]の略である。

    停止状態からフォアグラウンドに戻るときのキー操作を示しなさい。

  5. 通信などによって、連続した大量の情報が画面に流れるときに一時停止さ せたいことがある。このようなときは[Control]-[s]で一時停止さ せることができる。一時停止を解除するときは[Control]-[q]で通 信を再開できる。

    情報量が非常に大きなファイルを見るときも一時停止と再開を繰り返すこ とができる。また、コンピュータのコマンド入力とその応答も通信なので 一時停止させることができる。

    コンピュータのプロンプトが表示されているときに[Control]-[s] を実行しなさい。
    そのあとで適当なコマンドか文字を入力しても画面には応答が無いことを確認し なさい。
    そして[Control]-[q]を実行すると応答が再開することを確認しなさい。

    [Control]-[s]の信号名はSIGSTOPであり、[Control]-[q]の 信号名はSIGCONTである。この二つの信号は、stty -aコマ ンドで表示される画面では、どのように表現されているか示しなさい。



MANOME Yoichi 平成19年1月6日