OS Concepts 10th

[OS] Chapter 1-1. 운영체제가 할 일

patrick-star 2023. 7. 21. 08:16
728x90

컴퓨터 시스템은 크게 4가지 구성요소 HW, 응용프로그램, OS, 사용자로 구분할 수 있다.

  • HW : CPU, 메모리, I/O 장치로 구성되어 기본적인 계산 자원을 제공한다
  • 응용 프로그램 : 워드, 엑셀 등은 사용자의 계산 문제를 해결하기 위해 자원이 어떻게 사용될지를 정의한다.
  • OS : 다양한 사용자를 위해 다양한 응용 프로그램 간의 HW 사용을 제어하고 조정한다.

OS는 컴퓨터 시스템이 동작할 때 주어진 자원을 적절하게 사용할 수 있도록 해주는데 마치 정부(government)와 유사하다.
정부처럼 그 자체로는 특별한 기능을 수행하지는 않지만 다양한 프로그램들이 유용한 작업을 할 수 있도록 환경을 제공해주기 때문이다.

OS의 역할을 좀 더 완벽하게 이해하기위해 사용자시스템 두 관점에서 살펴보겠다.

1. 사용자 관점 (User view)

사용자 관점은 컴퓨터를 이용하기 위해서 사용하는 인터페이스에 따라 달라진다.

컴퓨터 사용자는 모니터, 키보드, 마우스 등으로 구성된 PC 앞에서 작업한다. 이러한 시스템은 한 사용자가 자원을 독점하도록 설계되었으며 목표는 사용자가 수행하는 작업을 최대화하는 것이다.

스마트폰이나 태블릿과 같은 모바일 장치는 터치스크린, 음성 인식 인터페이스를 통해서 상호작용한다.

이 경우에 OS는 사용의 용이성을 위해 설계되고 자원의 이용에는 전혀 신경쓰지 않는다.

2. 시스템 관점 (System view)

컴퓨터의 관점에서 OSHW와 가장 밀접하게 연관된 프로그램이라서 자원 할당자(resource allocator)라고 볼 수 있다.

컴퓨터 시스템은 문제를 해결하기 위해 요구되는 여러 자원들 (즉, CPU 시간, 메모리 공간, 저장장치 공간, I/O 장치 등)을 가진다.
OS는 이러한 자원의 관리자로서 동작한다.

자원에 대한 요청 중에서 상충하는 요청이 많이 있을수 있는데 OS는 컴퓨터 시스템을 효율적이고 공정하게 운영할 수 있도록 어느 요청에 자원을 할당할지를 결정해야 한다.

또 다른 관점으로 OS를 제어 프로그램으로 볼 수 있다. 여러 입출력 장치와 사용자 프로그램을 제어할 필요성을 강조하는 관점이다.

3. OS의 정의

일반적으로 OS에 대한 적합한 정의는 없다.
OS는 유용한 컴퓨팅 시스템을 만드는 문제를 해결할 수 있는 합리적인 방법을 제공하기 때문에 존재한다.

컴퓨터 시스템의 기본 목표: 프로그램을 실행 & 사용자 문제를 더욱 쉽게 해결할 수 있도록 하는 것
⇒ HW는 이 목표를 가지고 구성된다.
⇒ 다만, HW를 사용하는 것이 쉽지 않기 때문에 그래서 응용 프로그램이 개발된다.
⇒ 이러한 프로그램은 입출력 장치 제어와 같은 특정한 공통 작업이 필요한데 자원을 제어하고 할당하는 공통적인 기능들이 OS라는 하나의 SW로 통합된다.

요약

OS = 항상 실행되는 프로그램인 커널 + 쉽게 응용 프로그램 개발을 할 수 있도록 하고 기능을 제공하는 미들웨어 프레임워크 + 시스템 실행 중에 시스템을 관리하는데 도움이 되는 시스템 프로그램 + etc.. 이 포함된다.

여기서 다루는 내용의 대부분은 범용 OS의 커널과 관련이 있지만 OS 설계 및 연산을 모두 설명하는데 필요한 다른 구성요소에 대해서도 다룰 것이다.

OS를 공부해야 하는 이유

대다수의 개발자들은 OS를 만들거나 수정할 일이 없다. 그러면 왜 OS와 OS의 동작방식을 공부해야 하는 걸까.

거의 모든 코드가 OS 위에서 실행되므로 OS의 작동방식에 대한 지식은 적절하고 효율적이고 효과적이고 안전한 프로그래밍에 있어서 중요한 부분이기 때문이다.

때문에 OS 위에서 프로그램을 작성하고 OS를 사용하는 사람들에게도 OS의 기본 지식, 컴퓨터 HW의 구동 방식 및 응용 프로그램에 제공하는 내용을 이해하는 것은 매우 유용하다.