オペレーティング システム - 私の混乱の一部を解決しました

目次

1. コンピュータの電源を入れると何をしますか?

2. 真の並列コンピュータ

3. コンピュータにおける消去アルゴリズム、割り当てアルゴリズム、スケジューリングアルゴリズム、スペース管理

4. 仮想メモリとは何ですか?なぜ仮想メモリが必要なのでしょうか?割り当て可能な最大数は何ですか?

5. TLB (高速テーブル)、ページング ストレージ (低速テーブル) [セカンダリ、マルチレベル、セグメンテーション、ページング、セグメント ページ]、仮想メモリ

6. 高級言語プログラム - 実行可能なターゲットプログラムに変換


1. コンピュータの電源を入れると何をしますか?

クレイジーな夜を過ごした後、アニメーションを使用してオペレーティング システムの起動を理解していただければ幸いです_bilibili_bilibili

まず、BIOS から起動し、オペレーティング システムをインストールし、パーティションを分割し、ソフトウェアをインストールしました。

ここでブートを開始します: (セルフテスト-BIOS-MBR-PBR-初期化)

  1. CPU がディスク情報を読み取ります (BIOS ブート プログラムを実行 - ハードウェア セルフテスト)
  2. マスター ブート レコード MBR を通じて、ディスク パーティションとオペレーティング システム パーティションを見つけます。
  3. パーティション ブートを通じて PBR を記録します - ルート ディレクトリに基づいてブート マネージャーを検索します
  4. オペレーティング システムの初期化プログラムを実行します。オペレーティング システムの初期化が完了します。

追加: (初心者 408、私はオペレーティング システムのレビューを始めたばかりですが、パーティションなどをまだ理解できません。王様が言っていたのですが、私はそれをほとんど忘れていました)

  1. 電源がオンになると、コンピュータは電源セルフテストを実行して、すべてのハードウェア デバイスが正常であることを確認します
  2. マザーボード上のBIOS チップがアクセスされ、基本入出力システム (BIOS) が実行されます。 プログラム。 BIOS は、各ハードウェア デバイスの初期化と一連のセルフテストの実行を担当しますRAM、ディスプレイ アダプターなどのチェックを含みます。
  3. BIOS は、 を通じてハード ドライブのブート セクタを読み取ります (マスター ブート レコードMBR) を使用してブート プログラムをロードします。 MBR はパーティション テーブルの最初のセクターにあり、ブート プログラムの場所とサイズの情報が保存されます。主に [ディスク ブート プログラム パーティション テーブル] (パーティション テーブルのスキャン: パーティション テーブル レコード D) に分かれています。 ディスクの場所、システム パーティションC ディスクなど。[通常のディスク] は記録されたデータ、[システム ディスク] ] はオペレーティング システムのプログラムです)
  4. [MBR のブート プログラム] で [システム パーティション] を見つけ、[パーティション ブート レコード - パーティション ブート レコード - PBR] を選択し、[ルート ディレクトリ] に従って [スタートアップ マネージャー] を見つけ、[オペレーティング システム ブート ローダー] をロードします ()。 a>Linux をロードします。 >WindowsWindows をロードするだけです。完了後、[制御]を[オペレーティングシステム]に移します。 Linux
  5. [オペレーティング システム カーネル] がメモリにロードされ、[初期化プログラム] の実行が開始されます。 [初期化プログラム] は、システム環境の構成、デバイス ドライバーのロード、さまざまなサブシステムの初期化を担当します。
  6. [初期化プロセス] には、通常、いくつかのコア コンポーネントのロード、メモリ管理およびプロセス管理構造の確立、その他の必要なシステム リソースの準備が含まれます。
  7. 初期化が完了すると、オペレーティング システムは「使用可能な状態」になり、ユーザーが操作できるようになり、オペレーティング システム上で他のアプリケーションを実行できるようになります。

