C5

Similar documents
最近の CPU (ARM の一種 ) Nvidia 社製 Tegra 3 の省電力技術 4-PLUS-1 メインである 4 つのコアに加え 低性能 低消費電力のコンパニオンコアを状況に応じて活用する技術 端末のパフォーマンスが必要なときは 4 つのコアから必要な数のコアを使い 不要なときは低消費電力

文法と言語

C4

Operating System 仮想記憶

Microsoft PowerPoint - os ppt [互換モード]

Microsoft PowerPoint - sp ppt [互換モード]

10-vm1.ppt

OS

Microsoft PowerPoint - No6note.ppt

システムソフトウエア2013/1/30 演習問題 学科 学籍番号 氏名 1. つぎの文章の空白を埋めなさい. コンピュータは,CPU( 中央処理装置 ) とメモリ, およびその他の入出力装置から構成されて いる. このうち,CPU は命令の (a) とデコードなどを行う制御部と, 実際の計 算を行う

Microsoft PowerPoint - No15›¼‚z‰L›¯.ppt

Microsoft PowerPoint - OS12.pptx

Microsoft PowerPoint - os ppt [互換モード]

Microsoft PowerPoint - sp ppt [互換モード]

C8

Microsoft PowerPoint - No7note.ppt

Microsoft PowerPoint - OS11.pptx

Microsoft PowerPoint - OS12.pptx

PowerPoint Presentation

メモリ管理

Microsoft PowerPoint - OS09.pptx

計算機のリソースとは 1.CPU 2. 主記憶 3. 補助記憶装置 の抽象化

PowerPoint プレゼンテーション

OS

Microsoft PowerPoint - OS08.pptx

ComputerArchitecture.ppt

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

Microsoft PowerPoint - pc11.ppt

コンピュータのしくみ

C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

Microsoft PowerPoint - OS07.pptx

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の

TFTP serverの実装

PowerPoint プレゼンテーション

Microsoft PowerPoint - sp ppt [互換モード]

21 章のお話

C プログラミング 1( 再 ) 第 5 回 講義では C プログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

OS

メモリ管理

05-scheduling.ppt

PowerPoint プレゼンテーション

プログラミングI第10回

PowerPoint プレゼンテーション

Microsoft Word - 3new.doc

04-process_thread_2.ppt

Microsoft PowerPoint ppt

計算機概論

計算機システム概論

PowerPoint プレゼンテーション

memo

Microsoft PowerPoint - 11_4-4-5pagerepl.pptx

01-introduction.ppt

文法と言語 ー文脈自由文法とLR構文解析2ー

Microsoft PowerPoint - dev1.ppt

PowerPoint プレゼンテーション

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

Microsoft Word - 中間試験 その1_解答例.doc

Microsoft PowerPoint ppt

Microsoft PowerPoint fs

出 アーキテクチャ 誰が 出 装置を制御するのか 1

コンピュータ工学Ⅰ

Microsoft PowerPoint - 11.pptx

Microsoft PowerPoint - chap4_slide a.ppt

020105.メモリの高機能化

メモリについて考えてみよう_REL_

2006年10月5日(木)実施

メモリ管理

Microsoft PowerPoint ppt

スライド 1

PowerPoint プレゼンテーション

演算増幅器

Microsoft PowerPoint - sp ppt [互換モード]

講義計画 1. コンピュータの歴史 1 2. コンピュータの歴史 2 3. コンピュータの歴史 3 4. 論理回路と記憶, 計算 : レジスタとALU 5. 主記憶装置とALU, レジスタの制御 6. 命令セットアーキテクチャ 7. 演習問題 8. パイプライン処理 9. メモリ階層 : キャッシュ

Prog1_12th

第2回

PowerPoint プレゼンテーション

memo

計算機アーキテクチャ

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

CPUスケジューリング

PowerPoint プレゼンテーション

Taro-リストⅠ(公開版).jtd

Taro-ポインタ変数Ⅰ(公開版).j

Microsoft Word - no02.doc

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

コンピュータ工学Ⅰ

Microsoft PowerPoint - OS08 [互換モード]

Microsoft PowerPoint mm2

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

Microsoft PowerPoint - 09_2008_0619.pptx

長崎大学大学院生産科学研究科(博士前期課程)

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1

