dev-hamster
프로세스와 스레드 본문
프로세스와 스레드의 차이
| 의미 | 자원 | |
| 프로세스 | 실행중인 프로그램 | 운영체제에 자원을 할당 받음 |
| 스레드 | 프로세스 내에 실행되는 작업의 단위 | 스레드끼리 자원(힙, 정적데이터)를 공유함 |

프로세스
IPC - 프로세스간 통신
프로세스간 통신할 수 있는 공간을 만들어야 함
스레드
락 - 동기화 이슈
스레드간 서로의 영향을 피해야 함
락을 통해 자원을 접근하는 매커니즘을 제공함
데드락 - 스레드의 교착상태
스레드 끼리 자원을 공유해서 자원 할당 비용이 적고 문맥 교환 비용도 적음 그러나
자원을 공유하는 상황에서, 서로 상대방의 자원을 사용하기 위해 무한정 대기에 빠짐
발생 조건: 4가지 조건 모두 만족시 데드락이 발생
- 상호배제: 한 프로세스가 독점적으로 사용
- 점유 대기: 자원을 점유한 상태에서 다른 자원을 요청
- 비선점: 할당받은 자원은 강제로 뺴앗을 수 없음
- 순환 대기: 각 프로세스가 서로 순환적으로 다른 프로세스가 가진 자원을 요구
데드락을 해소하기 위해 네가지 중 하나를 해소해야 합니다.
해결방법
1. 예방: 4가지 조건을 하나라도 하지말자
2. 회피: 은행원 알고리즘이 있다
3. 발견: 교착상태 허용, 자원할당 그래프로 데드락을 감지
4. 회복: 데드락이 없어질때까지 프로세스 종료
'로그' 카테고리의 다른 글
| 동기비동기블로킹논블로킹 (0) | 2023.06.06 |
|---|---|
| 인터럽트 (0) | 2023.05.16 |
| TCP는 어떻게 신뢰성을 보장할까 (0) | 2023.04.18 |
| 얕은 복사와 깊은 복사 with 자바스크립트 (0) | 2023.04.17 |
| 브라우저의 History API (0) | 2023.04.11 |