【Linux神总结】

【Linux神总结】

ID:38608996

大小:63.50 KB

页数:3页

时间:2019-06-16

【Linux神总结】_第1页
【Linux神总结】_第2页
【Linux神总结】_第3页
资源描述:

《【Linux神总结】》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第1页福建工程学院国脉信息学院2012-2013学年第二学期期末考试卷审批表课程名称嵌入式实时操作系统考试班级10参加考试学生人数350任课教师张平均命题教师张平均试卷类型(A、B)A考试形式开卷()闭卷(√)答卷纸(张)系(部)意见(签章)教务处意见(签章)试题参考答案及评分标准一、填空题(每空1分,共35分)1.上半部、下半部。2.进程调度,内存管理,虚拟文件系统,进程间通信3.进程控制块、用户堆栈、程序代码、数据段、512、SCHED--OTHER、SCHED--FIFO、SCHED—RR4.Kurt-lin

2、ux,RED-linux,RT-linux和Xenomai等。5.A,B,C,D,Linux,调度,Xenomai。6.页目录,中间页目录,页表。7.等待状态,就绪状态,运行状态。8.管道,信号,消息队列,共享内存。二、简答题(共55分)1.影响RT-linux实时性的因素(10分)1)linux调度及其抢占第一,虽然linux2.6中代码被设置了抢占点,内核已经可以抢占,因而实时性得到了加强,但是内核中仍有大量的不可抢占区域,如由自旋锁(Spinlock)保护的临界区。以及一些显式使用preempt_disabl

3、e失效抢占的临界区。还包括核心进程是不能被抢占的,即如果有linux的核心态进程在运行时,其他进程不管其优先级多高都必须等待。2)linux的中断中断总是最高优先级的,在系统调用中为了保护临界区资源,Linux会长时间关掉中断。Linux在一些同步操作中使用了中断关闭指令,中断关闭将增大中断延迟,降低系统的实时性。这种情况在实时系统中是不允许发生的。连续的低优先的中断可能持续占有CPU,而高优先的某些进程则无法获得CPU。3)linux的时钟粒度Linux通过对硬件时钟编程产生周期为100hz的时钟,中断任务调度的

4、时间精度最高能达到10ms。这无法满足一些对时间精度要求苛刻的实时应用。4)Linux的虚拟内存Linux采取了虚拟内存的内存管理方式,它使得操作花费的时间具有不可预测性在实时系统中是不允许的。2.Linux提供了两种实时调度策略SCHED_FIFO和SCHED_RR(10分)1)SCHED_FIFOSCHED_FIFO实现了一种简单的、先入先出的调度算法,它不使用时间片。SCHED_FIFO级的进程回比任何SCHED_NORMAL级的进程都先得到调度。一旦一个SCHED_FIFO级进程处于可执行状态,就会一直执行

5、,直到它自己阻塞或者显式地释放处理器为止;它不基于时间片,可以一直执行下去。只有较高优先级的SCHED_FIFO或者SCHED_RR任务才能抢占SCHED_FIFO任务。如果有两个或者更多的SCHED_FIFO级进程,它们会轮流执行,但是在它们愿意让出处理器时会再次让出。只要有SCHED_FIFO级进程在执行,其他级别较低的进程就只能等待它结束后才有机会执行。2)SCHED_RRSCHED_RR与SCHED_FIFO大体相同,只是SCHED_RR级的进程在耗尽事先分配给它的时间片后就能再接着执行了。也就是说,SCH

6、ED_RR是带有时间片的SCHED_FIFO--这是一种实时轮流调度算法。当SCHED_RR任务耗尽它的时间片,在同一优先级的其他实时进程被轮流调度。时间片只能用来重新调度同一优先级的进程。对于SCHED_FIFO进程,高优先级总是立刻抢占地优先级,但是低优先级进程决不能抢占SCHED_RR任务,即使它的时间片耗尽。这两种实时调度算法实现的都是静态优先级。内核不为实时进程计算动态优先级。这能保证给定优先级别的实时进程总能抢占优先级比它低的进程。3.基于虚拟内存技术的程序执行两次映射是?(5分)1)应用程序向虚拟内存

7、映射:用虚拟地址为程序编址,映射到虚拟内存空间;确定其代码段、数据段和堆栈段的地址空间,系统以逻辑地址访问虚拟内存中的某个程序段;2)把要运行的程序段复制到物理内存,映射到物理内存空间,确定程序的物理地址。虚拟内存逻辑地址与物理地址的对应记录表;系统自物理内存地址读取所需数据。34.内核实时线程编程API,主要有以下几个(在rtl_sched.h中声明)。(5分)intpthread_create(pthread_t*thread,pthread_attrt*attr,void*(*start_routine)(v

8、oid*),void*arg,structmodule*mod);//创建一个实时线程intpthread_delete_np(pthread_tthread);//删除一个实时线程intpthread_make_periodie_np(pthread_tP,hrtime_tstart_time,hrtime_tperiod);//设定一个周期性实时线程in

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。