Notice
Recent Posts
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
관리 메뉴

YUNA's Programming

DAY 3 프로세스의 개념 본문

Computer Engeering/OS

DAY 3 프로세스의 개념

l_yuna 2023. 3. 23. 21:28

 

 

프로세스의 개념

 

 

 

작업(Job)

; 실행 프로그램과 이에 필요한 입력 데이터의 묶음

; 컴퓨터에 실행 의뢰되기 전의 상태

 


 

프로세스(Process)

 

; 커널에 등록된 작업

; Kernel Space 내에 존재

; 커널에 등록되어 커널의 관리하에 들어간 작업 

; 운영체제에 들어 있는 프로세스 제어 블록 PCB (Process Control Block)

; 각종 자원들을 요청하고 할당 받을 수 있는 개체

; 실행 중에 각종 자원을 요구, 할당, 반납하며 진행

; 능동적인 개체

 

 

 

 

 


 

 

자원의 개념

; 커널에 의해 다른 주체 (Process)에게 할당 또는 반납되는 피동적인 개체

 


 

자원의 분류

; 하드웨어 자원 - 기억장치, 프로세서, 하드 디스크, 자기 테이프, 단말기, 모니터, 키보드 등

; 소프트웨어 자원 - 메시기, 시그널(Signal), 파일, 각종 공유 소프트웨어 등

 

 

 


 

PCB내의 정보

; 프로세스 고유 번호 (PIC : Process identification Number)

; 프로세스 우선순위 (priority) ~ 기반 스케쥴링 시 필요한 정보

; 프로세스 현재 상태정보 (current state)

; 프로세스가 할당 받은 자원들의 리스트 또는 이들에 대한 포인터

; 문맥 저장 영역 (context save area) ~ 기반 스케쥴링 시 필요한 정보

 

 


 

프로세스의 종류

 

운영체제 프로세스

; 프로세스 상태 순서를 제어하거나 사용하고 있는 프로세스가

다른 사용자나 운영체제 영역을 침봄하지 못하게 감시하는 기능 담당

 

; 사용자 프로세스를 생성하거나 입출력 프로세스를 생성하는 등

시스템 운영에 필요한 작업을 수행

 

; 커널 프로세스 또는 시스템 프로세스라고도 함

 


 

사용자 프로세스

; 사용자 코드를 수행

 

 


 

병행 프로세스

; 프로세스 여러 개가 동시에 실행되면 병행 프로세스라고 부름

 

; 병행 프로세스는 서로 독립적으로 실행되는 독립 프로세스와

프로세스들이 서로 협력하며 수행되는 협동 프로세스로 구분

 

- 독립 프로세스 :  운영체제에서 프로세스 여러개가 병행하여 수행될 때

주어진 초깃값에 따라 항상 같은 결과를 보여주는 프로세스

 

- 협동 프로세스 : 다른 프로세스에 영향을 주거나 다른 프로세스에 의해

영향을 받는 프로세스

 

 

 


 

프로세스의 상태 변화

 

프로세스는 크게 실행과 비실행 프로세스로 나눌 수 있음

 

 

실행 상태 프로세스는 실행, 대기, 준비로 세분화할 수 있음

; 실행 - 프로세스가 CPU를 점유하고 있는 상태 / CPU안에서 동작되고 있는 과정

; 준비 - 프로세스가 이제 곧 CPU를 할당받기 위해 기다리고 있는 상태

; 대기 - 프로세스가 이벤트가 일어나기를 계속해서 기다리고 있는 상태

 

 

 

 

; 프로세스의 상태변화는 운영체제가 프로세서 스케쥴러를 이요하여 관리

 

; 작업스케쥴러는 스풀러가 디스크에 저장한 작업 중 실행할 작업을 선정하고,

준비 리스트에 삽입하여 다중 프로그래밍의 정도를 결정

 

; 프로세스 스케쥴러는 선정한 작업의 상태를 변화시키며,

프로세스의 생성에서 종료까지 수행

 

 


 

 

생성상태

; 사용자가 요청한 작업이 커널에 등록됨

; PCB가 할당되어 새로운 프로세스가 만들어지는 상태


준비상태

; 프로세스가 모든 필요한 자원을 할당 받고

프로세서를 할당 받기위해 기다리고 있는 상태

; 즉시 실행 가능한 상태


실행상태

; 프로세서에 의해 실행되고 있는 상태

; 프로세스가 원하는 모든 자원을 소유한 상태

 

~ 선점(Preemption)

; 실행중인 프로세스가 프로세서 시간 할당량(time quantum, time slice) 종료,

우선순위 등으로 인하여 자신에게 할당된 프로세서를 반납해야 하는 경우 준비 상태로의 전이

 

~ 블럭(Block/Sleep)

; 프로세스가 실행 중 자원을 요청하거나 기타 다른 이유로 syste, call을 하는 경우 대기 상태로 전이

 


대기상태

;프로세스가 프로세서 이외 특정 자원을 요청하고 이를 할당 받을 떄까지 기다리고 있는 상태

;자원의 요청은 System Call을 통해 이루어짐

; 커널 내의 자원 할당 Routine 에서 관리

 


종료상태

; 프로세스가 종료되는 상태로 코드와 사용했던, 데이터를 메모리에서 삭제하고

프로세스 제어 블럭을 폐기하는 단계

 

 

 


 

<정리>

 

*PCB : 프로세스 ID, 상태, 우선순위

상태 -> 생성, 준비, 실행, 대기, 완료

상태변화 -> 디스패치, 타임아웃, 블럭, Wake up

 

 

 


 

Question

컴퓨터로 노래를 들으면서 한글프로그램을 이용해 숙제를 하는 경우, 컴퓨터 내부 프로세스는

어떻게 동작되는가?

 

컴퓨터 용어로 쓰이는 프로세스는 실행 중인 프로그램을 의미함.

프로세스가 실행되는 동안 생성, 준비, 실행, 대기, 종료의 상태을을 거치는데,

컴퓨터는 여러일을 처리할 떄 프로그램 요소들이 움직이는 일정에 따라 작업 순서를 매김.

이를 스케줄링이라고 부르며, 정해진 일정에 따라 컴퓨터의 CPU(중앙처리장치)가 그 작업을 실행함.

 

컴퓨터로 노래를 들으면서 한글 프로그램을 이용하는 경우, 우리가 느끼기에는 컴퓨터에서 두 가지

일이 동시에 이루어지는 것처럼 느껴지지만 사실은 운영체제의 멀티태스킹 기능이 두 가지 프로세스를 잘게

쪼개어 명령을 처리 할 수 있도록 일정을 짜고, CPU로 명령을 보내 차례대로 필요한 정보를

처리할 수 있도록 하는과정이 눈에 보이지 않는 속도로 이루어지는 것.

 

 

 

 

'Computer Engeering > OS' 카테고리의 다른 글

DAY 4 스레드의 개념  (0) 2023.03.23
DAY 2 운영체제의 기능과 서비스  (1) 2023.03.18
DAY 1 운영체제 개요  (0) 2023.03.18
Comments