티스토리 뷰

처리기 (Processor)

처리기는 컴퓨터 시스템에서 주요한 계산 및 제어 기능을 담당하는 하드웨어 구성 요소이다. 주로 중앙처리장치(Central Processing Unit, CPU)라고 불린다. GPU(Graphics Processing Unit)DSP(Digital Signal Processor)와 같은 처리 장치들도 프로세서라고 명칭할 수 있다.

 

처리기들은 때로는 운영체제에 의해 관리되기도 한다. 운영체제는 이 처리기들이 실행할 다음 작업에 대한 정보를 보내고 상태를 감시한다.

 

프로세서 역할
명칭 설명
명령어 실행 메모리에서 읽어온 명령어를 해독하고 실행하여 프로그램의 동작 제어
데이터 처리 연산 수행 및 데이터 처리
제어 프로그램 실행 흐름 제어, 분기와 반복 등 제어 흐름 수행
인터럽트 처리 하드웨어나 소프트웨어의 인터럽트를 처리하여 외부 이벤트 대응
캐시 관리 캐시로 메모리 접근 속도 향상, CPU와 데이터 교환 관리

 

 


단일처리기 시스템 (Sincle-Processor Systems)

단일처리기란, 하나의 처리기만 가지고 있는 컴퓨터 시스템을 말한다. 단일처리기 시스템에서 CPU는 한 번에 하나의 명령어만 처리할 수 있다. 하여 여러 작업을 동시에 처리하는데 한계가 있다.

 

연속된 요청을 처리하기 위해서는 각 단일처리기들은 고유의 디스크 큐와 스케줄링 알고리즘을 활용한다. 이는 CPU가 직접 디스크 스케줄링을 해야하는 오버헤드를 감소시킨다.

 

특정 목적을 가진 간단한 장치들은 각자 단일처리기를 사용한다. 예로  키보드는 키스트로크를 CPU에 전송할 코드로 변환하는 처리기를 가지고 있다. 운영체제는 이 처리기들과 통신할 수 없고 이 처리기들은 독립적으로 자신의 작업을 처리한다.

 

 


다중처리기 시스템 (Multiprocessor Systems)

다중처리기 혹은 병렬 시스템, 강결합 시스템이라 불리는 시스템은 하나 이상의 CPU를 가지고 있는 컴퓨터 시스템을 말한다.

 

다중처리기 시스템은 크게 세 가지 장점이 있다.

 

다중처리기 시스템 장점

병렬 처리 - 증가된 처리량(throughput)

처리기 수가 증가하여 동시에 작업을 병렬로 처리할 수 있다. 이는 단일처리기 시스템보다 더 많은 작업을 동시에 처리하고 성능적으로 더 우수해진다.

 

하지만, N개의 처리기를 사용할 경우 속도 증가율이 N배인 것은 아니다. 이는 다수의 처리기가 하나의 태스크를 위해 협력할 경우 모든 부분이 정확히 동작하도록 유지하기 위해 서로의 연산 딜레이 시간을 조절하기에 약간의 오버헤드가 발생하기 때문이다.

 

이러한 오버헤드에 공유 자원에 대한 경쟁까지 붙게되면 다중처리기로 예상했던 이득보다는 낮아지는 것이다. N명의 프로그래머가 동시에 일을 한다고 성과의 양이 N배가 되지 않는 것과 같다.

 

경제성 & 확장성 - 규모의 차이

당연한 말이지만, 여러 단일 시스템을 만드는 것에 비해 비용이 절약될 수 있다. 하나의 다중처리 시스템이 있는 컴퓨터가 단일 시스템 컴퓨터 4대의 역할을 한다면 컴퓨터를 이루는 모든 부속품들을 4대씩이나 구매할 필요가 없기 때문이다.

 

또한, 공유 자원에 대한 접근도 하나의 디스크에 저장된 데이터를 확인하는 것이기에 당연히 다중 시스템이 더욱 이득인 것이다.

 

고가용성 - 증가된 신뢰성

여러 처리기 중 하나의 처리기가 고장나더라도 다른 처리기가 작업을 처리할 수 있다. 하여 시스템 정지가 아닌 속도가 느려지게 된다.

 

 

다중처리기 시스템 유형

다중처리기 시스템은 크게 대칭적 다중처리기와 비대칭적 다중처리기로 두 가지 유형으로 나뉜다.

 

대칭적 다중처리기(Symmetric Multiprocessing, SMP)

대칭적 다중처리기는 각 처리기가 동등한 지위를 가진다. 이는 모든 처리기가 메모리와 입출력 장치에 대한 접근 권한을 공유하여, 공통된 메모리 버스를 통해 메모리에 접근한다.

 

각 처리기는 자신 고유의 레지스터 집합과 지역적인 캐시를 가지고 있다. 하지만 모든 처리기물리메모리를 공유한다.

 

다중처리는 계산 능력 증대를 위해 CPU를 추가한다. 

 

비대칭적 다중처리기(Asymmetric Multiprocessing, AMP)

하나의 처리기가 주요 처리를 담당하고, 다른 처리기들은 보조적인 역할을 수행한다. 이러한 시스템은 주처리기가 자원을 관리하고, 보조 처리기들은 그에 따라 동작한다.

 

 


클러스터형 시스템 (Clustered Systems)

다중처리기 시스템과 마찬가지로 클러스터 시스템은 여러 CPU들이 함께 계산 작업을 한다. 하지만 클러스터는 둘 이상의 독자적 시스템 혹은 노드들이 결합하여 구성된다. 일반적으로 저장장치를 공유하고 LAN이나 고속 상호 연결망으로 연결된다.

 

클러스터는 하나 이상의 컴퓨터 시스템이 고장나더라도 서비스를 지속적으로 제공한다. 일반적으로 고가용성은 시스템에 중복 기능을 추가함으로써 얻어진다.

 

클러스터는 네트워크로 연결된 여러 컴퓨터 시스템의 집합이기에 고성능 계산 환경을 제공할 수 있다. 이는 클러스터의 이점을 활용한 병렬화라는 기법으로 특별히 작성되는데, 병렬화는 클러스터의 개별 컴퓨터에서 병렬적 실행될 수 있는 단위로 응용 프로그램을 나누어 작업을 처리하고 모든 노드의 결과를 통합하여 최종 해결책을 반환한다.

 

클러스터도 비대칭, 대칭적 구성을 가질 수 있다.

 

비대칭형 클러스터링

비대칭형 클러스터링의 경우 다른 컴퓨터들이 응용 프로그램을 실행하는 동안 한 컴퓨터긴급 대기 모드 상태를 유지한다. 이 모드의 호스트는 활성 서버들을 감시만 하다가 활성 서버가 고장나면 긴급 대기 모드의 호스트가 활성 서버로 전환 된다. 

 

대칭형 클러스터링

둘 이상 호스트들이 응용 프로그램을 실행하고 서로 감시한다. 이로써 가용한 하드웨어를 모두 사용하여 효율성은 더 높아진다. 하지만 이런 효율성을 위해서는 하나 이상의 응용 프로그램들이 실행되어야 한다.

'Computer > Operation System' 카테고리의 다른 글

[OS] 시스템 콜 (System Calls)  (0) 2024.03.25
[OS] 입출력 구조 (I/O Structure)  (0) 2024.03.23
[OS] 컴퓨터 시스템의 구성  (1) 2024.03.15
[OS] 운영체제 서론  (0) 2024.03.15
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함