当前位置: 首页 > news >正文

营销型网站页面布局大连seo优化

营销型网站页面布局,大连seo优化,cnnic 网站,国外做宠物用品的网站【⭐据说点赞收藏的都会收获好运哦👍】 一、鸿蒙Liteos读源码教程 鸿蒙的源码是放在openharmony文件夹下,openharmony下的kernel文件夹存放操作系统内核的相关代码和实现。 内核是操作系统的核心部分,所以像负责:资源管理、任…

【⭐据说点赞+收藏的都会收获好运哦👍】  

一、鸿蒙Liteos读源码教程

鸿蒙的源码是放在openharmony文件夹下,openharmony下的kernel文件夹存放操作系统内核的相关代码和实现。

内核是操作系统的核心部分,所以像负责:资源管理、任务调度、内存管理、设备驱动、进程通信的源码都可以在kernel文件夹里看到。

进入到kernel文件夹下后会看到liteos_a和liteos_m,我们只需要知道liteos_a是针对嵌入式设备的,所以像我们实验用的开发板就是看liteos_a下的代码,而liteos_m是针对物联网设备设计的,所以我们暂时先不去看这个。

友情提示:ubuntu虚拟机是有可视化界面的,只需要在桌面上点击进入Files即可看到系统中的文件:

进入liteos_a后真正的核心代码同样是存储在kernel下的:

主要介绍3个比较重要的:

base:该文件夹包含操作系统内核的基础部分,如调度器,同步机制,内存管理等基础功能的实现。

include:该文件夹包含内核需要的所有头文件。

user:该文件夹包含一些用户级别的功能,如用户任务,用户接口等。

所以如果想查看有关内核的代码就进入base文件夹,想查看或者修改头文件就进入include文件夹。

假设我们现在进入到base文件夹:

接下来我逐一向大家简要介绍:

core:包含了内核的核心代码,比如初始化代码,启动代码等。

include:包含了base部分所有的头文件。

ipc:是inter-process communication的缩写,和进程相关,包含了实现进程间通信的代码。

mem:是内存缩写,包含了实现内存管理的代码,如内存分配、内存释放等。

misc:包含杂项代码,如工具函数,调试功能。

mp:包含多处理器相关的代码,如多核心调度,同步等。

om:包含LiteOS的运维相关代码。

sched:是调度缩写,包含了LiteOS的任务调度代码,包括任务的创建,删除,切换等。

vm:是虚拟内存的缩写,包含了实现虚拟内存管理的代码,如页表管理,地址转换等。

二、向LiteOS中添加一个简单的基于线程运行时间的短作业优先调度策略

实验要求:

短作业优先调度策略为优化LiteOS的吞吐量。该策略在将线程TCB插入就绪队列时,按照线程执行的时间长短进行排序。运行时间短的线程先运行,运行时间长的线程后运行。该Proj要完成以下内容:

第1步:修改LiteOS内核的PriQueInsert函数,在其中添加相关代码,实现按照任务运行时间的长短将任务的TCB插入就绪队列。

解析:很多同学可能并没有找到PriQueInsert函数,其实是因为韦东山老师在这里下载的是OpenHarmony的1.0版本,这个是2019年的早期版本,至今Openharmony已到4.0版本:

所以要解决这个问题,关键在于下载更高版本的Openharmony,我在这里下载的是3.2的Release版本:

repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony-3.2-Release
repo sync -c -j8

(下载的时间略长,差不多1小时...) 

在新版本中具有PriQueInsert函数,可以据此修改:

【⭐如果觉得有帮助,记得点赞+收藏哟👍】 

第2步:在短作业优先调度策略中,采用LiteOS中定义的SchedParam结构体中的timeSlice成员作为该作业的运行时间。

解析:SchedParam结构体我找了5分钟,发现是在liteos_a/kernel/base/include下的los_sched_pri.h文件夹里。

这里补充一下:进入到.h或者.c文件后,可以用快捷键Ctrl+F进行关键词搜索。

需要具备一个意识:可以顺着头文件去进行搜寻,效率较高。

第3步:在用户层生成至少3个线程,通过pthread_attr_getschedparam函数pthread_attr_setschedparam函数,修改所生成线程的调度策略为“短作业优先“调度策略,并对timeSlice进行赋值,表示该线程的运行时间。

