[Android/Async]Process, Thread에 대한 기본개념

2023. 2. 26. 19:16Android/네트워킹

728x90
반응형

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

 

728x90
반응형