본문으로 건너뛰기

운영체제의 개요

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)가 설계한 스마트폰 및 태블릿용 운영체제. 리눅스 커널과 자바를 사용해 호환성이 뛰어나며 오픈 소스 소프트웨어입니다.