Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
オペ―レーティングシステムの読み書き#4                2011/11/21            Nagoya geekbar
今回はアドレス空間の切り替えコンテキストの退避・復元
割り込みが起こると……..                           PSWのモードがカーネル          CPU                           モードに変わり、空間が切り           PC    ...
空間の切り替え 1                  CPU                   PCアプリケーション                        カーネル                  PSW              ...
アプリケーションの動作時  PSW          PC            •PSWのモードはユーザ                             •PCはアプリのtextセグメントを指す  text  data  bss   ...
割り込みの発生-空間の切り替え  PSW          PC                               •PSWのモードがカーネルに                               •アドレス空間の制御レジスタ...
割り込みの発生-割り込みベクタ     PSW         PC                                 •割り込みベクタのエントリを     text                        選択してPCに ...
割り込みの発生-割り込みベクタ  PSW         PC                                               •割り込みベクタのエントリを text                         ...
割り込みの発生ーハンドラの処理  PSW        PC                  2  text  data  bss          user         user     user     user         ks...
割り込みの発生ーハンドラの処理        PSW             PCカーネル用 APR0   text APR1   data APR2 APR3        bss APR4 APR5 APR6                ...
 以上の説明は、割り込み発生時から、復帰ま  でにプロセスの切り替えが発生しない場合 条件によっては以下の処理でプロセスの切り  替えが発生    1. procの検索と選択    2. user構造の切り替え    3. User構造+k...
プロセスの切り替えー選択  PSW       PC                    Procの検索(スケジューラ) text data                     ↑次に動かすアプリ(プロセス) bss           ...
プロセスの切り替えーuserの切り替え  PSW        PC  text  data            proc  bss          user            user     user     user       ...
プロセスの切り替えーuserの切り替え        PSW        PC        text        data            proc        bss                user           ...
プロセスの切り替えーモードの切り替え                                  •PSWをユーザに切り替え        PSW        PC             •PCを復元                 ...
プロセスの切り替えー完了        PSW        PC        text        data            proc        bss                user            user  ...
おわり
Upcoming SlideShare
Loading in …5
×

V6read#4

1,168 views

Published on

  • Be the first to comment

V6read#4

  1. 1. オペ―レーティングシステムの読み書き#4 2011/11/21 Nagoya geekbar
  2. 2. 今回はアドレス空間の切り替えコンテキストの退避・復元
  3. 3. 割り込みが起こると…….. PSWのモードがカーネル CPU モードに変わり、空間が切り PC 替わる。割り込みの種類に応 ② ① じて、ベクターテーブルの値 がPCに書き込まれる text ③ text data data 割り込みの種類に応じて、ベ クターテーブルの値がPCに bss bss 書き込まれるアプリケーション カーネル stack stack
  4. 4. 空間の切り替え 1 CPU PCアプリケーション カーネル PSW 00: カーネルモード text 11: ユーザモード text data 11用 00用 data APR0 APR0 APR1 APR1 bss APR2 APR2 bss APR3 APR3 APR4 APR4 APR5 APR5 APR6 APR6 struct user stack APR7 APR7 stack I/Oレジスタ
  5. 5. アプリケーションの動作時 PSW PC •PSWのモードはユーザ •PCはアプリのtextセグメントを指す text data bss user user user user kstack kstack kstack kstack IOレジスタ 1 text text text text data data data data bss bss bss bss stack stack stack stack
  6. 6. 割り込みの発生-空間の切り替え PSW PC •PSWのモードがカーネルに •アドレス空間の制御レジスタ text がカーネルモードに切り替わる data bss user user user user kstack kstack kstack kstack IOレジスタ 1 text text text text data data data data bss bss bss bss stack stack stack stack
  7. 7. 割り込みの発生-割り込みベクタ PSW PC •割り込みベクタのエントリを text 選択してPCに data bss user user user user kstack kstack kstack kstack IOレジスタ 1 text text text text data data data data bss bss bss bss•1のアドレスと割り込み時のレジスタを退避 stack stack stack stack
  8. 8. 割り込みの発生-割り込みベクタ PSW PC •割り込みベクタのエントリを text 選択してPCに data bss Vector device 004 Bus Timeout user user Illegal instruction 010 user user kstack kstackBpt-trace kstack 014 kstack 024 iot Vector device entry IOレジスタ 034 Power failur 060 Teletype input klin 114 Emulator tarp 064 Teletype output klou instruction 1 text text text 070 text Paper tape input pcin data 240 data 11/10 parity data data 074 Paper tape output pcou bss 244 bss Floting point error bss 100 bss Line clock kwlp 250 Segmentation violation 104 Programmable clock kwlp stack stack stack200 stack Line printer lpou 220 RK disk driver rkio
  9. 9. 割り込みの発生ーハンドラの処理 PSW PC 2 text data bss user user user user kstack kstack kstack kstack IOレジスタ text text text text data data data data bss bss bss bss stack stack stack stack
  10. 10. 割り込みの発生ーハンドラの処理 PSW PCカーネル用 APR0 text APR1 data APR2 APR3 bss APR4 APR5 APR6 user user user user APR7 kstack kstack kstack kstack IOレジスタ •処理が終わったら、退避したレジスアプリ用 タ、PCを復元して、PSWをアプリ 1 text text モードに text text APR0 APR1 •割り込み時点に復帰 data data data data APR2 APR3 bss bss bss bss APR4 APR5 APR6 stack stack stack stack APR7
  11. 11.  以上の説明は、割り込み発生時から、復帰ま でにプロセスの切り替えが発生しない場合 条件によっては以下の処理でプロセスの切り 替えが発生 1. procの検索と選択 2. user構造の切り替え 3. User構造+kstackに退避した状態の復元 4. アプリへの復帰
  12. 12. プロセスの切り替えー選択 PSW PC Procの検索(スケジューラ) text data ↑次に動かすアプリ(プロセス) bss のprocを見つける user user user user kstack kstack kstack kstack IOレジスタ text text text text data data data data bss bss bss bss stack stack stack stack
  13. 13. プロセスの切り替えーuserの切り替え PSW PC text data proc bss user user user user kstack kstack kstack kstack IOレジスタ text text text text data data data data bss bss bss bss stack stack stack stack
  14. 14. プロセスの切り替えーuserの切り替え PSW PC text data proc bss user user user user kstack kstack kstack kstack IOレジスタアプリ用 空間管理用のレジスタを更新 APR0 text text text text APR1 data data data data APR2 APR3 bss bss bss bss APR4 APR5 APR6 stack stack stack stack APR7
  15. 15. プロセスの切り替えーモードの切り替え •PSWをユーザに切り替え PSW PC •PCを復元 •退避していた、PCとレジスタを復元 text data proc bss user user user user kstack kstack kstack kstack IOレジスタアプリ用 APR0 text text text text APR1 data data data data APR2 APR3 bss bss bss bss APR4 APR5 APR6 stack stack stack stack APR7
  16. 16. プロセスの切り替えー完了 PSW PC text data proc bss user user user user kstack kstack kstack kstack IOレジスタアプリ用 APR0 text text text text APR1 data data data data APR2 APR3 bss bss bss bss APR4 APR5 APR6 stack stack stack stack APR7
  17. 17. おわり

×