| English | 의미 |
|---|---|
| process/ˈprəʊses/ | 프로세스 |
| scheduler/ˈʃedjʊlə/ | 스케줄러 |
| multi-tasking/ˈmʌlti ˈtæskɪŋ/ | 멀티태스킹 |
| spooling/ˈspuːlɪŋ/ | 스폴링 |
| caching/ˈkæʃɪŋ/ | 캐싱 |
| round robin/raʊnd ˈrɒbɪn/ | 라운드 로빈 |
| context switch/ˈkɒntekst swɪtʃ/ | 컨텍스트 스위치 |
| process control block/ˈprəʊses kənˈtrəʊl blɒk/ | 프로세스 컨트롤 블록 |
모든 것이 멈췄음에도 마우스가 여전히 움직이는 이유
- 프로그램이 잠깁니다. 창이 재그림되지 않고, 스피너가 멈추며, 아무것도 반응하지 않습니다. 그러나 마우스 커서는 여전히 Previously와 동일하게 화면 위를 미끄러집니다.
- 이는 운영체제가 알려주는 것입니다: 기계 전체가 막힌 것이 아니라, 하나의 프로세스(process) 가 막힌 것입니다. 스케줄러는 여전히 프로세서의)slices(조각)를 배분하고 있으며, 멈춘 프로그램은 단순히 자신의 slice를 유용하게 사용하지 않을 뿐입니다.
- 기계의 모든 자원은 이렇게 공유됩니다: 프로세서는 시간으로, 메모리는 공간으로, 프린터는 대기열로.
- 이 수업은 운영 체제(OS)가 이러한 자원을 최대한 활용하는 방법과 프로세스를 생성부터 종료까지 관리하는 과정을 다룹니다.
자원의 최대 활용
- 멀티태스킹: 프로세서는 프로세스 사이에서 빠르게 전환되므로, 한 순간에 실행되는 것은 하나뿐이지만 여러 프로세스가 동시에 실행되는 것처럼 보입니다.
- 페이징(R paging): 메모리를 RAM과 디스크 간에 이동시켜 물리 메모리의 용량보다 더 많은 프로그램을 열 수 있게 합니다.
- 스풀링(Spooling): 느린 장치의 출력은 디스크의 큐에 대기시키므로, 프로세서는 프린터 대기가 없습니다. **캐싱(Caching)**은 최근에 사용된 데이터를 빠른 메모리에 유지하여 다시 가져올 필요를 없애줍니다.
- OS는 이러한 모든 것을 사용자 인터페이스, 명령줄 또는 GUI 뒤에 숨겨 제공합니다.
멀티태스킹은 다음 방법을 통해 여러 프로그램이 동시에 실행되는 것처럼 보이게 합니다:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
OS가 단일 CPU를 프로세스 사이에서 빠르게 전환하여 모두 함께 진행하는 것처럼 보입니다.
worked example: 스풀링이 도움이 되는 이유
- 스풀링이 컴퓨터 자원의 효율적 사용을 어떻게 개선하는지 설명하십시오. [3]
- 프린터는 프로세서보다 수천 배 느리므로, 출력을 직접 보내는 프로그램은 프린터를 기다리게 되고 프로세서는 유휴 상태가 됩니다.
- 스풀링을 사용하면 출력이 디스크의 큐에 빠르게 기록되고, 프로그램은 즉시 계속 실행됩니다.
- 별도의 프로세스가 프린터에 자체 속도로 데이터를 공급하고, 프로세서는 다른 작업을 진행하는 동안 여러 작업이 큐에 대기할 수 있습니다. 느린 장치, 큐, 그리고 프로세서가 대신 수행하는 작업을 نام칭하십시오.
스푸링(Spooling)이 시스템에 도움이 되는 이유는:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
스푸링은 인쇄 작업을 디스크 버퍼에 저장하여 빠른 CPU가 느린 프린터로 인해 지연되지 않게 합니다.
OS가 리소스를 가장 효율적으로 활용하기 위해 어떤 기법이 도움이 됩니까? 모든 해당 항목을 선택하십시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
시간 공유, 느린 장치 대기 및 핫 데이터 유지. 대기 중인 프로세스를 종료하면 사용자 작업이 손실되고 효율성이 향상되지 않습니다.
프로세스와 스케줄러
- 프로세스는 실행 중인 프로그램으로, 그 코드, 현재 상태, 메모리 및 열린 파일을 포함합니다. 디스크에 있는 파일은 프로세스가 아니며, 실행 중인 프로그램만이 프로세스입니다.
- 스케줄러는 다음에 실행될 준비(R ready) 프로세스와 그 실행 시간을 결정합니다. 스케줄러의 목표는 프로세서를 바쁘게 유지하고, 상호작용하는 사용자에게 빠르게 응답하며, 공정하게 처리하는 것입니다.
- **라운드 로빈(Round robin)**은 각 준비 프로세스에게 고정된 **타임 슬라이스(Time slice)**를 부여한 후, 이를 큐의 뒤로 보냅니다: 단순하고 공정하며 반응성이 뛰어납니다. 다른 정책으로는 선입선출(First come first served), 최단 작업 우선(Shortest job first) 및 **남은 시간 최단(Shortest remaining time)**이 있습니다.

