컴퓨터 시스템은 크게 4가지 구성요소 HW, 응용프로그램, OS, 사용자로 구분할 수 있다.
- HW : CPU, 메모리, I/O 장치로 구성되어 기본적인 계산 자원을 제공한다
- 응용 프로그램 : 워드, 엑셀 등은 사용자의 계산 문제를 해결하기 위해 자원이 어떻게 사용될지를 정의한다.
- OS : 다양한 사용자를 위해 다양한 응용 프로그램 간의 HW 사용을 제어하고 조정한다.
OS는 컴퓨터 시스템이 동작할 때 주어진 자원을 적절하게 사용할 수 있도록 해주는데 마치 정부(government)
와 유사하다.정부
처럼 그 자체로는 특별한 기능을 수행하지는 않지만 다양한 프로그램들이 유용한 작업을 할 수 있도록 환경을 제공해주기 때문이다.
OS의 역할을 좀 더 완벽하게 이해하기위해 사용자
와 시스템
두 관점에서 살펴보겠다.
1. 사용자 관점 (User view)
사용자 관점
은 컴퓨터를 이용하기 위해서 사용하는 인터페이스에 따라 달라진다.
컴퓨터 사용자는 모니터, 키보드, 마우스 등으로 구성된 PC 앞에서 작업한다. 이러한 시스템은 한 사용자가 자원을 독점하도록 설계되었으며 목표는 사용자가 수행하는 작업을 최대화
하는 것이다.
스마트폰이나 태블릿과 같은 모바일 장치는 터치스크린, 음성 인식 인터페이스를 통해서 상호작용한다.
이 경우에 OS는 사용의 용이성
을 위해 설계되고 자원의 이용
에는 전혀 신경쓰지 않는다.
2. 시스템 관점 (System view)
컴퓨터의 관점에서 OS
는 HW와 가장 밀접하게 연관된 프로그램
이라서 자원 할당자(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의 구동 방식 및 응용 프로그램에 제공하는 내용을 이해하는 것은 매우 유용하다.
'OS Concepts 10th' 카테고리의 다른 글
[OS] 1-10. 계산환경 (0) | 2023.08.06 |
---|---|
[OS] Chapter 1-4. 운영체제의 작동 (0) | 2023.08.01 |
[OS] Chapter 1-3. 컴퓨터 시스템 구조 (0) | 2023.07.28 |
[OS] Chapter 1-2. 컴퓨터 시스템의 구성 (0) | 2023.07.24 |
[OS] Chapter 1. 서론 (0) | 2023.07.21 |