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는 현재 하던 일을 중단하고 그 인터럽트에 대한 처리를 먼저 수행.


입출력 시스템의 작동 과정

  1. CPU가 장치제어기의 레지스터에 명령을 적재
  2. 장치 제어기는 레지스터 내용을 조사하여 수행할 동작을 검사
  3. 레지스터 내용이 읽기 명령이므로 입력 장치에게 읽기 신호를 보냄
  4. 입력 장치는 데이터를 읽어서 버퍼에 저장
  5. 제어 부분은 CPU에 인터럽트를 발생시킴
  6. CPU가 버퍼에서 데이터를 읽어들이고 입력이 완료

장치 제어기 : 공통 버스와 장치 사이에 위치하여 장치를 제어하는 역할. 내부적으로 저장 장치를 가지고 있을 수 있으며 자신의 주변 장치와의 데이터 송수신을 할 수 있도록 인터페이스 역할을 한다. 동기식 입출력 : 입출력이 시작되고 입출력이 끝난 후에 제어가 사용자 프로세스로 복귀하는 구조. 운영체제는 어느 장치가 인터럽트를 호출하고 있는지 알고 있다. 동시 입출력이 불가능. 비동기식 입출력 : 입출력에 시작되고 끝나기 전에 사용자 프로그램으로 제어가 되돌아간다. CPU가 하나의 요청을 보낸 다음에 인터럽트가 돌아오기 전까지 다른 일을 계속 수행할 수 있다는 장점. 다른 프로세스들이 같은 장치에 대해 요청을 할 수 있기 때문에 운영체제는 매 장치를 위해서 대기 큐를 유지해야 함. 효율성 증가

DMA(Direct Memory Access) 구조

  • 데이터를 낱개가 아닌 블록 단위로 전송하는 효율적인 방식. 한 블록 단위의 데이터 전송을 할 때는 CPU의 간섭이 없고 자체적으로 입출력 작업을 처리할 수 있음. 고속의 입출력 장치를 위해서 사용. 기존에 발생했던 병목 현상을 개선하는 기술로 활용

DMA 입출력 방식의 작동 과정

  1. 운영체제가 입출력 요청을 보낸다.
  2. DMA 제어기의 레지스터에 주소와 전송 길이가 저장
  3. DMA 제어기는 한 블록의 입출력 동작을 수행하고 그동안 CPU는 다른 작업을 수행
  4. 입출력 동작이 완료되면 DMA 제어기는 CPU에게 완료했다는 인터럽트를 보낸다.