1) 운영체제의 특징
💡 운영체제
- 사용자로 하여금 컴퓨터의 하드웨어를 보다 쉽게 사용할 수있도록 인터페이스를 제공해주는 소프트웨어
| 하드웨어 구분 | 역할 | 종류 |
|---|---|---|
| 중앙 처리 장치 | 컴퓨터의 장치를 제어하고 데이터를 처리 | CPU(Central Processing Unit) |
| 기억 장치 | 데이터를 저장 | 메모리, 디스크 |
| 통신 장치 | 외부와의 통신을 담당 | 외부 장치(무선랜, 모뎀) |
| 입출력 장치 | 데이터 입력과 출력을 담당 | 마우스, 키보드, ...etc |
운영체제 제어 범위

2) 운영체제의 목적 및 성능 평가 항목
| 성능 평가 항목 | 설명 |
|---|---|
| 처리 능력(Throughput) | 일정한 단위 시간 내에 처리할 수 있는 일의 양 |
| 반환 시간(Turn Around Time) | 하나의 작업을 시작한시간에서부터 결과를 얻을 때까지 걸린 시간 |
| 사용 가능도(Availability) | 시스템을 이용하려 할 때, 얼마나 빨리 사용할 수 있는지의 정도 |
| 신뢰도(Reliability) | 시스템이 주어진 문제를 정확하게 해결할 수 있는지의 정도 |
3) 운영체제 발달 과정
1️⃣ 1950년대
- 일괄 처리 시스템
- 데이터를 모아두었다가 묶어서 한번에 처리한다.
- 버퍼링
- 입출력장치와 프로세서의 속도 차이를 보완하기 위해 다음 레코드를 주기억장치에 보관함으로써 CPU가 필요로 하는 레코드를 기다림 없이 전달해 줄 수 있다.
- 레코드를 저장하는 주기억장치를 버퍼라고 한다.
- 스풀링
- 주기억장치 대신 디스크를 매우 큰 버퍼처럼 사용한다.
- 여러 작업의 입출력과 계산을 함께 할 수 있다는 장점이 있다.
2️⃣ 1960년대
- 다중 프로그래밍
- 여러 프로그램을 메모리에 나눠 적재한 후 번갈아 할당하며, 여러 프로그램을 동시에 실행한다.
- 시분할 시스템
- 다중 프로그래밍 시스템을 확장하여 프로세서 스케줄링이라는 개념을 더한 시스템
- 여러 사용자에게 짧은 간격으로 프로세서를 번갈아가며 할당해 마치 독점하는 것처럼 사용할 수 있다.
- 다중 처리 시스템
- 하나의 시스템에서 여러 개의 프로세서를 사용하는 시스템
- 실시간 시스템
- 데이터가 발생하는 즉시 응답하는 시스템
3️⃣ 1970년대 초반
- 다중 모드
- 일괄, 시분할, 실시간, 다중 처리 등을 모두 제공하는 시스템
- 고가이며 사용에도 고도의 훈련이 필요하다.
- 범용 시스템
- 특별히 정해진 용도로만 사용되는 것이 아니다.
- 메모리에 적재되어 실행되는 프로그램에 따라 여러 가지 용도로 사용할 수 있는 시스템
3️⃣ 1970년대 중반 이후
- 분산 처리 시스템
- 독립적인 처리 능력을 가진 컴퓨터 시스템을 통신망으로 연결하여 네트워크 상에서 서로 통신하며 협력하여 처리하는 시스템
- 병렬 처리 시스템
- 하나 이상의 연산을 동시에 수행하여 연산 속도를 증가시키는 시스템
4️⃣ 2000년대
- 임베디드
- 내장형 시스템, 기계나 기타 제어가 필요한 시스템에 대해 특정 기능을 수행하는 시스템
- 장치 내에 존재
- 가상화
- 물리적 하드웨어 등을 사용자로부터 은폐
- 대체품으로 논리적인 리소스를 제공하거나 하나의 물리적인 리소스를 여러 개로 보이게 하는 기술
- 호스트 OS형
- 물리적 하드웨어 위에 OS를 설치하여 가상화 소프트웨어와 가상 머신을 이용하는 방식
- ex) 기존 OS 위에 가상화 OS를 설치
- 하이퍼바이저형
- HOST OS를 필요로 하지 않고, 직업 물리 하드웨어를 움직여 독립한 호스트와 같이 행동하는 방식
- ex) 가상화를 위한 독립적 OS를 직접 설치
- 컨테이터형
- 컨테이너라는 가상화 소프트웨어를 이용하여 사용하는 방식
- ex) 미리 구축해 놓은 가상화 OS(컨테이너)를 설치
- 클라우드 컴퓨팅
- 인터넷 기반으로 구동되는 컴퓨팅 기술
- 정보를 자신의 컴퓨터가 아닌 클라우드(인터넷)에 연결된 다른 컴퓨터로 처리하는 기술
- IaaS (Infrastructure as a Service)
- 사용자가 관리할 수 있는 범위가 가장 넓은 클라우드 컴퓨팅
- 서버 OS, 미들웨어, 런타임, 데이터 등 직접 구성하고 관리할 수 있다.
- PaaS (Platform as a Service)
- 미리 구축된 플랫폼을 이용하는 클라우드 컴퓨팅
- 관리상의 자유도가 낮지만 개발 자체에 집중할 수 있다.
- SaaS (Software as a Service)
- 소프트웨어 및 관련 데이터는 중앙 호스팅
- 사용자는 제공해주는 소프트웨어를 서비스 받아 사용한다.
❗️ 운영체제 발달 과정 순서 외우기
- 1950년대 :
일괄 처리,버퍼링,스풀링- 1960년대 :
다중 프로그래밍,시분할 시스템,다중 처리 시스템,실시간 시스템- 1970년대 초반 :
다중 모드,범용 시스템- 1970년대 중반 이후 :
분산 처리 시스템,병렬 처리 시스템- 2000년대 :
임베디드,가상화,클라우드 컴퓨팅
1) 윈도우 계열
장점
단점
| 윈도우 특징 및 용어 | 설명 |
|---|---|
| 선점형 멀티태스킹 | 운영체제가 수행 중인 각 프로그램의 실행시간을 할당하고, 실행 중에 문제가 발생하면 해당 프로그램을 강제 종료시킨 후, 모든 시스템 자원을 반환하는 멀티태스킹 운영 방식 |
| PNP(Plug&Play) | 장치와 장치를 연결할 때, 별도의 사용자 조작이 필요 없이 자동으로 장치를 인식하여 사용 가능 |
| 핫플러그 | 시스템 전원이 켜져있는 상태에서 장치를 추가하는 것은 가능하나, 제거하는 것은 불가능 |
| 핫스왑 | 전원 켜져있는 상태로 장치의 교체 가능 |
| 가상화 | 단일 호스트에서 서로 다른 운영체제를 구동할 수 있게 하는 기능 |
| 하이퍼바이저 | 단일 호스트에서 다른 운영체제를 가상으로 구동 지원하는 플랫폼, 대표적으로 VMWARE 사의 VMware, ORACLE 사의 Virtualbox 등 |
| FAT 파일 시스템 | 파일 할당 테이블(File Allocation Table)을 의미하며, 운영체제를 운용하는데 디스크 공간을 할당 |
| NTFS 파일 시스템 | Windows가 현재 사용 중인 압축 파일 시스템으로 이전 버전의 FAT에 비해 신뢰성, 성능 등이 개선되어 디스크 공간을 효율적으로 사용 가능 |
| ReFS 파일 시스템 | MS에서 NTFS를 대체하기 위해 개발한 차세대 파일 시스템 |
2) 유닉스 계열
AT&T Bell 연구소, MIT, General Electric 이 공동 연구로 개발한 운영체제Multics를 만들었다.AT&T가 본격적으로 유닉스 시스템을 판매하게 되었다.유닉스의 구성
| 구성 | 설명 |
|---|---|
| 커널(Kernel) | ‧ 운영체제의 핵심적인 구성요소 중 하나 |
| ‧ 프로세스 수행에 필요한 하드웨어의 성능 등을 조정할 수 있도록 이어주는 서비스를 제공 | |
| 쉘(Shell) | ‧ 실행한 프로세스 등을 커널에게 전달할 수 있도록 번역해주는 명령 번역기 |
| 유틸리티(Utility) | ‧ 운영체제에서 제공하는 것이 아닌 그 외의 실행 가능한 프로그램 |
유닉스의 특징 및 용어
| 특징 및 용어 | 설명 |
|---|---|
| 시분할 시스템 | ‧ 사용자에게 컴퓨터의 자원을 시간에 따라 분할하는 시스템 |
| ‧ 사용자와 컴퓨터 간의 대화를 통해 작업을 처리하는 시스템 | |
| UFS 파일 시스템 | ‧ 유닉스 파일 시스템 |
| ‧ 유닉스 및 유닉스 기반의 운영체제 등에서 쓰이는 디스크 기반의 파일 시스템 | |
| 아이노드(i-node) | ‧ 정규 파일, 디렉터리 등의 파일 시스템을 보유한 유닉스 시스템 및 유닉스 계열의 운영체제에서 사용하는 자료 구조 시스템 |
| 소프트 링크(심볼링 링크) | ‧ 유닉스 계열 운영체제에서 사용되는 기능 |
‧ i-node를 이용하여 Windows의 바로가기와 동일하게 링크 파일 삭제시 원본을 유지시키는 링크 시스템 | |
| 하드 링크 | ‧ 원본과 동기화된 바로가기 기능 |
| ‧ 링크 파일 삭제 시 원본 파일도 삭제되는 링크 시스템 |
3) 리눅스 계열
자유 소프트웨어(Free Software) 정책 하에서 완전히 자유롭고 재배포가 가능한 운영체제 리눅스를 만들었다.💡 자유 소프트웨어
금전적 무료가 아닌 원하는 대로의 실행, 무료나 유료로 복제물 재배포, 필요에 따른 개작 등 포괄적인 자유를 부여하는 것
Windows와 같은 체계적인 지원이 상대적으로 부족하여 일반인들보다는 전문가들이 사용하고 있다.리눅스 VS 유닉스
| 분류 | 리눅스 | 유닉스 |
|---|---|---|
| 비용 | ‧ 대부분 무료 | ‧ 대부분 유료 |
| ‧ 지원 정책에 따라 일부 유료 서비스 품도 있음 | ||
| 주 사용자 | ‧ 개발자, 일반 사용자 | ‧ 메인프레임, 워크스테이션 등 대형 시스템 관리자 |
| 개발사 | ‧ 커뮤니티 | ‧ IBM, HP 등 |
| 개발 배포 | ‧ 오픈 소스 개발 | ‧ 대부분 사업자에 의해 배포 |
| 사용량 | ‧ 모바일폰, 태블릿 등 다양하게 사용 | ‧ 인터넷 서버, 워크스테이션 등 대형 서비스에 주로 사용 |
| 사용자 편의 | ‧ GUI 제공, 파일 시스템 지원 | ‧ 커멘드 기반이 주였으나 GUI도 제공하는 추세 |
| ‧ Bash shell 사용 | ‧ 기본은 Bourne Shell, 현재는 다른 많은 Shell과 호환 가능 |
4) 매킨토시 운영체제(Macintoh OS X)
install과 uninstall의 과정을 단훈화하였다.OS의 확장 폴더에 넣고 재부팅을 하면 인식되어 간단하다.1) 다음 운영체제의 목적을 나타내는 표에서 빈칸을 완성하시오.
| 운영체제의 목적 | 설명 |
|---|---|
| ( ⓵ ) | 일정한 단위 시간 내에 처리할 수 있는 일의 양 |
| 반환 시간(Turn Around Time) | 하나의 작업을 시작한 시간에서부터 결과를 얻을 때까지 걸린 시간 |
| 사용 가능도(Availability) | 시스템을 이용하려 할 때 얼마나 빨리 사용할 수 있는지의 정도 |
| ( ⓶ ) | 시스템이 주어진 문제를 정확하게 해결할 수 있는지의 정도 |
2) 다음 보기에서 설명하는 운영체제의 이름을 작성하시오.
지원 정책에 따라 일부 유료 서비스 제품도 있지만 대부분 무료이며 모바일폰, 태블릿 등 다양한 용도로 사용이 가능하다.
CLI와 GUI가 있다.💡
CLI
- Command Line Interface
- 사용자가 직접 명령어를 입력하여 컴퓨터에게 명령을 내리는 방식
💡
GUI
- Graphic User Interface
- 마우스로 화면을 클릭하여 컴퓨터를 제어하는 방식
CLI 기반의 운영체제를 많이 사용했으나, 마우스 기반의 제어 시스템인 GUI가 개발되면서 CLI의 사용 빈도가 줄었다.CLI의 중요성이 다시 높아지고 있다.💡 Github
- 분산 버전 관리 툴인
Git을 사용하는 웹 호스팅 서비스
CLI 기본 명령어1) Windows
Command 창에 CLI 명령어를 입력할 수 있다.CMD를 입력하거나, 명령 프롬프트를 실행하면 Command 창이 열린다.2) Linux/Unix 계열
Shell에서 CLI 명령어를 입력할 수 있다.Shell이란 컴퓨터 내부를 관리하는 커널과 사용자 사이를 연결하는 창이다.💡 Shell의 주요 기능
- 세션별 변수를 설정, 운영체제를 사용자가 원하는 상태로 설정하도록 지원
- 사용자 요청에기반한 명령열 작성
- 백그라운드 처리, 서브 쉘 설정
- 일련의 명령어를 묶어 처리하는 스크립트 기능 지원
라고 책에서 말하긴 하는데, 정확한 내용은 다음과 같다.
1. Windows와 Linux/Unix 는 둘 다 Command 창을 사용한다.
CLI명령어를 입력할 수 있는 창을 Command 창이라고 하고,- 사용자가 입력한
CLI명령어를 커널이 이해할 수 있게 해석해주는Shell이라는 소프트웨어인 것이다.- 다만,
Windows와Linux/Unix이 기본적으로 제공하는Shell프로그램이 다르고, 이에 따라 Command 창(=터미널 프로그램)이 다를 수 있다.- 운영체제 별로 기본적으로 제공하는
Shell프로그램과Command창은 아래와 같다.
| 운영체제 | Shell 프로그램 | Command 창 프로그램 |
|---|---|---|
| Windows | cmd.exe, PowerShell | Command Prompt, Windows Terminal |
| Linux/Unix | bash, zsh, sh | Terminal |
위에서 다를 수 있다 라고 설명한 이유는, Windows 환경에서도 외부 프로그램 설치하면 bash를 사용할 수 있기 때문이다.
그리고 Shell의 주요 기능도 운영체제별로 기능의 깊이(depth)가 다른거지, Linux/Unix 계열만 Shell의 주요 기능을 사용할 수 있다는 뜻은 아니다.
2. 그럼 왜 책에서 이렇게 설명했을까?
- 관습적으로
Windows는Command Prompt라는 표현을 많이 사용했고,Linux/Unix계열은Shell이라는 표현을 많이 사용했기 때문이다.- 교재가 시험 스타일에 맞춰 단순화된거라고 생각하고 공부하도록 하자.
3) 리눅스 디렉터리 구조
₩ 또는 \를 사용하고, 리눅스에서는 /를 사용한다./rootroot 계정의 홈 디렉터리
4) CLI 대표 명령어
| 기능 | Windows/MS-DOS | Linux |
|---|---|---|
| 경로 변경 | cd | cd |
| 목록 출력 | dir | ls |
| 파일 복사 | copy | cp |
| 구조 복사 | xcopy | cp |
| 디렉터리 생성 | mkdir | mkdir |
| 하위 파일 삭제 | del | rm |
| 권한 설정 | attrib | chmod |
| 화면 표시 | type | cat |
| 목적지까지 경로 | tracert | traceroute |
| 프로세스 종료 | kill | |
| 실행 중 프로세스 표시 | ps | |
| 디렉터리 경로 표시 | pwd | |
| 네트워크 상태 점검 | ping | |
| 접속해 있는 사용자 표시 | who |
💡윈도우 단축키
1) 윈도우 10에서 윈도우 설정을 실행하는 단축키를 작성하시오.
i중앙처리장치, 메모리, 스토리지, 주변 기기 등을 적절히 관리한다.주기억장치와 메모리, 메모리와 스토리지 사이의 속도차로 인해 여러 가지 관리 기법들이 개발되었다.↓1) 메모리 관리
2) 프로세스 관리
💡 Program
- 컴퓨터에게 특정 작업(기능)을 수행하도록 지시하는 명령어들의 집합(코딩 결과물)
- 파일 형태로 저장하여 관리하다가 실행시키면 동작을 하게 된다.
💡 Process
- 실행 중인 프로그램
- 작업(Job) 또는 과제(Task)라고도 한다.
💡 Process 관리 기법
- 일시 중지 및 재실행
- 동기화
- 통신
- 교착상태 처리
- 프로세스 생성 삭제 등
2-1) 프로세스 상태
2-2) 프로세스 상태 전이

