You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
유저 모드에서는 init process 가 부모 프로세스이고 커널 모드에서는 kthreadd (커널 스레드 데몬) 가 부모 프로세스가 된다. swapper 는 여기 참고
Thread
쓰레드는 운영체제 레벨에서 커널 쓰레드와 유저 레벨 쓰레드로 나누어진다. 유저 레벨 쓰레드는 커널 쓰레드 하나가 여러개의 쓰레드를 실행시킨다고 볼 수 있다. (하나의 프로세스가 여러 쓰레드를 관리하는 것 처럼)
유저 레벨 쓰레드는 말 처럼 유저 라이브러리에 의해 생성되는 것이기 때문에 시스템 콜과 같은 것이 없다.
커널 쓰레드는 말 그대로 커널 레벨 단위이며 운영체제가 관리하는 쓰레드로 시스템 콜이 일어난다. (유저 모드 -> 커널 모드시 시스템 콜 사용)
lock
세마포어 semaphore
세마포어의 종류는 3가지이다.
카운팅 세마포어
이진 세마포어 (카운팅이 1인 세마포어라고 생각하면 된다.)
뮤텍스
세마포어와 뮤텍스의 차이
세마포어와 뮤텍스의 차이점은 순서 보장권과 소유권의 유뮤에 있다. 가장 중요한 점은 세마포어는 상호 배제의 메커니즘을 동기화로 가능하게 하고, 뮤텍스는 상호 배제로서 독점적인 자원에만 초점을 맞춘 메커니즘이다. (흔히들 뮤텍스를 퍼밋이 하나 뿐인 세마포어/이진 세마포어라고 표현하기도 한다.)
순서 보장
세마포어는 한정된 자원을 순서대로 서비스하는 동기화에 목적이 있고, 뮤텍스는 공유 자원의 독점적 사용을 목적으로 한다. 따라서 뮤텍스는 순서가 중요하지 않는다.
소유권
두번 째로는 소유권의 개념은 뮤텍스에는 있고 세마포어에는 없다.
뮤텍스는 잠금을 건 쓰레드가 소유권을 가지고 있으며, 이 쓰레드에서 풀어주지 않으면 다른 쓰레드는 unlock 할 수 없다.
그러나 세마포어는 자원을 획득한 프로세스가 쓰레드가 반납하기 전에 다른 프로세스나 쓰레드가 반납을 할 수 있다. (다만 대기열의 순서 보장권만 있을 뿐이다.)
예를 들어 은행에서 창구가 5개라고 했을 때 100번째 손님이 5번 창구에 있는데 1번 창구가 비어지게 된다면, 101번째 손님은 100번째 손님이 끝나기를 기다리지 않고 1번 창구로 갈 수 있다.
이러한 점 때문에 뮤텍스가 세마포어보다 가볍다. (대기열이 필요가 없으므로) 그래서 뮤텍스가 더 많이 쓰이긴 한다. 다만, (트랜잭션 같이 순서대로 일어나야 하는 경우) 세마포어로 가능한 동기화 작업은 뮤텍스를 대신할 수 없다.
The text was updated successfully, but these errors were encountered:
리눅스 공부
pid
swapper
init
kthreadd
유저 모드에서는
init process
가 부모 프로세스이고 커널 모드에서는kthreadd (커널 스레드 데몬)
가 부모 프로세스가 된다.swapper
는 여기 참고Thread
쓰레드는 운영체제 레벨에서 커널 쓰레드와 유저 레벨 쓰레드로 나누어진다. 유저 레벨 쓰레드는 커널 쓰레드 하나가 여러개의 쓰레드를 실행시킨다고 볼 수 있다. (하나의 프로세스가 여러 쓰레드를 관리하는 것 처럼)
lock
세마포어 semaphore
세마포어의 종류는 3가지이다.
세마포어와 뮤텍스의 차이
세마포어와 뮤텍스의 차이점은 순서 보장권과 소유권의 유뮤에 있다. 가장 중요한 점은 세마포어는 상호 배제의 메커니즘을 동기화로 가능하게 하고, 뮤텍스는 상호 배제로서 독점적인 자원에만 초점을 맞춘 메커니즘이다. (흔히들 뮤텍스를 퍼밋이 하나 뿐인 세마포어/이진 세마포어라고 표현하기도 한다.)
순서 보장
세마포어는 한정된 자원을 순서대로 서비스하는 동기화에 목적이 있고, 뮤텍스는 공유 자원의 독점적 사용을 목적으로 한다. 따라서 뮤텍스는 순서가 중요하지 않는다.
소유권
두번 째로는 소유권의 개념은 뮤텍스에는 있고 세마포어에는 없다.
뮤텍스는 잠금을 건 쓰레드가 소유권을 가지고 있으며, 이 쓰레드에서 풀어주지 않으면 다른 쓰레드는 unlock 할 수 없다.
그러나 세마포어는 자원을 획득한 프로세스가 쓰레드가 반납하기 전에 다른 프로세스나 쓰레드가 반납을 할 수 있다. (다만 대기열의 순서 보장권만 있을 뿐이다.)
이러한 점 때문에 뮤텍스가 세마포어보다 가볍다. (대기열이 필요가 없으므로) 그래서 뮤텍스가 더 많이 쓰이긴 한다. 다만, (트랜잭션 같이 순서대로 일어나야 하는 경우) 세마포어로 가능한 동기화 작업은 뮤텍스를 대신할 수 없다.
The text was updated successfully, but these errors were encountered: