스케줄링 (2) 썸네일형 리스트형 <운영체제> 프로세스 스케줄링 1. 스케줄링이란 * Context Switching - 멀티태스킹은 운영체제를 통해 CPU가 필요한 자원을 프로세스 또는 스레드에 나누는 행위를 의미한다. 우리가 여러 프로그램을 동시에 실행할 수 있는 이유가 멀티태스킹 덕분이다. - 지난 포스팅에서도 봤던 그림이다. 프로세스가 동시에 실행되는 것처럼 보이지만, 실제로 CPU는 한번에 한 가지 명령어 밖에 처리하지 못하기 때문에 동시는 아니다. - CPU는 동시가 아니라 아주 빠르게 프로세스들을 번갈아가며 실행하고 관리한다. 이렇게 번갈아 실행하는 행위를 Context Switching이라 한다. 빠른 스위칭 덕에 우리는 마치 동시에 프로세스가 돌아가는 것처럼 느끼게 된다. * CPU 스케줄러 - Context Switching을 할 때 CPU를 적절하.. <운영체제> 프로세스와 스레드 1. 프로세스 - 프로세스는 운영체제에서 메모리 영역을 할당받아 실행되는 독립적인 프로그램 인스턴스이다. - 동적인 개념으로는 실행된 프로그램을 의미한다. - 더 자세한 내용은 지난 글을 참고하자. * 특징 - 한 프로세스는 다른 프로세스에 접근할 수 없다. 만일 접근하려면 통신을 사용해야한다. - 프로세스 하나는 독립된 메모리영역을 받으며 내부에는 Code, Data, Stack Heap영역이 있다. - 프로세스는 최소 1개의 스레드(메인 스레드)를 가지고 있다. * 상태 - 프로세스는 아래와 같은 생명주기를 갖는다. - CPU는 여러 프로세스를 빠르게 번갈아 가며 작업해야하는데 이 때, PCB(Process control block)을 이용하여 위의 상태들을 관리하며 Context Switching을.. 이전 1 다음