システムプログラム

科目基礎情報

学校 豊田工業高等専門学校 開講年度 令和02年度 (2020年度)
授業科目 システムプログラム
科目番号 35112 科目区分 専門 / 選択
授業形態 講義 単位の種別と単位数 学修単位: 2
開設学科 情報工学科 対象学年 5
開設期 前期 週時間数 2
教科書/教材 渡辺知恵美「システムプログラミング入門」サイエンス社,ISBN:978-4-7819-1276-9/適宜プリントを配布する
担当教員 藤原 賢二

到達目標

(ア)コンピュータシステムにおけるオペレーティングシステムの位置づけを説明でき,オペレーティングシステムが備えるべき機能を説明できる。
(イ)Linuxの特徴を理解し,Linuxでプログラミングを行うために必要な事項を理解し説明できる。
(ウ)プロセス,ファイルI/O関連のシステムコールを利用したプログラミングができる。
(エ)プロセス間通信のシステムコールを利用したプログラミングができる。

ルーブリック

最低限の到達レベルの目安(優)最低限の到達レベルの目安(良)最低限の到達レベルの目安(不可)
評価項目(ア)コンピュータシステムにおけるオペレーティングシステムの位置づけを説明でき,オペレーティングシステムが備えるべき機能を説明できる。コンピュータシステムにおけるオペレーティングシステムの位置づけと,オペレーティングシステムが備えるべき機能をキーワードを用いて簡単に説明できる。コンピュータシステムにおけるオペレーティングシステムの位置づけと,オペレーティングシステムが備えるべき機能を説明できない。
評価項目(イ)Linuxの特徴を理解し,Linuxでプログラミングを行うための事項を説明できる。Linuxの特徴を理解し,Linuxでプログラミングを行うための事項をキーワードを用いて簡単に説明できる。Linuxの特徴を理解せず,Linuxでプログラミングを行うための事項を説明できない。
評価項目(ウ)マニュアルを参考にしながら自身の力でプロセス、ファイルI/O関連のシステムコールを利用したプログラミングができる。使うべきシステムコールが与えられればマニュアルを参考にしながらプロセス、ファイルI/O関連のシステムコールを利用したプログラミングができる。プロセス、ファイルI/O関連のシステムコールを利用したプログラミングができない。
評価項目(エ)マニュアルを参考にしながら自身の力でプロセス間通信、ソケット通信関連のシステムコールを利用したプログラミングができる。使うべきシステムコールが与えられればマニュアルを参考にしながらプロセス間通信、ソケット通信関連のシステムコールを利用したプログラミングができる。プロセス間通信、ソケット通信関連のシステムコールを利用したプログラミングができない。

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

学習・教育到達度目標 A2 ソフトウェア開発において,数理的理論に基づくスマートな設計ができるとともに,ハードウェアの基本動作を意識した設計ができる.
JABEE d 当該分野において必要とされる専門的知識とそれらを応用する能力
本校教育目標 ① ものづくり能力

教育方法等

概要:
これまで学んできたC言語ならびにオペレーティング・システム(OS)の知識を発展させ、OSにより近い管理テーブルや周辺装置を利用するためのシステムコール・プログラミングを学習する。また、OSカーネルとアプリケーション・プログラムの動作関係やメモリ資源の利用について、プログラミング演習を行うことによりOSの特徴や原理についても習得する。演習は、Windows上で動作するLinuxOSを使用して行う。
授業の進め方・方法:
講義はPower Pointを用いて説明を行う。適宜Windows上で動作するLinux OSを用いて講義内容を確認するための演習時間を設ける。
注意点:
継続的に授業内容の予習・復習を行うこと。また、授業内容について、決められた期日までの課題(レポート)提出を求める。ノートPC,ラズベリーパイを適宜持参のこと。「情報科学」教育プログラムの必履修科目である。

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 シラバスによる授業内容の説明および演習環境の構築
(復習:演習環境の構築を行う)
演習環境の構築ができる。
2週 LinuxOSの特徴:カーネルとプロセス管理、記憶管理、ファイル・システムおよびシステムコール概説
(予習:教科書1章を読む)
カーネルとプロセス管理、記憶管理、ファイル・システムおよびシステムコールについて基本的な内容が理解できる。
3週 LinuxOSの特徴:パッケージマネージャーとCUIによるLinuxの管理
(復習:Linux環境に慣れる)
Linuxを操作・管理するために必要なパッケージマネージャーとCUIについて基本的な内容が理解できる。
4週 Linux環境でのプログラム開発:シェルスクリプト
(課題:シェルスクリプトを用いた課題を行う)
シェルスクリプトについて理解できる。
5週 ファイルI/O関連のシステムコール(1):ファイルI/Oのシステムコール
(予習:教科書3章を読む)
ファイルI/Oのシステムコールについて理解できる。
6週 ファイルI/O関連のシステムコール(2):低水準入出力のシステムコール・プログラム演習
(予習:教科書4章を読む)
低水準入出力のシステムコール・プログラムを実装し、実行できる。
7週 ファイルI/O関連のシステムコール(3):高水準入出力のシステムコール・プログラム演習
(予習:教科書5章を読む)
高水準入出力のシステムコール・プログラムを実装し、実行できる。
8週 OSにおけるファイル管理:ファイルシステム,リンク,パーティション
(予習:教科書6,7章を読む)
OSにおけるファイル管理として,ファイルシステム,リンク,パーティションについて理解できる。
2ndQ
9週 OSによるメモリ管理:アドレス空間
(予習:教科書8,9章を読む)
アドレス空間の概念を理解し,OSの記憶管理方式について理解できる。
10週 プロセス関連のシステムコール:fork、execシステムコール・プログラムとその演習
(予習:教科書10,11章を読む)
Linuxにおけるプロセスとfork、execシステムコールについて理解でき,プログラムを実装し,実行できる。
11週 シグナル関連のシステムコール:シグナルのシステムコールとその演習
(予習:教科書11章を読む)
シグナルのシステムコールについて理解でき,プログラムを実装し,実行できる。
12週 プロセス間通信(1):パイプによるプロセス間通信
(予習:教科書12章を読む)
パイプによるプロセス間通信ついて理解し、プログラムを実装し、実行できる。
13週 プロセス間通信(2):共有メモリを用いたプロセス間通信
(予習:教科書13章を読む)
共有メモリによるプロセス間通信ついて理解し、プログラムを実装し、実行できる。
14週 プロセス間通信(3):セマフォによる排他制御
(予習:教科書13章を読む)
セマフォの概念を理解でき,排他制御を行うプログラムを実装し,実行できる。
15週 総まとめとLinuxを用いたシステム開発
(復習:講義全体を振り返る)
Linuxを用いたシステム開発の方法について理解できる.
16週

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング主要な言語処理プロセッサの種類と特徴を説明できる。4
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。4前1,前2,前3,前4
システムプログラムコンピュータシステムにおけるオペレーティングシステムの位置づけを説明できる。4前1,前2,前3,前4,前5,前6,前7
プロセス管理やスケジューリングなどCPUの仮想化について説明できる。4前2,前10,前11,前12,前13,前14
排他制御の基本的な考え方について説明できる。4前13,前14
記憶管理の基本的な考え方について説明できる。4前5,前6,前7,前8,前9,前12,前13

評価割合

中間試験定期試験課題合計
総合評価割合305020100
専門的能力305020100