운영체제의 개념, 역할, 구조

CodingHoon·2021년 4월 15일
0
post-thumbnail

✅ 운영체제 (OS, Operating System)

  • 시스템 자원을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
  • 사용자와 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어
  • 대표적인 운영체제로는 Windows, Mac, UNIX, LINUX가 있다.

운영체제의 목적

(1) 처리 능력 향상
처리 능력 = 일정 시간 내에 시스템이 처리하는 일의 양

(2) 반환 시간 단축
반환 시간 = 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸리는 시간

(3) 사용 가능도 향상
사용 가능도 = 시스템 자원을 사용할 필요가 있을 때 즉시 사용 가능한 정도

(4) 신뢰도 향상
신뢰도 = 시스템이 주어진 문제를 정확하게 해결하는 정도


운영체제의 역할

자료 출처: https://electricalfundablog.com/operating-system-os-functions-types-resource-management/

❗ 응용 프로그램이 요청하는 시스템 자원을 효율적으로 분배하고 관리한다!

시스템 자원 (System Resource)이란?

  • 컴퓨터 하드웨어와 같은 개념으로, CPU, 메모리, 입출력 장치, 저장 매체 등 시스템에서 사용할 수 있는 자원을 의미한다. 시스템 자원은 스스로 메모리 확보, 저장 위치, 저장 방법 등을 직접 결정할 수 없기 때문에 반드시 운영체제가 필요하다.

응용 프로그램 (Application)이란?

  • 운영체제를 제외한 나머지 소프트웨어로, 엑셀, 파워포인트, 엑세스 등 사용자가 평소에 사용하는 프로그램을 의미한다.
    (※ 소프트웨어 = 운영체제 + 응용 프로그램)

▶ 운영체제는 응용 프로그램이 요청하는 메모리를 허가하고 분배
▶ 운영체제는 응용 프로그램이 요청하는 CPU 시간을 제공
▶ 운영체제는 응용 프로그램이 요청하는 입출력 장치 사용 여부를 허가 및 제어

운영체제에서 실행되는 모든 프로그램은 운영체제에 종속적일 수 밖에 없다.


운영체제의 구조

커널 (Kernel)?

  • 운영체제는 규모가 매우 큰 프로그램이므로, 운영체제의 모든 부분을 메모리에 올려놓는 것은 메모리의 측면으로 봤을 때 굉장히 비효율적이다. 따라서, 운영체제는 필요한 부분만을 메모리에 올려서 사용하게 되는데, 이 때 메모리에 상주하는 운영체제의 핵심 부분을 커널이라고 한다.
  • 커널은 메모리에 상주하는 부분이므로, 운영체제의 핵심 부분이라고 볼 수 있기 때문에, 주로 '운영체제 = 커널'이라고 말한다.

시스템 콜 (System Call)?

  • 사용자는 운영체제의 기능을 담당하는 커널에 직접 접근할 수가 없다. 따라서, 사용자와 커널 사이에 인터페이스 역할이 필요한데, 시스템 콜이 바로 이 역할을 하게 된다.
  • 사용자가 커널 영역을 사용할 수 있게, 즉 응용프로그램이 시스템 자원에 직접 접근하여 필요한 기능을 사용할 수 있게 해주는 함수를 의미한다.
  • 하지만 보통은 응용프로그램은 시스템 콜을 직접 사용하지 않고, 해당 시스템 콜을 사용하여 만든 언어 별 라이브러리 API를 통해 커널에 접근할 수 있다.

API (Application Programming Interface)

  • 운영체제가 응용 프로그램을 위해 제공하는 함수의 집합
  • 사용자가 마우스 클릭을 인식시키기 위해서 마우스 버튼이 눌리는 순간부터 컴퓨터 내부의 모든 동작들을 모두 관여하여 프로그래밍하는 것은 너무 비효율적이기 때문에, 기본적이고 최소한의 기능들을 함수로 제공하여, 사용자가 함수를 호출해서 사용할 수 있도록 도와주는 역할

쉘 (Shell)

  • 운영체제가 사용자를 위해 제공하는 인터페이스
  • 사용자가 운영체제의 기능을 조작할 수 있도록 인터페이스를 제공하는 일종의 응용 프로그램
  • CLI 환경과 GUI 환경 두 종류로 분류됨

문서 최종 수정일: 2021년 4월 15일

0개의 댓글