1 minute read

운영체제란

운영체제란 컴퓨터를 쉽고 효율적으로 관리하기 위해 고안된 인터페이스이다. 컴퓨터는 하드웨어와(CPU, 메모리, 마우스 등), 소프트웨어(유저 프로그램) 그리고 하드웨어와 소프트웨어를 관리하는 운영체제로 이루어져 있다.

운영체의 역할

  1. CPU 스케쥴링과 프로세스 관리
    • CPU의 소유권을 언제 어떤 프로세스에 할당할지를 스케쥴링한다. 프로세스의 생성과 삭제 그리고 자원의 할당과 반환을 관리한다.
  2. 메모리관리
    • 한정적인 주기억 장치인 메모리를 최대한 효율적으로 사용하기 위해 어떤 프로세스에 얼만큼 할당할지를 관리한다.
  3. 디스크파일 관리
    • 디스크 파일을 어떤 방법으로 보관할지를 관리한다.
  4. I/O 디바이스 관리
    • Input, Outpt 장치인 키보드, 마우스, 모니터 등의 다바이스를 관리한다.

운영체제의 구조

구조
(유저 프로그램)
GUI(CUI)
시스템콜
커널
드라이버
(하드웨어)

유저프로그램과 하드웨어를 제외한 GUI, 시스템콜, 커널, 드라이버를 모두 합쳐 운영체제라고한다.

  • GUI: 유저가 그래픽적으로 상호작용을 할 수 있도록 하는 인터페이스이다.
  • 시스템콜: 유저 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다.
  • 커널: 하드웨어의 자원을 필요한 프로세스에 할당하고, 프로세스 제어와 메모리 제어 등 운영체제의 심장이다.
  • 드라이버: 하드웨어와 커널이 잘 소통하기 위한 소프트웨어이다.
  • 인터페이스: 자동차의 내부를 자세히 모르지만 운전자는 자동차를 사용할 수 있듯 물체를 추상화 해놓은것을 인터페이스라고 한다.

시스템콜

시스템콜이란 커널에 접근하기 위한 인터페이스이다. 유저 프로그램이 하드웨어의 파일에 접근하고 싶다면 GUI를 통해 신호를 보내고, 신호가 올바른 요청인지 확인한 후 시스템콜을 거쳐 유저모드에서 커널모드로 바뀐다. 그리고 커널은 드라이버를 통해 하드웨어에 접근한다. 커널모드로 파일을 읽은뒤 다시 유저모드로 돌아간다.

이러한 시스템 덕분에 컴퓨터 자원에 대한 직접 접근을 차단할 수 있고, 프로그램을 다른 프로그램으로부터 보호 할 수 있다.

출처: Operating System Concepts 10th - SILBERSCHARTZ

modebit

시스템 콜이 작동될 때 modebit을 참고해 유저 모드와 커널 모드를 구분합니다. 그 값이 1이라면 유저모드 0이라면 커널모드 나타냅니다.

Leave a comment