운영체제_스레드_멀티코어와 멀티스레딩

미뇽·2024년 4월 11일
0

운영체제(강의)

목록 보기
13/43
post-thumbnail

멀티코어와 멀티스레딩

멀티코어 상에서의 소프트웨어 성능

Amdahl의 법칙

속도향상=단일  처리기  상에서  프로그램을  실행한  시간N개의  병렬처리기  상에서  프로그램을  실행한  시간=1(1f)+fN속도향상= \frac{단일\;처리기\;상에서\;프로그램을\;실행한\;시간}{N개의\;병렬처리기\;상에서\;프로그램을\;실행한\;시간} = \frac{1}{(1-f) + \frac{f}{N}}
f=스케줄링  부하  없이  병렬로  처리  가능한  코드의  실행시간f = 스케줄링\;부하\;없이\;병렬로\;처리\;가능한\;코드의\;실행시간
(1f)=본래부터  순차적으로  동작하는  코드의  실행시간(1-f) = 본래부터\;순차적으로\;동작하는\;코드의\;실행시간
N=CPU  개수N = CPU\;개수

- 처리기의 개수가 많아질수록 속도가 향상된다 - 오버헤드 -> 멀티프로세서들 간의 통신 및 작업 분배와 캐시 일관성 유지를 위한 추가 작업의 결과로 발생 - 멀티프로세서를 사용하는 오버헤드에 대한 부담을 증가시켜 성능이 정점을 찍고 감소하기 시작 - 다수의 상대적으로 독립적인 트랙잭션의 병렬 처리를 하는 서버 -> 멀티코어 구조의 효과적 이용 => 효과적인 멀티코어 시스템을 위해 응용에서 순차적인 부분에 대한 영향 줄이기

효율적인 멀티코어의 혜택

  • 멀티스레드화된 네이티브 응용
    - 고도의 스레드화된 프로세스를 가짐
  • 멀티프로세스 응용
    - 단일 스레드화된 프로세스들이 존재
  • 자바 응용
    - 자바 언어 자체가 멀티스레드화된 응용 개발에 용이하여 멀티코어 기술의 혜택을 받음
  • 멀티인스턴스 응용
    - 다수의 응용 인스턴스를 멀티코어 구조상에서 병렬적 실행함으로써 속도의 향상
    - 격리(isolation)가 필요한 응용 인스턴스의 경우 가상 기술을 사용하여 각각의 인스턴스마다 독립되고 안전한 환경 제공
profile
문이과 통합형 인재(人災)

0개의 댓글