[TIL]オペレーティングシステム恐竜書Chapter 1.1-1.2
コンピュータの基本的なハードウェアから、ハードウェアを管理するオペレーティングシステムまで、CSの基礎を固めるために、恐竜の本を読むことにしました.
オペレーティングシステムは、コンピュータユーザとコンピュータハードウェアとの間で仲介者として機能する.
コンピュータシステムの一般的な構成および割り込みの役割について説明する. 現代マルチプロセッサコンピュータシステムの構成部分について説明する. ユーザモードからカーネルモードへの変換について説明する. の複数のコンピューティング環境でオペレーティングシステムをどのように使用するかについて説明します. オープンソースオペレーティングシステムの例を示します.
ハードウェアは、中央プロセッサ(CPU)、メモリ、I/Oデバイスで構成され、基本的なコンピューティングリソースをサポートします.
アプリケーションword、Excel、コンパイラ、Webブラウザなどは、これらのリソースが~をどのように使用するかを定義し、~計算の問題を解決します.
オペレーティングシステムは異なるユーザーのために異なるアプリケーション間のハードウェアの使用を制御し、調整します!!
コア システムプログラム アプリケーション 最初の3つの部分からなる
オペレーティングシステムには、頻繁に実行されるカーネル、アプリケーションの開発と機能の提供に便利なミドルウェアプログラム、およびシステムの実行中にシステムの管理を支援するシステムプログラムが含まれます.
なぜオペレーティングシステムを学ぶ必要がありますか?!
すべてのコードがオペレーティングシステム上で実行されるため、オペレーティングシステムの起動知識は、適切で効率的で効率的で安全なプログラミングにとって非常に重要です.
オペレーティングシステムの基本的な知識、コンピュータのハードウェア駆動方法、アプリケーションに提供される内容を理解することは、プログラマーにとって役立つ場合があります.
現代の汎用コンピュータシステムは、共通バスを介して1つ以上のCPU、コンポーネント、および共有メモリ間のアクセスを提供する複数のデバイスコントローラから構成される.
コンピュータのI/O操作
1.デバイスドライバは、デバイスコントローラの適切なレジスタに値をロードする
2.デバイスコントローラは、これらのレジスタの内容を確認し、実行する操作を決定する.
e.g.キーボードから文字を読み出す
3.コントローラは、デバイスからローカルバッファへのデータの転送を開始します.
4.データ転送が完了すると、デバイスコントローラはデバイスドライバの操作が完了したことを通知します.
5.デバイスドライバは、要求の読み出し時にデータまたはデータへのポインタを返し、オペレーティングシステムの他の部分に制御権を渡す.
他の操作では、デバイスドライバは、書き込み完了やデバイス使用中などのステータス情報を返します.コントローラが完了したことをデバイスドライバに知らせる方法->中断!
ハードウェアは、いつでもシステムバスを介してCPUに信号を送信し、割り込みを発生させることができる.
CPUが中断すると、CPUは動作を停止し、直ちに運転を固定位置に移行する.
割り込みサービスルーチンの実行が完了すると、CPUは割り込みの演算を再開する.
割り込みは、適切なサービスインスタンスを介して制御を伝達する.
割り込みには迅速な処理が必要ですが、必要な速度を提供するために、割り込みルーチンのポインタテーブルを使用できます.
この場合、中間ルーチンを必要とせずに、表から割り込みルーチンを間接的に呼び出すことができます.
ポインタのテーブルはサブメモリに格納されます.(上位100箇所)
これらのロケーションには、複数のデバイスの割り込みサービスルーチンのアドレスが含まれます.
要求が中断された場合、中断されたデバイスに中断サービスルーチンのアドレス~アドレスの配列(すなわち、中断バックエンド~)が、中断要求とともに所与の一意のデバイス番号(Indexing)にインデックスされる.
わりこみこうぞう割り込みのすべての情報->割り込み処理を保存すると、この情報を復元できます. 割り込みルーチンがプロセッサの状態を変更する必要がある場合、割り込みルーチンは現在の状態を明示的に保存し、戻る前に状態を回復する必要があります. サービス終了が中断すると、保存した戻りアドレスをプログラムカウンタ->停止外の演算にロードし、 を再起動する.
デフォルトの割り込みメカニズム CPUハードウェアには割り込み要求線という線 がある. CPUは、1つのコマンドの実行が完了するたびに、このライン を検出する.コントローラは、割り込み要求線に信号 を送信する.が検出すると、割り込み番号を読み出して割り込みベクトルのインデックスとして使用し、割り込みハンドルルーチン にジャンプする.インデックス関連アドレスから が実行する.
割込み処理ルーチン割り込みプロセッサは、実行時にステータス変更 を保存することができる.
チェック中断原因 必要な処理 を実行する.実行状態回復 return from interruptコマンド を実行 CPUは、割り込み前運転状態 に復帰する.
デバイスコントローラは、割り込み要求線に信号 を送信する. raise割り込み catch CPUキャプチャ割り込み dispatch割込みハンドル派遣 clear Handlerは設備を修理し、中断をクリアします.
基本割り込み技術により、CPUは、デバイスコントローラがサービスを準備している場合などの非同期イベントに応答することができる.
しかし、最新のオペレーティングシステムでは、より細かい割り込み処理機能が必要です.
最新のコンピュータハードウェアは、CPUおよび割り込み制御ハードウェアに以下の機能を提供します.
1.重要処理における遅延割込み処理
2.適切な割り込み処理プログラムを使用して効率的に設備を派遣する
3.オペレーティングシステムは、優先度の高い割り込みと優先度の低い割り込みを区別し、適切な緊急応答のマルチレベル割り込み構成を提供することができる
バックエンドわりこみぎじゅつサービスを必要とするデバイスを特定するためには、割り込みハンドラが可能なすべての割り込みソースを検索する必要を低減する必要がある. しかし、実際のコンピュータでは、割り込みベクトルのアドレス個数よりも多くのデバイスがある. 割り込みチェーンを使用して、上記の問題を解決することができる. 割り込みベクトルの各要素は、割り込みハンドルリストのヘッダを指します. 割り込みが発生した場合、処理要求が検出されるまで、対応するリスト内のプロセッサが1つずつ呼び出されます. この構造は、大きな割り込みテーブルのオーバーヘッドと割り込みハンドルを使用してdispatchを行う低効率のトレードオフスキームである.
RAMは揮発性であるため、ブートプログラムはEEPROMおよび他の形式のファームウェアを使用する.
すべての形式のメモリはバイトの配列を提供します.
各バイトには独自のアドレスがあります.
インタラクションは、特定のメモリアドレスに対する一連のロードおよびストレージコマンドによって実現される.
OSコードの大部分はI/O管理用です.
割込み駆動I/Oの形態は少量のデータ移動に有利であるが、NVS I/Oのような帯域幅データ移動に用いる場合、高いオーバーヘッドを招く.
ダイレクトメモリアクセス(DMA)
デバイスのバッファとポインタ、I/Oカウンタを設定すると、デバイスコントローラはCPUの介入なしにメモリから自分のバッファデバイスにデータブロックを転送します.
バイトごとに割り込みは発生せず、ブロックデータ単位で、ブロックの全盛期が完了するたびに割り込みが発生する.
デバイスコントローラが転送動作を実行する場合、CPUは他の動作を実行することができる.
オペレーティングシステムは、コンピュータユーザとコンピュータハードウェアとの間で仲介者として機能する.
ターゲットGoals
1.1. オペレーティングシステムがやるべきこと
ハードウェアは、中央プロセッサ(CPU)、メモリ、I/Oデバイスで構成され、基本的なコンピューティングリソースをサポートします.
アプリケーションword、Excel、コンパイラ、Webブラウザなどは、これらのリソースが~をどのように使用するかを定義し、~計算の問題を解決します.
オペレーティングシステムは異なるユーザーのために異なるアプリケーション間のハードウェアの使用を制御し、調整します!!
1.1.1. ユーザーの観点
- Personal Computer System은 한 사용자가 자원을 독점하도록 설계됨, 사용자가 수행하는 작업을 최대화하는 것
- 사용의 용이성↑을 위해 설계, 자원의 이용↓에는 전혀 신경쓰지 않는다.
1.1.2. システム観点
- Computer 관점에서 운영체제는 하드웨어와 가장 밀접하게 연관된 프로그램
- 자원 할당자(Resource allocator)
- 제어 프로그램(Control program)
1.1.3. OS定義
オペレーティングシステムには、頻繁に実行されるカーネル、アプリケーションの開発と機能の提供に便利なミドルウェアプログラム、およびシステムの実行中にシステムの管理を支援するシステムプログラムが含まれます.
なぜオペレーティングシステムを学ぶ必要がありますか?!
すべてのコードがオペレーティングシステム上で実行されるため、オペレーティングシステムの起動知識は、適切で効率的で効率的で安全なプログラミングにとって非常に重要です.
オペレーティングシステムの基本的な知識、コンピュータのハードウェア駆動方法、アプリケーションに提供される内容を理解することは、プログラマーにとって役立つ場合があります.
1.2. コンピュータシステムの構成コンピュータ-システム組織
現代の汎用コンピュータシステムは、共通バスを介して1つ以上のCPU、コンポーネント、および共有メモリ間のアクセスを提供する複数のデバイスコントローラから構成される.
1.2.1. わりこみわりこみわりこみ
コンピュータのI/O操作
1.デバイスドライバは、デバイスコントローラの適切なレジスタに値をロードする
2.デバイスコントローラは、これらのレジスタの内容を確認し、実行する操作を決定する.
e.g.キーボードから文字を読み出す
3.コントローラは、デバイスからローカルバッファへのデータの転送を開始します.
4.データ転送が完了すると、デバイスコントローラはデバイスドライバの操作が完了したことを通知します.
5.デバイスドライバは、要求の読み出し時にデータまたはデータへのポインタを返し、オペレーティングシステムの他の部分に制御権を渡す.
他の操作では、デバイスドライバは、書き込み完了やデバイス使用中などのステータス情報を返します.
1.2.1.1. 概要
ハードウェアは、いつでもシステムバスを介してCPUに信号を送信し、割り込みを発生させることができる.
CPUが中断すると、CPUは動作を停止し、直ちに運転を固定位置に移行する.
割り込みサービスルーチンの実行が完了すると、CPUは割り込みの演算を再開する.
割り込みは、適切なサービスインスタンスを介して制御を伝達する.
割り込みには迅速な処理が必要ですが、必要な速度を提供するために、割り込みルーチンのポインタテーブルを使用できます.
この場合、中間ルーチンを必要とせずに、表から割り込みルーチンを間接的に呼び出すことができます.
ポインタのテーブルはサブメモリに格納されます.(上位100箇所)
これらのロケーションには、複数のデバイスの割り込みサービスルーチンのアドレスが含まれます.
要求が中断された場合、中断されたデバイスに中断サービスルーチンのアドレス~アドレスの配列(すなわち、中断バックエンド~)が、中断要求とともに所与の一意のデバイス番号(Indexing)にインデックスされる.
わりこみこうぞう
1.2.1.2. インプリメンテーション
デフォルトの割り込みメカニズム
割込み処理ルーチン
チェック
フルプログラム
基本割り込み技術により、CPUは、デバイスコントローラがサービスを準備している場合などの非同期イベントに応答することができる.
しかし、最新のオペレーティングシステムでは、より細かい割り込み処理機能が必要です.
最新のコンピュータハードウェアは、CPUおよび割り込み制御ハードウェアに以下の機能を提供します.
1.重要処理における遅延割込み処理
2.適切な割り込み処理プログラムを使用して効率的に設備を派遣する
3.オペレーティングシステムは、優先度の高い割り込みと優先度の低い割り込みを区別し、適切な緊急応答のマルチレベル割り込み構成を提供することができる
バックエンドわりこみぎじゅつ
1.2.2. きおくこうぞう
RAMは揮発性であるため、ブートプログラムはEEPROMおよび他の形式のファームウェアを使用する.
すべての形式のメモリはバイトの配列を提供します.
各バイトには独自のアドレスがあります.
インタラクションは、特定のメモリアドレスに対する一連のロードおよびストレージコマンドによって実現される.
1.2.3. I/O構造
OSコードの大部分はI/O管理用です.
割込み駆動I/Oの形態は少量のデータ移動に有利であるが、NVS I/Oのような帯域幅データ移動に用いる場合、高いオーバーヘッドを招く.
ダイレクトメモリアクセス(DMA)
デバイスのバッファとポインタ、I/Oカウンタを設定すると、デバイスコントローラはCPUの介入なしにメモリから自分のバッファデバイスにデータブロックを転送します.
バイトごとに割り込みは発生せず、ブロックデータ単位で、ブロックの全盛期が完了するたびに割り込みが発生する.
デバイスコントローラが転送動作を実行する場合、CPUは他の動作を実行することができる.
Reference
この問題について([TIL]オペレーティングシステム恐竜書Chapter 1.1-1.2), 我々は、より多くの情報をここで見つけました https://velog.io/@devsigner9920/TIL-os-1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol