본문 바로가기
Programming/OS_운영체제

[운영체제OS] 프로세스_Process

by 어깨 :) 2023. 4. 27.
728x90

 

 

 

 

● 프로세스의 정의

-실행(executing, running) 중인 프로그램

-PCB(process control block)를 지닌 프로그램

-프로그램 카운터(program counter)를 지닌 프로그램

 

 

 

● 프로세스의 특징

-프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당받는다.
-기본적으로 프로세스당 최소 1개의 스레드(메인 스레드)를 가지고 있다.
-각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다.
-한 프로세스가 다른 프로세스의 자원에 접근하려면 프로세스 간의 통신(IPC, inter-process communication)을 사용해야 한다. ex) 파이프, 파일, 소켓 등을 이용한 통신 방법 이용
https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html

 

 

 

  프로세스 관리

-사용자 프로세스와 시스템 프로세스의 생성과 삭제

-프로세스의 일시 중지와 재수행

-프로세스 스케줄링

-프로세스의 동기화

-프로세스 간 통신

-교착상태 처리

 

 

 

 

  프로세스의 저장 영역

 

1. 코드(code) 영역

-프로그램의 코드 자체가 바이너리 코드로 저장되는 공간

 

2. 데이터 영역

-프로그램의 전역 변수나 정적 변수의 할당을 위한 공간

 

3. 스택(stack) 영역

-지역 변수(local variable) 할당과 함수 호출 시 전달되는 인수(argument) 값의 저장공간

 

4. 힙 영역

-동적 할당을 위한 저장공간

 

 

 

 

  프로세스의 상태

1. 실행 상태(running)

-프로세스가 중앙처리장치를 차지하고 있는 상태

 

2. 준비 완료 상태(ready)

-중앙처리장치가 사용 가능하게 될 때 그것을 할당 받을 수 있는 상태

 

3. 대기 상태(block)

-프로세스가 입출력 처리 등을 하게 되면 중앙처리장치를 양도하고 입출력 처리가 완료될 때까지 대기해야 한다.

 

 

 

 

 

\

 

  프로세스 제어 블록 (PCB : Process Controll Block)

 

프로세스 제어 블록이란 운영 체제가 시스템 내의 프로세스들을 관리하기 위해 프로세스당 유지하는 정보들을 담는 커널 내의 자료구조를 말합니다. PCB는 다음과 같은 요소들로 구성됩니다.

 

- 프로세스의 상태 : 프로세스에게 CPU를 할당해도 되는 상태인가?

- 프로그램 카운터 값 : CPU가 다음에 수행해야할 명령어의 주소는 어디인가?

- CPU 레지스터 : CPU 연산을 위해 현 재 레지스터에 어떤값이 저장되어 있는가?

- CPU 스케쥴링 정보 : 어떤 프로세스에게 CPU를 할당할 것인가?

- 메모리 관리 정보 : 메모리 할당을 위해 필요한 정보는 무엇인가?

- 자원 사용 정보

- 입출력 상태 정보

 

 

1. 정의

-프로세스에 관한 모든 정보를 가지고 있는 데이터베이스

 

2. PCB 내용

-프로세스의 현재 상태(실행, 준비완료, 대기 등)

-프로세스의 고유 이름

-프로세스의 우선순위

-프로세스가 적재된 기억장치의 주소를 가지는 포인터

-할당된 자원장치 등을 가리키는 포인터

-중앙처리장치의 각종 레지스터 상태를 저장하기 위한 공간

 

★ 모든 프로세스는 각기 고유의 PCB 지님

 

https://real-dongsoo7.tistory.com/94

 

#4 프로세스 관리 - 운영체제와 정보기술의 원리

프로세스란? 간단하다. 디스크에 존재하던 프로그램이 메모리에 올라가 실행 중인 상태를 나타낸다. 다시 말해 CPU를 보유하고 기계어 명령 실행이 가능한 단계입니다. 프로세스 문맥(Process Contex

real-dongsoo7.tistory.com

 

 

 

 

 프로세스 생성

-유닉스 환경에서 프로세스를 생성시키는 것은 fork() 명령어

 

https://rebas.kr/849

 

운영체제 · 프로세스, 스레드

프로세스와 스레드의 차이점 ✓ 프로세스 : 운영체제로부터 자원을 할당받는 작업의 단위✓ 스레드 : 프로세스가 할당받은 자원을 이용하는 실행의 단위 프로세스 (Process) ✓ 정의 : 실행 중인

rebas.kr

 

728x90