[MFC 비주얼프로그래밍-10] 멀티 쓰레딩
- 최초 등록일
- 2009.03.29
- 최종 저작일
- 2008.01
- 21페이지/ MS 파워포인트
- 가격 2,500원
소개글
MFC 의 기초부터 고급기능까지
체계적으로 정리 요약되어 있습니다.
발표자료로도 좋으며 개인 공부시에도 많은 도움이 됩니다.
목차
1. 멀티 쓰레딩
프로세스(Process)와 쓰레드(Thread)
멀티 쓰레드(Multi-Thread)
쓰레드 생성 및 구동
쓰레드 구동 및 종료
쓰레드 관리
쓰레드 스케줄링 (Scheduling)
멀티 쓰레드의 문제점
동기화 (Synchronization)
쓰레드의 동기화
본문내용
프로세스(Process)와 쓰레드(Thread)
프로세스는 실행중인 프로그램을 말함.
메모장(NotePad.exe)를 실행시키면 메모리에 적재되어 메모장 프로세스가 됨.
프로세스는 프로그램의 한 인스턴스라고 할 수 있음. 즉, 사용자가 두 개의 메모장 프로그램을 실행시키면, 이 둘은 같은 프로그램이지만 각각 다른 프로세스로 인식됨.
운영체제는 실행된 프로그램을 프로세스 단위로 관리함.
프로세스는 각각 4GB의 주소 공간과 파일, 메모리, 쓰레드 등의 객체들을 소유하며, 프로세스가 종료될 때 프로세스가 소유한 자원을 반환함.
프로세스는 실행중인 프로그램이지만 실제로 작업을 하는 주체는 아니며, 작업은 프로세스 내의 쓰레드가 담당함.
프로세스는 단지 메모리상에 존재하기만 하고, 프로세스 실행과 동시에 쓰레드를 만들고 쓰레드를 호출함으로써 쓰레드에게 모든 작업을 맡김.
프로세스는 최소 한 개 이상의 쓰레드를 가짐.
프로세스와 동시에 만들어지는 쓰레드를 주 쓰레드(Primary Thread)라 하고, 이외에 필요에 따라 여러 쓰레드를 만들어 사용할 수 있음.
하나의 프로세스가 여러 개의 쓰레드를 가질 때 멀티 쓰레드라고 함.
쓰레드를 사용함으로써 프로세스의 스케줄링 부담을 줄여서 효율성을 높일 수 있음.
*
멀티 쓰레딩
프로세스(Process)와 쓰레드(Thread)
윈도우즈에서 Ctrl+Del+Alt 키를 누르면 다음과 같은 프로세스 작업 관리자를 볼 수 있음.
작업관리자의 프로세스 탭을 보면 수십개의 프로세스가 있으며 시스템이 실행시키었는지, 사용자가 실행시켰는지와 각 프로세스에 할당된 메모리 상태를 볼 수 있음.
*
멀티 쓰레딩
멀티 쓰레드(Multi-Thread)
한 프로세스가 여러 개의 쓰레드를 갖는 것을 멀티 쓰레드라고 함.
예를 들어, 워드 프로세서(WINWord.exe)는 다음과 같이 여러 개의 쓰레드가 존재함.
문자열을 정렬하는 쓰레드
페이지를 계산하는 쓰레드
사용자로부터 입력을 받아들이는 쓰레드
즉, 세 가지 작업이 동시에 이루어 질 수 있음.
멀티 쓰레드는 운영체제 차원에서 CPU 시간을 잘게 쪼개어 각 쓰레드에 분배해 줌으로 안정적이고 효율적으로 처리할 수 있음.
쓰레드는 메시지 루프의 유무에 따라 두 종류로 나뉜다.
참고 자료
없음