これはオペレーティング システムとコンピュータ アーキテクチャによって異なる場合がありますが、基本的なプロセスは一般に似ていることに注意してください。さらに、ハード ドライブのパーティション分割とソフトウェアのインストールの詳細は、通常、オペレーティング システムの初期化後に完了します。

上司はこう付け加えた。

現在、ほとんどの BIOS はプログラムと消去が可能な FLASH に保存されています。ROM は、ファームウェア プログラムが自由に変更されることを防ぐため、ユーザーのみが使用できます。電源ボタンを押した後、最初に電源が実行されます。 、電源投入後に権限が CPU と BIOS に転送され、BIOS が mbr テーブルを呼び出します。同様に、S5 ~ S0 は ACPI に従って同期的にパワーダウンし、低消費電力を実現します。コンピュータの設計において、ファームウェアには必ずしも BIOS コードだけが含まれているわけではなく、一部のマウントはユーザーの ROM である UEFI システムの助けを借りてアップグレードする必要があることに注意してください。同様に、BIOS FLASH 内には BIOS コードだけが存在するとは限らず、この部分は必要に応じて ODM によって決定されます。ハードウェア層の場合、最初の層はパワーオンです。つまり、パワーオン リセット/イネーブル/ソフト リセット操作が実行されます。2 番目の層は BIOS、3 番目の層は mbr、4 番目の層は fs (例: NTFS) 、mbr は fs のタイプに応じて OS ブートを見つける必要があります)、5 番目の層は OS カーネル (この前に OS ブートがある場合もあります)、次に OS と OS GUI です。もちろん、実際にはすべてデザインによって決まります。たとえば、fs には実際には複数の層があり、カーネルにはカーネルの fs があり、mbr には mbr の fs があり、OS には OS の fs があり、ディスクには独自のファイル システム (ファームウェア) がある場合もあります。パイプラインまたはストレージ マトリックスの管理)。 このプロセスは非常に複雑であり、私がここで触れたことは、(ACPI に関する) 1 つの角度からのみです

注: [uefi 起動]

現在uefi が開始されています (原理は似ていますが、uefi がフレームワークを統合します)

[UEFI ブート + シングル システムの場合] 起動後 10 秒以内にコンピューターは何をしましたか? _bilibili_ビリビリ

2. 真の並列コンピュータ

並列コンピュータ システムとは、複数のタスクや命令を同時に実行したり、複数のデータ項目を同時に処理したりするコンピュータ システムを指します。

初期のコンピューターはビットごとにシリアルに処理し、シリアル コンピューターと呼ばれていました。

並列処理コンピュータとは、主に次の 2 種類のコンピュータを指します。

1、複数の命令を実行したり、複数のデータ項目を同時に処理したりできるシングル CPU コンピュータ(スーパー パイプライン テクノロジー)

2、マルチコア プロセッサ (複数のコアを備えた 1 つの CPU を搭載可能)

3. コンピュータにおける消去アルゴリズム、割り当てアルゴリズム、スケジューリングアルゴリズム、スペース管理

消去アルゴリズム:

1、プロセス スケジューリング (5 つのプロセス状態の切り替え)

2、ページング (メモリ ページの置換)

3、キャッシュ (キャッシュと TLB のメモリ ブロック置換)

割り当てアルゴリズム:

1、メモリ割り当てアルゴリズム - 離散割り当て、連続割り当て

2、プロセス リソース割り当て - バンカーのアルゴリズム

スケジュールアルゴリズム:

1. プロセススケジューリングキュー - 6 (FIFO)

2. ディスク スケジューリング アルゴリズム - 6

スペース管理:

1、ファイル管理方法 - 4 (ビットマップ)

4. 仮想メモリとは何ですか?なぜ仮想メモリが必要なのでしょうか?割り当て可能な最大数は何ですか?

0、オペレーティング システム - デフォルトで仮想メモリが与えられます

Microsoft 公式ドキュメント - どれだけメモリが残っているかに関係なく、すべてのプログラムには仮想メモリが必要です

