[OS 2-1] 프로세스 관리

KOCW에 오픈된 경성대학교 양희재 교수님의 강의를 기반으로 정리한 내용입니다.

프로그램 vs 프로세스

프로그램은 하드디스크에 있는 소스코드이고, 프로세스는 그 소스코드가 메모리에 올라와서 CPU가 실행하고 있는(혹은 대기중인) 상태를 의미한다. 그래서 영어로는 process = program in execution이라고 한다.

프로세스 상태

from : https://blog.limhm.com/wps/2017/01/19/wps-9/

Hold

일반적으로는 하드디스크에서 메모리로 바로 프로그램이 올라오는데, 가끔 메모리가 꽉찰때가 있다. 이럴때 잠깐 기다리는 상태이다.

Ready

메모리에는 올라왔는데 아직 CPU가 실행하고 있지 않은 상태이다.

Running

CPU가 해당 프로세스를 실행하고 있는 상태이다. 일반적으로 메모리에 여러개의 프로세스가 거의 동시에 돌고 있으니, 메모리에있는 프로세스들은 Ready -> Running -> Ready -> Running..을 반복한다.

Waiting

해당 프로세스가 I/O장치를 사용할때는 Waiting상태가 된다. 그러다가 I/O장치를 다 쓰면 Ready가 되서 아까 잠깐 멈췄던 그 소스코드 다음줄부터 CPU가 다시 읽어주기를 기다린다.

Terminated

프로세스를 더이상 실행할 필요가 없어지거나(무한루프같은게 없어서..), OS에 의해 강제종료 될때 해당 프로세스는 Teminated상태가 되고 메모리에서 떨어져나간다.

PCB(Process Control Block)

from : https://www.slideshare.net/myrajendra/12-process-control-blocks-16020804

우리나라 정부가 인력을 제대로 관리하기 위해서는 사람들의 모든 신상정보를 알고있어야 한다. 예를들어, 누가 군대를 다녀왔는지, 대학생은 몇명이고 노동인구는 몇명인지. 각 가정의 부채는 얼마인지 등등 을 알아야 앞으로의 정책 방향을 결정할 수 있다.

운영체제도 마찬가지로 메모리에 올라와있는 프로세스들의 정보를 다 알고있어야 한다. 대표적으로 process id / program counter / memory limit / process state 등을 알고 있어야 컴퓨터 자원을 잘 활용할 수 있다.

모든 프로세스의 PCB정보는 OS Process안에서 관리한다(OS도 하나의 프로그램이다). C언어로 치면 Data Type이 구조체일것이다.

Queue

from : https://blog.limhm.com/wps/2017/01/19/wps-9/

Job Queue

A,B,C,D프로그램이 메모리에 올라가기전에 기다리고 있는 Queue(공간?). 모두 Hold상태이다. 사람들이 줄서고 있는것과 비슷하다.

Ready Queue

A,B,C,D프로그램이 메모리에는 올라왔는데 CPU가 바빠서, 실행되어지길 기다리고 있는, Ready상태의 프로세스들이 기다리고 있는 Queue. 어후..말이 길다..

I/O Queue

A,B,C,D프로그램이 모두 프린터를 사용하고 싶을때, I/O Queue에서 대기한다. 프린터는 하나의 프로세스만 점유할 수 있기 때문이다. 하나씩 처리되면 다시 Ready Queue에 쌓인다.

Scheduler

응급환자가 맨 마지막에 들어왔다고 해서, 내성발톱때문에 고생하는 환자보다 늦게 진료를 받는다면 전체적으로 봤을때 고통의 총량?이 더 커질것이다.

컴퓨터도 마찬가지로 Queue에 프로세스들을 막 들어오는대로 쌓아놓는게 아니라, 우선순위를 잘 정해서 넣는다. 이런 역할을 해주는 OS내부의 프로그램을 Scheduler라고 한다.

from : https://blog.limhm.com/wps/2017/01/19/wps-9/

Swap

PCB에는 해당 프로세스가 CPU를 얼만큼 점유하고 있는지도 기록되어있다. 운영체제는 메모리 낭비를 매우 싫어하기 때문에, CPU를 쓰고있지도 않으면서 메모리에 올라와있는 process는 하드디스크로 옮겨놓는다. 이것을 swap이라고 한다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

Up Next:

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!