안녕하세요? 허니데이즈입니다. 오늘은 지르콘 커널에서 중요한 역할을 하는 프로세스에 대해서 준비해 봤습니다.
지르콘 프로세스는 전통적 의미에서 프로그램의 인스턴스라고 보면 된다. 리소스 모음과 함께 하나 이상의 스레드에서 실행되는 명령 집합이다. 프로세스 개체는 다음 리소스의 컨테이너로 운영된다.
Handles
Virtual Memory Address Regions
Threads
일반적으로 프로세스는 강제 종료되거나 프로그램이 종료 될 때까지 실행중인 코드와 관련된다. 또한 프로세스는 작업에 의해 소유되며 하나 이상의 프로세스로 구성된 어플리케이션을 리소스, 사용 권한 한도, 수명 제어의 관점에서 단일 엔터티로 처리 할 수 있다.
Lifetime은 어떻게 되나요?
zx_process_create()를 통해 프로세스가 생성되고 실행은 zx_process_start()로 시작된다. 다음과 같은 경우에는 프로세스가 실행을 중지한다.
1. 마지막 스레드가 종료
2. 프로세스 호출 zx_process_exit()
3. 상위 작업이 프로세스를 종료
4. 상위 작업이 삭제
zx_process_start()에 대한 호출을 두 번 실행할 수 없다. 새 스레드는 시작된 프로세스에 추가될 수 없으며 마지막 스레드가 종료된다.
SYSCALLS은 어떤 것이 있나요?
process_create - 작업 내에서 새 프로세스 만들기
process_read_memory - 프로세스의 주소 공간에서 읽기
process_start - 새 프로세스가 실행을 시작하기.
process_write_memory - 프로세스의 주소 공간에 쓰기
process_exit - 현재 프로세스 종료하기
job_create - 상위 작업 내에서 새 작업 만들기
vmar_map - 메모리를 주소 공간 범위에 매핑하기
vmar_protect - 주소 공간 범위의 권한 변경하기
vmar_unmap - 주소 공간 범위에서 메모리 맵 해제하기
출처: https://fuchsia.googlesource.com/zircon/+/master/docs/objects/process.md
지르콘 커널에 대해 더 알고 싶으시다면 아래 목차에서 클릭!
Zircon | |
Getting Started | |
Contributing Patches | |
Concepts Overview | |
Kernel Objects | |
Process Objects | |
Thread Objects | |
Handles | |
System Calls | |
Driver Development Kit | |
Testing | |
Hacking notes | |
Memory usage analysis tools | |
Relationship with LK | |
Micro-benchmarks |
'Past Material' 카테고리의 다른 글
[Zircon Kernel] 지르콘 커널에서 사용되는 쓰레드(Thread)란? - Fuchsia OS (0) | 2018.08.08 |
---|---|
[Zircon Kernel] 지르콘 커널의 구성요소(Objects)는 무엇이 있나요? - Fuchsia OS (0) | 2018.08.08 |
[Zircon Kernel] 지르콘 커널의 개념에 대해 - Fuchsia OS (0) | 2018.08.07 |
[Zircon Kernel] 지르콘 커널 개발에 기여하는 방법은 무엇인가요? - Fuchsia OS (0) | 2018.08.03 |
[Zircon Kernel] 지르콘 커널 개발 환경 구축해 보기 - Fuchsia OS (0) | 2018.08.02 |