2. 운영체제 기초 지식

이희제·2020년 12월 30일
12

Operating System

목록 보기
2/12

오늘은 앞으로 운영체제를 공부하는데 있어서 사전에 필요한 개념에 대해서 짚고 넘어가려고 합니다.

1. 부팅


흔히들 컴퓨터 부팅한다라는 말을 많이 들어보셨을 겁니다.

부팅은 컴퓨터의 전원 버튼이 눌려지면 운영체제의 일부가 메모리에 올라와 실행되고 장치들을 준비시키고 각종 레지스터 값을 초기화 하고 사용자의 입력을 받을 준비를 하는 과정이라고 할 수 있습니다.


2. 레지스터


레지스터는 메모리보다 빠른 기억 장치입니다.

이 레지스터는 여러가지 종류가 있습니다.

  • PC : 프로그램 카운터
  • IR : 명령어 레지스터
  • MAR : 메모리 주소 레지스터
  • MBR : 메모리 버퍼 레지스터
  • I/O AR : 입출력 주소 레지스터
  • I/O BR : 입출력 주소 레지스터
  • PSW(Program Status Word) : CPU 현재 상태 정보 저장

3. 명령어 처리


➡️ 명령어 실행주기


  • 반입(Fetch) : 메모리에 있는 명령어를 읽어 레지스터로 가지고 오고 연산을 제어하는 과정.

4. 인터럽트(Interrupt) ✨


가장 중요하게 볼 부분입니다. 계속해서 이 개념이 운영체제를 배우는데 있어서 등장할 것이고 따라서 확실하게 알고가야 합니다.

인터럽트란?

CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 예외상황이 발생하여 처리가 필요할 경우에 마이크로프로세서에게 알려 처리할 수 있도록 하는 것을 뜻합니다.

인터럽트는 2가지로 나눠서 볼 수 있습니다.

  1. 하드웨어 인터럽트 : CPU가 아닌 다른 장치(Devices) 또는 주변장치(Peripherals)에 의한 인터럽트
  1. 소프트웨어 인터럽트 : CPU가 스스로 자신에게 인터럽트를 하는 경우(Trap-트랩)

ex) system call, Exception(예외상황)

인터럽트 처리 과정

인터럽트는 다음 그림과 같은 과정을 거치면서 이루어집니다.

출처: https://blackinkgj.github.io/IO/

세세히 각 과정에 대해서 살펴보겠습니다.

  1. 장치가 인터럽트 신호를 CPU에게 보냅니다. 이때 CPU는 명령어가 실행 중에 있었다면 이 명령어를 우선 완료시키고 인터럽트 신호를 확인합니다.
  1. 실행 중이던 프로그램의 현 상태를 시스템 스택(그림에서는 제어스택)에 저장합니다. 여기서 현 상태 정보는 PC와 PSW 레지스터 값 등을 말할 수 있습니다.

  2. 그 후 인터럽트 처리 루틴의 시작 주소를 PC 레지스터에 넣어 실행시킵니다.

  3. 인터럽트 처리가 끝난 후 시스템 스택(제어 스택)에 있는 이전의 저장했던 정보들은 다시 레지스터에 Restore하고 PSW, PC 레지스터 값들을 원래 자리에 다시 넣어줍니다.

  4. 그리고 프로그램을 이어서 실행해 나갑니다.


마무리


운영체제를 배우면서 필수적으로 알아야할 개념에 대해서 살펴보았습니다. 특히 인터럽트는 매우 중요하기 때문에 꼭 개념을 알고 넘어가야합니다.

다음 시간에는 프로세스와 스레드에 대해서 알아보겠습니다😃


profile
남는 것을 좋아하는 프론트엔드 개발자입니다.

0개의 댓글