Programming/운영체제

[OS] 운영체제(Operating System)란 무엇일까?

망고밥 2020. 3. 29. 18:32

컴퓨터와 스마트폰을 사용해 본 사람은 누구나 운영체제를 접해 본 경험이 있을 것이다.

 

그렇지만 사용자들은 주로 응용 프로그램(App)을 통해 시스템을 사용하기 때문에 

 

운영체제의 존재를 인지하지 못할 수 있다.

 

그렇다면 운영체제는 도대체 무엇이고 왜 필요할까?


운영체제(Operating System)

 

시스템 하드웨어 관리뿐만 아니라 응용 프로그램의 실행을 제어하고, 입출력 장치와 사용자 사이에 인터페이스 역할을 하는 프로그램.

 

컴퓨터 시스템을 더 편리하게 사용할 수 있는 환경을 제공해주는 프로그램.

 

컴퓨터 시스템의 자원들을 효율적으로 이용할 수 있도록 제어해주는 프로그램.

 

이렇게 여러가지 관점에서 다양하게 정의할 수 있다!

 


시스템(System)

 

그렇다면 본질적으로 시스템은 무슨 뜻인지 궁금해진다.

 

시스템은 어떤 목적을 달성하기 위하여 여러 개의 구성요소들이 상호작용하여 결합된 하나의 집합체라고 한다.

 

그러면 운영체제도 하나의 시스템이니 목적과 구성요소가 있을 것이라는 생각이 자연스레 들게 된다.


운영체제의 목적과 필요성

 

운영체제들의 공통적인 목적은 크게 컴퓨터 시스템 자원의 효율적인 관리사용자의 편의성 제공 이 두가지라 할 수 있다.

 

컴퓨터 시스템 자원은 뭐가 있을까? CPU, 메모리, 디스크, 키보드 등의 하드웨어와 파일, 서비스 루틴 등의 소프트웨어가 있다.

 

이러한 자원들의 보유량은 제한적이다. 그래서 주어진 자원을 효율적, 경제적으로 관리하는 기능이 필요하다.

 

또한, 결국에 이 모든 것은 사람이 사용하려 하는 것이므로 사용자의 편의성을 제공하는 환경도 필수적이다.

 

이 두가지의 목표는 서로 이율배반적 관계이다. 왜일까?

 

사용자 편의성을 높이려면 자원의 양이 많아야 하는데, 자원의 양이 많아지면 자원의 이용률은 떨어지기 때문이다.

 

요리를 편하게 하기 위해서 요리 도구들을 종류별로 몽땅 사버렸는데 실상 요리할 때 사용하는 도구는 몇 개 안된다면,

 

요리 도구들의 이용률은 떨어진다고 할 수 있을 것이다. (이런 비유가 정확한지는 모르겠지만,,,이해를 위해서,,ㅎㅎ)

 

그래서 두 목적 사이의 적절한 조화가 필요할 것이다는 결론 땅땅!


운영체제의 구성요소

 

- CPU 관리 루틴

- 메모리 관리 루틴

- 파일 관리 루틴

- 입출력 장치 관리 루틴

- 사용자 인터페이스 관리 루틴

 

이러한 루틴들은 독립적인 것이 아닌 서로 부르고 불리는 관계로 유기적으로 연결되어 있다. => OS는 유기적으로 결합된 프로그램!


이 포스팅은 개념이해를 위한 운영체제를 참고하였습니다. 작성자가 배우는 단계에서 개념을 정리하기 위한 글이니, 오류가 있을 시 댓글로 피드백 해주시면 감사하겠습니다!