프로세스는 실행 중인 프로그램이며 운영체제가 관리하는 최소 단위의 작업이다. 프로세스 제어블록으로 명시되고 프로세서가 할당되는 개체이지, 입출력장치 자체가 아니다. 프로그램과 프로세스를 같은 것으로 보거나 프로세스를 장치로 설명하면 정의에서 벗어난다.
가상기억장치는 논리적 주소 공간을 실제 기억장치와 분리해 다룬다. 가상주소 공간에서 서로 이웃한 연속 주소라도 실제 기억장치에서는 반드시 연속일 필요가 없다. 주소의 연속성을 실제 메모리까지 요구한다고 서술하면 가상기억장치의 성질을 잘못 설명한 것이다.
스풀링은 프로세서가 계산한 결과를 프린터로 곧바로 보내지 않고 디스크라는 고속 저장 공간에 모아 두었다가 나중에 한꺼번에 출력하는 기법이다. 느린 입출력장치와 빠른 CPU의 속도 차이를 디스크가 흡수하므로, 프린터를 여러 프로그램이 함께 쓰면서도 처리 속도를 보완할 수 있다.
문맥교환은 CPU를 넘겨줄 때 일어난다. 지금 실행 중인 프로세스의 상태 정보를 저장하고, 이어서 실행할 프로세스의 상태 정보를 설정한 뒤 CPU를 할당해 실행을 잇는다. 저장과 설정이라는 두 단계를 빠뜨리고 단순히 프로세스를 교체한다고만 설명하면 절차가 빠진다.
다중 스레드 프로그램은 응답 시간을 줄이고 자원을 아껴 여러 작업을 동시에 다루는 데 이점이 있다. 응답 시간이 늘어난다는 서술은 이점의 반대이므로 성립하지 않는다.
유닉스에서 커널은 운영체제의 가장 핵심적인 부분으로, 하드웨어를 보호하고 응용프로그램에 서비스를 제공한다. 로더는 목적 프로그램을 주기억장치에 적재해 실행 가능하게 만드는 프로그램으로, 그 기능은 할당, 링킹, 재배치, 로딩 순서로 진행된다. 링킹을 맨 앞에 두는 식으로 순서를 뒤집으면 옳지 않은 설명이 된다.
예제
선지 판단은 프로세스를 프로세서가 할당되는 실행 개체로 정의하는지, 가상주소의 연속성을 실제 기억장치의 연속성과 동일시하는지, CPU와 프린터의 속도 차를 디스크로 흡수하는 기법을 스풀링으로 읽는지, 프로세스를 입출력장치로 서술한 선지를 걸러내는지, 문맥교환을 상태 저장과 상태 설정의 두 단계로 보는지, 다중 스레드의 이점에 응답 시간 증가를 끼워 넣었는지, 하드웨어 보호와 서비스 제공의 주체를 커널로 잡는지, 로더의 기능 순서를 할당부터 시작하는지에서 갈린다.
대표 기출 3문항
프로그램이 프로세서에 의해 수행되는 속도와 프린터 등에서 결과를 처리하는 속도의 차이를 극복하기 위해 디스크 저장 공간을 사용하는 기법은?
인터프린터(Interpreter)
사이클 스틸링(cycle stealing)
스플링(spooling)
폴링(polling)
정답과 해설 보기
정답 ③ · CPU와 느린 입출력 장치 간의 속도 차이를 디스크 저장 공간으로 극복하는 기법을 묻는 문제이다. 스풀링(spooling)은 프린터 같은 저속 입출력 장치로 나갈 데이터를 디스크의 스풀 공간에 먼저 저장해 두었다가 출력함으로써 CPU와 입출력 장치의 속도 차이를 흡수하는 기법이다.
느린 입출력 장치와 CPU의 속도 차를 디스크 버퍼(스풀)로 흡수하는 기법이 스풀링이다.
프로그램이 프로세서에 의해 수행되는 속도와 프린터 등 결과를 처리하는 속도의 차이를 극복하기 위해 디스크 저장 공간을 사용하는 기법은?
링킹(linking)
사이클 스틸링(cycle stealing)
스풀링(spooling)
페이징(paging)
정답과 해설 보기
정답 ③ · CPU와 프린터 등 입출력 장치의 속도 차이를 디스크 저장 공간을 활용해 극복하는 기법을 묻는 문제이다. 스풀링은 느린 입출력 장치로 출력될 데이터를 디스크의 스풀 공간에 먼저 모아 두었다가 장치의 처리 속도에 맞춰 순서대로 출력하게 함으로써 빠른 CPU와 느린 장치 간 속도 차이를 흡수한다.
빠른 CPU와 느린 프린터의 속도 차를 디스크에 출력물을 모아 두어 해결하는 기법 = 스풀링(spooling).
프로세스의 정의로 적당하지 않은 것은?
하드웨어에 의해 사용되는 입/출력 장치
실행중인 프로그램
운영체제 내에 프로세스 제어 블록의 존재로서 명시되는 것
프로세서가 할당되는 개체
정답과 해설 보기
정답 ① · 프로세스의 정의로 적절하지 않은 보기를 고르는 문제이다. 프로세스는 실행 중인 프로그램을 뜻하며, 운영체제 안에 프로세스 제어 블록(PCB)이 존재함으로써 명시되고 프로세서가 할당되는 개체라는 설명은 모두 표준적인 정의에 해당한다.
프로세스는 '실행 중인 프로그램'으로 PCB로 명시되고 프로세서가 할당되는 개체이며, 입출력장치가 아니다.