システムプログラミングII(System Programming II)
本科選択・必修開設時期単位数授業形態担 当
情報電子必修4年前1講義重村哲至
【授業の概要】
3年の「システムプログラミングI」に続く科目である。3年に引き続き、UNIXのシステムコールを使用したプログラミングと、その背景にあるオペレーティングシステムの仕組みについて授業する。
【授業の進め方】
講義と演習を繰り返し講義した内容はプログラムを作成して動作確認をしながら進める。十分な演習時間は確保しないので、時間外の演習(プログラムの完成)が必須である。プログラムは次回の授業までに提出すること。
【授業計画】 【授業項目】 【内 容】
1 回 高水準I/O、エラー処理 FILE型, stdin, stdout, stderr, perror, fopen, fclose等について学ぶ。[演習:cp、cmpコマンドを作成する。]
2 回 システムコールと低水準I/O システムコールとは何か、また、open, read, write, closeをシステムコールの例として学ぶ。[演習:cpコマンドの作成と性能比較]
3 回 UNIXファイルシステム ファイルのモード、ディレクトリ、ハードリンク、シンボリックリンクについて学ぶ。[演習:ファイルシステムの操作と観察]
4 回 ファイル操作 mkdir, rmdir, symlink, link, unlink, rename, chmod, chdir システムコールについて学ぶ。[演習:これらのシステムコールを使用する幾つかのコマンドを作成する。]
5 回 プロセス プロセスとは何か解説した後、プロセス関連のコマンドについて学ぶ。[演習:ps、killコマンドを用いて時計プログラムを一時停止させたりする。]
6 回 非同期処理(1) UNIXのシグナル機構の概要を学んだ後、signal、killシステムコールを紹介する。[演習:^Cを押すと途中結果を表示するプログラム]
7 回 非同期処理(2) alarm、pause、sleepシステムコールを使用したタイムアウトのテクニックを紹介する。[演習:1秒毎に途中結果を表示するプログラム]
8 回 中間試験 ここまでに出てきたシステムコールや関数の役割り使用方法等について試験する。
9 回 環境変数 UNIXの環境変数の役割、メカニズムに付いて紹介する。[演習:環境変数の変更と、その結果の確認]
10 回 プログラムからの環境変数利用 環境変数をプログラムから参照する方法を学習する。[演習:printenv コマンドを作成する。]
11 回 文字コード 日本で使用される符号化文字集合、符号化方式について学ぶ。[演習:符号化方式毎にテキストファイルの内容を16進ダンプで確認する。]
12 回 プロセスの生成とプログラムの実行 fork、exec、exitシステムコールを紹介する。[演習:envプログラムを作成する。]
13 回 シェルプログラム(1) C言語で記述された簡単なシェルプログラムのソースコードについて解説する。[演習:シェルプログラムの実行]
14 回 シェルプログラム(2) 組み込みコマンドの必要性を解説する。[演習:setenv、cd 等の組み込みコマンドを追加する。]
期末試験 環境変数、プロセス、リダイレクト、シェルについて、役割り使用方法等を試験する。
15 回 答案返却など 試験の解答を解説する。
【到達目標】UNIXのシステムコールを使用したプログラムが作成できるようになる。また、背景にあるファイルシステムやプロセスの構造とシステムコールの関連が理解できる。
【徳山高専学習・教育目標】B1【JABEE基準】1(2)d-1
【評価法】演習・宿題で作成したプログラム・レポート[20%]、2回の試験の平均点[80%]の総合評価とする。
【テキスト】教科書:カーニハン他、「プログラミング言語C」(共立)
参考書:David A curry、「UNIX C プログラミング」(アスキー)
【関連科目】本科:システムプログラミングI(3年)、オペレーティングシステムI、II(4,5年)