解析:pthread_attr_getschedparam函数和pthread_attr_setschedparam函数是属于POSIX线程库提供的函数,没有具体的实现方法,只有定义。

所在的位置是在openharmony/third_party/musl/include下的pthread.h文件里:

pthread_attr_getschedparam函数:用于获取线程的调度参数,包括线程的优先级等信息。

pthread_attr_setschedparam函数:用于设置线程的调度参数,包括线程的优先级等信息。

这里补充一下:大家可以直接在Files文件夹的根目录里,按下快捷键Ctrl+F,然后输入pthread.h直接搜索到这个文件:

第4步:验证你所编写的调度策略是正确的。线程内部可以用while语句循环timeSlice规定的时间,然后打印自己的TID后退出。例如,对这3个线程的timeSlice分别赋予1、5、9。那么这3个线程也按照这个顺序完成,即第一个线程1秒后退出,第二个线程5秒后退出,第三个线程9秒后退出。

用户层采用pthread库实现,相关代码参考下面博客:

Linux线程调度策略以及优先级实验(图文)

解析:

首要要把程序中所有可能用到的头文件包含进来,比如:pthread.h、los_sched_pri.h等等。

然后我们要去定义任务的函数,在这里我们需要定义至少3个任务函数,作为线程的入口点,函数名可以取task1,task2....这里需要说明的一点是:咱们的代码是写在doc_and_source_for_openharmony下的apps里的,创建一个文件夹,里面放入.c和makefile文件。

紧接着我们要配置任务参数,通过pthread_attr_getschedparam函数和pthread_attr_setschedparam函数,修改所生成线程的调度策略为“短作业优先“调度策略,并对timeSlice(timeSlice是在SchedParam结构体里的,最后应该)进行赋值,表示该线程的运行时间。

最后创建线程:使用Los_TaskCreate()来创建线程。最后LOS_Start()来启动调度。

Los_TaskCreate()在openharmony/kernel/liteos_a/kernel/base/core下

通过下面的while循环来控制退出的时间:

while (count < timeSlice){// 线程2的代码count++;
}

通过下面语句打印TID: 

 printf("Thread 2, TID: %d\n", LOS_CurTaskID());

最后删除: 

LOS_TaskDelete(LOS_CurTaskID());
http://www.yayakq.cn/news/185180/

相关文章:

  • 淘宝怎么才能发布网站建设网站如何设置微信支付功能
  • 建设部网站工程设计收费标准广州专业的免费建站
  • 营销型企业网站建设板块设置网站左侧导航源码
  • 大型网站制作平台事业单位网站模板
  • 山东济南网络科技有限公司赣州seo推广
  • php 手机网站cmswordpress 链接优化
  • 如何做自己的网站百度推广网站开发的源码
  • 安徽网新科技有限公司 网站开发在线设计平台的概念
  • dz网站制作网站成品超市
  • 网站开发的评论界面怎么写wordpress映射不出去
  • 教育机构网站微信网页上的网站怎么做
  • 企业营销网站案例深圳制作网站专业
  • 优秀个人网站设计欣赏最好看的电视剧大全免费观看免费
  • 做网站昆明wordpress展示页面模板
  • 营销型网站建设品牌琼海做网站口碑
  • 泰州住房和城乡建设厅网站首页葫芦岛建设厅网站
  • 利津网站制作wordpress首页缩略图大小
  • 网站做推广怎么收费查询优惠券的网站如何做
  • 网站外链建设的策略分析爱站网是什么平台
  • 广东外贸型网站建设怎么给公司做个网站
  • 网站开发的工作方法wordpress js 版本号
  • 无锡市新区建设环保局网站宁波易企网做的网站
  • 罗湖网站建设公司乐云seo中国制造平台
  • 网站建设数据库怎么传送最专业的微网站开发
  • 加强政协机关网站建设创建建站
  • wordpress 网站统计插件衡阳网站建设icp备
  • 上海建网站多少钱四川城乡和建设厅网站
  • 网站根目录权限设置网站开发专业课程
  • 手机建网站兰州口碑营销
  • 申请免费网站注册苏州好的做网站的公司有哪些