[운영체제] 운영체제의 개념과 구조

운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하고 사용자가 컴퓨터를 편리하게 사용할 수 있도록 도와준다. 응용프로그램, I/O디바이스들이 사용하고자 하는 하드웨어 자원들을 효율적으로 사용할 수 있도록 그 사이에서 자원관리를 한다고 볼 수 있다. 운영체제의 역할을 정리하자면 아래와 같다.

  1. 사용자에게 인터페이스를 제공
  2. 프로세스 관리(with CPU 스케줄링)
  3. 메모리 관리
  4. 파일시스템 관리
  5. I/O 장치 관리
  6. IPC 관리


운영체제 구조

OS구조
운영체제의 구조

위 그림에서 색칠된 부분이 운영체제의 역할이다. 크게 GUI라는 인턴페이스, 커널에게 요청하는 매커니즘인 시스템콜, 직접적으로 하드웨어와 프로세스를 관리하는 커널로 구성되어 있다.

💡 커널(Kernel)
커널은 하드웨어와 직접적으로 소통하며 그 자원들을 효율적으로 관리하는 운영체제의 핵심 부분이다. 그림에서 보이는 것과 같이 커널은 네트워크, 메모리, 프로세스 관리는 물론 I/O와 장치관리을 역할을 한다. 사실상 OS를 커널과 같은 의미로 본다.

💡 시스템콜(System Call)
시스템콜은 커널에게 직접 요청을 하는 매커니즘이다. GUI에서 인터랙션, Shell을 이용한 명령어들, 프로그래밍으로 시스템콜을 사용할 수 있다.

💡 쉘(Shell)
쉘은 커널과 사용자 사이에서 인터페이스를 제공해주는 프로그램이다. 커맨드 라인 명령어를 통해 운영체제에게 요청을 보낼 수 있도록 도와준다. 즉, 쉘은 사용자의 명령어를 해석하여 시스템콜을 만들어 커널에게 요청하는 프로그램이라고 볼 수 있다.

위의 개념들을 이용하여 유저 시나리오로 정리를 해보자면,

  1. 사용자는 CLI(Shell), GUI을 이용하여 요청을 보낸다.(명령어, 인터랙션 등)
  2. 쉘은 커널이 이해할 수 있도록 system call로 변형하여 요청한다.
  3. 커널은 받은 요청을 처리하고 쉘에게 알린다.
  4. 쉘은 유저가 이해할 수 있도록 변형하여 결과를 보여준다.


유저모드 & 커널모드

시스템콜이 작동할 때 OS는 보안기능을 위해 모드를 변경시킨다. 보통 명령어를 작성할때까지만 해도 유저모드인 상태이다. 이후 시스템콜로 커널에게 요청될때 요청을 처리하기 위해 커널모드로 바뀌게 된다. 이때 modebit라는 플래그 변수가 1로 바뀌고 요청 처리 후 다시 유저모드로 바뀌게 되는데 modebit는 0으로 바뀐다.

이렇게 모드를 나눠놓은 이유는 보안문제 때문이다. 커널의 기능을 사용할 수 있다는 것은 하드웨어의 모든 부분에 접근이 가능하다는 것이다. 이것은 매우 편리하면서 아주 위험한 상태이다. 공격자가 마음만 먹으면 하드웨어를 마음대로 다룰 수 있다는 뜻이기 때문이다. 그렇기 때문에 모드를 나누고 커널을 사용할 때만 커널모드로 바꾸어 사용한다.


커널의 종류

커널은 그 구조에 따라 종류가 달라진다.

모놀리식(단일형) 커널

  • 커널의 기능들이 모듈화 되어 있지 않고 하나로 구성되어 있다.
  • 모듈화 되어 있지 않아 통신 비용이 들지 않음
  • 기능간 상호 의존성이 높아 유지/보수가 어렵다.


계층형 커널

  • 비슷한 기능이 하나의 계층으로 묶고 계층간에 통신하는 구조의 커널
  • 쉬운 유지보수성
  • 계층간 커뮤니케이션 비용이 듦, 계층의 추가로 커널의 크기가 커질 수 있음
  • 현재 대부분의 운영체제가 가지는 구조


마이크로 커널

  • 핵심적인 기능(스케줄링, 메모리관리 등)만 커널에서 동작하고 나머지는 제외해 가볍게 만든 커널
  • 파일 시스템, IPC, Device Driver는 커널 위에서 서버의 형태로 존재한다.
  • 하나의 서비스가 죽어도 커널 전체가 죽는 문제가 일어나지 않는다
  • 대신 커뮤니케이션의 오버헤드가 있다.
  • Mach, Apple의 XNU(macOS, iOS, iPadOS, tvOS, watchOS)


컴퓨터 구조

운영체제가 관리하는 컴퓨터 자원들을 도식화하면 아래와 같다. 운영체제는 각 자원들을 효율적으로 사용하기 위해 여러 기술들을 이용한다. 앞으로 운영체제의 노력들을 정리해보자!

OS_overview
컴퓨터 구조

카테고리:

업데이트:

댓글남기기