운영체제(OS, Operating System)는 하드웨어와 사용자 사이에서 CPU·메모리·저장 장치 같은 자원을 나눠 주고 관리하는 시스템 소프트웨어입니다. 여러 프로그램이 같은 하드웨어를 함께 쓰려면 누군가 차례를 정하고 서로를 지켜 줘야 해서 필요합니다.
음악을 틀어 둔 채 문서를 쓰며 파일을 내려받으면, 프로그램 셋이 CPU 하나와 메모리 하나를 나눠 씁니다. 프로그램마다 하드웨어를 직접 다루면 서로의 메모리를 덮어쓰거나 같은 장치를 동시에 붙잡을 수 있습니다. 그래서 운영체제가 그 사이에 서서 자원을 나눠 주고, 프로그램은 운영체제에 부탁만 합니다. 아래 그림은 UNIX의 층 구조를 하드웨어부터 한 층씩 쌓고, 명령 하나가 층을 오가는 길을 따라갑니다.
1운영체제가 하는 일과 목적
운영체제가 하는 일은 크게 둘입니다. 프로세서(CPU)·메모리·입출력 장치·파일 같은 자원을 관리하는 일과, 사용자가 하드웨어를 몰라도 컴퓨터를 쓸 수 있게 해 주는 일입니다.
운영체제가 일을 잘하는지는 네 가지로 잽니다. 시험에서는 이 넷을 운영체제의 목적이라고 부릅니다.
- 처리 능력(throughput): 정해진 시간 안에 끝내는 일의 양입니다. 많을수록 좋습니다.
- 반환 시간(turnaround time): 일을 맡긴 때부터 결과를 받을 때까지 걸린 시간입니다. 짧을수록 좋습니다.
- 사용 가능도(availability): 쓰려고 할 때 바로 쓸 수 있는 정도입니다.
- 신뢰도(reliability): 맡은 일을 고장 없이 정확하게 해내는 정도입니다.
2커널과 셸
그림은 UNIX를 네 층으로 쌓습니다. 하드웨어 바로 위의 커널(kernel)은 프로세스(실행 중인 프로그램)·메모리·파일·입출력을 관리하는 운영체제의 핵심입니다. 컴퓨터가 켜질 때 메모리에 올라와 꺼질 때까지 머뭅니다.
그 위의 셸(shell)은 사용자가 친 명령을 해석해 전하는 명령어 해석기입니다. 자료와 출제기준에 따라 쉘이라고도 씁니다. 맨 위의 사용자와 응용 프로그램은 아래층에 부탁만 하고 하드웨어를 직접 만지지 않습니다.
| 가르는 기준 | 커널 | 셸 |
|---|---|---|
| 하는 일 | 자원을 나눠 주고 관리한다 | 명령을 해석해 전한다 |
| 메모리에 있는 때 | 켜질 때부터 꺼질 때까지 | 사용자가 쓰는 동안 |
| 몇 가지인가 | 시스템에 하나 | 여럿 가운데 골라 쓴다(sh·bash·csh·ksh) |
명령은 리눅스 기본 명령어에서, 셸로 짜는 프로그램은 환경 변수와 셸 스크립트에서 배웁니다.
3운영체제의 종류
다섯 운영체제는 누가 만들었는지, 소스를 공개하는지, 어디에 쓰는지로 갈립니다.
| 운영체제 | 바탕과 소스 | 주로 쓰는 곳 | 시험에 나오는 특징 |
|---|---|---|---|
| Windows | 마이크로소프트, 소스 비공개 | 개인용 PC | 그래픽 화면(GUI)으로 다루고, 장치를 꽂으면 알아서 잡는다(PnP, Plug and Play) |
| UNIX | 벨 연구소, 대부분 C 언어로 작성 | 서버 | 여러 사용자가 동시에 여러 작업을 돌린다(다중 사용자·다중 작업). 다른 기계로 옮기기 쉽다(이식성) |
| Linux | UNIX를 본뜬 오픈 소스 | 서버·임베디드 기기(기계 속 작은 컴퓨터) | 누구나 소스를 받아 고치고 다시 배포할 수 있다 |
| macOS | 애플, UNIX 계열 | Mac | UNIX 인증을 받았다 |
| Android | 구글, Linux 커널 바탕의 오픈 소스 | 스마트폰·태블릿 | Linux 커널 위에 앱이 도는 층을 얹은 모바일 운영체제 |
Linux와 Android는 같은 Linux 커널을 쓰고, 그 위에 무엇을 얹었는지로 갈립니다.
예제
다음 네 사례에서 운영체제의 목적 가운데 무엇이 좋아졌는지 먼저 골라 보세요.
- (가) 같은 한 시간 동안 끝낸 일이 200건에서 300건으로 늘었다.
- (나) 작업을 맡긴 뒤 결과를 받기까지 10분 걸리던 것이 4분으로 줄었다.
- (다) 점검으로 멈춰 있던 날이 줄어, 쓰려고 할 때 바로 쓸 수 있게 됐다.
- (라) 같은 계산을 몇 번 돌려도 틀린 결과가 나오지 않는다.
| 사례 | 목적 | 가르는 실마리 |
|---|---|---|
| (가) | 처리 능력 | 정해진 시간 안의 일의 양 |
| (나) | 반환 시간 | 일 하나가 맡겨져 끝나기까지의 시간 |
| (다) | 사용 가능도 | 쓰려는 때 쓸 수 있느냐 |
| (라) | 신뢰도 | 고장 없이 맞게 해내느냐 |
(가)와 (나)가 가장 헷갈립니다. 처리 능력은 여러 일을 묶은 양을 재고, 반환 시간은 일 하나에 걸린 시간을 잽니다.
시험 포인트
- 필기: 운영체제의 목적은 처리 능력 향상·반환 시간 단축·사용 가능도 향상·신뢰도 향상입니다. UNIX는 하드웨어 위에 커널, 그 위에 셸, 맨 위에 사용자·응용 프로그램이 놓입니다. 커널은 켜질 때 메모리에 올라와 머물며 자원을 관리하고, 셸은 명령어 해석기로 여러 종류 가운데 골라 씁니다. UNIX는 대부분 C로 작성되어 이식성이 높고 다중 사용자·다중 작업을 지원합니다. Linux는 오픈 소스이고, Android는 Linux 커널 바탕의 모바일 운영체제입니다.
- 실기: 커널(Kernel)·셸(Shell, 자료에 따라 쉘), 처리 능력(Throughput)·반환 시간(Turnaround Time)·사용 가능도(Availability)·신뢰도(Reliability)로 씁니다.
확인 문제
1. 태블릿을 새로 만드는 회사가 운영체제를 고릅니다. 소스가 공개되어 있어 자기 기기에 맞게 고칠 수 있어야 하고, 터치 화면에서 앱을 내려받아 쓰는 모바일 기기용이어야 합니다. 알맞은 것을 고르세요.
- ① Windows
- ② macOS
- ③ Linux
- ④ Android
정답
④입니다. 소스가 공개되어 있고, Linux 커널 위에 앱이 도는 층까지 갖춘 모바일 운영체제입니다.
- ① 소스를 공개하지 않아 회사가 받아서 고칠 수 없습니다.
- ② 애플이 자기 Mac에 넣는 운영체제입니다. 다른 회사가 받아 고칠 수 없습니다.
- ③ 소스가 공개된 것은 맞습니다. 그러나 터치 화면에서 앱을 내려받아 쓰는 층까지 얹어 나온 모바일 운영체제는 Android입니다. 오픈 소스라는 실마리 하나에 끌린 답입니다.
2. 다음 (가)~(라)에서 좋아진 것이 운영체제의 목적 가운데 무엇인지 한글 이름과 영문으로 함께 쓰세요. 답을 끝까지 쓴 뒤 정답을 펼치세요.
- (가) 은행 서버가 한 해 동안 점검으로 멈춘 시간이 8시간뿐이라, 손님이 쓰려 할 때 거의 늘 쓸 수 있었습니다.
- (나) 같은 데이터를 백 번 넣고 돌려도 결과가 한 번도 어긋나지 않았습니다.
- (다) 밤사이 한꺼번에 처리한 주문이 2만 건에서 3만 건으로 늘었습니다.
- (라) 보고서 인쇄를 맡긴 뒤 종이가 나오기까지 3분 걸리던 것이 1분으로 줄었습니다.
정답
받는 답: (가) 사용 가능도(Availability) · (나) 신뢰도(Reliability) · (다) 처리 능력(Throughput) · (라) 반환 시간(Turnaround Time)
(가)의 실마리는 '쓰려 할 때 쓸 수 있었다', (나)는 '어긋나지 않았다', (다)는 '밤사이의 건수', (라)는 '맡긴 뒤 나오기까지 걸린 시간'입니다.
- 틀리는 꼴 신뢰도 — (가)에: 맞게 해내느냐를 잽니다. (가)는 멈춘 시간이 짧아 쓸 수 있었느냐를 말합니다.
- 틀리는 꼴 반환 시간 — (다)에: 일 하나에 걸린 시간입니다. (다)는 정해진 밤사이에 끝낸 양입니다.
- 틀리는 꼴 처리 능력 — (라)에: 여러 일을 묶은 양입니다. (라)는 인쇄 하나가 끝나기까지의 시간입니다.
3. 서버 한 대에 두 사람이 접속했습니다. 한 사람은 bash로, 다른 사람은 csh로 명령을 칩니다. 다음 (가)·(나)에 맞는 이름을 한글 이름과 영문으로 함께 쓰세요. 답을 끝까지 쓴 뒤 정답을 펼치세요.
- (가) 두 사람이 서로 다르게 고른 것으로, 친 명령을 읽어 풀어 주는 부분입니다.
- (나) 두 사람의 프로그램이 함께 기대는 부분으로, 서버가 켜질 때부터 메모리에 머물며 CPU와 메모리를 나눠 줍니다.
정답
받는 답: (가) 셸(Shell) 또는 쉘 · (나) 커널(Kernel)
(가)의 실마리는 '사람마다 다르게 고른다'와 '명령을 풀어 준다', (나)는 '켜질 때부터 머문다'와 '자원을 나눠 준다'입니다.
- 틀리는 꼴 커널 — (가)에: 시스템에 하나라 사람마다 다르게 고를 수 없습니다.
- 틀리는 꼴 운영체제 — (나)에: 커널과 셸을 함께 아우르는 큰 이름입니다. (나)가 물은 것은 그 가운데 자원을 관리하는 핵심입니다.