reference : [도서] 쉽게 배우는 운영체제


 

1.1 일상생활 속의 운영체제

운영체제(Operating System, OS)는 PC를 켜면 가장 먼저 만나게 되는 소프트웨어로, 소프트웨어에 익숙하지 않은 사람도 한 번쯤 들어봤을 단어이다. PC에는 Windows, Mac, Linux 등의 운영체제가 있고, 스마트폰에도 운영체제가 쓰이는데 대표적으로 구글의 안드로이드와 애플의 iOS가 대표적이다.

 

 

조금 더 기술적으로 이야기하자면, 하드웨어와 소프트웨어를 모두 관리하며 사용자가 장비를 편리하게 사용하고 장비의 자원을 효율적으로 관리할 수 있도록 환경을 제공하는 소프트웨어이다. 엄밀하게 말하면 PC 뿐만 아니라 게임기에서 전원을 켜고 게임을 골라서 동작하도록 관리하는 시스템도 운영체제이다.  

컴퓨터와 스마트폰 외에도 내비게이션, 스마트워치, 스마트 TV 등 다양한 제품에도 운영체제가 기본적으로 탑재되어 있다. 이처럼 CPU의 성능이 낮고 메모리가 작은 시스템에 내장하도록 만든 운영체제를 임베디드(embedded) 운영체제, 임베디드 시스템이라고 한다. 이런 식으로 전자기기에 공장 출고시 설치되며 응용 프로그램 설치를 통한 기능 추가를 할 수 없는 것은 보통 펌웨어(firmware)라고 부른다. 이런 기기들은 펌웨어 자체가 일종의 응용 프로그램 역할을 한다.

임베디드 운영체제를 사용하는 기계와 아닌 기계는 큰 차이가 있는데, 임베디드 운영체제가 없으면 제작 당시 구현한 기능 외에 다른 기능을 추가할 수 없다. 만약 임베디드 운영체제가 있으면, 부가적인 기능을 추가하거나 무선 통신을 이용할 수 있다. 그래서 유선 전화기는 통화 기능만 사용 가능하고, 무선 전화기는 통화 외에도 게임을 하거나 내비게이션 등으로 사용할 수 있다.

 

1.2 운영체제의 필요성

초기의 컴퓨터는 연산 기능만 수행했지만 점점 하드웨어가 업그레이드되며 메모리, CPU 등의 성능이 향상되며 연산 기능 외에도 다양한 작업을 동시에 수행할 수 있게 되었다. 컴퓨팅 환경이 바뀌며 사용 규칙이 필요해졌고, 이 때 등장한 것이 운영체제이다.

운영체제가 없는 기계는 작동이 불가능할까? 운영체제는 단순히 멀티플레이를 위해 필요한걸까? 에 대한 궁금증을 풀어보자.

  • 컴퓨터는 운영체제가 없어도 작동할까? 작동한다. 세계 최초의 컴퓨터인 에니악(ENIAC)은 운영체제도 없고 키보드와 모니터도 없었다. 에니악은 진공관을 전선으로 연결하여 회로를 구성했고 이를 컴퓨터라 부르는 이유는 기능을 바꿀 수 있는 기계이기 때문이다. 하지만 에니악이 새로운 기능을 구현하려면 매번 회로를 변경해야 하고 복잡한 기능은 구현이 어렵다.

  • 운영체제가 있는 기계와 없는 기계는 어떤 차이가 있을까? 운영체제의 존재 여부는 앞서 언급했듯이 부가 기능 추가 여부와 같다. 그러므로 운영체제가 있다면 컴퓨팅 성능 및 효율성의 향상도 가능하다.

  • 운영체제는 성능 향상에만 필요할까? 운영체제는 성능 향상뿐 아니라 자원 관리의 역할도 한다. 우리가 PC에서 사용하는 다양한 프로그램을 응용 프로그램이라고 한다. 하지만 대부분이 하나의 입출력장치(키보드,마우스,cpu,모니터) 로 이루어져있기 때문에 각 응용 프로그램은 이 장치를 독차지하려고 한다. 예를 들어 워드 프로세서와 메신저를 동시에 사용한다면 두 프로그램 모두 입출력장치를 독차지하려 하거나 다른 응용 프로그램을 파괴하려 할 것이다. 이를 해결하기 위한 강력한 중재자 역할을 하는 것이 운영체제이다. 누구에게 키보드를 먼저 줄 지, 누구에게 모니터를 먼저 줄 지 등을 결정한다.

  • 운영체제는 자원을 어떻게 관리하는가? 컴퓨터에 부착된 모든 장치를 컴퓨터 자원(computer resource)이라 하는데, 운영체제는 사용자가 장치에 직접 접근하는 것을 막음으로써 자원을 보호한다. 예를 들어 자료를 저장할 때, 하드 디스크의 특정 위치에 저장하는 것이 아니라 운영 체제에게 부탁을 함으로써 운영체제가 알아서 적당한 위치에 저장한다. 외부에서의 악의적인 침입을 막기 위해 모든 응용 프로그램을 직접적으로 노출하지 않거나 자원을 숨기기도 한다.

  • 사용자는 숨어 있는 자원을 어떻게 이용할 수 있을까? 운영체제는 사용자가 직접 자원을 접근하지 못하게 하지만 간접적으로 접근할 수 있도록 여러 방법을 제공한다. 사용자는 하드 디스크에 자료가 저장된 위치는 알 수 없지만, 우리가 사물함에 번호를 부여하고 그 번호표로 사물함에 접근하듯이 사용자가 데이터를 사용할 수 있도록 번호표를 나눠준다. 번호표를 통해 데이터를 꺼내거나 수정, 삭제하도록 하는 시스템을 인터페이스(interface)라고 한다. 운영체제는 다양한 인터페이스를 제공함으로써 사용자의 편의를 도모한다.

