1. Process
간단히 설명하자면,
1) 실행 중인 프로그램
2) 컴퓨터에서 실행되는 프로그램의 인스턴스
3) 프로세서에 할당되고, 실행될 수 있는 엔터티
4) 일련의 명령 실행과, 현재 상태 및 관련 시스템 리소스 등을 포함하는 전반적인 활동
프로그램 자체는 생명이 없다.
프로그램은 보조 기억장치에 존재하며, 실행되기를 기다리는 명령어와 정적인 데이터의 묶음이다.
이 프로그램의 명령어와 정적 데이터가 메모리에 적재되면 생명이 있는 프로세스가 된다.
이 프로세스는 작업(Job), 태스크(Task)라고도 한다.
2. Process Control Block
PCB라고 불리는 Process Control Block에는 프로세스에 대한 여러 요소(Element)들이 저장되어있는데,
이는 OS가 여러 프로세스를 지원하고 멀티 프로세싱을 제공할 수 있도록 하는데 핵심적인 역할을 한다.
각 요소들을 살펴보면,
1) 식별자
: 다른 프로세스를 식별하기 위해 프로세스에 부여되는 고유 식별자이다.
PID(Process IDentification)라고 부른다.
2) 상태
: CPU는 프로세스를 빠르게 교체하면서 실행하기에, 실행 중인 프로세스도 있고 대기 중인 프로세스도 있다.
이러한 프로세스의 상태를 저장한다.
3) 우선순위
: OS가 여러 개의 프로세스가 CPU에서 실행되는 순서를 결정하는 것을 스케줄링이라고 하는데,
이 스케줄링에서 우선순위가 높으면 먼저 실행될 수 있다. 실행의 중요도와 연관되어있다.
4) 프로그램 카운터
: CPU가 다음으로 실행할 명령어를 가리키는 값이 저장된다.
프로세스를 실행하기 위해 다음으로 실행할 기계어가 저장된 메모리 주소를 가리키는 값이다.
5) 메모리 포인터
: 해당 프로세스와 관련된 프로그램 코드 및 데이터가 메모리에 적재되어있는 공간의 주소값을 가진다.
6) Context data
: 프로세스가 실행상태에서 마지막으로 실행한 프로세서의 레지스터 내용을 담고 있다.
CPU에 의해 실행되는 프로세스는 운영체제에 의해 교체되는데, 다시 자신의 차례가 되어서 실행될 때 다시 사용하기 위해 이 레지스터 정보를 가지고 있다.
7) I/O 상태 정보
: I/O요청과 할당된 I/O장치, 그리고 사용 중인 파일 목록 등이 포함된다.
8) 계정 정보
: 프로세서의 사용 시간 및 클럭 시간, 제한된 시간, 계정 번호 등이 포함된다.
이러한 정보들은 Process Control Block에 저장되는데,
이는 실행 중인 프로세스를 중단하고 다시 실행을 할 때 사용된다.
따라서 프로세스는 프로그램 코드와 관련 데이터 및 PCB로 구성되어 있다고 말 할 수 있다.
다음 포스팅은 프로세스 상태전이에 대해서.....랄랄ㄹ라라랄라
Reference
Computer Systems : A Programmer's Perspective - Randal E.Bryant, David R. O'Hallaron
https://coding-factory.tistory.com/307
https://bowbowbow.tistory.com/16
'System > OS' 카테고리의 다른 글
운영체제 2-1 ~ 2-2] 운영체제의 개요 (0) | 2021.09.19 |
---|---|
운영체제 1-2] 운영체제의 개요 (0) | 2021.09.12 |
운영체제 1-1] 운영체제의 개요 (0) | 2021.09.12 |
메모리 매핑(mapping) - mmap()함수 (0) | 2020.05.19 |
Thread 정의와 Thread vs Proces (0) | 2020.04.29 |