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
멀티프로세싱, 멀티프로그래밍,멀티태스킹,멀티스레딩
1. 멀티 프로그래밍 (Multi-programming) 여러 프로그램을 메모리에 동시에 올려서 수행하는 것 == 메모리에 다수의 프로세스가 동시에 올라가(keep)있는 것 단일 프로세서 상에서 여러 개의 프로그램이
oizys.tistory.com
'Study for Backend > Computer Science' 카테고리의 다른 글
[컴퓨터 공학] Thread (스레드) (0) | 2024.03.25 |
---|---|
[컴퓨터 공학] 스케줄링 알고리즘 (0) | 2024.03.22 |
[컴퓨터 공학] 운영체제 (0) | 2024.03.20 |
[컴퓨터 공학] 메모리 (0) | 2024.03.19 |
[컴퓨터 공학] 논리 연산과 Adder (0) | 2024.03.18 |