2. 운영체제 개요(1) - 역할과 구분

2025. 3. 24. 21:45
반응형

운영체제는 컴퓨터 시스템에서 핵심적인 역할을 담당하는 소프트웨어로, 하드웨어와 응용 프로그램 사이에서 중재자 역할을 하며 시스템 자원을 효율적으로 관리한다. 오늘은 운영체제의 주요 개념과 역할, 그리고 그 발전 과정을 살펴보겠다.

 

1. 운영체제의 역할

운영체제라는 개념이 다소 낯설게 느껴질 수도 있다. 간단히 말해, 운영체제는 컴퓨터 시스템의 자원을 효율적으로 관리하고 활용할 수 있도록 돕는 핵심적인 소프트웨어다. 또한, 응용 프로그램과 하드웨어 간의 중재자 역할을 수행하여 원활한 상호 작용을 가능하게 한다.

 

운영체제는 크게 사용자 인터페이스(편리성), 자원 관리(효율성), 시스템 관리(보안 및 안정성) 등의 역할을 수행한다. 즉,

사용자에게 직관적인 환경을 제공하고, 시스템 자원을 효과적으로 분배하며, 보안과 안정성을 유지하는 것이 운영체제의 핵심 기능이다.

 

운영체제의 주요 역할은 다음과 같이 세부적으로 나눌 수 있다.

 

1) 사용자 인터페이스 (User Interface)

운영체제는 사용자와 컴퓨터 간의 원활한 상호작용을 지원하는 인터페이스를 제공한다. 대표적인 방식은 다음과 같다.

 

  • CUI (Character User Interface): 명령어를 입력하여 사용하는 문자 기반 인터페이스
  • GUI (Graphical User Interface): 아이콘과 그래픽 요소를 활용한 직관적인 인터페이스 (예: Windows, macOS)
  • EUCI (End-User Comfortable Interface): 특정 사용자 환경에 최적화된 인터페이스

 

2) 자원 관리 (Resource Management)

운영체제는 하드웨어 및 소프트웨어 자원을 효율적으로 관리하여 프로그램이 원활히 실행되도록 한다.

  • 하드웨어 자원 관리: 프로세서, 메모리, I/O 장치 등
  • 소프트웨어 자원 관리: 파일 시스템, 응용 프로그램, 메시지 및 신호 처리 등
  • 프로세스 및 스레드 관리: 여러 작업을 효율적으로 실행하고 멀티태스킹을 지원

3) 시스템 관리 (System Management)

운영체제는 시스템의 보안과 안정성을 유지하고, 오류를 감지하여 복구하는 역할을 한다. 이를 통해 컴퓨터 시스템이 정상적으로 동작하도록 관리한다.

 

결국, 운영체제의 핵심 역할은 컴퓨터 시스템을 효율적으로 운영하고 보호하는 것이라고 볼 수 있다. 모든 기능이 관리와 직결되며, 운영체제는 이러한 관리 기능을 수행함으로써 사용자와 프로그램이 시스템을 원활하게 활용할 수 있도록 돕는다.

 

 

컴퓨터 시스템의 구조를 간단히 나타내면, 운영체제는 System Call Interface + Kernel + Resource Management로 구성된다고 볼 수 있다. 그 아래에는 운영체제가 관리하는 하드웨어 자원(CPU, 메모리, 저장 장치 등)이 위치하며, 위에는 운영체제의 서비스를 이용하는 응용 소프트웨어가 존재한다.

 

즉, 운영체제는 하드웨어와 소프트웨어 사이에서 중재자 역할을 하며, 시스템 자원을 효율적으로 관리하는 핵심 요소라고 할 수 있다.

 

2. 운영체제의 구분

운영체제는 동시 사용자 수, 동시 실행 프로세스 수, 작업 수행 방식에 따라 작동 방식이 달라진다. 이러한 기준에 따라 운영체제를 여러 유형으로 나눌 수 있으며, 각 운영체제는 특정 환경과 목적에 맞게 설계된다. 이것이 자세하게 어떻게 사용도는지 자세하게 서술해보도록 하겠다.

 

2.1. 동시 사용자 수

1) 단일 사용자 (Single-user system): 한명의 사용자만 시스템 사용 가능

  • 한 명의 사용자가 모든 시스템 자원 독점
  • 자원 관리 및 시스템 보로 방식이 간단함
  • 개인용 장비(PC, mobile) 등에 사용. 예로 들어 Window 7/10, android, MS-DOS 등

2) 다중 사용자 (Multi-user system): 동시에 여러 사용자들이 시스템 사용

  • 각종 시스템 지원(파일 등)들에 대한 소유 권한 관리 필요
  • 기본적으로 Multi-tasking 기능 필요
  • OS의 기능 및 구조가 복잡
  • 서버, 클러스터(cluster) 장비 등에 사용 예로 들어 Unix, Linux, Windows server 등이 있다.

