컴퓨터시스템기사 필기 02 — 개발자 환경 구축 + 운영체제 기초 (프로세스·스케줄링)
컴퓨터시스템기사 필기 02 — 개발자 환경 구축 + 운영체제 기초 (프로세스·스케줄링)
1과목 "운영체제 및 시스템소프트웨어"의 첫 번째 파트입니다.
출제기준 순서대로 개발자 환경 구축부터 시작합니다.
1. 개발자 환경 구축
운영체제 개념·종류·특징
운영체제(OS)는 하드웨어와 사용자 사이에서 자원을 관리하고 프로그램 실행 환경을 제공하는 시스템 소프트웨어예요.
운영체제의 목적:
처리능력(Throughput) 향상
반환시간(Turnaround Time) 단축
사용가능도(Availability) 향상
신뢰도(Reliability) 향상
운영체제 종류:
Windows — GUI 기반, 개인용 PC 표준
Linux — 오픈소스, 서버/임베디드/클라우드 표준
macOS — Apple 전용, UNIX 기반
Android — 모바일, Linux 커널 기반
iOS — Apple 모바일, UNIX 기반
운영 방식 분류:
단일 프로그래밍 — 한 번에 한 프로그램만 실행
다중 프로그래밍 — 여러 프로그램을 메모리에 올려 CPU 효율 향상
시분할 시스템 ⭐ — 여러 사용자가 시간을 나눠 동시에 사용하는 방식
다중처리 시스템 — CPU 여러 개로 병렬 처리
분산처리 시스템 — 네트워크로 연결된 여러 컴퓨터가 협력
기본 명령어 (CLI)
Linux 주요 명령어:
ls -al — 파일 목록 (숨김파일 포함)
chmod — 파일 권한 변경
ps aux — 프로세스 목록
top — 실시간 시스템 모니터링
grep — 텍스트 검색
cd/mkdir/rm — 디렉토리/파일 관리
부트로더 (Boot Loader)
전원 투입 → BIOS/UEFI → 부트로더 → OS 커널 로드
대표적인 부트로더:
GRUB — Linux 표준 부트로더
U-Boot — 임베디드 리눅스 표준
BOOTMGR — 현재 Windows 부트로더
기본 개발환경 — 프로그래밍 언어와 IDE
주요 프로그래밍 언어:
| 언어 | 특징 | 주요 용도 |
| C | 저수준, 빠름, 포인터 | 시스템/임베디드 |
| C++ | C + 객체지향 | 게임/시스템 |
| Java | JVM 기반, 플랫폼 독립 | 엔터프라이즈/Android |
| Python | 간결, 풍부한 라이브러리 | AI/데이터/자동화 |
| JavaScript | 웹 표준 스크립트 | 프론트엔드/Node.js |
컴파일 vs 인터프리터 ⭐
컴파일 언어: C, C++, Java(바이트코드)
→ 전체 번역 후 실행, 속도 빠름
인터프리터 언어: Python, JavaScript
→ 한 줄씩 번역·실행, 수정 용이
대표 IDE:
Visual Studio Code — 경량, 다언어 지원
IntelliJ IDEA — Java/Kotlin 특화
Eclipse — Java 표준
PyCharm — Python 특화
기출 문제
Q. 컴파일러와 인터프리터의 차이점을 설명하시오.
A. 컴파일러는 소스코드 전체를 기계어로 번역한 후 실행하여 속도가 빠르다. 인터프리터는 한 줄씩 번역하며 실행하여 수정이 용이하지만 실행 속도가 느리다.
Q. 부트로더의 역할은?
A. BIOS/UEFI 이후 실행되어 운영체제 커널을 메모리에 적재하고 실행을 넘겨주는 역할을 한다.
2. 운영체제 주요 기능 — 프로세스 관리
프로세스 (Process)
프로세스란
실행 중인 프로그램
메모리에 적재되어 CPU를 할당받아 실행되는 작업 단위
프로세스 상태 전이 ⭐⭐
생성(New)
↓ 승인
준비(Ready) ←──────────── 실행(Running)
↓ 디스패치(할당) ↓ 입출력 요청
→→→→→→→→→→→→→→→ 대기(Waiting)
↑ 입출력 완료
완료(Terminated) ←── 실행
상태 전이 명칭:
준비 → 실행: 디스패치(Dispatch)
실행 → 준비: 선점(Preemption) / 타임아웃
실행 → 대기: 블록(Block) — 입출력 요청 등
대기 → 준비: 웨이크업(Wakeup)
실행 → 완료: 종료
PCB (Process Control Block)
프로세스의 모든 정보를 저장하는 자료구조예요.
프로세스 ID, 상태
프로그램 카운터(PC)
레지스터 값
메모리 관리 정보
입출력 상태 정보
기출 문제
Q. 프로세스가 준비 상태에서 실행 상태로 전이될 때 이를 무엇이라 하는가?
A. 디스패치(Dispatch)
Q. 실행 중인 프로세스가 입출력 요청을 하면 어떤 상태로 전이되는가?
A. 대기(Waiting/Blocked) 상태로 전이된다.
CPU 스케줄링 ⭐⭐⭐
스케줄링 목표
CPU 이용률 극대화
처리량(Throughput) 최대화
대기시간(Waiting Time) 최소화
반환시간(Turnaround Time) 최소화
응답시간(Response Time) 최소화
비선점(Non-preemptive) 스케줄링
한 번 CPU를 할당받으면 작업이 끝날 때까지 빼앗기지 않아요.
FCFS (First Come First Served) — 선입선출
도착 순서대로 처리
장점: 구현 단순
단점: 호위 효과(Convoy Effect) — 긴 작업 뒤에 짧은 작업이 오래 기다림
SJF (Shortest Job First) ⭐⭐
실행 시간이 가장 짧은 프로세스 먼저
장점: 평균 대기시간 최소화 (최적 알고리즘)
단점: 실행 시간 예측 어려움, 기아(Starvation) 발생 가능
HRN (Highest Response-ratio Next)
우선순위 = (대기시간 + 서비스시간) / 서비스시간
SJF의 기아 현상 보완
선점(Preemptive) 스케줄링
실행 중인 프로세스를 강제로 빼앗을 수 있어요.
RR (Round Robin) ⭐⭐
시간 할당량(Time Quantum)만큼 실행 후 다음 프로세스로
장점: 공평성, 시분할 시스템에 적합
단점: 시간 할당량이 너무 작으면 문맥교환 오버헤드 증가
SRT (Shortest Remaining Time)
남은 실행 시간이 가장 짧은 프로세스 선점
SJF의 선점 버전
다단계 큐 (Multilevel Queue)
여러 개의 큐로 프로세스를 분류하여 스케줄링
스케줄링 계산 예시
Q. 다음 프로세스를 FCFS 순으로 스케줄링할 때 평균 대기시간은?
| 프로세스 | 도착시간 | 실행시간 |
|---|---|---|
| P1 | 0 | 4 |
| P2 | 1 | 3 |
| P3 | 2 | 1 |
A.
P1: 0~4 실행, 대기시간 = 0
P2: 4~7 실행, 대기시간 = 4-1 = 3
P3: 7~8 실행, 대기시간 = 7-2 = 5
평균 대기시간 = (0+3+5)/3 = 8/3 ≈ 2.67
스레드 (Thread)
프로세스 내의 실행 단위
같은 프로세스의 스레드는 코드, 데이터, 힙 영역을 공유
각 스레드는 자신만의 스택(Stack)과 레지스터를 가짐
멀티스레딩 장점:
응답성 향상 — 일부 스레드 블록돼도 다른 스레드 실행 가능
자원 공유 — 프로세스 간 통신보다 효율적
경제성 — 프로세스 생성보다 스레드 생성 비용이 낮음
기출 문제
Q. 멀티스레딩에서 스레드 간에 공유되는 자원이 아닌 것은?
A. 스택(Stack)과 레지스터는 각 스레드가 독립적으로 가짐. 코드, 데이터, 힙은 공유.
문맥 교환 (Context Switching)
현재 실행 중인 프로세스 상태를 PCB에 저장
다음 실행할 프로세스 상태를 PCB에서 복원
오버헤드 발생 — 너무 잦으면 성능 저하
💡 실무에서는?
인프라 SI 현장에서 서버 성능 문제를 진단할 때, CPU 사용률이 높은데 처리량이 낮으면 가장 먼저 확인하는 게 컨텍스트 스위칭 횟수예요. 프로세스 수가 너무 많거나 스레드 경합이 심하면 실제 연산보다 컨텍스트 스위칭에 CPU 시간을 다 쓰게 되거든요. 특히 보안 솔루션(WAF, IPS)처럼 패킷을 실시간으로 검사하는 장비에서 이 현상이 자주 나타나요.
핵심 정리
✅ 프로세스 상태 5가지: 생성/준비/실행/대기/완료
✅ 준비→실행: 디스패치 / 실행→준비: 선점
✅ FCFS — 도착순, 호위효과 단점
✅ SJF — 평균대기시간 최소, 기아 단점
✅ RR — 시간 할당량, 공평성, 시분할 적합
✅ HRN = (대기+서비스) / 서비스
✅ 스레드 — 스택/레지스터는 독립, 코드/데이터/힙 공유
다음 편에서는 운영체제 주요기능으로 이어갑니다!
궁금한 점은 댓글로 남겨주세요!
2026.08.06 - [자격증 정복/컴퓨터시스템기사] - 컴퓨터시스템기사 필기 01 — 핵심 키워드 정리 (4과목 빈출 총정리)
컴퓨터시스템기사 필기 01 — 핵심 키워드 정리 (4과목 빈출 총정리)
컴퓨터시스템기사 필기 01 — 핵심 키워드 정리 (4과목 빈출 총정리)2026년 신설된 컴퓨터시스템기사 필기.기출이 없다고 걱정하지 마세요.구 전자계산기조직응용기사 기출 6,304문항을 분석한 빈
tech.seanney.pe.kr
2026.06.27 - [자격증 정복] - 올드 직장인의 2026년 자격증 올킬 도전기 (feat. 아들, 팀원들과 함께)
올드 직장인의 2026년 자격증 올킬 도전기 (feat. 아들, 팀원들과 함께)
올드 직장인의 2026년 자격증 올킬 도전기 (feat. 아들, 팀원들과 함께)20년 경력 인프라 아키텍트가 2026년에 자격증 여러 개에 도전하는 무모한(?) 계획입니다.합격할 때마다 업데이트 중입니다 🔄
tech.seanney.pe.kr