[レビューの]コンピューターのオペレーティング・システムの見直し(A)

オペレーティングシステムの見直しの問題

第1章 - オペレーティングシステムの紹介

オペレーティングシステムの役割

  1. コンピュータのハードウェア・システムとの間のインターフェースとして
  2. システムリソースマネージャ
  3. コンピュータリソースの抽象

オペレーティングシステム開発プロセス

コンピュータシステムのオペレーティングシステムを構成しません

  1. 手動操作、ユーザー排他的なマシン全体、資源の無駄
  2. オフラインO(オフラインI / O)モード。

シングルバッチシステム

  1. ここでは、コンピュータへの1回の入力、磁気テープ上のバッチジョブの多くを指し、
  2. 人間の競合を解決する(各プログラムが手動ロードを実行しなければならない)と、CPUは、矛盾やデバイスのI / O速度と一致していません。システムのスループットを向上させます。
  3. 短所:システムリソースの使用率が低い(CPUがアイドル状態になる前にI / O要求が成功しました)。

マルチバッチシステム

  1. ジョブズCEOは、外部メモリ、上のユーザーによって投稿された「バックログ。」
  2. CPUがアイドル状態である防ぐために、I / O要求を行う際にB動作を行います。
  3. マルチチャネル:それはメモリから分かるように1及び2は、同時に複数のプログラムを含むことができ、それはマルチチャネルです。
  4. 利点:高いリソース使用率(明らかに、高いCPU、メモリ、およびデータ利用装置を指す)、大規模システムのスループット(オペレーティング・システムが完成し、昇降単位時間の数を指します)
  5. 短所:平均所要時間が長い、無インタラクティブ機能

フォームは、外部メモリにタスクキューに提出され、マルチチャネルのメモリチャネルの実装を指し、実行している複数のプログラムを持つことができ、ここで注意してください。

タイムシェアリングシステム

  1. タイムシェアリングシステムは、人間とコンピュータの相互作用のニーズを満たすために表示されます
  2. 共有:ラウンドロビン方式、ジョブの実行をスライス間隔で。
  3. 直接メモリにタイムシェアリング・オペレーティング・システム(注意を払います)。
  4. 重要な問題:タイムリー、タイムリーに受け取ります。

リアルタイム・オペレーティング・システム

我々が使用する電子制御RMはRTOSです。

  1. 「リアルタイム」ではなく「ジャストインタイム」を指し、「リアルタイムシステム。」
  2. もはや、タスクを実行していない次のタスクになります指定された時間内に終了しない場合、システムは、リアルタイムタスクの時間を提供します。
  3. 利点は、このような非常に遅い迅速なタスクの実行と、n個のタスクの実行など、それぞれ他のタスクを、影響しません、リアルタイムオペレーティングシステムが非常に遅く、タスクが実行する他のタスクに影響を与えることはありません。データの次のフレームが来たときと予測可能性、リアルタイムオペレーティングシステムプロセスなどのデータ伝送は、その後、あなたは(通常、ビデオフレームを処理するために使用することができます)キャッシュを読んで加速することが可能である、予測することができます。

コンピュータシステムの操作性

  1. DOSはシングルユーザーシングルタスクのオペレーティングシステムであり、
  2. UNIXはマルチユーザー、マルチタスクオペレーティングシステムです

オペレーティングシステムの基本的な特徴

オペレーティングシステムの基本的な機能は次のとおりです:仮想、共有、同時、非同期。

によって複雑

同時マルチチャネル放電がメモリの動作を短い時間間隔で順次行う複数のジョブを意味し、マクロが実行されるマルチプログラミング時間の期間、各時点マイクロつのみプログラム実行の上に見えます。

パラレル

時点の実行中に複数のプログラムがあります。例えば、マルチコアの使用は、同時に動作します。

バーチャル

比較的あやふや言うべき仮想世界は、実際には、戻って名前に何かを言います。例えば、ハードディスクのハードウェア上の領域は、我々は彼にCドライブのディスクDなどの名前を与え、仮想です。

あなたは、このような二つの名前からチャネルとして、2から何かに名前を付け、2つのチャネルがあるようですので、これは仮想チャネルです。

非同期な

非同期が複数のプログラムの一貫性のないペースを指し、つまり、いくつかのプログラムは、より高速なプログラムの実行と、いくつかの遅い、1つのCPUのみを実行するので、全体的な外観は、いわゆる、「ストップアンドゴー」を見実装することです非同期。

オペレーティングシステムの主な機能

