OS : 컴퓨터 하드웨어를 관리하는 프로그램
OS의 정의
OS는 컴퓨터 하드웨어를 관리하는 프로그램 이다. OS는 또한 응용프로그램을 위한 기반을 제공하며 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중재자 역할을 다양한 방법으로 수행한다.
어떤 OS는 일반인들이 사용하기 편리하도록 설계되고, 일부는 효율성에 주안을 두고 설계되고, 일부는 이 둘의 조합으로 설계가 된다.
사용자의 관점에서 바라본 OS
작업을 하는 사용자의 PC에서 OS의 목표는 사용자가 수행하는 작업을 최대화 하는 것이다. 이러한 경우 OS는 대부분 사용의 편이성을 위해 설계가 되고, 성능에 조금 신경을 쓰고 다양한 H/W와 S/W 자원이 어떻게 공유되는가와 같은 자원의 이용에는 전혀 신경을 쓰지 않는다.
다른 경우로, 동일한 컴퓨터를 각기 다른 컴퓨터에서 접근을 하고 있는 경우가 있다. 이들 사용자들은 자원을 공유하며 정보를 교환할 수도 있다. 이러한 경우 OS는 자원 이용을 극대화 하도록 설계가 되어 모든 가용 CPU 시간, 메모리 및 I/O는 효율적으로 사용이 되며, 각 개인은 자신의 정당한 몫만 사용을 할 수 있다.
또 다른 경우로는, 위 두 경우가 겹쳐진 경우이다. 예로 워크스테이션과 서버로 구성된 네트워크에 연결된 워크스테이션에 사용자가 있는 경우이다. 이 때엔 OS는 개인의 사용 편이성과 자원 이용 간 적절한 조화를 이루도록 설계가 된다.
일부 컴퓨터는 사용자 관점이 존재하지 않거나 매우 작은 경우가 있다. 가전제품이나 자동차를 예로 들 수 있다. 가전제품이나 자동차의 내장형 컴퓨터는 사용자가 원하는 모션을 입력 받아 취하긴 하지만 운영체제는 사용자의 개입 없이 작동하도록 설계가 된다.
시스템의 관점에서 바라본 OS
OS는 H/W와 가장 밀접하게 연관된 프로그램이다. 컴퓨터 시스템은 문제를 해결하기 위해 요구되는 CPU 시간, 메모리 공간, 파일 저장 공간, 입출력 장치 등과 같은 자원들을 가진다. OS는 이러한 자원들의 관리자로 동작한다. OS는 컴퓨터 시스템을 효율적이고 공정하게 운영할 수 있도록 어느 요청에 자원을 할당할지 결정을 해야 한다.
OS는 제어 프로그램과도 같다. 이는 오류와 컴퓨터의 부적절한 사용을 방지하기 위해 사용자 프로그램의 실행을 제어한다. OS는 특히 프로그램이 실행하는 입출력 장치의 연산과 제어에 깊이 관여한다.
정리
사실, OS에 대한 완벽한 정의는 없다고 한다. OS의 존재의 이유는 컴퓨터 시스템을 만드는 과정에서 발생하는 문제점에 대한 적절한 해결 방법을 제공하기 위함이기 때문이다. 컴퓨터 시스템의 근본적인 목적은 사용자 프로그램을 실행하고, 사용자의 문제를 보다 쉽게 해결 해 주는 것이다. 이러한 목적을 이루기 위해 컴퓨터 H/W가 제작이 된다. 하지만 순수 H/W만으로는 사용이 쉽지 않기 때문에 응용프로그램이 개발이 되었다. 이 다양한 프로그램들은 입출력 장치의 제어와 같은 공통적인 연산을 필요로 한다. 여기에 자원을 제어하고 할당하는 공통 기능을 하나의 S/W로 통합한 것이 OS이다.
OS는 1MB 미만의 공간을 차지하는 경우도 있을 수 있고 몇 GB의 공간을 차지하는 경우도 있을 수 있다. OS는 컴퓨터에서 항상 실행되는 하나의 프로그램으로, 일반적으로 커널(kernel) 이라고 불린다. 커널과 함께 다른 두 유형의 프로그램으론 시스템 프로그램(system programs), 응용 프로그램(application programs)가 존재한다.
- kernel : OS는 컴퓨터에서 항상 실행되는 하나의 프로그램으로, 일반적으로 kernel 이라고 부른다.
- System programs : OS와 연관되어 있으나 반드시 kernel 에 포함이 될 필요는 없는 프로그램 이다.
- Application programs : 시스템 작동과 관계없는 모든 프로그램을 의미한다.
참고문헌 : 책정보, Operating System Concepts 에센셜 : 네이버 책 (naver.com)
'Computer Science > Operating System' 카테고리의 다른 글
| 프로세스(Process)란? (0) | 2022.10.29 |
|---|---|
| 프로세스 스케줄링(Process scheduling) (0) | 2022.10.27 |
| 프로세스(Process)와 스레드(Thread)의 차이 (0) | 2022.10.21 |
댓글