일상 속 운영체제   

 

 OS(Operating System)라고 일컫는 운영체제는 일반 컴퓨터나 노트북의 전원을 켜면 가장 먼저 만나게 되는 소프트웨어이며 대표적인 예로 윈도우, 유닉스, 리눅스, 안드로이드, iOS 등이 있다.

 

 또한, 컴퓨터와 스마트폰 뿐만 아니라 MP3 플레이어, 내비게이션, PMP, 전자사전 등에도 운영체제가 있다. 이처럼 CPU의 성능이 낮고 메모리 크기도 작은 시스템에 내장하도록 만든 운영체제를 임베디드 운영체제 또는 임베디드 시스템이라고 한다. 

 

 임베디드 운영체제를 사용하는 기계와 그렇지 않은 기계는 차이가 있는데 운영체제가 없는 MP3 플레이어는 처음 구현한 기능 외에 다른 기능을 추가할 수 없다. 하지만, 임베디드 운영체제가 있는 기계는 음질을 향상하거나 다양한 종류의 음악 파일을 지원하도록 기능을 추가할 수 있다. 블루투스(무선 통신)을 이용하여 MP3 파일도 공유할 수 있다. 유선 전화기와 스마트폰도 마찬가지이다. 다시 말해, 임베디드 운영체제가 있는 기계는 기능을 계속 향상시킬 수 있다.  

 


 

   운영체제의 필요성  

 

 초기의 컴퓨터는 정해진 계산만 수행했기 때문에 특별한 사용 규칙이 필요 없었다. 하지만, 시대가 변함에 따라 메모리, CPU 등의 성능이 향상되고, 여러 작업을 동시에 수행할 수 있는 기능이 조성되면서 사용 규칙이 필요해졌다. 복잡한 작업 환경에 사용 규칙이 없으면 기계를 망가뜨릴 수 있기 때문에 등장한 것이 운영체제이다. 

 

 운영체제가 있는 기계는 새로운 기능의 추가나 성능의 변경이 가능하므로 성능 및 효율성을 꾀할 수 있으며, 이러한 기계를 프로그램이 가능한(programmable) 기계라고 부른다.  

 

 그렇다면 운영체제는 성능을 향상하는데에만 필요할까? 운영체제는 성능 향상뿐 아니라 자원 관리라는 중요한 역할도 한다. 우리는 컴퓨터를 사용할 때 웹 브라우저, 채팅, 음악 재생 소프트웨어 등을 동시에 사용한다. 이러한 소프트웨어를 응용 프로그램(application program)이라고 한다. 

 

