CS

Process

Process

process의 사전적 의미는 다음과 같습니다.

컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램

프로세스를 얘기하는데 프로그램이라는 단어가 나옵니다. 여기서 프로세스와 프로그램은 다릅니다. 프로그램은 하드디스크에 저장된 코드를 의미하고 프로그램은 생명이 없습니다. 하지만 이러한 프로그램들이 명령어와 함께 메모리에 올라가게 되면 생명이 있는 프로세스가 됩니다.

Process란?

스케줄링의 대상이 되는 작업(task)이라는 용어와 같은 의미로 사용됩니다. 여러개의 프로세서를 사용하는 것을 멀티 프로세싱이라고 하며 같은 시간동안 여러개의 프로그램을 띄우는 시분할 방식을 멀티태스킹(multitasking)이라고 합니다.

컴퓨터에서 여러개의 프로그램이 구동되는 것은 매우 어려운 일입니다. 유튜브로 노래를 켜고 카카오톡으로 대화를 하며 vscode로 코드를 작성하고 git으로 코드를 올리는 일을 한다는 것은 컴퓨터를 사용 할 때 프로세스가 어떻게 작동하는지는 모르지만 우리가 보는 환경은 평온하기만 합니다. 마치 오리가 물 위에 떠 있을 때 오리의 발은 쉴 새 없이 빠르게 움직이지만 오리는 평온하기만 한 것과 같습니다.
여러개의 프로그램이 구동 될 때 커널 내에는 준비 큐, 대기 큐, 실행 큐 등의 자료구조들이 있으며 이것들을 이용하여 프로세스의 상태를 관리합니다. 여기서 큐는 이곳을 참고하시기 바랍니다.

공유하기