일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바스크립트
- 리액트네이티브
- front-end mocking
- MSW
- 개발자
- vanilla-extract
- 비동기
- 기초
- 목킹
- sprinkles
- JavaScript
- amplify
- Babel
- mock service worker
- 리액트쿼리
- react server component
- styled-component
- 아키텍처
- 동기
- react-query
- Concurrent Mode
- Critical Rendering Path
- 쓰레드
- link
- SWC
- thread
- 기본
- 최적화
- next.js
- Basic
- 캐쉬
- react-native
- Cache
- React
- next hydration
- 컴포넌트
- mockoon
- async
- 리액트
- CSS-in-JS
- Today
- Total
Don’t worry about failures
멀티태스킹 멀티프로세싱.. 본문
단일 프로세스
초창기 컴퓨터는 단일 프로세스 시스템. 한번에 하나의 프로그램만 돌릴 수 있다. 다른 프로그램을 사용하기 위해서는 종료. 이 시스템이 I/O 같은 작업이 생기면 cpu는 잠시 멈추고 놀아버린다.
멀티 프로그래밍
이를 해결하고자 여러개의 프로그램을 메모리에 올려놓고 하나의 CPU에서 번갈아 가며 동시에 실행시키는 방안을 첨가.
즉, 단일 프로세스에서 문제였던 I/O같은 작업이 일어날 때 놀고 있지않고 메모리에 올려놓은 다른 프로그램을 실행시킴으로써 사용률을 높이고자함.
이는 CPU 사용률을 극대화 목적. I/O 작업이 일어날 떄 CPU의 놀고 있는 상황을 해결.
하지만 하나의 프로그램이 CPU 사용 시간이 길어지만 다른 프로세스는 계속 대기.
멀티 태스킹
멀티 프로그래밍에서 나왔던 문제인 하나의 프로세스가 오랜 시간을 CPU를 들고 있는 문제를 해결하고 CPU를 사용할 떄 아주 짧은 시간만 실행하고 다른 프로그램을 작업하는 등 계속 번갈아가면서 일을하는 것이 멀티 태스킹이다.
여기서 잘게 나눠진 프로세스끼리 작업이 스위칭 되는 것을 Context Switching
장점
- 빠른 반응성 제공
- CPU가 잘게 나눈 각 작업들을 빠르게 번갈아 가며 수행함으로써, 여러 작업을 동시에 처리하는 것처럼 보이게 만들어 사용자에게 더 빠른 반응성을 제공하여 정말로 동시에 프로그램이 실행되는 것처럼 느껴 차이를 못느낌.
- 문제 해결 용이성
- 멀티 프로세서의 효율적인 활용
- 프로세스 우선순위 조절
멀티 프로세싱
옛날 컴퓨터의 CPU는 싱글 코어였다. 이 싱글 코어에서 여러개의 작업을 동시에 처리하기 위해 멀티 태스킹과 같은 기술을 차용해 작업을 처리. 그러나 시대가 발전함에 동시에 CPU 코어의 발열 한계로 인해 코어 깡 클럭을 높이지 않고 코어를 늘리는 방향으로 듀얼 코어, 쿼드 코어 CPU 제품을 출시.
여러 개의 CPU코어가 동시에 작업을 처리하는 것을 멀티 프로세싱이라 한다.
멀티 프로세스
하나의 응용프로그램을 여러 개의 프로세스로 분리하여 실행하는 것을 의미. 프로세스가 멀티인 것이다. 여러 개의 프로세스가 동시에 실행되므로, 하나의 프로세스가 죽어도 프로그램이 죽지않아 프로그램 전체의 안정성이 높아지는 것에 목적을 둔다. 보통 멀티 프로세스는 부모 프로세스와 그의 여러 자식프로세스로 이루어져있다.
참고:
'cs' 카테고리의 다른 글
block, non-black, sync, async에 대해 (0) | 2024.03.14 |
---|---|
쓰레드에 대해 (0) | 2024.03.13 |
CORS에 대해 (0) | 2021.06.20 |
Process & Thread (0) | 2021.06.13 |
컴파일러와 인터프리터 (0) | 2021.06.05 |