科目名 オペレーティングシステム 科目区分 情報学科 必修...

Preview:

Citation preview

時間割コード 664300

科目名 オペレーティングシステム 科目区分 情報学科

担当教員 五十嵐 智

単位 2 配当学年 3 必修・選択区分 選択(2群) 研究室 27-1904

実施学期 前期 授業形態 講義 電子メールアドレス pc00392@gmail.com

キーワード 授業科目の教育目標 資源の仮想化 プロセス管理 記憶管理 入出力管理 ファイルシステム

(1) オペレーティングシステム(OS)の役割りと機能を理解する。 (2) OSの基本的な管理機能(資源の仮想化,プロセス,主記憶,入出力,ファイルなど)と その制御方法/制御アルゴリズムについて理解する。

授業計画・概要 前期 1 オペレーティングシステム(OS)の役割りと機能(コンピュータ資源の仮想化・抽象化・多重化) 2 ユーザインターフェースとしてのOS(コマンドプロセッサ,シェル,CUIとGUI) 3 OSを支援するハードウェア機構(割込み,入出力,特権モード/ユーザモード) 4 プロセス管理(ジョブ・プロセス・スレッド,プロセスの状態と状態遷移) 5 1~4までのまとめと演習問題 6 中間試験(1) 7 主記憶管理(記憶階層,実記憶におけるメモリ管理方式) 8 仮想記憶の方式(仮想記憶の概念,セグメント方式とページング方式,動的アドレス変換) 9 仮想記憶の管理(ページ配置とページ置換え方式) 10 並行プロセスと排他制御(プロセス同期,セマフォア,生産者消費者問題) 11 ディスク装置とファイルシステム(ファイル操作,ディレクトリ構造,UNIXのファイル構造) 12 ネットワークとOS 13 7~12までのまとめと演習問題 14 中間試験(2) 15 期末試験 【概要】オペレーティングシステム(OS)とは,ユーザから見たコンピュータのハードウェア資源を管理し,プログラム の実行環境を提供する一群のシステムソフトウェアのことをいう。本講義ではOSの基本概念,機能と構成要素,プロセス ・主記憶・入出力・ファイルなどの管理と制御について講義する。

学生の行動目標/到達目標 情報学部の教育目標(教則参照)に基づき,次の事項を到達目標とする。 (1) コンピュータシステムにおける資源管理という観点から,OSの機能と役割りを理解し,OSの仕組みと構成を具体的に 説明できる。 (2) 資源管理の観点からOSで用いられる基本的なアルゴリズムとデータ構造を具体的に説明できる。

評価の方法・総合評価割合 (1) 2回の中間試験,期末試験を4:6の比率で点数化(100点満点)し,60点以上を合格要件とする。なお,2回の中間試験 で,合格基準を満たせば,期末試験を免除する。 (2) 正当な理由のない欠席・遅刻・途中退室・授業時の居眠り,私語,飲食などは厳禁とする。欠席は2点,遅刻及びその 他の厳禁行為は1点を減点する。遅刻は授業開始時間5分以降20分以内の範囲とし,20分以降は欠席扱いとする。

テキスト、教材、参考図書など 教科書:オペレーティングシステム -OS学- /柴山潔(近代科学社)/2,730円 参考図書:OSがわかる本/羽山博(オーム社)/1,260円 http://www.hino.meisei-u.ac.jp/is/iga/lecture/osに講義資料を置くので,毎回の授業ごとに事前にプリントアウトし,持 参すること。講義資料は授業時には配布しない。講義資料の他,教科書等(情報系の学生ならば,OSに関するテキストを 少なくとも1冊は持っているべきである!)を参照し,授業の補足をすること。

その他、履修上の注意事項や学習上の助言など OSは「コンピュータ科学」という学問の集大成である。その意味でOSを学ぶには,コンピュータの動作原理(コンピュー タアーキテクチャに関する授業内容)やプログラミング言語,アルゴリズムとデータ構造の基本事項(プログラミング序 論,プログラミングI・IIに関する授業内容)を理解していることが履修の前提である。 【オフィスアワー】掲示により指示する。【準備学習科目】コンピュータシステム入門,コンピュータアーキテクチャI・II ,プログラミング序論,プログラミングI・II

オペレーティングシステムOS:UNIX, Linux,Windows,MacOS など,

他にも,ITRONなどの専用OSがある

