网站大量收购独家精品文档,联系QQ:2885784924

《鸿蒙智能互联设备开发(微课版)》 课件 5.3.1 进程管理.pptx

《鸿蒙智能互联设备开发(微课版)》 课件 5.3.1 进程管理.pptx

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

5.3.1进程管理

通过本节学习,您可以:了解进程管理

进程管理进程是系统资源管理的基本单元。OpenHarmonyLiteOS-A内核提供的进程模块主要用于实现用户态进程的隔离,不涉及内核态进程。进程模块主要为用户提供多个进程,实现了进程之间的切换和通信,帮助用户管理业务程序流程。进程采用抢占式调度机制,采用高优先级优先加同优先级时间片轮转的调度算法。进程一共有32个优先级(0-31),用户进程可配置的优先级有22个(10-31),最高优先级为10,最低优先级为31。高优先级的进程可抢占低优先级进程,低优先级进程必须在高优先级进程阻塞或结束后才能得到调度。每一个用户态进程均拥有自己独立的进程空间,相互之间不可见,实现进程间隔离。用户态根进程init由内核态创建,其它用户态子进程均由init进程创建而来。1.进程的概念

进程管理进程有多种状态,各状态之间的关系如图所示:2.进程状态初始化(Init):进程正在被创建。就绪态(Ready):进程在就绪列表中,等待CPU调度。运行态(Running):进程正在运行。阻塞态(Pending):进程被阻塞挂起。本进程内所有的线程均被阻塞时,进程被阻塞挂起。僵尸态(Zombies):进程运行结束,等待父进程回收其控制块资源。

进程管理初始化→就绪态:进程创建或fork时,拿到对应进程控制块后进入Init状态,即进程初始化阶段,当该阶段完成后进程将被插入调度队列,此时进程进入就绪状态。就绪态→运行态:发生进程切换时,就绪列表中优先级最高且获得时间片的进程被执行,从而进入运行态。若此时该进程中已无其它线程处于就绪态,则进程从就绪列表删除,只处于运行态;若此时该进程中还有其它线程处于就绪态,则该进程依旧在就绪队列,此时进程的就绪态和运行态共存,但对外呈现的进程状态为运行态。初始化就绪态阻塞态运行态僵尸态

进程管理运行态→阻塞态:进程在最后一个线程转为阻塞态时,进程内所有的线程均处于阻塞态,此时进程同步进入阻塞态,然后发生进程切换。阻塞态→就绪态:阻塞进程内的任意线程恢复就绪态时,进程被加入到就绪队列,同步转为就绪态。就绪态→阻塞态:进程内的最后一个就绪态线程转为阻塞态时,进程从就绪列表中删除,进程由就绪态转为阻塞态。初始化就绪态阻塞态运行态僵尸态

进程管理运行态→就绪态:有更高优先级的进程创建或者恢复后,会发生进程调度,此刻就绪列表中最高优先级进程变为运行态,那么原先运行的进程由运行态变为就绪态。若进程的调度策略为LOS_SCHED_RR(时间片轮转),且存在同一优先级的另一个进程处于就绪态,则该进程的时间片消耗光之后,该进程由运行态转为就绪态,另一个同优先级的进程由就绪态转为运行态。初始化就绪态阻塞态运行态僵尸态

进程管理运行态→僵尸态:当进程的主线程或所有线程运行结束后,进程由运行态转为僵尸态,等待父进程回收资源。初始化就绪态阻塞态运行态僵尸态

进程管理进程管理主要是合理的分配各个进程使用CPU的时间。用户态进程由Init进程分解而来,如图所示。fork进程时会将父进程的进程虚拟内存空间克隆到子进程,子进程实际运行时通过写时复制机制将父进程的内容按需复制到子进程的虚拟内存空间。3.进程运行机制用户态进程多线程用户态进程多线程Init进程多线程

进程管理OpenHarmonyLiteOS-A内核的进程管理模块提供了进程组、用户组、进程创建等接口。4.进程接口功能分类接口名接口描述获取进程IDLOS_GetCurrProcessID获取当前进程的进程ID进程组LOS_GetProcessGroupID获取指定进程的进程组IDLOS_GetCurrProcessGroupID获取当前进程的进程组ID用户及用户组LOS_GetUserID获取当前进程的用户IDLOS_GetGroupID获取当前进程的用户组IDLOS_CheckInGroups检查指定用户组ID是否在当前进程的用户组内

进程管理功能分类接口名接口描述进度调度参数控制LOS_GetProcessScheduler获取指定进程的调度策略LOS_SetProcessScheduler设置指定进程的调度参数,包括优先级和调度策略LOS_SetProcessPriority设置进程优先级LOS_GetProcessPriority获取进程优先级系统支持的最大进程数LOS_GetSystemProcessMaximum获取系统支持的最大进程数目LOS_GetUsedPIDList获得已使用的进程ID列表

进程管理功能分类接口名接口描述创建进程LOS_Fork创建子进程等待进程LOS_Wait等待子进程结束并回收子进程LOS_Waitid等待相应ID的进程结束退出进程LOS_Exit退出进程

谢谢

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档