「インタビューQ&A」:仮想メモリとは何ですか?なぜ仮想メモリが必要なのでしょうか? - ビリビリ

1。プロセスが実際の物理メモリではなく仮想メモリを使用するのはなぜですか?

仮想メモリにより、アプリケーションは連続して使用可能なメモリ(連続した完全なアドレス空間)があると認識しますが、実際には

通常複数の物理メモリ フラグメントに分割され、一部は必要に応じて外部ディスク ストレージに一時的に保存されます。データ交換。

2。メモリが十分でない場合は、仮想メモリのサイズを手動で設定できます

システム上で実行されているプロセスの場合: (仮想メモリの最大容量はコンピュータのアドレス構造によって決まります)

32 ビット システムでは、最大 4GB (2 の 32 乗) の仮想メモリ領域を使用できます。

64 ビット システムでは、最大 256T (2 の 64 乗) の仮想メモリ空​​間を持つことができます。

各プロセスのアドレス空間は非常に大きいため、すべてのプロセスの仮想メモリの合計は、当然実際の物理メモリよりもはるかに大きくなります。したがって、すべての仮想メモリに物理メモリが割り当てられるわけではなく、実際に使用される仮想メモリのみが物理メモリに割り当てられます。

プロセスが特定の仮想メモリを読み書きするとき、CPU はそのメモリにアクセスしますが、このとき、この仮想メモリが物理メモリにマッピングされていないことが判明すると、CPU はページ フォールト割り込みを生成し、プロセスがユーザー モードからカーネル状態に切り替わり、ページ フォールト割り込みは処理のためにカーネルのページ フォールト割り込み関数に渡され、その後初めて物理メモリが実際に割り当てられます。

3、总结

仮想メモリ技術 - メモリの論理空間を拡張する技術

簡単に言うと、個別のハードディスク ブロックの迅速な取り外しと交換を容易にするために、プログラムにマッピングが追加されます。

利用可能なアドレス空間は、主にプログラムのメモリの一部をディスクにマッピングし、必要に応じてメモリに読み込むことによって拡張されます。

利点 - より大きなアドレス空間が提供されるため、プログラムは実際の物理メモリよりも多くのメモリにアクセスできます。

短所 - ディスクからデータを読み書きする必要があるため、仮想メモリへのアクセスが比較的遅く、システムのパフォーマンスが低下します。

4、举一个例子

仮想メモリの場合 - 上司 (オペレーティング システム) が従業員 (プログラム) に分配するパイです。

Huabing:オペレーティング システムは、ユーザーが使用できる部屋 (連続メモリ空間) が 100 個あることをプログラムに伝えます [これが仮想メモリです]

実際の:

従業員 (プログラム) が実際に室内でこれらのものを使用すると[仮想アドレス]、上司はそれをさらに処理して、対応するメモリ [物理アドレス]

実際、上司 (オペレーティング システム) は彼に 10 部屋 [メモリ領域] しか割り当てません。

そして、[メモリ空間] にないアドレスは、時間内に常に [メモリ空間] に配置されます - ページ置換

このように、プログラムは知覚が無くて良い感じです(実際は騙されています~)

Swap分区

5. TLB (高速テーブル)、ページング ストレージ (低速テーブル) [セカンダリ、マルチレベル、セグメンテーション、ページング、セグメント ページ]、仮想メモリ

CPU をキャッシュに - アドレス変換用の TLB (高速テーブル) があります (実行速度が向上します)

メモリ ブロックからハードディスクへ - 物理アドレスを仮想アドレスに変換する (遅いテーブル) があります (プログラムの動作が容易になります)

ハードディスクへのメモリ ブロック - アドレス変換用の (仮想メモリ) があります (プログラムの実行を向上させるのに便利です)

6. 高級言語プログラム - 実行可能なターゲットプログラムに変換

おすすめ

転載: blog.csdn.net/Pan_peter/article/details/134632646