◆ 授業の目的:OSの基本概念を理解すること

◆ 授業の前提:

コンピュータの基本原理(コンピュータアーキテクチャ)を

理解していること

アセンブラ言語およびC言語の理解があること

UNIXとWindowsの利用経験があること

◆ 講義補助教材:Webラーニングプラザ

http://weblearningplaza.jst.go.jp/「情報通信」 → 「オペレーティングシステムコース」

オペレーティングシステム(OS:Operating System) とは ?

→ 「基本ソフト」 : (単なる言葉の言換え)

『コンピュータ資源』を『仮想化』することにより,ハードウェアとして

のコンピュータを,ユーザ/プログラムにとって,より容易に,より効

率的に利用可能とするための一群のソフトウェア

コンピュータ資源

ハードウェア資源(CPU,主記憶,補助記憶装置,入出力装置など)

ソフトウェア資源(プログラム,ライブラリ,データなど)

仮想化

抽象化と多重化(時間的多重化と空間的多重化)

1

OSの目的

(1) ハードウェア資源の有効利用

① スループット(単位時間当たりの処理件数)の向上

② ターンアラウンドタイム(すべての処理結果が得られるまでの時間)や

レスポンスタイム( 初の応答が得られるまでの時間)の短縮

(2) コンピュータ操作と運用の支援

① 連続処理の実現

② オペレータへのメッセージ表示

③ 運用データの記録

(3) プログラム作成の容易化

① 仮想記憶の実現

② 入出力処理の支援

(4) コンピュータシステムの信頼性と安全性の確保

OSの二つの側面

ユーザ側を向いた顔

ハードウェアを向いた顔

ユーザインタフェースコンピュータに対してどのような形式で命令を与えるかを規定する

ハードウェア資源の有効利用− CPU,メモリの管理

− 入出力装置の制御− 新しいデバイス(資源)の

追加や削除プログラムインタフェース入出力など,プログラム中でOSの機能を利用する手段を提供する

仮想化技術

2

(1) ユーザ/ プログラムインターフェースの立場:

機能の抽象化 : ハードウェアの物理実体を隠蔽し,

論理的な形態でユーザに機能を提供する

ハードウェアとしてのコンピュータを使い易くする

「仮想化」 の意味

例 : API(Application Programming Interface)

プログラム OS

API関数の呼出し 対応する処理プログラム

OSの機能 Xを呼び出す

API関数は,あくまでOSとのイ

ンターフェースで,自分自身が機能をもつわけではなく,OSの機能を呼び出す機能をもつ

SVC(SuperVisor Call),System Call ともいう

例えば,キーボードから1文字読み込むなど...

キーボードから1文字読み込む

基本情報技術者試験問題(平成18年春期)

OSにおけるAPI(Application Program Interface)の説明として,適切なもの

はどれか。

ア アプリケーションがハードウェアを直接操作して,各種機能を実現するための仕組みである。

イ アプリケーションから,OSが用意する各種機能を利用する仕組みである。

ウ 複数のアプリケーション間でネットワークを介して通信する仕組みである。

エ 利用者の利便性を図るために,各種アプリケーションのメニュー項目を

統一する仕組みである。

3

(2) ハードウェア資源の立場 : 複数のプログラム,複数のユーザ間で,プロセッサ,主記憶,入出力装置などを効率よく使う

◆時間的多重化(時間を分割して資源を利用する)

複数のプログラムを並行して実行する→ マルチプログラミング゙,マルチタスク,時分割処理

◆空間的多重化(領域を分割して資源を利用する)

複数のプログラムを同時に主記憶に割り当てる→ 仮想記憶

「仮想化」の意味

時間的多重化によるCPU資源の仮想化

切替え処理

切替え処理

ユーザ1

ユーザ2時間

ユーザ1の資源確保

ユーザ2の資源確保

時間的に分割可能な資源

(CPU,主記憶など)

切替え処理

切替え処理

4

空間的多重化によるメモリ資源の仮想化

ユーザ1

ユーザ2

空間的に分割可能な資源

(主記憶,ディスクなど)

ユーザ1の使用領域

ユーザ2の使用領域

メモリ(主記憶)

OSの役割り

抽象化により,ユーザ/プログラムにコンピュータ資源を使いやす

くすること。

多重化により,コンピュータシステムが有する有限な資源を,ユーザ/プログラムごとに提供すること。

ユーザ1

ユーザ2

OS

コンピュータ資源の実体

仮想化されたコンピュータ資源

仮想化されたコンピュータ資源

5

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

(広義のOS)

制御プログラム(狭義のOS)

言語プロセッサ

サービスプログラム

ジョブ管理

プロセス管理

主記憶管理

ファイル管理

入出力管理

コンパイラ(gccなど)

アセンブラ

インタプリタ

エディタ(emacsなど)

リンカ

OSの構成

ハードウェアやソフトウェアの動作を制御するプログラムの総称

あるプログラミング言語で書かれたプログラムを機械語に変換するプログラムの総称

OSやアプリケーションの

機能や操作性を改善するためのソフトウェアの総称(ソフトウェアツール)

OSの構成要素

コンピュータ資源

プロセス管理

主記憶管理

ファイル管理

入出力管理

ジョブ管理

ハードウェアの抽象化

ユーザインターフェース

・・・

6

ジョブとプロセス

◆ ジョブ(job)ユーザ側から見た処理の単位

◆プロセス(process) :タスク(task)ともいう

OS側から見た処理の単位(資源の割当て対象となる単位)

例 % rusers | grep 09j5 | sort ← ユーザから見れば一つのジョブ

• OSから見れば三つの独立したプロセスとみなされる。

• OSはプロセスを資源割当ての単位とする。

OSの構成要素と機能(1) ジョブ管理

: ユーザの処理(ジョブ)を連続実行させて,効率的なコンピュータの利用を図る

(2) プロセス(タスク)管理: 複数のプログラムを見かけ上,同時に実行させる: 複数のユーザがあたかも一つのコンピュータを独占しているかのように使えるようにする

(3) 主記憶管理(メモリ管理): プロセス(OSから見た処理単位)に主記憶を割り当てる

: 仮想記憶(実装されているメモリ容量を超えるサイズのプログラムやデータを利用できるようにする)

(4) ファイル管理: プログラムやデータを保存したり,呼び出したりする

(5) 入出力管理: 入出力装置の利用を提供する

(6) ユーザインタフェース: ユーザに対するコンピュータ操作の各種ツールの提供

7

コンピュータの処理形態とOS◆ OS以前

– 機械語(アセンブラ言語)によるプログラム作成

– 単一プログラムの実行← 人間のマニュアル操作による

(ユーザ=オペレータ)

◆ 一括処理(バッチ処理 batch processing)– ユーザから依頼されたジョブを順番に処理する

– コンピュータの利用効率の向上

– ターンアラウンドタイム(Turn Around Time:TAT)が長い(欠点): ジョブが受け付けられてから,すべての処理結果が得られるまでの時間

コンピュータ

ユーザ

受付

返却ユーザ

オペレータ

コンピュータ

コンピュータセンター

コンピュータは高価なもの,いかに無駄なく使うか

◆ 対話処理(interactive processing)– コンピュータが短い時間間隔(クオンタム;数10ミリ秒)でユーザを切り替え

て対話的なサービスを行う(時分割処理:time sharing system)

– 応答時間(レスポンスタイム:response time)が重要:処理の要求を出してから, 初の処理結果が帰ってくるまでの時間

ユーザ

コンピュータコンピュータ

コンピュータ

コンピュータ

コンピュータ

一定時間(クオンタム,quantum)ごと

にユーザを切り替える

→ ユーザからはコンピュータを独占

して利用しているように見える

ユーザにとって,使いやすいコンピュータ

8

コンピュータの処理形態とOS

◆ リアルタイム処理(real time processing)- 要求の発生と同時に処理をする方式(人間が介在しない)

組込みシステム(家電品,自動車など),プロセス制御など

- 応答時間(response time)の制約が厳密

端末

ユーザ

コンピュータ端末

端末

端末 通信回線

◆ オンライン処理(on-line processing)- 要求の発生と同時に処理をする方式(人間が介在する)

座席予約システム,銀行ATMなど

- スループット(throughput)を大きくすることが重要

:単位時間当たりの処理件数

コンピュータの処理形態とOS

◆ 分散処理(distributed processing)– ネットワークにより結合された複数のコンピュータで一つの処理を行う方式

– 保守性・安全性の確保が容易(長所),全体の運用管理が複雑(欠点)

– クライアント-サーバ( cliant-server)モデル

• client : サービスを受ける側

• server: : サービスを提供する側

WANLAN

