Multi core : 코어가 여러개라는 것은 여러 스레드가 동시 수행 가능하다는 것이다
두가지 프로그래밍 방식이 있음
- Data parallelism
동일한 일을 수행하고 있지만 수행 대상 데이터가 다름
데이터를 여러 subset으로 나누고 각 코어에 다른 데이터 같은 일을 수행시킴
- Task parallelism
각 코어가 유니크한 연산을 수행. 데이터도 다를 수 있음
- concurrent : 동시성, 병행성
- parallelism : 병렬성
프로그래밍이 더 어려움
각 코어에 어떤 스레드를 할당할지, 코어간의 밸런스, 데이터를 효과적으로 분배,
특정 코어에서 산출한 데이터를 다른 코어에서 사용할 수도 있음, 테스트와 디버깅이 어려움,
소프트웨어 설계 측면에서 새로운 어프로치가 필요함
'CS > 오퍼레이팅 시스템' 카테고리의 다른 글
19. 멀티스레딩 모델 (0) | 2020.04.09 |
---|---|
17. 스레드 (0) | 2020.04.09 |
16. IPC 프로세스간 커뮤니케이션 : message passing (0) | 2020.04.09 |
15. IPC 프로세스간 커뮤니케이션 : shared memory, producer-consumer문제 (0) | 2020.04.09 |
14. 고아프로세스와 좀비프로세스 (0) | 2020.04.09 |