Process(进程)
名称
process —— 关于进程的抽象
概要
Zircon的进程是传统意义上程序的实例:由一个或多个线程执行的一组指令以及相关的资源集合组成。
描述
进程对象是以下资源的容器集合:
通常,它与正在执行的代码相关联,直到强制终止或程序退出为止。
进程由作业所拥有。 并且从资源和权限限制以及生命周期的控制的角度上看,由多个进程组成的应用程序被视为单个实体。
生命周期
进程通过zx_process_create()
函数创建,它的执行以zx_process_start()
开始。
进程在以下情况会停止执行:
- 进程的最后一个线程被终止或退出
- 进程调用
zx_process_exit()
- 它的父进程终止该进程
- 父进程被销毁
不能调用zx_process_start()
函数两次。
不能将新线程添加到已启动的且最后一个线程已退出的进程中。
系统调用
- process_create —— 在作业中创建新的进程
- process_read_memory —— 从进程的地址空间读取
- process_start —— 触发新进程的执行
- process_write_memory —— 写入进程的地址空间
- process_exit —— 退出当前进程
- job_create —— 在父作业中创建新的子作业
- vmar_map —— 将内存映射到某个VMAR上
- vmar_protect —— 修改VMAR的权限
- vmar_unmap —— 从VMAR上取消内存映射