オペレーティング・システムの主な機能は、プロセッサ管理、メモリ管理、デバイス管理、ファイル管理、およびオペレーティングシステムとユーザとの間のインターフェイス。

マイクロカーネル・オペレーティング・システム

マイクロカーネルは、実際には、オペレーティング・システム、唯一のいくつかの基本的な機能の圧縮バージョンです。

  1. 十分に小さなカーネル
  2. クライアント/サーバモデルに基づいて、
  3. アプリケーション「のメカニズムと戦略分離」の原則
  4. オブジェクト指向技術

小核の目標は、独立したシステムサービスの基本的な運用ルールやシステムを実現することです。例えば、サービスをロックする入力/出力プロセスは、小核の外で実行サービス・コンポーネントによって提供されてもよいです。完了するには、サーバのためにこれらのユーザーモードのより先進的なオペレーティングシステムは非常にモジュラー操作、このデザインは、シンプルなデザインの最も核心部分のカーネルを可能にします。サービス・コンポーネントの障害がシステム全体の崩壊につながらない、カーネルだけで他の部分に影響を与えることなく、コンポーネントを再起動し、実行する必要があります。

要するに、我々は、オペレーティング・システムは、比較的軽量である(崩壊が大きな影響を持っていないだろうしても、外側に、これは非常に明確であるオペレーティングシステムの全般的な動作)の安全性を向上させることができます。

第二章では、プロセス制御を説明します

プロセス、手順、スレッド

プロセス

プロセスは、最初のパフォーマンスのプログラムです。

プロセス構造:プログラムブロック、データブロック、PCB。

PCB:システム管理およびプロセス制御データ構造情報の保存は、オペレーティング・システムは、データ構造の中で最も重要な記録です。これは、プロセスの存在の唯一のサインです。

変換プロセス三つの状態:

プログラム

プログラムは、命令の順序集合です。

これは、静的な性質を持っています。

スレッド

プログラム実行フローの最小単位。

スレッドは、プロセスの不可欠な部分です。

スレッドの導入後、スレッドはスケジューリングと配布の基本単位ではなく、リソースの基本的な単位である(動作中の必須リソース以外、基本的なリソースを持たないシステム自体が)、プロセスは基本単位であるリソースを有しています。

どのスレッドが導入されていない場合、プロセスはスケジューリングと割当の基本単位です。

いずれの場合においても、プロセスは、リソースのすべての基本的な単位を有しています。

プロセスおよび手順の間の差

  1. プログラムでは、プロセスは動的で、静的です。
  2. プロセスは、より正確に並行処理を記述し、プログラムができません。
  3. ブロックPCBプロセスは3つの部分からなる番組データとそのプロセスによって制御されます。
  4. 機能を作成するために他のプロセスとプロセスが、プログラムにはありません。
  5. データ収集の数で実行する同じプログラムは、それはいくつかの異なるプロセスに属します。同じプログラムは、複数のプロセスに対応することができます。

プロセス同期

制限的な関係の二種類

  1. 間接相互拘束関係:システム間でのリソースの競合は、互いに独立して処理します。
  2. 相互に関連するプロセス間の連携、:相互拘束の直接的な関係。

重要なリソース

一度だけのプロセスは、プログラムにアクセスすることを可能にします。

危険域

各プログラムは、その手順の間の重要なリソースへのアクセスは、プログラムに注意してください。

従うべきルールの同期メカニズム

  1. アイドルにしてみましょう。
  2. ビジーウェイト。
  3. リミテッド待機。
  4. 右が待つようにしましょう。

ダウンバックアップするためにこれらの16個の言葉。

セマフォメカニズム

セマフォプリミティブ

//P(s)
while s<=0:
    do no-op;
s=s-1;

//V(s)
s+=1;
  1. 独占契約
  2. プロセスの同期

相互排除のために、ミューテックスセマフォは、初期値、相互排除の前と後に実行PV操作を確立します。ミューテックスは、プロセスを実行することを可能に0未満待つので、相互に排他的な要求を満たすことです。

同期処理のために、信号数が実行を許可され、同期セマフォnを確立します。

具体的には、まだ理解を見て:https://www.cnblogs.com/aoru45/p/11773325.html

プロセス間通信

共有ストレージシステム

データ構造または共有メモリ領域の一部を共有することにより、プロセス間通信。

パイプラインコミュニケーションシステム

読み取りと書き込みのファイル間の共有プロセスの確立、書き込むことができない時間を読み、書く時間を読み取ることができません。

メッセージングシステム

共有領域のデータ構造に頼ることなく、メッセージは、オペレーティングシステム、プロセス間メッセージングによって提供されるコマンドのセットを使用してユニット、メッセージ通信にカプセル化されたデータ、及び通信にフォーマットされます。

カーネルモード、ユーザーモード

:(カーネル・モード・カーネルモードで、すべてのデータ・スーパバイザモード)CPUは、ハードディスク、ネットワークカード、それ自体が別のプログラムに切り替えることができる、CPU等の周辺機器を含むメモリにアクセスすることができます。

ユーザーモード:のみアクセスメモリを制限し、及び周辺機器へのアクセスを許可しない、奪わCPUを占有する機能は、CPUリソースが他のプログラムにアクセスすることができます。

カーネルモードへのユーザーモードの変換がシステムによって呼び出されます。

第3章 - プロセッサスケジューリングとデッドロック

プロセッサのスケジュールレベル

3つのレベルに分け:高度なスケジューリング(スケジューリング)、中間スケジューリング(メモリと外部メモリとの間のスケジューリング)、低レベルのスケジューリング(スケジューリング処理)。

ターンアラウンド・タイム

ジョブは、ジョブの実行時間を最初から最後までシステムに提出されます。

平均所要時間所要時間は、ジョブの数で割った値の合計です。

スケジューリングを処理するには、2つの方法

  1. ノンプリエンプティブ:プロセッサをつかむために、プロセスが出て割り当てられている許可しないでください。
  2. プリエンプティブ・モード:与えられた優先順位は、優先順位の低いプロセスをプリエンプトすることができ、高い優先順位が行われています。

ジョブのスケジューリングアルゴリズム

最初-務め、先着順(FCFS)

名前が示すように、キューの分布と排泄させるためのプロセスに従いました。

最初のショートの仕事(SJF)

短い実行時間のジョブが実行します。

優先度スケジューリングアルゴリズム(PSA)

優先度の高い最初の実装。

最高の対応優先度より(HRRN)

対応する比:ターンアラウンド時間/稼働時間。

したがって、最初の実装の対応する比に応じ。

例を理解することは簡単ですが、単純に言います。

3つのジョブが同時に単一路走行により、単一の処理システムにおいて、3,4,5 2,1,3優先され、実行時間に達するがあり、SJFおよびPSAのさまざまな平均所要時間はどのくらいですか。
\ [SJF:FRAC {3 \ \のFRAC {4 +(+ 3 4)+:+(3 +4)+(3 + 4 + 5)}、{3} = \ FRAC {22} {3} \\ PSA (4 + 3 + 5)}
、{3} = \ FRAC {23} {3} \\ \] 持た3つのジョブの到着時間は、3,4,5実装時間は0,1,2であり、次いでHRRN平均所要時間です。

0最初の実装時、対応するCよりも、それぞれ時間3、ケースBを実行する:
\ [P(B)=を(4 + 3-1)/ 4 1.5 \\ = P(C)=(3。 -2 + 5)/ 5 = 1.2 \]
したがって、ジョブBの最初の実行 ジョブCの最後の実行

平均ターンオーバー時間:
\ [\ FRAC {(。。3. 3 + + + 4 3 + 4-1 + 5-2)} = {6.33} 3 \]

プロセスのスケジューリング

タイムシェアリングシステム

ランナースケジュール:タイムシェアリングシステム、すなわち、所与の時間スライスは、各プロセスがプロセッサ時間のタイムスライスの1 / Nを取得し、より良く理解されます。

優先度スケジューリング、マルチキュースケジューリング、マルチレベルフィードバックキュースケジューリング、公正の原則に基づいてスケジューリング、

リアルタイムシステム

リアルタイムスケジューリング。

デッドロック

コンセプト(裏):一連のプロセス、各プロセスは、一連のプロセスに他のプロセスによって占有されるのを待っている無制限のリソースを持っているので、リソースを取得することはありません、デッドロックと呼ばれる現象。

理由:リソースの競合は、不適切な順序のプロセスを促進します。

必要な条件デッドロック:排他的、非プリエンプティブ、および保持要求を、ループを待ちます。

デッドロック

デッドロック防止:破壊の要件。

デッドロックを避ける:銀行家のアルゴリズムを。

デッドロック検出、デッドロックの解除。

銀行家のアルゴリズム

比較的簡単。一例として、本実施例:

第4章 - メモリ管理

ロードとリンカ

以下の手順を実行すると、システム上で実行中のプログラムするには:

  1. コンパイラ:特定のモジュールのユーザ数にソースコードをコンパイルするコンパイラ
  2. リンク:リンカリンクで必要なオブジェクトモジュールとライブラリ
  3. ロード:メモリモジュールにプログラムをロードします。

