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