プロセスとスレッド


>文章、写真の出所があります.詳細はリンクを参照してください.

プロセス構造

-----------
|  Stack  |  ->  호출된 함수, 지역변수 등 임시 데이터
-----------
|  Heap   |  ->  동적으로 생긴 데이터. 예) new Object(), Kyu()
-----------
|  Data   |  ->  전역변수. 예) static 변수, global 변수
-----------
|  Code   |  ->  프로그램의 코드
-----------

プロセスステータス



2つのプロセスP 0とP 1があるとする.P 0は運転状態、P 1はレディ状態である.この状態で割り込みやシステム呼び出しが発生した場合、P 0は運転状態ではなくReady状態に変換される.将来回復するP 0のために、対応するプロセス情報をPCBに記憶する.P 1は、以前保存していたPCBから状態を回復し、動作を継続する.P 1は、ある時点になってもレディ状態に復帰してPCBに保存され、P 0はPCBから復帰して動作を継続する.
これらの操作は、Context Switchingと呼ばれる繰り返しです.Context Switchもメモリ内でI/Oの操作を行うため、実行するプロセスの数が多いか、Context Switchが頻繁に発生するとOverheadとなり、パフォーマンスが低下します.
🖼그림&📄글 출처 링크

PCB (Process Control Block)


プロセス制御ブロック(ProcessControl Block、略称PCB)は、オペレーティングシステムコアのデータ構造であり、特定のプロセスを管理する必要がある情報を含む.プロセス状態にあるイメージのプロセスとPCBの関係を見てみましょう.

멀티 스레드


通常、マルチスレッドを使用する理由は、ユーザーとインタラクティブなアプリケーションで、ネットワークやデータベースなどの長いタスクを単一のスレッドで実行すると、これらのタスクを処理するときにユーザーと対話できない可能性があるためです.
📄記事のソース

멀티 프로세스 VS 멀티 스레드


応答時間の短縮と処理コストの削減
プロセス間のContextの切り替えが遅く、スレッド間のContextの切り替えが速いのは、Contextの切り替え時にスレッドがスタック領域を処理するだけであるためです.
マルチスレッド安定性の問題
複数のスレッドが同じデータ空間を共有しながら変更されるのは、必然的な問題です.複数のプロセスのプログラムに問題が発生した場合は、プロセスを中断または停止して再起動するだけです.ただし、マルチスレッドプログラムでは、1つのスレッドが使用するデータ空間を破壊すると、そのデータ空間を共有するすべてのスレッドが破壊される可能性があります.
緊急事態:臨界領域(臨界領域)または共有変数領域とは、2つ以上のスレッドが同時にアクセスできない共有リソース(データ構造またはデバイス)にアクセスするコードの一部です.
📄記事のソース

자바 스레드란?

  • は通常のスレッドとほとんど変わらず、JVMはオペレーティングシステムの役割を果たしています.
  • Javaにはプロセスは存在せず、スレッドのみであり、JavaスレッドはJVMによってスケジューリングされた実行ユニットコードブロックである.
  • Javaでは、スレッドスケジューリングはJVMによって完全に完了する
  • 以下のトピックに関する多くの情報もJVMによって管理されています:
  • スレッドはいくつありますか?
  • スレッドが実行するプログラムコードのメモリ位置はどこですか
  • スレッドの状態は何ですか?
  • スレッドの優先度は?
    📄記事のソース
  • 해결하고 싶은 질문


  • プロセスのライフサイクルは、死んだと言われています->メモリに死体があります.このように理解すればいいですか?링크
  • プロセスステータスの例を参照してください.正しい例か確認してください.リンク
  • new:
  • に近づきました
  • ready:ズーム待ちメモリで
  • を実行
  • running:名前の通り、スケールを実行しています.
  • で終了:拡大/縮小
  • を閉じる
  • waiting : 🤔readyと混同
  • マルチスレッドプロパティの「マルチプロセッサ構造では、各スレッドは異なるプロセッサ上で並列に実行できます.」どういう意味ですか.パラレル実行とは何ですか?これは、同じプロセスで他の操作を実行できることを意味しますか?링크