オペレーティング システム 1 - オペレーティング システムの概要

この一連のブログは、深セン大学のオペレーティング システムコースの核心的な内容と参考文献「コンピュータ オペレーティング システム」を整理することに重点を置いています (質問がある場合は、コメント エリアで議論および指摘するか、私に直接連絡してください)プライベートメッセージ)。


概要

このブログでは、主にオペレーティング システムの第 1 章で、オペレーティング システムの概要に関する関連知識を紹介します。

目次

1. オペレーティングシステムの概要

2. オペレーティングシステムの目的と機能

3. オペレーティングシステムの開発の歴史

第 4 に、オペレーティング システムの基本的な特性

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

六、オペレーティングシステムの構造設計

7. いくつかの例


1. オペレーティングシステムの概要

オペレーティング システムは、アプリケーションの最終的な特定の問題を直接解決するわけではなく、ソース プログラムをコンパイルする責任もありません。

オペレーティング システムは、「ハードウェア関連でアプリケーションに依存しない」すべての作業を完了し、利便性、効率性、セキュリティを提供します。

  • 意味

オペレーティング システムは、コンピュータ システムのハードウェアとソフトウェア リソースを効果的に制御および管理し、コンピュータのワークフローを合理的に編成し、ユーザーを容易にする一連のプログラムです。

2. オペレーティングシステムの目的と機能

現在、OSにはたくさんの種類があり、OSの種類が異なれば対象も異なります。通常、コンピューターのハードウェア上で構成される OS には次の目的があります。          

1. 利便性          

2. 有効性          

3. スケーラビリティ        

4. オープン性 

オペレーティング システムの役割については、視点が異なれば見解も異なります。

1. コンピュータシステム構成の観点から - オペレーティングシステムはシステムソフトウェアです 

コンピュータシステム構成:      

  • ソフトウェア:アプリケーションソフトウェア、システムソフトウェア(オペレーティングシステム、言語処理システム、共通ルーチンサービスプログラム)
  • ハードウェア: 入出力 (I/O) デバイス、メモリ (メモリ)、中央処理装置 (CPU)    

2. リソース管理プログラムの観点から見ると、オペレーティング システムはシステム リソース (プロセッサ、メモリ、I/O デバイス、情報 (データとプログラム))の管理者です。

3. ソフトウェア階層化とマシン拡張の観点から - オペレーティング システムは、ベアメタルを拡張するためのシステム ソフトウェア (仮想マシン) の最初の層です。

4. ユーザーにサービスを提供するという観点から見ると、オペレーティング システムはユーザーとベア メタル間のインターフェイスです。

オペレーティング システム開発の主な推進要因は次のとおりです。

1. コンピュータリソースの利用率の継続的な向上 2. ユーザーの利便性 3. デバイスの継続的な更新 4. コンピュータアーキテクチャの継続的な開発 

3. オペレーティングシステムの開発の歴史

オペレーティングシステムの開発の歴史は主に次のとおりです。 1. マニュアル操作モード 2. オフライン I/O モード (単一チャネルのバッチ処理 -> 複数チャネルのバッチ処理 -> タイムシェアリング システム -> リアルタイム システム)

シングルチャネルバッチ処理は、メモリ内に 1 つのジョブのみを処理します。マルチチャネルバッチ処理は、リソース使用率とシステムのスループットを向上させるために使用されます。ユーザーのニーズを満たすために、タイムシェアリングシステム (マルチユーザー、マルチタスク) が使用されます。主な要件は、(1) 人間とコンピュータの相互作用、(2) 共有ホスト、(3) ユーザーの簡単なアクセスです。その中で、最も重要な問題は、ユーザーが自分のジョブと対話できるようにする方法です

タイムシェアリング システムの重要な指標は応答時間です。これは、ユーザーが端末コマンドを発行してからシステムが応答を開始するまでの時間間隔です。タイムシェアリングシステムのユーザー数をn、各ユーザーの実行タイムスライスをqとすると、システムの応答時間はT=n×qとなります。各ユーザーに割り当てられるタイムスライス q は 2 つの部分から構成され、スワップ時間 S と実際の処理時間 T (処理) に使用されます。

