Linux プロセス (ノイマン型アーキテクチャ、オペレーティング システム、プロセス)


1. フォン・ノイマン・アーキテクチャ:

1. 基本概念:

私たちの一般的なコンピューター機器のほとんどは、フォン ノイマン アーキテクチャに従っています。
画像の説明を追加してください

  • ストレージ: メモリ 入力デバイス: ディスク、ネットワーク カード、キーボード、マイク、カメラ...
  • 出力デバイス: ディスク、ネットワーク カード、モニター、オーディオ...
  • 中央处理器:CPU
  • 演算子: 算術演算、論理演算
  • コントローラ: CPU は外部イベントに応答し、メモリへのデータのコピーなどの外部準備イベントを調整します。

2. なぜこのように設計されているのか:

2.1. 走行速度の最適化:

CPU&&Register> Memory> Disk> Optical Disc> Tape
樽の原理によれば、バケツにどれだけの水が入るかは、その最も短い駒板によって決まります。
ここに画像の説明を挿入します
CPU とディスクが直接対話できるようにすると、両者の実行速度が違いすぎます。
メモリを追加すると、メモリと CPU の間にギャップが生じます。 、メモリおよび周辺機器の実行速度は桁違いに低下し、ソフトウェアの最適化によりデータを事前にメモリにロードできるため、実行速度が大幅に向上します。

2.2. コスト:

すべてのディスクをメモリに置き換えれば、作業効率は大幅に向上しますが、コストが非常に高くなるのは間違いなく、ディスクなどの磁気デバイスは電源を切ってもデータを保存できますが、これはメモリでは不可能です。ノイマン型アーキテクチャ この設計により、効率を向上させながらコストも削減されます。

3. 概要:

  1. CPU がデータ (データ + コード) を読み取るときは、それをメモリから読み取り、処理後にメモリに書き込みます。
  2. データを処理するには、まず CPU が周辺機器からデータをメモリにロードする必要があり、CPU はメモリのみを処理します。

2. オペレーティング システム:

1. 基本概念:

オペレーティング システムは、ソフトウェアとハ​​ードウェアのリソースを管理するソフトウェアです。

  • カーネル(プロセス管理、メモリ管理、ファイル管理、ドライバ管理)
  • その他のプログラム(関数ライブラリ、シェルプログラムなど)

ここに画像の説明を挿入します

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 プロセスに関する内容であり、このブログを読んでいただいた方の参考になれば幸いです。

おすすめ

転載: blog.csdn.net/weixin_61661271/article/details/127154386