정보처리기사 필기 4과목 프로그래밍 언어 활용은 운영체제, 네트워크, 그리고 C·Java·Python 언어 기초를 다룹니다. 범위가 넓지만 운영체제 스케줄링, OSI 7계층, 언어별 특징이 핵심 출제 포인트입니다.

1. 운영체제 기초

운영체제의 역할

기능설명
프로세스 관리프로세스 생성·실행·종료, CPU 스케줄링
메모리 관리메모리 할당·회수, 가상 메모리, 페이징·세그멘테이션
파일 시스템 관리파일 생성·삭제·읽기·쓰기, 디렉터리 관리
입출력 관리장치 드라이버 관리, 인터럽트 처리
보안 및 보호사용자 인증, 접근 제어, 자원 보호

운영체제 종류

종류특징예시
일괄 처리(Batch)작업을 모아서 한꺼번에 처리. 초기 컴퓨터 방식초기 메인프레임
시분할(Time-Sharing)CPU 시간을 여러 사용자에게 분할. 대화형 처리 가능Unix, Linux
실시간(Real-Time)정해진 시간 내 반드시 응답. 경성(Hard) / 연성(Soft) 실시간항공기 제어, 의료기기
분산(Distributed)여러 컴퓨터가 네트워크로 연결되어 협력클라우드 시스템

2. 프로세스와 스케줄링

프로세스 상태 전이

상태설명
생성(New)프로세스가 생성된 직후 상태
준비(Ready)CPU를 할당받기 위해 대기 중인 상태
실행(Running)CPU를 할당받아 명령어를 실행 중인 상태
대기(Waiting/Blocked)I/O 완료 등 특정 이벤트를 기다리는 상태. CPU 반납
종료(Terminated)프로세스 실행이 끝난 상태

CPU 스케줄링 알고리즘

알고리즘방식특징
FCFS
(First Come First Served)
도착 순서대로 처리 비선점. 단순하지만 긴 프로세스가 짧은 것을 막는 호위 효과(Convoy Effect) 발생
SJF
(Shortest Job First)
실행 시간이 짧은 프로세스를 먼저 처리 비선점. 평균 대기 시간 최소화. 실행 시간 예측이 어려운 단점
SRT
(Shortest Remaining Time)
남은 실행 시간이 가장 짧은 프로세스를 실행 선점형 SJF. 새 프로세스 도착 시 남은 시간 비교하여 교체 가능
Round Robin 각 프로세스에 동일한 시간 할당량(타임슬라이스)을 부여하여 순환 선점. 시분할 시스템의 기본. 타임슬라이스 크기가 성능에 영향
우선순위
(Priority)
우선순위가 높은 프로세스를 먼저 처리 기아(Starvation) 문제 발생 가능 → 에이징(Aging)으로 해결
다단계 피드백 큐 여러 큐를 두고 프로세스를 동적으로 이동 I/O 위주 프로세스는 높은 우선순위, CPU 위주는 낮은 우선순위 큐로 이동
🎯 스케줄링 빈출 포인트
✔ "선점(Preemptive) vs 비선점(Non-preemptive)" 구분이 가장 자주 출제
✔ 선점 방식: SRT, Round Robin, 우선순위(선점형) → 실행 중에도 CPU 빼앗을 수 있음
✔ 비선점 방식: FCFS, SJF, 우선순위(비선점형) → 실행 중인 프로세스가 끝날 때까지 CPU 유지
✔ "기아(Starvation) 해결 방법은?" → 에이징(Aging) — 오래 기다린 프로세스의 우선순위를 점진적으로 높임

3. 메모리 관리

메모리 할당 방식

방식설명문제점
연속 할당프로세스를 메모리에 연속된 공간에 배치외부 단편화 발생
페이징(Paging)프로세스를 동일 크기의 페이지로 분할. 물리 메모리는 프레임 단위로 관리내부 단편화 발생
세그멘테이션프로세스를 논리적 단위(세그먼트)로 분할. 크기가 다름외부 단편화 발생

가상 메모리와 페이지 교체 알고리즘

실제 메모리보다 큰 프로그램을 실행하기 위해 디스크를 메모리처럼 사용하는 기법입니다. 페이지 폴트(Page Fault)가 발생하면 디스크에서 페이지를 가져오면서 기존 페이지를 교체합니다.

알고리즘교체 기준특징
FIFO가장 먼저 들어온 페이지를 교체구현 단순. Belady의 이상 현상 발생 가능
LRU
(Least Recently Used)
가장 오랫동안 사용하지 않은 페이지를 교체가장 많이 사용. 과거 참조를 기반으로 미래를 예측
OPT
(Optimal)
앞으로 가장 오랫동안 사용하지 않을 페이지를 교체이론적으로 최적이지만 미래를 알 수 없어 실제 구현 불가
LFU
(Least Frequently Used)
사용 횟수가 가장 적은 페이지를 교체자주 쓰이지 않더라도 최근에 들어온 페이지가 교체될 수 있음
💡 단편화 암기
내부 단편화: 할당된 영역 내부에 낭비 공간 (페이징에서 마지막 페이지가 꽉 안 찰 때)
외부 단편화: 할당 가능한 공간이 있어도 연속되지 않아 사용 불가 (세그멘테이션, 연속 할당)

4. 네트워크와 OSI 7계층

OSI 7계층 모델

네트워크 통신을 7개 계층으로 표준화한 모델입니다. 계층 이름과 대표 프로토콜을 세트로 암기하세요.

7
응용 계층 (Application)
HTTP, HTTPS, FTP, SMTP, DNS, Telnet
6
표현 계층 (Presentation)
데이터 형식 변환, 암호화, 압축 (SSL/TLS)
5
세션 계층 (Session)
세션 설정·유지·종료 (NetBIOS, RPC)
4
전송 계층 (Transport)
TCP (신뢰성), UDP (비신뢰성), 포트 번호
3
네트워크 계층 (Network)
IP, ICMP, ARP, 라우팅 — 패킷(Packet)
2
데이터 링크 계층 (Data Link)
MAC 주소, Ethernet, PPP — 프레임(Frame)
1
물리 계층 (Physical)
비트(Bit) 전송, 케이블, 허브, 리피터
💡 OSI 7계층 암기법 (상→하)
아파서 (응·표·세·전·네·데·물)
응용 → 표현 → 세션 → 전송 → 네트워크 → 데이터링크 → 물리
🎯 계층별 핵심 장비·PDU
✔ 1계층(물리): 허브, 리피터 → 비트(Bit)
✔ 2계층(데이터링크): 스위치, 브리지 → 프레임(Frame)
✔ 3계층(네트워크): 라우터 → 패킷(Packet)
✔ 4계층(전송): TCP/UDP → 세그먼트(TCP) / 데이터그램(UDP)

5. 주요 프로토콜

TCP vs UDP

항목TCPUDP
연결 방식연결 지향 (3-way handshake)비연결 지향
신뢰성높음 — 오류 감지, 재전송, 순서 보장낮음 — 오류 감지 없음
속도느림빠름
흐름 제어있음없음
사용 예HTTP, 이메일, 파일 전송DNS, 스트리밍, 온라인 게임, VoIP

주요 프로토콜과 포트 번호

프로토콜포트기능
HTTP80웹 페이지 전송
HTTPS443암호화된 웹 페이지 전송 (HTTP + SSL/TLS)
FTP20(데이터), 21(제어)파일 전송
SMTP25이메일 발송
POP3110이메일 수신 (서버에서 삭제)
IMAP143이메일 수신 (서버에 유지)
DNS53도메인 이름을 IP로 변환
SSH22암호화된 원격 접속
Telnet23원격 접속 (암호화 없음)

IP 주소와 서브넷

항목IPv4IPv6
주소 길이32비트 (약 43억 개)128비트 (사실상 무한)
표기 방식192.168.1.1 (점-십진수)2001:db8::1 (콜론-16진수)
개발 배경-IPv4 주소 고갈 문제 해결
🎯 네트워크 빈출 포인트
✔ "도메인 이름을 IP 주소로 변환하는 서비스는?" → DNS (포트 53)
✔ "신뢰성 없는 빠른 전송이 필요한 스트리밍에 적합한 프로토콜은?" → UDP
✔ "TCP 연결 설정 과정은?" → 3-way handshake (SYN → SYN-ACK → ACK)

6. 프로그래밍 언어 특성

언어 패러다임 분류

패러다임특징대표 언어
절차적(명령형)순차적 명령어 실행. "어떻게(How)"를 기술C, Pascal, COBOL
객체지향객체(데이터+행위)를 중심으로 설계. 캡슐화·상속·다형성Java, C++, Python, C#
함수형함수의 조합으로 처리. 부작용(Side Effect) 없음, 불변성Haskell, Erlang, Scala, 일부 Python
선언형"무엇을(What)"을 기술하고 처리는 시스템에 위임SQL, HTML, CSS

C / Java / Python 핵심 특징 비교

항목CJavaPython
타입 시스템정적 타입 (컴파일 시 결정)정적 타입동적 타입 (실행 시 결정)
메모리 관리수동 (malloc/free)자동 (가비지 컬렉터)자동 (가비지 컬렉터)
플랫폼플랫폼 의존적JVM으로 플랫폼 독립 (WORA)인터프리터로 플랫폼 독립
실행 방식컴파일 → 기계어컴파일 → 바이트코드 → JVM인터프리터 (스크립트)
포인터있음없음 (참조만 사용)없음
💡 Java "WORA" 개념
Write Once, Run Anywhere — Java는 소스 코드를 바이트코드(.class)로 컴파일하고, JVM(Java Virtual Machine)이 각 플랫폼에 맞게 실행합니다. 따라서 Windows에서 만든 .class 파일을 Linux에서도 실행할 수 있어요.

변수와 자료형 — 필기에서 자주 나오는 개념

개념설명
정적 변수 (static)프로그램 시작 시 생성, 종료 시 소멸. 모든 인스턴스가 공유
지역 변수함수(블록) 내부에서 선언. 함수 종료 시 소멸
전역 변수함수 외부에서 선언. 프로그램 전체에서 접근 가능
포인터 (C)메모리 주소를 저장하는 변수. *로 역참조, &로 주소 취득
📚 4과목 필기 고득점 전략

① OSI 7계층은 계층 번호·이름·대표 프로토콜·PDU를 한 줄로 외우세요. "7층 HTTP, 4층 TCP, 3층 IP, 2층 MAC"이 핵심입니다.

② CPU 스케줄링은 선점/비선점 구분이 가장 중요합니다. Round Robin과 SRT는 선점, FCFS와 SJF는 비선점임을 확실히 구분하세요.

③ TCP vs UDP 차이는 "신뢰성 vs 속도"로 이해하면 됩니다. 포트 번호는 자주 나오는 것(HTTP 80, HTTPS 443, FTP 21, DNS 53)만 외우세요.

④ Java의 JVM과 Python의 인터프리터는 플랫폼 독립성을 어떻게 달성하는지 이해하면 기억이 오래 갑니다.