2021. 3. 28. 01:38ㆍComputer(인강)/컴퓨터 구조
안녕하세요 bannavi입니다^ㅅ^
오늘은 드디어 컴퓨터 구조 시간의 마지막 시간입니다
바로 시작해보겠습니다
7.4 프로세서간 통신과 동기화
# 프로세서 간 통신
1. 멀티 프로세서 시스템에 있는 다양한 프로세서들은 공통의 입출력 채널을 통하여 서로 통신한다.
2. 공통 메모리(IOP에 연결된 자기 디스크 등)의 역할
- 공유 메모리 멀티프로세서 시스템에서 메모리의 일부를 모든 프로세서가 접근할 수 있도록 할당한 공간
- 기본적으로 우편함과 같이 프로세서들 사이에서 오가는 메시지의 집중지 역할을 한다
- 송신 프로세서 -> 요구, 메시지, 프로시저 저장(상태 비트 : 수신 프로세서 지정 및 의미 있는 정보의 유무를 공지)
<- 수신 프로세서('폴링'방식에 의해 주기적 점검)
- 보다 효율적인 방법은 인터럽트 신호를 통하여 송신 프로세서 -> 수신 프로세서
3. 멀티프로세서를 위한 운영체제의 종류
- 주종(master-slave)모드
* 주(master)프로세서(OS기능 수행) <- 종(slave)프로세스는 필요에 의한 인터럽트 요청
- 분리 운영체제(separate operating system)
* 모든 프로세서가 자신의 운영체제를 가지고 운영된다. 이는 느슨한 결합(loosely coupled)시스템에 적합한 형태라고 한다.
- 분산 운영체제(distributed operating system)
* 부동 운영체제(OS의 특정 기능은 한 순간에 하나의 프로세서에서만 작동된다), 즉 운영체제가 여러 프로세서에 분산되어 있는 형태
# 프로세서 간 동기화
1. 멀티프로세서의 명령어 집합에는 함께 동작하는 프로세서와의 통신과 동기화를 구현하는 기본 명령어가 포함된다.
2. 동기화의 필요성
- 처리될 작업들간 정확한 순서를 유지
- 공용의 기록가능한 변수에 대한 상호배제(mutual exclusive)적 접근 보장
3. 멀티프로세서 시스템에서 자원의 동기화를 위해 가장 많이 활용되는 기법은 하드웨어적 접근 방법인 이진 세마포(semaphore)를 이용하는 방법이다.
# Cache관련 정책
* Cache의 일관성(cache coherence)
- 공유 메모리 멀티프로세서 시스템에서도 각 프로세서는 로컬 메모리(일부 or 전부 cache)를 운영한다.
- 이상의 경우 여러개의 동일한 내용이 주기억장치나 각 로컬 메모리에 복사본으로 중복되어 저장되는 경우가 발생할 수 있고 정확한 메모리 동작을 위해 이 내용들이 모두 동일하게 유지 되어야 한다는 정책
* 메모리에 쓰기 동작 시 메모리 갱신 정책
- write-through 정책
* 쓰기 동작의 발생 시 cache와 주 기억 장치 모두를 갱신
- write-back 정책
* Cache만 갱신하고 다음에 메모리로 전달할 수 있도록 위치를 표시
# cache의 비 일관성에 대한 조건
1. cache의 일관성 문제는 각 프로세스별로 개별적인 cache를 가진 멀티프로세서에서 공통의 기록가능한 데이터가 필요하기 때문에 발생
2. Cache의 일관성에 대한 Example
# cache의 일관성 문제에 대한 해결책
1. 각 프로세서에 개별적인 cache를 허용하지 않고 주기억장치에 공용 cache메모리를 두는 경우 - 근접성 원리에 위배, 평균 접근 시간을 증가시킨다
2. 캐시가능(cacheable) - 비 공유적이고 읽기 전용 데이터에 한해서 cache에 저장되도록 하는 방안
3. 스누피 캐시 제어기(snoopy cache controller) - 기본적으로 버스에 부착된 모든 cache에 대해 버스-감시 기능을 유지하도록 설계된 H/W장치이다.
'Computer(인강) > 컴퓨터 구조' 카테고리의 다른 글
시스템 성능 분석과 개선 1 (0) | 2021.03.28 |
---|---|
멀티 프로세서 2 (0) | 2021.03.28 |
멀티 프로세서 1 (0) | 2021.03.28 |
입출력 수행과 인터럽트 2 (0) | 2021.03.27 |
입출력 수행과 인터럽트 1 (0) | 2021.03.27 |