Post

Chapter.09 - 운영체제

운영체제

CPU, 메모리, 보조기억장치, 입출력장치와 같은 하드웨어를 시스템 자원이라고 한다.

운영체제는 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 하는 특별한 프로그램

운영체제는 메모리 내 커널 영역이라는 공간에 적재된다.

메모리에서 커널 영역을 제외한 나머지 공간을 사용자 영역이라고 한다.

커널

운영체제의 핵심 서비스를 담당하는 부분

다만, 사용자 인터페이스 (UI)는 커널에 속하지 않는 기능이다.

UI 에는 GUI , CLI 가 있다.

이중모드

CPU가 명령어를 실행하는 모드. 프로그램이 자원에 직접 접근하는 것을 방지하기 위해 구분

* 사용자 모드

커널 영역의 명령어를 실행할 수 없는 프로그램의 기본 모드

* 커널 모드

커널 영역의 명령어를 실행할 수 있는 모드

프로그램이 사용자 모드에서 커널 모드로 전환하기 위한 요청을 시스템 호출 (시스템 콜)이라고 한다.

그리고 시스템 호출을 일종의 소프트웨어 인터럽트라고 한다.

* 과정

어떤 프로그램이 하드 디스크에 데이터를 저장해야 한다고 가정하면

  1. 시스템 호출을 발생시켜 커널 모드로 전환
  2. 운영체제의 하드 디스크에 데이터를 저장하는 코드를 실행
  3. 작업이 끝나면 사용자 모드로 복귀

일반적인 프로그램은 실행 과정에서 운영체제 서비스들을 매우 빈번하게 이용해서 사용자 모드와 커널 모드를 자주 오간다.

가상화를 지원하는 CPU는 가상머신의 프로그램도 운영체제의 서비스를 이용하기 위해서 하이퍼바이저 모드가 따로 있다.

운영체제의 핵심 서비스

* 프로세스 관리

프로세스 = 실행중인 프로그램

일반적으로 하나의 CPU는 한 번에 하나의 프로세스만 실행할 수 있기에 CPU는 여러 프로세스들을 조금씩 번갈아가며 실행한다. 쉽게 말해, 한 프로세스를 실행하다가 다른 프로세스로 실행을 전환하는 것을 반복한다.

* 자원 접근 및 할당

  • CPU 스케줄링을 통해 CPU를 관리한다.
  • 메모리 관리
  • 커널 영역에 있는 인터럽트 서비스 루틴을 제공하여 입출력장치의 입출력 작업을 수행한다.

* 파일 시스템 관리

파일 로드 , 생성 , 삭제를 수행하고 파일을 디렉토리로 관리하는 파일 시스템도 운영체제가 제공하는 서비스이다.

This post is licensed under CC BY 4.0 by the author.