- 1、本文档共114页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第五章嵌入式Linux内核;第五章嵌入式Linux内核;第三课嵌入式Linux内核;Linux概述;ARM-Linux内核概述;对比:WINCE的系统调用;ARM-Linux内核版本;ARM-Linux内核特点;ARM-Linux内核的主要架构及功能
;ARM-Linux内核5.15版本的目录结构;5.1.4linux内核源码目录结构;Kernel内核管理的核心代码放在这里。另外与处理器结构相关代码都放在arch/*/kernel目录下。
Net目录里是核心的网络部分代码。
Lib目录包含了核心的库代码,但是与处理器结构相关的库代码被放在arch/*/lib/目录下。
Scripts目录包含用于配置核心的脚本文件。
Documentation目录下是一些文档,是对目录作用的具体说明。;ARM-Linux进程管理;进程是处于执行期的程序以及它所管理的资源的总称,这些资源包括如打开的文件、挂起的信号、进程状态、地址空间等。程序并不是进程,实际上两个或多个进程不仅有可能执行同一程序,而且还有可能共享地址空间等资源。;ARM-Linux进程管理;5.2.1进程的表示和切换;系统中的每个进程都必然处于以上所列进程状态中的一种。这里对进程状态给予说明
TASK_RUNNING表示进程要么正在执行,要么正要准备执行。
TASK_INTERRUPTIBLE表示进程被阻塞(睡眠),直到某个条件变为真。条件一旦达成,进程的状态就被设置为TASK_RUNNING。
TASK_UNINTERRUPTIBLE的意义与TASK_INTERRUPTIBLE基本类似,除了不能通过接受一个信号来唤醒以外。
__TASK_STOPPED表示进程被停止执行。
__TASK_TRACED表示进程被debugger等进程监视。
TASK-WAKEKILL该状态是当进程收到致命错误信号时唤醒进程。
TASK_WAKING:该状态说明该任务正在唤醒,其他唤醒操作均会失败。都被置为TASK_DEAD状态。
TASK_DEAD:一个进程在退出时,state字段都被置于该状态。
EXIT_ZOMBIE:表示进程的执行被终止,但是其父进程还没有使用wait()等系统调用来获知它的终止信息。
EXIT_DEAD:进程在系统中被删除时将进入该状态。该状态表示进程的最终状态。
EXIT_ZOMBIE和EXIT_DEAD也可以存放在exit_state成员中。;图5-5进程状态的切换;进程、线程和内核线程;进程是系统资源分配的基本单位,线程是程序独立运行的基本单位;内核线程和普通进程的不同:
1.内核线程永远都运行在内核态,而不同进程既可以运行在用户态也可以运行在内核态。从地址空间的使用角度来讲,内核线程只能使用大于3GB的地址空间,而普通进程则可以使用整个4GB的地址空间。
2.内核线程只能调用内核函数无法使用用户空间的函数,而普通进程必须通过系统调用才能使用内核函数。;进程关键数据结构task_struct;进程的创建;Linux5.10版本后do_fork()被取代;进程的创建;进程的执行---exec函数族;进程的终止;进程的调度;2.进程调度的一般原理
调度程序运行时,要在所有可运行的进程中选择最值得运行的进程。选择进程的依据主要有:
进程的调度策略(policy)、
静态优先级(priority)、
动态优先级(counter)、
实时优先级(rt-priority)。;调度策略:从O(1)到CFS;内核默认提供了5个调度器,Linux内核使用structsched_class来对调度器进行抽象:
(1)Stop调度器(stop_sched_class):优先级最高的调度类,可以抢占其他所有进程,不能被其他进程抢占。
(2)Deadline调度器(dl_sched_class):使用红黑树,把进程按照绝对截止期限进行排序,选择最小进程进行调度运行。
(3)RT调度器(rt_sched_class):实时调度器,为每个优先级维护一个队列。
(4)CFS调度器(cfs_sched_class):完全公平调度器,采用完全公平调度算法,引入虚拟运行时间概念。
(5)IDLE-Task调度器(idle_sched_class):空闲调度器,每个CPU都会有一个idle线程,当没有其他进程可以调度时,调度运行idle线程。
;Linux内核提供了一些调度策略供用户程序来选择调度器,其中Stop调度器和IDLE-Task调度器,仅由内核使用,用户无法进行选择。调度策略主要有:
(1)SCHED_DEADLINE:限期进程调度策略,使task选择Deadline调度器来调度运行。
(2)SCHED_RR:实时进程调度策略,时间片轮转,进程用完时间片后加入优先级对应运行
您可能关注的文档
- 嵌入式linux系统设计与应用 课件 第1、2章 嵌入式系统基础知识、典型嵌入式架构与指令集:ARM与RISC-V.pptx
- 嵌入式linux系统设计与应用 课件 第3、4章 Linux基础、 嵌入式Linux开发环境搭建.pptx
- 嵌入式linux系统设计与应用 课件 第7、8章 嵌入式Linux系统移植、 嵌入式Linux驱动程序.pptx
- 嵌入式linux系统设计与应用 课件 第8、9章 嵌入式Linux驱动程序、嵌入式Linux高级编程.pptx
- 嵌入式linux系统设计与应用 课件全套 王剑 第1--9章 嵌入式系统基础知识--- 嵌入式Linux高级编程.pptx
- 2024年驾驶保证书范文.docx
- 2024年巡检工辞职报告.docx
- 2024年安全承诺书原创承诺书关于安全.docx
- 2024年感恩节快乐QQ祝福语7篇.docx
- 2024年立春双春年文案.docx
最近下载
- (库卡机器人)工业机器人编程1+X证书理论考试复习题库资料(含答案).pdf
- 基于CC2530的Zigbee无线传感网络的设计与实现.docx VIP
- 电路理论(华中科技大学)中国大学MOOC 慕课 期末考试答案.docx
- 糖尿病肾脏病基层管理指南(2023).pptx VIP
- 地质灾害护坡工程设计规范.doc
- 建党百年-少年先锋队童心向党主题班会ppt.pptx VIP
- 国家开放大学电大《民族理论与民族政策》期末题库及答案.docx
- 艾滋病病毒感染者随访工作指南(2016年版).doc
- 学堂课程在线中西经典对话(英语)(暨大)课后作业期末考试答案.docx
- 急诊PCI护理实践指南.pptx VIP
文档评论(0)