1.3 운영체제의 정의

운영체제를 레스토랑에 빗대어 비유하자면, 손님이 음식을 주문하고 직원이 메뉴를 주방에 알려주어 주문한 음식을 제공받는 과정과 같다. 하지만 손님이 주방에 들어가서 조리기구를 만지거나 직접 조리를 할 수는 없다. 그렇게 한다면 주방이 어지럽혀지기 때문이다. 운영체제도 마찬가지로 사용자가 직접 하드디스크에 접근할 수 없고 운영체제를 통해 전달받을 수 있다. 

쉽게 말하자면 인터페이스는 마치 자동차의 핸들, 계기판과 같다. 자동차는 엔진과 바퀴로 움직이지만 운전자가 핸들로 조종하고 계기판으로 주행 상태를 인지하듯이 컴퓨터는 CPU와 메모리로 움직이지만 사용자가 키보드, 마우스로 여러가지 입출력 기능을 할 수 있다. 즉, 운영체제 인터페이스를 통해서만 컴퓨터 자원을 사용할 수 있다.

 

1.4 운영체제의 역할

  • 자원관리
    컴퓨터로 문서를 작성하고 서핑을 하는 등의 과정에서 사용하는 컴퓨팅 자원을 응용 프로그램에 나누어 사용자가 원활하게 작업할 수 있도록 돕는다. 만약 프로그램이 여러개라면 우선 순위에 따라 적당한 순서로 배분하고, 사용자가 사용하지 않는다면 다시 회수하는 등의 작업을 한다.

  • 자원보호
    자원을 관리할뿐만 아니라 악의적인 사용자나 미숙한 사용자로부터 자원을 보호한다. 그렇기에 비정상적인 작업에 있어서 자원을 지키려고 한다.

  • 하드웨어 인터페이스 제공
    운영체제는 다양한 하드웨어를 일관된 방법으로 사용할 수 있도록 지원하기 때문에, 우리는 어떤 회사에서 만든 하드웨어인지 신경쓸 필요 없다. 하드웨어가 운영체제가 상호작용하려면 드라이버를 설치해야 하지만, 대부분의 경우 자동으로 설치된다. 일부 수동 설치가 필요한 드라이버를 하드웨어 인터페이스라고 한다.

  • 사용자 인터페이스 (User Interface) 제공
    사용자가 운영체제를 편리하게 사용하도록 지원하는 것이다. 과거 MS-DOS 등의 운영체제에서는 키보드만 사용했지만 요즘은 마우스나 터치스크린 등을 지원하여 편리한 인터페이스를 사용할 수 있다. 이처럼 사용자의 편의를 위해 제공되는 기능이 사용자 인터페이스이다.

 

1.5 운영체제의 목표

 

 

  • 효율성
    '자원 관리'란 같은 자원을 관리하더라도 효율적으로 해야한다는 것이다. 적은 자원을 활용하여 같은 작업량을 처리하거나, 같읕 자원을 활용하여 더 빠른 작업 속도를 보여주는 등의 결과를 통해 확인할 수 있다. 일반적으로 운영체제의 크기를 최소화하고 운영체제가 사용하는 코드를 최적화함으로써 이루어진다.

  • 안정성
    하드웨어 전체를 관리하기 때문에 사용자와 응용프로그램은 운영체제 위에서 작업을 한다고 볼 수 있다. 만약 운영체제가 불안정하면 모든 작업이 불안하고 사용자가 고스란히 불편함을 겪기 때문에, 운영체제에서는 안정성이 굉장히 중요하다. 갑자기 PC가 꺼지거나 멈추는 일이 일어나면 안 된다.

  • 확장성
    자원을 추가/제거하는 것이 편리해야 한다. 이를 확장성이 좋다고 하는데, 운영체제는 하드웨어 종류에 상관없기 꽂으면 바로 실행할 수 있는 plug & play 기능을 제공해야 한다. 또한 하드웨어 제작자의 편리성도 고려해야 한다.



  • 편리성
    무엇보다도 중요한 것이 사용자의 편리성이다. 사실 운영체제 입장에서는 효율성만 높이는 것은 어렵지 않다. 사용자에게 GUI를 제공하지 않고 텍스트만 사용하게 하면 훨씬 효율적일 것이다. 하지만 사용자가 불편해 하기 때문에 그렇게 하지 않는다. 운영체제는 무엇보다도 응용 프로그램과 사용자에게 다양한 편리성을 제공해야 하기 때문이다.

 

+ Recent posts