고등운영체제, 인터럽트 기반 운영체제

윤상준·2022년 2월 11일
0

운영체제

목록 보기
3/20
post-thumbnail

고등 운영체제

다중 프로세서 시스템 (Multiprocessor System)

하나의 메모리와 여러개의 CPU로 구성된 시스템.

병렬 시스템 (Parallel System)

여러 개의 CPU가 병렬로 위치해있다.

강결합 시스템 (Tightly-Coupled System)

하나의 메모리에 여러 개의 CPU가 강하게 결합 (Tightly-Coupled) 되어 있다.

분산 시스템 (Distributed Sytstem)

하나의 일을 여러 개의 CPU로 분산하여 처리하는 시스템

다중 컴퓨터 시스템 (Multi-Computer System)

여러 개의 컴퓨터가 하나의 LAN (근거리 통신망)으로 연결되어 있음.

소결합 시스템 (Loosely-Coupled System)

메인 메모리를 공유하지 않고 하나의 메모리, 하나의 cpu를 사용.

분산 운영체제 (Distributed OS)

각 컴퓨터의 OS가 서로 메시지를 주고받으며 하나의 일을 공통으로 나눠서 수행.

다중 프로세서 시스템과 같이 Performance, Cost, Reliability의 장점을 목표로 하는 시스템.

다중 프로세서 시스템과 분산 시스템의 장점 & 목표

  • 성능 (Performance) : 한번에 더 많은 양의 계산이 가능하다.
  • 비용 절감 (Cost) : 덜 강하지만 더 저렴한 여러 개의 OS를 운영하는 것이 더 가성비가 좋다.
  • 신뢰도 (Reliability) : 하나가 고장나도 여분의 CPU가 있기 때문에 신뢰도가 높다.

실시간 시스템 (Real-Time System)

실시간 ?

주어진 시간 (Deadline) 안에 계산, 작업 등을 반드시 끝내야 하는 경우를 일컫는다.

자동화 공장 (FA), 군사, 항공, 우주, 네비게이션 등의 분야에서 사용된다.

실시간 운영체제 (Real-Time OS = RTOS)

주어진 시간 (Deadline) 안에 끝내지 못할 것 같다면, 바쁘지 않은 다른 프로그램을 희생하더라도 반드시 끝내도록 하는 운영체제.

인터럽트 기반 시스템 (Interrupt-Based System)

현대 운영체제는 인터럽트 기반 시스템

인터럽트 (Interrupt)란 가로채기라는 뜻으로, 하나의 전기 신호를 일컫는다.

기기의 부팅이 끝나면?

  • 컴퓨터에 전원이 들어와 부팅이 시작되면 POST 과정이 시작되고, Boot Loader가 하드 디스크의 OS를 RAM 메인 메모리에 가져와 실행시킨다.
  • 운영체제는 메모리 상에 상주 (Resident)한 채, 사건 (Event)를 기다리며 대기한다.
    • 운영체제는 평소에는 대기 상태를 유지하다가 인터럽트 발생 시 동작함.
    • 키보드, 마우스 등등의 이벤트.

마우스를 움직일 때

  • 마우스를 움직일 때 마다 전기 신호가 발생한다. (전기 신호를 Interrupt라고 부른다.)
  • 이 Interrupt가 CPU로 전달된다.
  • CPU가 Interrupt를 수신하면 지금 하고 있는 일을 중지하고 OS 안에 있는 Mouse Interrupt Service Routine (ISR) 으로 점프 이동한다.
  • Service Routine에서 설정된 코드에 의해 실시간으로 커서를 움직인다.

마우스를 더블클릭할 때

  • 마우스를 더블클릭 하면 전기 신호 (Interrupt)가 발생한다.
  • OS 안에 있는 Mouse Interrupt Service Routine (ISR) 으로 점프 이동한다.
  • Service Routine 안의 마우스 더블 클릭 전용 루틴이 실행된다.
  • 더블 클릭한 지점의 (x, y) 좌표를 통해 알맞은 동작을 실행한다.
  • 만약에 어떤 파일을 더블클릭 했다면 하드디스크 안에서 해당 파일을 찾은 후 메인 메모리로 이동시킨다.
  • 바탕화면에서 해당 파일이 실행된다.

키보드의 경우 Keyboard Interrupt Service Routine 으로 동작한다.

하드웨어 인터럽트 (Hardware Interrupt)

마우스, 키보드 등의 하드웨어로 인해 발생한 인터럽트이다.

  • 인터럽트가 발생하면 ISR을 통해 운영체제 내의 특정 코드를 실행한다.
  • ISR 종료 후 OS는 다시 대기 상태로 돌아간다.

소프트웨어 인터럽트 (Software Interrupt)

사용자 프로그램 (소프트웨어)이 실행되면서 발생하는 인터럽트이다.

어셈블리어 명령어로 직접 인터럽트 신호를 CPU에게 보낼 수 있다.

  • 마찬가지로 인터럽트 결과 ISR을 통해 운영체제 내의 특정 코드를 실행한다.
  • ISR 종료 후 OS는 다시 사용자 프로그램으로 복귀한다.

내부 인터럽트 (Internal Interrupt)

프로그램이 동작하는 과정에서, 연산의 결과 값이 없는 코드를 맞닥뜨리면 발생하는 인터럽트이다.

대표적으로 Divide by Zero ISR이 있다.

  • 어떠한 값을 0으로 나눈다는 잘못된 연산이 실행될 경우 동작하는 ISR이다.
  • 잘못 실행된 프로그램을 강제 종료한다.
profile
하고싶은건 많은데 시간이 없다!

0개의 댓글