반응형
Mutex와 세마포어 (Semaphore)
· Critical Section(임계 구역)에 대한 접근을 막기 위해 Locking 메커니즘이 필요
- Mutex(binary semaphore)
- 임계구역에 하나의 스레드만 들어갈 수 있음
- Semaphore
- 임계구역에 여러 스레드가 들어갈 수 있음
- counter를 두어서 동시에 리소스에 접근할 수 있는 허용 가능한 스레드 수를 제어
현업 팁
- 각 언어, 프레임워크 별 동기화 라이브러리/함수 제공
교착상태(deadlock)
· 무한 대기 상태
- 두 개 이상의 작업이 서로 상대방의 작업이 끝나기만을 기다리고 있기 때문에,
- 다음 단계로 진행하지 못하는 상태
- 배치 처리 시스템에서는 발생되지 않는 문제
- 프로세스, 스레드 둘 다 이와 같은 상태가 발생 가능
현업, IT 기술과 컴퓨터공항의 이해
· 휴대폰에서 특정 앱이 실행 중 동작이 안될 때
- 이유 중 하나가 데드락일 경우가 있음
- 이를 디버깅하기 위해, 데드락이 무엇인지 이해가 필요함
- 운영체제가 해당 앱이 특정 기간동안 반응이 없으면, 강제 종료시킴
기아상태 (Starvation)
· 특정 프로세스의 우선순위가 낮아서 원하는 자원을 지속적으로 할당받지 못하는 상태
· 교착상태와 기아상태
- 교착상태는 여러 프로세스가 동일 자원 요청할 때 발생
- 기아상태는 여러 프로세스가 부족한 자원을 점유하기 위해 경쟁할 때,
- 특정 프로세스는 영원히 자원 할당이 되지 않는 경우를 주로 의미함
기아상태 해결 방안
· 우선순위 변경
- 프로세스 우선순위를 수시로 변경해서, 각 프로세스가 높은 우선순위를 가질 기회 부여
- 오래 기다린 프로세스의 우선순위를 높여주기
- 우선순위가 아닌, 요청 순서대로 처리하는 FIFO 기반 요청큐 사용
반응형
'cs > computer-science-basic' 카테고리의 다른 글
기술면접 - 10. 파일시스템 및 가상머신 부팅 (0) | 2022.03.25 |
---|---|
기술면접 - 9. 가상 메모리(Virtual Memory)와 페이징 시스템(paging system) (0) | 2022.03.23 |
기술면접 - 7. 스레드 (Thread)와 동기화 (Synchronization) (0) | 2022.03.23 |
기술면접 - 6. 컨텍스트 스위칭과 IPC (InterProcess Communication) (0) | 2022.03.23 |
기술면접 - 5. 스케쥴러와 프로세스 상태 (0) | 2022.03.23 |