一連の記事
第2章プロセスの説明と制御
第2章プロセスのスケジューリング
第1章概要
1.1目的と機能
1.1.1
オペレーティング・システム:
- アプリケーションを制御するプログラム
- アプリケーションとハードウェア間のインターフェース
3つの目標:
- 利便性:ユーザーの使用
- 効果的:システムリソースを使用する
- 拡張:新しいシステム機能の開発、テスト、導入
コンピュータのハードウェアの上にあるソフトウェアの最初の層は、アプリケーションソフトウェアとシステムソフトウェアの基盤です。
サービス:
1. 程序开发:提供编辑器、调试器等应用程序开发工具
2. 程序运行:程序的加载、空间分配等工作
3. I/O访问:隐藏I/O细节,统一I/O接口
4. 文件访问:隐藏物理介质细节,保护访问
5. 系统访问:控制对共享系统的访问,避免资源冲突
6. 错误检测和响应:检测、响应错误并清除错误条件
7. 记账:记录资源利用率和性能
上記の7つの項目は、オペレーティングシステムの最初の目標です。利便性
1.1.2リソースマネージャーとしてのOS
コンピューターは、OSによって管理されるリソースのグループです。
OSは、プロセッサによって実行されるプログラムまたはプログラムのグループである通常のソフトウェアと同じ機能を持っています
OSはしばしば制御を解放します(完全なスケジューリング)。この時点で、CPUはOSプログラムの実行を停止し、より有用なタスク(シングルコア)を実行するようにシフトし、OSは制御を再開します。
リソースマネージャーとして
- メモリの割り当てと管理(ページング、セグメンテーション)
- I / Oアクセス(相互排除など)
- アクセス制御とファイルリソースの使用
- プロセッサーの割り当て
OSの一部はメモリ内にあります:カーネルプログラムと
他の部分は外部メモリ内にあります:I / Oアクセスの制御
1.1.3簡単なスケーラビリティ
ハードウェアのアップグレード(ページングにはハードウェアのサポートが必要など)、エラーの修正、新しいサービスなどに適応します。
そのため、モジュラー設計が採用されています。モジュール機能の追加と変更が簡単です。
1.2OSの履歴
1.2.1シリアル処理(処理メカニズム)
このようなオペレーティングシステムはなく、ユーザーはコンピューターに順番にアクセスします。
問題:マシン時間をスケジュールするためのハードコピー(ノートブックを使用)が無駄になります。プログラムを実行する前のコンパイル、ロード、およびリンクにも多くの時間がかかります。
1.2.2単純なバッチ処理
最初のオペレーティングシステムは、1950年代半ばに誕生したバッチ処理システムでした。
監視プログラム(初期のオペレーティングシステム):一度にプログラムのバッチを処理します(プレイリスト、一度に1つの曲のグループ、ただし1つずつ)
プログラムが処理された後、監視プログラムに戻り、監視プログラムは自動的に次のプログラムをロードします。
監視プログラム機能:
- 作業の自動更新
- メモリ保護:監視プログラムが配置されているメモリ領域を保護します
- タイマー:ジョブがシステムを独占するのを防ぎます
- 特権命令:監視システムでのみ実行できる命令
- 割り込み
動作モードを導入したのはメモリ保護と特権命令の出現であり、モードが異なればアクセス権も異なります。
単純なバッチ処理のデメリット:I / Oがプロセッサに対して遅すぎるため、プロセッサがアイドル状態になることがよくあります。
1.2.3マルチパスバッチ処理
ジョブがI / Oを待機しているときは、最初に別のジョブを実行できます。実行
するジョブはメモリに保存する必要があるため、メモリ管理が必要です。
マルチプログラム設計により、システム機器の使用率を向上させることができます。
- 複数のジョブをメモリに保存する
- 複数のジョブを同時に実行できます
- ジョブスケジューラ
ハードウェアサポート:I / O割り込みとDMAをサポートするハードウェア
マルチチャネルバッチ処理機能:マルチチャネル、スケジューリング、無秩序、インタラクティブ機能なし
並行性と並列性:並行性とは、一定期間内に複数のプログラムが同時に実行されているが、それでも次々に実行されている可能性があることを意味します。複数のコアの場合に同時に実行すると、並列になります。並行性には並列処理が含まれます。
1.2.4タイムシェアリングシステム(プロセッサ時間の共有)
人間とコンピュータの相互作用を実現するために、ホストは複数の端末で共有されます
タイムシェアリングシステム:
- マルチプログラム設計
- 複数のユーザーがプロセッサを共有します
- 複数のユーザーが異なる端末を介して同時にシステムにアクセスし、各ユーザーはOSによって制御され、短時間(人間の応答時間よりも速い)で交互に実行されます。
タイムシェアリングシステムの特徴:汎用性、独立性、適時性、双方向性
システム | マルチパスバッチ処理 | タイムシェアリングシステム |
---|---|---|
目的 | CPUを最大限に活用する | 人間とコンピューターの相互作用 |
指導元 | 操作 | ユーザー |
最初のタイムシェアリングシステム:CTSSは
1つの文を実行します:
- 書き込みが既存のものよりも大きい:既存のものが書き出される
- 書き込みは小さく、書き込み用のスペースを解放しますが、その一部は残ります
タイムスライシングテクノロジ:システムクロックは常に割り込みを生成し、OSは割り込み時に制御を復元し、プロセッサは新しいユーザーに割り当てられますが、現在のユーザーはプリエンプションされます
リアルタイムシステム
システムは、時間内に外部要求に応答し、指定された時間内にイベントの処理を開始または完了し、すべてのリアルタイムタスクの調整された操作を制御できます。
リアルタイムシステムアプリケーション:航空軍事、産業用制御
リアルタイムシステムの特性:決定論、応答性、ユーザー制御、信頼性、障害弱体化能力
1.3 OSの主な成果(4つの重要な理論的発展)
1.3.1プロセス
スクリプトがプログラムの場合、パフォーマンスはプロセスです
処理する
- 実行中のプログラム
- コンピューター上で実行されているプログラムのインスタンス
- プロセッサに割り当てて実行できるエンティティ
- 単一の順次スレッド、現在の状態、および関連するリソースのセットによって表されるアクティビティの単位
プロセスの3つの主要なコンポーネント:
- 実行可能プログラム
- プログラムに必要な関連データ
- プログラムの実行コンテキスト(プロセス状態)
プロセスコンテキストには、プロセスのステータスと、プロセスを管理および制御するためにOSが必要とするデータが含まれます。
1.3.2メモリ管理
ファイルは名前付きオブジェクトであり、基本単位です
ファイルシステム:長期ファイルストレージ用
仮想ストレージ:論理的にストレージにアクセス
- スワップインとスワップアウト:ジョブの一部はメモリに常駐し、ページが欠落している場合はスワップインとスワップアウトが配置されます
ページング:プロセスは同じサイズのブロックに分割されます-ページ
- 仮想アドレス:ページ番号とページ内のオフセットで構成され、物理アドレスのマッピングに使用されます
1.3.3情報の保護とセキュリティ
4種類の典型的なセキュリティ問題
1.3.4スケジューリングとリソース管理
スケジューリング戦略:公平、効果的、差別化(プロセスの長さを区別する)
1.4最新のOS機能(強調)
-
マイクロカーネル
- カーネルにいくつかの基本的な機能を割り当てます:アドレス空間、通信、基本的なスケジューリング
- C / Sアーキテクチャに基づいて、「サーバー」と呼ばれるサービスプログラムをカスタマイズできます。
- システム構造はより柔軟です
- 利点:実装を簡素化し、柔軟性を提供し、分散環境に適しています
-
シングルコア
- ビッグカーネルはプロセスとして実装され、アドレス空間を共有します
- OSが提供する機能のほとんどはカーネルが提供します
-
マルチスレッド
- アプリケーションを実行するプロセスを、同時に実行できる複数のスレッドに分割します(スレッドは作業単位です)
- プロセス:1つ以上のスレッドと関連リソースのコレクション
- スケジューリングユニット:スレッド
- リソースユニット:データ
-
対称型マルチプロセッシング(SMP、マルチプロセッサ)
- 複数のスレッドとプロセスを並行して実行できます
- ユーザーに透過的な複数のプロセッサを備えたOSは、複数のプロセスの同期を担当します
- マルチプログラム設計よりも優れています:複数のCPUを使用して同じプロセスを実行できます/複数の異なるプロセスを一度に実行でき、複数の異なるプロセスを同時に実行できます
- CPUを減らすことでパフォーマンスを下げることができ、パフォーマンスを向上させることができます
- 利点:
- 可用性:単一のプロセッサーに障害が発生しても、マシンは停止しません
- 徐々に増加:CPUを追加するとパフォーマンスが徐々に向上します
- スケーラビリティ:メーカーはパフォーマンスに基づいて価格を設定します
- マルチスレッドとの違い:マルチスレッドはシングルプロセッサコンピューターでも引き続き役立ちますが、SMPは非スレッドプロセスでも同様に効果的です。これら2つの方法は互いに補完し合っています。
-
分散OS
- 给用户错觉:用户只有自己一个(其实是多个) - 分布式尚落后于单核和SMP
-
オブジェクト指向テクノロジー
- OS基于对象的结构有利于程序员定制 - 可给内核增加模块化的拓展而不破坏完整性 - 让分布式更容易实现(基于对象,引用更方便)
1.5フォールトトレランス(フォールトトレランス率)
系统或部件发生错误时仍可继续运行的能力
フォールトトレランスを改善する方法:
- 进程隔离
- 并发控制(进程通信、协作)
- 虚拟机(应用隔离)
- 检测点和回滚机制
1.6マルチプロセッサおよびマルチコアOSの設計に関する考慮事項
マルチプログラム設計+ SMP
キー:スレッドとプロセスの同時実行性、スケジューリング、同期、メモリ管理、信頼性、フォールトトレランス
3つのレベルの並列機能:
1. 指令级并行
2. 程序并行
3. 应用程序并行
仮想マシン
为一个进程分配一个或多个核,让这些cpu专门为该进程服务