하지만, 많은 응용 프로그램에 비해 컴퓨터를 구성하는 장치는 매우 제한적이다. 즉, 대부분이 하나의 키보드, CPU, 메모리, 마우스, 모니터, 하드 디스크 등으로 이루어져 있어 각각의 응용 프로그램이 이 장치를 서로 독차지하려 한다. 이러한 문제를 해결하려면 자원을 관리하는 강력한 중재자가 필요하다. 이 중재자는 누구에게 먼저 키보드를 주어야 할지, 모니터를 주어야 할지 등을 결정하고 악의적인 응용 프로그램으로부터 보호하는 역할도 한다. 

 

 

 

   운영체제는 자원을 어떻게 관리할까?  

 

 기술이 발달하면서 메모리 크기가 커지고 하드 디스크, 마우스, 사운드 카드, 그래픽카 드, 네트워크 카드 등 다양한 주변장치가 등장하게 되었다. 이렇게 컴퓨터에 부착된 모든 장치를 컴퓨터 자원(Computer Resource)이라고 한다. 

 

 운영체제는 사용자가 직접 자원에 접근하는 것을 막음으로써 자원을 보호하고 관리한다. 예를 들어, 사용자가 하드 디스크에 데이터를 저장하는 경우라고 가정한다. 사용자는 하드 디스크의 특정 위치에 저장할 수 없으며 운영체제가 알아서 적당한 위치에 저장한다. 만약 사용자가 하드 디스크에 데이터를 저장할 수 있다면 악의적인 사용자가 데이터를 지우거나 덮어쓰는 일이 발생할 수 있다. 이 때문에 운영체제는 응용 프로그램과 사용자에게 모든 자원을 숨긴다. 

 

 대신 운영체제는 사용자가 자원을 이용할 수 있는 여러 방법을 제공한다. 한 예로 사용자가 저장하려는 데이터를 운영체제에게 주면 운영체제는 하드 디스크의 적당한 장소에 저장하고 번호표를 사용자에게 돌려준다. 이와 같이 사용자가 컴퓨터 자원을 사용할 수 있도록 해주고 그 결과를 알려주는 것을 인터페이스(Interface)라고 한다.

 

 좀 더 쉽게 설명하면 인터페이스는 자동차에서 핸들 및 계기판과 같다. 자동차는 엔진과 바퀴로 움직이지만 운전자가 핸들로 조종하고 계기판을 통해 현재 주행 상황을 인지한다. 마찬가지로 컴퓨터는 CPU와 메모리로 명령을 처리하지만 사용자가 키보드나, 마우스로 자료를 입력하고 출력 결과를 얻는다. 즉, 운영체제 인터페이스를 통해서만 컴퓨터 자원을 사용할 수 있다. 

 

 운영체제는 사용자가 컴퓨터를 보다 쉽게 사용할 수 있도록 다양한 인터페이스를 제공함으로써 컴퓨터 자원을 보호함과 동시에 사용자의 편의를 도모한다. 

 

 


 

   운영체제란 무엇인가?    

 

 운영체제는 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어이다. 

 

 레스토랑을 예로 들면, 손님이 레스토랑에서 음식을 주문하면 웨이터가 그 음식을 주방에 알려주고 손님은 주문한 음식을 제공받는다. 이 때, 손님은 주방에 들어갈 수 없다. 직접 조리하거나 주방 기구를 만지려 한다면 레스토랑 관리자가 저지할 것이다. 운영체제도 마찬가지이다. 사용자가 하드 디스크의 특정 위치에 저장하려고 하면 기존 데이터와 섞여 엉망이 되므로 운영체제가 중재하여 대신 데이터를 저장하고 꺼내준다. 

 

 다시 말해 운영체제는 여러 응용 프로그램에 컴퓨터 자원을 적절히 나누어주는 역할을 한다. 

 

 

 



   운영체제의 역할   

 

 ■ 자원 관리

       - 운영체제는 키보드, 마우스, 네트워크카드, 사운드카드등의 컴퓨터 자원을 응용 프로그램에 분배하여 사용자가 원할하게

       작업할 수 있도록 돕는다. 자원을 요청한 프로그램이 여러 개라면 적당한 순서로 자원을 배분하고 적절한 시점에 자원을 회

       수하여 다른 응용 프로그램에 나누어 준다.

 

 ■ 자원 보호

      - 컴퓨터 내의 자원을 악의적인 사용자나 미숙한 사용자로부터 보호하는 것도 중요하다. 어떤 응용 프로그램이 남의 영역을

       침범한다면 다른 사람의 작업을 망치거나 데이터를 지울 수 있기 때문에 비정상적인 작업으로부터 컴퓨터 자원을 지키는

       것이 중요하다.

 

 ■ 하드웨어 인터페이스 제공

      - 어떤 제품을 사용할 때마다 별도의 소프트웨어를 설치한다면 불편할 것이다. 하지만, 운영체제는 복잡한 과정 없이 다양한

      장치를 사용할 수 있도록 해주는 하드웨어 인터페이스를 제공한다. 하드웨어 인터페이스 지원은 드라이버를 컴퓨터에 설치

      해야 가능한데 운영체제는 하드웨어 인터페이스가 자동으로 설치되게 함으로써 하드웨어의 종류에 상관없이 사용할 수 있

      다. 

 

 ■ 사용자 인터페이스 제공

    - 과거에 유닉스 MS-DOS와 같은 운영체제로 작업할 때는 마우스 없이 키보드만 가능했다. 여러모로 불편하며 일반인이 사

    용법을 배우기가 쉽지 않았다. 하지만 운영체제가 사용자 인터페이스(Graphical User Interface)를 제공하므로 대부분의

    작업을 마우스로 수핼할 수 있다. 이처럼 운영체제를 편리할 수 있게 사용할 수 있도록 제공되는 기능이 사용자 인터페이스

    이다. 

 

 

 

 

 



   운영체제의 목표   

 

 

 

 ■ 효율성

       - 같은 작업량을 처리하는 데 보다 적은 자원을 효율적으로 사용하는 것이 중요하다. 효율적인 자원 관리는 다양한 방법으

       로 이루어질 수 있는데, 일반적으로 운영체제의 크기를 최소화하고 운영체제가 사용하는 코드를 최적화 하는 것이다.

 

 ■ 안정성

      - 운영체제가 불안하면 그 피해가 고스란히 사용자에게 돌아가기 때문에 운영체제는 안정성이 담보되어야 한다. 흔히 발생

       하는 예로 문서 작업을 하고 있는데 갑자기 컴퓨터가 다운되어버리는 일이 일어나서는 안된다. 이처럼 안정적이려면 사용

       자와 응용 프로그램의 안전 문제와 하드웨어적인 보안 문제를 처리할 수 있어야 하며 문제가 발생했을 때 이전으로 복구하

       는 결팜 포용 기능을 수행해야 한다.

 

 ■ 확장성

      - 운영체제는 다양한 시스템 자원을 추가하거나 제거하기 편리해야 한다. 즉, 확장성이 좋아야 한다. 하드웨어의 종류에 상

       관없이 꽂으면 바로 실행할 수 있는 플러그 앤 플레이 기능을 제공해야 한다. 

 

 ■ 편리성

   - 사용자에게 편리하게 작업할 수 있는 환경을 제공하는 것도 중요하다. 사용자에게 GUI를 제공하지 않고 텍스트만 사용하게

   하면 운영체제의 효율성은 높아질 수 있지만 사용자 입장에서는 엄청 불편할 것이다. 따라서, 응용 프로그램과 사용자에게 다

   양한 편리성을 제공하면서도 자원의 낭비 요소를 막아야 한다.

'운영체제 > 기초' 카테고리의 다른 글

6. CPU와 메모리(2)  (0) 2020.10.14
5. CPU와 메모리(1)  (0) 2020.10.06
4. 하드웨어의 기본 구성  (0) 2020.10.05
3. 운영체제의 구조  (0) 2020.10.05
2. 운영체제의 역사  (0) 2020.09.28