[CS/OS] 운영체제의 기본 개념

Intro

운영체제 면접 스터디를 진행하게 되었다. 주차별로 주어진 주제에 대해 정리하고자 한다.

운영체제

운영체제란, 컴퓨터 자원들을 효율적으로 관리하고 사용자에게 인터페이스를 제공하는 소프트웨어(시스템)이라 한다.

운영체제 기능

  1. 컴퓨터 자원 관리(CPU, 주기억장치, 보조기억장치, 메모리 등)
  2. 프로세스 관리
  3. 인터페이스 제공
  4. 파일 시스템 관리

운영체제 구분

운영체제는 커널과 명령어 해석기로 구분된다.
간단하게 설명하자면 커널은 운영체제가 수행하는 것을 모두 저장하고 명령어 해석기는 명령어를 해석하여 커널에 요청하고 결과를 출력한다.


커널

커널은 운영체제의 핵심 부분으로 사람의 심장, 자동차의 엔진과 같은 역할을 하는 부분이다.

커널은 프로그램이 저장장치와 같은 자원에 접근하려고 할 때 반드시 커널을 거쳐서 접근하도록 한다.
컴퓨터 자원에 무분별하게 접근하게 될 경우 자원을 망가뜨리는 등의 문제가 발생할 수 있기 때문이다.
예를 들어, 하드디스크에 A내용이 저장되어 있었는데 다른 응용프로그램이 B내용으로 덮어쓸 수 있다.
그렇기에 운영체제가 자원에 접근할 때 운영체제를 거치도록 문지기 역할을 한다고 볼 수 있다.


이중모드

이중모드란 자원에 대한 접근을 유저모드, 커널모드로 분리하여 운영체제를 보호하는 기법이다.

  • 이중 모드에는 커널모드, 이중모드가 있으며 시스템콜을 통해 전환하여 컴퓨터 자원을 효율적으로 관리한다.
  • 이중 모드는 슈퍼바이저 플래그를 통해 커널모드(1), 유저모드(0)를 확인할 수 있다.

    커널모드

    커널모드란, 응용 프로그램이 자원에 접근할 수 있는 모드로 운영체제 서비스를 지원 받는 모드이다.

유저모드

유저모드란, 응용 프로그램이 자원에 접근할 수 없는 모드로 운영체제 서비스를 지원 받지 못하는 모드이다.

시스템 콜

시스템 콜이란, 유저모드에서 커널모드로 전환시켜주는 인터럽트로 하드웨어 접근과 같은 운영체제 서비스를 지원받기 위해 사용한다.