다중 처리 시스템
CPU가 여러 개인 시스템을 의미하며 각각의 CPU들이 아주 밀접하게 통신을 하는 구조를 가지고 있다. 하나의 처리기가 고장나도 시스템은 속도의 저하만 있으며 정상적으로 작동한다.
1.대칭적 다중 처리 시스템
각 CPU가 하나의 운영체제 하에서 작동. 또한 CPU끼리 데이터를 효율적으로 공유하는 구조.
2. 비대칭적 다중 처리 시스템
각 처리기마다 특정한 작업이 정해져있고, 하나의 주요 CPU가 시스템을 제어하며 다른 CPU들은 미리 정의된 작업 혹은 명령을 수행한다.
* 분산 처리 시스템
네트워크를 이용해 동시에 작업을 처리하는 시스템. 각각 CPU 들은 메모리를 공유하지 않는다. 적절한 자원 공유로 계산 속도가 증가, 신뢰성이 증가.
1. 클라이언트-서버 시스템
클라이언트카 서버에 요청, 서버는 요청에 응답하는 구조.
2.P2P 시스템
각 컴퓨터가 서버이자 클라이언트가 되는 시스템. 토렌트가 그 예시.
3. 클러스터 시스템
물리적으로 많은 CPU를 한 곳에 모아서 특정한 작업을 수행하는 시스템.
3-1. 대칭적 클러스터 시스템
각각의 CPU가 호스트가 되어 서로를 관리하는 구조로 둘 이상의 작업을 수행할 수 있다.
3-2. 비대칭적 클러스터 시스템
호스트 CPU가 다른 CPU를 관리하면서 특정한 CPU가 작동을 중지하면 호스트 CPU가 작업을 돕는 구조
* 실시간 시스템
CPU의 동작이나 작업이 즉시적인 처리를 요할 때 쓰는 시스템.
1. 연성 실시간 시스템
우선 순위를 가지되, 절대적으로 시간을 중요시만은 하지않는 시스템. 음악을 들을 때 컴퓨터가 렉이 걸려도 안 끊기는 이유.
2. 경성 실시간 시스템
빠른 시간이 절대적으로 요구되는 시스템. 시간 엄수를 최우선으로 고려.
컴퓨터의 작동 과정
컴퓨터 시스템에서 CPU와 각 장치들은 서로 연결되어 메모리를 공유한다. 각각의 장치마다 장치 제어가 작업을 도와주며 모든 기계들은 동기화되어 적절히 작동한다.
컴퓨터의 부팅 과정
- 전원이 켜질 때 ROM에 저장된 초기 프로그램을 실행
- 초기 프로그램은 메모리, CPU 레지스터 등을 초기화
- 이후에 운영체제를 찾아서 메모리에 적재
- 운영체제는 첫번째 프로세스를 즉시 실행
- 인터럽트가 발생하며 CPU가 각종 작업을 처리
* 하드웨어와 소프트웨어는 모두 CPU에 인터럽트를 발생시킬 수 있습니다. 일반적으로 인터럽트는 입출력 연산이 종료되었을 때, 예외가 발생했을 때, 운영체제의 다양한 서비스를 요구할 때 등 다양한 이유로 발생할 수 있다.
*인터럽트 발생시 CPU는 현재 하던 일을 중단하고, 그 인터럽트에 대한 처리를 먼저하게 된다. 그러한 처리를 '서비스 루틴'이라고 하며, 일반적으로 OS가 이를 처리합니다. 서비스 루틴이 종료가 되면 다시 CPU는 인터럽트 되었던 그 연산을 재개한다.
* 최근의 추세는, OS는 하던 일에 대한 정보를 저장하고 중단합니다. 인터럽트 벡터로 제어를 옮겨 요청한 인터럽트 처리 루틴의 주소를 가리키는 포인터를 참조, 포인터를 따라 이동하여 인터럽트 처리 루틴을 완료한 뒤, 다시 하던 일로 돌아간다.
* 인터럽트 실행 도중 다른 인터럽트 발생 시에는, 다른 인터럽트들을 대기시킨다. 대기시키는 이유는 데이터 소실을 막기 위함이다. 또한 우선 순위에 따라 인터럽트를 처리한다.
'백엔드 > os 및 일반 지식' 카테고리의 다른 글
리눅스 개요 (1) | 2022.09.22 |
---|---|
운영체제 - 입출력 구조, 저장장치 구조 (0) | 2022.08.06 |
운영체제 - 개요, 시스템의 발전 (0) | 2022.08.04 |
인터넷 (0) | 2022.03.18 |
컴퓨터 아키텍쳐와 운영체제 - 메모리 상의 데이터 배치, 프로그램 실행 (0) | 2022.03.02 |