모든 강의를 무료로 볼 수 있어요. 회원가입 없이도 학습 가능합니다.

20강 / 전체 25강

운영체제와 네트워크 기초

11분 읽기 조회 0

프로세스 상태 전이와 CPU 스케줄링 계산, 메모리 배치·페이지 교체, OSI 계층·포트·IP 서브넷·TCP와 UDP, 기본 개발환경을 압축 정리합니다.

🎯 이 강의 학습 목표

출제기준 위치는 [3과목 프로그래밍 언어 활용 › 3. 응용 SW 기초 기술 활용 › 1. 운영체제 기초 활용 · 2. 네트워크 기초 활용 · 3. 기본 개발환경 구축]입니다. 이 범위는 스케줄링·페이지 교체·서브넷처럼 손으로 계산하는 문제가 꾸준히 나오므로, 공식과 절차를 정확히 익히면 점수를 얻기 쉬운 영역입니다. 이 강을 마치면 다음을 할 수 있습니다.

  • 프로세스 상태 전이 이름을 말하고, FCFS·SJF·HRN·SRT·RR의 평균 대기 시간을 계산한다.
  • 배치 전략·단편화·페이징을 구분하고, FIFO·LRU·OPT의 페이지 부재 횟수를 센다.
  • OSI 계층과 프로토콜을 짝짓고, CIDR 주소의 네트워크·브로드캐스트 주소와 호스트 수를 구한다.

💡 운영체제 — 프로세스와 CPU 스케줄링

운영체제는 CPU·메모리·저장장치·입출력장치를 여러 프로그램이 나눠 쓰도록 관리하는 시스템 소프트웨어입니다. 중심인 커널이 프로세스·메모리·파일·장치를 관리하고, 쉘은 사용자 명령을 해석해 커널에 전달합니다. UNIX는 대부분 C로 작성되어 이식성이 높은 다중 사용자·다중 작업 운영체제이고, Linux는 소스가 공개된 UNIX 계열 커널, Android는 Linux 커널 기반입니다.

실행 중인 프로그램이 프로세스이며, 운영체제는 프로세스마다 PCB(PID·상태·프로그램 카운터·레지스터·스케줄링·메모리·입출력 정보)를 둡니다. 실행 중인 프로세스를 바꿀 때 PCB에 저장하고 불러오는 일이 문맥 교환입니다. 스레드는 프로세스 안의 실행 흐름으로, 코드·데이터·힙을 공유하고 스택과 레지스터만 따로 가집니다.

전이이름·원인
준비 → 실행디스패치(스케줄러가 CPU 할당)
실행 → 준비할당 시간 만료 또는 선점
실행 → 대기블록(입출력 등 사건을 기다림)
대기 → 준비웨이크업(기다리던 사건 완료)

대기에서 실행으로 바로 가는 전이는 없습니다. 상호 배제·점유와 대기·비선점·환형 대기 네 조건이 모두 성립하면 교착 상태가 생기고, 대응은 예방·회피(은행원 알고리즘)·발견·회복입니다.

스케줄링은 비선점형 FCFS(도착 순), SJF(실행 시간이 짧은 것 먼저), HRN(우선순위 = (대기 시간 + 서비스 시간) ÷ 서비스 시간, 큰 값 먼저)과 선점형 RR(할당량만큼씩 돌아가며), SRT(남은 시간이 가장 짧은 것으로 교체), 다단계 피드백 큐로 나뉩니다. 계속 밀리는 기아 상태는 오래 기다린 프로세스의 우선순위를 높이는 에이징으로 해결합니다. 공식은 반환 시간 = 종료 시각 − 도착 시각, 대기 시간 = 반환 시간 − 실행 시간 두 개입니다.

예를 들어 P1(도착 0, 실행 8), P2(1, 4), P3(2, 9), P4(3, 5)를 python으로 시뮬레이션하면 평균 대기 시간이 FCFS 8.75, SJF 7.75, SRT 6.50, RR(할당량 4) 11.75입니다. SJF는 비선점이라 P1이 끝까지 돈 뒤 시각 8에 짧은 순서 P2 → P4 → P3로 실행되고, 대기 시간은 0, 7, 9, 15라 평균 7.75입니다.

💡 메모리 관리와 페이지 교체

배치 전략은 빈 영역 목록에서 고르는 기준만 다릅니다. 빈 영역이 A 30KB, B 12KB, C 20KB, D 45KB 순서이고 18KB를 넣으면, 들어갈 수 있는 첫 영역을 고르는 최초 적합은 A, 남는 공간이 가장 작은 곳을 고르는 최적 적합은 C, 가장 큰 곳을 고르는 최악 적합은 D입니다. 할당 영역 안에 남는 낭비가 내부 단편화(고정 분할·페이징), 빈 공간 합은 충분하지만 흩어져 쓰지 못하는 것이 외부 단편화(가변 분할·세그먼테이션)이며, 외부 단편화는 통합·압축으로 줄입니다.

