システムプログラミング

科目基礎情報

学校 香川高等専門学校 開講年度 令和04年度 (2022年度)
授業科目 システムプログラミング
科目番号 4131 科目区分 専門 / 選択
授業形態 授業 単位の種別と単位数 学修単位: 2
開設学科 情報工学科(2019年度以降入学者) 対象学年 4
開設期 前期 週時間数 2
教科書/教材 教科書:篠山学 著 「システムプログラミング入門-実行しながら理解するLinux OSのしくみ」
担当教員 篠山 学

到達目標

オペレーティングシステムの役割を理解し,それらの資源を利用する手段としてシステムコールを使用したプログラミングが行える。計算機内でのプロセスの状態遷移を把握でき,それを自由にコントロールできるようになる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1目的に必要なシステムコールや関数などを自在に使えるシステムコールや関数の動きを知っている講義で出てきたシステムコールや関数などを1つも理解していない。
評価項目2
評価項目3

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

教育方法等

概要:
オペレーティングシステムの役割を理解し,それらの資源を利用する手段としてシステムコールを使用したプログラミングが行える。計算機内でのプロセスの状態遷移を把握でき,それを自由にコントロールできるようになる。
授業の進め方・方法:
各学習項目ごとに内容の解説を行い,関連する例題を説明した後,実際に実行結果を確認し理解させる。その後課題プログラムを作成し,レポートとして提出する。必要な関数の用法等はオンラインマニュアル等の参照によって自ら解決できるよう指導する。
注意点:
オフィスアワー木曜日7,8限目

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 システムプログラミングのためのC言語知識
プロセスの生成(fork, wait, exec, exit)
低学年で学んだC言語の知識に加えて,構造体,
ポインタ,リスト処理について復習し理解を深
める。D2:1,2
どのようにマルチプログラミングが実現されるかを理解する。
プロセスの生成,プログラムの実行,システムコールを理解する。D2:1,2
2週 fork, wait, exec, exit(プログラミング) forkシステムコールにより子プロセスを生成できることを理解する。D2:2,3
execファミリによって外部プログラムを実行できることを理解するD2:2,3
3週 プロセスとプロセスの状態 プロセスの状態が主に4種類あることを理解し、ゾンビプロセスを作成するプログラムについて学ぶ。
プロセステーブルが読み取れるようになる。D2:2,3
4週 引数のあるコマンドを実行できるシェルの作成 execvを用いて引数を持つコマンドを実行できるようにする D2:1-3
5週 threadとmutex threadによるユーザへの応答時間の短縮方法について学ぶ。D2:2,3
threadを用いたマルチスレッドにおける排他制御について学ぶ。D2:2,3
6週 ファイルシステムとパーティション UNIXファイルシステムのディスクの領域管理,ファイ
ル管理の仕組みが理解できる。
ファイルの管理情報を参照,変更を行うプログラムを
作成できる。 D2:1-3
7週 i-nodeやディレクトリエントリ、ファイルアクセス ファイルやディレクトリの管理情報が格納されている
i-nodeについて理解できる。D2:1-3
ディレクトリエントリを用いたプログラムが作成でき
る。D2:1-3
8週 ファイルの所有者とパーミッション、マスク値 ファイルやディレクトリのパーミッション、マスク値
について理解できる。
また、パーミッションを変更できる。D2:1-3
2ndQ
9週 [前期中間試験]
10週 試験問題の解答と授業評価アンケート
pipe機能とパイプラインを用いたコマンド(プロセス間
通信)
パイプを用いたコマンドやプロセス間通信が理解できる。D2:1-3
11週 pipe機能(プログラミング) パイプを用いたプログラムが作成できる。D2:1-3
12週 名前付きpipe(プロセス間通信) 名前付きパイプが理解できる。 D2:1-3
13週 シグナルの原理(プロセス間通信) シグナルを使った,プロセス間の同期の原理を理解す
るとともに,プログラムが作成できる。
Ctrl+CやCtrl+Zなど何気なく使っていたショートカッ
トキーが実はSIGINTやSIGTSTPなどのシグナルに対
応していたことを学ぶ。 D2:1-3,E2:2
14週 シグナルの原理(プログラミング) シグナルを受信するだけでなく、無視することも必要
になるケースを理解する。
アラームシグナルを理解するとともに、プログラムを
作成できる。 D2:2,E2:2
15週 共有メモリとセマフォ(プロセス間通信) 共有メモリが理解できる。 排他制御であるセマフォが
理解できる。 D2:1-3
16週 [前期期末試験]

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

分類分野学習内容学習内容の到達目標到達レベル授業週

評価割合

試験課題提出合計
総合評価割合8020100
基礎的能力401050
専門的能力401050