FIT2015( 第 14 回情報科学技術フォーラム ) RC-003 ファイル格納位置制御による Hadoop MapReduce ジョブの性能の向上 藤島永太山口実靖 工学院大学大学院工学研究科電気 電子工学専攻工学院大学工学部情報通信工学科 1. はじめに近年, 世界中の情報量が爆発的に増加し

Microsoft PowerPoint ppt

PowerPoint プレゼンテーション

情報工学Ⅰ-02

Transcription:

システムソフトウェア講義の概要 1. 計算機システムの復習 : 中央演算処理装置 (CPU), プログラムの実行, 主記憶装置, 補助記憶装置 2. 時分割処理 : プロセス, スレッド, スケジューリング 3. スレッド間の排他制御 : フラグ, セマフォ, モニタ, デッドロック 4. デバイス管理,HDD へのアクセス制御 5. 記憶管理 : メモリ割り当て, ページング, セグメンテーション 6. 仮想記憶とファイルシステム 7. 演習問題 8. プログラミングシステムの概要, 文法とそのクラス, 字句解析と正規文法 9. 正規表現からの非決定性オートマトンの生成 決定性オートマトンへの変換 10. 字句解析用オートマトン生成ソフトウエアの実際 11. 構文解析と導出, 文脈自由文法の構文解析法 :LL 構文解析 12. 文脈自由文法の構文解析法 :LR 構文解析 13. コンパイラ - コンパイラと構文解析の実際 14. 演習問題 15. 講義の総括と試験

デバイス管理 ( 復習 )

デバイス管理 コンピュータ デバイスコントローラ デバイス

入出力方式 ポートマップド I/O デバイスコントローラ メモリマップド I/O デバイスコントローラ

メモリマップド I/O アドレス デバイスコントローラ デバイスへ

デバイス メモリ間のデータ転送 CPU が介在してデバイスとメモリの間のデータのやり取りをする.( 遅い ) デバイスコントローラとメモリ間で直接データを交換する方式 ( 速い ) DMA: ダイレクトメモリアクセス DMA コントローラが, デバイスコントローラ側にある場合, バスマスタ転送とも呼ぶ.

DMA 転送 DMA コントローラ (DMAC) がデータを送る アドレスバスデータバス制御信号

バス CPU と, 主記憶や周辺機器を接続するための汎用データ通信路. アドレスバスで, デバイスとアクセスするデータを指定し, データバスを介してデータのやり取りをする.

その他のバス

コンピュータ全体のバス 目的に応じて, 異なるバスが用いられる.

デバイスをコントロールする デバイスドライバ : デバイスを抽象化して, 統一的なインタフェースで様々なデバイスコントローラを扱うための OS の機能. 例 : open, close, read, write, fseek 等

デバイスの分類 ブロック型デバイス まとまった大きさのデータ単位で, 入出力を行うデバイス.(DMA がよく用いられる ) HDD, SSD, 磁気テープ,DVD/CD 等 キャラクタ型デバイス 1 バイトずつ, 入出力を行うデバイス.(DMA は用いられない.) キーボード, マウス, パケット型デバイス 構造化されたデータを交換 :USB など

関数のポインタ #include <stdio.h> void func1(int *x) { *x=1; } void func2(int *x) { *x=2; } 関数や手続きは, ポインタ変数に代入することが出来る! ポインタ変数に代入された関数を呼び出すこともできる. これを利用すれば,open(), close(), read(), write(), などの関数をデバイスごとに用意しておいて, 切り替えて使うことができる. int main() { int x=0; } void (*func)(int *); func=func1; func(&x); printf("x=%d n",x); func=func2; func(&x); printf("x=%d n",x); return 0;

関数のポインタの構造体の配列 1 種類のデバイスについては, 下記の構造体で表現可能. 多数のデバイスについては, 構造体の配列で表現可能. open() 構造体 構造体 構造体 構造体 構造体 構造体 構造体 close() read() write() A 社製 HDD B 社製 SSD C 社製 DVD ドライブ D 社製テ プド ライブ E 社製 HDD F 社製 CD