페이징은 같은 크기의 페이지·프레임으로 나눠 외부 단편화가 없고, 세그먼테이션은 코드·데이터·스택 같은 논리 단위로 크기를 달리해 보호가 쉽지만 외부 단편화가 생깁니다. 자주 참조하는 페이지 집합이 워킹 셋이고, 프레임이 부족해 실행보다 페이지 교체에 시간을 더 쓰는 현상이 스래싱입니다.

교체 알고리즘내보낼 페이지
FIFO가장 먼저 들어온 페이지
OPT앞으로 가장 오래 쓰이지 않을 페이지(부재 최소, 실제 구현 불가)
LRU가장 오랫동안 사용하지 않은 페이지
LFU사용 횟수가 가장 적은 페이지
NUR참조 비트·변형 비트로 최근 쓰이지 않은 페이지

프레임을 늘렸는데 부재가 오히려 늘어나는 벨레이디의 모순은 FIFO처럼 스택 알고리즘이 아닌 방식에서 생길 수 있고, LRU·OPT에서는 생기지 않습니다. 환경변수는 export를 해야 자식 프로세스에 전달되며 env·printenv로 확인하고, 쉘 스크립트는 #!/bin/bash로 시작해 $1(첫 인자)·$#(인자 개수)·$?(직전 종료 코드)를 씁니다.

💡 네트워크 기초와 개발환경

OSI 계층단위·장비·프로토콜
7 응용 · 6 표현 · 5 세션HTTP·FTP·SMTP·DNS·SSH / 인코딩·암호화 / 세션 관리
4 전송세그먼트, TCP·UDP, 포트로 프로세스 구분
3 네트워크패킷, 라우터, IP·ICMP
2 데이터 링크프레임, 스위치·브리지, MAC 주소
1 물리비트, 리피터·허브

실제 인터넷은 TCP/IP 4계층(응용·전송·인터넷·링크)을 쓰며 OSI의 상위 세 계층이 응용 계층에 대응합니다. SSH는 이름과 달리 응용 계층(포트 22)입니다. 대표 포트는 FTP 20·21, SSH 22, Telnet 23, SMTP 25, DNS 53, HTTP 80, HTTPS 443입니다.

IPv4는 32비트이고 사설 주소는 10.0.0.0/8, 172.16.0.0/12(172.16~172.31), 192.168.0.0/16입니다. 서브넷 계산은 ① 호스트 비트 = 32 − 접두사, ② 블록 크기 = 2호스트 비트로 주소가 속한 블록의 첫 주소가 네트워크 주소, 끝 주소가 브로드캐스트 주소, ③ 사용 가능 호스트 = 블록 크기 − 2입니다. 192.168.10.77/26이면 블록 64, 77은 64~127 블록이라 네트워크 192.168.10.64, 브로드캐스트 192.168.10.127, 호스트 62개, 마스크 255.255.255.192입니다. Python 3.12 표준 라이브러리 ipaddress로 같은 값을 확인했습니다.

import ipaddress

net = ipaddress.ip_interface("192.168.10.77/26").network
print(net, net.netmask, net.broadcast_address, net.num_addresses - 2)
for a in ("10.20.30.40", "172.32.0.1", "192.168.0.1"):
    print(a, "사설" if ipaddress.ip_address(a).is_private else "공인")
192.168.10.64/26 255.255.255.192 192.168.10.127 62
10.20.30.40 사설
172.32.0.1 공인
192.168.0.1 사설

172.32.0.1이 공인인 것은 사설 대역 172.16.0.0/12가 172.31.255.255에서 끝나기 때문입니다. IPv6는 128비트, 16진수 8그룹이고 브로드캐스트 주소가 없으며 그 역할은 멀티캐스트가 대신합니다.

TCP는 3-way handshake로 연결하고 순서 보장·재전송·흐름·혼잡 제어를 하며 헤더가 20바이트(옵션 제외)입니다. UDP는 연결 없이 데이터그램을 보내는 8바이트 헤더 프로토콜로 DNS 질의·실시간 음성·영상에 씁니다. 기본 개발환경은 정적 파일을 돌려주는 웹서버, 동적 처리를 실행하는 WAS, 내부망에 두는 DB서버로 구성하고, apt·pip·npm 같은 패키지 관리자로 같은 환경을 재현합니다.

⚠️ 시험에 나오는 함정

  • SJF vs SRT: 비선점(시작하면 끝까지) vs 선점(남은 시간 비교).
  • HRN 분모: 서비스 시간이고, 값이 클수록 먼저 실행한다.
  • 웨이크업: 대기 → 준비로만 간다. 대기 → 실행 전이는 없다.
  • 내부 vs 외부 단편화: 페이징은 내부, 세그먼테이션은 외부.
  • 벨레이디의 모순: FIFO 등에서 발생 가능, LRU·OPT에서는 발생하지 않는다.
  • 스위치 vs 라우터: 2계층·MAC·프레임 vs 3계층·IP·패킷.
  • 172로 시작하는 주소: 172.16~172.31만 사설이다.

📝 핵심 요약 — 암기표

