Process란?
메모리에 올라와 있는 실행중인 프로그램 인스턴스.
운영체제로부터 시스템 자원을 할당받는 작업의 단
사용 중인 파일, 데이터, 프로세서의 상태, 메모리영역 주소 공간, 쓰레드 정보, 전역 데이터가 저장된 메모리 부분 등 수많은 자원을 포하하는 개념.
종종 스케줄링의 대상이 되는 작업이라고 불리기도 함.
Process 상태 전이
- Dispatch (ready → running): 여러 프로세스들 중 한 프로세스를 선정하여 CPU에 할당
- Time Run Out (running → ready): 할당된 시간이 지나면 Timeout Interrupt
- Event Wait (running → waiting): I/O 입출력 발생
- Wake-Up (waiting → ready): I/O 요청이 완료되면 다시 ready 상태로 전이
Thread란?
하나의 프로그램 내에서 여러 개의 실행 흐름을 두기 위한 모델.
하나의 프로세스에서 각독립적인 일의 단위인 스레드로 여러 작업 처리 가능.
즉 하나의 프로세스에서 병렬적으로 여러개작업을 처리하기 위해서는 각 작업을 스레드화하여 멀티스레딩이 가능하게 해야 함
Process와 Thread의 차이점은?
프로세스는 완벽히 독립적. 메모리 영역을 다른 프로세스와 공유하지 않음.
쓰레드는 해당 쓰레드를 위한 스택을 생성할 뿐 그 이외의 메모리 영역을 공유함.
프로세스 당 하나의 스레드(메인 스레드)를 갖음
참고
https://jungwoon.github.io/android/2019/07/16/Process-Thread.html
https://3dmpengines.tistory.com/2003
'Android > 네트워킹' 카테고리의 다른 글
[Android/Java/Kotlin]ExecutorService (0) | 2023.05.29 |
---|