QNX的进程管理

  QNX Neutrino中的Process Manager包含了以下三个方面:
  ・Process management[进程管理]:对进程的创建,销毁和进行的属性如UID(user ID)和GID(group ID)进行管理。
  ・Memory management[内存管理]:管理进程的地址空间和共享库,和进程内的共享内存。
  ・Pathname management[路径管理]:管理可能用到资源的路径。
一、Process management[进程管理]
  与进程相关的Primitive[原语]:
  ・posix_spawn()[POSIX]:通过指定的可执行对象创建一个新的子进程。
  ・spawn()[QNX Neutrino]:QNX实现的posix_spawn()继承更多的属性。
  ・fork()[POSIX]:通过拷贝自己的进程数据并使用相同的代码创建一个子进程。只有当进程中只有一个线程的时候才能调用。
  ・vfork()[UNIX BSD扩展]:当希望通过fork()及其后的exec()函数创建一个新进程的时候使用。vfork()不会拷贝进行数据,父进程控制新的地址空间知道掉用了exec()。通过这次方式启动进程,没有通过posix_spawn()有效率。只有当进程中只有一个线程的时候才能调用。
  ・exec()[POSIX]:通过制定的可执行对象创建一个新进程,新进程覆盖原进程的执行环境。
  可执行对象为ELF(Executable and Linking Format)格式的文件。

二、Memory management[内存管理]
  内存保护是,当一个进程试图访问非法内存块时,MMU会通知OS,让其终止该线程。典型的MMU(Memory Management Units[内存控制器])会将物理内存划分为4KB的页,处理器中的设备会用一组存在内存中页表(Page Tables)来讲虚拟内存地址映射到实际物理地址中。为了提升效率,处理器会缓存一些常用的页表在TLB(Translation look-aside buffer[页表缓冲])中。

三、Pathname management[路径管理]
  Procnto容许资源管理器通过标准API提供、并管理一个字路径作为自己的授权域(domain of authority)。当一个进程打开一个文件的时候,进程首先会将路径发给Procnto,procnto会根据路径的前缀来判断由哪一个资源管理器来处理。当一个前缀被重叠注册时,会使用与最长的前缀关联的资源管理器来处理。
  当一个IO资源被打开时,会返回一个文件描述符(File descriptor:FD)。与Pathname space不同,文件描述符与进程相关。
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值