WIL - thread system, synchronization


priority scheduler : https://velog.io/@bdbest72/pintOS-project1-threads-Priority-Inversion-donation

いわゆるthread system


https://poalim.tistory.com/26?category=758538

一番threadを説明できる絵でしょう
プロセスは、実行中のプログラムとみなされ、オペレーティングシステムにメモリ領域が割り当てられます.threadはプロセス内で実際に操作を実行する主体である.プロセスには1つ以上のスレッドが存在し、プロセスに割り当てられたメモリリソースを共有し、操作を実行します.
pintosプロジェクト1のthreadはuser threadではなくkernel threadです.
Kernel Threadの最大の特徴はスケジューリング可能なエンティティです.システムスケジューラはkernel threadを管理します.プログラマーはkernel threadを直接制御できません.

逆に、User thread
https://www.ibm.com/docs/en/aix/7.1?topic=processes-kernel-threads-user-threads

スレッドの進行状況



synchronization


割り込みはコンテキスト切替を継続的にトリガーし、スレッドは共有メモリ領域に順次アクセスします.メモリに格納されている値を変更しても同期または同期が保証されない場合、結果値は予想とはまったく異なる場合があります.
Thread A : 1111 계좌에서 5,000원 출금!
Thread B : 1111 계좌에 1,000원 입금!

이와 같은 상황에서, 만약 우연히 A와 B의 작업이 동시에 일어나면 어떻게 될까?

A : 현재 잔고 10,000원 - 5,000원 -> 잔고 5,000원 return
B : 현재 잔고 10,000원 + 1,000원 -> 잔고 11,000원 return

출처: https://renelemon.tistory.com/99?category=950734 [뱃푸와 레몬 티스토리]
コンテキスト切り替えとは?
CPUがマルチプロセス環境でプロセスを実行する場合、割り込み要求が次の優先度のプロセスを実行する必要がある場合、既存のプロセスのステータスまたはレジスタ値(Context)を記憶し、CPUが次のプロセスを実行するための新しいプロセスのステータスまたはレジスタ値(Context)を提供する代わりの操作をContext Switchと呼びます.
出典:https://jeong-pro.tistory.com/93[基本功を積むアマチュアコードブログ]