リンク

分かれて:

  1. 静的リンク
  2. ときにロードされたダイナミックリンク
  3. 実行時のダイナミックリンク

ロード

  1. 絶対負荷モード
  2. 再配置可能な方法は、ロードされました
  3. 道への動的な実行ファッション

ストレージ管理を割り当てる連続

メモリにユーザプログラムが割り当てられています。

  1. 単一の連続配信
  2. 固定パーティションの割り当て
  3. 動的なパーティションの割り当て

動的なパーティションの割り当て - シーケンシャル検索に基づいて動的なパーティション割り当てアルゴリズム

最初のフィットアルゴリズム(FF)

第一の長さは、プログラムに割り当てられていないパーティションを割り当てるようになっています。常に上から見下ろしています。

最初のフィットアルゴリズムループ(NF)

FFはスタート生まれ変わりを探して、見下ろしから割り当てられたローカルNFとの間の差です。

ベストフィットアルゴリズム(BF)

たびに、最も適切なプログラムに割り当てられたスペースの最小値を見つけます。

最悪の適応アルゴリズム(WF)

たびに最大の一つは、プログラムに割り当てられた最適なスペースを見つけます。

ページング管理

ページ

プロセスの論理アドレス空間のページメモリ管理は、複数のページに分割され、というように、セクション0、ページ1で説明したように、各ページは、0から始まる番号が付け。

アドレス構造

次のようにページングアドレスのアドレス構造は次のようになります。

これは2つの部分が含まれています。最初の部分は、ページ番号P、Dのオフセット部、即ち、ページアドレスです。特定のマシンのために、アドレス構造は一定です。

P =アドレス/ページ・サイズは、ここで、d = Iは、アドレス/ページサイズを切り捨て。

ページテーブル

ページ番号のオフセットを計算すると、実際の物理アドレスを計算するために、また、メモリに保存されているか、各ページの場所を知って、メモリの開始アドレスのページ番号を知っておく必要がある方法を知っている-オペレーティングシステムに各ページテーブルを確立するプロセス。

ページ・テーブル・アドレス・レジスタ

実装プロセスの現在のページ・テーブル・ページ・テーブルの先頭アドレスと長さを保存

アドレス変換部

基本的なアドレス変換

ページテーブルにより、ページテーブルレジスタの変換動作は、物理メモリアドレスに論理アドレス(仮想アドレス)を完了します

質問:物理アドレスへの仮想アドレスからのいくつかのメインメモリ、その後、完全なアドレスへのアクセス、効率がどのくらいある、インタビューを受けましたか?メインメモリは、効率は50%であり、二回インタビューしました

アドレス変換テーブルは、高速を持っています

パラレルクエリ機能を持つ追加の特別なキャッシュ・レジスタの数は(レノボ\速いテーブルを登録する)、全ページテーブルエントリ\実装プロセスの現在の一部を保存し、

具体的な手順:クイックチェックテーブル、直接得られた物理アドレスがメモリにアクセスする見つけるには、メモリ・ページ・テーブルにアクセスするには、それを検索し、見つかった物理アドレス・アクセス・メモリをチェックしませんでした

\ [単純なページング・システムは、物理メモリ、\\論理アドレス空間256の2 ^ {24}バイトがあり、ページのサイズは、2 ^ {10}バイトである\\論理アドレスがどのように多くのビットを尋ね?\]

フォーマットは、論理アドレスであるプラスページのページ番号、即ちページ256、8、10サイズは、それが18であるページ内のオフセット。

ページングシステムが知られており、ページ0,1,2,3に割り当てされた4つの大きなジョブのための主4Kのメモリ容量、1Kページサイズは、2,4,6,7-ブロックを開催しました物理アドレスに論理アドレス小数1023,2500,3500、4500。
\ [メインメモリ1023の第2のブロックに見出さ= 0 1023/1024 \\ \; MOD \; = 1024 1023 \\ =物理アドレス= 2 \倍1024 + 1023 3071 \]

\ [; MOD \; 2500/1024 = 2メインメモリに見出さ6 \\ 2500 \ 1024 = 452 \\物理アドレス= + 452 = 6596 1024年6 \回\]

\ [第メインメモリ7 \\ 3500 \で見出さ= 3 1024分の3500; MOD \; = 428 1024 \\物理アドレス= 7 \回+ 428 = 7296 1024 \]

\ [4500/1024 = 4は、ページ番号、ページフォルト割り込みを見つけることができません。\]

おすすめ

転載: www.cnblogs.com/aoru45/p/11793047.html