반응형


Mutex와 세마포어 (Semaphore)
· Critical Section(임계 구역)에 대한 접근을 막기 위해 Locking 메커니즘이 필요

- Mutex(binary semaphore)

  • 임계구역에 하나의 스레드만 들어갈 수 있음

- Semaphore

  • 임계구역에 여러 스레드가 들어갈 수 있음
  • counter를 두어서 동시에 리소스에 접근할 수 있는 허용 가능한 스레드 수를 제어


현업 팁

  • 각 언어, 프레임워크 별 동기화 라이브러리/함수 제공



교착상태(deadlock)
· 무한 대기 상태

  • 두 개 이상의 작업이 서로 상대방의 작업이 끝나기만을 기다리고 있기 때문에,
  • 다음 단계로 진행하지 못하는 상태
  • 배치 처리 시스템에서는 발생되지 않는 문제
  • 프로세스, 스레드 둘 다 이와 같은 상태가 발생 가능


현업, IT 기술과 컴퓨터공항의 이해
· 휴대폰에서 특정 앱이 실행 중 동작이 안될 때

  • 이유 중 하나가 데드락일 경우가 있음
  • 이를 디버깅하기 위해, 데드락이 무엇인지 이해가 필요함
  • 운영체제가 해당 앱이 특정 기간동안 반응이 없으면, 강제 종료시킴



기아상태 (Starvation)
· 특정 프로세스의 우선순위가 낮아서 원하는 자원을 지속적으로 할당받지 못하는 상태
· 교착상태와 기아상태

  • 교착상태는 여러 프로세스가 동일 자원 요청할 때 발생
  • 기아상태는 여러 프로세스가 부족한 자원을 점유하기 위해 경쟁할 때,
  • 특정 프로세스는 영원히 자원 할당이 되지 않는 경우를 주로 의미함


기아상태 해결 방안
· 우선순위 변경

  • 프로세스 우선순위를 수시로 변경해서, 각 프로세스가 높은 우선순위를 가질 기회 부여
  • 오래 기다린 프로세스의 우선순위를 높여주기
  • 우선순위가 아닌, 요청 순서대로 처리하는 FIFO 기반 요청큐 사용



반응형

+ Recent posts