システムプログラミングⅡ

科目基礎情報

学校 徳山工業高等専門学校 開講年度 平成31年度 (2019年度)
授業科目 システムプログラミングⅡ
科目番号 0122 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 学修単位: 1
開設学科 情報電子工学科 対象学年 4
開設期 前期 週時間数 1
教科書/教材 参考書:カーニハン他、「プログラミング言語C」(共立)、 参考書:David A curry、「UNIX C プログラミング」(アスキー)
担当教員 重村 哲至

到達目標

1. プログラミングを通じてオペレーティングシステムに必要な機能を理解する。
2. オペレーティングシステムの機能を用いるプログラムを作成できる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
1. プログラミングを通じてオペレーティングシステムに必要な機能を理解する。学んだ全てのシステムコールの役割が理解できた。学んだシステムコールの3分の2以上で役割が理解できた。学んだシステムコールの中3分の2未満しか役割が理解できなかった。
2. オペレーティングシステムの機能を用いるプログラムを作成できる。シェルを理解し必要なシステムコールを選んで機能追加ができる。学んだシステムコールの3分の2以上でエラー処理を含むプログラムが作成できる。学んだシステムコールの中で使えるものが3分の2未満である。

学科の到達目標項目との関係

到達目標 B 1 説明 閉じる
JABEE d-1 説明 閉じる

教育方法等

概要:
UNIXのシステムコールを使用したプログラミングと、その背景にあるオペレーティングシステムの仕組みについて授業する。
授業の進め方・方法:
講義と演習を繰り返す。
講義した内容はプログラムを作成して動作確認をしながら進める。
十分な演習時間は確保しないので,毎回1時間程度,時間外の演習(プログラムの完成)を行うことが必須である。
注意点:

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 高水準I/O、エラー処理 1. 高水準I/Oを用いたプログラムが作成できる。
2. perrorを用いたエラー処理が記述できる。
2週 システムコールと低水準I/O 1. システムコールの必要性が説明できる。
2. open, read, write, close システムコール使用したプログラムが作成できる。
3. 低水準I/Oと高水準I/Oの関係が説明できる。
3週 UNIXファイルシステム 1. ファイルのモード、ディレクトリ、ハードリンク、シンボリックリンクの意味を理解しUNIXコマンドで操作できる。
4週 ファイル操作システムコール 1. mkdir, rmdir, symlink, link, unlink, rename, chmod, chdir システムコールを使用する幾つかのコマンドを作成することができる。
5週 プロセスとJOB 1. プロセスとは何か模式図を使って説明できる。
2. プロセスとJOB関連のUNIXコマンド(^C等も含む)が操作できる。
6週 シグナル 1. シグナルとは何か簡単な説明ができる。
2. ハンドラ関数が記述してsignalシステムコールで登録できる。
7週 シグナルと合わせて使うシステムコール 1. kill、sleep、pause、alarm等のシステムコールを用いたプログラミングができる。
8週 中間試験 これまでに学んだ内容に関する質問に答えることができる。
2ndQ
9週 環境変数 1. 環境変数の役割が簡単に説明できる。
2. 環境変数を操作するUNIXコマンドを使用できる。
10週 環境変数の仕組み 1. 環境変数の仕組みを簡単に説明できる。
2. 環境変数を扱う簡単なプログラミングができる。
11週 文字コード 1. 文字集合、符号化文字集合、文字符号化方式について簡単な説明ができる。
2. 日本で使用される文字符号化方式間で文字コード変換ができる。
12週 他のプログラムの実行 1. spawn方式とfork-exec方式の違いを説明できる。
2. execシステムコールを使用したプログラムが作成できる。
3. 入出力のリダイレクトについて説明できる。
13週 プロセスの生成 1. forkシステムコールの役割と動作を説明できる。
2. fork-exec-exit/waitの流れをもつプログラムを作成できる。
14週 シェルプログラムの作成 1. 与えられた最低限の機能をもつシェルプログラムの構造を理解できる。
2. シェルプログラムに機能を追加できる。
15週 期末試験 中間試験以降に学んだ内容についての質問に答えることができる。
16週 答案返却など 試験の解答を解説する

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング与えられた問題に対して、それを解決するためのソースプログラムを記述できる。4前1,前2,前4,前6,前7,前10,前12,前13,前14
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。4前1,前2,前4,前6,前7,前10,前12,前13,前14
システムプログラムコンピュータシステムにおけるオペレーティングシステムの位置づけを説明できる。3前2,前3,前4,前5,前6,前7,前9,前10,前12,前13,前14
プロセス管理やスケジューリングなどCPUの仮想化について説明できる。3前2,前3,前4,前5,前6,前7,前9,前10,前12,前13,前14

評価割合

試験宿題相互評価態度ポートフォリオその他合計
総合評価割合80200000100
基礎的能力0000000
専門的能力80200000100
分野横断的能力0000000