쓰레드 (Thread)
쓰레드는 Thread Id, 프로그래밍 카운터, 레지스터 집합, 스택으로 구성됨
→프로그래밍 카운터란 : 중웅처리장치내부에 있는 레지스터중 하나, 다음에 실행될 명령어의 주소를 가지고있어 명령어 포인터라고도함 .
쓰레드는 같은 프로세스에 속한 다른 쓰레드와 코드, 데이터, 그리고 파일이나 신호와 같은 운영체제 자원들을 공유한다.
단일 쓰레드 : 하나의 쓰레드 즉, 레지스터와 스택으로 표현
다중 쓰레드 : 각각의 쓰레드와 고유의 레지스터 , 스택으로 표현
다중 쓰레드의 장점 4가지
- 응답성(Responsiveness) :
- 자원 공유(Resource sharing) : 자동적으로 그들이 속한 프로세스의 자원들과 메모리를 공유
- 경제성(Economy) : 프로세스 생성을 위해 메모리와 자원을 할당 하는 것은 비용이 많이 든다. 쓰레드는 자신이 속한 프로세스의 자원들을 공유하기 때문에, 쓰레드를 생성하고 문맥교환(Context Switching)하는 것이 더 경제적.
- 다중 처리기 구조의 활용 (Scalability) : 다중 쓰레드의 이점은 다중 처리기 구조에서 더욱 증가할수있다. 다중 처리기 구조에서는 각각의 쓰레드가 다른처리기에서 병렬로 수행될 수 있기 때문.
사용자 쓰레드 : 커널 위에서 지원되며 사용자 수준의 쓸데ㅡ 라이브러리에서 구현 , 커널 지원없이 쓰레드의 생성과 스케줄링 관리 지원
커널 쓰레두 : 쓰레드의 생성과 스케줄링 관리가 커널에 의해서 커널 공간에 행해진다.
'ProgramLanguage' 카테고리의 다른 글
인텔리제이 java compile 오류 해결하기 (2) | 2019.06.07 |
---|