본문 바로가기

컴퓨터 과학(CS)/운영체제

컴퓨터 과학_운영체제(OS)의 개념과 역할

운영체제의 정의


운영체제 / Operating System(이하 OS)
운영체제는 사용자의 하드웨어, 시스템 리소스를 제어하고 프로그램에 대한 일반적 서비스를 다루는 시스템 소프트웨어이다.

운영체제의 목적


운영체제는 여러가지 목적을 갖고 있으며 주요 중요한 목적은 다음과 같다.

  • 사용자에게 컴퓨터의 프로그램을 쉽고 효율적으로 실행할 수 있는 환경을 제공한다.
  • 컴퓨터 시스템 하드웨어 및 컴퓨터 자원을 여러 사용자 간에 효율적 할당, 관리, 보호하는 것
  • 사용자 프로그램의 오류나 잘못된 자원 사용에 대한 감시, 입출력 장치 등의 자원에 대한 연산과 제어를 관리하는 제어 프로그램의 역할

 

UNIX 기반 운영체제의 구성요소

UNIX 운영체제의 구조 이미지 출처

 

기본적으로 하드웨어 위에 '커널'이 올라가고 커널 위에 ''과 '어플리케이션'이 수행된다.
위의 이미지에서는 User program이 어플리케이션을 의미한다.

운영체제를 통한 안정적이고 효율적인 동작을 하기 위해서 운영체제는 사용자가 직접 하드웨어에 접근하는 것을 막는 형태로 구성되어있다.
이 때문에 User mode(CPU 명령어 사용 제한), Kernal mode(CPU 명령어를 사용하여 하드웨어를 직접 제어)로 분리해 운용된다.
그리고 이 두 모드는 중간에 위치한 'System call interface'(인터페이스)를 통해서 서로의 사이가 전환된다.

 

커널(Kernal)

운영체제의 핵심이 되는 소프트웨어이다.
하드웨어의 자원을 자원이 필요한 프로세스에게 나눠주며 동시에 프로세스 제어, 메모리 관리, 저장공간 관리, 연결된 장치 관리 등 모든 컴퓨터 하드웨어에 대한 기초 수준의 제어권을 제공한다.
이로 인해 운영체제의 가장 아래 계층에 위치하여 역할을 수행한다.

 

셸(Shell)

운영체제의 구조에서 커널과 사용자 사이에 위치하여 사용자의 명령어를 해석하고 그 처리 결과를 보여주는 인터페이스를 제공하는 시스템 프로그램이다.
여기에서 인터페이스는 크게 두가지로 나뉜다.
1. CLI(Command-Line Interface): 명령 줄 인터페이스라고도 하며 MS-DOS, 명령 프롬프트 등
텍스트 기반 명령 줄 입력을 통한 인터페이스이다.
2. GUI(Graphical User Interface): 그래픽 사용자 인터페이스이며 윈도우와 윈도우에서 사용하는 탐색기, 웹 브라우저 등
오늘날 눈에 보이는 요소들을 제어하며 사용되는 인터페이스이다.

프로그램(program)

프로그램은 일반적으로 소프트웨어라고 하며 이는 하드웨어를 제어하여 작업을 수행시키는 명령어의 집합을 의미한다.
이는 크게 응용 프로그램과 시스템 소프트웨어로 나뉜다.

  • 응용 프로그램(application program): MS워드, 동영상 플레이어, 게임 등 특정 작업을 위해 사용하는 프로그램
  • 시스템 소프트웨어(system software): 운영체제와 유틸리티와 같이 하드웨어와 응용 프로그램을 제어하는 프로그램

운영체제의 역할


  • 컴퓨터 자원의 관리와 보호
    사용자가 컴퓨터를 이용할 때 자원간의 배분과 회수를 효율적으로 다루며 응용 프로그램을 이용하는 데 원활한 환경을 제공한다. 또한 사용자의 실수나 응용 프로그램 변조, 해킹  등과 같은 비정상적인 컴퓨터 자원에 대한 보호자 역할도 수행한다.
  • 하드웨어에 대한 인터페이스 제공
    CPU, 메모리, 키보드, 마우스 등의 하드웨어들을 종류에 가리지 않고 자동으로 호환성을 연결하고 제공해주는 드라이버 프로그램을 제공하여 사용자가 별다른 추가 작업 없이 하드웨어를 사용할 수 있게 해주는 인터페이스 제공자 역할을 한다. 일부 특정 하드웨어들에 대해서는 사용자가 별도로 드라이버를 받아야 하는 경우도 존재한다.
  • 사용자 인터페이스 제공
    사용자가 운영체제와 응용 프로그램을 편리하게 사용할 수 있도록 CLI나 GUI 등의 방식으로 인터페이스를 제공한다.