본문 바로가기
Computer Science/Computer Science

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

by SeleniumBindingProtein 2023. 11. 27.
728x90
반응형

프로세스

- 컴퓨터에서 실행 중인 프로그램

- 각각의 프로세스는 독립된 메모리 공간을 할당 받음

- 명령어들과 데이터를 가짐

 

CPU 

- 명령어를 실행하는 연산 장치

 

메인 메모리

- 프로세스가 CPU에서 실행되기 위해 대기하는 곳

 

IO

- 파일을 읽고 쓰거나 네트워크의 어딘가와 데이터를 주고 받는 것

- 입출력 장치와 데이터를 주거나 받는 것

 

단일 프로세스 시스템

- 한 번에 하나의 프로그램만 실행됨

- CPU 사용률이 좋지 않음

--> 여러 개의 프로그램을 메모리에 올려놓고 동시 실행

--> IO 작업이 발생하면 다른 프로세스가 CPU에서 실행됨

=> 멀티프로그래밍 

 

멀티프로그래밍

- CPU 사용률을 극대화 시키는데 목적

- CPU 사용 시간이 길어지면 다른 프로세스는 계속 대기

--> 프로세스는 한 번 CPU를 사용할 때, 아주 짧은 시간만 CPU에서 실행

=> 멀티 태스킹 

 

멀티태스킹

- 프로세스의 응답시간을 최소화 시키는데 목적

- 하나의 프로세스가 동시에 여러 작업을 수행하지는 못함

- 프로세스의 컨텍스트 스위칭이 무거운 작업

- 프로세스끼리 데이터 공유가 까다로움

=> 스레드

 

스레드

- 프로세스는 한 개 이상의 스레드가 가질 수 있음

- CPU에서 실행되는 단위

- 같은 프로세스의 스레드들끼리 컨텍스트 스위칭은 가벼움

- 스레드들은 자신들이 속한 프로세스의 메모리 영역을 공유

 

멀티스래딩

- 하나의 프로세스가 동시에 여러 작업을 실행하는데 목적

 

멀티프로세싱

- 두 개 이상의 프로세서나 코어를 활용하는 시스템

 

싱글코어 CPU에서 싱글-스레드 프로세스 두 개 => 멀티태스킹

싱글코어 CPU에 듀얼-스레드 프로세스 한 개 => 멀티태스킹, 멀티스레딩

듀얼코어 CPU에 싱글-스레드 프로세스 두 개 => 멀티프로세싱

듀얼코어 CPU에 듀얼-스레드 프로세스 한 개 => 멀티스레딩, 멀티프로세싱

듀얼코어 CPU에 듀얼-스레드 프로세스 두 개 => 멀티태스킹, 멀티스레딩, 멀티프로세싱

듀얼코어 CPU에 듀얼-스레드 프로세스 두 개 => 멀티태스킹, 멀티스레딩, 멀티프로세싱

 

728x90
반응형

'Computer Science > Computer Science' 카테고리의 다른 글

로드 밸런서(Load Balancer)?  (1) 2023.01.26
HTTP vs HTTPS 비교  (0) 2023.01.25
TCP & UDP 정의  (0) 2023.01.25
Object Oriented Programming(OOP) 객체 지향 프로그램  (1) 2023.01.25

댓글