내 잡다한 노트
챕터2 병렬 처리 본문
운영체제에서 명령어를 처리할 때 하나씩만 하면 효율이 떨어지므로 여러개를 동시에 처리함으로써 빠르게 데이터를
처리할 수 있는 방식.
여러개의 명령을 동시에 처리하는 병렬 처리는 코어가 여러개인 cpu는 물론이고 코어가 하나인 CPU에서도 가능하다.
한 주방에서 여러 개의 볶음밥을 동시에 조리하는 것을 CPU의 사양에 비유하면 하나의 코어에
여러 개의 스레드를 이용하는 방식과 같다. 이러한 방식을 파이프라인 기법이라고 부른다.
스레드는 CPU가 처리할 수 있는 작업의 단위이다.
여러 개의 스레드를 동시에 처리하는 방법을 멀티스레드라고 한다.
병렬처리 시 주의 사항
A작업에 B를 먼저 해야한다면 B가 끝날때까지 A는 할 수 없기 때문.
상호 의존성이 없어야 병렬처리가 가능하다.
시간을 거의 일정하게 맞추어야 한다. 효과가 떨어지기 때문.
CPU에서 명령어가 처리되는 과정
CPU 내에서 명령어는 제어장치가 처리한다. 제어장치는 명령어를 가져와 해석하고 실행하고 결과를 저장하는 과정을 반복한다. 이 과정 자체를 하나의 스레드라고 하고, 스레드를 이루는 각 단계는 CPU의 클록과 연동되어
한 클록에 한 번씩 이루어지게 된다.
1. 명령어 패치 : 명령어를 명령어 레지스터에 저장한다.
2. 명령어 해석 : 명령어를 해석한다.
3. 실행 : 해석한 결과를 토대로 실행
4. 쓰기 : 결과를 메모리에 저장.
파이프 라인 기법
CPU의 사용을 극대화하기 위해 명령을 겹쳐서 실행하는 방법이다. 하나의 코어에 여러개의 스레드를 실행하는 것이다.
명령어 처리의 단계마다 독립적으로 구성하여 각 단계가 쉬지 않고 명령어를 처리할 수 있게 한다.
그런데 여러가지 위험요소가 있다.
1. 데이터 위험
데이터가 의존성을 가질 때 생긴다. 데이터 A를 필요로 하는 두 번째 명령어는 앞의 A를 사용하는 명령어가 끝날때까지동시에 실행되면 안된다.
2. 제어 위험
프로그램 카운터 값을 갑자기 변화시켜 발생하는 위험이다. 분기같은 명령어에서 생김.
3. 구조 위험
서로 다른 명령어가 같은 자원에 접근하려 할 때 발생하는 문제이다.
슈퍼스칼라 기법
여러개의 CPU를 사용해 여러개의 스레드를 실행하는 것이다. 파이프라인 기법과 대부분은 비슷하다.
이 또한 파이프라인 주의사항과 똑같이 주의해야 한다.
'운영체제' 카테고리의 다른 글
챕터3 프로세스 제어 블록과 문맥교환 (0) | 2022.07.24 |
---|---|
챕터3 프로세스의 개요 (0) | 2022.07.24 |
챕터2 컴퓨터 성능 향상 기술 (0) | 2022.07.08 |
챕터2 CPU와 메모리 (0) | 2022.07.06 |
챕터2 컴퓨터의 구조와 성능 향상 - 컴퓨터의 기본 구성 (0) | 2022.07.04 |