[OS] 프로세스, 스레드

프로세스

멀티 프로세스

하나의 프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하도록 하는 것

하나의 운영체제 안에서 여러 프로세스가 실행되는 것

스레드

멀티 스레드

하나의 응용프로그램을 여러 스레드로 구성하여 각 스레드가 각각 하나의 작업을 처리하는 것

세마포어, 뮤텍스

여러 프로세스나 스레드가 공유 자원에 접근하는 것을 제어하기 위한 방법.

뮤텍스

하나의 스레드, 프로세스에 의해 소유될 수 있는 Key 기반으로 한 상호배제기법

뮤텍스는 임계영역에 들어갈 때 lock을 걸어 다른 프로세스와 스레드가 접근하지 못하도록 하고 임계영역에서 나와 해당 lock을 해제 한다.

lock을 건 스레드만이 lock 해제 가능

세마포어

현재 공유자원에 접근할 수 있는 스레드, 프로세스 수를 나타내는 값을 사용하는 상호배제기법

세마포어는 접근할 수 있는 최대 허용치만큼 스레드와 프로세스가 접근할 수 있다.

  • semWait : 세마포어의 값을 감소. 값이 음수가 되면 semWait을 호출한 대상은 블로킹 됨.

  • semSignal : 세마포어의 값을 증가. 값이 양수가 아니면 semWait에 의해 블로킹된 대상을 깨움.

락을 걸지 않은 스레드도 락을 해제 가능