IT - Introduction to Computer Science

[IT지식] 프로세스, 스레드, 멀티태스킹, 멀티스레딩, 멀티프로세싱, 멀티프로그래밍

개발자하소서 2023. 8. 23. 10:21
728x90
반응형
SMALL

📌 프로그램(Program) 이란? 

-  컴퓨터가 실행할 수 있는 명령어들의 집합 

 

📌 프로세스(Process)란? 

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

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

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

 

📌 CPU(Central Processing Unit) 란? 

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

 

📌 메인 메모리(Main Memory) 란? 

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

 

📌 IO(Input/Output) 란? 

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

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

 

📌 단일 프로세스 시스템이란? 

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

 

📌 단일 프로세스 시스템 단점

- CPU 사용률이 좋지 않음 

 

📌 단일 프로세스 시스템 단점(해결책)

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

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

 

📌 멀티프로그래밍(MultiProgramming)

- 여러개의 프로그램이 동시에 실행된다. 

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

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

- 해결책 : 프로세스는 한번 CPU를 사용할 때 아주 짧은 시간(=quantum)만 CPU에서 실행되도록 하자 

 

📌 멀티태스킹(MultiTasking)

- 동시에 여러 프로그램을 실행시킨다는 면에서 멀티프로그래밍과 유사함. 

- 차이점은 cpu 타임을 아주 짧게 쪼개 cpu 타임 안에서 프로세스들이 서로 번갈아 가면서 실행될수 있도록 함

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

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

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

( * 컨텍스트 스위칭이란? cpu에서 실행되기 위해서 어느 한 프로세스에서 다른 프로세스로 교체되는 것 )

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

- 듀얼 코어가 등장했는데 잘 쓰고 싶음 

 

📌 스레드(Thread)

- 스레드가 나온 배경 : 한 프로세스에서 여러개의 작업들을 동시에 실행하기 위함 

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

- CPU에서 실행되는 단위 (unit of execution)

- 같은 프로세스의 스레드들끼리 컨텍스트스위칭은 가볍다.

- 스레드들은 자신들이 속한 프로세스의 메모리 영역을 공유 (즉, 데이터 공유가 쉽다)

 

📌 멀티 스레딩(MultiThreading)

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

 

📌 확장된 멀티태스킹(MultiTasking) 개념 

- 여러 프로세스와 여러 스레드가 아주 짧게 쪼개진 CPU time을 나눠 갖는 것 

 

📌멀티프로세싱(MultiProcessing) 개념 

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

 

 

 

 

📌해당 글은 쉬운코드 유튜브영상을 보고 참고하였습니다.

 

728x90
반응형
LIST