Computer Science/운영체제

[운영체제] 운영체제의 역할과 목표

웅지니어링 2022. 12. 23. 01:00

* 운영체제의 역할

1. 자원 관리

우리는 컴퓨터로 문서를 작성하고, 음악을 듣고, 인터넷 서핑을 한다. 이 때 키보드, 네트워크 카드, 사운드 카드 등의 컴퓨터 자원을 사용하는데, 운영체제는 이러한 자원을 응용 프로그램에 나누어주어 사용자가 원활하게 작업할 수 있도록 돕는다. 만약 자원을 요청한 프로그램이 여러 개라면 적당한 순서로 자원을 배분하고 적절한 시점에 자원을 회수하여 다른 응용 프로그램에 나누어준다.

 

2. 자원 보호

컴퓨터 내의 많은 자원을 관리하는 것뿐만 아니라 악의적인 사용자나 미숙한 사용자로부터 자원을 보호하는 것도 매우 중요하다. 고의가 아니더라도 어떤 응용 프로그램이 남의 영역을 침범한다면 다른 사람의 작업을 망치거나 데이터를 지울 수도 있기 때문이다. 이러한 비정상적인 작업으로부터 컴퓨터 자원을 지키는 것도 운영체제의 역할 중 하나이다.

 

3. 하드웨어 인터페이스 제공

우리는 다양한 종류의 하드웨어를 사용한다.마우스만 해도 버튼이 2개인 것과 3개인 것, 휠이 있는 것과 없는 것 등 다양한 제품이 있다. 어떤 제품을 사용할 때마다 별도의 소프트웨어를 설치해야 한다면 아주 불편할텐데, 운영체제는 복잡한 과정 없이 다양한 장치를 사용할 수 있도록 해주는 하드웨어 인터페이스를 제공한다. 운영체제는 CPU, 메모리, 키보드, 마우스와 같은 다양한 하드웨어를 일관된 방법으로 사용할 수 있도록 지원하기 때문에 우리는 어떤 회사에서 만든 하드웨어인지 신경 쓸 필요가 없다. 하드 인터페이스 지원은 드라이버를 컴퓨터에 설치해야 가능하다. 드라이버는 하드웨어 장치와 상호작용하기 위해 만들어진 컴퓨터 프로그램으로 장치 드라이버, 디바이스 드라이버, 장치 제어기, 소프트웨어 드라이버라고도 부른다. 운영체제는 하드웨어 인터페이스가 자동으로 설치되게 함으로써 하드웨어의 종류에 상관없이 사용할 수 있게 해준다.

 

4. 사용자 인터페이스 제공

하드웨어 인터페이스가 다양한 부품을 편리하게 사용하기 위한 것이라면, 사용자 인터페이스는 사용자가 운영체제를 편리하게 사용하도록 지원하기 위한 것이다. 과거에 유닉스, MS-DOS와 같은 운영체제로 작업할 때는 마우스 없이 키보드만 사용했기 때문에 여러모로 불편했고 일반인이 사용법을 배우기가 쉽지 않았다. 그러나 지금은 운영체제가 그래픽 사용자 인터페이스(Graphical User Interface, GUI)를 제공하므로 대부분의 작업을 마우스로 수행한다. 손가락을 좌우로 움직이면 화면이 넘어가고 손가락 2개를 모았다 벌리면 사진이 줄어들었다 커지는 등 운영체제를 편리하게 사용할 수 있도록 제공하는 기능이 사용자 인터페이스이다.

 

* 운영체제의 목표

운영체제가 지향하는 목표는 여러 가지인데, 운영체제의 역할과 연결지어 목표를 살필 수 있다.

 

1. 효율성

운영체제의 목표는 자원을 효율적으로 관리하는 것이다. 이는 운영체제의 역할 중 '자원 관리'와 연관되는 것으로, 같은 자원을 관리하더라도 효율적으로 관리해야 한다. 적은 자원을 사용하여 결과를 빨리 보여주는 것이 효율적인 운영체제이다. 다시 말해 같은 자원을 사용하여 더 많은 작업량을 처리하거나, 같은 작업량을 처리하는 데 보다 적은 자원을 사용하는 것이다. 효율적인 자원 관리는 다양한 방법으로 이루어질 수 있는데, 일반적으로 운영체제의 크기를 최소화하고, 운영체제가 사용하는 코드를 최적화해야 한다. 효율적인 자원 관리는 다양한 방법으로 이루어질 수 있는데, 일반적으로 운영체제의 크기를 최소화하고, 운영체제가 사용하는 코드를 최적화해야 한다.

 

2. 안정성

운영체제는 하드웨어 전체를 관리하는 소프트웨어로, 사용자와 응용 프로그램은 운영체제 위에서 작업을 한다고 볼 수 있다. 따라서 운영체제가 불안정하면 모든 작업이 불안할 수밖에 없다. 운영체제가 불안하면 그 피해가 고스란히 사용자에게 돌아가기 때문에 운영체제는 안정성이 담보되어야 한다. 안정성은 운영체제의 역할 중 '자원 보호'와 연관된다. 운영체제가 안정적이려면 사용자와 응용 프로그램의 안전 문제와 하드웨어적인 보안 문제를 처리할 수 있어야 하며, 시스템에 문제가 발생했을 때 이전으로 복구하는 결함 포용 기능을 수행해야 한다.

 

3. 확장성

운영체제는 다양한 시스템 자원을 추가하거나 제거하기가 편리해야 한다. 즉 확장성이 좋아야 한다. 이는 운영체제의 역할 중 '하드웨어 인터페이스 제공'과 연관되는 것으로, 운영체제는 하드웨어의 종류에 상관없이 꽂으면 바로 실행할 수 있는 플러그 앤드 플레이 기능을 제공해야 한다. 또한 앞으로 개발될 하드웨어도 제약 없이 사용할 수 있도록 확장성을 보장하려면 사용자의 편리성뿐만 아니라 하드웨어 제작자의 편리성도 고려해야 한다.

 

4. 편리성

사용자가 편리하게 작업할 수 있는 환경을 제공하는 것 또한 운영체제의 목표이다. 이는 운영체제의 역할 중 '사용자 인터페이스 제공'과 연관된다. 사실 운영체제의 입장에서는 효율성만 높이려면 응용 프로그램이나 사용자에게 제약을 가하면 된다. 예를 들어 사용자에게 GUI를 제공하지 않고 텍스트만 사용하게 하면 운영체제의 효율성이 높아지고 컴퓨터의 속도가 빨라진다. 그러나 사용자는 마우스를 사용할 수 없어 키보드로만 명령을 내리는 불편을 감수해야 한다. 또 다른 예로, 응용 프로그램의 효율성을 높이기 위해 메모리를 100MB 이상 사용하지 못하게 하거나 하드디스크의 사용 공간을 제약하면 시스템의 효율성이 높아질 것이다. 그러나 이러한 제약은 사용자를 불편하게 할 뿐 아니라 다양한 응용 프로그램의 개발을 방해한다. 따라서 응용 프로그램과 사용자에게 다양한 편리성을 제공하면서도 자원의 낭비 요소를 막아야 한다.