T = n × q

q = S + T (処理)

タイムシェアリング システムにおけるタイム スライス q の選択は、複雑かつ重要な作業です。

  • 選択したタイム スライスが大きすぎると、応答時間が変わらないままユーザー数が減少したり、応答時間が長すぎたりします。
  • タイム スライスが小さすぎると、タイム スライス内の切り替えのオーバーヘッドが相対的に増加し、プロセスが完了するまでに比較的多くのタイム スライスが必要になり、システム内のプロセスのターンアラウンド タイムが大幅に増加します。
  • 最適なタイム スライス値により、タイム シェアリング ユーザーが良好な応答時間を得ることができるだけでなく、タイム スライス内でのスイッチング オーバーヘッドが比較的小さく無視できる程度になります。

一般に、タイムシェアリング システムの特徴は次のとおりです。

  • 対話性: ユーザーはシステムと人間とコンピューターの対話を行います。
  • 多重化: 複数のユーザーがそれぞれの端末で同じ CPU を同時に使用します。
  • 独立性: ユーザーは、互いに干渉したり混乱したりすることなく、互いに独立して操作できます。
  • 適時性: ユーザーはシステムから短時間でタイムリーな回答を得ることができます。

リアルタイム システムの場合、いわゆる「リアルタイム」は「適時」を意味し、リアルタイム システム (Real-Time System) とは、システムが外部イベントの要求に適時に応答できることを意味します。 (または即座に) 指定された時間内にイベントへの応答を完了し、すべてのリアルタイム タスクが同時に実行されるように制御します。

リアルタイム タスクの場合、期限は通常、次のものと関連付けられます。

① 開始期限 - タスクは特定の時間前に実行する必要があります。

② 完了期限—タスクは一定の時間までに完了しなければなりません。

期限に従ってタスクを分割します。

(1) ハードリアルタイムタスク。システムはタスクの期限要件を満たしている必要があります。満たさない場合、予期しない結果が発生する可能性があります。

(2) ソフトリアルタイムタスク。期限も関連付けられていますが、厳密なものではなく、タスクの期限がたまに守られない場合でも、システムへの影響はそれほど大きくありません。

第 4 に、オペレーティング システムの基本的な特性

1. 同時実行性:

同時実行とは、同じ時間間隔内に 2 つ以上のイベントが発生することです。

ヒント: 並列処理とは、2 つ以上のイベントが同時に発生することを意味します。

ユニプロセッサシステムでは、一度に実行できるプログラムは 1 つだけであるため、微視的にはこれらのプログラムを時分割で交互に実行することしかできません。複数の CPU システムを並行して実行可能

2. 共有:

オペレーティング システム環境では、いわゆる共有とは、メモリ内で同時に実行される複数のプロセス (スレッド) によってシステム内のリソースを共有できることを意味します。一般に、(1) 相互排他的共有 (プリンタ、テープ ドライブ)、(2) 同時アクセス (ディスク) があります。

3. 仮想:

オペレーティング システムにおけるいわゆる「仮想」とは、特定のテクノロジを通じて物理エンティティを複数の論理対応物 (仮想 CPU、仮想メモリ、仮想ペリフェラルなど) に変換することを指します。

たとえば、仮想プロセッサはマルチプログラミング テクノロジを使用して、複数のプログラムを同時に実行してプロセッサをタイムシェアリングで使用できるようにしますプロセッサーは 1 つしかありませんが、同時に複数のユーザーにサービスを提供できるため、各エンド ユーザーは自分専用の CPU があると考えるようになります。つまり、1 つの物理 CPU を複数の論理 CPU に仮想化します。

4. 非同期:

マルチプログラミング環境では、複数のプロセスを同時に実行できますが、プロセスが必要なリソースを取得した後でのみ実行できます。リソースの制限やその他の要因により、プロセスの実行は通常「一度にすべて」ではなく、「ストップ アンド ゴー」方式で実行されます。プロセスは非同期の性質により、予測できない速度で進行します。

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

