Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
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
Tags
more
Archives
Today
Total
관리 메뉴

따..딱히 공부하려고 포스팅하는 건 아니니까..!

쓰레드 본문

시스템|서버|네트워크

쓰레드

보즈리 2016. 3. 21. 04:58

쓰레드에 대한 자세한 내용↓

http://egloos.zum.com/sweeper/v/2815395



1. 프로세스와 쓰레드의 정의


프로세스 : 실행중인 프로그램

쓰레드 : 프로세스의 가상 주소 공간에 존재하는 실행 흐름의 단위(함수)



2. 프로세스와 쓰레드의 특성


프로세스 : 완벽히 독립적인 메모리 영역(code, data, heap, stack)을 공유하지않음

쓰레드 : 쓰레드를 위한 스택을 생성할뿐, 다른 영역은 공유


-> 스택은 함수 호출시 전달되는 인자, 되돌아갈 주소값, 함수내 선언하는 변수 등을 저장하기 위한 메모리 공간이다. 그래서 스택이 독립적이라는 것은 독립적인 함수 호출이 가능하다는 것이고, 이는 독립적인 실행 흐름을 할 수 있다는 것이다.


-> 데이터, 힙영역을 공유하는 것은 전역변수, 동적할당 메모리공간을 공유할 수 있다는 것이고, 이를 통해 쓰레드간 통신을 할 수 있다. 그러나 동시에 메모리에 접근할 수도 있기 때문에 주의해야하는 부분이다.



3. 캐시 메모리와 쓰레드의 관계

캐시 메모리는 속도가 빠른 장치와 느린 장치사이의 속도차에 의한 병목현상을 줄이기 위한 범용 메모리이다.


쓰레드는 공유하는 요소덕분에 컨텍스트 스위칭에 걸리는 시간이 비교적 짧다. 이는 캐시메모리는 CPU에서 한번이상 읽어들인 메인 메모리의 데이터를 저장하는데, 쓰레드에서는 데이터를 공유하여 캐시 정보를 비울 필요가 없기 때문에 매 스위칭마다 캐시를 비워야하는 프로세스에 비해 빠른 것이다.



Comments