본문 바로가기

cs(with 매일메일)

[260202월] 멀티 태스킹 시스템의 한계에 대해서 설명해주세요.

멀티 태스킹이란? : 짧은 시간안에 빠르게 하나의 프로세스을 바꿔가며 마치 동시에 실행되는거 처럼 보이게 만드는 작업 방식

장점 : 동시에 프로그램이 실행되는거처럼 보인다. 사용자 입장에서 여거 서비스를 사용하는데 무리가 없다

단점 : 컨텍스트 스위칭 비용이 많이 발생한다. 

 

=====

문제점

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

2. 무거운 프로세스 간 컨텍스트 스위칭

3. 프로세스 간 데이터 공유의 어려움

 

스레드(Thread)의 등장과 특징

: 한 프로세스 내에서 여러 작업을 동시에 실행할 수 있다. 

1. 프로세스 내 여러 스레드 보유 

2. CPU실행 단위 : 과거에는 CPU실행단위가 프로세스 -> 현재는 스레드로 변경

3. 가벼운 스레드 간 컨텍스트 스위칭 : 스레드는 동일 프로세스 내에서 메모리 영역(Heap)을 공유하므로, 스레드 간의 컨텍스트 스위칭은 프로세스간 스위칭보다 훨씬 가볍다. 

 

멀티 스레딩과 멀티 프로세싱

- 멀티 스레딩 : 하나의 프로세스 내에서 여러 스레드를 통해 동시에 여러 작업을 실행하는 기법

- 멀티 프로세싱 : 두 개 이상의 프로세서나 코어를 활용하여 여러 프로세스가 동시에 실행되는 시스템