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

Size: px
Start display at page:

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

Transcription

1 1.PFLab( 加藤研 ) のウェブサイトからダウンロードできます 2. 紙資料も配布します オペレーティングシステム 加藤真平東京大学大学院情報理工学系研究科 shinpei@is.s.u-tokyo.ac.jp 218/6/4 第 8 回オペレーティングシステム 1

2 講義概要 受講生に求める基礎知識 C 言語の理解 コンピュータアーキテクチャの基礎の理解 メモリ管理 割り込み CPUモード 参考図書 Silberschatz, Galvin, and Gagne, Operating System Concepts 8th Edition, Wiley 成績 試験の点数で決定 試験は持ち込み不可 授業に出席していた人で試験の結果が悪い人は追試験あり 出席をとるが出席点はなし 218/6/4 第 8 回オペレーティングシステム 2

3 講義スケジュール ( 予定 ) 1. OS の概要 (4/9) 2. プロセス管理 (4/16) 3. プロセス間交信 & スレッド (4/23) 4. プロセス同期 (5/7) 5. プロセス同期 (5/14) 6. CPU スケジューリング (5/21) 7. CPU スケジューリング (5/28) 8. メモリ管理 (6/4) 9. メモリ管理 &I/O システム (6/11) 1. I/O システム (6/18) 11. ファイルシステム (6/25) 12. プロテクション & セキュリティ (7/2) 13. バッチシステム & 分散システム & まとめ (7/9) 14. 試験 (7/23) 論文も読んでみましょう ACM SOSP USENIX OSDI USENIX ATC USENIX NSDI ACM ASPLOS 218/6/4 第 8 回オペレーティングシステム 3

4 メモリ管理 プログラム実行までの道のり Swapping 連続メモリ領域割り当て Paging Segmentation Segmentation with Paging 218/6/4 第 8 回オペレーティングシステム 4

5 Static vs dynamic $ cc static foo.c $ file a.out a.out: ELF 32-bit LSB executable, Intel 8386, version 1 (SYSV), for GNU/Linux 2.6.8, statically linked, not stripped $ size a.out text data bss dec hex filename c28e a.out $ cc foo.c $ file a.out a.out: ELF 32-bit LSB executable, Intel 8386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), not stripped $ size a.out text data bss dec hex filename a.out foo.c #include <stdio.h> int main() { printf( Hello n ); return ; } Static Link の問題点 ファイルサイズの肥大化 全てのコマンドがstatic linkされていたら ライブラリにバグがあった時 リンクしなおす必要 全てのコマンドをリンクしなおしていたら 218/6/4 第 8 回オペレーティングシステム 5

6 補足 静的再配置 (static relocation) 配置は主記憶へのロード時 ロード後のプログラムの位置変更は不可能 動的再配置 (dynamic relocation) プログラム実行中に再配置 ロード後のプログラムの位置変更は可能 再配置可能なコード 再配置レジスタ ベースレジスタ 番地 α 番地 α+p 番地 n 番地 α+a 番地 主記憶 OS 領域ユーザ領域 A 未使用領域アドレス変換機構 α 218/6/4 第 8 回オペレーティングシステム 6

7 プログラム実行までの道のり メモリの使用量を減らす工夫 Dynamic Linking 実行時にライブラリのリンク リンク時には 実行時にライブラリリンクするためのルーチンとリンク ファイルとして保存される実行イメージ小 $ cc foo.c $ size a.out $ file a.out $ cc static foo.c $ size a.out $ file a.out 218/6/4 第 8 回オペレーティングシステム 7

8 プログラム実行までの道のり メモリの使用量を減らす工夫 Dynamic Loading サブルーチンが呼ばれるまでメモリ上にコピーなし 必要ないルーチンは呼ばれないのでメモリ使用率高 $ cc foo.c $ size a.out $ file a.out $ cc static foo.c $ size a.out $ file a.out 218/6/4 第 8 回オペレーティングシステム 8

9 プログラム実行までの道のり メモリの使用量を減らす工夫 Shared Libraries Dynamic Linking 機能を利用してライブラリを提供 ライブラリのバグフィックスに対応可能 プログラムのリンク時に shared libraries を使うかリンクしてしまうか決定 Linux gnu C コンパイラの場合 default は shared libraries $ cc foo.c $ size a.out $ file a.out $ cc static foo.c $ size a.out $ file a.out 218/6/4 第 8 回オペレーティングシステム 9

10 dtest.c #include <stdio.h> #include <dlfcn.h> int main(int argc, char **argv) { int (*f)(void); void *dl; char *error; int val; } Dynamic Linking if (argc!= 2) error_exit( The library name must be specified n"); dl = dlopen(argv[1], RTLD_NOW); if ((error = dlerror())!= NULL) error_exit(error); f = (int (*)(void)) dlsym(dl, "mylib"); if ((error = dlerror())!= NULL) error_exit(error); val = f(); printf("return value = %d n", val); dlclose(dl); return ; Makefile mylib.c int mylib() { return 1; } all: mylib.so dtest dtest: dtest.c cc -o dtest dtest.c -ldl mylib.so: mylib.o ld -shared -o mylib.so mylib.o mylib.o: mylib.c cc -fpic -c mylib.c $ make $./dtest mylib.so 218/6/4 第 8 回オペレーティングシステム 1

11 Linux における共有ライブラリ (1/2) バイナリファイルは ELF (Executable and Linking Format) カーネルは execv システムコール内において ファイル ( ここでは a.out とする ) のフォーマットを検査 128 バイト読んで決定 ELF ならば /lib/ld-linux.so を実行 /lib/ld-linux.so プログラム内で a.out が使用する共有ライブラリを調べ SHARE でライブラリをメモリマップすることにより 物理的には一つのイメージのみ使用 メモリマップに関しては メモリマップドファイルを参照あるいは man mmap 再配置が必要ならば再配置 初期化関数を呼び出し 218/6/4 第 8 回オペレーティングシステム 11

12 Linux における共有ライブラリ (2/2) 最近のアプリケーションは沢山の共有ライブラリを使用例 : $ ldd which emacs $ ldd /usr/lib/mozilla-xxx/mozilla-bin 沢山の共有ライブラリを動的にリンクするのは時間が必要 Linux では prelink というコマンドによって 共有ライブラリのアドレス解決をあらかじめしておくということが可能 Prelink はデーモンで起動 時々 負荷が上がるのは prelink が動いているかもしれない? /etc/prelink.conf で定義されているダイナミックリンクライブラリのロードアドレス決め あらかじめ参照関係を解決 参考 man prelink man readelf man objdump glibc source prelink source 218/6/4 第 8 回オペレーティングシステム 12

13 メモリの使われ方 #include <stdio.h> #include <stdlib.h> #define SIZE (124*8192) int a; int b = 1; int main() { int *cp; char ia[size]; bss data スタック x x4 ユーザ text, data,bss 領域 mmap 領域 } cp = malloc(sizeof(int)); return ; heap xc スタック カーネル領域 このプログラムは segmentation fault スタックサイズに注意 $ ulimit -a ulimit は bash のシェルコマンド xffffffff 218/6/4 第 8 回オペレーティングシステム 13

14 オーバレイ (Overlays) プロセスのメモリ領域が足りない時に メモリ領域を処理に応じて複数の目的で使用 以下の例では Pass1 プログラムがメモリにロードされて実行 その後 今度は pass2 プログラムを同じメモリ領域にロードして実行 218/6/4 第 8 回オペレーティングシステム 14

15 補足 プログラムを 6 つのモジュールに分割 M1 は M2, M4, M6 から 使用される関数 データを包含 M2 は M3 から使用 モジュール M2 (3K) モジュール M1 (2K) モジュール M4 (2K) モジュール M6 (4K) モジュール M3 (1K) モジュール M5 (3K) プログラム全体を主記憶に置くには15Kの領域が必要 ( ある時点で ) 必要なモジュールのみを主記憶に置くのであれば : M1, M2, M3 (6K) M1, M4, M5 (7K) M1, M6 (6K) モジュール化はユーザが決定 実現の手間が大きい 218/6/4 第 8 回オペレーティングシステム 15

16 Swapping メモリが足りなくなり プロセスが動けなくなったとき プロセスイメージを一時的に 2 次記憶に退避 (swap out) その代りに 2 次記憶上に退避していたプロセスイメージを主記憶に復元 (swap in) 218/6/4 第 8 回オペレーティングシステム 16

17 補足 待ち状態でメモリ CPU を有効に活用 スワップアウト 待ち状態プロセスの待避 2 次記憶 ( バッキングストア ) 主記憶の内容やレジスタ等を退避 スワップイン 退避したプロセスを主記憶に復元 CPU スケジューラとの連携 番地 n 番地 スワップイン 主記憶 OS 領域ユーザ領域プロセス1 プロセス2 未使用領域 バッキングストア スワップアウト プロセス 2 プロセス 1 218/6/4 第 8 回オペレーティングシステム 17

18 連続メモリ領域の管理方法 2 つのメモリ領域 カーネルが使用 : 主記憶になければならない ユーザプロセスが使用 Multiple-partition allocation Hole 割り当て可能な連続するメモリ領域 様々なサイズの hole が発生 プロセスがメモリ上に作られるとき そのプロセスイメージが収まるに十分なメモリ領域を割り当て カーネルは割り当てた領域 フリー領域を管理 a) allocated partitions b) free partitions (hole) OS OS OS OS process 5 process 5 process 5 process 5 process 9 process 9 process 8 process 1 process 2 process 2 process 2 process 2 218/6/4 第 8 回オペレーティングシステム 18

19 動的連続メモリ領域割り当て問題 フリーな hole から大きさ n のメモリ領域をどのように探すか? First-fit: 要求しているサイズに最初にマッチしたholeを割り当て Best-fit: 要求しているサイズにマッチする一番小さいholeを割り当てリストはサイズ順に並べられている必要あり Worst-fit: 一番大きいholeを割り当て First-fit, best-fit が worst-fit より良 218/6/4 第 8 回オペレーティングシステム 19

