[OS] 멀티코어 프로그래밍 (Multicore Programming), 병렬 실행(Parallelism)
·
Computer Science/Operating System
멀티코어 or 멀티프로세서에서의 극복해야 할 도전과제 5개 태스크 인식 (Identifying Tasks) 병렬 처리가 가능한 태스크로 나눌 수 있는 영역을 찾는 작업 필요 균형 (Balanace) 전체 작업에 균등한 기여도록 가지도록 태스크를 나눠야 함 데이터 분리 (Data Splitting) 처리하는 데이터들이 분리된 개별 코어에서 수행해도록 나눠야 함 데이터 종속성 (Data Dependency) 데이터 의존성을 조정하기 위한 태스크 실행 동기화 필요 시험 및 디버깅 (Testing & debugging) 병렬로 실행되기 때문에, 단일 스레드 응용보다 Testing 및 Debugging이 어려움 병렬 실행(Parallelism)의 유형 데이터 병렬 실행 (Data Parallelism) 데이터(D..
[OS] 스레드(Thread)란?
·
Computer Science/Operating System
스레드 개발 동기 DB 서버의 요구 처리 과거 서버는 클라이언트 요구가 도착할 때마다, 새로운 프로세스를 생성 - fork() 단점 프로세스 생성에 대한 오버헤드 (생성 비용 비쌈) 프로세스간 통신 비용 큼(메시지 패싱, 공유 메모리) 네트워크와 같은 자원 공유가 어려움 프로세스를 처리기에 전달하고, 결과를 다시 수집하는 오버헤드 전통적인 PCB(Process Control Block) 구성 스레드 (Threads) CPU 이용의 기본단위 경량 프로세스 (LWP: Light Weight Process) 애플리케이션 내에서 실행 커널은 일반적으로 다중 스레드(Multi Thread) 프로세스 생성은 무겁고, 스레드 생성은 가벼움 구성 고유한 스레드 ID, 프로그램 카운터, 레지스터 집합, 스택 등 같은 프..
HaSeon9
'병렬 실행' 태그의 글 목록