LAN

LAN

ゲートウェイ

分散システムの構成例

9

OSの発展経緯

第0世代(1945~)– 機械語(アセンブリ言語)によるプログラミング

– 単一プログラムの実行• 初期入力ルーチン,アセンブラ,リンカ,ローダ

第1世代(1950年代~)– スプーリング(プロセッサと独立した入出力動作)

– 複数プログラムの連続実行

– 一括処理(バッチ処理: batch processing)

第2世代(1950後~1960年代)– マルチプログラミング(multi-programming)

• 複数のプログラムを同時にメモリに配置し,切替ながら実行

– 時分割システム (TSS:Time Sharing System)

• 複数のユーザが端末を介してコンピュータと対話形式で処理を行う

– 仮想記憶(virtual memory)• 実装されているメモリよりも大きなメモリ空間をユーザに提供

OSの発展経緯

第3世代(1965年代)OS/360 (IBM社 System 360)

• バッチ処理,マルチプログラミング,時分割システムの同時提供

第4世代(1970~1990年代)– 大型汎用OS,ワークステーション(UNIX),パソコン

第5世代(1990年代~)

– ネットワーク,分散処理,マルチメディア,マルチプロセッサ対応

– ユーザインタフェース(user interface)に重点

10

演習問題 1 1. 次の日本語句を英単語表記で記せ。

(a) オペレーティングシステム ( ) (b) スループット ( ) (c) ターンアラウンドタイム ( ) (d) レスポンスタイム(応答時間) ( ) (e) 時分割システム(TSS) ( ) (f) バッチ処理(一括処理) ( ) (g) 分散処理 ( )

2. オペレーティングシステムに関する次の記述の中の( )内に入れるべき適当な字句を解答群

の中から選べ。 広義のオペレーティングシステムは大きく分けて( a )プログラムと( b )プログラム,お

よび( c )プログラムに分類できる。( a )プログラムにはユーザから与えられた処理のスケジ

ュール管理を行う( d )管理機能,コンピュータから見た仕事の単位である( e )を管理する

( e )管理機能,入出力のデータを管理するデータ管理機能,ハードウェア障害などを管理する

ハードウェア管理機能,そして割込み処理機能などがある。一方,( b )プログラムには,アセ

ンブラやコンパイラ,インタプリタなどがある。( c )プログラムの中には,業務によく使用さ

れる整列(ソート)・併合(マージ)プログラムや,プログラムの入力や編集などを行う( f )がある。 【解答群】

ア サービス イ 言語処理 ウ 制御 エ 繰返し オ プロセス カ ジョブ キ 選択 ク ブロック ケ リンカ コ エディタ 【解答欄】

a b c d e f

11

3. コンピュータシステムの処理形態に関する次の記述に当てはまる用語を解答群の中から選べ。

(1) 給与計算のように大量のデータを一括して与え,結果を一度に得る処理形態 (2) データ照合や更新など,要求が発生したときに,一定時間内に結果を返す処理形態 (3) 機械装置などをセンサなどで常に監視し,事象が発生したら,きわめて短い時間内(通常

数ミリ秒以内)にデータを処理し,対象を実時間で制御する処理形態 (4) プロセッサを時分割して各端末に与えることにより,ユーザがコンピュータを占有してい

るように利用できる処理形態 (5) コンピュータの利用者が,キーボードやマウスなどを使ってコマンドを入力することによ

ってコンピュータとやりとりを行い,人間の判断を加えながら情報処理を進める処理形態

【解答群】

ア 分散処理 イ タイムシェアリング処理 ウ バッチ処理

エ リアルタイム処理 オ 対話型処理 カ オンライン処理

【解答欄】

4. コンピュータシステムの時間的性能に関する次の記述に当てはまる用語を解答群の中から選

べ。

(1) ジョブが受け付けられてから,すべての処理結果が得られるまでの経過時間 (2) 単位時間当たりにコンピュータが処理する件数 (3) コンピュータシステムに要求を与えてから,最初の処理結果が返ってくるまでの時間 (4) タイムシェアリングシステムにおいて各利用者に割り当てられるプロセッサの一定時間

【解答群】

ア アクセスタイム イ クオンタム ウ ターンアラウンドタイム

エ スループット オ レスポンスタイム カ 待ち時間

【解答欄】

(1) (2) (3) (4) (5)

(1) (2) (3) (4)

12

Recommended