1.プロセッサ管理機能:

  • プロセス制御: プロセスの作成、リソースの割り当てと管理、状態遷移、取り消し
  • プロセスの同期: 複数のプロセスを規則正しく実行します (相互排他および同期メカニズムを通じて)。
  • プロセス通信:複数のプロセス間で情報を交換する(直接通信または間接通信)
  • プロセスのスケジューリング: キューから実行プロセスを選択する方法

2.メモリ管理機能:

  • メモリ割り当て: 静的および動的メモリ割り当て (領域が決定されているか、不変かどうか)
  • メモリ保護: 各ユーザー プログラムが相互に干渉せずに独自のメモリ空間でのみ実行されるようにします。
  • アドレス マッピング: アドレス空間の論理アドレスをメモリ空間の対応する物理アドレスに変換します。
  • メモリ拡張: 仮想ストレージ技術を利用して、メモリ容量を論理的に拡張し、ユーザーがメモリ容量が実際のメモリ容量よりもはるかに大きいと感じるようにしたり、より多くのユーザー プログラムを同時に実行できるようにしたりできます (コールイン、交換の要求) )

3.デバイス管理機能:

  • バッファ管理: デバイスと CPU 間の競合を緩和するためにバッファ (シングルまたはダブル) を設定します。
  • 機器の割り当て: ユーザープロセスの I/O 要求、システムの既存のリソース状況、および特定の機器割り当て戦略に従って、それに必要な機器を割り当てます。
  • デバイス処理: CPU とデバイス コントローラー間の通信を実装するために使用されます。

4. ファイル管理機能:

  • ファイルストレージスペース管理: ファイルシステムは、各ファイルに必要な外部メモリスペースを割り当て、外部メモリの使用率を向上させ、ファイルシステムの動作速度の向上に役立ちます。
  • ディレクトリ管理: ファイルごとにディレクトリ エントリを作成し、多くのディレクトリ エントリを効果的に整理して、名前による便利なアクセスを実現します。
  • ファイルの読み取り/書き込みの管理と保護: 名前が示すとおり

5. ユーザーインターフェース:

  • コマンド インターフェイス: (1) オンライン ユーザー インターフェイス: ユーザーはさまざまなコマンドを連続して入力することでジョブを制御できます。 (2) オフライン ユーザー インターフェイス: ユーザーの代わりにシステムにジョブの制御と介入を任せます。
  • プログラム インターフェイス: ユーザー プログラムがオペレーティング システム サービスを取得する唯一の方法。主にシステム コールを使用します。
  • グラフィカル インターフェイス: マウスを使用するか、メニューやダイアログ ボックスを使用して、アプリケーションやファイルの操作を完了します。

六、オペレーティングシステムの構造設計

1. ソフトウェアの意味        

ソフトウェアとは、コンピュータを動作させる際に必要な機能や性能を実現するための命令やプログラムの集まり、情報のデータ構造を正しく処理できるもの、動作に使用する文書などを指します。ハードウェアが物理的なコンポーネントである場合、ソフトウェアはハードウェアとはまったく異なる特性を持つ論理的なコンポーネントです。

2. ソフトウェアエンジニアリングの意味        

ソフトウェア エンジニアリングとは、ソフトウェアの開発、運用、保守に体系的で標準化された定量化可能な方法を使用することを指します。言い換えれば、ソフトウェアの開発と保守にエンジニアリングの概念、原理、技術、および方法を使用します。その目的は、ソフトウェア開発において、ランダムなプログラミング、保証されていないソフトウェアの品質、困難なメンテナンスなどの問題があります。

オペレーティングシステムの構造としては、従来のOSは主に1世代から3世代(ソフトウェアの複雑さを制御するために、OSの開発時に分解、モジュール化、抽象化、隠蔽などの手法が導入されてきました)であり、マイクロカーネルの OS 構造は、現代の OS 構造と呼ばれています

1. 非構造化オペレーティング システム:

OS は多数のプロセスの集合体であり、各プロセスは相互に呼び出し可能であり、オペレーティング システム内に構造はありません。

2. モジュラー OS 構造:

「分解」と「モジュール化」の原則に基づいて、大規模なソフトウェアの複雑さを制御します。OSをより明確な構造にするために、OSは多くのプロセスから直接構成されるのではなく、機能に応じて一定の独立性とサイズを持ついくつかのモジュールに分割されます。 

  • 短所: まず、OSの設計を始める際、モジュールの分割やインターフェースの規定が正確ではなく、誤差が生じる可能性があるため、規定に従って設計したモジュールが完全に正しいことを保証するのが難しい。これらのモジュールを OS に組み込む際に困難が生じること、第二に、モジュールを機能的に分割する場合、共有リソースと排他リソースの区別がつかなくなること、管理の違いにより、モジュール間に複雑な依存関係が存在し、OS の構造が不明確になります。

3. 層構造法:

モジュール間の不規則な呼び出しを順序付けられた呼び出しに変更します。これは、OS のすべての機能モジュールを、関数フロー図の呼び出し順序に従っていくつかの層に配置します。層間のモジュールは、一方向の呼び出し関係のみにすることができます。上位レベルのモジュールが隣接する下位レベルのモジュールを呼び出すことのみを許可します。 

4.マイクロカーネルテクノロジーOS:

いわゆるマイクロカーネル テクノロジとは、最新の OS のコア機能を実現できる、慎重に設計された小さなカーネルを指します。一般的なOS(プログラム)とは異なり、より小さく洗練されており、コア状態で動作するだけでなく、起動後もメモリ内に留まり、メモリ不足によりメモリからスワップアウトされることはありません。

マイクロカーネルによって提供される機能は、通常、プロセス管理、メモリ管理、プロセス間通信、低レベル I/O 機能などの最も基本的な機能の一部です。 

7. いくつかの例

1 を選択します。タイムシェアリング オペレーティング システムを設計する場合、最初に考慮することは ﹎﹎A﹎﹎です。リアルタイム オペレーティング システムを設計する場合、最初に考慮することは ﹎﹎B﹎﹎です。バッチ システムを設計する場合、最初に考慮する必要があります。 、最初に考慮すべきことは、﹎﹎C﹎﹎です。

A、B、C: (1) 柔軟性と適応性、(2) 対話性と応答時間、(3) ターンアラウンド タイムとシステム スループット、(4) リアルタイムと信頼性。

A:(2)B:(4)C:(3)

オプション 2. コンピュータのプロセッサと外部デバイスの使用率を向上させるために、複数のプログラムを同時にメイン メモリに配置し、巨視的に並列実行します。設計方法は、複数のユーザーが対話的に実行する ﹎﹎B﹎﹎ です。端末装置上でプログラムの入力、デバッグ、および制御を行うのは ﹎﹎C﹎﹎; 複数のコンピュータで構成されるシステムであり、これらのコンピュータ間で通信して情報を交換することができ、相互に区別はなく、システム リソースを共有します。上記のコンピュータシステムを管理するオペレーティングシステムには﹎﹎D﹎﹎という種類があり、システム内のコンピュータの全部または一部でプログラムが実行される システムの応答時間の重要性は、システムの利用率を超えますシステムリソースは、衛星制御、ミサイル発射、航空機飛行制御、航空機予約ビジネスなどの分野で広く使用されています。A--E: ① タイムシェアリング OS ② リアルタイム OS ③ バッチ処理システム ④ ネットワーク OS ⑤ 分散 OS ⑥ シングルユーザー OS ⑦ マルチプログラミング ⑧ マルチプログラミング ⑨ 同時プログラミング

A:  B:⑦ C:① D:④ E:②

まず、マルチプログラミングは、CPU 使用率を向上させ、さまざまなコンピューターコンポーネントの並列処理を最大限に活用するように設計されており、空白 A と空白 B に 8 を埋めるという主要な問題が同時に実行されるため、マクロ的なプログラミングとは異なります。マルチプロセッサを使用してプログラムの並列実行を実現する場合は 7 を選択し、C はタイムシェアリング オペレーティング システムの対話性を主に反映する場合は 1 を選択し、D は主に分散 OS とネットワーク OS を検討します。これら 2 つのオペレーティング システムの主な機能 違いは、コンピュータにプライマリとセカンダリがあるかどうかです。4 を選択します。E はリアルタイム オペレーティング システムの適時性を反映するため、2 を選択します。

おすすめ

転載: blog.csdn.net/weixin_51426083/article/details/131498612