* 질문: Windows에서 계정을 여러 개 사용하는 것은 다중 사용자 운영체제와 관련이 있을까?

Windows에서는 여러 개의 계정을 생성하여 사용할 수 있지만, 이를 다중 사용자 운영체제라고 보기는 어렵다. 여기서 "단일 사용자 운영체제"와 "다중 사용자 운영체제"의 구분은 동시에 여러 사용자가 시스템을 사용할 수 있는지 여부에 따라 결정된다.

 

즉, Windows에서 여러 개의 계정을 만들 수 있다고 해서 다중 사용자 운영체제가 되는 것은 아니다. Windows는 기본적으로 한 번에 한 명의 사용자만 인터페이스를 조작할 수 있는 구조이므로 단일 사용자 운영체제로 분류된다.

 

이 개념이 헷갈린다면, 서버 운영체제를 떠올려 보면 된다. 서버 운영체제는 여러 사용자가 동시에 원격으로 접속하여 작업할 수 있지만, 일반적인 Windows 환경에서는 한 사용자가 로그아웃해야 다른 사용자가 로그인할 수 있는 방식을 따른다.

 

따라서 Windows는 기본적으로 단일 사용자 운영체제에 해당한다.

2.2. 동시 실행 프로세스 수

1) 단일 작업 (Single-tasking system): 시스템 내에 하나의 작업(프로세스)만 존재

  • 하나의 프로그램 실행을 마친 뒤에 다른 프로그램의 실행
  • 운영체제의 구조가 간단
  • 예로 MS-DOS,  커멘더가 있다. 

2) 다중 작업 (Multi-tasking system): 동시에 여러 작업(프로세스)의 수행 가능

  • 작업 들 사이의 동시 수행, 동기화 등을 관리해야 함
  • 운영체제의 기능 및 구조가 복잡
  • 예로 들어 Unix/Linux, Windows가 있다. 

* 질문: 여러 개의 커맨더(Commander)를 실행하는 것은 무엇을 의미하는가?

여기서 말하는 개념은 단순히 여러 개의 창을 실행하는 것과는 다르다.

 

예를 들어, 두 개의 PowerPoint 프로그램이 실행된다고 해서 두 개가 동시에 작동하는 것은 아니다. 두 개의 PowerPoint는 같은 운영체제 내에서 여러 작업을 순차적으로 처리하는 방식으로 실행된다.

 

반면, 여러 개의 커맨더가 실행되는 경우, 두 개의 운영체제가 동시에 실행되는 상황이라고 볼 수 있다. 이는 하나의 작업이 빠르게 전환되어 처리되기 때문에 사용자에게는 두 작업이 동시에 처리되는 것처럼 보이지만, 실제로는 운영체제가 두 작업을 번갈아 가며 처리하는 것이다. 연산 속도가 빠르기 때문에 사용자는 이를 동시에 처리하는 것으로 인식할 수 있지만, 실질적으로는 빠른 시간 내에 작업이 전환되고 있는 것이다.

2.3. 작업 수행 방식 (사용자가 느끼는 사용 환경)

작업 수행 방식은 사용자가 경험하는 사용 환경에 따라 구분될 수 있다. 이는 사용자가 시스템을 어떻게 느끼고 상호작용하는지에 따라 달라지며, 운영체제의 효율성과 반응성에 중요한 영향을 미친다. 이는 다음과 같이 구분할 수 있다.

  • 배치 처리 시스템 (Batch Processing System)
  • 시분할 시스템 (Time-sharing System)
  • 병렬 처리 시스템 (Parallel Processing System)
  • 분산 처리 시스템 (Distributed Processing System)
  • 실시간 시스템 (Real-time System)

이 순서는 년도 순서대로 설명해보도록 하겠다. 이제는 사용되지 않는 것도 소개해보도록 하겠다.

 

1) 순차 처리 (~ 1940s)

순차 처리는 현재 거의 사용되지 않는 방식으로, 과거에는 구멍을 뚫어 코딩하는 방식이 주로 사용되었다. 이 방식에서는 처리 속도가 빠를 때도 있었고, 느릴 때도 있었다. 그 이유는 사용하는 언어에 따라 미리 준비해야 할 작업들이 달라지기 때문이다. 예를 들어, 파이썬과 자바가 없던 시절에 이를 비유하자면, 처음 파이썬을 사용하려면 해당 언어에 맞는 준비가 필요하고, 자바를 사용할 때도 그에 맞는 준비가 필요하다.

 

이러한 준비 과정은 비효율적이며, 그로 인해 시간과 비용이 많이 든다는 문제점이 있었다.

 

2) Batch processing system (1950s ~ 1960s)

 

