1. プログラミングを通じてオペレーティングシステムに必要な機能を理解する。
2. オペレーティングシステムの機能を用いるプログラムを作成できる。
概要:
UNIXのシステムコールを使用したプログラミングと、その背景にあるオペレーティングシステムの仕組みについて授業する。
授業の進め方・方法:
講義と演習を繰り返す。
講義した内容はプログラムを作成して動作確認をしながら進める。
十分な演習時間は確保しないので,毎回1時間程度,時間外の演習(プログラムの完成)を行うことが必須である。
注意点:
最終評価=(「課題評価点の平均点」を100点満点に換算したもの + 試験の平均点) ÷ 2
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
ガイダンス(コーディング規約、C言語開発環境、添削システム) 【事前事後学習の内容(1時間)】システム操作(課題1) |
1. 添削システムから課題を受け取ることができる。 2. 課題プログラムをコーディング規約に沿って書くことができる。 3. 添削システムに課題を提出することができる。
|
2週 |
ファイル入出力システムコール 【事前事後学習の内容(1時間)】cpコマンド作成(課題2) |
1. システムコールの必要性が説明できる。 2. open, read, write, close システムコール使用したプログラムが作成できる。
|
3週 |
高水準I/Oと低水準I/O 【事前事後学習の内容(1時間)】高低水準性能比較(課題3) |
1. 低水準I/Oと高水準I/Oの関係が説明できる。 2. バッファの役割が説明できる。 3. 性能の比較ができる。
|
4週 |
UNIXファイルシステム 【事前事後学習の内容(1時間)】実システム調査(課題4) |
1. ファイルのモード、ディレクトリ、ハードリンク、シンボリックリンクの意味を理解しUNIXコマンドで操作できる。
|
5週 |
ファイル操作システムコール 【事前事後学習の内容(1時間)】コマンド作成(課題5) |
1. mkdir, rmdir, symlink, link, unlink, rename, chmod, chdir システムコールを使用する幾つかのコマンドを作成することができる。
|
6週 |
プロセスとJOB 【事前事後学習の内容(1時間)】実システム調査 |
1. プロセスとは何か模式図を使って説明できる。 2. プロセスとJOB関連のUNIXコマンド(^C等も含む)が操作できる。
|
7週 |
シグナル 【事前事後学習の内容(1時間)】sleep関数作成(課題6) |
1. シグナルとは何か簡単な説明ができる。 2. ハンドラ関数が記述してsignalシステムコールで登録できる。 3. kill、sleep、pause、alarm等のシステムコールを用いたプログラミングができる。
|
8週 |
中間試験 |
基本事項の理解を確認する。
|
2ndQ |
9週 |
環境変数 【事前事後学習の内容(1時間)】実システム調査(課題7) |
1. 環境変数の役割が簡単に説明できる。 2. 環境変数を操作するUNIXコマンドを使用できる。
|
10週 |
環境変数の仕組み 【事前事後学習の内容(1時間)】printenvコマンド作成(課題8) |
1. 環境変数の仕組みを簡単に説明できる。 2. 環境変数を扱う簡単なプログラミングができる。
|
11週 |
他のプログラムの実行 【事前事後学習の内容(1時間)】envコマンド作成(課題9) |
1. spawn方式とfork-exec方式の違いを説明できる。 2. execシステムコールを使用したプログラムが作成できる。 3. 入出力のリダイレクトについて説明できる。
|
12週 |
プロセスの生成 【事前事後学習の内容(1時間)】system関数作成(課題10) |
1. forkシステムコールの役割と動作を説明できる。 2. fork-exec-exit/waitの流れをもつプログラムを作成できる。
|
13週 |
シェルプログラム 【事前事後学習の内容(1時間)】例題プログラム理解 |
1. 与えられた最低限の機能をもつシェルプログラムの構造を理解できる。
|
14週 |
シェルプログラムの改造 【事前事後学習の内容(1時間)】例題プログラム改造(課題11) |
1. シェルプログラムに環境変数管理機能を追加できる。
|
15週 |
期末試験 |
基本事項の理解を確認する。
|
16週 |
レビュー 課題の解答と提出状況確認など |
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | 前1,前2,前5,前7,前10,前11,前12,前14 |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | 前1,前2,前5,前7,前10,前11,前12,前14 |
システムプログラム | コンピュータシステムにおけるオペレーティングシステムの位置づけを説明できる。 | 3 | 前2,前3,前4,前5,前6,前7,前9,前10,前11,前12,前13,前14 |
プロセス管理やスケジューリングなどCPUの仮想化について説明できる。 | 3 | 前6,前7,前11,前12,前13,前14 |