171212 운영체제 (2) - RYUDONGJIN/Memo_wiki GitHub Wiki
다중 처리 시스템 (Multiprocessor System)
- CPU가 여러 개인 시스템을 의미하며 각각의 CPU들이 아주 밀접하게 통신을 하는 구조.
- 대칭적 다중 처리 시스템 : 각 CPU가 하나의 운영체제 하에서 작동. CPU끼리 데이터를 효율적으로 공유하는 구조
- 비대칭적 다중 처리 시스템 : 각 처리기마다 특정한 작업이 정해져 있고 하나의 주요 CPU가 시스템을 제어하며 다른 CPU들은 미리 정의된 작업 혹은 명령을 수행
분산 처리 시스템 (Distributed Processing System)
- 네트워크를 이용해 동시에 작업을 처리하는 시스템. 각각 CPU들은 메모리를 공유하지 않는다.
- 클라이언트 & 서버시스템 : 클라이언트가 서버로 어떠한 작업 요청을 보내고 서버는 그 작업을 수행해서 다시 클라이언트에게 응답을 보내는 구조. 대표적으로 웹사이트와 접속자 사이의 관계
- P2P 시스템 (Peer-To-Peer System) : 각 컴퓨터가 서버이자 클라이언트가 되는 시스템 ex) 토렌트
클러스터 시스템 (Clustered System)
- 물리적으로 많은 CPU를 한 곳에 모아서 특정한 작업을 수행하는 시스템. LAN으로 서로 연결된 각각의 CPU는 다른 CPU와 상호작용하여 고속 처리 서비스를 지원
- 대칭적 클러스터 시스템 : 각각의 CPU가 호스트가 되어 서로를 관리하는 구조로 둘 이상의 작업을 수행
- 비대칭적 클러스터 시스템 : 호스트 CPU가 다른 CPU를 관리하면서 특정한 CPU가 작동을 중지하면 호스트 CPU가 작업을 돕는 구조.
실시간 시스템 (Real-Time System)
- CPU의 동작이나 작업이 즉시 처리를 요할 떄 채택되는 시스템. 주로 의학 영상 시스템이나 무기 시스템에 사용.
- 연성 실시간 시스템 (Soft Real-Time System) : 절대적으로 시간만을 중요시하지는 않는 시스템
- 경성 실시간 시스템 (Hard Real-Time SYstem) : 빠른 시간이 절대적으로 요구되는 시스템으로 단기 메모리만 써서 시간 엄수를 최우선.
컴퓨터의 부팅 과정
- 전원이 켜질 때 ROM(읽기 전용 메모리)에 저장된 초기 프로그램을 실행
- 초기 프로그램은 메모리, CPU 레지스터 등을 초기화
- 이후에 운영체제를 찾아서 메모리에 적재
- 운영체제는 첫번째 프로세스를 즉시 실행
- 인터럽트가 발생하면서 CPU가 각종 작업을 처리
일반적으로 인터럽트는 입출력 연산이 종료되거나 예외가 발생했을 때, 운영체제의 다양한 서비스를 요구할 때 등 다양한 이유로 발생 서비스 루틴 : 인터럽트가 발생했을 때 CPU는 현재 하던 일을 중단하고 그 인터럽트에 대한 처리를 먼저 수행.
입출력 시스템의 작동 과정
- CPU가 장치제어기의 레지스터에 명령을 적재
- 장치 제어기는 레지스터 내용을 조사하여 수행할 동작을 검사
- 레지스터 내용이 읽기 명령이므로 입력 장치에게 읽기 신호를 보냄
- 입력 장치는 데이터를 읽어서 버퍼에 저장
- 제어 부분은 CPU에 인터럽트를 발생시킴
- CPU가 버퍼에서 데이터를 읽어들이고 입력이 완료
장치 제어기 : 공통 버스와 장치 사이에 위치하여 장치를 제어하는 역할. 내부적으로 저장 장치를 가지고 있을 수 있으며 자신의 주변 장치와의 데이터 송수신을 할 수 있도록 인터페이스 역할을 한다. 동기식 입출력 : 입출력이 시작되고 입출력이 끝난 후에 제어가 사용자 프로세스로 복귀하는 구조. 운영체제는 어느 장치가 인터럽트를 호출하고 있는지 알고 있다. 동시 입출력이 불가능. 비동기식 입출력 : 입출력에 시작되고 끝나기 전에 사용자 프로그램으로 제어가 되돌아간다. CPU가 하나의 요청을 보낸 다음에 인터럽트가 돌아오기 전까지 다른 일을 계속 수행할 수 있다는 장점. 다른 프로세스들이 같은 장치에 대해 요청을 할 수 있기 때문에 운영체제는 매 장치를 위해서 대기 큐를 유지해야 함. 효율성 증가
DMA(Direct Memory Access) 구조
- 데이터를 낱개가 아닌 블록 단위로 전송하는 효율적인 방식. 한 블록 단위의 데이터 전송을 할 때는 CPU의 간섭이 없고 자체적으로 입출력 작업을 처리할 수 있음. 고속의 입출력 장치를 위해서 사용. 기존에 발생했던 병목 현상을 개선하는 기술로 활용
DMA 입출력 방식의 작동 과정
- 운영체제가 입출력 요청을 보낸다.
- DMA 제어기의 레지스터에 주소와 전송 길이가 저장
- DMA 제어기는 한 블록의 입출력 동작을 수행하고 그동안 CPU는 다른 작업을 수행
- 입출력 동작이 완료되면 DMA 제어기는 CPU에게 완료했다는 인터럽트를 보낸다.