모두 차례를 얻고, 아무도 프로세서를独占하지 않습니다
라운드 로빈 스케줄링은 각 준비 프로세스에게 고정된)slice)를 부여하고 Queue 뒤로 이동시켜 공정하고 반응성 있게 만듭니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
동일한)slice)를 순환하여 특정 프로세스가 CPU를 독점하는 것을 방지하므로 인터랙티브 프로그램이 반응성을 유지합니다.
프로세스(process)란 무엇입니까?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
디스크의 파일은 프로그램이며, 로드되어 실행되고 자체 상태(state)를 가질 때 프로세스가 됩니다.
프로세스 상태
- New(새로 생성됨): 생성 중입니다. Ready(준비됨): 실행 가능하며, 프로세서만 기다리고 있습니다. Running(실행 중): 현재 실행 중입니다. Blocked(대기/블로킹됨): 다른 어떤 것(보통 입력 또는 출력)을 기다리고 있습니다. Terminated(종료됨): 완료되었습니다.
- 전이 과정은 시험에서 묻는 내용입니다. 타임 슬라이스가 만료되면 Running에서 Ready로, 프로세스가 I/O를 요청하면 Running에서 Blocked로, 해당 I/O가 완료되면 Blocked에서 Ready로, 스케줄러가 선택하면 Ready에서 Running으로 변경됩니다.
- 비대칭성에 유의하십시오: Blocked 상태인 프로세스는 바로 Running 상태로 돌아가지 않습니다. Ready 큐에 재합류하여 차례를 기다립니다.

