티스토리 뷰

http://developerandwoodworker.com/뮤텍스-세마포어-멀티쓰레드/



운영체제가 바라보는 일의 단위 프로세스


프로세스가 바라보는 일의 단위 쓰레드




쓰레드: 경량화된 프로세스, 속도(생산+처리)가 빠르다. 메모리에서 데이터와 힙 부분을 공유한다. 스택 부분은 각 각의 쓰레드에서 독립적으로 존재. 디버깅이 불리하다.


프로세스: 스택, 데이터, 힙이 독립적으로 구성되어있다. 그러다보니 쓰레드보다 속도(생산+처리)가 느리다. 디버깅은 유리하다.




뮤텍스: 뮤텍스는 값이 1인 세마포어로 0인 경우 해당 resource에 접근이 불가능하고 1인경우 접근이 가능하도록 하여, 다중 프로그래밍 환경에서 resource를 보호한다.


세마포어: 세마포어는 뮤텍스의 확장개념으로 보면되는데, 접근 가능한 자원을 1개 이상으로 설정할 수 있다. 예를 들어 4라면 4개의 쓰레드가 접근할 수 있을 것 이다.



CPU는 하나의 연산밖에 하지 못한다. 그래서 예를 들어 아래와 같은 코드를 작성하면


int x = 10;

int y = 20;


y += x;


x=10, y=20이 메모리에 들어가고 덧셈을 위해 y=20이 임시메모리에 저장되고 x변수 10을 연산한다.



'컴퓨터 과학' 카테고리의 다른 글

Oauth에 대해서 정리  (0) 2018.01.18
교착상태(DeadLock)  (0) 2017.12.15
메모리 구성(데이터, 스택, 힙)  (0) 2017.12.15
댓글
공지사항
최근에 올라온 글
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함