운영체제
[운영체제] 4. 스레드 관리 - (4) 멀티코어와 멀티스레딩
NoDapKeepGoing
2025. 4. 17. 15:55
✔️ 멀티 코어 구조의 성능 향상은 SW가 병렬 자원을 효율적으로 이용할 수 있는 능력에 영향을 받음
✔️ SW 병렬 화방법
1️⃣ 태스크 병렬화
2️⃣ 데이터 병렬화
📍1. 태스크 병렬화
1-1. 응용 SW는 기능의 집합
✔️ 순차적 기능(태스크) 수행
✔️ 병렬적 기능(태스크) 수행
1-2. 암달의 법칙(Amdahl’s Law)
✔️ 응용프로그램의 코드 일부가 병렬화될 때 전체 응용프로그램에서 어느 정도의 속도 향상이 기대될 수 있는지를 나타냄
☑️ 단일 코어상에서 응용프로그램을 수행한 시간/ N 개의 코어상에서 응용프로그램을 수행한 시간
e.g.) SW 태스크 병렬화의 속도 향상 예
✔️ 코어 수가 6개인 PC에서 작업
✔️ 코어 하나에서 영상처리프로그램이 애니메이션 한 장면을 처리하는 데 10시간 걸림
✔️ 응용프로그램의 태스크 병렬 화비 중이 95%로 개선되었다면
➡️ 약 2시간에 처리할 수 있음
✔️ 멀티 코어 개수와 병렬화에 따른 성능 향상
📍2. 데이터 병렬화
✔️ 한 응용프로그램의 다수 인스턴스가 데이터를 나누어 처리함
2-1. 구스타프슨의 법칙
✔️ 대용량 데이터는 효과적으로 병렬화 처리가 가능하다는 법칙
✔️ 대규모의 반복적인 작업을 한대의 시스템에서 처리할 수 있는 양만큼 나눈 후 시스템 수를 늘려 나누어 처리하면 속도 향상은 처리기 개수의 스케일에 비례함
2-2. 코어 개수에 따른 속도 향상