| 프로세스 상태 | 설명 |
|---|---|
| 디스패치(Dispatch Process) | ‧ Ready → Running |
| ‧ 준비 상태에서 실행 상태로 바뀌는 것 | |
| 보류(Block Process) | ‧ Running → Blocked |
| ‧ 프로세스 실행 중 시간이 다 되기도 전에 입출력 동작을 해야할 경우, 프로세스가 CPU를 반납하고 보류 상태로 들어가는 것 | |
| 깨움(Wakeup Process) | ‧ Blocked → Ready |
| ‧ 보류 상태 이후 다시 준비 상태로 넘어가는 것 | |
| 시간 초과(Timeout Process) | ‧ running → Ready |
| ‧ 클락 인터럽트를 통해 프로세스가 일정 시간만 점유할 수 있게 하는 것 |
2-3) 프로세스 스케줄링
💡 선점형
- 이미 할당되어 실행 중인 프로세스라도 강제로 빼앗아 선택하여 사용할 수 있다.
| 선점형 스케줄링 | 설명 |
|---|---|
| RR(Round Robin) | ‧ 시간 순서 단위로 CPU를 할당하는 방식 |
| ‧ 자원 사용에 제한된 시간이 있고 할당된 시간이 지나면 자원 반납 | |
| SRT(Shortest Remaining Time) | ‧ SJF 기법의 장점을 최대화 |
| ‧ 실행시간이 가장 짧은 시간을 우선적으로 처리 | |
| 다단계 큐 | ‧ 프로세스를 그룹으로 분류할 수 있을 경우 그룹에 따라 각기 다른 준비 상태의 큐를 사용하는 기법 |
| 다단계 피드백 큐 | ‧ 다단계 큐 보완 |
| ‧ 프로세스 큐들 간의 이동이 허용될 수 있도록 개선한 기법 |
💡 비선점형
- 이미 실행 중인 프로세스를 강제로 빼앗아 사용할 수 없다.
| 비선점형 스케줄링 | 설명 |
|---|---|
| FIFO - FCFS | ‧ 선입선출 방식 |
| ‧ 우선순위의 상관없이 먼저 도착한 프로세스부터 처리 | |
| SJF(Shortest Job First) | ‧ CPU 점유 시간이 가장 짧은 프로세스를 먼저 할당 및 처리 |
| HRN | ‧ SJF 기법을 보완하여 대기시간과 실행시간을 이용하여 처리 |
| ‧ (대기시간 + 실행시간) / 실행시간 | |
| 우선순위 | ‧ 준비 상테의 프로세스마다 우선순위를 부여 |
| ‧ 우선순위가 가장 높은 프로세스부터 할당하는 기법 |
1) 가상화
1-1) 가상화의 개념
1-2) 가상화의 종류
💡 플랫폼 가상화
- 하드웨어 플랫폼 위해서 실행되는 호스트 프로그램이 게스트 프로그램을 만들어 마치 독립된 환경을 만들어 낸 것처럼 보여주는 것
💡 리소스 가상화
- 메모리, 저장 장치, 네트워크 등을 결합하거나 나누는 것
- 사용자는 가상화된 물리적 장치들이 어떤 위치에 있는지 모르는 경우가 많다.
- 사용자는 실제 물리 위치를 신경쓰지 않아도 된다.
2) 클라우드
2-1) 클라우드의 개념
2-2) 클라우드 서비스의 종류
| 클라우드 서비스 | 설명 |
|---|---|
IaaS | ‧ Infrastructure as a Service 인프라형 |
| ‧ 사용자가 관리할 수 있는 범위가 가장 넓은 클라우드 서비스 | |
| ‧ 웹 상에서 구글, MS, 아마존 등에서 제공하는 환경의 다양한 인프라를 임대하여 이용할 수 있는 서비스 | |
| ‧ 네트워크, 보안, 데이터 저장소, 콘텐츠 딜리버리 서비스 등등 | |
PaaS | ‧ Platform as a Service 플랫폼형 |
| ‧ 운영체제가 이미 구성되어 있는 상태에서 사용자가 데이터와 앱만 직접 관리할 수 있는 서비스 | |
| ‧ 미리 구축된 플랫폼을 이용하여 관리상의 자유도가 낮다는 단점 | |
| ‧ 개발 자체에 집중할 수 있다는 장점 | |
SaaS | ‧ Software as a Service 서비스형 |
| ‧ 인프라와 운영체제뿐만 아니라 사용할 수 있는 소프트웨어까지 갖추어져있는 서비스 | |
| ‧ 웹상의 로그인만으로 다양한 소프트웨어를 사용한 만큼 비용을 지불해가며 사용할 수 있다 |
1) 다음 보기 중 선점형 스케줄링 방식을 모두 골라 쓰시오
- RR(Round Robin)
- FIFO
- SJF
- HRN
- SRT
- 다단계 큐
- 우선순위
2) 프로세스의 상태 전이 중 준비 상태에서 있던 프로세스가 실행 상태로 바뀌는 것을 무엇이라고 하는지 쓰시오.