운영체제의 개요
1 운영체제의 정의
소프트웨어를 잘 알지 못하는 사람도 '운영체제'란 단어는 한 번쯤 들어 보았을 것이다. 운영체제(Operating System)는 줄여서 'OS'라고도 하며, 컴퓨터나 노트북 전원을 켜면 가장 먼저 만나는 소프트웨어다.
일상생활 속 운영체제
운영체제에는 대형 컴퓨터에서 사용하는 유닉스 외에 개인용 컴퓨터에서 사용하는 윈도우, 맥 OS, 리눅스 등이 있다. 스마트폰에서도 운영체제가 있다. 이러한 운영체제를 모바일 운영체제라고 하는데, 애플의 iOS와 구글의 안드로이드가 대표적이다.
운영체제는 컴퓨터나 스마트폰에만 존재하는 것은 아니다. MP3 플레이어, PMP(Personal Media Player
), 내비게이션, 스마트 시계, 스마트 TV에도 존재한다. 이처럼 CPU 성능도 낮고 메모리 크기도 작아 시스템에 내장할 수 있도록 만든 운영체제를 임베디드 운영체제(embedded operating system)라고 한다. 가전제품 같은 작은 시스템에 들어가는 컴퓨터를 임베디드 시스템(embedded system)이라고 했다. 임베디드 운영체제는 임베디드 시스템에 들어간다. 임베디드 운영체제는 CPU 성능이 낮고 메모리 크기가 작은 기계에 설치되기 때문에 일반 운영체제에 비하여 몇 가지 기능이 빠져 있다. 운영체제를 사용하는 기계와 그렇지 않은 기계에는 많은 차이가 있다. 예를 들어 운영체제가 없는 MP3 플레이어는 처음 만들 때 구현한 기능 외에 다른 기능은 사용할 수 없다. 그러나 임베디드 운영체제가 있는 MP3 플레이어는 음질을 향상시키거나 MP3 파일 이외에 FLAC, OGG, ACC 같은 다양한 종류의 음악 파일을 지원하도록 기능을 추가할 수 있다. 또 무선통신을 활용하여 인터넷에서 MP3 파일을 다운로드하거나 다른 사람과 MP3 파일을 공유할 수도 있다. 다시 말해, 운영체제가 있는 MP3 플레이어는 계속 기능을 향상 시킬 수 있다. 또 다른 예를 생각해 보자 유선 전화기는 통화 기능 이외에는 특별한 기능이 없다. 반면에 운영체제를 사용하는 스마트폰에서는 응용프로그램인 어플을 설치함으로써 게임이나 내비게이션 같은 기능을 사용할 수 있다. TV도 마찬가지다. 운영체제가 없는 TV는 단순히 화면만 보여주지만, 운영체제를 탑재하면 TV 시청뿐 아니라 동영상 감상, 인터넷 서핑, 쇼핑 등 다양한 기능을 사용할 수 있다. 최근 안드로이드 OS나 애플 OS를 탑재한 TV를 출시했다.
운영체제의 역할
운영체제가 없는 컴퓨터도 작동은 한다. 세계 최초의 컴퓨터로 알려진 애니악도 운영체제없이 작동했다. 그러면 운영체제는 왜 필요할까? 운영체제 역할을 살펴보면서 이해해 보자.
◼︎ 성능 향상
운영체제가 없는 에니악도 컴퓨터라고 하는 것은 프로그래밍이 가능했기 때문이다. 지금은 키보드에서 입력하여 프로그래밍하지만, 에니악은 진공관과 진공관을 전선(wire)으로 연결하여 회로를 구성함으로써 프로그래밍 효과를 얻었다. 우리는 어떤 변화를 주어 기능을 바꿀 수 있는 기계를 '컴퓨터'라고 한다. 이러한 관점에서 에니악은 컴퓨터가 맞다. 다만 에니악에서 새로운 기능을 구현하려면 매번 회로를 변경해야 하는 번거로움이 있고, 다소 복잡한 기능은 구현하기 어렵다는 단점이 있을 뿐이다. 운영체제가 있는 기계는 새로운 기능을 추가하거나 성능을 변경시키는 것이 가능하므로 성능 및 효율성 향상을 꾀할 수 있다.
◼︎ 자원 관리
운영체제는 성능 향상하는 데도 필요하지만, 자원 관리(resource management)라는 중요한 역할도 맡고 있다. 많은 사람이 컴퓨터를 사용할 때 워드프로세서, 웹 브라우저, 채팅, 음악 재생 소프트웨어 등을 동시에 실행한다. 이러한 소프트웨어를 응용 프로그램(application program)이라고 한다. 그런데 많은 응용 프로그램에 비해 컴퓨터를 구성하는 장치는 매우 제한적이다. 대부분 하나의 키보드, CPU, 메인메모리, 모니터, 마우스, 하드디스크로 구성된다. 따라서 응용 프로그램들은 제한된 장치를 서로 독차지하려고 한다. 예를 들어 워드프로세서와 채팅 프로그램을 동시에 실행한다고 가정해 보자. 두 프로그램다 모니터와 키보드가 필요하기 때문에 이들을 독차지하려고 싸울 것이다. 최악의 경우 어떤 응용 프로그램은 CPU나 모니터를 혼자 독차지하려고 하거나, 다른 응용 프로그램을 파괴하려고 할 것이다. 이러한 문제를 해결하려면 자원을 관리하는 강력한 중재자가 필요하다. 자원을 누구에게 줄지 결정하는 강력한 중재자가 운영체제다.
◼︎자원 보호
컴퓨터 내 많은 자원을 관리하는 것도 중요하지만, 자원을 악의적인 혹은 미숙한 사용자에게서 보호(resource protection)하는 것도 매우 중요하다. 고의가 아니라고 해도 어떤 응용 프로그램이 자신의 작업 영역을 넘어 남의 영역을 침범한다면 다름 사람의 작업을 망치거나 데이터를 지울 수 있기 때문이다. 이러한 비정상적인 작업에서 컴퓨터 자원을 지키는 것도 운영체제 역할 중 하나다.
◼︎ 사용자 인터페이스 제공
운영체제의 마지막 역할은 사용자 인터페이스 제공이다. 과거에 유닉스, MS-DOS 같은 운영체제로 작업할 때는 마우스 없이 키보드만 사용했기 때문에 여러모로 불편했고 일반인이 사용 방법을 배우기도 쉽지 않았다. 그러나 지금은 운영체제가 그래픽 사용자 인터페이스(GUI)를 젲공하므로 대부분의 작업을 마우스로 수행한다. 나아가 스마트폰에는 터치스크린을 적용하여 컴퓨터보다 편리한 인터페이스를 제공한다. 손가락을 좌우로 움직이면 화면이 넘어가고 손가락 2개를 모았다 벌리면 사진이 줄어들었다 커지는 등 편리한 인터페이스를 제공하는 것도 운영체제의 역할이다.