운영체제(OS, Operating System)는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임입니다.
대표적인 컴퓨터 운영체제로는 윈도우(Windows), 맥 OS(Mac OS), 리눅스(Linux), 유닉스(Unix) 등이 있습니다.
운영체제의 목적에는 처리능력 향상, 사용 가능도 향상, 신뢰도 향상, 반환 시간 단축 등이 있습니다. 처리능력, 반환시간, 사용가능도, 신뢰도는 운영체제의 성능을 평가하는 기준이 됩니다.
- 처리능력(Throughput): 일정 시간 내에 시스템이 처리하는 일의 양
- 반환시간(Turn Around Time): 시스템에 작업을 의뢰한 시간부터 처리가 완료될 떄까지 걸린 시간
- 사용가능도(Availability): 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
- 신뢰도(Reliabilty): 시스템이 주어진 문제를 정확하게 해결하는 정도
운영체제는 커널과 인터페이스로 이루어져 있습니다.
운영체제는 커널과 인터페이스를 분리하여 같은 커널을 사용하더라도 다른 인터페이스를 가질 수 있습니다.
우리가 컴퓨터의 전원을 누르는 순간 컴퓨터에 전원을 공급하는 파워 서플라이는 메인보드에 부착된 장치들(CPU, 디스크, 메모리)에게 전력을 공급합니다.
CPU가 ROM
에 저장된 펌웨어인 BIOS
를 실행합니다.
실행된 BIOS는 컴퓨터를 켤 때 문제가 있나 확인하는 프로그램인 POST를 실행해 주변 하드웨어 체크를 합니다.
POST 과정이 끝난 BIOS는 부팅매체를 선택하고 부팅매체의 MBR에 저장된 부팅정보를 읽어오는 부트스트랩을 실행합니다.
모든 기억장치(USB, 디스크 등)은 MBR란 영역을 가지고 있습니다.
MBR이라는 기억 공간에는 디스크에 있는 운영체제(OS) 코드가 복사되어 있는 부트로더라는 프로그램이 저장되어 있습니다. 디스크는 MBR 정보를 읽고 BIOS는 부팅 과정을 도와주는 부트 스트랩을 이용해 부트로더를 RAM으로 옮깁니다. 부트로더의 OS 코드는 RAM에서 실행되어 제어권이 OS에 넘어갑니다. 이것을 부팅(Booting)이라고 합니다.
부트스트랩 과정으로 RAM
에 부트로더가 올라가고, 부트로더는 디스크에 있는 OS 코드를 복사해 RAM에 붙여서 OS를 실행합니다.
제어권이 OS에 넘어오며 성공적으로 OS가 부팅됩니다.
OS는 대기하고 있던 첫번째 프로세스를 실행합니다.
인터럽트
가 발생하면서 CPU는 각종 작업을 처리합니다.
- ROM(Read Only Memory): 오직 읽기만 가능한 메모리이며 전력 공급이 끊겨도 저장된 데이터가 사라지지 않습니다.
- RAM(Random Access Memory): 자유롭게 데이터를 올리고 지우지만 전력공급이 끊기면 데이터가 모두 사라지는 휘발성 메모리입니다.
- BIOS(Basic Input/Output System): 사용자가 컴퓨터를 키면 시작되는 프로그램으로 주변장치와 운영체제(OS) 사이의 데이터의 흐름을 관리합니다.
- 인터럽트(Interrupt): 인터럽트란 어떠한 방해물이나 개입적인 요소를 의미합니다. CPU가 프로세스를 실행할 때 예외상황이 일어나면 현재 하던 일을 중단하고 그 인터럽트에 대한 처리를 먼저 하게 됩니다.