본문으로 건너뛰기

운영체제의 개요

1. 운영체제의 정의 및 역할

운영체제(Operating System; OS) 는 컴퓨터 하드웨어를 관리하는 소프트웨어로서, 응용 프로그램이나 사용자가 컴퓨터 하드웨어를 편리하고 효율적으로 사용할 수 있도록 시스템 자원(프로세서, 메모리 등)을 관리하고 공통적인 서비스를 제공하는 소프트웨어입니다.

주요 역할

  • 사용자와 컴퓨터 간의 인터페이스 제공: 사용자가 복잡한 하드웨어에 직접 접근하는 것을 막고, 다양한 인터페이스(문자 기반, GUI, 터치스크린, 음성 등)를 통해 자원을 이용할 수 있도록 중개자 역할을 합니다. 운영체제는 커널(kernel)과 인터페이스(interface)로 나뉩니다

  • 자원 관리: 컴퓨터 시스템 자원(프로세스, 메모리, 저장장치, 입출력 장치 등)을 응용 프로그램에 효율적으로 배분하고 회수하여 사용자가 원활히 작업할 수 있도록 합니다

  • 자원 보호: 비정상적인 작업으로부터 컴퓨터 자원을 보호합니다

  • 하드웨어 인터페이스 제공: 사용자가 복잡한 과정 없이 다양한 장치를 사용할 수 있도록 일관된 방법으로 하드웨어 사용을 지원합니다

2. 운영체제의 목표

운영체제의 역할은 다음과 같은 목표를 달성하기 위함입니다.

  • 효율성: 자원을 효율적으로 관리하여 더 많은 작업량을 처리하거나, 같은 작업량 처리하는 데 더 적은 자원을 사용합니다
  • 안정성: 작업을 안정적으로 처리하고, 시스템 문제 발생 시 이전으로 복구하는 결함 포용 기능을 수행합니다
  • 확장성: 다양한 시스템 자원을 컴퓨터에 추가/제거하기 편리하게 합니다
  • 편리성: 사용자가 편리하게 작업할 수 있는 환경을 제공합니다

성능 평가 기준

  • 처리능력(throughput): 주어진 단위 시간 안에 처리할 수 있는 일의 양
  • 반환시간(turn around time): 작업을 시작해서 처리가 완료될 때까지 걸리는 시간
  • 사용 가능성(availability): 시스템을 사용해야 할 때 즉시 사용 가능한 정도
  • 신뢰성(reliability): 주어진 작업을 정확하게 해결하는 정도

3. 운영체제의 구성 요소

운영체제는 크게 커널(kernel)인터페이스(interface) 로 구성됩니다.

커널

커널: 운영체제의 핵심 기능을 모아놓은 것으로 모든 컴퓨터 자원을 관리하며, 사용자나 응용 프로그램은 커널을 통해서만 컴퓨터 자원에 접근할 수 있습니다.

커널의 역할: 프로세스 관리, 메모리 관리, 파일 시스템 관리, 입·출력 관리, 프로세스 간 통신 관리 등을 담당합니다

커널의 종류: 단일형 구조(monolithic architecture), 계층형 구조(layered architecture), 마이크로 구조(micro architecture) 등이 있습니다

인터페이스

인터페이스: 커널에 사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할을 합니다. 대표적으로 그래픽 사용자 인터페이스(GUI)가 있습니다

시스템 호출(System Call): 커널이 자신을 보호하기 위해 만든 인터페이스로, 응용 프로그램이 하드웨어 자원에 접근하거나 운영체제가 제공하는 서비스를 이용할 때 사용해야 합니다

디바이스 드라이버(Device Driver): 커널과 하드웨어의 인터페이스를 담당하며, 하드웨어를 일관된 방법으로 사용할 수 있도록 지원합니다

4. 운영체제의 발전 과정 (역사)

운영체제는 컴퓨터와 주변기기의 발전에 따라 진화해 왔습니다.

