プロセスとスレッド
>
文章、写真の出所があります.詳細はリンクを参照してください.プロセス構造
-----------
| 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つ以上のスレッドが同時にアクセスできない共有リソース(データ構造またはデバイス)にアクセスするコードの一部です.
📄記事のソース
자바 스레드란?
📄記事のソース
해결하고 싶은 질문
Reference
この問題について(プロセスとスレッド), 我々は、より多くの情報をここで見つけました https://velog.io/@kyukim/csテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol