멀티태스킹과 멀티프로세싱단일 프로그램 실행만약 프로그램을 2개 이상 동시에 실행한다고 가정해보자. 예를 들어서 음악 프로그램을 통해 음악을 들으면서, 동시에 워드 프로그램을 통해 문서를 작성하는 것이다. 여기서는 연산을 처리할 수 있는 CPU 코어가 1개만 있다고 가정하겠다.프로그램의 실행이란, 프로그램을 구성하는 코드를 순서대로 CPU에서 연산(실행)하는 일이다. 위 이미지에서 CPU 코어는 하나이기 때문에 한 번에 하나의 프로그램 코드만 실행할 수 있다. 만약 하나의 프로그램 안에 있는 코드를 모두 완료한 후에야 다른 프로그램의 코드를 실행할 수 있다면 사용자는 매우 불편할 것이다. 바로 이러한 문제를 해결하기 위해 하나의 CPU 코어로 여러 프로그램을 동시에 실행하는 "멀티태스킹" 기술이 등장했다...
Thread & Multi Thread 쓰레드는 한 프로세스 내에서 실행되는 동작(function)의 단위이다. 각 쓰레드는 속해있는 프로세스의 Stack 메모리를 제외한 나머지 memory 영역을 공유할 수 있다. 멀티 쓰레드란, 하나의 프로세스가 동시에 여러 개의 일을 수행할 수 있도록 해주는 것이다. 즉, 하나의 프로세스에서(실행된 하나의 프로그램) 여러 작업을 병렬로 처리하기 위헤서 멀티 쓰레드를 사용한다. 멀티 쓰레드에서는 한 프로세스 내에 여러 개의 thread가 있고, 각 쓰레드들은 Stack 메모리를 제외한 나머지 영역(Code, Data, Heap) 영역을 공유한다. Stack memory & PC Register 쓰레드가 함수를 호출하기 위해서는 인자 전달, Return Address ..
- Total
- Today
- Yesterday
- 북클럽
- 노마드
- mysql 8.0
- Real MySQL
- 스프링
- 파이썬
- leetcode
- 알고리즘
- 리팩토링
- spring boot
- 정렬
- 자료구조
- 김영한
- 데이터베이스
- 구현
- MySQL
- 스프링부트
- 노마드코더
- kotlin
- 그리디
- 릿코드
- 인프런
- 코틀린
- 스프링 부트
- 문자열
- 백준
- 코테
- Algorithm
- webflux
- Spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |