본문 바로가기

쓰레드

20장 windows에서의 쓰레드 동기화 모드 종류 설명 유저모드 응용 프로그램이 실행되는 기본모드로, 물리적인 영역으로의 접근이 허용 되지 않으며, 접근할 수 있는 메모리의 영역에도 제한이 따른다 커널모드 운영체제가 실행될 때의 모드로, 메모리뿐만 아니라, 하드웨어의 접근에도 제한이 따르지 않음(리소스, 커널오브젝트에 관련된 모든 일) 유저모드 및 커널모드에서 오브젝트 생성 및 리소스와의 연결 동기화와 쓰레드에 관한 함수 사용 순서 WaitForSignalObject함수 리소스에 따른 상태 동기화 모드 종류 설명 유저모드 속도가 빠름(커널모드로의 전환이 없음), 기능이 제한적, 하나의 프로세스 안의 쓰레드 간의 동기화 가능 기법 : CRITICAL_SECTION 커널모드 속도가 느림, 제공되는 기능이 많음, 서로 다른 프로세서간의 동기화 가능.. 더보기
18장 멀티쓰레드 기반의 서버구현 하나의 cpu에서 함수를 동시에 실행한다는 것은 context switch이 자주 빠르게 일어난다는 의미 예) 쓰레드1 처리 도중-> 쓰레드1의 내용 저장 -> 쓰레드2를 처리 -> 쓰레드2를 처리를 완료하고 쓰레드1의 내용을 복원 -> 쓰레드1 처리완료 쓰레드 구조 쓰레드는 데이터 영역, 힙 영역, 코드 영역은 공유 하지만 스택영역은 각자 독립적으로 사용 코드영역: 프로그램의 실제 코드가 저장되어 있는 영역 스택영역 : 로컬변수, 함수에 호출에 관련된 정보, 임시데이터가 저장되는 영역 힙영역 : 동적 메모리 할당에 사용되는 영역 데이터영역 : 전역변수등의 데이터가 저장되는 영역 -D_REENTRANT(= 헤더파일 선언 이전에 매크로 _REENTRANT를 정의) 임계영역에서 동시호출시 문제가 발생할 수 .. 더보기