프로세스(Process):
- 프로세스는 운영 체제에서 실행되는 프로그램의 인스턴스입니다. 각 프로세스는 독립적인 메모리 공간을 가지며, 다른 프로세스와 격리되어 있습니다.
- 각 프로세스는 최소한 하나의 스레드를 가지며, 프로세스는 스레드의 집합으로 이루어집니다.
- 프로세스 간 통신(IPC, Inter-Process Communication)을 통해 데이터를 공유할 수 있지만, 일반적으로 비용이 많이 드는 작업입니다.
프로세스 관리 :
- iOS는 각 앱을 별도의 프로세스로 실행하여 각 앱이 격리되도록 합니다. 이를 통해 앱 간의 간섭을 최소화하고 보안을 강화할 수 있습니다.
- iOS는 멀티프로세스 환경에서 안정적으로 동작할 수 있도록 프로세스 생성, 종료 및 관리를 담당하는 운영 체제의 역할이 중요합니다.
스레드(Thread) :
- 스레드는 프로세스 내에서 실행되는 실행 흐름의 단위입니다. 각 프로세스는 하나 이상의 스레드를 가질 수 있습니다.
- 같은 프로세스 내의 스레드들은 프로세스의 메모리 공간을 공유하므로, 데이터를 공유하기가 더 쉽고 빠릅니다.
- 스레드는 프로세스 내에서 생성되고 관리되며, 스레드 간 통신은 메모리 공유를 통해 이루어집니다.
스레드 관리 :
- 각 iOS 앱은 주로 메인 스레드에서 실행됩니다. 이 메인 스레드는 사용자 인터페이스 이벤트 처리 및 UI 업데이트를 담당합니다. iOS는 Grand Central Dispatch (GCD) 와 같은 기술을 사용하여 다중 스레드를 효율적으로 관리하고 다중 코어 프로세서에서 병렬 작업을 수행할 수 있습니다.
- GCD를 사용하면 앱에서 비동기적으로 작업을 수행하고, 백그라운드 스레드에서 작업을 수행하여 UI의 응답성을 유지할 수 있습니다.
- iOS 또한 Operation Queue를 사용하여 작업을 관리하고 백그라운드에서 비동기적으로 실행할 수 있도록 지원합니다.
'◽️ Programming > iOS' 카테고리의 다른 글
iOS View와 App의 Life Cycle (생명주기) 제대로 파해쳐보기 (0) | 2024.04.21 |
---|---|
iOS Result 타입 (예외처리) (0) | 2024.04.16 |
iOS 비동기처리(async) 동시성 프로그래밍(Concurrent) (2) (0) | 2024.04.15 |
iOS 비동기처리(async) 동시성 프로그래밍(Concurrent) (1) (1) | 2024.04.15 |
iOS 기기에서 사용되는 AP(Application Processor)의 특징과 역할 (0) | 2024.03.20 |