운영체제의 역할과 구조

DanChu 🌟·2022년 8월 2일
0

운영체제의 역할

컴퓨터의 구성요소로는 크게:

  • CPU
  • 메모리
  • 저장장치 (HDD, SSD)
  • 주변장치 (I/O, network 장치 등)

가 있다. 이러한 요소들을 컴퓨터 자원이라고 부르고, 우리가 실제로 컴퓨터에서 사용하는 일반적인 프로그램들(사용자 프로그램/응용 프로그램)은 이러한 자원들을 적절히 사용하여 실행이 된다.

응용 프로그램은 누구나 만들 수 있는데, 이 프로그램안에 무한 반복문 혹은 파일 권한 변경, CPU독점 코드가 있다면 문제가 발생하게 된다. 그리고 컴퓨터 자원역시 각자의 자원들이 스스로 얼마만큼의 공간을 사용할지, 어떻게 사용할지 등을 정할 수 없으므로 운영체제가 그 역할을 하고있다:

  • CPU 스케줄링과 프로세스 관리
  • 메모리 관리
  • 디스크 파일 관리
  • I/O 디바이스 관리

운영체제의 구조

운영체제는 기본적으로 우리가 사용하는 사용자/응용 프로그램에서 필요한 자원을 할당하는 역할을 한다. 그렇기 때문에 운영체제의 핵심이 되는 부분은 우리가 컴퓨터를 사용하는 동안 항상 작동하여야 한다.

구체적으로, 어떠한 소프트웨어가 컴퓨터 시스템에서 수행되기 위해서는 메모리에 그 프로그램이 올라가 있어야 하는데 운영체제 역시 소프트웨어이므로 메모리에 올라가 있어야 작동할 수 있다.

하지만 사용자 프로그램을 사용할 때에 운영체제의 전부가 이 메모리에 올라가지 않고 핵심 부분만 올라가 사용자 프로그램의 작동을 가능하게하는데, 이때 메모리에 올라간 운영체제의 핵심 부분커널이라 한다.

하드웨어

입출력 장치, CPU, HDD, SSD 등의 컴퓨터를 구성하는 자원.

디바이스 드라이버

장치 드라이버

특정 하드웨어나 장치를 제어하기 위한 커널의 일부분으로 동작하는 프로그램. 컴퓨터의 입출력 장치마다 각각 장치 드라이버가 프로그램되어 커널에 통합되어 실행된다.

커널

운영체제의 핵심이 되는 컴퓨터 프로그램.
시스템의 모든 것을 완전히 통제한다.

  • 컴퓨터 하드웨어와 프로세스의 보안을 책임진다
  • 한정된 시스템 자원을 효율적으로 관리하여 프로그램의 실행을 원활하게 한다
    - 프로세스에 처리기를 할당하는 것을 스케줄링이라 한다.
  • 추상화: 운영체제의 복잡한 내부를 감추고 깔끔하고 일관성있는 인터페이스를 하드웨어에 제공
    - c.f. 하드웨어 추상화 계층(HAL)

사용자/응용 프로그램의 직접 접근은 제한되어있고, 시스템 콜을 통하여 커널의 기능을 사용할 수 있다

시스템 콜

응용 프로그램이 커널에 접근할 수 있도록 커널이 제공하는 인터페이스 (API)
운영체제가 제공하는 API 를 통해서만 커널이 제공하는 서비스를 호출할 수 있고 다른 방법으로는 커널을 건드리지 않도록 막는 것으로 컴퓨터 자원을 보호한다

인터페이스

서로 다른 두개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우 접점이나 경계면을 뜻함
즉, 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템

  • GUI (Graphical User Interface) : 이미지, 아이콘, 텍스트 박스 등을 이용하여 컴퓨터와 상호작용. 아이콘을 클릭하고 마우스를 사용하여 객체를 끌어다 놓기 등이 가능
    - e.g. Windows, MacOS 등
  • CLI (Command Line Interface) : 명령줄을 이용하여 컴퓨터와 상호작용
    - e.g. terminal 환경

응용프로그램

일반적으로 우리가 사용하는 프로그램
e.g. 한글, 엑셀 등


API와 SDK

Appication Programming Interface (API)

모듈화하여 만들어진, 어떤 기능을 제어/제공하는 인터페이스

Software Development Kit (SDK)

소프트웨어를 만들기 위한 개발 도구 모음
API, IDE, 문서, 라이브러리, 코드 샘플 및 기타 유틸리티를 포함할 수 있음


references

0개의 댓글