프로세스 & 스레드
https://www.youtube.com/watch?v=iks_Xb9DtTM
오늘날 컴퓨터의 "멀티태스킹" 작업을 가능하게 하는 핵심 개념.
프로세스 Process
-
프로그램 : 실행할 수 있는 파일
-
프로세스 : 실행 중인 프로그램
동시성 Concurrency 과 병렬성 Parallelism
여러 프로세스를 함께 실행하는 두 가지 방식.
둘을 혼합해 사용하기도 한다.
- 동시성 : 프로세서 하나가 여러 프로세스들을 번갈아 가며 조금씩 실행
- 컨텍스트 스위칭 context switching : 여러 프로세스를 번갈아 실행하는 작업
- 번갈아 실행하는 속도가 매우 빨라 사람들은 동시에 진행된다고 느낀다.
- 병렬성 : 멀티코어 프로세서 - 프로세서 하나에 코어가 여러 개 있어, 각 코어가 여러 프로세스들을 동시에 실행
- 멀티코어 프로세서가 있는 컴퓨터가 사용하는 방식
스레드 Thread
한 프로세스 내에서도 여러 갈래의 작업이 동시에 이루어질 수 있다.
프로세스의 한 갈래를 "스레드"라고 한다.
구글 크롬으로 게임을 다운받으면서, 유튜브 영상을 보는 것이 가능함
- 게임 다운로드 스레드
- 유튜브 영상 재생 스레드
스레드의 동작
- 스레드 실행에 대한 상태 관리
- 스레드 실행을 위한 별도 스택
- 데이터 저장소(지역 변수, 스레드 데이터)
- 컨텍스트 정보(프로세스의 메모리와 자원에 대한 접근 기록)
스레드의 특징
- 사용자에 대한 응답성 증가
- 프로세스 자원 및 공유 - 경제적
- 병렬 실행이 가능