記事ディレクトリ
1. フォン・ノイマン・アーキテクチャ:
1. 基本概念:
私たちの一般的なコンピューター機器のほとんどは、フォン ノイマン アーキテクチャに従っています。
- ストレージ: メモリ 入力デバイス: ディスク、ネットワーク カード、キーボード、マイク、カメラ...
- 出力デバイス: ディスク、ネットワーク カード、モニター、オーディオ...
- 中央处理器:CPU
- 演算子: 算術演算、論理演算
- コントローラ: CPU は外部イベントに応答し、メモリへのデータのコピーなどの外部準備イベントを調整します。
2. なぜこのように設計されているのか:
2.1. 走行速度の最適化:
CPU&&Register> Memory> Disk> Optical Disc> Tape
樽の原理によれば、バケツにどれだけの水が入るかは、その最も短い駒板によって決まります。
CPU とディスクが直接対話できるようにすると、両者の実行速度が違いすぎます。
メモリを追加すると、メモリと CPU の間にギャップが生じます。 、メモリおよび周辺機器の実行速度は桁違いに低下し、ソフトウェアの最適化によりデータを事前にメモリにロードできるため、実行速度が大幅に向上します。
2.2. コスト:
すべてのディスクをメモリに置き換えれば、作業効率は大幅に向上しますが、コストが非常に高くなるのは間違いなく、ディスクなどの磁気デバイスは電源を切ってもデータを保存できますが、これはメモリでは不可能です。ノイマン型アーキテクチャ この設計により、効率を向上させながらコストも削減されます。
3. 概要:
- CPU がデータ (データ + コード) を読み取るときは、それをメモリから読み取り、処理後にメモリに書き込みます。
- データを処理するには、まず CPU が周辺機器からデータをメモリにロードする必要があり、CPU はメモリのみを処理します。
2. オペレーティング システム:
1. 基本概念:
オペレーティング システムは、ソフトウェアとハードウェアのリソースを管理するソフトウェアです。
- カーネル(プロセス管理、メモリ管理、ファイル管理、ドライバ管理)
- その他のプログラム(関数ライブラリ、シェルプログラムなど)
2. オペレーティング システムの役割:
- 右:ユーザーの利用コストを削減し、ユーザーに良好な利用環境を提供します。
- 次へ: ハードウェアと対話する - > ソフトウェアとハードウェア リソースを管理する。システムの安定した環境を確保します。
3. マネジメントとは:
コンピュータ ソフトウェアおよびハードウェア アーキテクチャ全体において、オペレーティング システムは純粋な「管理」ソフトウェアとして位置付けられています。オペレーティング システムはどのように管理されますか?
現実の生活では、管理者と管理対象者は必ずしも直接対話するわけではありません。
たとえば、校長はカウンセラーや校長を通じて生徒を管理します。
管理者は、執行者を通じて被管理者の情報を取得し、「まず記述し、次に整理する」ことで経営上の意思決定を行います。つまり、組織は一連のデータ構造を通じて記述されます。
例: 生徒の成績をランク付けするためのアルゴリズムを作成します:
オブジェクトは構造の配列に編成できます。このようにして、生徒の管理は追加、削除、配列のチェックと変更。
3. プロセス:
ソフトウェアを起動すると、実際にはプロセスが開始されます。
Linux では、./xxx が実行されると、実際にはシステム レベルでプロセスが作成されます。
1. 基本概念:
- 実行中のプログラムをプロセスと呼びます。
- Linux では、システム内に同時に多数のプロセスを含めることができます。
- Linux オペレーティング システムはこれらのプロセスを管理する必要がありますか?しなければならない!
- はこれらのプロセスをどのように管理しますか? 答えは、まず説明してから整理するです。
2. プロセス管理:
人は自分の「属性」によってさまざまなことを理解します。
「最初に記述してから整理する」ことで、 プロセス = 対応するコードとデータ + プロセスに対応する PCB 構造 !
struct PCB
{
//进程所有的属性数据
struct PCB *next;
struct PCB *prev;
}
3.PCB - プロセスの説明:
- プロセス情報は、プロセス制御ブロックと呼ばれるデータ構造に配置されます。プロセス制御ブロックは、プロセス属性の集合として理解できます。
- 教科書では PCB (プロセス コントロール ブロック) と呼ばれていますが、Linux オペレーティング システムでの PCB は task_struct です。
task_ struct コンテンツ分類:
- 識別子: このプロセスを説明し、他のプロセスを区別するために使用される一意の識別子。
- ステータス: タスクのステータス、終了コード、終了信号など。
- 優先度: 他のプロセスとの相対的な優先度。
- プログラム カウンター: プログラム内で実行される次の命令のアドレス。
- メモリ ポインタ: プログラム コードおよびプロセス関連データへのポインタ、および他のプロセスと共有されるメモリ ブロックへのポインタを含む
- コンテキストデータ: プロセス実行時のプロセッサのレジスタ内のデータ[休職の例、CPU、レジスタの図を追加してください]。
- I/O ステータス情報: 表示される I/O リクエスト、プロセスに割り当てられた I/O デバイス、プロセスで使用されるファイルのリストが含まれます。
- 会計情報: 合計プロセッサ時間、使用されるクロックの合計数、制限時間、会計アカウントなどが含まれる場合があります。
- その他の情報
要約する
以上が、ノイマン型アーキテクチャ、オペレーティングシステム、プロセスの基本概念など、本日お話しした Linux プロセスに関する内容であり、このブログを読んでいただいた方の参考になれば幸いです。