10.1 프로세스
10.1.1 프로세스의 정의
1960년대 Multics시스템을 설계한 사람들이 처음으로 프로세스라는 용어를
사용했는데 일반적으로 "실행중인 프로그램"이라는 개념이 가장 널리 사용된
다. 프로그램은 비활동적인 개체로서, CPU가 이 프로그램에게 생명을 불어
넣을 때 비로소 그것을 우리는 프로세스라고 부르는 활동 중인 개체가 된다.
10.1.2 프로세스의 상태
일반적으로 가장 많이 보급되어 있는 컴퓨터에는 CPU가 한 개밖에 없고,
또한 하나의 CPU는 동시에 한 개의 프로세스만을 처리할 수 있다. 이러한
일련의 과정을 그림 10-1과 같이 도식화 할 수 있다.
준비상태는 프로세스가 CPU에서 처리되고 있지는 않지만, 처리되기는 기
다리고 있는 상태를 의미하며, CPU를 점령하고 있는 프로세스가 작업을 종
료하거나, 다른 이유로 인하여 CPU를 떠날 경우 준비상태에 있는 프로세스
가 실행상태로 천이를 하게 된다.
실행상태는 현재 CPU를 하나의 프로세스가 점령해서 사용하는 것을 의미
한다. 만일 실행상태에서 프린터로 출력을 하는 작업을 하게 되면, 그것은 프
린터 디바이스가 해야 할 일이므로, 실행상태에서 대기상태로 다시 천이를
하게 된다. 그리고 입출력 작업을 마쳤을 경우, 다시 준비상태로 되돌아 가서
위의 과정을 다시 반복하게 된다.
10.2 멀티태스킹
지금까지는 단순히 하나의 프로세스만을 중심으로 설명을 했다. 하지만 실
제적으로 하나의 CPU는 여러 개의 프로세스를 동시에 처리해야 하는데 이
를 멀티태스킹이라 한다. 멀티태스킹이라 하더라도 CPU는 오직 하나의 프로
세스만을 처리할 수 있으며, 단지 여러 프로세스가 CPU를 할당받아 동시에
처리하는 효과를 발휘한다. 한편, CPU를 여러 개를 두어 프로세스를 동시에
처리하는 경우가 있는데 이것을 병렬 처리라하며 여기서는 제외한다.
멀티태스킹시, 만약 어떠한 프로세스가 작업을 종료하는데 1시간이 소요된
다면, 1시간 동안 CPU는 점령되고 있으므로, 다른 프로세스들은 계속 준비
상태에서 기다려야만 한다. 이러한 경우, 한 프로세스가 CPU를 계속해서 독
점하는 것을 방지하기 위해서 운영체제는 인터럽트를 두어서 지정된 시간동
안(time slice)만 프로세스가 CPU를 점유하도록 한다. 즉 만일에 어떤 프로세
스가 일정한 시간이 지났는데도 자발적으로 CPU를 내놓지 않을 때는 클락
이 해당 프로세스에게 인터럽트를 발생시켜 운영체제가 CPU 제어권을 갖게
된다.
그리고 프로세스가 입출력 작업을 할 경우, 실제적인 작업은 CPU가 하는
것이 아니라 해당 입출력 장치가 담당하게 되므로, 입출력이 완료될 동안에
는 CPU는 아무런 일도 하지 않게 된다. 그러므로 보다 효율적으로 CPU를
사용하기 위해서 입출력 작업을 하게 되면 해당 프로세스로부터 CPU 제어
권을 빼앗고 준비상태에서 대기하고 있는 한 프로세스에게 CPU 제어권을
넘겨주게 된다. 그리고 입출력 작업을 하는 프로세스는 대기상태로 천이가
되어 입출력 작업의 종료를 기다리고 있다가, 입출력이 종료되고 더 이상의
작업이 없을 경우 완전히 빠져 나가고, 그렇지 않을 경우 다시 준비상태로
천이해서 CPU 제어권을 기다리게 된다.
멀티태스킹은 비선점형 멀티태스킹과 선점형 멀티태스킹이 있다.
10.2.1 비선점형 멀티태스킹(nonpreemptive multitasking)
일단 한 프레세스의 실행을 시작하면 끝까지 완전히 실행 완료하는 것을
비선점형 멀티캐스킹이라고 부른다. 한 프로세스가 원하는 시간 동안 실행되
도록 하는 정책은 다른 프로세스를 계속 쉬게 만들 수 있는데 예를 들어, 1
에서 10억까지 더하는 작업을 하는 처리기는 다른 모든 사용자에게 무한정
서비스를 거부할 수 있다는 것을 뜻한다. 다시 말하면, 어떤 한 프로세스가
실행상태에서 CPU를 독점해서 작업을 할 경우, 위에서 설명한 타임 슬라이
스가 없다면, 이 프로세스가 작업을 완료하기 전에는 준비상태에 있는 어떠
한 프로세스도 CPU를 사용할 수 없게 된다.
따라서 비선점 스케줄링 알고리즘은 실행하기 쉽고 간단하지만 많은 사용
자들이 함께 사용하는 범용 시스템에는 적합하지 못하다. 반대로, 데이타베이
스 시스템과 같은 미묘한 시스템에서, 주프로세스가 자식 프로세스로 하여금
요구에 해당되는 작업을 시작하게 하고 그것이 완성될 때까지 자식 프로세스
를 실행시키는 것은 타당성이 있다. 범용 시스템과 구별되는 차이점으로 데
이터베이스 시스템에서는, 모든 프로세스가 각각의 자식이 무엇을 할 것인지
그리고 얼마나 오랫동안 실행할 것인지를 아는 하나의 주프로세스 통제하에
있다는 것이다.
10.2.2 선점형 멀티태스킹(preemptive multitasking)
논리적으로 실행가능 한 프로세스를 일시적으로 보류시키는 책략을 선점형
멀티태스킹이라 부르는데, 이는 초기 일괄처리 시스템에서 완전하게 실행 완
료하는 방법과는 대조적이다. 이 방식은 무한정으로 한 프로세스에게 CPU
제어권을 넘겨주는 것이 아니라, 시스템에서 정한 일정한 시간동안만 CPU를
사용하고 다시 다른 프로세스에게 사용권을 넘겨주는 방법이며, 대부분의 프
로세스 스케줄링에 사용된다.
준비상태에 있는 한 프로세스에게 CPU 제어권을 넘겨주고자 할 경우, 만
일 준비상태에 여러 프로세스가 대기하고 있다면, 어떤 프로세스를 선택할
것인지를 결정하기 위한 몇 가지의 특별한 스케쥴링 알고리즘이 필요하다.
10.3 스케줄링
두 개 이상의 프로세스가 준비상태에서 기다리고 있을 때, 운영체제는 어
떤 프로세스를 먼저 실행할 것인지를 결정해야만 하는데, 이런 결정에 관계
된 운영체제 일부분을 스케쥴러라 부르고, 그것이 사용하는 알고리즘을 스케
줄링 알고리즘이라고 한다. 일괄처리 시스템의 스케줄링 알고리즘은 단지 순
서대로 작업을 수행하기만 하면 되므로 간단하다. 그러나, 백그라운드의 일괄
처리 작업과 혼합되어 여러 사용자가 함께 사용하는 시분할 시스템의 스케줄
링 알고리즘은 복잡하다.
10.3.1 라운드 로빈 스케줄링
가장 간단하고 가장 공정하며 가장 널리 사용되는 알고리즘 중의 하나가
라운드 로빈이다. 단어의 의미에서 알 수 있는 바와 같이 CPU 제어권을 가
지는데 있어서 어떤 특정한 정책이 있는 것이 아니라, 프로세스끼리 한 번씩
돌아가면서 CPU의 제어권을 가지는 방법을 의미한다.
그림 10-2에서 (a)는 A, B, C, D 네 개의 프로세스가 준비상태에서 대기하
고 있고 E 프로세스가 CPU를 점령하고 작업을 하고 있는 상태이다. (b)는
주어진 일정 시간이 지난 후에 E 프로세스가 제어권을 준비상태의 D 프로세
스에게 넘겨주고 준비상태의 제일 마지막 큐에 들어가서 다시 CPU 제어권
을 기다리고 있게 된다. 여기에서 큐라는 자료 구조는 일종의 저장장소로서,
이 큐에 먼저 입력된 자료가 먼저 출력되는 구조를 의미한다.
D 프로세스에 주어진 시간이 지나면 다시 D는 (b)의 E 위치에 입력되고,
각 내용은 오른쪽으로 한 칸씩 이동하며, C 프로세스가 CPU의 제어권을 넘
겨받게 된다. 이 라운드 로빈 방식에 대한 한 가지 관심사항은 할당시간의
크기이다. 할당 시간을 너무 짧게 두면 너무 많은 프로세스 전환이 발행하여
CPU 효율이 저하되고, 할당시간을 너무 길게 잡으면 F은 시간의 상호작용
요구에 대해서 부적절한 응답을 얻게 된다. 흔히 100msec 정동의 할당 시간
이 합리적인 것으로 되어 있다.
10.3.2 우선 순위 스케줄링
라운드 로빈 스케줄링에서는 모든 프로세스들이 동등하게 중요하다는 전제
를 의미하고 있지만, 특정 요인들에 따라 달리 중요성을 두어야 하는 필요성
때문에 우선 순위 스케줄링이 생겼다. 기본적인 알고리즘은 간단하며 다음과
같다.
각각의 프로세스에 먼저 우선 순위가 할당되고 가장 우선 순위가 높은 실
행 가능한 프로세스가 먼저 실행된다. 하지만 우선 순위가 높은 프로세스를
먼저 처리하므로, 우선 순위가 가장 높은 어떤 한 프로세스가 CPU를 독점하
게 되면, 준비상태에서 대기하고 있는 프로세스들은 이 프로세스가 종료되기
만을 기다리는 수밖에 없을 것이다. 또한 우선 순위가 아주 낮은 프로세스는
모든 프로세스가 종료되기만을 기다렸다가 겨우 실행할 수 있는데, 만일 우
선 순위가 높은 프로세스가 계속 준비상태에 들어오게 되면, 결국은 우선 순
위가 낮은 프로세스는 실행할 수 없을 것이다. 이러한 경우를 스타베이션
(starvation)이라고 한다.
그리고 우선 순위가 높은 프로세스가 무한정 계속 실행되는 것을 막기 위
해서, 스케줄러는 각 인터럽트마다 현재 실행중인 프로세스의 우선 순위를
감소시킬 수 있다. 만약 이 동작으로 그 프로세스의 우선 순위가 어느 시점
에서 그 다음으로 높은 우선 순위를 가진 프로세스보다 낮아지게 되면 프로
세스가 전환된다.
우선 순위는 정적 또는 동적으로 할당될 수 있는데, 초기에 각 프로세스에
게 우선 순위를 할당할 수도 있고, 유닉스 시스템에서 nice라는 명령어를 사
용해서, 다른 사용자의 편의를 위해서 자신의 프로세스의 우선 순위를 자발
적으로 감소시키는 방법도 있다.
우선 순위는 또한 어떤 시스템의 특정 목적달성을 위해 그 시스템에 의해
동적으로 할당될 수 있다. 예를 들어, 어떤 입출력 바운드 프로세서들은 자주
입출력을 하기 위해 기다리는데 대부분의 시간을 보낸다. 이와 같은 프로세
스가 CPU를 원할 때는 언제든지 즉시 CPU를 사용할 수 있게 한다. 그렇게
해서 그 다음 입출력 요구와 다른 프로세스의 실질적인 계산을 병렬처리로
진행해 갈 수 있도록 한다.
흔히 프로세스를 우선 순위 클래스로 그룹화하여 클래스들 간에는 우선 순
위 스케줄링을 사용하는데, 각 클래스 내에서는 라운드 로빈 스케줄링을 많
이 사용한다. 그림 10-3은 4개의 우선 순위 클래스를 가진 시스템이다. 스케
줄링 알고리즘은 다음과 같다.
우선 순위 클래스 4에서 실행 가능한 프로세스가 있는 한 클래스 4가 라운
드 로빈 방식으로 프로세스당 할당시간 동안 실lPU 중점 프로l세스에게는 적은 양의 할당시간을 자주 주는것 보다 한 번에
ll뮌 양의 할당시간을 주는 것이 더욱 효과적이다.
lll 반면, 모든 프로세스에게 많은 양의 할당시간을 주는 것은 응l鵝챨@ 느
ll? 한다. 이 문제의 해결책은 우선 순위 클래스를 설정하는 것이다. 가장
l耳 순위가 높은 클래스의 프로세스가 할당시간 1동안l 실행된다. 그 다음
l耳 순위가 높은 클래스의 프로세스가 할당시간 2동안 실행되고 그 다음 클
래스의 프로세스가 할당시간 3동안 실행된다. 이와 같이 프로세스가 우선 순
j 큐의 낮은 단계로 내려갈수록 작은 실행기간의 상호 작용적 프로세스는
j刮 줄어든다. 이러한 정책을 다중 큐 j스케줄링이라j고 한다.
j 예를 들면, 할당시간 100동안 계속 계산해야 될 필요가 있는 프로세스를
생각해 보자. 그 프로세스는 처음에 할당시간 1을 배당 받고 실행되다가 교
체된다. 그 다음에는 할당시간 2를 받고 교체된다. 연속적으로 실행될 때, 할
당시간 4, 8, 16, 32, 64를 얻게 된다. 물론 그 프로세스는 마지막 할당시간
64중에서는 단지 37만을 사용한다. 100번의 스와핑을 요구하는 순수 라운드
로빈 방식에 비하여 단지 일곱 번의 스와핑만을 요구한다. 이 방법은 다음에
나오는 정책을 어떠한 프로세스가 첫 번째 실행할 때는 장시간의 실행을 요
구하지만, 나중에 상호 작용하게 되는 프로세스를 위한 방법이다.
10.3.4 SFJ(Shortest Job First)
앞선 알고리즘의 대부분은 상호작용 시스템을 위해 고안되었다. 본 절은
특히 실행시간을 미리 아는 일괄처리 작업에 적합한 것을 알아본다. SJF 정
책은 작업들의 실행시간을 알 수 있을 때 가장 작은 CPU 시간을 요구하는
프로세스를 선택하는 것이다.
표 10-1은 현재 준비상태에 대기 중인 프로세스와 해당하는 작업 완료 소
요시간을 나타낸 것이다. 표 10-1과 같은 상황일 경우에는 A, D, B, C의 순
으로 CPU를 할당하게 된다. 만일 A, B, C, D의 순으로 작업을 처리할 경우,
A는 1, B는 9(A+B), C는 19(A+B+C), D(A+B+C+D)는 24의 반환시간을 가지
므로 평균적으로 13.25의 반환시간을 가지게 된다. 하지만 A, D, B, C의 순
으로 작업을 처리할 경우, A는 1, D는 6, B는 14, C는 24의 반환시간을 가져
서 평균 11.25의 반환시간을 가지게 된다.
SJF는 항상 최소의 평균 응답시간을 나타내기 때문에 상호 작용하는 프로
세스들에게도 사용할 수 있다면 좋을 것이다. 상호 작용 프로세스들은 대개
명령을 기다리고 명령을 실행하고, 명령을 기다리고, 명령을 실행하고, 계속
이런 형태를 따른다. 만약 각각의 명령을 한 독립된 작업으로 실행한다면 그
때는 가장 실행시간이 짧은 것을 가장 먼저 실행시킴으로서 전체 응답시간을
최소화할 수 있다. 한 가지 문제점은 현재 실행될 프로세스 중에 실행시간이
가장 짧은 것이 어느 것인지를 알아야 한다. 한 방법은 과거 동작에 바탕을
두고 평가하여 가장 짧은 것으로 평가된 실행시간을 갖는 해당 프로세스를
실행시키는 것이다.
SJF 알고리즘은 모든 작업들이 동시에 이용 가능할 때 유일한 최적의 알
고리즘으로 주목된다. 상반된 예로서 위의 테이블에서 소요시간이 긴 프로세
스부터 먼저 실행을 시켜 보면, C, B, D, A의 순서대로 작업이 이루어지게
되고, 각각의 반환시간은 다음과 같다.
C : 10
B : 18
D : 23
A : 24
그러므로 평균 반환시간은 18.75가 된다. 위의 13.25나 11.25와 비교해 볼
때, 아주 많은 차이가 남을 알 수 있다.
10.4 윈도우즈 95에서의 멀티태스킹
윈도우즈 95는 엄밀히 말해 멀티태스킹 기법을 지원하지 않고 팝업을 지원
한다. 팝업은 여러개의 프로그램을 랩에 상주시켜 동시에 실행되도록 하여
작업 전환을 빠르게 수행한다. 이러한 원리는 멀티태스킹 기법과 동일한 개
념을 많이 공유하고 있다. 윈도우즈 95는 선점형 멀티태스킹을 사용하여 프
로그램 자체가 병행으로 실행되는 것처럼 보이는 복수 실행으로 쪼갠다.
그림 10-4는 멀티태스킹을 위한 윈도우즈 95의 구조를 나타낸다. 윈도우즈
95의 프로세스는 윈도우가 보내오는 행동이나 사건에 대한 메시지를 기반으
로 멀티태스킹을 수행한다. 즉, 사용자의 마우스나 키보드 입력을 윈도우가
메시지화하여 해당 프로세스로 전달하는 방식이다. 메시지를 해당 프로세스
로 전달할 때, 윈도우 95 운영체제는 각각의 메시지를 해당 프로세스의 메시
지 큐로 보내고, 메시지를 받은 각각의 프로세스는 메시지에 부응하는 작업
을 수행한다.
윈도우즈 95는 16비트 프로세스에 대하여 비선점형 멀티태스킹을 지원하
고, 32비트 프로세스에 대하여 선점형 멀티태스킹을 지원한다. 윈도우즈 95의
비선점형 멀티태스킹은 여러 프로세스가 하나의 메시지 큐를 공동으로 접근
한다. 그러므로 임의의 프로세스가 메시지 큐의 메시지를 처리하지 못하는
비정상적인 상태가 되면 다음의 프로세스로 제어를 넘기지 못하고 메시지 큐
가 가득차는 경우가 발생하는 등 운영체제에 영향을 미쳐 시스템 전체가 다
운될 수 있다. 선점형 멀티태스킹은 운영체제가 자체적으로 프로세스에 대한
조절권을 가지고 있다. 그리고, 각 프로세스마다 자신의 메시지 큐를 접근하
여 실행하는 방식이므로 임의의 프로세스가 비정상적 상태에 놓이면 운영체
제가 해당 프로세스에 대한 제어권을 반납받기 때문에 다른 프로세스로 제어
를 다시 넘겨 작업을 계속 진행할 수 있다.
(실습예 1) 윈도우즈 95에서 동시에 2개의 프로그램을 실행시킴으로써 멀티
태스킹을 실습한다. 바탕화면에서 넷스케이프와 도스창을 클릭하여 실행시킨
다. 넷스케이프가 실행되고 있는 동안 도스창에서 여러 가지 명령어를 입력
하여 본다. 2개의 프로그램이 동시에 실행되고 있음을 확인할 수 있다. 그림
10-5는 넷스케이프가 검색을 하는 동안 도스창에서 압축프로그램을 동시에
실행하고 있음을 나타낸다.
10.5 백그라운드 프로세스
10.5.1 유닉스 환경
프로세스는 포그라운드 혹은 백그라운드로 실행될 수 있다. 유닉스 환경에
서 하나의 터미널은 하나의 포그라운드 프로세스와 여러개의 백그라운드 프
로세스를 실행시킬 수 있다. 백그라운드 프로세스는 터미널에 대한 제어를
가지지 못하기 때문에 터미널로부터 입력을 받지 못한다. 그러므로 터미널은
하나의 포그라운드 프로세스만을 생성하여 터미널의 입력을 넘겨준다. 그러
나 백그라운드의 실행 결과는 터미널에 반영되며 이것은 가끔 진행 중인 포
그라운드 프로세스의 출력 내용과 섞여 사용자에게 혼란을 주기도 한다.
만약 터미널로부터 입력을 받아야 하는 프로세스가 백그라운드로 실행되
면, 프로세스는 터미널로부터 입력을 받을려고 할 것이며, 이것은 에러로 처
리되지 않고 다만 이러한 상황에 대한 시그널을 전송한다. 그리고 백그라운
드 실행을 포그라운드로 전환할 수 있다.
(실습예 2) 터미널로부터 입력을 받는 프로세스를 백그라운드로 실행해서
그 결과를 이해하고 포그라운드로 전환하라.
① 윈도우즈 95 사용자는 유닉스 시스템으로 원격 접속한다.
② cat > temp &를 입력한다. 이 명령은 터미널(키보드)로부터 입력받은 문
자를 temp라는 파일에 저장하는 것이다. &는 백그라운드 실행임을 지시한다.
③ 엔터키를 한번 더 입력한다.
④ 출력된 메시지를 확인한다. cat > temp 명령의 터미널 입력기능이 중단됨
을 의미한다.
⑤ fg %1을 입력하여 포그라운드 작업으로 전환한다. fg는 포그라운드로 전
환하라는 명령어이고 %1은 작업 번호가 1번인 프로세스를 가리킨다. 여기서
작업 번호가 1번인 프로세스는 cat > temp를 수행하는 프로세스이다. 이 명
령을 입력하면 터미널은 입력을 기다리고 있게 되고 이 작업 이외의 다른 작
업을 할 수 없게 된다. 즉, 백그라운드로 실행하면 또 다른 작업을 백그라운
드 혹은 포그라운드로 실행할 수 있지만, 포그라운드로 작업이 실행되면 그
작업이 끝나기 전에는 다른 프로세스를 실행시킬 수 없다.
⑥ 키보드로 Hello, World!!!를 입력하고 Ctrl + D를 입력하여 포그라운드로
전환한 작업을 완료한다. ls를 입력하여 temp라는 파일이 존재함을 확인한다.
ls는 도스의 dir과 같은 명령어이다.
(실습예 3) 생성한 파일 temp의 내용을 확인하라. 내용을 확인하는 작업도
물론 포그라운드 혹은 백그라운드로 실행할 수 있다.
① cat temp를 입력하여 temp 파일의 내용을 포그라운드로 확인한다. Hello,
World!!!가 화면에 출력된다.
② cat temp &를 입력하여 temp 파일의 내용을 백그라운드로 확인한다. 프
로세스 ID가 출력된후 파일의 내용이 화면에 출력된다. 그리고 엔터를 한번
더 입력하면 백그라운드로 실행한 프로세스 cat temp가 완료되었음을 알리
는 메시지가 출력된다.
10.5.2 윈도우즈 95 환경
윈도우즈 95에서는 도스창에 대하여 포그라운드와 백그라운드 실행을 설정
할 수 있다. 포그라운드로 설정되었을 경우는 제어권을 가진 경우에 한하여
실행이 진행된다. 만약 포그라운드로 설정되었을 겨우 다른 프로그램으로 이
동하여 작업을 할 경우 포그라운드로 설정된 도스창에서 실행되는 프로세스
는 더 이상 진행되지 않는다. 백그라운드로 설정되었을 경우는 다른 프로그
램을 수행하는 도중이라도 즉, 제어권을 가지지 않더라도 프로세스가 계속해
서 진행되어 완료된다. 윈도우즈 95는 프린터 스풀러를 가동할 때 항상 백그
라운드로 실행하도록 하여 입출력 도중 다른 프로그램의 실행은 물론 다중의
입출력을 가능하게 한다.
(실습예 4) 윈도우즈 95에서 포그라운드 실행을 실습한다. 바탕화면에서 도
스창을 클릭하여 2개를 실행시킨 후, 각각의 창에서 동시에 dir 명령을 입력
한다.
① 도스창을 실행한다.
② 도스창에서 c:\windows 디렉토리로 이동한 후, 도스창의 백그라운드 버튼
을 확인하여 포그라운드 실행으로 설정한다.
③ dir을 입력한 후 화면에 디스플레이가 진행될 때, 마우스로 바탕화면을 클
릭하여 제어권을 도스창에서 바탕화면으로 이동한다.
④ 결과를 관찰한다. 디스플레이의 진행이 멈출 것이다. 이것은 포그라운드로
실행하기 때문이다.
(실습예 5) 윈도우즈 95에서 백그라운드 실행을 실습한다. 실습??와 동일하
게 실습하되 도스창의 백그라운드 버튼을 클릭하여 백그라운드 실행으로 설
정한다.
① 도스창을 실행한다.
② c:\windows 디렉토리로 이동한 후, 도스창의 백그라운드 버튼을 클릭하여
백그라운드로 실행으로 설정한다.
③ dir을 입력한 후 화면에 디스플레이가 진행될 때, 마우스로 바탕화면을 클
릭하여 제어권을 도스창에서 바탕화면으로 이동한다.
④ 결과를 관찰한다. 디스플레이의 진행이 멈추지 않고 계속됨을 관찰할 수
있을 것이다. 이것은 dir작업이 백그라운드로 실행되기 때문이다.
10.6 프로세스 전환
10.6.1 프로세스 전환
멀티태스킹은 프로세스의 전환을 필요로 한다. 프로세스의 전환은 CPU를
다른 프로세스가 점유할 수 있도록 넘겨주는 것을 말하며, 이전의 프로세스
의 상태를 보관하고 새로운 프로세스의 상태를 적재하는 작업을 필요로 한
다. 이러한 작업을 문맥 교환이라고 하고, 프로세스의 전환은 문맥 교환에 의
하여 이루어진다. 문맥교환은 프로세스가 종료되거나 프로세스가 자신에게
할당 받은 시간을 모두 소비하거나 프로세스가 다른 자원을 필요로 하거나
자신 보다 높은우선 순위의 프로세스가 실행되는 경우에 이루어진다. 문맥교
환은 기억 장치의 속도와 레지스터의 수 등의 하드웨어 지원에 크게 좌우된
다.
10.6.2 윈도우즈 95의 작업 전환
동시에 여러 어플리케이션이 수행중인 윈도우 환경은 필요에 따라 여러 어
플리케이션 중 원하는 어플리케이션을 선택하게 되고 이것은 여러 어플리케
이션 사이의 전환이 필요하다. 이것을 작업 전환이라 하며, 윈도우즈 95는 빠
른 작업 전환 기능을 제공한다. 선택된 어플리케이션은 작업 진행시 최대화
되어 전화면을 차지하는 경향이 있는데, 이 때 다른 어플리케이션은 최소화
되기 때문에 시스템의 사용자는 다른 어플리케이션으로의 작업 전환이 불편
하다. 그러나 윈도우즈 95는 작업 전환을 지원하기 위하여 여러 가지 기능을
제공한다.
(1) 작업 표시줄
윈도우즈 95는 작업 전환을 지원하기 위하여 현재 진행 중인 작업의 목록
을 표시하는 작업 표시줄 기능을 제공한다. 작업 표시줄 기능을 이용한 작업
전환은 마우스를 이용하여 작업 목록 중 원하는 작업을 클릭함으로써 이루어
진다. 그림 10-8은 작업 표시줄을 나타내고 현재 진행 중인 4가지의 작업에
대한 목록을 보여준다.
작업 표시줄은 위치 조정은 물론 크기 조정이나 자동 숨김 기능을 설정할
수 있다. 이러한 기능은 작업 표시줄의 시작 버튼을 클릭하여 설정 메뉴의
작업 표시줄 메뉴를 클릭해서 설정한다. 그림 10-9는 작업 표시줄의 다양한
기능을 설정하는 윈도우를 나타낸다.
항상 위는 작업 표시줄이 다른 창보다 항상 위에 나타나게 하고, 자동 숨
김은 마우스로 작업 표시줄을 가리키면 나타나고 그렇지 않으면 작업 표시줄
이 나타나지 않는다. 시작 메뉴에 작은 아이콘 표시는 메뉴 상의 아이콘의
크기를 작게하여 메뉴의 크기가 작아지고, 시계 표시는 작업 표시줄의 우측
끝에 현재 시간을 표시한다.
(실습예 6) 작업 표시줄의 작업 목록을 클릭하여 작업 전환을 실습한다.
(실습예 7) 작업 표시줄의 위치 이동과 자동 숨김 기능을 실습한다. 작업 표
시줄 등록 정보의 작업 표시줄 옵션에 나타나는 체크박스를 클릭함으로써 설
정할 수 있다.
(2) 단축키
윈도우즈 95는 작업 전환을 위하여 단축 키를 제공한다. Alt + Tab의 조합
은 실행중인 모든 프로그램의 아이콘과 이름이 동시에 나타난다. 계속해서
Alt + Tab을 누르면 프로그램 아이콘에 선택용 사각형 박스가 옮겨지며, 원
하는 아이콘이 선택되었을 때 손을 놓으면 그 프로그램으로 작업 전환이 이
루어진다. Alt + Esc의 조합도 작업 전환에 이용될 수 있는데, Alt + Esc를
누를 때 마다 태스크 바의 버튼이 차례로 선택된다. 그림 10-10은 Alt +
Tab에 대한 작업 전환을 나타낸다.
(실습예 8) Alt + Tab을 이용하여 작업 전환을 실습한다.
(실습예 9) Alt + Esc를 이용하여 작업 전환을 실습한다.
10.7 프로세스의 강제 종료
10.7.1 유닉스의 프로세스 강제 종료
유닉스 시스템은 생성되는 프로세스에 대하여 프로세스 테이블을 생성하여
관리하는데, 하나의 프로세스는 프로세스 테이블내의 하나의 엔트리가 된다.
생성되는 프로세스의 수는 프로세스 테이블의 총 엔트리 수 보다 많이 생성
될 수 없다. 엔트리는 프로세스 상태에 대한 정보를 가지고 있으며, 그 정보
는 기억 장치내의 프로세스의 위치와 크기, 프로세스 ID와 부모 프로세스 ID,
사용자 ID와 그룹 ID, 프로세스의 상태 등이다. 이 중에서 프로세스 ID는 프
로세스를 확인할 수 있는 정확한 방법이다. 그러므로, 유닉스 환경에서 프로
세스를 강제로 종료하는 방법은 프로세스 ID를 이용하여 종료하고자 하는
프로세스를 선택할 수 있다. 프로세스의 강제 종료 명령이 수행되면, 프로세
스 테이블에서 해당 프로세스의 엔트리를 삭제한다. 유닉스 시스템에 관한
자세한 내용은 13장에서 다룬다.
(실습예 10) 유닉스 시스템에서 실행중인 프로세스를 확인하고 임의 프로세
스의 종료를 실습한다. PC환경의 사용자인 경우 유닉스 시스템으로 원격 접
속하여 다음 명령을 수행한다.
① 유닉스 시스템에 원격 접속한다.
② vi &를 입력한다.
③ ps를 입력한다. 현재 진행 중인 프로세스의 목록이 나타난다.
④ vi 프로세스를 프로세스 ID를 이용하여 강제 종료한다. kill 프로세스 ID
를 입력한다. 그림 10-11에서 vi의 프로세스 ID는 3035이다.
⑤ ps를 입력해서 vi 프로세스가 목록에서 제거되었음을 확인한다.
10.7.2 윈도우즈 95의 프로세스 강제 종료
윈도우즈 95도 유닉스 시스템처럼 프로세스를 강제로 종료할 수 있는데 프
로세스 ID를 사용하지 않는다. 윈도우즈 95는 불완전한 멀티태스킹 지원으로
인하여 프로세스들이 비정상적으로 중단되어 시스템 전체를 다운시키는 경우
가 자주 발생하며, 이러한 경우 문제을 일으키는 프로세스를 강제로 종료할
수 있다.
프로세스를 종료하는 방법은 Ctrl + Alt + Del 키를 입력하여, 생성되는 윈도
우에서 원하는 프로세스을 선택한후 작업 종료할 수 있다.
(실습예 11) 윈도우 95에서 Ctrl + Alt + Del 키를 입력하여 강제로 프로세
스를 종료한다.
① Ctrl + Alt + Del 키를 입력한다. 프로그램 종료 윈도우가 생성되고, 현재
진행중인 작업들의 목록이 프로세스 ID가 아닌 프로세스의 이름으로 출력된
다. 출력되는 프로세스중에서 비정상적으로 중단된 프로세스는 [응답없음]이
란 메시지를 함께 출력한다.
② 화살표키나 마우스로 종료하고자 하는 프로세스를 선택한 후 작업 종료
키를 클릭한다. 종료하고자 하던 프로세스가 종료되었는지 작업 표시줄에서
확인한다.
실 습
1. 윈도우즈 95에서 멀티 프로세싱을 설명하고, 모든 가능한 작업 전환 방법
을 설명하고 실습하다.
2. 윈도우즈 95에서 2개의 도스창에서 압축 프로그램을 이용하여 동시에 파
일 압축을 실험한다. 두 도스창 모두 포그라운드로 실행하는 경우, 하나의
도스창은 백그라운드로 실행하는 경우, 두 도스창 모두 백그라운드로 실
행하는 경우를 실험하여 보고 프로세스의 실행 현상을 분석하라.
3. 윈도우즈 95에서 작업 표시줄에 나타난 시계를 없애고 시작 메뉴의 아이
콘의 크기를 작게했다가 크게한 후 변화를 설명하라.
4. 윈도우즈 95에서 Ctrl+Alt+Del 단축키를 2번 입력하고 그 결과를 설명하
라.
문 제
1. 순차 처리 시스템에 비하여 멀티 태스킹 시스템이 가지는 이점은 무엇인
가?
2. 프로그램과 프로세스의 차이점과 관련성을 설명하라.
3. 스케쥴링이란 무엇이며, 필요한 이유를 설명하라.
4. 비선점형 멀티태스킹과 선점형 멀티태스킹은 무엇이며, 그 차이점은 무엇
인가?
5. 포그라운드 실행과 백그라운드 실행은 무엇이며, 어떠한 경우에 적합하게
적용될수 있는지 예를 들어라.
6. SFJ 스케줄링 알고리즘을 적용할 경우 다음의 작업에 대한 각각의 반환
시간과 평균 반환 시간을 구하고, 다른 스케쥴링 알고리즘과 비교 분석하
여라
-
Amoxicillin for acne.
Tracked from Amoxicillin. 2008/06/12 11:47 삭제Buy amoxicillin without prescription. Amoxicillin strep pharyngitis. Amoxicillin allergy itch.
-
online casinos
Tracked from virtual casino 2009/03/30 06:48 삭제casino free slots
-
Tracked from drug rape girl porn 2009/04/13 13:48 삭제
drug rape
-
Tracked from lolita rape 2009/04/14 01:29 삭제
little girl rape
-
brother sister rape
Tracked from brutal rape 2009/04/14 16:50 삭제brother rapes sister
-
shemale bondage
Tracked from suspension bondage 2009/04/15 00:23 삭제sexy bondage
-
free bondage pictures
Tracked from free bondage porn 2009/04/15 08:44 삭제free bondage pics
-
rape teens
Tracked from forced blowjobs 2009/06/29 05:01 삭제rape comix
-
brutal face fuck
Tracked from animal rape 2009/06/29 05:03 삭제the rape of nanking
-
rape porn pictures
Tracked from forced sex reporter 2009/06/29 22:29 삭제forced dog sex
-
bondage rape porn
Tracked from xxx rape 2009/06/29 23:58 삭제forced oral sex
-
rape porn fantasy
Tracked from rape insest porn top 2009/06/30 03:13 삭제rape galleries
-
rape vids
Tracked from violent sex 2009/06/30 10:30 삭제rape fucking
-
rape cartoons
Tracked from bizarre extreme sex 2009/07/01 02:16 삭제forced mom sex
-
daughter rape
Tracked from forced sex galleries 2009/07/01 05:04 삭제rape teen
-
videos of rape
Tracked from pedo rape stories 2009/07/01 22:38 삭제asian rape videos
-
fantasy rape stories
Tracked from forced to have sex 2009/07/01 23:03 삭제rape fantasy
-
rape my body
Tracked from gang rape pictures 2009/07/02 07:01 삭제young forced sex
-
blonde rape
Tracked from real rape pics 2009/07/02 12:06 삭제forced teen sex
-
throat rape
Tracked from slaves forced feminization 2009/07/02 15:02 삭제rape sex videos
-
rape incest porn
Tracked from rape poems 2009/07/05 19:38 삭제cartoon rape
-
torture rape
Tracked from asian forced sex 2009/07/06 01:19 삭제be forced
-
rape fetish porn
Tracked from japanese rape 2009/07/06 19:11 삭제forced witness anal forced sex videos
-
play casino games online
Tracked from casino money 2009/07/10 08:17 삭제online casino guide
-
usa online casinos
Tracked from casinos online 2009/07/11 07:00 삭제casino web sites
-
online casinos accepting us players
Tracked from us online casinos 2009/07/11 19:27 삭제casino websites
-
usa internet casino
Tracked from online casinos in the united states 2009/07/12 12:25 삭제online casinos accepting usa deposits
-
online casino poker
Tracked from casino gaming table 2009/07/12 17:19 삭제free online casino gaming
-
online casino reviews bonuses
Tracked from winning online poker 2009/07/13 14:21 삭제no deposit online casino
-
online casinos with freeroll slot tournaments
Tracked from top casino 2009/07/14 00:13 삭제free money online casinos
-
casinos gratis online
Tracked from free online casino games 2009/07/14 07:59 삭제usa accepting casinos
-
free online casino games
Tracked from free casinos online 2009/07/14 18:04 삭제no deposit online casino
-
online betting casinos
Tracked from new online casino 2009/07/14 22:39 삭제online casino slots
-
casino gaming online
Tracked from no deposit online casinos 2009/07/15 07:55 삭제online casinos accepting all usa players
-
internet casino gambling
Tracked from online casino game 2009/07/15 19:51 삭제tops casino
-
top casino
Tracked from casinos online gratis 2009/07/16 03:31 삭제free online casino gaming
-
new online casinos
Tracked from new no deposit online casinos 2009/07/16 10:34 삭제free casino slots
-
casino supplies
Tracked from reputable online casino 2009/07/16 13:34 삭제java internet casino
-
online casino uk
Tracked from online casino no depost 2009/07/16 13:34 삭제us online casino
-
play poker online
Tracked from casino deposit bonus 2009/07/17 03:30 삭제online casinos no deposit bonuses
-
online download casino games blackjack
Tracked from free casino online 2009/07/17 05:18 삭제online casino deposit
-
no download online casinos
Tracked from gambling casino online 2009/07/17 19:32 삭제online casino games
-
online no deposit casinos
Tracked from casino usa slot 2009/07/17 22:16 삭제free online casino cash
-
us friendly casinos
Tracked from casino deposit bonus 2009/07/18 07:46 삭제u s online casino
-
online casino $10 minimum deposit
Tracked from java internet casino 2009/07/19 02:58 삭제gambling casino online
-
online casino reviews bonuses
Tracked from web casino 2009/07/19 10:17 삭제casino gamble
-
perfect ladyboy
Tracked from transvestite cock 2009/07/20 10:17 삭제transexual sex
-
tranny movies
Tracked from ladyboy sex 2009/07/20 12:16 삭제sexy transexuals
-
transgender surgery
Tracked from real futanari 2009/07/20 20:53 삭제ladyboy video
-
transvestite bondage
Tracked from lesbian shemale 2009/07/20 23:26 삭제shemale list
-
tranny cumshots
Tracked from transvestite bdsm 2009/07/21 01:32 삭제shemale fucks guy
-
pictures of transexual woman
Tracked from ladyboys galleries 2009/07/21 23:00 삭제transsexual mpegs
-
transvestite bdsm
Tracked from post op tranny 2009/07/22 00:40 삭제hot tranny
-
transexual ass pounding
Tracked from shemale movies 2009/07/22 13:55 삭제futanari doujinshi
-
transsexual services
Tracked from black transexual 2009/07/22 16:50 삭제ladyboy orgy
-
transsexual teens
Tracked from shemale porn 2009/07/23 02:13 삭제ebony ladyboy
-
ladyboy pics
Tracked from teen shemales 2009/07/23 12:30 삭제shemale videos
-
ladyboy dicks
Tracked from transvestite spanking 2009/07/23 12:38 삭제ladyboy cum
-
ladyboys fucking
Tracked from shemale bondage 2009/07/23 18:39 삭제transvestite cock
-
transvestite uk
Tracked from nancy ladyboy 2009/07/24 00:54 삭제las vegas transvestites
-
vintage transvestites
Tracked from futanari cum 2009/07/24 02:53 삭제black transvestite video
-
shemale sex
Tracked from tranny videos 2009/07/24 07:37 삭제tranny fuck
-
transvestites in bondage
Tracked from phillipine transvestite 2009/07/24 16:18 삭제transvestite blowjob
-
free incest porn stories
Tracked from free incest porn 2009/09/05 23:59 삭제daughter fucking incest porn
-
mother daughter fuck
Tracked from moms fucking sons 2009/09/06 01:56 삭제mother daughter incest
-
daddies and sons gay
Tracked from family rape 2009/09/06 04:27 삭제gay incest
-
incest pictures
Tracked from incest mother and daughter 2009/09/06 08:24 삭제incest rape
-
father daughter porn
Tracked from father fucks daughter 2009/09/06 14:33 삭제incest
-
incest lesbian stories
Tracked from mom and daughter sex 2009/09/07 03:28 삭제Fucked Her Son
-
daddies and sons gay
Tracked from dad fucks daughter 2009/09/07 06:32 삭제daddies fucking daughters
-
daughter incest incest
Tracked from dad daughter nude sex 2009/09/07 08:46 삭제dad fucking daughter
-
Mom And Son Sex Galleries
Tracked from Moms Fucking Sons 2009/09/07 21:31 삭제Mother Son Porn
-
mother sucks son
Tracked from mother son sex 2009/09/08 04:20 삭제my sisters hot friend
-
incest movies
Tracked from incest video 2009/09/08 04:31 삭제young incest
-
dad fucking son
Tracked from sibling incest 2009/09/08 13:11 삭제father son sex
-
dad fucking daughter
Tracked from daughter incest incest 2009/09/08 21:14 삭제dad fucks daughter
-
father daughter porn
Tracked from father fucks daughter 2009/09/09 02:05 삭제incest
-
anime incest
Tracked from comics incest 2009/09/09 02:40 삭제free cartoon incest
-
dad fucking daughter
Tracked from daughter incest incest 2009/09/09 12:25 삭제dad fucks daughter
-
dad and daughter incest
Tracked from daddies fucking daughters 2009/09/09 13:03 삭제dad with sis son sex mom
-
mother daughter nude
Tracked from mother daughter lesbian sex 2009/09/09 19:56 삭제mother daughter sex
-
dad fucking daughter
Tracked from daughter incest incest 2009/09/09 23:06 삭제dad fucks daughter
-
domination training
Tracked from domination stories 2009/09/11 10:21 삭제dungeon torture
-
bdsm ws
Tracked from bdsm vids 2009/09/12 04:22 삭제bondage
-
gay torture
Tracked from gay male bondage 2009/09/12 04:37 삭제genital torture
-
bdsm collars
Tracked from bdsm clips 2009/09/12 09:11 삭제bdsm comics
-
torture whip
Tracked from torture videos 2009/09/12 12:24 삭제tranny bdsm
-
breast torture
Tracked from breast bondage 2009/09/12 21:24 삭제brutal bdsm
-
male bdsm
Tracked from lolita bondage 2009/09/13 00:01 삭제male domination
-
ball torture
Tracked from ass torture 2009/09/13 05:46 삭제bbw bdsm
-
lesbian bondage
Tracked from lesbian bdsm 2009/09/14 08:40 삭제lesbian domination videos
-
bdsm training
Tracked from bdsm toys 2009/09/14 11:24 삭제bdsm tube
-
bdsm cafe
Tracked from bdsm bound 2009/09/15 12:16 삭제bdsm clips
-
rubber bondage
Tracked from rope bondage 2009/09/15 16:56 삭제russian torture technique
-
sex slave punishment
Tracked from sex slave 2009/09/16 10:53 삭제sex slaves
-
teen punishment sex slave
Tracked from teen bondage 2009/09/16 12:10 삭제testicle torture
-
dungeon torture
Tracked from drawing torture 2009/09/16 12:39 삭제electro torture
-
incest taboo forum
Tracked from incest taboo 2009/09/27 12:25 삭제incest toons
-
incest porn gallery
Tracked from incest porn stories 2009/09/27 15:24 삭제free incest porn videos
-
father daughter porn
Tracked from father fucks daughter 2009/09/28 16:57 삭제incest porn
-
incest stories
Tracked from incest sex 2009/09/28 16:59 삭제incest pictures
-
3d incest
Tracked from brother sister incest 2009/09/29 09:37 삭제family sex
-
family incest
Tracked from Incest Sex Stories 2009/09/29 16:36 삭제Free Incest Sex Stories
-
preteen incest
Tracked from free incest 2009/10/02 12:59 삭제incest pics
-
dad fucking son gay
Tracked from father son sex 2009/10/03 08:51 삭제dad son sex
-
family incest galleries
Tracked from family incest 2009/10/03 11:12 삭제family nude
-
dad fucking son
Tracked from sibling incest 2009/10/04 07:46 삭제father son sex
-
bdsm humiliation
Tracked from bdsm library 2009/10/20 09:43 삭제bdsm movies
-
bondage orgasm
Tracked from bondage paper 2009/10/21 10:11 삭제bondage photos
-
free bdsm movies
Tracked from free bdsm pics 2009/10/21 13:42 삭제free bdsm porn
-
bondage video
Tracked from bondage videos 2009/10/22 08:55 삭제bondage watch
-
gay male bondage
Tracked from girl bondage 2009/10/22 11:48 삭제girls in bondage
-
bdsm comix
Tracked from bdsm drawings 2009/10/22 14:20 삭제bdsm ebooks
-
gay bdsm
Tracked from hentai bdsm 2009/10/23 08:57 삭제informed consent bdsm
-
bdsm video
Tracked from bdsm videos 2009/10/23 10:36 삭제bdsm vids

Comments List
醫