制御する対象毎にアクセスメソッドを用意しておくのがデバイスドライバ キャラクタ型デバイスやブロック型デバイスでは, 下記の関数群が異なる. twada$ ls l /dev crw------- 1 twada staff 0, 0 10 19 17:54 console crw-rw-rw- 1 root wheel 11, 1 10 19 17:54 cu.bluetooth-modem crw-rw-rw- 1 root wheel 11, 3 10 19 17:54 cu.bluetooth-pda-sync brw-r----- 1 root operator 14, 0 10 19 17:54 disk0 brw-r----- 1 root operator 14, 1 10 19 17:54 disk0s1 brw-r----- 1 root operator 14, 2 10 19 17:54 disk0s2 構造体 open() close() read() write() 先頭の c または b はキャラクタ型デバイスかブロック型デバイスかを示している. パーミッション, 所有者, グループ以降の番号がデバイスの種類を表すメジャーナンバー, それが何個目のデバイスかを表すマイナーナンバーになっている.

バッファリング CPU とデバイスの速度差を埋めるためのメモリ上のキュー ( FIFO) をバッファと呼ぶ. 入力用のバッファは入力用であり,HDD やカメラなど, 大量のデータをやり取りする際に重要. コンピュータにとっての出力用のバッファは, プリンタのバッフ 入力用バッファァのようなものがある. データが入ってきている時に読み取りをすると, 読み取りに失敗することがある. ダブルバッファリング バッファプール リングバッファ

Hard Disk Drive 各プラッタでの周. 全プラッタでの周の位置.

HDD の速度指標 シーク : ヘッドを目的のシリンダに移動する 回転待ち : 目的のセクタがヘッドの位置に来るまで 転送 : データの読み取り. シーク時間 + 回転待ち時間 + 転送時間 数 ms 数 ms 数十 µs/kb

ディスクアクセススケジューリング 多数のプロセス, スレッドが動作している場合, ディスクに対するアクセス要求にどう応えるかで, コンピュータの性能が変化する. FCFS: 先着順 SSTF: 最短シーク時間 SCAN C-SCAN LOOK C-LOOK

先着順 :FCFS 先着順に, ディスクへのアクセス要求に応える. 利点 : 公平である. 欠点 : シーク時間が長くなる可能性がある. びる t 返すとシ ク時間が伸 この動作を交互に繰り

最短シーク時間 SSTF ヘッドの移動量が小さい順に ディスクへのア クセス要求に応える 利点 シーク時間が短い 欠点 離れたシリンダへのアクセスが待たされる 可能性がある 飢餓状態 外周へのアクセス要求が続くと 内周への要求が待たされる t

SCAN 外周から内周, 内周から外周, という時間とともに変化する位置に近い順序で, ディスクへのアクセス要求に応える. 利点 : 飢餓状態が発生しない. 欠点 : 端に行った直後, 折り返してもアクセス要求はない. t

Circular SCAN: C-SCAN 外周から内周まで行った時に, 折り返さずに, 外周から内周という順序で繰り返す SCAN. 利点 : 折り返しがないため, 平均的なアクセスが速い 欠点 : アクセス要求がない位置まで SCAN する. t

LOOK と C-LOOK アクセス要求がない位置まで見ない SCAN と C SCAN t t

各アルゴリズムでのアクセス順 下記ディスクアクセス待ち行列において, 数字はトラック番号. 最初のヘッドの位置はトラック 5 0 に居る.LOOK, C-LOOK では最初小さい番号に向かって移動する.

処理順序グラフ ヘッドの移動量が少ないのが最も良い.

問題 下記の HDD1, HDD2 の転送速度はどちらがどれぐらい速いか? HDD1: 1536KB/TRACK, 7200rpm HDD2: 2048KB/TRACK, 5400rpm 下記のディスクアクセス待ち行列において, ヘッドの初期位置を 50,LOOK, C-LOOK では最初トラック番号が小さくなる方向に移動するとして, FCFS,SSTF,LOOK,C-LOOK の処理順序グラフを描きなさい.

問題の答え HDD1: 1536KB/(60 秒 /7200rpm)=184320[KB/ 秒 ]=180[MB/ 秒 ] HDD2: 2048KB/(60 秒 /5400rpm)=184320[KB/ 秒 ]=180[MB/ 秒 ] つまり, ほぼ同じ転送速度である.

記憶領域管理

メモリの動的確保 プログラム動作中に, メモリが必要になった場合, これを確保する事が出来る. メモリには番地がつけられており, 連続する番地のメモリ領域が必要となる. 可変長管理の方法 先頭適合 最悪適合 最良適合 不要になれば返却する. 最悪と最良では空き領域をソートしておく必要あり.

フラグメンテーション ( 断片化 ) メモリの確保と開放を繰り返すと, 要求される大きさの連続したメモリ領域が確保できなくなる.

固定長管理 固定サイズのメモリ領域を単位としてメモリの割当を行う. 割り当て単位が空いている限り, 割り当て単位以下の割当要求が成功する. 小さな断片が発生しにくい.

ブロック管理 ( リストによる管理 ) 未使用の領域をポインタでつないでおき, これを順にたどって割り当て可能な領域を探す.

ブロック管理 ( ビットマップによる方法 ) ブロックに対応するビットマップテーブルを用意しておき, 使用した場合は 1, 使用していなければ 0 をセットしておき, これを手がかりにして割り当て可能なメモリ領域を探す.( よく用いられる )

コンパクション 時間はかかるが, 使用中の領域をまとめることで, 空き領域の大きさを拡げられる.Linux ではメモリ確保に失敗した後, これが行われる.

メモリ管理ユニット Memory Management Unit MMU の話

MMU: Memory Management Unit ユーザから見える論理アドレスと物理アドレスの対応関係をページ単位で変更し, 論理アドレスでは連続となるメモリ領域を確保する.

MMU を用いたページング インデックス : 論理ページ番号エントリ : 物理ページ番号

ページングによる単純なアドレス変換 ページ番号とページ内変位を与えて, メモリにアクセスするが, これは一つのアドレスと見える.

ページテーブルの個数 アドレス空間が 32bit の場合 論理アドレス空間 :2 32 ページサイズ :16KB=2 14 ページテーブル :2 32 2 14 =2 18 =262144 個 1 エントリ 4byte なら, テーブルは 2 20 =1MB 必要 アドレス空間が 64bit の場合 論理アドレス空間 :2 64 ページサイズ :16KB=2 14 アドレス空間が広くても搭載されている物理メモリ量がそれだけなくても良い. ページテーブル :2 64 2 14 =2 50 個 1 エントリ 4byte なら, テーブルは 2 52 =4096TB=4PB 必要

多段ページテーブル ページテーブルのサイズ縮小のため

逆ページテーブル : ハッシュ関数の利用 ページテーブルの大きさが物理アドレスの大きさに依存する. さらに, 高速でもある.

さらなる高速化 : アドレス変換キャッシュ Translation Look aside Buffer: TLB 一旦, アドレス変換した内容を,CPU 内のメモリに保存しておく.

MMU の他の機能 : ページ共有 プロセス間で共有メモリを実現する際にも,MMU の機能が用いられる.

MMU の他の機能 : ページ保護

もう一つのアドレス変換 : セグメンテーション 主に CPU の機能として提供される. セグメントは基本的に可変長である.

仮想記憶 物理メモリよりも広いメモリ空間の利用

プロセス スワッピング 1 優先度の低いプロセスのメモリを HDD 上のバッキングストア領域に退避させ, 優先させたいプロセスに空いたメモリ領域を割り当てる.

問題点 プロセス スワッピング 2 プロセスに割り当てられた全メモリが, 退避, 復帰の対象であり, バッキングストアとの入出力に時間がかかる. この結果 TSS( 時分割処理 ) のスループットが落ちる. 解決策 デマンドページング ページ単位でバッキングストアとの間で退避 復帰を行う. コンパクションも同時に行える.

デマンドページング

ページ置き 換えアルゴリズム

常に物理メモリに空きを作っておく ページアウト デーモン 不要なページをバッキングストアに退避させる 退避優先順位決定アルゴリズム FIFO: 最も古いページの置き換え優先度を高くする. OPT: 最も将来利用されないページの置き換え優先度を高くする.( 理想 : 未来はわからないので ) LRU: 最も長い期間使われていないページの置き換え優先度を高くする.

FIFO と Belady の異常 物理ページメモリが多いほうが, ページフォールトが多数発生することがある.(Belady の異常 )

OPT アルゴリズム 理想的であった場合の話.MIN アルゴリズムとも呼ばれる.

Least Recently Used: LRU(linux 採用 ) 最も長い期間使われていないものを置き換える.

スラッシング (thrashing) ページフォールトが頻繁に発生し, 処理が進まないこと. ワーキングセット ( プログラムが一定期間内にアクセスするアドレスの集合 ) を小さくするか, 物理メモリをワーキングセット以上に大きくする.

問題 Belady の異常が発生する理由を簡単に説明しなさい LRU アルゴリズムでの置き換え結果を物理ページ数が,3,4 の場合について表で示しなさい.