|
| 1 | +--- |
| 2 | +sidebar_position: 1 |
| 3 | +title: 운영체제의 개요 |
| 4 | +description: 운영체제가 컴퓨터 시스템에서 수행하는 핵심적인 역할과 목적을 이해합니다. |
| 5 | +--- |
| 6 | + |
| 7 | +## 1. 운영체제의 정의 및 역할 |
| 8 | + |
| 9 | +**운영체제(Operating System; OS)** 는 컴퓨터 하드웨어를 관리하는 소프트웨어로서, 응용 프로그램이나 사용자가 컴퓨터 하드웨어를 편리하고 효율적으로 사용할 수 있도록 시스템 자원(프로세서, 메모리 등)을 관리하고 공통적인 서비스를 제공하는 소프트웨어입니다. |
| 10 | + |
| 11 | +### 주요 역할 |
| 12 | + |
| 13 | +- **사용자와 컴퓨터 간의 인터페이스 제공**: 사용자가 복잡한 하드웨어에 직접 접근하는 것을 막고, 다양한 인터페이스(문자 기반, GUI, 터치스크린, 음성 등)를 통해 자원을 이용할 수 있도록 중개자 역할을 합니다. 운영체제는 커널(kernel)과 인터페이스(interface)로 나뉩니다 |
| 14 | + |
| 15 | +- **자원 관리**: 컴퓨터 시스템 자원(프로세스, 메모리, 저장장치, 입출력 장치 등)을 응용 프로그램에 효율적으로 배분하고 회수하여 사용자가 원활히 작업할 수 있도록 합니다 |
| 16 | + |
| 17 | +- **자원 보호**: 비정상적인 작업으로부터 컴퓨터 자원을 보호합니다 |
| 18 | + |
| 19 | +- **하드웨어 인터페이스 제공**: 사용자가 복잡한 과정 없이 다양한 장치를 사용할 수 있도록 일관된 방법으로 하드웨어 사용을 지원합니다 |
| 20 | + |
| 21 | +## 2. 운영체제의 목표 |
| 22 | + |
| 23 | +운영체제의 역할은 다음과 같은 목표를 달성하기 위함입니다. |
| 24 | + |
| 25 | +- **효율성**: 자원을 효율적으로 관리하여 더 많은 작업량을 처리하거나, 같은 작업량 처리하는 데 더 적은 자원을 사용합니다 |
| 26 | +- **안정성**: 작업을 안정적으로 처리하고, 시스템 문제 발생 시 이전으로 복구하는 결함 포용 기능을 수행합니다 |
| 27 | +- **확장성**: 다양한 시스템 자원을 컴퓨터에 추가/제거하기 편리하게 합니다 |
| 28 | +- **편리성**: 사용자가 편리하게 작업할 수 있는 환경을 제공합니다 |
| 29 | + |
| 30 | +### 성능 평가 기준 |
| 31 | + |
| 32 | +- **처리능력(throughput)**: 주어진 단위 시간 안에 처리할 수 있는 일의 양 |
| 33 | +- **반환시간(turn around time)**: 작업을 시작해서 처리가 완료될 때까지 걸리는 시간 |
| 34 | +- **사용 가능성(availability)**: 시스템을 사용해야 할 때 즉시 사용 가능한 정도 |
| 35 | +- **신뢰성(reliability)**: 주어진 작업을 정확하게 해결하는 정도 |
| 36 | + |
| 37 | +## 3. 운영체제의 구성 요소 |
| 38 | + |
| 39 | +운영체제는 크게 **커널(kernel)** 과 **인터페이스(interface)** 로 구성됩니다. |
| 40 | + |
| 41 | +### 커널 |
| 42 | + |
| 43 | +**커널**: 운영체제의 핵심 기능을 모아놓은 것으로 모든 컴퓨터 자원을 관리하며, 사용자나 응용 프로그램은 커널을 통해서만 컴퓨터 자원에 접근할 수 있습니다. |
| 44 | + |
| 45 | +**커널의 역할**: 프로세스 관리, 메모리 관리, 파일 시스템 관리, 입·출력 관리, 프로세스 간 통신 관리 등을 담당합니다 |
| 46 | + |
| 47 | +**커널의 종류**: 단일형 구조(monolithic architecture), 계층형 구조(layered architecture), 마이크로 구조(micro architecture) 등이 있습니다 |
| 48 | + |
| 49 | +### 인터페이스 |
| 50 | + |
| 51 | +**인터페이스**: 커널에 사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할을 합니다. 대표적으로 그래픽 사용자 인터페이스(GUI)가 있습니다 |
| 52 | + |
| 53 | +**시스템 호출(System Call)**: 커널이 자신을 보호하기 위해 만든 인터페이스로, 응용 프로그램이 하드웨어 자원에 접근하거나 운영체제가 제공하는 서비스를 이용할 때 사용해야 합니다 |
| 54 | + |
| 55 | +**디바이스 드라이버(Device Driver)**: 커널과 하드웨어의 인터페이스를 담당하며, 하드웨어를 일관된 방법으로 사용할 수 있도록 지원합니다 |
| 56 | + |
| 57 | +## 4. 운영체제의 발전 과정 (역사) |
| 58 | + |
| 59 | +운영체제는 컴퓨터와 주변기기의 발전에 따라 진화해 왔습니다. |
| 60 | + |
| 61 | +### 세대별 발전 과정 |
| 62 | + |
| 63 | +- **1세대 (1940년대)**: 운영체제 없음. 기계어 직접 사용. 진공관 사용. 유사한 작업을 모아 처리하는 방식 (최초의 방식) |
| 64 | + |
| 65 | +- **1.5세대 (1950년대)**: 일괄 작업 시스템(Batch Job System): 카드 리더, 라인 프린터 사용. 천공카드로 프로그램 입력. 프로그램과 데이터를 동시에 입력해야 작업 가능. 작기는 하지만 운영체제가 사용되어 메인 메모리가 운영체제 영역과 사용자 영역으로 나뉨 |
| 66 | + |
| 67 | +- **2세대 (1960년대 초반)**: 대화형 시스템(Interactive System): 키보드, 모니터 등장. 작업 중간에 입력, 중간 결과 확인 가능 |
| 68 | + |
| 69 | +- **2.5세대 (1960년대 후반)**: 다중 프로그래밍(Multiprogramming) 및 시분할 시스템(Time Sharing System): C 언어 개발. 하나의 CPU로 여러 작업을 동시에 실행하는 기술. CPU 사용 시간을 잘게 쪼개어 여러 작업에 나눠주어 동시에 처리하는 것처럼 보이게 함 |
| 70 | + |
| 71 | +- **3세대**: 1, 2세대가 혼합된 다중 모드(multi-mode) 시스템 |
| 72 | + |
| 73 | +- **4세대 (1970년대 - 현재)**: 분산 처리 시스템(Distributed Processing System): PC 등장. 여러 대의 컴퓨터가 작업을 나누어 처리하고 결과를 통신망을 이용해 상호 교환. 값이 싸고 크기가 작은 컴퓨터를 하나로 묶어서 대형 컴퓨터의 능력에 버금가게 만든 것 |
| 74 | + |
| 75 | +### 최신 기술 |
| 76 | + |
| 77 | +- **클라이언트/서버 시스템**: 작업을 요청하는 클라이언트와 요청받은 작업을 처리하는 서버의 이중 구조. 웹 시스템 보급 이후 확산 |
| 78 | + |
| 79 | +- **P2P 시스템**: 클라이언트/서버 시스템의 서버 과부하를 해결하기 위해 사용자와 사용자를 직접 연결하는 시스템 (예: 메신저, 토렌트). 블록체인은 서버가 없는 완전한 P2P 시스템입니다 |
| 80 | + |
| 81 | +- **클라우드 컴퓨팅**: 하드웨어와 소프트웨어를 중앙 시스템에 숨기고 사용자가 필요한 서비스만 이용하는 컴퓨팅 환경 |
| 82 | + |
| 83 | +- **사물 인터넷(IoT)**: 다양한 사물이 센서와 통신 기능을 내장하여 스스로 통신하며 지능적인 서비스를 제공하는 기술 |
| 84 | + |
| 85 | +## 5. 주요 운영체제의 종류 |
| 86 | + |
| 87 | +### DOS (Disk Operating System) |
| 88 | + |
| 89 | +1981년 Microsoft에서 IBM-PC를 위해 개발. 단일 사용자용을 위한 운영체제이며 메모리 관리 능력의 한계가 있습니다. |
| 90 | + |
| 91 | +### 유닉스(UNIX) |
| 92 | + |
| 93 | +1970년대 초 AT&T 벨 연구소에서 개발. 이식성이 뛰어나 인기를 얻었으며, 현재 스마트폰, PC, 서버 시스템, 슈퍼컴퓨터 등 광범위하게 사용됩니다. 다중 사용자(multi-user), 다중 작업(multi-tasking)을 지원합니다. |
| 94 | + |
| 95 | +**구조**: 커널, 시스템 호출, 쉘(Shell)로 구성 |
| 96 | + |
| 97 | +**파일 시스템**: 계층적 트리 구조로 이루어져 있으며, 일반 파일, 디렉터리 파일, 특수 파일로 나뉩니다 |
| 98 | + |
| 99 | +### 리눅스(Linux) |
| 100 | + |
| 101 | +1991년 리누스 토발스(Linus Torvalds)가 개발한 유닉스 호환 커널을 기반으로 한 공개용 운영체제. 멀티유저, 멀티태스킹을 지원하는 유닉스(Unix)와 유사한 운영체제입니다. 안정성, 보안성, 신속한 기능 보강이 가능합니다. |
| 102 | + |
| 103 | +### Mac OS |
| 104 | + |
| 105 | +애플이 자사 PC를 위해 개발한 운영체제. 마우스를 이용하는 그래픽 사용자 인터페이스(GUI)를 처음 도입했다는 것이 강점입니다. |
| 106 | + |
| 107 | +### 윈도우(Windows) |
| 108 | + |
| 109 | +마이크로소프트가 애플 Mac OS의 GUI에 자극받아 출시. 안정적이고 표준화된 그래픽 사용자 인터페이스(GUI)를 지원하며, 멀티태스킹이 가능합니다. |
| 110 | + |
| 111 | +### 모바일 운영체제 |
| 112 | + |
| 113 | +#### iOS |
| 114 | + |
| 115 | +애플에서 개발한 유닉스 계열의 클로즈드 소스 운영체제로, GPS, 자이로스코프 센서 등 스마트폰 하드웨어 접근 및 관리를 담당하는 코어 프레임워크를 지원합니다. |
| 116 | + |
| 117 | +#### 안드로이드(Android) |
| 118 | + |
| 119 | +구글이 주도하는 오픈 핸드셋 얼라이언스(Open Handset Alliance)가 설계한 스마트폰 및 태블릿용 운영체제. 리눅스 커널과 자바를 사용해 호환성이 뛰어나며 오픈 소스 소프트웨어입니다. |
0 commit comments