オペレーティングシステムの役割を理解し,それらの資源を利用する手段としてシステムコールを使用したプログラミングが行える。計算機内でのプロセスの状態遷移を把握でき,それを自由にコントロールできるようになる。
概要:
オペレーティングシステムの役割を理解し,それらの資源を利用する手段としてシステムコールを使用したプログラミングが行える。計算機内でのプロセスの状態遷移を把握でき,それを自由にコントロールできるようになる。
授業の進め方・方法:
各学習項目ごとに内容の解説を行い,関連する例題を説明した後,実際に実行結果を確認し理解させる。その後課題プログラムを作成し,レポートとして提出する。必要な関数の用法等はオンラインマニュアル等の参照によって自ら解決できるよう指導する。
注意点:
オフィスアワー木曜日7,8限目
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
システムプログラミングのためのC言語知識 |
低学年で学んだC言語の知識に加えて,構造体, ポインタ,リスト処理について復習し理解を深 める。D2:1,2
|
2週 |
システムプログラミングのためのC言語知識 |
低学年で学んだC言語の知識に加えて,構造体, ポインタ,リスト処理について復習し理解を深 める。D2:1,2
|
3週 |
システムプログラミングのためのC言語知識 |
低学年で学んだC言語の知識に加えて,構造体, ポインタ,リスト処理について復習し理解を深 める。D2:1,2
|
4週 |
UNIXにおけるマルチプログラミングとプロセスの状態遷移 |
どのようにマルチプログラミングが実現される かを理解する。プロセスの生成,プログラムの 実行,他のプロセスとの同期を行うシステムコ ールを使った20行程度のプログラムはマニュア ルを参照しながら作成できる。D2:2,3
|
5週 |
fork, wait, exec, exit(基本概念) |
forkシステムコールにより子プロセスを生成できることを理解する。D2:2,3
|
6週 |
fork, wait, exec, exit(プログラミング) |
execファミリによって外部プログラムを実行できることを理解するD2:2,3
|
7週 |
fork, wait, exec, exit(プログラミング) |
waitシステムコールにより親プロセスと子プロセスを同期させられることを学ぶ。D2:2,3
|
8週 |
fork, wait, exec, exit(プログラミング) |
プロセスの状態が主に4種類あることを理解し、ゾンビプロセスを作成するプログラムについて学ぶ。 プロセステーブルが読み取れるようになる。D2:2,3
|
2ndQ |
9週 |
[前期中間試験] |
|
10週 |
試験問題の解答と授業評価アンケート 引数のあるコマンドを実行できるシェルの作成
|
execvを用いて引数を持つコマンドを実行できるようにする D2:1-3
|
11週 |
プロセスとプロセスの状態 |
プロセスの主な状態を理解する。 D2:1-3
|
12週 |
ゾンビ状態とその生成方法 |
ゾンビ状態を作成したり、ゾンビ状態のプロセスを消す。 D2:1-3
|
13週 |
ファイルシステムやパーティションの構造 |
ファイルシステムの仕組みやパーティションの構造を理解する。 D2:1-3
|
14週 |
簡易シェルの作成 |
UNIXのシェルの位置付けを理解し,簡易なシ ェルを作成できる。 D2:1-3
|
15週 |
簡易シェルの作成 |
UNIXのシェルの位置付けを理解し,簡易なシ ェルを作成できる。 D2:1-3
|
16週 |
[前期期末試験] |
|
後期 |
3rdQ |
1週 |
ファイルシステム(パーミッション) |
ファイルのパーミッションについて理解し、パーミッションの表示、変更ができるようになる。 Linuxのマスク値について理解する。 D2:1-3
|
2週 |
ファイルシステム(プログラミング) |
UNIXファイルシステムのディスクの領域管理, ファイル管理の仕組みが理解できる。 ファイルの管理情報を参照,変更を行うプログ ラムを作成できる。 D2:1-3
|
3週 |
ファイルシステム(プログラミング) |
UNIXファイルシステムのディスクの領域管理, ファイル管理の仕組みが理解できる。 ファイルの管理情報を参照,変更を行うプログ ラムを作成できる。 D2:1-3
|
4週 |
ディレクトリの移動ができるシェル |
システムコールを用いてディレクトリの移動ができるシェルを作成する D2:1-3
|
5週 |
pipe機能 |
標準入力とパイプラインが理解できる。 D2:1-3
|
6週 |
pipe機能 |
パイプラインの付け替えができるようになる。 D2:1-3
|
7週 |
パイプ機能を持つシェルの作成 |
標準入力とパイプラインが理解でき,プロセス 間通信が行えるプログラムが作成できる。 D2:1-3
|
8週 |
パイプ機能を持つシェルの作成 |
標準入力とパイプラインが理解でき,プロセス 間通信が行えるプログラムが作成できる。 D2:1-3
|
4thQ |
9週 |
パイプ機能を持つシェルの作成 |
標準入力とパイプラインが理解でき,プロセス 間通信が行えるプログラムが作成できる。 D2:1-3
|
10週 |
[後期中間試験] |
|
11週 |
シグナルの原理(基本概念) |
シグナルを使った,プロセス間の同期の原理を 理解するとともに,プログラムが作成できる。 D2:1-3
|
12週 |
シグナルの原理(プログラミング) |
Ctrl+CやCtrl+Zなど何気なく使っていたショートカットキーが実はSIGINTやSIGTSTPなどのシグナルに対応していたことを学ぶ。 D2:2,E2:2
|
13週 |
シグナルの原理(プログラミング) |
さまざまなシグナルを使ったプログラムが作成できる。 D2:2,E2:2
|
14週 |
シグナルの原理(プログラミング) |
シグナルを受信するだけでなく、無視することも必要になるケースを理解する。 D2:2,E2:2
|
15週 |
シグナルの原理(プログラミング) |
アラームシグナルを理解するとともに、プログラムを作成できる。 D2:2,E2:2
|
16週 |
[後期期末試験] |
|