멀티코어 상에서의 소프트웨어 성능
멀티코어 구조의 잠재적인 성능 향상은 응용이 이용 가능한 병렬 자원을 효율적으로 이용할 수 있는 능력에 영향을 받는다.
멀티 코어 구조가 속도 향상에 도움이 되지만, 실행시간이 본래부터 순차적으로 동작하는(병렬화 할 수 없는) 코드의 영향을 받는다.
순차적으로 작동하는 코드가 10%일 때, 속도 향상은 순차적으로 작동하는 코드가 0%일 때에 비해서 절반 정도가 된다. (8 -> 4.7)
또한 소프트웨어는 일반적으로 멀티프로세서들 간의 통신 및 작업 분배와 캐시 일관성 유지를 위한 추가 작업의 결과로 오버헤드를 발생시킨다.
이러한 문제 해결하기 위해서 노력해왔고, 현재는 효과적으로 멀티코어 시스템을 이용할 수 있는 응용들이 많이 있다.
- 멀티쓰레드화된 네이티브 응용 : 소수의 고도로 쓰레드화 된 프로세스를 갖는 특징을 갖는다.
- 멀티프로세스 응용: 다수의 단일 쓰레드화된 프로세스들이 존재하는 특징을 갖는다.
- 자바 응용: 근본적인 방식으로 쓰레딩을 포함.
- 멀티인스턴스 응용: 개별적인 응용이 많은 수의 쓰레드를 사용해서 속도를 향상시키지 못할지라도 다수의 응용 인스턴스를 멀티코어 구조상에서 병렬적으로 실행함으로써 속도 향상 가능
'CS 스터디 > 운영체제' 카테고리의 다른 글
[스케쥴링] 2. 선점 스케쥴링 알고리즘 (0) | 2023.07.29 |
---|---|
[스케쥴링] 1. 스케쥴링 (0) | 2023.07.28 |
[쓰레드] 2. 쓰레드의 유형 /사용자 수준 쓰레드와 커널 수준 쓰레드 (0) | 2023.07.19 |
[쓰레드] 1. 프로세스와 쓰레드 (0) | 2023.07.19 |
3. 프로세스의 이해 (0) | 2023.07.16 |