세대별 발전 과정

  • 1세대 (1940년대): 운영체제 없음. 기계어 직접 사용. 진공관 사용. 유사한 작업을 모아 처리하는 방식 (최초의 방식)

  • 1.5세대 (1950년대): 일괄 작업 시스템(Batch Job System): 카드 리더, 라인 프린터 사용. 천공카드로 프로그램 입력. 프로그램과 데이터를 동시에 입력해야 작업 가능. 작기는 하지만 운영체제가 사용되어 메인 메모리가 운영체제 영역과 사용자 영역으로 나뉨

  • 2세대 (1960년대 초반): 대화형 시스템(Interactive System): 키보드, 모니터 등장. 작업 중간에 입력, 중간 결과 확인 가능

  • 2.5세대 (1960년대 후반): 다중 프로그래밍(Multiprogramming) 및 시분할 시스템(Time Sharing System): C 언어 개발. 하나의 CPU로 여러 작업을 동시에 실행하는 기술. CPU 사용 시간을 잘게 쪼개어 여러 작업에 나눠주어 동시에 처리하는 것처럼 보이게 함

  • 3세대: 1, 2세대가 혼합된 다중 모드(multi-mode) 시스템

  • 4세대 (1970년대 - 현재): 분산 처리 시스템(Distributed Processing System): PC 등장. 여러 대의 컴퓨터가 작업을 나누어 처리하고 결과를 통신망을 이용해 상호 교환. 값이 싸고 크기가 작은 컴퓨터를 하나로 묶어서 대형 컴퓨터의 능력에 버금가게 만든 것

최신 기술

  • 클라이언트/서버 시스템: 작업을 요청하는 클라이언트와 요청받은 작업을 처리하는 서버의 이중 구조. 웹 시스템 보급 이후 확산

  • P2P 시스템: 클라이언트/서버 시스템의 서버 과부하를 해결하기 위해 사용자와 사용자를 직접 연결하는 시스템 (예: 메신저, 토렌트). 블록체인은 서버가 없는 완전한 P2P 시스템입니다

  • 클라우드 컴퓨팅: 하드웨어와 소프트웨어를 중앙 시스템에 숨기고 사용자가 필요한 서비스만 이용하는 컴퓨팅 환경

  • 사물 인터넷(IoT): 다양한 사물이 센서와 통신 기능을 내장하여 스스로 통신하며 지능적인 서비스를 제공하는 기술

5. 주요 운영체제의 종류

DOS (Disk Operating System)

1981년 Microsoft에서 IBM-PC를 위해 개발. 단일 사용자용을 위한 운영체제이며 메모리 관리 능력의 한계가 있습니다.

유닉스(UNIX)

1970년대 초 AT&T 벨 연구소에서 개발. 이식성이 뛰어나 인기를 얻었으며, 현재 스마트폰, PC, 서버 시스템, 슈퍼컴퓨터 등 광범위하게 사용됩니다. 다중 사용자(multi-user), 다중 작업(multi-tasking)을 지원합니다.

구조: 커널, 시스템 호출, 쉘(Shell)로 구성

파일 시스템: 계층적 트리 구조로 이루어져 있으며, 일반 파일, 디렉터리 파일, 특수 파일로 나뉩니다

리눅스(Linux)

1991년 리누스 토발스(Linus Torvalds)가 개발한 유닉스 호환 커널을 기반으로 한 공개용 운영체제. 멀티유저, 멀티태스킹을 지원하는 유닉스(Unix)와 유사한 운영체제입니다. 안정성, 보안성, 신속한 기능 보강이 가능합니다.

Mac OS

애플이 자사 PC를 위해 개발한 운영체제. 마우스를 이용하는 그래픽 사용자 인터페이스(GUI)를 처음 도입했다는 것이 강점입니다.

윈도우(Windows)

마이크로소프트가 애플 Mac OS의 GUI에 자극받아 출시. 안정적이고 표준화된 그래픽 사용자 인터페이스(GUI)를 지원하며, 멀티태스킹이 가능합니다.

모바일 운영체제

iOS

애플에서 개발한 유닉스 계열의 클로즈드 소스 운영체제로, GPS, 자이로스코프 센서 등 스마트폰 하드웨어 접근 및 관리를 담당하는 코어 프레임워크를 지원합니다.

안드로이드(Android)

구글이 주도하는 오픈 핸드셋 얼라이언스(Open Handset Alliance)가 설계한 스마트폰 및 태블릿용 운영체제. 리눅스 커널과 자바를 사용해 호환성이 뛰어나며 오픈 소스 소프트웨어입니다.