嵌入式系统linux总结.doc

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

嵌入式实时操作系统复习提纲 一、基本概念 Linux内核主要是由进程调度、内存管理、虚拟文件系统、网络接口和进程间通信等组成。 3.Linux用户进程: Linux系统定义了五种状态进程状态 从Linux的调度来看,支持非实时(普通)和实时两种进程。 5.考虑到中断处理的效率,Linux的中断处理程序分为两个部分:上半部(top half)和下半部(bottom half)。由外部设备引发的中断叫外部中断,处理器响应中断请求而执行的程序模块叫中断服务例程 6.交换机制:将不用或暂不用的页框中的页移出,装上新的页面;linux三级分页结构 7.进程的通信与同步机制有管道、信号、消息队列、共享内存和信号量集等el 中。Linux的管道有:匿名管道和命名管道;从信号的可靠性方面,信号可以分为:可靠信号和不可靠信号。 8.linux设备驱动注册的基本参数有设备名称,设备驱动的数据结构、设备号 和 次设备号。lsmod 把现在 kernel 中已经安装的modules 列出来;insmod 把某个 module 安装到 kernel. 二、基本原理和方法 基于虚拟内存技术的程序执行两次映射: Buddy算法-伙伴算法 Slab分配器思想 Linux内存管理的基本内容和步骤 Linux 内核的主要组成部分 Linux的中断处理程序 Linux系统进程调度的总体思想。 实时进程优先于普通进程,实时进程以进程的紧急程度为优先顺序,普通进程以进程平等占用CPU时间为基本调度原则。 Linux提供了两种实时调度策略SCHED_FIFO和SCHED_RR linux使用的进程间通信方式: (1)管道(pipe)和有名管道(FIFO) (2)信号(signal) (3)消息队列:msgget可以创建一个新队列或打开一个存在的队列. ?msgctl类似于驱动程序中的ioctl函数, 可对消息队列执行多种操作. 调用msgsnd将数据放到消息队列中. 调用msgrcv将从消息队列中取消息. (4)共享内存: linux进程调用shmget(Shared Memory GET,获取共享内存)来分配一个共享内存块。shmat(SHared Memory Attach,绑定到共享内存)。shmctl(Shared Memory Control,控制共享内存)函数会返回一个共享内存块的相关信息。同时 shmctl 允许程序修改这些信息。 (5)信号量 (6)套接字(socket) 三、Linux调度程序理解 1. Linux使用内核函数goodness()对进程进行加权处理: Static inline goodness (struct task_struct * pint this_cpu, struct mm_struct *this_mm) {Int weight; Weight=-1;  If (p-policy SCHED_YIELD)// /*判断如果任务的调度策略被置为SCHED_YIELD的话,则置权值为-1,返回。 goto out; If (p-policy==SCHED_OTHER) /*先对普通进程进行处理(由于多数是普通进程,这样做有利于提高系统效率)*/ {weight=p-counter;? ?? ?? ?/*返回权值为进程的counter值*/ If (! weight) Goto out; #Ifdef CONFIG_SMP If (p-processor==this_cpu) Weight+=PROC_CHANGE_PENALTY; #Endif If (p-mm==this_mm||! p-mm) Weight+=1; /*对进程权值进行微调,如果进程的内存空间使用当前正在运行的进程的内存空间,则权值额外加1*/ Weight+=20-p-nice; /*将权值加上20与进程优先级nice的差。普通进程的权值主要由counter值和nice值组成*/ ??Goto out; } Weight=1000+p-rt_priority; //对实时进程进行处理,返回权值为rt_priority+1000,确保优先级高于普通进程*/ Out: return weight;} 2. linux 进程及管道应用实例 #includestdio.h #includeunistd.h int main() { int n,fd[2];???????????????????????? // 这里的fd是文件描述符的数组,用于创建管道做准备的 pid_t pid; char line[100]; if(pipe(fd)0)???????????????????? //?? 创建管道 ?? printf(pipe create err

文档评论(0)

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

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

1亿VIP精品文档

相关文档