20 Fragmentation External Fragmentation トータルメモリ領域はあるが 連続領域としては存在しない Internal Fragmentation 割り当てられたメモリは要求したメモリよりも大きく 使用しない無駄なメモリ領域がある Reduce external fragmentation by compaction メモリの内容を移動してコンパクション I/O problem I/O が使用しているメモリ領域は他の目的に使用不可能 218/6/4 第 8 回オペレーティングシステム 2

21 補足 主記憶をいくつかの固定サイズの区画 (partition) に区分 ジョブスケジューラによる割り付け システムに到着したジョブ (=プロセス) はジョブキューへ 十分な大きさの区画があればそこへジョブをロード 無ければ空き区画ができるまで待機 ジョブが終了すると, 使用していた区画を解放 中大小 218/6/4 第 8 回オペレーティングシステム 21

22 補足 必要とする容量より大きく最も近い大きさの区画を選択 各区画にキューを用意 ジョブの大きさでロードする区画があらかじめ決定 絶対番地形式でも適用可 空き区画があっても 利用できないことも 区画 1+ 区画 2 3K 区画 区画 1 のジョブキュー 8K 5K 番地 主記憶 OS 領域 区画 1 (1K) 区画 2 のジョブキュー 空き区画があるにもかかわらず使用不可の状況 15K 12K 16K 区画 2 (2K) 外部断片化 (external fragmentation) 区画 3 のジョブキュー 24K 27K 区画 3 (3K) n 番地 218/6/4 第 8 回オペレーティングシステム 22

23 補足 キューは1つで各ジョブは再配置可能 再配置方法 CPUスケジューリング等の組み合わせ 静的再配置 動的再配置 スワッピングの利用 FCFS 優先度スケジューリング 主記憶 番地 OS 領域 ジョブキュー 区画 1 (1K) ジョブ 4 15K ジョブ 3 8K ジョブ 2 3K ジョブ 1 9K 区画 2 (2K) 区画 3 (3K) n 番地 218/6/4 第 8 回オペレーティングシステム 23

24 補足 FCFS で割当て ジョブ 1: 区画 1 ジョブ 2: 区画 3 ジョブ 3 には : 1. 空いた区画の中で収まる最小区画 区画 2 区画内の空き領域が大きい : 内部断片化 (internal fragmentation) 2. 収まる最小区画を選択し空くまで待機 区画 1 ジョブ 4 は区画 2 で実行可能だが待機 (FCFS) しかし方法 1 が優れているとは必ずしもいえない ジョブ 1: 短, ジョブ 3: 長の場合 待った方が良い? FCFS スケジューラの修正 割当て待ちはスキップして次のジョブをスケジュール ジョブ 3 をスキップしてジョブ 4 に区画 2 を割り当て 218/6/4 第 8 回オペレーティングシステム 24

25 可変区画割付け 固定区画割付けの問題点 断片化による主記憶利用率の低下 区画を可変サイズで管理 システム起動時 : ユーザ領域全体で 1 区画 ジョブが到着毎に 十分な大きさの空き領域を探索 必要な分だけ割付け 残りは空き領域 空き領域と使用中領域のリストを保持 218/6/4 第 8 回オペレーティングシステム 25

26 可変区画割付け OS OS OS OS OS 5K 25K 35K JOB1 (2K) JOB2 (1K) JOB3 (16K) JOB1 終了 5K 25K 35K 未使用 (2K) JOB2 (1K) JOB3 (16K) JOB4 割付 5K 18K 25K 35K JOB4 (13K) 未使用 (7K) JOB2 (1K) JOB3 (16K) 5K 18K JOB2 終了 35K JOB4 (13K) 未使用 (17K) JOB3 (16K) 5K 18K JOB5 割付 28K 35K JOB4 (13K) JOB5 (1K) 未使用 (7K) JOB3 (16K) ユーザ領域 : 5K ジョブ 1: 2K ジョブ 2: 1K ジョブ 3: 16K ジョブ 4: 13K ジョブ 5: 1K 1~5 の順で到着 FCFS スケジューリングの場合 51K 55K 未使用 (4K) 51K 55K 未使用 (4K) 51K 55K 未使用 (4K) 51K 55K 未使用 (4K) 51K 55K 未使用 (4K) 218/6/4 第 8 回オペレーティングシステム 26

27 可変区画割付け 可変区画割付けで主記憶の利用率は向上 内部断片化はほとんどなし? しかし外部断片化は生じ得る (c) において 7K+4K=11K の空き領域 ジョブ5を実行するのに十分な大きさ 連続領域でないのでロード不可 解決策 : コンパクション 218/6/4 第 8 回オペレーティングシステム 27

28 コンパクション (compaction) 7K+4K の連続領域 5K 25K OS JOB1 (2K) JOB1 終了 5K 25K OS 未使用 (2K) 5K JOB4 割付 18K 25K OS JOB4 (13K) 未使用 (7K) 5K 18K コンパクション OS JOB4 (13K) 未使用 (11K) JOB5 割付 5K 18K OS JOB4 (13K) JOB5 (1K) 使用中領域を詰めて 1 つの大きな空き領域 断片化の問題は解消 動的再配置が必要 最適化中のシステム停止 JOB2 (1K) JOB2 (1K) JOB2 (1K) 29K 28K 29K 35K 35K 35K JOB2 (1K) JOB2 (1K) 39K 39K 51K 55K JOB3 (16K) 未使用 (4K) 51K 55K JOB3 (16K) 未使用 (4K) 51K 55K JOB3 (16K) 未使用 (4K) 55K JOB3 (16K) 55K JOB3 (16K) ジョブ 2 の終了を待たずに割当て可 218/6/4 第 8 回オペレーティングシステム 28

29 可変区画割付け : 空き領域管理 空き領域の大きさ 位置情報をリストで保持 種々の大きさの空き領域が散在 ジョブ到着時にリストを探索 空き領域が大きい時は余りを空き領域 ジョブ終了時に領域を空き領域リストに追加 別の空き領域が隣接していれば連結 できるだけ大きい空き領域 218/6/4 第 8 回オペレーティングシステム 29

30 可変区画割付け : 空き領域割当て どの空き領域を使う? 先頭一致 (first-fit) 最初の十分な大きさの領域 最良一致 (best-fit) 最も大きさの適合する領域 高速 リストの最後の方に, 大きな領域 ( 断片化の回避 ) 大きな空き領域を残す 小さな空き領域の多発 最悪一致 (worst-fit) 最大の空き領域 余った領域は割と大きい 小さな空き領域の回避 218/6/4 第 8 回オペレーティングシステム 3

31 仮想記憶 物理メモリ量以上のメモリを仮想的に作成 仮想的にみえるので仮想記憶 仮想アドレス : 仮想記憶上のアドレス 物理アドレス : 物理メモリ上のアドレス 未使用 218/6/4 第 8 回オペレーティングシステム 31

32 仮想記憶 主記憶より大きな記憶領域 2 次記憶の利用 オーバレイ 仮想記憶 入れ替え 入れ替え 個々のモジュールのアドレス空間を意識 最適な入れ替えが可能 プログラム全体で一つの空間と認識 入れ替えの無駄が起きる可能性 218/6/4 第 8 回オペレーティングシステム 32

33 仮想記憶 各プロセスに独立したアドレス空間 全て同じ大きさ 実アドレス空間 real address space 主記憶のアドレス空間 最初は連続しているが 仮想 ( 論理 ) アドレス空間 virtual address space 仮想記憶のアドレス空間 プロセス / プログラムが参照するアドレス 連続した 1 つの空間に 見せかける 番地 n 番地 主記憶 OS 領域 プロセス 1 の一部 プロセス 2 の一部 バッキングストア プロセス 1 プロセス 2 218/6/4 第 8 回オペレーティングシステム 33

34 仮想記憶 32bitの仮想アドレス空間 最大 4GB 論理的に必要なメモリ空間 4GB プロセス数 番地 アドレス変換プログラムの k 番地 主記憶の k 番地 主記憶 OS 領域 プロセス 1 の一部 主記憶には一部だけ 仮想空間の残りの部分は 2 次記憶のスワップ領域 大容量のディスクを使って広大なメモリを持っているように 見せかける n 番地 プロセス 2 の一部 バッキングストア プロセス 1 プロセス 2 218/6/4 第 8 回オペレーティングシステム 34

35 仮想記憶の全体構成 CPU 仮想アドレス MMU ( メモリ管理ユニット ) 物理アドレス 主記憶 必要な部分を主記憶に保存 ( プロセス切り替えでも入れ替えない ) xff...ff 仮想アドレスから適切な物理アドレスへ変換 各プロセスに広いアドレス空間独立した空間 xx...xx 2 次記憶 主記憶に入らない当面の使用無し 2 次記憶へ プロセスの仮想アドレス空間 218/6/4 第 8 回オペレーティングシステム 35

36 動的アドレス変換 仮想アドレスと実アドレスの対応 バイトやワード単位? 主記憶以上の領域が必要 ブロック単位で対応 セグメンテーション セグメント 可変長のブロック ページング ページ 固定長のブロック 218/6/4 第 8 回オペレーティングシステム 36

37 動的アドレス変換 仮想アドレス v = b: ブロック番号 アドレス変換テーブル ( 対応表 ) のインデックス d: ブロック先頭からのオフセット アドレス変換テーブルベースレジスタ x 仮想アドレス空間上のブロックがどこにあるか b b d アドレス変換テーブル x 仮想アドレス v ブロック番号相対位置. b b. d ( 通常プロセス毎に存在 ) d b + d 実アドレス r b r 主記憶.. 218/6/4 第 8 回オペレーティングシステム 37

38 Paging プロセスの論理アドレス空間は物理メモリ上連続である必要なし 物理メモリを固定長のブロックにして管理 このブロックは フレーム ブロックの長さは 2 のべき乗 (512bytes から 8Kbytes が主流だが 最近は 128MBytes にできるマシンも ) 論理メモリ領域も同じサイズに分割 この単位はページ 全てのフリーフレームを管理 n ページ必要なプログラムを動かすには n 個のフリーフレームを確保して ページテーブルをセット Internal fragmentation 218/6/4 第 8 回オペレーティングシステム 38

39 補足 主記憶 ( ページフレームの集まり ) paging 主記憶を固定長ブロックに分割 ページフレーム 仮想アドレス空間も, 同サイズのページに分割 動的アドレス変換を使用 ページ単位で主記憶 -2 次記憶間のやりとり 二次記憶 ページイン ページアウト 仮想アドレス空間 ( ページの集まり ) 218/6/4 第 8 回オペレーティングシステム 39

40 補足 主記憶 ( ページフレームの集まり ) ページフォルト page fault 主記憶に存在しないページをアクセスしたときに発生する割込み ハードウェアの機能 割込みハンドラ ページイン (OS の処理 ) 二次記憶 ページイン ページアウト 仮想アドレス空間 ( ページの集まり ) 218/6/4 第 8 回オペレーティングシステム 4

41 補足 ページイン (page in) ページを 2 次記憶から主記憶上のページフレームに移動 ページアウト (page out) ページを 2 次記憶へ退避 空きページフレームが足りなくたった時 ページイン後, 内容を変更していない ページの解放のみ 二次記憶 主記憶 ( ページフレームの集まり ) ページイン ページアウト 仮想アドレス空間 ( ページの集まり ) 218/6/4 第 8 回オペレーティングシステム 41

42 ハードウエアによるアドレス変換機構 Memory-Management Unit (MMU) Page Mapping Tableによる変換 各エントリは物理アドレスと属性を保持 属性 :Access Permission, Modified, Referenceなど Access Permission 論理ページ番号 ユーザモードにおけるread/write 特権モードにおけるread/write オフセット メモリ プロセスのページ表ポインタ V V I 属性 フレーム番号 218/6/4 第 8 回オペレーティングシステム 42

43 補足 有効ビットが : ページフォルトが発生 (OS に遷移 ) 2 次記憶から主記憶の空いたページフレームに転送 そのページフレーム番号 f を PTE に設定. 有効ビットを 1 仮想アドレス v 仮想ページ番号 b 相対位置 ( オフセット ) d 主記憶 b ページテーブル 1 yyy a b d d 実アドレス r b ページテーブルエントリ (PTE) 1 xxx b r = f ページサイズ + d r = f << n d ( ページサイズ : 2 n ) 218/6/4 第 8 回オペレーティングシステム 43

44 補足 仮想アドレス v=(p, d) p : ページ番号 d : ページ内オフセット ブロック = ページアドレス変換テーブル = ページテーブル ページ番号 p のページテーブルエントリ (PTE) を参照 有効ビット 2 次記憶アドレス ページフレーム番号 f 有効ビット ( サイズは1bit) 1ならページが主記憶に存在 なら2 次記憶に存在 ( ページアウト ) ページの共有 = 2 次記憶アドレスとページフレーム番号の共有 他に保護属性等の情報 ( 全てのアクセスはPTE 経由 ) 218/6/4 第 8 回オペレーティングシステム 44

45 ページテーブルと物理アドレス 仮想空間 (64KB:16bit), 物理メモリ (32KB:15bit), ページ 4KB 仮想アドレススペース 物理メモリアドレス 仮想アドレス -4K 4-8K 8-12K 12-16K 16-2K 2-24K 24-28K 28-32K 32-36K 36-4K 4-44K 44-48K 48-52K 52-56K 56-6K 6-64K x x x 1 7 x x x x x 6-4K 4-8K 8-12K 12-16K 16-2K 2-24K 24-28K 28-32K ページ内オフセット = 12bit MMU (4KB x 16) 物理アドレス 218/6/4 第 8 回オペレーティングシステム 45

46 アドレス変換の例 例 : ページサイズ =4KB=2 12, 仮想アドレス空間 =16bit(16 ページ =4bit) 仮想アドレス : x1f4 = ページテーブルベースレジスタ 1 番目の PTE ページテーブル (16エントリ) xxxx : 主記憶 xf4 6K=4K*15 218/6/4 第 8 回オペレーティングシステム 46

47 アドレス変換の例 例 : ページサイズ =4KB=2 12, 仮想アドレス空間 =16bit(16 ページ =4bit) 仮想アドレス : x1f4 = x1f4 1 他のページフレームは 別のページに割り当て 別のプロセスのページに割り当て 未使用 xxxx 2 次記憶 15 : : 6K=4K*15 15 xff4 仮想アドレス空間 主記憶 218/6/4 第 8 回オペレーティングシステム 47

48 ページテーブルの置き場所 主記憶に置く? ページテーブルベースレジスタ 実アドレス ページテーブルのアクセス 動的アドレス変換なし メモリアクセスをするために, 更にページテーブルへのメモリアクセスが生じ速度が低下 仮想記憶をサポートする CPU に TLB(Translation Look-aside Buffer) を置く 218/6/4 第 8 回オペレーティングシステム 48

49 TLB Translation Look-aside Buffer ページテーブルエントリの一部を置く高速なバッファ 一般的には連想メモリ (64~256 エントリ程度 ) で実現 並列検索機能 任意の一部のエントリを配置 大容量の連想メモリの実現は困難 アドレス変換の際は, まず連想メモリを調査 なければ主記憶のテーブル (TLB ミス ) 単に広いアドレス空間を使うだけでコスト発生 218/6/4 第 8 回オペレーティングシステム 49

50 TLB N レベルページマッピングテーブル ( 後述 ) をハードウェアで実現している場合 CPU は TLB だけを持つ場合 ソフトウェア ( カーネル ) でページテーブルを管理 TLB エントリに存在しないと 割り込みが発生 カーネルは TLB エントリを設定する どういう方法があるか? Hierarchical Paging Hashed Page Tables Inverted Page Tables 218/6/4 第 8 回オペレーティングシステム 5

51 ページテーブルの大きさ ページサイズが4KBの場合 4GBの仮想アドレス空間全てをカバー 2 32 /4K=1Mエントリ/ プロセス メモリ空間を圧迫 64bitの仮想アドレス空間の場合 2 64 /4K=4Pエントリ =4Gエントリ 主記憶に置くのは無理 全エントリ (= 全仮想空間 ) を使うことは滅多になし 多重レベルページングセグメンテーションとの併用 218/6/4 第 8 回オペレーティングシステム 51

52 Hierarchical Page Tables 論理アドレス空間を複数のページテーブルで管理する 2 レベルページテーブル page number page offset p i p 2 d レベルページテーブル page offset P 3 p i p 2 d 32 4 レベルページテーブル page offset P 3 p i p 2 d /6/4 第 8 回オペレーティングシステム 52 P 4

53 補足 1 段目ページ番号 2 段目ページ番号 pt1 pt2 offset 第 1 段ページテーブルのサイズは 2 1 主記憶に常駐可 主記憶 全仮想空間のページ表は 125 枚 実際に使っているのは 3 枚 アクセスしないアドレス空間のテーブルは不要 有効ビット : 次の段のテーブルは主記憶か? 仮想記憶に配置 /6/4 第 8 回オペレーティングシステム 53

54 補足 1 段目ページ番号 2 段目ページ番号 pt1 pt2 offset ページ化セグメンテーションとも 主記憶 二次元のアドレス セグメントとその中の一次元アドレス 任意のサイズのページテーブル 目的に応じたセグメント コード領域 スタック領域 /6/4 第 8 回オペレーティングシステム 54

55 Hashed Page Tables 仮想ページ番号をキーとしてハッシュでテーブル引き 218/6/4 第 8 回オペレーティングシステム 55

56 Inverted Page Table Page table entryの一つ一つは物理メモリページに対応 各エントリには仮想アドレスのページ番号と属性を格納 ページテーブルサイズは小さくなるが サーチ時間が長 ハッシュテーブルを使用 218/6/4 第 8 回オペレーティングシステム 56

57 仮想記憶の管理 Demand Paging プロセス生成 Page Replacement フレーム割り当て Thrashing 218/6/4 第 8 回オペレーティングシステム 57

58 Demand Paging 必要に応じてページをメモリにロード ハードウエアによる支援 ページエントリに valid-invalid bit 属性がある Valid-invalid bit が の時 当該フレームをアクセスするとページ例外が発生 Frame # valid-invalid bit page table 218/6/4 第 8 回 オペレーティングシステム 58

59 Page Fault 1. あるページが始めて参照 2. ページ例外が起こりカーネルに制御が移動 3. カーネルは カーネル内のテーブルを参照 それが invalid のとき メモリ参照例外 メモリにロードされていないとき 空きフレームを確保 4. ディスクからメモリにロード 5. validation bit = 実行を再開 218/6/4 第 8 回オペレーティングシステム 59

60 空きフレームがない時どうする? Page replacement あまり使われていないページを探し その領域を 2 次記憶 (swap 領域 ) にコピー ( その領域を使用 ) アルゴリズムは後述 218/6/4 第 8 回オペレーティングシステム 6

61 Demand Paging の性能 Page Fault Rate p 1. if p = no page faults if p = 1, every reference is a fault Effective Access Time (EAT) EAT = (1 p) * memory access + p * (page fault overhead + [swap page out ] + swap page in + restart overhead) Memory access = 1 ナノ秒, paging overhead = 25 ミリ秒とすると EAT = (1 p) * 1 + p * 25 milli = ,999,9*p 218/6/4 第 8 回オペレーティングシステム 61

62 Demand Paging の性能 インストラクション ( 正確には異なるメモリ領域のアクセス ) を 1, 回実行する毎に page fault が起きると仮定すると p=.1 となり 一回の実行時間は 約 25 マイクロ秒必要 実際には ページが一度ロードされたら そのページはメモリに存在 (page out されない限り ) 例えば 8Kbyte page size で 128Kbytes のプログラムは 16 ページ 218/6/4 第 8 回オペレーティングシステム 62

63 Demand Page および仮想記憶の利点 プロセス起動が高速化 起動前にプロセスイメージ全てをメモリ上に確保してディスクからコピーしないから Copy-on-Write による子プロセス生成の高速化 次のスライドで説明 物理メモリ消費を低減 Memory-Mapped Files 218/6/4 第 8 回オペレーティングシステム 63

64 Copy-on-Write(COW) 子プロセス生成のシナリオ 親プロセスは fork システムコールで子プロセスを生成 このとき Fork システムコールは 親プロセスのコピーを生成 多くの場合 子プロセスは exec システムコールを発行して親プロセスとは違うプログラムを実行 Fork システムコールで生成された子プロセスは 親プロセスのイメージをコピーする代わりに 親のプロセスイメージ ( ページ ) を共有 どちらかのプロセスがページに書き込むとき そのページをコピー COW は 変更されるページだけコピーされるので より効率よいプロセス生成が可能 218/6/4 第 8 回オペレーティングシステム 64

65 Memory-Mapped Files Memory-mapped file I/O とは ファイルの内容をメモリにマップすることにより メモリの読み書きでファイルの内容をアクセスできるようにする機能 Read システムコールでファイルの内容を読み込み write システムコールで書き込むという煩わしさがなくなると共に余分なデータコピーも減少 複数のプロセスにより 同一ファイルをメモリ上で アクセス可能 218/6/4 第 8 回オペレーティングシステム 65

66 空きフレームがない時どうする? Page replacement あまり使われていないページを探し その領域を 2 次記憶 (swap 領域 ) にコピーすることで その領域を使用 218/6/4 第 8 回オペレーティングシステム 66

67 Page Replacement ユーザプロセスがページを必要とする時 フリーフレームがないと 使用しているページのフレームを swap デバイスにコピー ページを必要としているプロセスのフレームとして使用 どのページ ( フレーム ) を選択するか? この説明は後述 使用されていたフレームをディスクにコピーするかどうかの判断は? ページをページエントリには modify (dirty) bit 属性が存在 ページに書き込みにいくと modify bit がセット カーネルは この bit をみて ページをディスクに書かなければいけないか決定 ページ ( 論理ページ ): 仮想メモリ上のブロックフレーム ( 物理ページ ): 物理メモリ上のブロック 218/6/4 第 8 回オペレーティングシステム 67

68 Basic Page Replacement ディスク上に保存してあるページを探索 空きフレームを : 空きフレームを見つけたら そのフレームを使用 空きフレームがなければ page replace algorithm を使って追い出すフレームを決定 ( これを victim フレームと呼ぶ ) Victim ページをディスクに書き ページテーブルを変更 ディスク上のページの内容を空きフレームにコピーしページテーブルを変更 プロセスを再開 218/6/4 第 8 回オペレーティングシステム 68

69 Page Replacement Algorithms Page fault が少なくなるようなアルゴリズムを使いたい これ以降いくつかの page replace algorithms を紹介するが いずれも以下のアクセスパターンにおける page fault の数を調査 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. もちろん page fault の回数は どのくらいの物理フレームがあるかに依存 一般に物理フレームが多ければ page fault の回数は減少するが減少しない例も 218/6/4 第 8 回オペレーティングシステム 69

10-vm1.ppt

10-vm1.ppt オペレーティングシステム ~ 仮想記憶 (1) ~ 山田浩史 hiroshiy @ cc.tuat.ac.jp 2015/06/19 OS の目的 裸のコンピュータを抽象化 (abstraction) し より使いやすく安全なコンピュータとして見せること OS はハードウェアを制御し アプリケーションの効率的な動作や容易な開発を支援する OS がないと メモリをアプリケーション自身が管理しなければならない

More information

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

Microsoft PowerPoint - os ppt [互換モード] 4. メモリ管理 (1) 概要メモリ管理の必要性静的メモリ管理と動的メモリ管理スワッピング, 仮想記憶ページングとセグメンテーション 2008/5/ 20 メモリ管理 (1) 1 メモリはコンピュータの 5 大構成要素 装置 ( キーボード, マウス ) CPU ( 中央演算装置 ) 出 装置 ( モニタ, プリンタ ) 主記憶装置 ( メインメモリ ) 外部記憶装置 (HDD) 2008/5/ 20

More information

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

Microsoft PowerPoint - sp ppt [互換モード] システムプログラム概論 メモリ管理 (1) 第 x 講 : 平成 20 年 10 月 15 日 ( 水 ) 2 限 S1 教室 今日の講義概要 メモリ管理の必要性 静的メモリ管理と動的メモリ管理 スワッピング, 仮想記憶 ページングとセグメンテーション 中村嘉隆 ( なかむらよしたか ) 奈良先端科学技術大学院大学助教 y-nakamr@is.naist.jp http://narayama.naist.jp/~y-nakamr/

More information

Microsoft PowerPoint - No6note.ppt

Microsoft PowerPoint - No6note.ppt 前回 : 管理 管理の目的 : の効率的利用 ( 固定区画方式 可変区画方式 ) しかし, いかに効率よく使ったとしても, 実行可能なプログラムサイズや同時に実行できるプロセス数は実装されているの大きさ ( 容量 ) に制限される 256kB の上で,28kB のプロセスを同時に 4 個実行させることはできないか? 2 256kB の上で,52kB のプロセスを実行させることはできないか? 方策 :

More information

Microsoft PowerPoint - OS09.pptx

Microsoft PowerPoint - OS09.pptx この資料は 情報工学レクチャーシリーズ松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました 主記憶管理 ページング パワーポイント 7 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 (matsuo@nitech.ac.jp) まで連絡いただければ 編集可能なバージョンをお渡しする事も可能です 復習 復習 主記憶管理

More information

Operating System 仮想記憶

Operating System 仮想記憶 Operating System 仮想記憶 2018-12 記憶階層 高速 & 小容量 ( 高価 ) レジスタ アクセスタイム 数ナノ秒 容量 ~1KB CPU 内キャッシュ (SRAM) 数ナノ秒 1MB 程度 ランダムアクセス 主記憶 (DRAM) 数十ナノ秒 数 GB 程度 ランダムアクセス フラッシュメモリ (SSD) 約 100 万倍 シーケンシャルアクセス 磁気ディスク (HDD) 数十ミリ秒

More information

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

Microsoft PowerPoint - No15›¼‚z‰L›¯.ppt メモリ アーキテクチャ 3 仮想記憶 計算機アーキテクチャ ( 第 15 回目 ) 今井慈郎 (imai@eng.kagawa-u.ac.jp) 仮想記憶とは コンピュータ上に実装されている主記憶よりも大きな記憶領域を仮想的に提供する仕組み メモリ空間の一部をハードディスク装置等の大容量外部記憶にマッピングし実装したメモリ量以上のメモリ空間を利用できる環境をユーザに提供 実装したメモリ : 実記憶

More information

メモリ管理

メモリ管理 メモリ管理 (2) 思い出そ ~~ う 物理アドレスと論理アドレス 論理アドレス空間 アドレス変換 メモリ管理ユニット (MMU) ページ ページテーブル,TLB 保護違反, ページフォルト ページング APP CPU OS OS が提供するメモリ関連 API (1) 1. 論理アドレス空間生成 = プロセスの生成 プロセスの作成 ( プログラムの起動 ) 2. 論理的なメモリ ( 仮想メモリ )

More information

OS

