[05.10/week09]YIL

CHO WanGi·2025년 5월 10일

KRAFTON JUNGLE 8th

목록 보기
50/89

어제 하루 요약

뭐부터...해야하니?

✏️ 오늘의 한 일

  • Busy Waiting
  • global tick vs local_tick

🌈오늘의 성장!

Busy Waiting(바쁜대기)

  • OS에서 원하는 자원을 얻기 위해 권한을 얻을때까지 계속 확인
    => 기다리는 것이 아니고, CPU 자원을 낭비하는 쓰레드 동기화 방식
    CPU가 계속해서 쓸데없이 무한 루프를 돌면서 확인

  • 해결첵

  1. MUTEX & Semaphore
  2. Monitor
  • MUTEX(Mutual Exclusion)
    공유 자원의 데이터, 혹은 임계영역 같은 곳의 스레드들의 running time이 겹치지 않게 하나의 프로세스 혹은 스레드 접근 방지
mutex = 1;

void lock () {
	while (mutex != 1) {
    	/* mutex 값이 1이 될 때까지 기다린다.*/
    }
    /* 이 구역에 도착했다는 것은 mutex 값이 1이라는 것이다.
       따라서 이제 뮤텍스 값을 0으로 만들어 다른 프로세스(혹은 쓰레드)가 접근하지 못하도록 막아야한다.
    */
    mutex = 0;
}

void unlock() {
	/* 임계 구역에서 나온 프로세스는 다른 프로세스가 접근할 수 있도록 락을 해제한다.*/
	mutex = 1;
}
  • Semaphore
    리소스의 상태를 나타내는 간단한 카운터
acquire(S) {
     while S <=0; // 아무것도 하지 않음 (반복문)
     S--;
 }

 release(S) { 
     S++;
 }

⛏ 오늘의 삽질

VSC 자동 업데이트로 Docker Container 또 안열린게... 삽질
VSC 버전 자동 업뎃을 5주간 끄자...

profile
제 Velog에 오신 모든 분들이 작더라도 인사이트를 얻어가셨으면 좋겠습니다 :)

0개의 댓글