일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 프로그래머스
- 자바
- JPA
- 스프링 MVC
- Java
- programmers
- 정처기
- 브루트 포스
- 자바의 정석
- 쿼리dsl
- Bean Validation
- 스프링
- 면접
- 검증
- 객체지향프로그래밍
- 운영체제
- 백준
- OS
- 스프링MVC
- 반복문
- 자료구조
- 알고리즘
- 메서드
- 네트워크
- 스파르타코딩
- 코딩테스트
- db
- 웹개발
- 코테
- ModelAttribute
- Today
- Total
개발일지
멀티 프로그래밍, 멀티 프로세싱, 멀티 태스킹 본문
목차
프로세싱의 발전 과정
단일 프로세스
한번에 하나의 프로그램만을 실행할 수 있어서, 또 다른 프로그램을 실행하고 싶다면 현재 프로그램을 종료해야 했다.
CPU 사용률이 효율적이지 못했는데, 프로그램 실행 도중 I/O(입출력) 작업과 같은 일이 생기게 되면 CPU는 프로세스를 멈추고 그대로 놀아버리기 때문이다.
멀티 프로그래밍(Multi Programming)
단일 프로세스를 해결하기 위해, 여러개의 프로그램을 메모리에 올려놓고 하나의 CPU에서 번갈아가며 동시에 실행시키는 방안을 첨가했다.
멀티 프로그래밍은 여러개의 프로그램이 동시에 실행된다는 의미로서, CPU 사용률을 극대화 시키는게 목적을 두었다.
그러나, 어느 한 프로그램이 CPU 사용 기간이 길어지면, 다른 프로세스는 계속 대기를 해야한다는 문제점이 존재한다.
멀티 태스킹(Multi Tasking)
멀티 프로그래밍의 취지는 좋았지만, 어느 한 프로세스가 모두 실행되야 다음 프로세스가 실행될 수 있다는 한계점이 있었다.
이것을 해결하기 위해 프로세스는 한번 CPU를 사용할 때 아주 짧은 시간만 실행되도록 하여 각 프로그램의 작업을 아주 작은 단위로 번갈아 가며 처리하며 작업 응답 시간을 최소화시키는 멀티 태스킹 원리가 탄생했다.
이때 잘게 나뉘어진 프로세스끼리 작업이 스위칭 되는 것을 문맥 교환(Context Switching)이라고 한다.
장점
- 빠른 반응성 제공
- CPU는 잘게 나눈 각 작업들을 빠르게 번갈아 수행하므로, 여러 작업을 동시에 처리하는 것처럼 보이게 만든다. - 문제 해결 용이성
- 작업을 나누었기 때문에 예기치 못한 문제가 발생했을 때, 해당 작업만 중지할 수 있게 된다. - 멀티 프로세서의 효율적인 활용
- 멀티 프로세싱 또는 멀티 코어를 사용하는 시스템에서 여러개의 프로세서(CPU)가 동시에 작업을 효율적으로 처리할 수 있다.
단점
- 응답성을 향상하기 위해서 문맥 교환이 자주 일어나게 될 경우 성능 이슈 발생
- 문맥 교환은 우리가 생각하는 것보다 무거운 작업에 해당
멀티 프로세싱(Multi Processing)
시대가 발전함과 동시에 CPU 코어의 발열 한계로 인해 코어 깡 클럭을 높이지 않고, 코어를 늘리는 방향으로 듀얼 코어, 쿼드코어 CPU 제품을 출시하기 시작했다.
여러개의 CPU 코어가 동시에 작업을 처리하는 것을 멀티 프로세스라고 한다.
*프로세서 : CPU나 Microprocessor라는 하드웨어를 믜히
*프로세스 : 실제 메모리에 적재되어 있는 프로세서에 의해 실행되고 있는 프로그램
장점
- 단일 프로세서 시스템보다 더 많은 작업을 빠르게 처리할 수 있다.
- 신뢰성과 가용성 : 하나의 프로세서가 고장나도 다른 프로세서에서 수행하고 있기 때문에 작업이 정지 되지 않음
- 비용의 절감 : 여러 개의 프로세스가 처리되어야 할 때, 동일한 데이터를 사용한다면 각 데이터를 각 프로세서에게 할당할 필요 없이 하나의 공간에 데이터를 저장한 후 이를 공유하여 사용하도록 한다면 비용적으로 절감할 수 있다.
- 확장성이 좋음
멀티 프로세싱 VS 멀티 태스킹
멀티 프로세싱 | 멀티 태스킹 |
- 여러 개의 CPU 코어가 동시에 작업 처리하는 것 - 여러 개의 프로세서가 병렬로 작업을 수행하므로, 단일 프로세스 보다 빠른 처리 속도를 보장 |
- 단일 CPU에서 여러 개의 작업을 동시에 처리하는 것 - 하나의 CPU가 여러 작업들을 번갈아가며 처리하여 여러개의 작업을 동시에 수행하는 것처럼 보임 |
공통점
- 둘이 여러 작업에 대해서 동시에 처리하는 목적은 비슷함
차이점
- 멀티 태스킹은 하나의 CPU에서 여러 개의 작업을 처리
- 멀티프로세싱은 여러개의 CPU에서 여러개의 작업을 처리
멀티 프로세싱 VS 멀티 프로세스
멀티 프로세싱 | 멀티 프로세스 |
- 하나의 시스템에서 여러개의 CPU를 사용하여 작업을 처리 - 여러개의 CPU가 동시에 작업을 처리하므로 전체적인 처리 속도가 빨라지는 효과에 목적을 둠 |
- 하나의 응용프로그램을 여러개의 프로세스로 분리하여 실행하는 것 - 프로세스가 멀티인것으로, 여러개의 프로세스가 동시에 실행되므로 하나의 프로세스가 죽어도 프로그램이 죽지 않아 프로그램의 안정성이 높아짐 |
자료 참고
👩💻 멀티 태스킹 & 멀티 프로세싱 개념 한방 정리
컴퓨터의 병행 처리 우리가 음악을 들으면서, 웹서핑을 하고, 메신저의 메시지를 확인할 수 있는 이유는 컴퓨터가 자원을 효율적으로 사용하는 멀티 태스킹(Multi Tasking) 기술 덕분이다. 멀티 태
inpa.tistory.com
[운영체제] 멀티 프로그래밍, 멀티 프로세싱, 멀티 태스킹(시분할)
개념 : 하나의 CPU가 한번에 하나의 프로세스만 실행하는 것이 아니라 여러 프로세스를 번갈아 가면서 실행하도록 하는 것을 의미한다.멀티 프로그래밍은 효율적인 자원 사용에 초점을 맞춘 것
velog.io
'운영체제' 카테고리의 다른 글
연속메모리 할당과 스와핑 (0) | 2024.01.10 |
---|---|
프로세스 동기화와 동기화기법 (1) | 2024.01.09 |
스케쥴러(Scheduler) (1) | 2024.01.09 |
프로세스와 스레드 (2) | 2024.01.08 |
운영체제 시작하기 (1) | 2024.01.08 |