OS・・・2年/CS/必修
lecture01 - 07/04/13
Ⅰ.OSの歴史と基礎概念
OS…ユーザと計算機ハード間のインターフェースとして振舞うプログラム
<目的>(1)計算機システムの使い勝手向上 ←★試験に出る!
(2)ハードの効率的使用
<目的>(1)計算機システムの使い勝手向上 ←★試験に出る!
(2)ハードの効率的使用
1.1 OSとは
(図参照)
(図参照)
=政府(government)→他のプログラムが有用な仕事をする環境を提供
=資源(ハード&ソフト)の割り当て者(resource allocator)→必要なときに資源を割り当て、公平に、かつ効率的に使えるようにする
↑ex.CPU時間、記憶空間、ファイル空間、入出力装置
=制御プログラム
=資源(ハード&ソフト)の割り当て者(resource allocator)→必要なときに資源を割り当て、公平に、かつ効率的に使えるようにする
↑ex.CPU時間、記憶空間、ファイル空間、入出力装置
=制御プログラム
1.2 初期のシステム
◎操作卓から直接操作←プログラムロード、実行、停止
特徴:会話的な手操作(プログラマ=オペレータ)
問題点:甚だ使用効率が悪い
特徴:会話的な手操作(プログラマ=オペレータ)
問題点:甚だ使用効率が悪い
◎ハード、ソフトが開発されたが形態は同じ
カードリーダ(テープリーダ)] ←
ラインプリンタ ] ← 装置ドライバ
磁気テープ ] ←
アセンブラ
ローダ
リンカ
カードリーダ(テープリーダ)] ←
ラインプリンタ ] ← 装置ドライバ
磁気テープ ] ←
アセンブラ
ローダ
リンカ
ex.Fortranプログラムの操作
step1.磁気テープの装着
step2.fortranコンパイラのロード
step3.ユーザプログラムの読み込み
step4.磁気テープ(別)の装着
step5.アセンブリ言語プログラムの出力
以上をコンパイル!
step6.磁気テープ(別)の装着
step7.アセンブラのロード
step8.アセンブラ支援ライブラリルーチンとリンケージエディット
step9.磁気テープ(別)の装着
step10.バイナリコードの出力
step11.プログラムのロード
step12.プログラムの実行
step1.磁気テープの装着
step2.fortranコンパイラのロード
step3.ユーザプログラムの読み込み
step4.磁気テープ(別)の装着
step5.アセンブリ言語プログラムの出力
以上をコンパイル!
step6.磁気テープ(別)の装着
step7.アセンブラのロード
step8.アセンブラ支援ライブラリルーチンとリンケージエディット
step9.磁気テープ(別)の装着
step10.バイナリコードの出力
step11.プログラムのロード
step12.プログラムの実行
1.3 単純モニタ
高使用率の要求
◎第1段階 専門オペレータ
→予約制の非効率排除
→オンラインデバッグの困難
→予約制の非効率排除
→オンラインデバッグの困難
◎第1.5段階 同様な要求をひとまとめにする=バッチ化
Fortran1|Cobol1|C++1|Fortran2|C++2|Cobol2
Fortran1|Cobol1|C++1|Fortran2|C++2|Cobol2
↓バッチ化
Fortran1,2|Cobol1,2|C++1,2
→磁気テープのかけかえ等の操作が減らせる
→磁気テープのかけかえ等の操作が減らせる
◎第2段階 常駐モニタ(resident monitor)
主記憶の図
-----------------------
割り込み・割り出し ↑
ベクトル ↑
----------------------- ↑
装置ドライバ モ
----------------------- 二
ジョブ順序付けプログラム タ
----------------------- ↓
制御カード解釈実行プログラム ↓
-----------------------
ユーザプログラム
-----------------------
-----------------------
割り込み・割り出し ↑
ベクトル ↑
----------------------- ↑
装置ドライバ モ
----------------------- 二
ジョブ順序付けプログラム タ
----------------------- ↓
制御カード解釈実行プログラム ↓
-----------------------
ユーザプログラム
-----------------------
モニタ
↓
ユーザプログラム
↓
モニタ
↓
ユーザプログラム
↓
ユーザプログラム
↓
モニタ
↓
ユーザプログラム
1.4 効率
CPUと入出力装置の間に速度差→CPUが遊ぶ
(CPU・・・1nsec,ディスク・・・~10msec その差10^7
CPUと入出力装置の間に速度差→CPUが遊ぶ
(CPU・・・1nsec,ディスク・・・~10msec その差10^7
1.4.1 バッファリング
(図参照)
____________ ____________
|カードリーダ|→|バッファ|CPU|バッファ|→|ラインプリンタ|
 ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
カードリーダの書き込み …
CPUの読み出し … 同時実行!
割り込み、DMA(Direct Memory Access)の概念創生
(図参照)
____________ ____________
|カードリーダ|→|バッファ|CPU|バッファ|→|ラインプリンタ|
 ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
カードリーダの書き込み …
CPUの読み出し … 同時実行!
割り込み、DMA(Direct Memory Access)の概念創生
1.4.2 スプーリング
磁気ドラム/磁気ディスクの出現
→カードリーダの書き込み領域からのCPUの読み込み領域への移動が早い ~msec
DASD(Direct Access Storage Device)
スプール方式(Spool:Simultaneous Peripheral Operation OnLine)
磁気ドラム/磁気ディスクの出現
→カードリーダの書き込み領域からのCPUの読み込み領域への移動が早い ~msec
DASD(Direct Access Storage Device)
スプール方式(Spool:Simultaneous Peripheral Operation OnLine)
カードは直接ディスク上に読み取られる
出力はジョブ終了後直接ディスクから
ジョブ=ディスクからの読み出し+実行+ディスクへの書き込み
☆ジョブプールとジョブスケジューリングの概念
ジョブ=ディスクからの読み出し+実行+ディスクへの書き込み
☆ジョブプールとジョブスケジューリングの概念
ーーーーーーーーーー
計算機はバカである
OSがないととても使いにくい!
OSがあれやこれや指示してやらないとだめだ! by teacher
OSがないととても使いにくい!
OSがあれやこれや指示してやらないとだめだ! by teacher
lecture02 - 07/04/20
lecture03 - 07/04/27
lecture04 - 07/05/?
lecture05 - 07/05/?
担当:mica@管理人
Last Update: 2007年05月17日21時10分19秒
Last Update: 2007年05月17日21時10分19秒
コメントどうぞ♪