다섯 가지 상태와 각 화살표의 이유
각 프로세스 상태를 그 의미와 매칭하십시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
프로세스는 준비 → 실행 → (블로킹) → 준비를 반복하며 종료될 때까지 순환합니다.
worked example: 프로세스 추적하기
- 프로세스가 파일을 읽기를 요청할 때 실행 중입니다. 여기에 어떤 일이 일어나는지 설명하십시오.
- 데이터가 도착하기 전에 계속할 수 없으므로, Running에서 Blocked로 이동합니다. 이때 스케줄러는 즉시 다른 준비 프로세스에게 프로세서를 할당하고 기다리지 않습니다.
- 디스크 작업이 완료되면, 프로세스는 Blocked에서 Ready로 이동합니다. 즉시 복원되지 않으며, Ready 큐에 합류합니다.
- 나중에 스케줄러가 이를 선택하면, Ready에서 Running으로 이동하여 정확히 멈췄던 지점에서 계속 실행합니다.
프로세스의 수명
루프를 돌며 프로세스가 이동합니다. 스케줄러가 선택했을 때만 실행되며, I/O 요청 시 블로킹되고 시간)slice)이 끝나면 다시 준비 상태 queues로 돌아갑니다—완료될 때까지 반복됩니다.
실행 중인 프로세스가 파일 읽기를 요청할 때, 이를 순서대로 설명하십시오.
난이도 3/5 · 200 코인 + 오늘 첫 완료 시 소액 보너스
블로킹된 프로세스는 즉시 실행 상태로 돌아가지 않고 준비 큐에 재연결되어 순서를 기다립니다.
컨텍스트 스위치(Context switching)
- 실행 중인 프로세스를 바꾸려면, OS는 현재 프로세스의 상태, 레지스터, 프로그램 카운터 및 상태를 **프로세스 제어 블록(Process control block)**에 저장한 후, 다음 프로세스의 상태를 해당 프로세스의 own 블록에서 로드합니다.
- 이것이 컨텍스트 스위치입니다. 실제 비용이 발생하는데, 이 과정에서 프로세서는 사용자의 작업 대신 집무실 관리(housekeeping)를 수행합니다.
- 따라서 타임 슬라이스는 타협점(trade-off)입니다. 너무 길면 상호작용_programs가 느리게 느껴지고, 너무 짧으면 기계가 계산하는 대신 전환에 시간을 쓰게 됩니다.
컨텍스트 스위치(context switch)에는以下内容이 포함됩니다:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
OS는 실행 중인 프로세스의 레지스터/PC를 PCB에 저장하고 다음 프로세스의 것을 로드합니다—각 전환마다 소량의 오버헤드가 발생합니다.
컨텍스트 스위치 중 프로세스의 레지스터와 프로그램 카운터는 ____에 저장됩니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
다음 프로세스의 상태는 자체 블록으로부터 로드됩니다. 저장 및 복원은 실제 작업이며 이것이 전환에 시간이 걸리는 원인입니다.
인터럽트와 커널 Kernel
- **커널(Kernel)**은 OS의 핵심으로, 실제로 이를 수행합니다. 장치와 프로그램으로부터의 **인터럽트(Interrupts)**에 응답하며, 인터럽트는 실행 중인 프로세스로부터控制权을 OS로 반환하는 것입니다.
- 타임 슬라이스의 끝에서 발생하는 타이머 인터럽트가 프리엠텝티브 스케줄링을 가능하게 합니다;如果没有它, 양도하지 않는 프로그램은 영원히 프로세서를 점유할 것입니다.
- 이것이开篇 퍼즐의 답입니다: 정지된 프로그램은 자신의 슬라이스만큼만 프로세서를 점유하므로, 마우스는 계속 움직일 수 있습니다.
놓칠 수 있는 점
- 프로세스는 디스크의 파일이 아닌 실행 중인 프로그램입니다.
- Blocked에서 Ready로, 바로 Running으로 가지는 않습니다. 스케줄러가 다시 실행할 시기를 선택합니다.
- 컨텍스트 스위치는 프로세스 제어 블록을 통해 상태를 저장하고 복원하며, 비용이 발생합니다.
- 멀티태스킹은 프로세스들이 매우 빠르게 차례를 나누어 동시처럼 보이게 하는 것이며, 단일 코어에서 진짜로 동시에 실행되는 것이 아닙니다.
이해했습니다
- OS는 멀티태스킹, 페이징, 디스크 큐로의 스풀링 및 캐싱을 통해 자원 사용을 극대화합니다.
- 프로세스는 실행 중인 프로그램이며, 스케줄러는 다음 준비 프로세스를 선택하고, 라운드 로빈은 각자에게 고정된 타임 슬라이스를 부여합니다.
- 상태는 New, Ready, Running, Blocked, Terminated입니다: 슬라이스 만료는 Running을 Ready로, I/O 요청은 Blocked로, I/O 완료는 Ready로 보냅니다.
- 컨텍스트 스위치는 프로세스 제어 블록을 통해 상태를 저장하고 복원하며 시간이 소요되므로, 슬라이스 길이는 타협점입니다.