• [운영체제] 프로세스란? ( What is Process in OS ? )

    2021. 8. 10.

    by. KimBangg

    1. 프로세스 (Process)

     

    프로세스는 실행 중인 프로그램을 일컫는 말입니다.

     

    그렇다면 우리가 일반적으로 말하는 프로그램은 무엇일까요?  쉽게 생각해서 저장 장치에 존재하며 실행 되기를 기다리는 코드와 데이터의 묶음 이라고 생각 해주시면 됩니다. 이러한 프로그램이 실행이 됬을 때 비로소 우리는 프로그램을 프로세스라고 부르게 됩니다.

     

    고로, 프로그램은 수동적(Passvie) / 프로세스는 능동적(Positive) 로 보통 표현이 되죠 :D

     

     

     

     

    2. 프로그램이 프로세스가 되려면?

     

    - 실행

     

    ""실행된 프로그램이 프로세스다" 라는 이야기를 나눴습니다. 이 때, 실행 된다는 것이 무엇을 의미 하는걸까요?

    여기서 실행이란 프로그램이 메모리에 적재되어 CPU를 할당 받은 상태를 의미합니다. 그렇기에 위에서 언급한 내용처럼 "능동적" 이라고 표현 할 수 있겠죠 :ㅇ

     

     

    - PCB

    프로세스에 대한 정보를 담고 있는 PCB가 생성 되어야 합니다.

     

     

     

     

    3. PCB in Detail

     

    PCB는 프로세스를 제어하기 위한 정보를 저장해놓은 공간입니다.

    프로세스가 생성이 되면, 고유의 PCB가 생성이 되고 프로세스가 종료되면 PCB도 함께 사라집니다.

    PCB는 주로 상태관리나 문맥 교환 (Context Switching) 을 위해 요구가 됩니다.

     

     

    - PID

    운영체제가 각 프로세스를 식별하기 위해 부여한 식별번호 ( Process Identification ) 를 저장합니다.

     

     

     

    - 프로세스의 상태 ( Process's State )

    프로세스의 현재 상태를 [ 준비, 대기, 실행, 종료 ] 등으로 분류하여 저장합니다.

    하단에서 자세히 다루겠습니다 :D

     

     

     

    - 프로그램 카운터 ( Program Counter )

    CPU가 다음으로 실행할 명령어를 가리킵니다. 즉, 다음으로 실행할 기계어가 저장된 메모리 주소를 저장하는 공간입니다.

     

     

     

    - 스케줄링 우선순위 ( Scheduling information )

    운영체제는 문맥 교환을 통해 여러 개의 작업이 동시에 이루어지는 것과 같은 "마법" 을 우리에게 보여주는데요.

    실제로 프로그램 상황에 맞춰 교환이 이루어지면서 CPU를 점유합니다. 이 때, 운영체제는 우선순위를 바탕으로 먼저 실행 될 수 있는 프로그램을 결정합니다.

    이와 관련된 정보를 이 곳에서 저장합니다.

     

     

    - 권한

    프로세스가 접근할 수 있는 자원을 결정하는 정보입니다.

     

     

    - 메모리 영역에 대한 주소 값 ( Memory realted Information )

    프로세스는 실행 중인 프로그램이기에 이에 맞춰 필요한 정보를 가지고 있어야 합니다.

    아래에서 이야기 나눌 메모리 영역에 대한 주소 값을 이 곳에서 저장합니다.

     

       

     

      

    운영체제는 빠르게 PCB에 접근하기 위하여 프로세스 테이블을 이용하여 이를 관리합니다 :D

     

      

    4. 프로세스 메모리 영역

     

    PCB에서 언급한 주소 값에 실제 저장 되어 있는 데이터입니다.

    메모리에 적재되는 프로세스는 다음과 같이 [ 코드, 스택, 데이터, 힙 ] 4가지 영역으로 구분 되어 저장됩니다.

     

    - 코드

    사용자가 작성한 프로그램 함수 코드가 기계어 형태로 변환되어 저장 되어있는 공간 입니다.

    컴파일 단계에서 결정되어, 중간에 변경 될 수 없도록 "read-only" 상태로 존재합니다.

    CPU는 이 영역에 있는 명령어를 가져가 처리를 합니다.

     

    - 데이터

    전역 또는 static 변수 등 프로그램이 사용하는 데이터를 저장하는 공간입니다.

     

    - 스택

    호출된 함수가 돌아갈 주소, 지역 및 매개변수와 같은 임시적인 데이터를 저장하는 공간입니다.

     

    - 힙

    런타임동안 동적으로 할당되는 공간입니다.

    메모리 주소 값에 의해서만 참조되고 사용되는 영역입니다.

     

    Reference

     

    https://yoongrammer.tistory.com/52

     

    프로세스 제어 블록 (PCB: Process Control Block) 알아보기

    프로세스 제어 블록 (PCB: Process Control Block) 알아보기 PCB(Process Control Bolock) 는 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓는 곳으로, 프로세스의 상태 정보를 저장하는 자료구조

    yoongrammer.tistory.com

     

     

    댓글