본문 바로가기

Study for Backend/Computer Science

[컴퓨터 공학] 프로세스

1. Process

- 운영 체제에서 프로세스는 실행 중인 프로그램의 인스턴스

- 운영 체제에서 예약하고 실행할 수 있는 기본 작업 단위

 

Code image (Binary)

- 실행 파일

 

2. Process Scheduling

배치 처리 시스템 (Batch Processing)

- 여러 프로그램을 순차적으로 실행시키기 위한 프로세싱

 

 

시분할 시스템 (Time-Sharing System)

- 하나의 컴퓨터 시스템을 복수의 사용자가 동시에 대화식으로 사용하는 이용 형태

- 중앙 처리 장치(CPU)의 처리 시간을 아주 짧게 세분화하여 각 사용자의 프로그램에 할당하여 차례차례로 복수의 처리를 실행 (각 사용자는 마치 컴퓨터를 독점하고 있는 것처럼 사용)

- 일반적으로 복수의 사용자가 대형 컴퓨터와 접속하여 사용하는 이용 형태이고, 다중 작업은 단일 사용자가 마이크로컴퓨터를 사용하여 복수의 작업을 동시에 처리하는 이용 형태를 의미

 

 

멀티 태스킹 (Multi-Tasking)

- 다수의 작업이 단일의 CPU와 같은 공용자원을 나누어 사용하는 것

- 마치 여러 응용 프로그램이 동시에 실행되는 것처럼 보이도록 하는 시스템

- 10 ~ 20 ms 단위로도 실행 응용 프로그램이 바뀜

 

 

멀티 프로그래밍 (Multi-Programming)

- CPU 작업과 입출력 작업을 병행하여 CPU 이용과 처리량을 향상시킬 수 있음

- CPU 활용도를 극대화 하는 스케쥴링 알고리즘

 

 

멀티 프로세싱(Multi-Processing)

- 여러 CPU에 하나의 프로그램을 병렬로 실행해서 실행속도를 극대화시키는 시스템

 

*참고 : 프로그램 성능을 높이려면 가능한 메모리상에서 직접 실행하도록 Redis, Scala 등을 이용하면 좋음

 

3. Process Memory Layout

Stack

임시 데이터 (함수 호출, 로컬 변수 등) , Stack Pointer (SP)는 스택 최상단의 주소를 뜻함

 

HEAP

코드에서 동적으로 만들어지는 데이터

 

BSS

초기화 안한 전역변수

 

Gvar(Data)

초기화한 전역 변수

 

Text

함수 코드

 

 

 

 

 

 

참고link

https://oizys.tistory.com/9

 

멀티프로세싱, 멀티프로그래밍,멀티태스킹,멀티스레딩

1. 멀티 프로그래밍 (Multi-programming) 여러 프로그램을 메모리에 동시에 올려서 수행하는 것 == 메모리에 다수의 프로세스가 동시에 올라가(keep)있는 것 단일 프로세서 상에서 여러 개의 프로그램이

oizys.tistory.com