스케줄링과 페이지 교체는 표를 그려 세는 계산이고, 나머지는 한 번씩 나온 낱말이다. 계산 절차 둘과 낱말 한 벌
왜 이걸 하나 — SW공학 묶음 37문항 중 13문항이 이 장이고, 그중 계산 5문항은 절차만 있으면 확실한 점수다.
11회분 220문항 중 이 장의 기출은 13문항이다. 11회 중 9회에 나왔고 2025년 2회에는 3문항(SJF/SRT · AJAX · 라운드 로빈)이었다. 운영체제 계산이 5문항, 운영체제 용어 1문항, 그 밖의 낱말 7문항이다.
| 꼴 | 몇 문항 | 무엇을 적나 | 보기 |
|---|---|---|---|
| 스케줄링 평균 대기시간 | 3 | SRT 2 · 라운드 로빈 1 | 2024-2회 16번 · 2025-2회 13번 · 2026-2회 3번 |
| 페이지 부재 횟수 | 2 | LRU · LFU | 2024-1회 9번 · 2024-3회 4번 |
| OS 용어 | 1 | SJF · SRT | 2025-2회 4번 |
| 리눅스 명령 | 2 | chmod 751, pwd · ls · cd · cp | 2023-3회 5번 · 2025-3회 3번 |
| 웹 · 클라우드 · 요구사항 | 5 | AJAX 2 · IaaS/PaaS/SaaS · URI 구성 · 비기능 요구사항 3종 | 2023-1회 4번 · 2023-3회 17번 · 2024-3회 11번 · 2025-2회 8번 · 2026-1회 5번 |
→ SRT 는 두 번 나왔고 답이 둘 다 6.5 다. 우연이지만 같은 절차(남은 시간이 가장 짧은 것이 CPU 를 잡는다)로 풀린다. AJAX 도 두 번 나왔다. 이 장의 낱말 7문항은 다른 장에 넣기 애매한 것을 모은 것이라 카드가 곧 범위다.
E01 진단의 3번(SRT 6.5ms)이 이 장이었다. 계산 문제는 답이 하나라 표를 그리는 습관이 점수이고, 낱말 문제는 02절 카드에 있는 것이 나오면 맞고 없는 것이 나오면 그 회차의 새 낱말이다.
문항 수는 이 노트의 문제 데이터에서 ch=E16 인 것을 센 값이다(2026-09-14). 스케줄링 · 페이지 교체 정답은 전부 파이썬 시뮬레이션으로 확인했다(LRU · LFU · FIFO · SRT · 라운드 로빈 · HRN).
왜 이걸 하나 — 시험 전날 계산 규칙 둘과 낱말 카드를 다시 본다.
왜 이걸 하나 — 계산 두 종류는 표를 그리는 순서가 정해져 있다. 그 순서만 있으면 값이 바뀌어도 같다.
평균 대기시간 문제는 세 걸음이다. 첫째 규칙대로 실행 구간을 시간축에 적고, 둘째 프로세스마다 완료 시각을 읽고, 셋째 대기 = 완료 − 도착 − 실행으로 계산해 평균 낸다. 규칙이 다른 것은 첫째 걸음뿐이다.
SRT 는 매 순간 남은 실행 시간이 가장 짧은 프로세스가 CPU 를 잡고, 더 짧은 것이 새로 도착하면 뺏는다. 2026년 2회 3번은 P1(0, 8) · P2(1, 4) · P3(2, 9) · P4(3, 5) — 0~1 P1, 1 에 P2(4)가 오면 P1 의 남은 7 보다 짧아 뺏어 1~5, 그 뒤 P4(5) 5~10, P1(7) 10~17, P3(9) 17~26. 대기 9 · 0 · 15 · 2, 평균 6.5.
2024년 2회 16번은 전부 0 에 도착이라 뺏을 새 도착이 없어 SJF 와 같은 순서(P2 → P4 → P1 → P3)가 된다. 대기 0 · 2 · 6 · 18, 평균 6.5. 답이 같은 것은 우연이고 절차는 같다.
라운드 로빈은 큐 순서대로 할당량만큼 돌리고, 못 끝낸 것은 그 사이 도착한 것들 뒤에 다시 선다. 2025년 2회 13번(할당량 4)은 P1 0~4 · P2 4~8 · P3 8~12 · P4 12~16 · P1 16~20 · P3 20~24 · P4 24~25 · P3 25~26 이고, 대기 12 · 3 · 15 · 17, 평균 11.75. 큐에 다시 서는 순서를 틀리면 값이 통째로 어긋난다.
HRN 은 계산만 하면 순서가 나온다. 우선순위 = (대기 + 서비스) ÷ 서비스 라 예상 2회 20번의 A(5, 5) = 2 · B(6, 2) = 4 · C(12, 3) = 5 → C → B → A. 오래 기다린 짧은 작업이 앞으로 온다.
부재 횟수 문제는 프레임 수만큼 칸을 그리고 참조열을 하나씩 넣는다. 이미 있으면 적중(부재 아님), 없으면 부재이고 빈 칸이 없으면 규칙대로 하나를 내보낸다. FIFO 는 먼저 들어온 것, LRU 는 가장 오래전에 쓴 것, LFU 는 가장 적게 쓴 것.
LRU 의 함정은 적중 처리다. 적중한 페이지는 교체하지 않지만 최근 사용 시각을 앞으로 당겨야 다음 희생자가 맞는다. 2024년 3회 4번의 참조열 20개는 부재 12 · 적중 8 이고, 같은 열을 FIFO 로 돌리면 15 다(훈련 1번) — 규칙이 바뀌면 같은 열에서 답이 바뀐다.
2024년 1회 9번은 LRU 와 LFU 를 같은 열에 돌려 둘 다 6 이다. 4 를 넣을 때 LRU 는 「가장 오래 안 쓴 3」을, LFU 는 「가장 적게 쓴 3(1회)」을 내보내 희생자가 같았다. 열이 바뀌면 둘이 갈릴 수 있으니 규칙을 따로 적용한다.
교착상태는 조건 넷이 동시에 성립할 때만 난다 — 상호 배제 · 점유와 대기 · 비선점 · 환형 대기. 그래서 예방은 넷 중 하나를 깨는 것이고, 회피는 자원을 줄 때마다 안전 상태인지 검사하는 은행원 알고리즘, 발견은 자원 할당 그래프, 회복은 프로세스 종료나 자원 선점이다(예상 1회 20번 · 훈련 3번).
방법론은 「어떻게 반복하나」로 갈린다. 폭포수는 반복 없이 순서대로, 프로토타입은 시제품을 먼저, 나선형은 위험 분석을 넣어 반복, 애자일은 짧은 반복에 고객을 넣는다. 스크럼의 낱말(스프린트 · 백로그 · 데일리 스크럼 · 번다운 차트)과 XP 의 낱말(짝 프로그래밍 · TDD · 소규모 릴리스)이 애자일 아래 있다.
요구사항은 기능과 비기능으로 나뉘고, 비기능 안에서 다시 성능(속도 · 응답) · 자원(메모리 · 화면) · 운영(OS · 포맷) · 보안 · 품질로 갈린다(2026년 1회 5번). 「1초 이내」면 성능, 「적은 메모리」면 자원, 「여러 OS」면 운영이다.
chmod 의 숫자 세 자리는 소유자 · 그룹 · 기타 순서이고, 각 자리는 읽기 4 · 쓰기 2 · 실행 1 의 합이다. 2023년 3회 5번의 「소유자 읽기 · 쓰기 · 실행, 그룹 읽기 · 실행, 기타 실행」은 7 · 5 · 1 → 751. 반대로 644 는 rw- r-- r--, 750 은 rwx r-x --- 다(훈련 5번).
명령은 하는 일로 짝짓는다. 경로는 pwd · cd, 목록은 ls, 파일은 cp · mv · rm · cat, 권한은 chmod · chown · chgrp, 프로세스는 ps · kill. 2025년 3회 3번의 넷(pwd · ls · cd · cp)이 이 중 앞의 넷이다.
왜 이걸 하나 — 계산 5문항은 표를 종이에 그리며 푼다. 낱말 8문항은 카드와 대조한다.
스케줄링은 시간축 한 줄과 프로세스 표 한 개, 페이지 교체는 프레임 칸 × 참조열 길이의 표를 그린다. 답 칸에는 마지막 값 하나가 아니라 대기시간 넷과 합계를 함께 적어 두면 어디서 틀렸는지 보인다.
JavaScript와 XML을 이용해 웹 페이지 전체를 새로고침하지 않고 서버와 비동기적으로 데이터를 교환하는 기술은? (Asynchronous JavaScript and XML)
답 — AJAX(Asynchronous JavaScript and XML). 페이지를 통째로 다시 받지 않고 자바스크립트가 뒤에서 서버와 데이터만 주고받아 화면 일부를 바꾸는 기법이다.
원리 — 옛 웹은 버튼 하나를 눌러도 브라우저가 서버에 새 페이지를 요청해 화면 전체를 다시 그렸다. AJAX 는 자바스크립트의 XMLHttpRequest(지금은 fetch) 객체로 서버에 "데이터만" 요청하고, 응답이 오면 DOM 의 필요한 부분만 바꾼다. "비동기"라는 것은 요청을 보내 놓고 응답을 기다리는 동안 사용자는 계속 화면을 쓸 수 있다는 뜻이다. 이름의 XML 은 초기에 데이터 형식으로 XML 을 썼기 때문이고 지금은 대부분 JSON 을 쓴다 — 이름만 남았다. 검색창 자동완성, 무한 스크롤이 전부 AJAX 다.
따라가기
헷갈리는 자리 — 영문 풀이를 쓸 때 Asynchronous 철자를 틀리는 것. 그리고 JSON 을 답으로 적는 실수 — JSON 은 데이터 "형식"이고 AJAX 는 데이터를 "주고받는 기법"이다. 같은 문제가 2025-2-08 에 다시 나왔다.
표준 · 교재 정의(운영체제 · 리눅스 명령 · 웹 · 클라우드 용어)와 대조했다. 복원 출처 grandlife.co.kr(2026-09-14) — 공식 원문이 아니라 문장이 실제와 다를 수 있다.
Linux에서 a.txt에 소유자 읽기·쓰기·실행, 그룹 읽기·실행, 기타 실행 권한을 8진수로 부여하는 한 줄 명령: (①) (②) a.txt
답 — ① chmod ② 751. 소유자 rwx(7) · 그룹 r-x(5) · 기타 --x(1)을 8진수 세 자리로 붙인 것이다.
원리 — 리눅스 파일 권한은 소유자 · 그룹 · 기타 세 묶음이고, 묶음마다 읽기 r · 쓰기 w · 실행 x 세 비트다. r = 4, w = 2, x = 1 로 두고 더하면 한 묶음이 0~7 한 자리 8진수가 된다 — rwx = 4+2+1 = 7, r-x = 4+1 = 5, --x = 1, rw- = 6, r-- = 4. 그래서 권한 전체는 세 자리 8진수 하나로 표현되고, chmod(change mode) 명령이 그 값을 파일에 붙인다. ls -l 에서 보이는 -rwxr-x--x 가 곧 751 이다.
따라가기
헷갈리는 자리 — chown 을 적는 것. chown 은 소유자(owner)를 바꾸고, chmod 는 권한(mode)을 바꾼다. 그리고 순서를 "기타 · 그룹 · 소유자"로 거꾸로 읽어 157 로 적는 실수 — 항상 소유자가 맨 앞이다.
표준 · 교재 정의(운영체제 · 리눅스 명령 · 웹 · 클라우드 용어)와 대조했다. 복원 출처 grandlife.co.kr(2026-09-14) — 공식 원문이 아니라 문장이 실제와 다를 수 있다.
클라우드 서비스 3종: ① 서버·스토리지 등 인프라 제공 ② 개발·실행 플랫폼 제공 ③ 응용 소프트웨어를 서비스로 제공
답 — ① IaaS ② PaaS ③ SaaS. 아래(인프라)부터 위(소프트웨어)까지 "어디까지 빌려주나"로 갈린다.
원리 — 클라우드는 남의 컴퓨터를 빌려 쓰는 것인데 빌리는 층이 다르다. IaaS(Infrastructure)는 서버 · 저장소 · 네트워크 같은 인프라만 빌린다 — OS 설치부터 내가 한다(AWS EC2). PaaS(Platform)는 OS · 런타임 · DB 까지 갖춰진 개발 · 실행 플랫폼을 빌린다 — 코드만 올리면 돈다(Heroku · App Engine). SaaS(Software)는 완성된 응용 프로그램을 서비스로 쓴다 — 설치도 개발도 없다(Gmail · 노션). 위로 갈수록 제공자가 관리하는 범위가 넓고 내 자유도는 줄어든다.
따라가기
헷갈리는 자리 — PaaS 와 SaaS 를 바꾸는 것. "개발자가 코드를 올리는 자리"면 PaaS, "최종 사용자가 그냥 쓰는 완성품"이면 SaaS 다. 영문 첫 글자 I · P · S 가 Infrastructure · Platform · Software 라는 것만 붙잡으면 된다.
표준 · 교재 정의(운영체제 · 리눅스 명령 · 웹 · 클라우드 용어)와 대조했다. 복원 출처 grandlife.co.kr(2026-09-14) — 공식 원문이 아니라 문장이 실제와 다를 수 있다.
페이지 프레임이 3개이고 참조 문자열이 다음과 같을 때 LRU와 LFU의 페이지 부재 횟수를 각각 구하시오.
1, 2, 3, 1, 2, 4, 1, 2, 5, 7
답 — LRU 6회, LFU 6회. 프레임 3개에 1 · 2 · 3 을 채운 뒤 4 · 5 · 7 이 들어올 때마다 부재가 나 둘 다 6번이다.
원리 — 페이지 부재(page fault)는 필요한 페이지가 프레임에 없어 디스크에서 가져오는 일이다. 프레임이 꽉 찼을 때 누구를 내보내느냐가 교체 알고리즘이다. LRU(Least Recently Used)는 "가장 오래 안 쓴" 페이지를, LFU(Least Frequently Used)는 "가장 적게 쓴" 페이지를 내보낸다. 처음 세 개는 빈 프레임을 채우므로 무조건 부재 3번이다. 그다음부터 "이미 있나(적중)" 아니면 "없어서 교체(부재)"를 한 칸씩 표로 따라간다.
따라가기
헷갈리는 자리 — LRU 에서 마지막 7 이 들어올 때 누가 나가는지는 답(부재 횟수)에 영향이 없다 — 횟수만 묻는 문제면 교체 대상을 따질 필요 없이 "없으면 부재"만 세면 된다. 그러나 최종 프레임 상태를 묻는 문제라면 LRU 는 [7 2 5], LFU 는 [1 2 7] 로 달라지니 구분해 둔다.
표를 손으로 한 칸씩 채우고 파이썬 시뮬레이션 스크립트로 같은 값을 확인했다. 복원 출처 grandlife.co.kr(2026-09-14) — 공식 원문이 아니라 표 · 값이 실제와 다를 수 있다.
모든 프로세스가 시각 0에 도착할 때 SRT 방식의 평균 대기 시간을 구하시오.
| 프로세스 | 실행 시간 |
|---|---|
| P1 | 12 |
| P2 | 2 |
| P3 | 15 |
| P4 | 4 |
답 — 6.5. 전부 시각 0 에 도착했으므로 SRT 는 SJF 와 같아 짧은 순서 P2 → P4 → P1 → P3 이고 대기 합 26 ÷ 4 = 6.5 다.
원리 — SRT(Shortest Remaining Time)는 "남은 실행 시간이 가장 짧은" 프로세스를 먼저 돌리는 선점 방식이다. 새 프로세스가 도착할 때마다 남은 시간을 비교해 더 짧으면 뺏는다. 그런데 이 문제는 모두 시각 0 에 도착해 도중에 새로 들어오는 프로세스가 없다 — 그러면 선점이 일어날 일이 없어 비선점 SJF 와 똑같이 짧은 것부터 차례로 돈다. 대기 시간은 "끝난 시각 − 도착 − 실행 시간"이고, 도착이 0 이면 "내 앞에서 돈 시간의 합"이다.
따라가기
헷갈리는 자리 — 반환 시간(turnaround)을 구하는 것. 반환은 "끝난 시각 − 도착"이라 실행 시간이 포함돼 (2+6+18+33) ÷ 4 = 14.75 가 된다. 문제는 "대기"를 물었다. 그리고 SRT 라고 해서 복잡한 선점 표를 그릴 필요가 없다 — 동시 도착이면 SJF 다.
표를 손으로 한 칸씩 채우고 파이썬 시뮬레이션 스크립트로 같은 값을 확인했다. 복원 출처 grandlife.co.kr(2026-09-14) — 공식 원문이 아니라 표 · 값이 실제와 다를 수 있다.
프레임이 3개일 때 다음 참조열을 LRU로 처리한 페이지 부재 횟수를 쓰시오.
7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1
답 — 12회. 교과서의 대표 참조열로, 프레임 3개 LRU 는 20번 참조 중 12번 부재 · 8번 적중이다.
원리 — LRU 는 프레임이 꽉 찼을 때 "가장 오래전에 쓰인" 페이지를 내보낸다. 따라가는 요령은 각 프레임에 "마지막으로 쓰인 시각"을 적어 두는 것이다 — 적중이면 그 페이지의 시각만 갱신하고, 부재면 시각이 가장 옛날인 페이지를 빼고 새 페이지를 넣는다. 처음 3개는 빈 프레임을 채우는 부재다. 실수는 대개 "적중했을 때 시각 갱신을 안 해서" 생기니 적중도 표에 반드시 적는다.
따라가기
헷갈리는 자리 — 같은 참조열을 FIFO 로 돌리면 15회, OPT(최적)로 돌리면 9회다. 방식을 잘못 읽으면 숫자가 통째로 달라진다. 3단계에서 "0 이 최근에 쓰였는데 왜 나가나"가 걸린다 — 시각을 적어 보면 4(8번째) · 3(6번째) · 0(7번째) 중 3 이 먼저 나가고, 그다음 0(7번째)이 4(8번째) · 2(9번째)보다 오래돼 나간다.
표를 손으로 한 칸씩 채우고 파이썬 시뮬레이션 스크립트로 같은 값을 확인했다. 복원 출처 grandlife.co.kr(2026-09-14) — 공식 원문이 아니라 표 · 값이 실제와 다를 수 있다.
URI 구성요소를 설명과 매칭하시오: 스킴(프로토콜) / 권한(사용자정보·호스트·포트) / 경로 / 쿼리 스트링 / 프래그먼트
답 — 스킴 → 권한(사용자정보 · 호스트 · 포트) → 경로 → 쿼리 스트링 → 프래그먼트. URI 를 왼쪽부터 오른쪽으로 읽는 순서 그대로다.
원리 — URI 는 "어떤 방법으로(스킴), 어느 서버의(권한), 어느 자원을(경로), 어떤 조건으로(쿼리), 그중 어디를(프래그먼트)" 가리키는 한 줄이다. 예로 https://user:pw@www.example.com:8080/board/list?page=2&sort=new#top 을 뜯으면 — https 가 스킴(프로토콜), user:pw@www.example.com:8080 이 권한(authority: 사용자정보@호스트:포트), /board/list 가 경로, ?page=2&sort=new 가 쿼리 스트링(키=값을 &로 연결), #top 이 프래그먼트(문서 안 위치, 서버에 안 보내고 브라우저만 쓴다)다. 구분 기호 :// · @ · : · / · ? · # 이 각 부분의 경계다.
따라가기
헷갈리는 자리 — 프래그먼트를 서버로 보내는 것으로 아는 것. # 뒤는 브라우저가 페이지 안에서 스크롤할 위치라 HTTP 요청에 포함되지 않는다. 그리고 URL 과 URI 의 관계 — URL(위치)은 URI(식별자)의 부분집합이다. 시험은 "권한(authority)"이라는 이름을 낯설어해 틀린다 — 호스트 · 포트가 든 부분이 권한이다.
표준 · 교재 정의(운영체제 · 리눅스 명령 · 웹 · 클라우드 용어)와 대조했다. 복원 출처 grandlife.co.kr(2026-09-14) — 공식 원문이 아니라 문장이 실제와 다를 수 있다.
① 실행 시간이 가장 짧은 작업부터 처리하는 비선점 스케줄링 ② 남은 실행 시간이 가장 짧은 작업을 우선하는 선점 스케줄링
답 — ① SJF ② SRT. 같은 "짧은 것 먼저"인데 한 번 잡으면 안 뺏기는 것이 SJF, 더 짧은 것이 오면 뺏기는 것이 SRT 다.
원리 — CPU 스케줄링은 비선점(한 번 CPU 를 잡으면 끝날 때까지 안 뺏김)과 선점(더 급한 것이 오면 뺏김)으로 나뉜다. SJF(Shortest Job First)는 대기 중인 것 가운데 실행 시간이 가장 짧은 것을 고르고, 시작하면 끝까지 돈다 — 비선점. SRT(Shortest Remaining Time)는 SJF 의 선점판이다 — 실행 중에 "남은 시간"보다 짧은 프로세스가 도착하면 CPU 를 넘긴다. 둘 다 평균 대기 시간이 짧다는 장점이 있지만 긴 작업이 계속 밀리는 기아(starvation)가 생길 수 있다.
따라가기
헷갈리는 자리 — 비선점 · 선점 묶음을 통째로 외운다. 비선점: FCFS · SJF · HRN. 선점: SRT · RR · 다단계 큐 · 다단계 피드백 큐. "남은(Remaining)"이라는 말이 붙으면 실행 도중에도 비교한다는 뜻이라 선점이다.
표준 · 교재 정의(운영체제 · 리눅스 명령 · 웹 · 클라우드 용어)와 대조했다. 복원 출처 grandlife.co.kr(2026-09-14) — 공식 원문이 아니라 문장이 실제와 다를 수 있다.
웹 페이지 전체를 새로 고치지 않고 필요한 데이터만 서버와 비동기적으로 주고받아 화면 일부를 갱신하는 기술은?
답 — AJAX. 2023-1-04 와 같은 문제다 — 페이지 전체 대신 필요한 데이터만 비동기로 받아 화면 일부를 갱신한다.
원리 — 브라우저가 서버에 문서를 요청하면 기본 동작은 "새 문서로 화면 전체 교체"다. AJAX 는 자바스크립트가 XMLHttpRequest 나 fetch 로 백그라운드 요청을 보내고, JSON · XML 로 온 응답을 받아 DOM 의 일부만 바꾼다. 비동기라서 응답을 기다리는 동안 화면이 멈추지 않는다. 결과로 페이지 깜빡임이 없고 전송량이 줄며, 한 페이지 안에서 앱처럼 움직이는 SPA(단일 페이지 애플리케이션)의 바탕이 됐다.
따라가기
헷갈리는 자리 — 웹소켓(WebSocket)과 섞는 것. 웹소켓은 서버와 "항상 열린 양방향 통로"를 만들고, AJAX 는 필요할 때마다 "요청 – 응답"을 한 번씩 한다. 문제에 "비동기 · 부분 갱신 · XML" 이 나오면 AJAX 다.
표준 · 교재 정의(운영체제 · 리눅스 명령 · 웹 · 클라우드 용어)와 대조했다. 복원 출처 grandlife.co.kr(2026-09-14) — 공식 원문이 아니라 문장이 실제와 다를 수 있다.
시간 할당량이 4ms인 라운드로빈 방식으로 다음 프로세스를 스케줄링할 때 평균 대기시간을 구하시오. 문맥 교환 시간은 무시한다.
| 프로세스 | 도착 시간(ms) | 실행 시간(ms) |
|---|---|---|
| P1 | 0 | 8 |
| P2 | 1 | 4 |
| P3 | 2 | 9 |
| P4 | 3 | 5 |
답 — 11.75ms. 할당량 4 로 돌리면 P1 12 · P2 3 · P3 15 · P4 17, 합 47 ÷ 4 = 11.75 다.
원리 — 라운드로빈(RR)은 준비 큐를 순서대로 돌며 각 프로세스에 시간 할당량(quantum)만큼만 CPU 를 주고, 안 끝났으면 큐의 맨 뒤로 보낸다. 표를 그리는 규칙은 두 가지다 — ① 한 프로세스가 할당량을 다 쓴 시점에 새로 도착한 프로세스가 있으면 그것을 먼저 큐 뒤에 넣고, 그다음에 방금 돌던 프로세스를 넣는다. ② 대기 시간 = 끝난 시각 − 도착 시각 − 실행 시간. 즉 "큐에 들어와서 끝날 때까지 CPU 를 안 쓴 시간"이다.
따라가기
헷갈리는 자리 — 1단계에서 P1 을 도착한 P2 · P3 · P4 보다 앞에 다시 넣는 것. 할당량이 끝난 프로세스는 "그 시각까지 도착한 것들 뒤"로 간다. 이 순서를 바꾸면 평균이 달라진다. 그리고 문맥 교환 시간은 문제에서 무시한다고 했으니 더하지 않는다.
표를 손으로 한 칸씩 채우고 파이썬 시뮬레이션 스크립트로 같은 값을 확인했다. 복원 출처 grandlife.co.kr(2026-09-14) — 공식 원문이 아니라 표 · 값이 실제와 다를 수 있다.
UNIX/Linux 명령어: ① 현재 작업 경로 표시 ② 파일 목록 보기 ③ 디렉터리 이동 ④ 파일 복사
답 — ① pwd ② ls ③ cd ④ cp. 리눅스 기본 명령 네 개의 영문 약자를 풀면 답이 보인다.
원리 — 유닉스 명령은 대부분 영어 낱말의 약자다. pwd = print working directory, 지금 내가 있는 경로를 찍는다. ls = list, 현재 디렉터리의 파일 목록을 보여 준다(-l 자세히, -a 숨김 파일까지). cd = change directory, 다른 디렉터리로 옮긴다(cd .. 은 상위). cp = copy, 파일을 복사한다(cp 원본 사본, -r 로 디렉터리째). 짝으로 mv(move, 이동 · 이름 바꾸기) · rm(remove, 삭제) · mkdir(make directory) · cat(내용 출력) · chmod · chown 도 같이 나온다.
따라가기
헷갈리는 자리 — cp 와 mv 를 바꾸는 것. cp 는 원본을 남기고 사본을 만들고, mv 는 원본을 옮긴다(이름 바꾸기도 mv). 그리고 윈도우 명령 dir · copy 를 적는 실수 — 문제는 UNIX/Linux 다.
표준 · 교재 정의(운영체제 · 리눅스 명령 · 웹 · 클라우드 용어)와 대조했다. 복원 출처 grandlife.co.kr(2026-09-14) — 공식 원문이 아니라 문장이 실제와 다를 수 있다.
비기능 요구사항 분류: ① 여러 OS·다양한 포맷 지원 ② 적은 메모리 사용, 터치스크린 등 자원 관련 ③ 1초 이내 응답 등 속도 관련
답 — ① 운영 요구사항 ② 자원 요구사항 ③ 성능 요구사항. "어떤 환경에서 도나 · 무엇을 얼마나 쓰나 · 얼마나 빠르나"로 갈린다.
원리 — 요구사항은 "무엇을 하는가"(기능 요구사항)와 "어떤 조건에서 어떻게"(비기능 요구사항)로 나뉜다. 비기능 요구사항은 다시 여러 갈래다. 성능 요구사항은 응답 시간 · 처리량 · 동시 사용자 같은 속도와 양이다 — "1초 이내 응답". 자원 요구사항은 메모리 · 저장 공간 · CPU · 입력 장치처럼 시스템이 쓰는 자원에 대한 제약이다 — "메모리 적게, 터치스크린 지원". 운영 요구사항은 시스템이 놓일 운영 환경에 대한 것이다 — "여러 OS 에서 돌고 다양한 파일 포맷을 지원". 이 밖에 보안 · 신뢰성 · 사용성 · 이식성 · 유지보수성 요구사항이 같은 묶음에 든다.
따라가기
헷갈리는 자리 — ①을 이식성(portability) 요구사항으로 적는 것. 여러 OS 지원은 이식성으로도 읽히지만, 이 문제의 보기 구성(운영 · 자원 · 성능)에서는 운영 요구사항이 정답으로 복원돼 있다. 복원 문제라 실제 보기 문구가 달랐을 수 있으니 "OS · 포맷 = 운영 환경" 으로 묶어 기억한다.
표준 · 교재 정의(운영체제 · 리눅스 명령 · 웹 · 클라우드 용어)와 대조했다. 복원 출처 grandlife.co.kr(2026-09-14) — 공식 원문이 아니라 문장이 실제와 다를 수 있다.
다음 프로세스를 선점형 SRT(Shortest Remaining Time) 방식으로 스케줄링할 때 평균 대기시간을 구하시오. 문맥 교환 시간은 무시하며, 시간 단위는 ms이다.
| 프로세스 | 도착 | 서비스 |
|---|---|---|
| P1 | 0 | 8 |
| P2 | 1 | 4 |
| P3 | 2 | 9 |
| P4 | 3 | 5 |
답 — 6.5ms. SRT 로 돌리면 P1 9 · P2 0 · P3 15 · P4 2, 합 26 ÷ 4 = 6.5 다.
원리 — SRT 는 매 순간 "남은 실행 시간이 가장 짧은" 프로세스가 CPU 를 갖는다. 새 프로세스가 도착하는 시각마다 지금 도는 것의 남은 시간과 새로 온 것의 실행 시간을 비교해, 새것이 더 짧으면 선점한다. 도착이 끝난 뒤에는 남은 것들을 짧은 순으로 돌린다. 대기 시간 = 끝난 시각 − 도착 − 실행 시간이다. 2025-2-13 과 같은 표를 RR 대신 SRT 로 돌리는 문제라 두 결과(11.75 대 6.5)를 나란히 두면 선점 알고리즘의 효과가 보인다.
따라가기
헷갈리는 자리 — 1단계에서 P1 이 1ms 만 돌고 뺏긴다는 것을 놓치고 P1 을 끝까지 돌리는 것(그러면 SJF 가 돼 값이 달라진다). 선점 뒤 P1 의 "남은 시간 7"을 표에 적어 두어야 3단계에서 P4(5)가 P1(7)보다 먼저라는 것이 보인다.
표를 손으로 한 칸씩 채우고 파이썬 시뮬레이션 스크립트로 같은 값을 확인했다. 복원 출처 grandlife.co.kr(2026-09-14) — 공식 원문이 아니라 표 · 값이 실제와 다를 수 있다.
교착상태(Deadlock) 발생 4가지 필요조건 중 빈칸 2개: 상호 배제, 점유와 대기, ( ① ), ( ② )
답 — ① 비선점 ② 환형 대기(순환 대기). 교착상태 4조건은 상호 배제 · 점유와 대기 · 비선점 · 환형 대기다.
원리 — 교착상태(deadlock)는 여러 프로세스가 서로가 가진 자원을 기다리며 영원히 멈추는 것이다. 네 조건이 "동시에" 성립해야 생긴다. 상호 배제 — 자원을 한 번에 하나만 쓸 수 있다(프린터). 점유와 대기 — 이미 가진 것을 쥔 채로 다른 것을 기다린다. 비선점 — 남이 가진 자원을 강제로 뺏을 수 없다. 환형 대기 — A 는 B 것을, B 는 A 것을 기다리는 식으로 대기가 원을 이룬다. 넷 중 하나라도 깨면 교착이 안 생기므로 "예방"은 조건 하나를 없애는 것이고, "회피"는 은행원 알고리즘으로 안전 상태만 허용하는 것이다.
따라가기
헷갈리는 자리 — 비선점을 "선점"으로 적는 것. 자원을 뺏을 수 있으면(선점) 교착이 풀리므로 교착 조건은 "비선점"이다. 환형 대기는 "순환 대기 · 원형 대기"로도 쓴다.
이전 자료의 예상 문제다. 표준 정의 · 손 계산으로 확인했다.
HRN 스케줄링에서 우선순위 = (대기시간 + 서비스시간) ÷ 서비스시간이다. 다음 프로세스의 실행 우선순위를 높은 순서로 나열하시오.
답 — C → B → A. 우선순위는 A 2 · B 4 · C 5 로 C 가 가장 높다.
원리 — HRN(Highest Response-ratio Next)은 SJF 의 기아 문제를 고친 비선점 스케줄링이다. 우선순위 = (대기 시간 + 서비스 시간) ÷ 서비스 시간이다. 서비스 시간이 짧으면 분모가 작아 값이 커지고(SJF 처럼 짧은 것 우대), 오래 기다리면 분자가 커져 값이 올라간다(긴 작업도 언젠가 차례가 온다). 값이 큰 것부터 실행한다. 계산은 분수 하나씩이니 세 개를 구해 크기 순으로 세우면 끝이다.
따라가기
헷갈리는 자리 — 값이 작은 것부터 세우는 것. HRN 은 응답 비율이 "높은(Highest)" 것이 먼저다. 그리고 대기 시간만 보고 C 를 고르는 것은 우연히 맞지만, B 와 A 는 대기만 보면 순서가 같아도 근거가 다르다 — 반드시 비율로 계산한다.
이전 자료의 예상 문제다. 표준 정의 · 손 계산으로 확인했다.
왜 이걸 하나 — 계산은 큐 순서와 갱신에서, 낱말은 비슷한 약자에서 깎인다.
| 자리 | 새는 꼴 | 적는 법 | 기출 |
|---|---|---|---|
| RR 큐 순서 | 못 끝낸 프로세스를 새 도착보다 앞에 세운다 | 새 도착이 먼저, 못 끝낸 것은 그 뒤 | 2025-2회 13번 |
| SRT 선점 | 새 도착을 무시하고 SJF 처럼 푼다 | 도착 시각마다 남은 시간을 견줘 뺏을지 정한다. 전부 0 도착이면 SJF 와 같다 | 2026-2회 3번 · 2024-2회 16번 |
| 대기시간 식 | 완료 − 도착만 하고 실행을 안 뺀다 | 대기 = 완료 − 도착 − 실행(반환 시간과 다르다) | 2025-2회 13번 |
| 단위 | 답 칸에 단위가 있는데 다시 적는다 | 인쇄된 단위는 생략. 없으면 ms 를 붙인다 | 2026-2회 3번 |
| LRU 갱신 | 적중 시 최근 사용 표시를 안 당긴다 | 적중해도 그 페이지를 「가장 최근」으로 옮긴다 | 2024-3회 4번 |
| LFU 동률 | 횟수가 같을 때 아무거나 내보낸다 | 동률이면 오래된 것부터(문제에 규칙이 있으면 그것을 따른다) | 2024-1회 9번 |
| 약자 | SRT 를 SJF 로, PaaS 를 SaaS 로 | SRT = 남은(Remaining) 시간 · 선점, SJF = 비선점. PaaS 플랫폼 · SaaS 소프트웨어 · IaaS 인프라 | 2025-2회 4번 · 2023-3회 17번 |
| chmod | 자리 순서(소유자 · 그룹 · 기타)를 바꾼다 | u · g · o 순서, 각 자리 4 + 2 + 1 | 2023-3회 5번 |
계산 문제의 답은 소수(6.5 · 11.75)가 흔하다. 나누기 전의 합과 나눈 수를 답 옆에 적어 두면 부분 점수가 있는 문항에서 과정이 살아남는다.
왜 이걸 하나 — 같은 참조열을 FIFO 로, 스케줄링을 선점 · 비선점으로 분류, 교착 · 방법론 · chmod 의 나머지 칸이다.
훈련 1번은 2024년 3회 4번의 참조열을 FIFO 로 돌린 것이라 LRU 의 12 와 견줘 볼 수 있다. 정답은 파이썬 시뮬레이션으로 확인했고, 나머지 넷은 정의로 대조한 낱말이다.
프레임이 3개일 때 다음 참조열을 FIFO 로 처리한 페이지 부재 횟수를 쓰시오.
7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1
답 — 15회. 같은 참조열을 LRU 로 돌린 12회(2024-3-04)보다 3번 많다.
원리 — FIFO 는 "가장 먼저 들어온" 페이지를 내보낸다. 언제 마지막으로 쓰였는지는 보지 않고 들어온 순서만 본다. 그래서 자주 쓰는 페이지도 오래됐다는 이유로 나가 부재가 늘어난다. 따라가는 요령은 프레임을 큐로 그리고 부재마다 맨 앞을 빼고 맨 뒤에 넣는 것이다. 적중이면 아무것도 안 바꾼다(LRU 와의 결정적 차이 — LRU 는 적중 때 순서를 갱신한다).
따라가기
이 노트에서 만든 변형 문제다. 표준 정의와 대조했고 계산은 파이썬 시뮬레이션으로 확인했다.
다음 CPU 스케줄링 기법을 선점형과 비선점형으로 나누고, 설명에 맞는 것을 고르시오.
FCFS, SJF, SRT, RR, HRN, 다단계 큐(MLQ)
① 도착 순서대로 처리한다
② 대기 시간이 길수록 우선순위가 올라가 기아를 막는다
답 — 선점: SRT · RR · 다단계 큐 / 비선점: FCFS · SJF · HRN. ① FCFS ② HRN.
원리 — 비선점은 한 번 CPU 를 잡으면 끝나거나 스스로 내놓을 때까지 안 뺏긴다 — FCFS(도착 순), SJF(짧은 순), HRN(응답 비율 순). 선점은 더 급한 것이 오면 뺏는다 — SRT(남은 시간 짧은 것), RR(할당량마다 교대), 다단계 큐 · 다단계 피드백 큐(우선순위 큐 사이 이동). FCFS 는 줄 선 순서라 공평하지만 긴 작업 뒤의 짧은 작업이 오래 기다리고(호위 효과), HRN 은 (대기 + 서비스) ÷ 서비스로 오래 기다린 작업의 순위를 올려 SJF 의 기아를 막는다.
따라가기
이 노트에서 만든 변형 문제다. 표준 정의와 대조했고 계산은 파이썬 시뮬레이션으로 확인했다.
교착상태에 대해 다음 물음에 답하시오.
① 발생 필요조건 4가지
② 자원을 할당하기 전에 안전 상태인지 검사해 교착상태를 회피하는 알고리즘의 이름
답 — ① 상호 배제 · 점유와 대기 · 비선점 · 환형(순환) 대기 ② 은행원 알고리즘(Banker's Algorithm).
원리 — 교착은 네 조건이 동시에 성립할 때만 생긴다. 상호 배제(자원을 한 번에 하나만) · 점유와 대기(쥔 채로 더 기다림) · 비선점(못 뺏음) · 환형 대기(기다림이 원). 다루는 방법은 네 가지다 — 예방(조건 하나를 아예 없앰) · 회피(위험한 할당을 미리 피함) · 발견(생긴 뒤 찾음) · 회복(프로세스를 죽여 풂). 회피의 대표가 은행원 알고리즘이다 — 은행이 대출해 줘도 모든 고객이 결국 갚을 수 있는 "안전 상태"일 때만 빌려주듯, 자원을 주기 전에 안전 순서가 존재하는지 검사한다.
따라가기
이 노트에서 만든 변형 문제다. 표준 정의와 대조했고 계산은 파이썬 시뮬레이션으로 확인했다.
다음 설명에 해당하는 개발 방법론 · 용어를 각각 쓰시오.
① 요구 분석 → 설계 → 구현 → 테스트 → 유지보수를 순서대로 진행하며 이전 단계로 돌아가기 어렵다
② 위험 분석을 반복하며 점진적으로 개발한다(계획 → 위험 분석 → 개발 → 평가)
③ 스크럼에서 2~4주 단위로 반복하는 개발 주기
④ 스크럼에서 제품에 필요한 요구사항을 우선순위대로 모아 둔 목록
답 — ① 폭포수 모델 ② 나선형 모델 ③ 스프린트 ④ 제품 백로그.
원리 — 폭포수는 단계를 위에서 아래로 한 번만 흘러가는 모델이다 — 요구 분석 → 설계 → 구현 → 테스트 → 유지보수. 문서가 명확하지만 앞 단계로 되돌아가기 어렵다. 나선형은 계획 → 위험 분석 → 개발 → 고객 평가를 나선처럼 여러 바퀴 돌며 점점 완성한다 — 위험 분석이 들어 있는 것이 표지다. 스크럼은 애자일의 한 방법으로, 제품 백로그(우선순위로 정렬한 요구사항 목록)에서 일을 꺼내 스프린트(2~4주 고정 주기) 안에 끝내고, 매일 짧은 회의(데일리 스크럼)로 진행을 맞춘다.
따라가기
이 노트에서 만든 변형 문제다. 표준 정의와 대조했고 계산은 파이썬 시뮬레이션으로 확인했다.
리눅스 파일 권한에 대해 답하시오.
① 소유자 읽기 · 쓰기, 그룹 읽기, 기타 읽기 권한을 8진수 세 자리로
② 권한이 rwxr-x--- 인 파일의 8진수 값
③ 파일 소유자를 바꾸는 명령어
답 — ① 644 ② 750 ③ chown.
원리 — 권한 문자 rwx 를 4 · 2 · 1 로 바꿔 소유자 · 그룹 · 기타 세 묶음을 각각 더한다. rw- = 4+2 = 6, r-- = 4, r-x = 4+1 = 5, rwx = 7, --- = 0. 644 는 "나만 쓰고 남은 읽기만"이라 일반 파일의 기본값이고, 750 은 "그룹까지만 실행, 남은 아예 못 봄"이다. chmod 는 이 숫자(mode)를 바꾸고, chown 은 소유자(owner)를 바꾼다 — chown 사용자:그룹 파일.
따라가기
이 노트에서 만든 변형 문제다. 표준 정의와 대조했고 계산은 파이썬 시뮬레이션으로 확인했다.
왜 이걸 하나 — 아래를 안 보고 적을 수 있어야 이 장이 끝난다.