授業科目

オペレーティングシステム
Oprating Systems

担当者

教授   海谷 治彦
前 木2

単位

2

到達目標

理学部のカリキュラムポリシーに従い,オペレーティングシステムの役割を学生が理解すること、
オペレーティングシステムの内部 (ファイルシステム、プロセス、メモリ管理、仮想メモリ等) を学生が理解すること。

授業内容

オペレーティングシステムはコンピュータの基本のプログラムであり、アプリケーションを動かすため及びコンピュータを操作するために必須のものである。
本授業では、まず外側から見たオペレーティングシステム、すなわちその役割および利用者に提供する機能について述べる。
これにより、オペレーティングシステムが利用者にとって、なくてはならないものであることを理解できるようにする。
次に、オペレーティングシステムの内部について、基本の構成要素とその動作原理についてできるだけ具体的に説明する。
そして、オペレーティングシステムの本質的な役割は、コンピュータシステムを抽象化して、より使いやすくすることであることが理解されるようにする。
ファイル、プロセス、仮想メモリなどは、この見方をすることにより、その本質がよりよく理解できる。
なお、本授業ではノート型PCを用いて、講義と実習を組み合わせた授業を行うことにより、内容をよりよく理解できるようにする。

授業計画

各回の講義内容は一応次のように予定しているが、時間の関係で若干前後する場合もある。
本講義の受講に際しては、C言語によるプログラミング、およびオペレーティングシステムの基本操作(プログラムの実行やファイルの閲覧、編集等)を習得しておくこと。

1.オペレーティングシステムの役割
予習として、C言語のプログラミング、およびOS(とくにUNIX, Linux系)の操作法を学習しておくこと。
復習としては、解説された概念や技法中で、理解できなかった部分をLMSにレポートとして提出する作業を行なってもらう。
この作業のため、授業で配布されたスライド全てを見直すこと。
今回の予習と復習をあわせて,概ね4時間を費やすこと.

2.オペレーティングシステムの操作 その1: 画面ベース(GUI)
予習として、GUIをコマンドの操作法を学習しておくこと。
復習としては、解説された操作法中で、理解できなかった部分をLMSにレポートとして提出する作業を行なってもらう。
この作業のため、授業で配布されたスライド全てを見直すこと。
今回の予習と復習をあわせて,概ね4時間を費やすこと.

3.オペレーティングシステムの操作 その2: 文字ベース(コマンド)
予習として、コマンドの操作と合成法を学習しておくこと。
復習としては、解説されたコマンドで理解できなかった部分をLMSにレポートとして提出する作業を行なってもらう。
この作業のため、授業で配布されたスライド全てを見直すこと。
今回の予習と復習をあわせて,概ね4時間を費やすこと.

4.プログラムからオペレーティングシステムを使う
  ・ライブラリ ・システムコール
予習として、C言語のシステムコールやライブラリ一覧を閲覧しておくこと。
復習としては、システムコールやライブラリで、理解できなかった部分をLMSにレポートとして提出する作業を行なってもらう。
この作業のため、授業で配布されたスライド全てを見直すこと。
今回の予習と復習をあわせて,概ね4時間を費やすこと.

5.オペレーティングシステムの構成
  ・割込み ・マルチプログラミング ・カーネル
予習として、プロテクトモードをサポートするCPUの構成を学習しておくこと。
復習としては、カーネル機能で、理解できなかった部分をLMSにレポートとして提出する作業を行なってもらう。
この作業のため、授業で配布されたスライド全てを見直すこと。
今回の予習と復習をあわせて,概ね4時間を費やすこと.

6.入出力の制御
  ・入出力ドライバ ・入出力の効率化
予習として、キーボードやモニタ等の入出力装置の構成を学習しておくこと。
復習としては、解説されたキーボードやモニタ等の入出力装置中で、理解できなかった部分をLMSにレポートとして提出する作業を行なってもらう。
この作業のため、授業で配布されたスライド全てを見直すこと。
今回の予習と復習をあわせて,概ね4時間を費やすこと.

7.ファイルの管理
  ・ファイル ・ファイルの体系的管理(ディレクトリ)
  ・ファイル領域の管理 ・ファイルアクセス
予習として、ファイルシステムの構成を学習しておくこと。
復習としては、解説されたファイルシステムの構造中で、理解できなかった部分をLMSにレポートとして提出する作業を行なってもらう。
この作業のため、授業で配布されたスライド全てを見直すこと。
今回の予習と復習をあわせて,概ね4時間を費やすこと.

8.プロセスとその管理
  ・プロセス ・プロセスの実現 ・プロセススケジューリング
予習として、実際のOS上のプロセスの観察をしておくこと。
復習としては、フロセスのライフサイクル中で、理解できなかった部分をLMSにレポートとして提出する作業を行なってもらう。
この作業のため、授業で配布されたスライド全てを見直すこと。
今回の予習と復習をあわせて,概ね4時間を費やすこと.

9.多重プロセス、多重スレッド
  ・複数プロセスを使ったプログラミング ・プロセス間の同期
予習として、並列処理と並行プログラム記述を学習しておくこと。
復習としては、解説された並列処理と並行プログラム記述中で、理解できなかった部分をLMSにレポートとして提出する作業を行なってもらう。
この作業のため、授業で配布されたスライド全てを見直すこと。
今回の予習と復習をあわせて,概ね4時間を費やすこと.

10.メモリの管理
  ・メモリ領域の割当て管理
予習として、メモリの論理的構成を学習しておくこと。
復習としては、解説されたメモリの論理的構成中で、理解できなかった部分をLMSにレポートとして提出する作業を行なってもらう。
この作業のため、授業で配布されたスライド全てを見直すこと。
今回の予習と復習をあわせて,概ね4時間を費やすこと.

11.仮想メモリ
  ・仮想メモリ ・ページング ・メモリスケジューリング
予習として、仮想メモリの必要性と役割を学習しておくこと。
復習としては、解説された仮想メモリの仕組み中で、理解できなかった部分をLMSにレポートとして提出する作業を行なってもらう。
この作業のため、授業で配布されたスライド全てを見直すこと。
今回の予習と復習をあわせて,概ね4時間を費やすこと.

12.ネットワークの制御
予習として、インターネットの必要性と役割を学習しておくこと。
復習としては、解説されたインターネットの仕組み中で、理解できなかった部分をLMSにレポートとして提出する作業を行なってもらう。
この作業のため、授業で配布されたスライド全てを見直すこと。
今回の予習と復習をあわせて,概ね4時間を費やすこと.

13.セキュリティおよび運用管理
予習として、セキュリティの基本概念を学習しておくこと。
復習としては、解説されたセキュリティモデル中で、理解できなかった部分をLMSにレポートとして提出する作業を行なってもらう。
この作業のため、授業で配布されたスライド全てを見直すこと。
今回の予習と復習をあわせて,概ね4時間を費やすこと.

14.オペレーティングシステムと性能
予習として、ベンチマークの実例を学習しておくこと。
復習としては、解説されたベンチマーク基準中で、理解できなかった部分をLMSにレポートとして提出する作業を行なってもらう。
この作業のため、授業で配布されたスライド全てを見直すこと。
今回の予習と復習をあわせて,概ね4時間を費やすこと.

使用書(教科書)は特に指定しない。
授業のためのスライドを以下のページから配布する。
https://www.sci.kanagawa-u.ac.jp/info/kaiya/os/

授業運営

授業ではノート型PCを使用する(貸与されたPCを毎回必ず持参すること)。
これを用いて、オペレーティングシステムに関わる実習を随時行うとともに、また講義用のツール(電子化教材の閲覧など)としても使用する。
講義内容の修得確認のための小テストもしくは実習を随時行う。

https://www.sci.kanagawa-u.ac.jp/info/kaiya/os/

授業中において,不明な点や疑問点を,PCやスマートフォン等で随時調査することを推奨する.

評価方法

成績は、期末試験の成績に実習結果および小テスト結果を加味して評価する。
実習および小テスト結果を50%、期末試験の結果を50%の配点とする。

オフィスアワー

水曜日 2限 6-214室にて.

使用書

『https://www.sci.kanagawa-u.ac.jp/info/kaiya/os/』

参考書

白崎 博生『Linuxのブートプロセスをみる (UNIXMAGAZINE COLLECTION)』[アスキー]2004
Daniel P. Bovet『詳解 Linuxカーネル 第3版』[オライリー・ジャパン]2007

Copyright© 2017 Kanagawa University. All Rights Reserved.