배치 처리 시스템은 여러 작업을 모은 후 한 번에 처리하는 방식이다. 사용자는 코드를 작성하고 나서 일정 시간 동안 기다려야 하며, 작업이 일괄적으로 처리된다. 이 시스템은 운영자에게는 효율적이었지만, 사용자는 자신의 작업을 완료한 후 결과를 받기까지 시간이 많이 소요되는 단점이 있었다.

 

3) Time-sharing system (1960s ~ 1970s)

 

시간이 지나면서 CPU를 효율적으로 활용하기 위한 Time-sharing 시스템이 도입되었다. 이 시스템에서는 컴퓨터 자원을 여러 사용자가 동시에 공유할 수 있게 되었고, 자원은 시간을 분할하여 각 사용자에게 할당되었다. 즉, 하나의 컴퓨터 자원을 여러 사용자가 동시에 사용할 수 있는 형태로 운영되었다.

 

하지만 이 시스템의 단점은 한 번에 하나의 작업만 처리할 수 있다는 점이었다. 즉, 한 작업이 끝난 후에야 다음 작업이 시작되므로 동시에 여러 작업을 처리할 수 없었다.

 

이 시점부터 컴퓨터는 사용자 중심으로 발전하기 시작했다.

 

Time-sharing 시스템의 장점은 응답 시간이 기존의 6시간에서 5초로 단축된 것이다. 그러나 단점으로는 통신비용의 증가와 보안 문제가 발생했다. 또한, 많은 사용자가 동시에 시스템을 이용하면서 개별 사용자 체감 속도가 저하되는 현상도 발생했다.

 

4) Personal Computing

과거에는 다중 사용자 환경에서 여러 사람이 하나의 장비를 공유하는 것이 주요 목적이었다. 당시에는 CPU 활용률이 가장 중요한 고려 요소였으나, 이제는 상황이 달라졌다.

 

그렇다면, 왜 이러한 변화가 일어났을까? 우리는 단순히 속도 문제를 해결하기 위해 성능이 뛰어난 컴퓨터를 구매하게 되었다. 초기 컴퓨터는 주로 개인 용도로 개발되었고, 사용자가 혼자서 컴퓨터를 사용하는 방식으로 발전했다. 이때는 CPU가 수행하는 작업에 대한 관심이 상대적으로 적었다.

 

시스템이 느려지면, 일반적으로 새로운 컴퓨터를 구입하는 것으로 문제를 해결했다. 그 결과, 사용자 경험(UI)이 중요한 요소로 떠오르며, 운영체제(OS)는 단순성을 유지하면서도 다양한 기능을 제공하는 방향으로 발전했다.

 

그러나 이러한 변화 속에서 성능 저하와 같은 새로운 문제가 발생하기도 했다.

 

5) Parallel Processing System

PC 컴퓨터의 성능 문제를 해결하기 위해 병렬 처리 시스템(Parallel Processing System)이 등장했다. 이 시스템은 단일 시스템 내에서 둘 이상의 프로세서를 사용하여 작업을 병렬로 처리하는 방식이다. 여러 프로세서는 메모리와 다른 자원을 공유하면서 작업을 분담하여 더 빠르고 효율적인 처리를 가능하게 한다.

 

하지만 이 방식의 단점은 프로세서 간의 관계 관리와 동기화 문제, 그리고 자원 할당이 복잡하다는 점이다. 여러 프로세서가 협력해야 하므로 각 프로세서가 어떻게 자원을 사용하고, 작업을 분배하고, 결과를 처리할지에 대한 관리가 필요하다.

 

6) Distributed processing system (1970s ~ 현재)

 

이 시점부터 운영체제의 개념이 명확히 정립되었으며, 그 이전에는 다양한 시스템들이 운영체제의 역할을 어느 정도 수행했었다. 이 시기부터는 '운영체제'라는 용어가 본격적으로 사용되기 시작했으며, 웹 서버, 프린터 서버, DB 서버 등 다양한 기기들이 운영체제를 갖추게 되었다.

 

분산 처리 시스템은 네트워크 기반으로 구축된 병렬 처리 방식으로, 물리적으로 분리된 컴퓨터들이 통신망을 통해 상호 연결되어 자원을 공유하는 구조이다. 이 시스템은 여러 장치가 상호 작용하며 하나의 큰 시스템처럼 동작하는 형태를 띤다.

이 시스템의 큰 장점은 자원 공유를 통해 높은 성능, 고신뢰성, 확장성을 제공한다는 점이다. 그러나 단점으로는 시스템의 구축과 관리가 복잡하고 어려운 점이 있다.

 

7) Real-time system

마지막으로 제한 시간을 갖는 운영체제도 있다. 이것의 경우에는 Hard, Soft, Non으로 나뉘게 되는게 점차 덜 치명적이다는 것으로 구분이 가능하다. 이것은 제한시간이 있어야하는 시스템에 적용이 되어 사용된다. 

 

이외에도 운영체제에 대한 또 다른 이야기는 다음 포스터에서 하도록 하겠다. 

반응형

BELATED ARTICLES

more