《鸿蒙智能互联设备开发(微课版)》 课件 5.3.3 调度器-.pptx

《鸿蒙智能互联设备开发(微课版)》 课件 5.3.3 调度器-.pptx

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

5.3.3调度器

通过本节学习,您可以:了解调度器

调度器调度器(scheduler)是一个操作系统的核心部分,是CPU时间的管理员,负责选择最适合的就绪进程来执行。1.调度器概念周期性调度器CPU上下文切换主调度器选择进程调度器类进程调度器主要完成两件事:选择某些就绪进程来执行。打断某些执行的进程让他们变为就绪态

调度器主调度器:通过调用schedule()函数来完成进程的选择和切换。周期性调度器:根据频率自动调用scheduler_tick函数,根据进程运行时间触发调度。上下文切换:主要做两个事情,切换地址空间、切换寄存器和栈空间。调度器类:每个调度器都有一个优先级,它会按照优先级顺序遍历调度类,拥有一个可执行进程的最高优先级的调度器类胜出,去选择下面要执行的那一个程序。周期性调度器CPU上下文切换主调度器选择进程调度器类进程

调度器2.调度器运行机制OpenHarmony在系统启动内核初始化之后开始调度。系统根据进程和线程的优先级及线程的时间片消耗情况选择最优的线程进行调度运行。线程一旦调度到就会从调度队列上删除,线程在运行过程中发生阻塞,会被加入到对应的阻塞队列中并触发一次调度,调度其它线程运行。如果调度队列上没有可以调度的线程,则系统就会选择KIdle进程的线程进行调度运行。

调度器OpenHarmonyLiteOS-A内核的调度器模块提供了调度相关的接口。3.调度器接口功能分类接口名称描述触发系统调度LOS_Schedule触发系统调度LOS_GetTaskScheduler获取指定任务的调度策略LOS_SetTaskScheduler设置指定任务的调度策略LOS_GetProcessScheduler获取指定进程的调度策略LOS_SetProcessScheduler设置指定进程的调度参数,包括优先级和调度策略

调度器进程管理的应用,具体代码如下:#includestdio.h#includeosal_thread.h/***@brief输出“helloohos”函数*@paramvoid*@retvalvoid*/voidTask_hello_ohos(void){while(1){printf(Helloohos!!!\r\n);}}/***@brief任务创建函数*@paramvoid*@retvalvoid*/

调度器intmain(intargc,char**argv){structOsalThreadtask_ohos;//ohos任务IDstructOsalThreadParamtaskoh;//定义ohos任务结构体taskoh.stackSize=1028;//任务堆栈taskoh.name=Task_hello_ohos;//任务名称taskoh.priority=OSAL_THREAD_PRI_LOW;//任务优先级/**创建任务**/if(OsalThreadCreate(task_ohos,Task_hello_ohos,NULL)!=HDF_SUCCESS){printf(task_ohoscreateFailed!\r\n);}printf(task_ohoscreatesuccessful!\r\n);if(OsalThreadStart(task_ohos,taskoh)!=HDF_SUCCESS){printf(task_ohosstartFailed!\r\n);}printf(task_ohosstartsuccessful!\r\n);}

调度器运行结果如下:

谢谢

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档