OS Operatig System 仮想記憶 2017-12 記憶階層 高速 & 小容量 ( 高価 ) レジスタ アクセスタイム 数ナノ秒 容量 ~1KB ランダムアクセス ランダムアクセス CPU 内キャッシュ (SRAM) 主記憶 (DRAM) フラッシュメモリ 数ナノ秒 数十ナノ秒 1MB 程度 数 GB 程度 シーケンシャルアクセス 磁気ディスク (HDD) 光磁気ディスク (CD-R DVD-RW

More information

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

Microsoft PowerPoint - os ppt [互換モード] 5. メモリ管理 (2) 概要ページ管理 式ページ置換アルゴリズム 28/5/23 メモリ管理 (2) 1 ページング ( 復習 ) 仮想アドレス空間, 主記憶 ( 実アドレス空間 ) を固定サイズのページに分割 仮想アドレス空間のページを主記憶 ( メモリ ) のページに対応させる ページテーブル ( 変換表 ) を実メモリ上に保持 ページを単位としたアドレス変換 ( 仮想ページ番号, オフセット

More information

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

Microsoft PowerPoint - sp ppt [互換モード] // システムプログラム概論 メモリ管理 () 今日の講義概要 ページ管理方式 ページ置換アルゴリズム 第 5 講 : 平成 年 月 日 ( 月 ) 限 S 教室 中村嘉隆 ( なかむらよしたか ) 奈良先端科学技術大学院大学助教 y-nakamr@is.naist.jp http://narayama.naist.jp/~y-nakamr/ // 第 5 講メモリ管理 () ページング ( 復習

More information

Microsoft PowerPoint - OS12.pptx

Microsoft PowerPoint - OS12.pptx 主記憶と 次記憶 オペレーティングシステム 第 回仮想記憶管理 () htt://www.info.kindai.ac.j/os 8 号館 階 N- 内線 559 takasi-i@info.kindai.ac.j プロセッサ 主記憶 プログラム データ 次記憶 プログラム データ -7 秒 倍 - 秒 プロセッサは 次記憶を直接読むことはできない 使用するプログラム, データは主記憶上にコピー メモリ管理技法

More information

メモリ管理

メモリ管理 メモリ管理 (1) メモリ 思い出そう プログラムの実行のために, ありとあらゆるものがメモリに格納されなくてはならなかったことを グローバル変数, 配列 局所変数 配列 ( スタック ) 実行中に確保される領域 (malloc, new) プログラムのコード メモリの 管理 とは 誰が, メモリの どの部分を, 今, 使ってよいかを記憶しておき, メモリ割り当て要求 にこたえることができるようにすること

More information

Microsoft PowerPoint mm

Microsoft PowerPoint mm システムプログラム概論 Memory management 1/2 2005/4/26 門林雄基 ( インターネット工学講座 ) 奈良先端科学技術大学院大学 今日の講義のポイント 問題は何か? memory hierarchy ( メモリ階層 ) この複雑な技術を 単純なプログラミングで使いこなせるようにできないか memory management in operating system 今日の講義のポイント

More information

Microsoft PowerPoint - No7note.ppt

Microsoft PowerPoint - No7note.ppt 仮想記憶 (2) 実際に存在する主記憶 ( 物理メモリ ) の容量に制限されない 仮想的な記憶空間 をユーザに提供する 仮想記憶の基本アイディア 主記憶に入りきらない大きなプログラムでも, ある時点で実行されているのはプログラムの一部のみ, 必要となるデータも一時には一部のデータのみ ( 参照の局所性 ) プログラム全体はディスク装置に入れておき, 実行時に必要な部分を主記憶にもってくればよい 主記憶容量

More information

Microsoft PowerPoint - OS08.pptx

Microsoft PowerPoint - OS08.pptx この資料は 情報工学レクチャーシリーズ松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました 管理 割り当て パワーポイント 27 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 (matsuo@nitech.ac.jp) まで連絡いただければ 編集可能なバージョンをお渡しする事も可能です 復習 復習 管理 ユーザに独立した論理アドレス空間を提供

More information

Microsoft PowerPoint - OS07.pptx

Microsoft PowerPoint - OS07.pptx この資料は 情報工学レクチャーシリーズ松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました 主記憶管理 主記憶管理基礎 パワーポイント 27 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 (matsuo@nitech.ac.jp) まで連絡いただければ 編集可能なバージョンをお渡しする事も可能です 復習 OS

More information

OS

OS Operatig System 仮想記憶 2019-11 記憶階層 高速 & 小容量 ( 高価 ) レジスタ アクセスタイム 数ナノ秒 容量 ~1KB ランダムアクセス CPU 内 キャッシュ (SRAM) 主記憶 (DRAM) 数ナノ秒 数十ナノ秒 1MB 程度 数 GB 程度 ランダムアクセス フラッシュメモリ (SSD) 約 100 万倍 シーケンシャルアクセス 磁気ディスク (HDD) 数十ミリ秒

More information

Microsoft PowerPoint - OS11.pptx

Microsoft PowerPoint - OS11.pptx この資料は 情報工学レクチャーシリーズ松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました パワーポイント 27 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 (matsuo@nitech.ac.jp) まで連絡いただければ 編集可能なバージョンをお渡しする事も可能です 主記憶管理 : 仮想記憶 復習 : 主記憶管理

More information

Microsoft PowerPoint mm2

Microsoft PowerPoint mm2 システムプログラム概論 Memory management 2/2 25/5/6 門林雄基 ( インターネット工学講座 ) 奈良先端科学技術大学院大学 前回 Memory hierarchy Contention and arbitration for memory Virtual memory: software + hardware solution Address translation Physical

More information

MMUなしプロセッサ用Linuxの共有ライブラリ機構

MMUなしプロセッサ用Linuxの共有ライブラリ機構 MMU なしプロセッサ用 Linux の共有ライブラリ機構 大谷浩司 高岡正 近藤政雄 臼田尚志株式会社アックス はじめに μclinux には 仮想メモリ機構がないので共有ライブラリ機構が使えない でもメモリ消費抑制 ストレージ消費抑制 保守性の向上のためには 欲しい 幾つかの実装があるが CPU ライセンス 機能の制限のためにそのまま利用できない RidgeRun 社 (Cadenux 社 )

More information

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt オペレーティングシステム 第 6 回 (2009.05.21) メモリ管理 アパート ( マンション ) への入居 アパートなどを借りる バスなし トイレ共同 ( 今はほとんどない ) バス トイレつき ( 今は当たり前になった?) ワンルーム 2DK 2LDK 3LDK ベランダ付 ( 共有の ) ロビー プール付 ホテルに住む? ホテルの部屋を占有する? 居住する 空間 は 誰のもの? 共有空間と占有空間

More information

04-process_thread_2.ppt

04-process_thread_2.ppt オペレーティングシステム ~ 保護とシステムコール ~ 山田浩史 hiroshiy @ cc.tuat.ac.jp 2015/05/08 復習 : OS の目的 ( 今回の話題 ) 裸のコンピュータを抽象化 (abstraction) し より使いやすく安全なコンピュータとして見せること OS はハードウェアを制御し アプリケーションの効率的な動作や容易な開発を支援する OS がないと 1 つしかプログラムが動作しない

More information

C5

C5 システムソフトウェア講義の概要 1. 計算機システムの復習 : 中央演算処理装置 (CPU), プログラムの実行, 主記憶装置, 補助記憶装置 2. 時分割処理 : プロセス, スレッド, スケジューリング 3. スレッド間の排他制御 : フラグ, セマフォ, モニタ, デッドロック 4. デバイス管理,HDD へのアクセス制御 5. 記憶管理 : メモリ割り当て, ページング, セグメンテーション

More information

01-introduction.ppt

01-introduction.ppt オペレーティングシステム ~ イントロダクション ~ 山田浩史 hiroshiy @ cc.tuat.ac.jp 2015/04/10 オペレーティングシステム 担当 : 山田浩史 ( やまだひろし ) mail: hiroshiy @ cc.tuat.ac.jp 質問等ありましたら気軽にメールをしてください 専門分野 オペレーティングシステムや仮想マシンモニタといった システムソフトウェア と呼ばれる分野

More information

Microsoft PowerPoint - OS12.pptx

Microsoft PowerPoint - OS12.pptx # # この資料は 情報工学レクチャーシリーズ松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました パワーポイント 7 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 (matsuo@nitech.ac.jp) まで連絡いただければ 編集可能なバージョンをお渡しする事も可能です # 主記憶管理 : ページ置き換え方式

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション コンピュータアーキテクチャ 第 13 週 割込みアーキテクチャ 2013 年 12 月 18 日 金岡晃 授業計画 第 1 週 (9/25) 第 2 週 (10/2) 第 3 週 (10/9) 第 4 週 (10/16) 第 5 週 (10/23) 第 6 週 (10/30) 第 7 週 (11/6) 授業概要 2 進数表現 論理回路の復習 2 進演算 ( 数の表現 ) 演算アーキテクチャ ( 演算アルゴリズムと回路

More information

Linux2.4でのメモリ管理機構

Linux2.4でのメモリ管理機構 Linux2.2 on x86 Dec 2001 x86 Linux Linux (demand paging, copy on write ) (buddy system, slab allocator) x86 x86 ( ) (required) (= ) ( ) (optional) x86 Physical address( ) Linear address( ) Logical address(

More information

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

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

More information

メモリ管理

メモリ管理 ファイルシステム API と メモリマップドファイル ファイルシステムの役割 (1) 様々な種類の 2 次記憶装置へ, 簡便で 効率的で 安全で 統一的な ( 装置によらない ) 読み書き手段を提供する ファイルシステムの役割 (2) 電源を切っても失われない情報の ( ほとんど唯一の ) 格納場所 メモリの内容は電源を切ると失われる プロセス間で情報を共有する自然な場所 プロセス間でメモリは分離されていた

More information

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

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の 計算機システム Ⅱ 演習問題学科学籍番号氏名 1. 以下の分の空白を埋めなさい. CPUは, 命令フェッチ (F), 命令デコード (D), 実行 (E), 計算結果の書き戻し (W), の異なるステージの処理を反復実行するが, ある命令の計算結果の書き戻しをするまで, 次の命令のフェッチをしない場合, ( 単位時間当たりに実行できる命令数 ) が低くなる. これを解決するために考案されたのがパイプライン処理である.

More information

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

オペレーティングシステム PFLab( 加藤研 ) のウェブサイトからダウンロードできます http://www.pf.is.s.u-tokyo.ac.jp/ja/classes/ オペレーティングシステム 加藤真平東京大学大学院情報理工学系研究科 shinpei@is.s.u-tokyo.ac.jp 2019/4/15 第 2 回オペレーティングシステム 1 講義概要 受講生に求める基礎知識 C 言語の理解 コンピュータアーキテクチャの基礎の理解

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング応用演習 第 4 回再帰的構造体 前回の出席確認演習 #include int main() { FILE *fp; int c, linecount, length, maxlength; fp=fopen("/usr/share/dict/words","r"); if (fp == NULL) return 1; linecount=0; length=0;

More information

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

オペレーティングシステム 1.PFLab( 加藤研 ) のウェブサイトからダウンロードできます http://www.pf.is.s.u-tokyo.ac.jp/ja/classes/ 2. 紙資料も配布します オペレーティングシステム 加藤真平東京大学大学院情報理工学系研究科 shinpei@is.s.u-tokyo.ac.jp 2018/5/14 第 5 回オペレーティングシステム 1 講義概要 受講生に求める基礎知識

More information

CPUスケジューリング

CPUスケジューリング 5-6 プロセス管理と CPU スケジューリング 1 多重プログラミングの概念 CPU を無駄なく使いたい ジョブ A ジョブ B 開始遊休状態 : 入力 開始遊休状態 : 入力 遊休状態 : 入力 遊休状態 : 入力 停止 停止 図 4.1 二つの上部 A,B の実行 2 多重プログラミングの概念 ジョブ A 開始遊休状態 : 入力 遊休状態 : 入力 停止 ジョブ B 待ち 開始遊休状態 : 入力

More information

Microsoft PowerPoint - pc11.ppt

Microsoft PowerPoint - pc11.ppt 本日の内容 コンピュータのしくみ ( 第 11 回 ) 9 章 オペレーティングシステム (OS) 中田明夫 ( 情報科学研究科 ) ( コンピュータのしくみ H17 第 11 回 ) 1 ( コンピュータのしくみ H17 第 11 回 ) 2 復習 : コンピュータの構成 ソフトウェアとハードウェア 復習 : ハードウェアの構成 複数の構成要素からなる コンピュータ ハードウェア ソフトウェア ハードウェア

More information

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

Microsoft PowerPoint - sp ppt [互換モード] システムプログラム概論 入出力 (I/O) 制御 今日の講義概要 入出力デバイスのハードウェア 入出力デバイスの制御 入出力デバイスのソフトウェア 第 6 講 : 平成 20 年 10 月 22 日 ( 水 ) 2 限 S1 教室 中村嘉隆 ( なかむらよしたか ) 奈良先端科学技術大学院大学助教 y-nakamr@is.naist.jp http://narayama.naist.jp/~y-nakamr/

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 部内向けスキルアップ研修 組込み OS 自作入門 2014 年 2 月 10st ステップ担当 : 中村 目次 はじめに OSの役割 メモリ管理 メモリ管理実装 プログラムの実行 まとめ はじめに 前回やったこと OS の原型を作成 今回やること 9th ステップでは CPU 時間 という資源管理 本ステップでは メモリ という資源管理 10.1 OS の役割 10.1.1 コンピュータの 3 大要素

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 2 ( 月 4) 11: 動的メモリ確保 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2014-06-22 1 まとめ : ポインタを使った処理 内容 説明 呼び出し元の変数を書き換える第 9 回 文字列を渡す 配列を渡す 第 10 回 ファイルポインタ

More information

05-scheduling.ppt

05-scheduling.ppt オペレーティングシステム ~ スケジューリング ~ 山田浩史 hiroshiy @ cc.tuat.ac.jp 2014/06/01 復習 : プロセス 実行状態にあるプログラムのこと プログラムの実行に必要なものをひっくるめて指す テキスト領域 データ領域 スタック領域 CPU のレジスタ値 プログラムカウンタ など OS はプロセス単位で管理する メモリ Hard Disk CPU プロセス execute

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング応用演習 第 4 回再帰的構造体 プログラミングを 余談 : 教えることの難しさ 丁寧に説明しないと分かってもらえない 説明すると 小難しくなる学生が目指すべきところプログラム例を説明されて理解できる違うやり方でも良いので自力で解決できる おっけー 動けば良い という意識でプログラミング 正しく動くことのチェックは必要 解答例と自分のやり方との比較が勉強になる 今日のお題 再帰的構造体

More information

メモリ管理

メモリ管理 イベント通知機構 メモリ保護 API 仮想記憶機構 毎メモリアクセスに介在し, アドレス変換 条件により例外発生 ( ページフォルト, 保護違反 ) 元々の目的 プロセス間の保護 ( メモリの分離 ) 仮想記憶 > 物理記憶 demand paging 仮想記憶機構の 応用 備わっている 機構 の, もともとの目的をちょっと逸脱した利用 OS 内部で用いられた応用 (1) メモリマップドファイル 大きなファイルの効率的なランダムアクセス

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 総機 1 ( 月 1) 11: 動的メモリ確保 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2015-06-22 1 まとめ : ポインタを使った処理 内容 説明 呼び出し元の変数を書き換える第 9 回 文字列を渡す 配列を渡す 第 10 回 ファイルポインタ

More information

PowerPoint Presentation

PowerPoint Presentation コンピュータ科学 II 担当 : 武田敦志 http://takeda.cs.tohoku gakuin.ac.jp/ 今日の話 オペレーティングシステム コンピュータを利用するための基本ソフト オペレーティングシステムの役割 プロセスの管理主記憶の管理出入力の管理ファイルの管理 タイムシェアリングシステム仮想記憶排他制御ディレクトリ構造

More information

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

Microsoft PowerPoint - os ppt [互換モード] 2. プロセス 概要 マルチプログラミング プロセスの管理 スケジューリング方式 2008/5/13 プロセス 1 複数の仕事を処理する つの 法 論 執筆メール処理データ整理会議 論 執筆論 執筆論 執筆論 執筆 時間 メール処理メール処理メール処理メール処理 仕事が捗るのはどちらの方法か 人を待たせないのはどちらか データ整理 データ整理 データ整理 データ整理 会議 会議 会議 2008/5/13

More information

21 章のお話

21 章のお話 21 章のお話 オブジェクトヘッダ 型オブジェクトポインター (4byte, 8byte) 型の構造体へのポンタ 同期ブロックインデックス (4byte, 8byte) ロックとか COM で利用する フィールド マネージヒープ NextObjPtr マネージヒープ NextObjPtr オブジェクト A を割り当てたい! 同期ブロック 同期ブロックインデックス ~ フィールドまでが入るようにする

More information

Microsoft PowerPoint - kougi9.ppt

Microsoft PowerPoint - kougi9.ppt C プログラミング演習 第 9 回ポインタとリンクドリストデータ構造 1 今まで説明してきた変数 #include "stdafx.h" #include int _tmain(int argc, _TCHAR* argv[]) { double x; double y; char buf[256]; int i; double start_x; double step_x; FILE*

More information

Microsoft PowerPoint - OS02.pptx

Microsoft PowerPoint - OS02.pptx オペレーティングシステム 第 2 回 割り込みと OS の構成 http://www.info.kindai.ac.jp/os 38 号館 4 階 N-411 内線 5459 takasi-i@info.kindai.ac.jpkindai ac プログラムの実行中の動作 CPU プログラム キーボードからの入力 遊び 画面への出力 遊び IO 装置 入力処理 出力処理 CPU の遊び時間ができてしまう

More information

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

メモリについて考えてみよう_REL_ Agenda はじめに メモリ って何だろう? SQL Server で使うメモリ メモリ関連の設定 メモリ周りのトラブル モニタリング はじめに 全体のテーマ 本セッションでは SQL Server のメモリを理解するための知識とその挙動を説明します ゴール メモリに関わる知識を整理し わからない単語を無くす 自分の関わるシステムをメモリを切り口に振り返ってみる トラブルが起きたときに何が起きたのか想像できるようになる

More information

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

Microsoft PowerPoint - 11_4-4-5pagerepl.pptx オペレーティングシステム 11 4.4 ページ置き換えアルゴリズム 4.5 ページ置き換えアルゴリズムのモデル化 前提 一度でも書き込みがあると修正 (modified,dirty) ビットを 1 にする リセットされない 参照されると参照ビットを 1 にする 定期的に 又はページフォルト時に OS への割込みが起こり 参照ビットは に戻される Operating System 216 4.4 Page

More information

Linux 仮想メモリについて

Linux 仮想メモリについて 組 込 みエンジニアのためのLinux 入 門 仮 想 メモリ 編 2007.2.22 株 式 会 社 アプリックス 小 林 哲 之 1 このスライドの 対 象 とする 方 今 までずっと 組 込 み 機 器 のプロジェクト に 携 わってきて 最 近 はOSにLinuxを 使 っ ている 方 々 2 このスライドの 目 的 Linuxの 仮 想 メモリの 仕 組 みを 理 解 し 現 在 のプロジェクトに

More information

今週の進捗

今週の進捗 Virtualize APIC access による APIC フック手法 立命館大学富田崇詠, 明田修平, 瀧本栄二, 毛利公一 2016/11/30 1 はじめに (1/2) マルウェアの脅威が問題となっている 2015年に4 億 3000 万以上の検体が新たに発見されている マルウェア対策にはマルウェアが持つ機能 挙動の正確な解析が重要 マルウェア動的解析システム : Alkanet 仮想計算機モニタのBitVisorの拡張機能として動作

More information

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

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき

More information

Microsoft Word - nvsi_050110jp_netvault_vtl_on_dothill_sannetII.doc

Microsoft Word - nvsi_050110jp_netvault_vtl_on_dothill_sannetII.doc Article ID: NVSI-050110JP Created: 2005/10/19 Revised: - NetVault 仮想テープ ライブラリのパフォーマンス検証 : dothill SANnetⅡSATA 編 1. 検証の目的 ドットヒルシステムズ株式会社の SANnetll SATA は 安価な SATA ドライブを使用した大容量ストレージで ディスクへのバックアップを行う際の対象デバイスとして最適と言えます

More information

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

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科 バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科 ポインタ変数の扱い方 1 ポインタ変数の宣言 int *p; double *q; 2 ポインタ変数へのアドレスの代入 int *p; と宣言した時,p がポインタ変数 int x; と普通に宣言した変数に対して, p = &x; は x のアドレスのポインタ変数 p への代入 ポインタ変数の扱い方 3 間接参照 (

More information

memo

memo 数理情報工学演習第一 C プログラミング演習 ( 第 5 回 ) 2015/05/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : プロトタイプ宣言 ヘッダーファイル, プログラムの分割 課題 : 疎行列 2 プロトタイプ宣言 3 C 言語では, 関数や変数は使用する前 ( ソースの上のほう ) に定義されている必要がある. double sub(int

More information

コンピュータのしくみ

コンピュータのしくみ 本日の内容 コンピュータのしくみ ( 第 11 回 ) 中田明夫 ( 情報科学研究科 ) 7~8 章の補足 割り込み 9 章 オペレーティングシステム (OS) 2006/6/30 ( コンピュータのしくみ H18 第 11 回 ) 1 2006/6/30 ( コンピュータのしくみ H18 第 11 回 ) 2 割り込み (interruption) あるプログラムを実行中に実行を中断し あらかじめ用意された特定のプログラム

More information

メモリ管理

メモリ管理 メモリマップドファイル オペレーティングシステム 今日の流れ (12/10) デゖスクの話の残り デゖスクを高速に使う工夫 メモリとデゖスクの簡単なまとめ メモリマップト フゔ ル (mmap) ディスクについて (前回の続き) デゖスク (ハードデゖスク, DVDなど) 電源を切っても消えない 物理的にはシリンダ ブロックに分かれている OSによって抽象化され フゔ ル単位でデータ を管理できる

More information

TFTP serverの実装

TFTP serverの実装 TFTP サーバーの実装 デジタルビジョンソリューション 佐藤史明 1 1 プレゼンのテーマ組み込みソフトのファイル転送を容易に 2 3 4 5 基礎知識 TFTP とは 実践 1 実際に作ってみよう 実践 2 組み込みソフトでの実装案 最後におさらい 2 プレゼンのテーマ 組み込みソフトのファイル転送を容易に テーマ選択の理由 現在従事しているプロジェクトで お客様からファームウェアなどのファイル転送を独自方式からTFTPに変更したいと要望があった

More information

Microsoft PowerPoint - 09.pptx

Microsoft PowerPoint - 09.pptx 情報処理 Ⅱ 第 9 回 2014 年 12 月 22 日 ( 月 ) 関数とは なぜ関数 関数の分類 自作関数 : 自分で定義する. ユーザ関数 ユーザ定義関数 などともいう. 本日のテーマ ライブラリ関数 : 出来合いのもの.printf など. なぜ関数を定義するのか? 処理を共通化 ( 一般化 ) する プログラムの見通しをよくする 機能分割 ( モジュール化, 再利用 ) 責任 ( あるいは不具合の発生源

More information

memo

memo 計数工学プログラミング演習 ( 第 3 回 ) 2016/04/26 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 内容 ポインタ malloc 構造体 2 ポインタ あるメモリ領域 ( アドレス ) を代入できる変数 型は一致している必要がある 定義時には値は不定 ( 何も指していない ) 実際にはどこかのメモリを指しているので, #include

More information

Microsoft PowerPoint - OS02.ppt

Microsoft PowerPoint - OS02.ppt オペレーティングシステム 第 2 回割り込みとOSの構成 http://www.info.kindai.ac.jp/os 38 号館 4 階 N-411 内線 5459 takasi-i@info.kindai.ac.jp プログラムの実行中の動作 CPU プログラム キーボードからの入力 遊び 画面への出力 遊び IO 装置 入力処理 出力処理 CPU の遊び時間ができてしまう 単一プログラムの問題点

More information

Microsoft PowerPoint - chap4_slide a.ppt

Microsoft PowerPoint - chap4_slide a.ppt 第 4 章オペレーティングシステム ソフトウェアとオペレーティングシステム 4 章の概要 情報を処理するため ハードウエアを全て理解して 機械語でプログラムを実行する??? メモリ xxx に yyy を書き込んでディスクを呼び出し ディスクの aaa のアドレスから bbb まで読み出す 転送は 1 回で行えないので分割して... -> いちいちこんな指令を書いてられるかい! オペレーティングシステム

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 7 ( 水 5) 11: 動的メモリ確保 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2016-06-22 1 まとめ : ポインタを使った処理 内容呼び出し元の変数を書き換える文字列を渡す 配列を渡すファイルポインタ複数の値を返す大きな領域を確保する

More information

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+) RL78 開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行 ( 統合開発環境編 ) (High-performance Embedded Workshop CS+) 2017/4/7 R20UT2087JJ0103 ソフトウェア事業部ソフトウエア技術部ルネサスシステムデザイン株式会社 はじめに 本資料は 統合開発環境 High-performance Embedded Workshop

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング応用演習 第 5 回演習 前回までのお話 ポインタ ポインタを用いた文字列処理 構造体 ファイル 再帰的構造体 リスト構造 動的メモリ管理 今日のお題 ポインタやファイルなど これまでの内容の練習 教材 以前 以下に単語を収録したファイルがあることを紹介した : /usr/share/dict/words この中からランダムに単語を取り出したファイルを用意した http://sun.ac.jp/prof/yamagu/2019app/

More information

24th Embarcadero Developer Camp

24th Embarcadero Developer Camp 17 Th Developer Camp B4 Delphi/C++Builder テクニカルワークショップ Delphi / C++Builder 旧バージョンアプリケーションの移行 エンバカデロ テクノロジーズサポートチーム with 高橋智宏 1 17 Th Developer Camp Delphi Q1 2 midas.dll Q. 別々のバージョンで作成したデータベースアプリケーションがあります

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 高性能計算基盤 第 7 回 CA1003: 主記憶共有型システム http://arch.naist.jp/htdocs-arch3/ppt/ca1003/ca1003j.pdf Copyright 2019 奈良先端大中島康彦 1 2 3 4 マルチスレッディングとマルチコア 5 6 7 主記憶空間の数が 複数 か 1 つ か 8 ただしプログラムは容易 9 1 つの主記憶空間を共有する場合 10

More information

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

Microsoft PowerPoint - sp ppt [互換モード] システムプログラム概論 OS の役割と構成 第 1 講 : 平成 20 年 10 月 6 日 ( 月 ) 1 限 S1 教室 中村嘉隆 ( なかむらよしたか ) 奈良先端科学技術大学院大学助教 y-nakamr@is.naist.jp http://narayama.naist.jp/~y-nakamr/ 講義概要 ( 中村担当分 ) 内容 オペレーティングシステム (OS) 参考書 A.S. Tanenbaum,

More information

Microsoft PowerPoint - OS03.pptx

Microsoft PowerPoint - OS03.pptx オペレーティングシステム 第 回の管理とスケジューリング http://www.info.kindai.ac.jp/os 8 号館 4 階 N-4 内線 5459 takasi-i@info.kindai.ac.jp オペレーティングシステムの主要概念 (process), タスク (task) 実行中のプログラムプログラム実行に必要な情報 プログラムコード, データ, スタック, プログラムカウンタ,

More information

演算増幅器

演算増幅器 ファイルこれまでにデータの入力方法として キーボードからの入力を用いてきた 構造体を習った際に実感してもらえたと思うが 入力データ量が多いときにはその作業は大変なものとなり 入力するデータを間違えた場合には最初からやり直しになる そこで今回はこれらの問題を解決するため あらかじめ入力データをテキストエディタなどで編集し ファイルとして保存したものを入力データとして用いる方法を習っていく さらにプログラムで作成したデータをファイルに出力する方法も併せて習っていく

More information

計算機概論

計算機概論 計算機概論 第 8 回 : ファイルとファイルシステム ファイルシステム ディスクファイルシステム は 直接的か間接的かに関わらずコンピュータシステムに接続された補助記憶装置 特にハードディスク上にファイルを格納するためのものである ディスクファイルシステムとしては FAT NTFS HFS ext2 ext3 ext4 などがある オペレーティングシステム (OS) はファイルシステムを提供している

More information

OS

OS Operatig Systems カーネルとデバイスドライバ 2019-03 1 OS の構成要素 シェル ワープロ ブラウザ さまざまなソフトウェア ] ^ _ Z ` a b c d e ` f Y Z [ \ プロセス管理通信制御ファイルシステム メモリ管理割込み制御タイマ管理 デバイスドライバ 管理プログラム 基本ライブラリ デバイスドライバ CPU メモリ ストレージ さまざまなハードウェア

More information

スライド 1

スライド 1 知能制御システム学 画像処理の高速化 OpenCV による基礎的な例 東北大学大学院情報科学研究科鏡慎吾 swk(at)ic.is.tohoku.ac.jp 2007.07.03 リアルタイム処理と高速化 リアルタイム = 高速 ではない 目標となる時間制約が定められているのがリアルタイム処理である.34 ms かかった処理が 33 ms に縮んだだけでも, それによって与えられた時間制約が満たされるのであれば,

More information

Microsoft PowerPoint - 計算機言語 第7回.ppt

Microsoft PowerPoint - 計算機言語 第7回.ppt 計算機言語第 7 回 長宗高樹 目的 関数について理解する. 入力 X 関数 f 出力 Y Y=f(X) 関数の例 関数の型 #include int tasu(int a, int b); main(void) int x1, x2, y; x1 = 2; x2 = 3; y = tasu(x1,x2); 実引数 printf( %d + %d = %d, x1, x2, y);

More information

NI P1200 Release Notes Cover

NI P1200 Release Notes Cover PEX-H2994W Board Support Package Installation on RedHawk Release Notes July 4, 2019 1. はじめに 本書は Concurrent Real Time IncCCRT) の RedHawk 上で動作する インターフェース社製 PEX- H2994W PCI Express ボードサポートパッケージ用リリースノートです

More information

第2回

第2回 第 4 回基本データ構造 1 明星大学情報学科 2 3 年前期 アルゴリズムとデータ構造 Ⅰ 第 4 回 Page 1 配列 スタック キューとその操作 4-1. 配列とその操作 配列型 同じ型の変数を並べたもの 配列にする型は 基本型 配列型 構造体 ポインタいずれでもよい 要素の並べ方を 次元 という 1 次元配列 ( 直線状 ) 2 次元配列 ( 平面状 ) 3 次元配列 ( 立体状 ) a[5]

More information

計算機アーキテクチャ

計算機アーキテクチャ 計算機アーキテクチャ 第 11 回命令実行の流れ 2014 年 6 月 20 日 電気情報工学科 田島孝治 1 授業スケジュール ( 前期 ) 2 回日付タイトル 1 4/7 コンピュータ技術の歴史と コンピュータアーキテクチャ 2 4/14 ノイマン型コンピュータ 3 4/21 コンピュータのハードウェア 4 4/28 数と文字の表現 5 5/12 固定小数点数と浮動小数点表現 6 5/19 計算アーキテクチャ

More information

プログラミングI第10回

プログラミングI第10回 プログラミング 1 第 10 回 構造体 (3) 応用 リスト操作 この資料にあるサンプルプログラムは /home/course/prog1/public_html/2007/hw/lec/sources/ 下に置いてありますから 各自自分のディレクトリにコピーして コンパイル 実行してみてください Prog1 2007 Lec 101 Programming1 Group 19992007 データ構造

More information

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

Microsoft Word - 中間試験 その1_解答例.doc 問題 1.C 言語 情報技術 Ⅱ 前半中間試験 次の宣言をしている時 以下の問いに答えよ unsigned char moji_1; struct Kouzou { unsigned char code; unsigned char str[10]; }; struct Kouzou mk[3]; 明星大学情報学科 3 年後期 情報技術 Ⅱ 中間試験その 1 Page 1 1-1. 各値を求めよ (1)sizeof(

More information

Microsoft PowerPoint - 11.pptx

Microsoft PowerPoint - 11.pptx ポインタと配列 ポインタと配列 配列を関数に渡す 法 課題 : 配列によるスタックの実現 ポインタと配列 (1/2) a が配列であるとき, 変数の場合と同様に, &a[0] [] の値は配列要素 a[0] のアドレス. C 言語では, 配列は主記憶上の連続領域に割り当てられるようになっていて, 配列名 a はその配列に割り当てられた領域の先頭番地となる. したがって,&a[0] と a は同じ値.

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 7 ( 水 5) 1 11: 動的メモリ確保 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/teachers/w48369 2/CPR1/ 2017-06-28 まとめ : ポインタを使った処理 2 内容呼び出し元の変数を書き換える文字列を渡す 配列を渡すファイルポインタ複数の値を返す大きな領域を確保する

More information

第1回 プログラミング演習3 センサーアプリケーション

第1回 プログラミング演習3 センサーアプリケーション C プログラミング - ポインタなんて恐くない! - 藤田悟 fujita_s@hosei.ac.jp 目標 C 言語プログラムとメモリ ポインタの関係を深く理解する C 言語プログラムは メモリを素のまま利用できます これが原因のエラーが多く発生します メモリマップをよく頭にいれて ポインタの動きを理解できれば C 言語もこわくありません 1. ポインタ入門編 ディレクトリの作成と移動 mkdir

More information

Prog1_12th

Prog1_12th 2013 年 7 月 4 日 ( 木 ) 実施 ファイル処理ファイルとはファイル (file) は日常用語では紙などを綴じたものを表すが, コンピュータ用語ではデータの集合体を指す言葉である ファイルは例えば, 文書ファイルやプログラムファイルのように, 用途によって分類されることもあれば, また, テキストファイルやバイナリファイルのように, ファイルの作り方によって分類されることもある なお,

More information

Microsoft PowerPoint - OS02.pptx

Microsoft PowerPoint - OS02.pptx 実行プロセス数と処理効率処理率実行プロセス数効プログラムの実行中の動作 オペレーティングシステム 第 2 回割り込みと の構成 http://www.info.kindai.ac.jp/ 38 号館 4 階 N-411 内線 5459 takasi-i@info.kindai.ac.jp プログラム キーボードからの入力 画面への出力 遊び 遊び 入力処理 出力処理 の遊び時間ができてしまう 単一プログラムの問題点

More information

RH850の割り込み/例外実現方法 CC-RHアプリケーションガイド

RH850の割り込み/例外実現方法 CC-RHアプリケーションガイド RH850の割り込み / 例外実現方法 CC-RH アプリケーションガイド R20UT3546JJ0101 2018.10.12 ソフトウェア開発統括部 ソフトウェア技術部ルネサスエレクトロニクス株式会社 アジェンダ 概要ページ 03 割り込み / 例外発生時に実行する関数の定義ページ 10 直接ベクタ方式のベクタの定義ページ 17 テーブル参照方式のベクタの定義ページ 25 その他 割り込み制御ページ

More information

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

C プログラミング 1( 再 ) 第 5 回 講義では C プログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ C プログラミング 1( 再 ) 第 5 回 講義では C プログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要 コンピュータの構造 1. パーソナルコンピュータの構造 自分の ( 目の前にある ) コンピュータの仕様を調べてみよう パソコン本体 = CPU( 中央処理装置 ):

More information

slide4.pptx

slide4.pptx ソフトウェア工学入門 第 4 回ライブラリ関数 ライブラリ関数 stdio stdio : 標準入出力ライブラリ カーネルレベルのストリームに API を追加し インタフェースを提供する カーネル fd read(2) write(2) stdio バッファ BUFSIZ プログラム BUFSIZ ごと 小さい単位 バッファ : 一時的にデータを保存しておく場所のことバッファリング : バッファを経由してデータをやり取りすること

More information

スライド 1

スライド 1 RX62N 周辺機能紹介データフラッシュ データ格納用フラッシュメモリ ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A コンテンツ データフラッシュの概要 プログラムサンプル 消去方法 書き込み方法 読み出し方法 FCUのリセット プログラムサンプルのカスタマイズ 2 データフラッシュの概要 3 データフラッシュとは フラッシュメモリ

More information

Microsoft Word - Cプログラミング演習(10)

Microsoft Word - Cプログラミング演習(10) 第 10 回 (6/25) 3. ファイルとその応用 (3) ファイルの更新 シーケンシャルファイルの更新 シーケンシャルファイルでは, 各レコードが可変長で連続して格納されており, その中の特定のレコードを変更することができない そこで一般的には, マスタファイルからデータを取り出し, 更新処理を行ったあとに新マスタファイルに書き込む 注 ) マスタファイル : 主ファイル, 基本ファイルと呼ばれるファイルで内容は比較的固定的であり,

More information

PowerPoint Template

PowerPoint Template プログラミング演習 Ⅲ Linked List P. Ravindra S. De Silva e-mail: ravi@cs.tut.ac.jp, Room F-413 URL: www.icd.cs.tut.ac.jp/~ravi/prog3/index_j.html 連結リストとは? 一つひとつの要素がその前後の要素との参照関係をもつデータ構造 A B C D 連結リストを使用する利点 - 通常の配列はサイズが固定されている

More information

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

Microsoft PowerPoint - Lec ppt [互換モード] 0 年後学期 アウトオブオーダ実行プロセッサの構成 計算機アーキテクチャ第二 (O) アウトオブオーダ実行プロセッサとバックエンド フロントエンド 命令ウィンドウ : 命令を格納するバッファ 命令ウィンドウ ALU レジスタファイル ALU スケジューラ等 Register Dispatch 命令フェッチ, デコード, リネーミング バックエンド アウトオブオーダ実行プロセッサの構成 ディスパッチ

More information

2006年10月5日(木)実施

2006年10月5日(木)実施 2010 年 7 月 2 日 ( 金 ) 実施 ファイル処理ファイルとはファイル (file) は日常用語では紙などを綴じたものを表すが, コンピュータ用語ではデータの集合体を指す言葉である ファイルは例えば, 文書ファイルやプログラムファイルのように, 用途によって分類されることもあれば, また, テキストファイルやバイナリファイルのように, ファイルの作り方によって分類されることもある なお,

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 1 第一回輪講 Linux 渡邊研究室 4 年早川顕太 本の紹介 Linux エンジニア養成読本 編集 :SoftwareDesign 編集部 出版社 : 技術評論社 発売日 :2011 年 4 月 8 日 2 Linux とは? Linux とは 1991 年にリーナス トーバルズ氏 ( 当時 21 歳 ) により作られた UNIX 互換なカーネル 開発動機 Minix は教育用で機能が劣る 商用

More information

昨年度までの研究紹介 および 研究計画

昨年度までの研究紹介 および 研究計画 第 12 回 ICN 研究会ワークショップ Cefore で キャッシュプラグイン開発 2018 年 8 月 30 日 ( 木 ) キャッシュプラグイン csmgrd は起動時に使用するキャッシュプラグインを指定 Cache plugin: キャッシュデータ保存方式 Cache algorithm: キャッシュ選択 / 置換アルゴリズム Cache Plugin Cache algorithm csmgrd

More information

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

C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要 C プログラミング 1( 再 ) 第 5 回 講義では C プログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要 1 コンピュータの構造 1.1 パーソナルコンピュータの構造 自分の ( 目の前にある ) コンピュータの仕様を調べてみよう パソコン本体 = CPU( 中央処理装置

More information

Gfarm/MPI-IOの 概要と使い方

Gfarm/MPI-IOの 概要と使い方 MPI-IO/Gfarm のご紹介と現在の開発状況 鷹津冬将 2018/3/2 Gfarm ワークショップ 2018 1 目次 MPI-IO/Gfarm 概要 MPI-IO/Gfarm の開発状況 MVAPICH2 向け MPI-IO/Gfarm MPI-IO/Gfarm の使い方 かんたんなサンプルプログラムと動作確認の方法 既知の不具合 まとめと今後の展望 2018/3/2 Gfarm ワークショップ

More information

セキュアVMの アーキテクチャ概要

セキュアVMの アーキテクチャ概要 2008 年 11 月 18 日 ( 火 ) セキュア VM ワークショップ ( 公開用修正版 ) 筑波大学講師品川高廣 セキュア VM BitVisor の アーキテクチャ概要 背景と目的 情報漏洩事件の増加 PC USBメモリ等の紛失 盗難 インターネット経由 ウィルスやファイル交換ソフトなど 仮想マシンモニタ (VMM) による安全性向上 暗号化 認証を VMM で強制する ストレージ及びネットワークの暗号化

More information

ブート ~OS が起動されるまで~

ブート ~OS が起動されるまで~ Debian の世界にようこそ! 情報実験第 7 回 (2019/06/14) 北海道大学大学院理学院宇宙理学専攻修士課程 2 年吉田哲治 1 本日の情報実習その 1 本日は実習でOS のインストールを行います 前半の講義では, インストール作業で必要となる Debian GNU/Linux について インストールの仕組みを理解するための基本知識について パーティション, ファイルシステム 等の学習を行います

More information

memo

memo 計数工学プログラミング演習 ( 第 3 回 ) 2017/04/25 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 内容 ポインタの続き 引数の値渡しと参照渡し 構造体 2 ポインタで指されるメモリへのアクセス double **R; 型 R[i] と *(R+i) は同じ意味 意味 R double ** ポインタの配列 ( の先頭 ) へのポインタ R[i]

More information