프로세스 개념

컴퓨터 프로그램이 메모리 상에서 실행중인 작업

    ◦  디스크에서 하나의 프로그램을 가져와 커널에 등록하면 프로세스가 된다.

• 각 프로세스는 아래와 같은 메모리 영역을 할당받는다

    ◦  텍스트(코드) 영역 : 컴파일된 실행 코드가 저장되는 영역

    ◦  데이터 영역 : 전역 변수 및 초기화된 데이터가 저장되는 영역

    ◦   영역 : 프로그램 실행 중에 동적으로 할당되는 데이터가 저장되는 영역

    ◦  스택 영역 : 임시 데이터(매개변수, 복귀 주소, 지역 변수 등)가 저장되는 영역


프로세스 상태

 New : 프로세스가 생성되는 중이다.

 Running : CPU에서 프로세스가 수행되고 있다.

 Waiting : 프로세스가 이벤트가 일어나기를 기다리고 있다.

    ◦  Ready 와 달리 입출력 완료 또는 신호의 수신을 기다리는 것

 Ready : 프로세스가 CPU에 할당되기를 기다리고 있다.

    ◦  다른 프로세스가 수행되고 있기 때문에, 실행 준비가 다 된 상태에서 본인 차례가 오기를 기다리는 상태

 Terminated : 프로세스의 실행이 종료되었다.

 Suspended : 메모리를 강제로 뺏긴 상태. 특정한 이유로 프로세스의 수행이 정지된 상태를 의미한다.
                          외부에서 다시 재개시키지 않는 이상 다시 활성화 될 수 없다.

    ◦  중기 스케줄러에 의해 디스크로 스왑 아웃된 프로세스가 대표적인 suspendended 상태

          -  suspended ready : 준비 상태에 있던 프로세스가 디스크로 스왑아웃

          -  suspended blocked : 봉쇄 상태에 있던 프로세스가 디스크로 스왑아웃

    ◦  blocked 와 suspended의 차이 

          -  blocked : 잠시 중지되어 있다가(blocked) 끝나면 다시 ready 상태로 돌아옴

          -  suspended : 잠시 중지되어 있다가(suspended) 누군가가 재개시켜줘야 다시 ready 상태로 돌아옴


프로세스 제어 블록(PCB)

 프로세스 관리에 필요한 정보를 포함하는 운영체제 커널의 자료구조

    ◦  프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거된다.

 프로세스 제어 블록이 포함하는 정보

    ◦  프로세스 상태

    ◦  프로세스 계정 정보

          -  CPU 사용 시간, 시간 제한, 프로세스 ID 등을 포함

    ◦  프로그램 카운터

          -  프로세스가 실행할 명령어의 주소

    ◦  CPU 레지스터 및 일반 레지스터

    ◦  CPU 스케줄링 정보

          -  프로세스 우선 순위, 스케줄 큐 포인터, 스케줄 매개변수 등

    ◦  메모리 관리 정보

          -  운영 체제에서 사용하는 메모리 관리 시스템에 대한 정보

          -  페이지 테이블, 세그먼트 테이블, 해당 프로세스의 주소 공간 등

    ◦  입출력 상태 정보

          -  프로세스에 할당된 입출력 장치 및 열린 파일 목록

    ◦  포인터

          -  부모 프로세스에 대한 포인터, 자식 프로세스에 대한 포인터, 프로세스가 위치한 메모리 주소에 대한 포인터,

             할당된 자원에 대한 포인터 정보 등


Context Switching

 현 프로세스의 상태를 PCB에 저장하고(state save) 새 프로세스의 PCB를 불러오는(state restore) 과정을 Context Switching

    이라 부른다.

    ◦  프로세스는 CPU 를 점유해 작업을 처리하다 상태가 전이되면 CPU 를 반환해야 하는데, 이때 진행하던 작업들을 저장해두지 않으면

         다음에 자신의 차례가 왔을 때 어떠한 작업을 수행해야하는지 알 수 없다. 따라서 프로세스는 CPU 가 처리하던 작업 내용을 자신의

         PCB 에 저장하고, 다음에 자신의 차례가 왔을 때 PCB 로 부터 해당 정보들을 CPU 에 전달해 작업을 재개할 수 있다.

    ◦  Context Switching이 이루어지는 동안 CPU는 다른 작업을 할 수 없다.

          -  즉 Context Switching에 소요되는 시간은 순수한 Overhead 이다.


참고자료

 

운영체제 - YES24

운영체제

www.yes24.com

 

'CS Knowledge > 운영체제' 카테고리의 다른 글

[OS] CPU 스케줄링 개념  (0) 2022.09.16
[OS] 스레드와 멀티스레드  (0) 2022.09.08
[OS] 운영체제 구조  (0) 2022.09.07
[OS] 운영체제 개요  (0) 2022.09.07
[OS] 운영체제와 프로세스 & 스레드  (0) 2022.06.26