オペレーティングシステムの概要
序文
冬休みには、オペレーティングシステム、データベース、ソフトウェアエンジニアリングの3つの専門コースの復習を完了する必要があります。最も難しいのはオペレーティングシステムだと思います。授業中にわからないことがたくさんあります。オペレーティングシステムの難しさは、主に前任者のデザインを理解することです。考えと多くの専門用語。参考教科書は、王道らが編集した高等教育出版社の「オペレーティングシステム」第7版を翻訳したものです。
最初の章のイントロダクションには、適切な名詞がたくさん含まれています。これまでに学んだことがなければ、間違いなく混乱します。これがレビューであっても、理解できないことがたくさんありますが、少なくとも概要は理解できます。イントロダクションができればと思います。整理してよく理解すれば、コンテンツのレビューが簡単になります。
散らばった並べ替え、そして最終的に接続されました。
ポイントは多いようですが、第6部からはとりあえず理解しておけばいいので、後で詳しく説明します。
1.オペレーティングシステムは何をしますか
オペレーティングシステムとは何ですか?
おおよその定義:オペレーティングシステムは、コンピューターハードウェアを管理するプログラムであり、アプリケーションプログラムの基礎を提供し、コンピューターハードウェアとコンピューターユーザーの間の仲介役として機能します。(現在、オペレーティングシステムの完全な定義はありません)
コンピュータシステムのコンポーネント
ボトムアップ:コンピューターハードウェア、オペレーティングシステム、システムとアプリケーション、ユーザー
2つの観点からオペレーティングシステムを理解する
ユーザーの視点:ユーザーのニーズに基づいて、ユーザーのニーズを満たすために、使いやすさ、パフォーマンス、およびリソース使用率の間でトレードオフを行います。
コンピューターの観点:コンピューターのリソースアロケーター(CPU、メモリ、I / Oはコンピューターのリソース)であり、コンピューターを効果的かつ公正に実行できます。コンピューターの制御プログラムであり、ユーザープログラムの実行を管理して、コンピューターリソースのエラーを防止します。不適切な使用または使用。
2.コンピュータシステム組織(ユニット)
このパートは、実際にはコンピューターシステムの構成と原則に関する個別のコースとして学習できます。このセクションの主な目的は、後の学習で使用されるため、背景知識を確認することです。簡単に構成します。
コンピューターシステム
最新の汎用コンピュータシステム:最新の汎用コンピュータシステムは、共有メモリへのアクセスを提供する共通バスを介して接続された1つ以上のCPUと複数のデバイスコントローラで構成されています。CPUとデバイスコントローラーは同時に動作し、メモリサイクルを競うことができます。共有メモリへの整然としたアクセスを保証するために、メモリへのアクセスを調整するためのメモリコントローラが必要です。
ブートストラッププログラム:ブートプログラムは通常ROMまたはEEPROMにあり、コンピューターのファームウェアであり、CPUレジスター、デバイスコントローラー、メモリの内容など、システムのすべての部分を初期化します。電源を入れたり、再起動したりすると、コンピューターの実行が開始されます。ブートプログラムは、オペレーティングシステムをロードし、システムの実行を開始する方法を知っている必要があります。
割り込み
イベントの発生は通常、ハードウェアとソフトウェアの割り込みによって表されます。最近のオペレーティングシステムは、割り込みによって駆動されるソフトウェアです。
ハードウェア割り込み:ハードウェアは、いつでもシステムバスを介してCPUに信号を送信し、割り込みをトリガーできます。
ソフトウェア割り込み:ソフトウェアは、システム呼び出しなどの特別な操作を実行することによって割り込みをトリガーすることもできます。
中断の分類:
割り込みハンドラー:
割り込みはオペレーティングシステムの焦点です。将来、詳細に説明します。さまざまなオペレーティングシステムには、割り込み処理に独自の特性がありますが、一部の機能は共通です。
- 割り込みをオフにする:CPUに割り込みが発生した後、最初にプログラムのオンサイトステータスを保護する必要があります。サイトを保護するプロセスでは、CPUは上位レベルの割り込みソースの割り込み要求に応答しないでください。
- ブレークポイントの保存:割り込みサービスプログラムが実行後に元のプログラムに正しく戻ることができるようにするには、元のプログラムのブレークポイントを保存する必要があります。古い設計では、割り込みアドレスは固定された場所に保存されるだけです。構造はアドレスをスタックに保存します。
- 割り込みサービスルーチンを導き出す:割り込みベクタ(割り込みバークタ)によって提供されるデバイスの割り込み処理サブルーチンのアドレス、および割り込みサービスルーチンのエントリアドレスが取り出され、プログラムカウンタに送信されます。
- シーンとシールドワードの保存:割り込みサービスプログラムに入った後、最初にシーンを保存する必要があります。シーン情報は通常、プログラムステータスワードレジスタといくつかの汎用レジスタの内容を参照します。
- オープン割り込み:より高いレベルの割り込み要求に応答できるようにします。
- 割り込みサービスルーチンを実行する
- クローズ割り込み:シーンとマスクワードを復元するときに割り込みが発生しないようにします。
- シーンとシールドワードを復元する:シーンとシールドワードを元の状態に復元します。
- オープン割り込みと割り込みリターン:プログラムの実行を継続するために、元のプログラムのブレークポイントに戻るようにします。
トラップ
トラップは、ソフトウェアによって生成される割り込みであり、プログラムエラー(0エラーによる除算またはメモリへの無効なアクセス)またはユーザープログラムからの特別な要求(システム呼び出し)によって発生します。割り込み処理が完了すると、CPU制御が転送されてトラップが発生します。要求された手順。
割り込みとトラップの違い:
トラップはソフト割り込みと呼ばれます。(ハード)割り込みと比較して、ソフト割り込みはソフトウェアによって実装される割り込み、つまりプログラムの実行中に他のプログラムからの割り込みです。ハード割り込みはハードウェアの練習のための割り込みです。これは、プログラムの実行中のデバイスの中断です(ハード中断は外部イベントによって引き起こされるため、ランダムで突然です。ソフト中断の発生はランダムではありませんが、プログラムは調整されます)。
ストレージ構造
コンピュータプログラム(オペレーティングシステム、システムプログラム、ユーザープログラム)は、簡単に操作できるようにメモリ内にある必要があります。
メモリ:メモリは、プロセッサが直接アクセスできる唯一の大容量ストレージ領域です。通常、メモリワードの配列であるダイナミックランダムアクセスメモリ(DRAM)と呼ばれる半導体技術によって実装されます。 、各単語にはアドレスがあります。
コンピュータストレージデバイスレベル:
上の図では、上限が高いほど、処理速度が速くなり、容量が小さくなります。電子ディスク(electronic dist)は、揮発性または非揮発性にすることができます。上記の電子ディスクは揮発性であり、電子ディスクは非揮発性です。
I / O構造
最新のコンピュータシステムの動作モード:
直接メモリアクセス(DMA):デバイスコントローラは、CPUの介入なしに、ローカルバッファとメモリ間でデータのブロックを転送できます。
デバイスコントローラー:汎用コンピューターシステムは、CPUと複数のデバイスコントローラーで構成され、これらは共通のバスで接続されています。各デバイスコントローラーは、特定のタイプのデバイスを担当します。デバイスコントローラは、一定量のローカルバッファストレージと特定の目的のレジスタのセットを維持し、デバイスコントローラは、制御する外部デバイスとローカルバッファストレージ間のデータ転送を担当します。一般に、オペレーティングシステムが提供するデバイスドライバ各デバイスコントローラのために、これらのデバイスドライバは、デバイスとそのオペレーティングシステムの間で統一されたインタフェースを提供します。
3.コンピュータシステムアーキテクチャ
このパートは、コンピュータシステムアーキテクチャの別のコースとして学習することもできます。ここでは、後の学習で使用されるため、主に背景知識を確認するために提案します。簡単にまとめます。
シングルプロセッサシステム
ほとんどのシステムはシングルプロセッサを使用します
マルチプロセッサシステム(並列システム)
マルチプロセッシングシステムの利点:
- 増加スループット
- 規模の経済性:マルチプロセッサは、周辺機器、大容量ストレージ、および電源を共有できます。
- 信頼性の向上:単一のプロセッサに障害が発生しても、システム全体が停止することはありませんが、速度が低下するだけです。
マルチプロセッシングシステムの種類:
- **非対称マルチプロセッシング:**各プロセッサには固有のタスクがあり、メインプロセッサがシステムを制御し、他のプロセッサがメインプロセッサにタスクを要求するか、事前定義されたタスクを実行します。このスキームは、マスターとスレーブの関係と呼ばれます。
- 対称マルチプロセッシング:最も一般的なマルチプロセッサシステムは、すべてのプロセッサが同等であり、パフォーマンスに影響を与えることなく複数のプロセスを並列化できることを意味し、データが適切なプロセッサに到達するようにI / Oを制御する必要があります。
クラスターシステム
クラスターコンピューターはストレージを共有し、ローカルエリアネットワークまたはより高速な内部接続を介して接続します。
4、オペレーティングシステムの構造
オペレーティングシステムの歴史のこの部分
1.手動操作段階
プログラムのロード、実行、および出力はすべて手動作業に依存しています。
短所:
- 1人のユーザーがコレクション全体を独占し、リソースが他のユーザーによって占有されており、単一のリソースの使用率が低いため、待機現象は発生しません。
- CPUは手動操作を待機しており、CPUが十分に活用されていません。
2.バッチ処理段階
システムはジョブをバッチで処理し、1つのジョブが常にメモリに保持されます。
シングルバッチ処理システム
特徴:
- 自動化:テープ上のジョブのバッチは、手動の介入なしに1つずつ自動的に実行できます。
- 順序性:各ジョブの入力シーケンスと完了シーケンスはまったく同じです。
- シングルパス:メモリ内で実行されるプログラムは1つだけです。
短所:ホストメモリには毎回1つのジョブしか保存されず、動作中にI / O要求を発行するたびに、高速CPUが低速I / Oの完了を待機します。
マルチパスバッチ処理システム
マルチプログラミングテクノロジーにより、複数のプログラムを同時にメモリに入力し、CPUで交互に実行できます。これらのプログラムは、システム内のさまざまなソフトウェア/ハードウェアリソースを共有します。I / O要求によりプログラムが中断されると、CPUはすぐに別のプログラムの実行に切り替わります。
機能:マルチチャネル、マクロではパラレル、マイクロではシリアル。
利点:高いリソース使用率、高いシステムスループット、CPUおよびその他のリソースは「ビジー」のままです。
短所:人間とコンピューターの対話機能がなく、ユーザーは自分のプログラムの実行ステータスを理解できず、コンピューターを制御できません。
3.時分割オペレーティングシステム
**タイムシェアリングオペレーティングシステム:**プロセッサの実行時間は短いタイムスライスに分割され、プロセッサはタイムスライスに従って各オンライン操作に順番に割り当てられます。1つのタイムスライス内で操作を完了できない場合、ジョブは一時的に実行されます実行を停止し、プロセッサを他のジョブに渡し、次のタイムスライスを待ってから続行します。CPUの処理速度が非常に速いため、タイムスライスも非常に短く、各ユーザーは自分がコンピューターを所有しているように感じます。
特徴:
- 同時性:複数の端末ユーザーが同時にコンピューターを使用できるようにします。つまり、コンピューターが複数の端末に接続され、端末上のこれらのユーザーがコンピューターを同時にまたは同時に使用できるようにします。
- インタラクティブ性:時間共有システムにはインタラクティブな機能があります。ユーザーは、プログラムの操作を直接制御し、マンマシンダイアログを使用してユーザー端末を介してプログラムと対話できます。
- 独立性:システム内の複数のユーザーは、互いに干渉することなく、互いに独立して操作できます。
- 適時性:ユーザーの要求を短時間(複数のタイムスライスの時間)で取得できます。
短所:チケット予約システムやガイダンスシステムなど、一部のアプリケーションシナリオでは、タイムスライスレベル内の時間が十分に速くありません。
4.リアルタイムオペレーティングシステム
ハードリアルタイムシステム:フライトコントロールシステムなど、指定された時間枠内にアクションを完了する必要があります。
ソフトファクトシステム指定された時間枠内に特定のアクションを完了する必要があり、チケット予約システムなどの不定期の違反が永続的な損害を引き起こすことはありません。
5.ネットワークオペレーティングシステム
コンピュータネットワーク内のコンピュータを有機的に組み合わせて、各コンピュータを使用してコンピュータ間のデータの相互転送を実現する、統一された経済的かつ効果的な方法を提供します。
機能:ネットワーク内のさまざまなリソースの共有とコンピューター間の通信。
6.分散オペレーティングシステム
システム内の任意の2台のコンピューターは、通信を通じて情報を交換します。任意の2台のコンピューターは、同じステータスで通信できます。各コンピューターのリソースはすべてのユーザーによって共有されます。システム内の任意のコンピューターは、サブシステムを形成できます。再構成することができます。すべての作業を任意のコンピューターに分散し、並行して作業し、共同で完了することができます。
特徴:分散と並列処理。
ネットワークオペレーティングシステムとは異なります。分散オペレーティングシステム内の複数のコンピューターが連携して、同じタスクを完了します。
5、オペレーティングシステムの操作
デュアルシステム操作
カーネルモードや特権モードなど、ユーザーモードとシステムモードの間に
は多くのエイリアスがあります
システム操作例:システムが起動すると、ハードウェアはカーネルモードになり始めます。次に、オペレーティングシステムをロードし、ユーザーモードでユーザープロセスの実行を開始します。トラップまたは割り込みが発生すると、ハードウェアはユーザーモードからカーネルモードに切り替わります。したがって、オペレーティングシステムがコンピュータの制御を取得している限り、カーネルモードになります。システムは、ユーザープログラムに制御を戻すと、ユーザーモードに切り替わります。
モードビット: 1ビットは、現在ユーザーモードかシステムモードかを示すために使用されます。
特権命令:損傷を引き起こす可能性のある機械命令は特権命令です。ユーザーモードで特権命令を実行しようとすると、ハードウェアはその命令を実行しませんが、その命令を不正と見なし、トラップの形でオペレーティングシステムに通知します。
特権命令の例:システムモードからユーザーモードへの移行は特権命令です(命令はシステムモードでのみ実行できるため)。I/ O制御、タイマー管理、および割り込み管理も特権命令です。タイマー操作を変更する命令です。特権的な指導でもあります。
システム呼び出し:オペレーティングシステムカーネルは、システム呼び出しと呼ばれる一連のインターフェイスを介してプログラマーに提示される一連の所定の関数を提供します。システム呼び出しはアプリケーション要求をカーネルに渡し、システムは対応するカーネル関数を呼び出して必要なものを完了します。処理中、処理結果はアプリケーションに返されます。システム呼び出しはカーネルの一部です。
タイマー
オペレーティングシステムがCPUの制御を維持できることを確認する必要があります。また、ユーザープログラムが無限ループに陥ったり、システムサービスを呼び出さなかったり、オペレーティングシステムに制御を戻さなかったりするのを防ぐ必要があります。この目標を達成するために、タイマーを使用できます。
オペレーティングシステムは、ユーザーに制御を渡す前に、タイマーが割り込みを生成するように設定されていることを確認する必要があります。タイマーが割り込みを生成すると、制御は自動的にオペレーティングシステムに渡されます。
6.プロセス管理
プロセス:プログラムは、CPUによって実行されるまで何もしません。実行中のプログラムは、プロセスと呼ばれます(プログラム自体はプロセスではなく、プログラムはパッシブエンティティであり、プロセスはアクティブエンティティです)。プロセスは、タスクを完了するために特定のリソース(CPU時間、メモリ、ファイル、I / Oデバイス)を必要とします。
シングルスレッドプロセスの場合、次に実行される命令を決定するためのプログラムカウンターがあります。このようなプロセスの実行は継続的でなければなりません。CPUは、プロセスが終了するまで、プロセスの命令を1つずつ実行します。いつでも、プロセスに代わって1つの命令のみが実行されます。
プロセスはシステム作業の単位です。システムは複数のプロセスで構成されており、そのうちのいくつかはオペレーティングシステムプロセス(システムコードの実行)であり、残りはユーザープロセス(ユーザーコードの実行)です。これらのプロセスはすべて、同時に実行される可能性があります。
セブン、メモリ管理(メモリ管理)
メモリ:メモリは、現代のコンピュータシステム操作の中心です。メモリは、バイトまたはワードの大きな配列です。各ワードまたはバイトにはアドレスがあります。メモリは、CPUデバイスとI / Oデバイスの両方からすばやくアクセスできるデータウェアハウスです。通常、メモリは、CPUが直接アドレス指定してアクセスできる唯一の大容量ストレージです。CPUが命令を実行する必要がある場合、これらの命令はメモリ内にある必要があります。プログラムを実行する場合は、最初に絶対アドレスになり、メモリにロードする必要があります。
8.ストレージ管理
ファイルシステム管理
オペレーティングシステムによって管理されます
大量保管管理
オペレーティングシステムによって管理されます
キャッシュ
キャッシュ:情報は通常メモリに保存され、使用されると、より高速なストレージシステムのキャッシュに一時的にコピーされます。ただし、キャッシュとその上のレジスタはオペレーティングシステムによって制御されないため、簡単に説明します。
ナイン、保護とセキュリティ(保護とセキュリティ)
保護:保護は、コンピューターシステムリソースへのプロセスまたはユーザーアクセスを制御するためのメカニズムです。このメカニズムは、制御を課すための指定方法と実施方法を提供する必要があります。
セキュリティ:セキュリティの主なタスクは、システムが外部または内部から攻撃されるのを防ぐことです。ウイルス、ワーム、サービス拒否攻撃など。