주제핵심
상태 전이디스패치(준비→실행), 만료(실행→준비), 블록(실행→대기), 웨이크업(대기→준비)
스케줄링비선점 FCFS·SJF·HRN / 선점 RR·SRT, 반환 = 종료 − 도착, 대기 = 반환 − 실행
메모리최초·최적·최악 적합, 페이징 = 내부 단편화, 세그먼테이션 = 외부 단편화
페이지 교체FIFO·OPT(최소, 구현 불가)·LRU·LFU·NUR, 스래싱·워킹 셋
네트워크OSI 7계층, TCP/IP 4계층, 호스트 수 = 2(32−접두사) − 2
TCP vs UDP연결형·신뢰성·20바이트 vs 비연결형·빠름·8바이트

이 주제의 자세한 이론과 실전문제 8문항은 필기+실기 과정 혜택 교재 「정보처리기사 필기 완전정복 50강」의 37·38·39강에서 다룹니다.

다음 21강 「정보시스템 구축관리 — 네트워크·서버·DB 구축과 신기술」에서는 4과목으로 넘어가 네트워크 장비, 서버 고가용성, DB 표준화와 최신 기술 용어를 정리합니다.

📋 확인 문제

  1. P1(도착 0, 실행 6), P2(도착 1, 실행 3), P3(도착 2, 실행 8), P4(도착 3, 실행 2)를 SJF로 스케줄링할 때 평균 대기 시간은?

    ① 3.75
    ② 4.75
    ③ 5.0
    ④ 6.5

  2. 입출력을 기다리던 프로세스의 입출력이 끝났을 때 일어나는 상태 전이는?

    ① 웨이크업(대기 → 준비)
    ② 디스패치(준비 → 실행)
    ③ 블록(실행 → 대기)
    ④ 할당 시간 만료(실행 → 준비)

  3. 프레임 3개가 처음에 비어 있을 때 참조 문자열 2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2를 LRU로 처리하면 페이지 부재 횟수는?

    ① 6
    ② 9
    ③ 8
    ④ 7

  4. 172.16.5.100/27이 속한 서브넷의 브로드캐스트 주소는?

    ① 172.16.5.96
    ② 172.16.5.255
    ③ 172.16.5.127
    ④ 172.16.5.126

  5. 전송 계층 프로토콜에 대한 설명으로 옳은 것은?

    ① UDP는 연결 설정 없이 데이터그램을 보내며 헤더가 8바이트다.
    ② TCP는 2-way handshake로 연결을 맺는다.
    ③ DNS의 대표 포트는 25번이다.
    ④ SSH는 OSI 세션 계층 프로토콜이다.

✅ 정답과 해설

  1. 정답 ② — 시각 0에는 P1만 있어 0~6 실행, 시각 6에는 실행 시간이 짧은 P4(6~8), P2(8~11), P3(11~19) 순입니다. 대기 시간은 P1 0, P4 6−3 = 3, P2 8−1 = 7, P3 11−2 = 9로 평균 19 ÷ 4 = 4.75입니다. ①은 SRT, ③은 HRN, ④는 FCFS로 계산한 값입니다(python 시뮬레이션으로 확인).

  2. 정답 ① — 기다리던 사건이 끝나면 웨이크업으로 준비 상태가 되어 다시 디스패치를 기다립니다. ②는 CPU를 받을 때, ③은 입출력을 요청할 때, ④는 할당 시간을 다 썼을 때의 전이입니다.

  3. 정답 ④ — 2·3·1이 차례로 부재, 5가 오면 가장 오래 안 쓴 3을, 4가 오면 1을, 3이 오면 2를, 다시 2가 오면 4를 내보내 부재는 2·3·1·5·4·3·2의 7번입니다. 같은 참조열에서 OPT는 6번(①), FIFO는 9번(②)입니다(python 시뮬레이션으로 확인).

  4. 정답 ③ — /27은 호스트 비트 5, 블록 크기 32입니다. 100은 96~127 블록에 속하므로 네트워크 주소는 172.16.5.96(①), 브로드캐스트 주소는 172.16.5.127이고 사용 가능 호스트는 30개입니다. ④는 마지막 사용 가능 호스트, ②는 /24로 착각한 값입니다.

  5. 정답 ① — UDP는 비연결형이고 헤더가 8바이트입니다. TCP는 3-way handshake를 쓰고(②), DNS는 53번이며 25번은 SMTP이고(③), SSH는 TCP/IP의 응용 계층 프로토콜입니다(④).

📚 참고 자료

관련 주제

  • 정보처리기사
  • 필기
  • 3과목
  • 운영체제
  • CPU 스케줄링
  • 페이지 교체
  • 서브넷
  • OSI 7계층
  • TCP/UDP
  • 자격증
  • 자격증 강의
  • 정보처리기사 필기 25강 — 2027 출제기준 핵심 요약
  • 무료강의
  • 무료 온라인 강의
  • NUGUNA
  • 누구나

📚 시리즈 전체 공유

정보처리기사 필기 25강 — 2027 출제기준 핵심 요약

이 강의가 속한 시리즈는 총 25강, 모두 무료입니다. 처음부터 배우려는 동료에게 시리즈 전체를 알려 주세요.

댓글

0/1000

불러오는 중...