浙大远程嵌入式系统第1次_嵌入式系统浙江大学

其他范文 时间:2020-02-28 22:39:11 收藏本文下载本文
【www.daodoc.com - 其他范文】

浙大远程嵌入式系统第1次由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“嵌入式系统浙江大学”。

《嵌入式系统》作业一

一、判断题

1.Linux 内核稳定、功能强大并且可以裁减,因为非常适合嵌入式应用。√

2.Linux 内核的中断服务程序运行于与所有进程都无关的中断上下文中。√ 3.Linux遵循POSIX标准,意味着绝大多数UNIX应用程序不需要任何改动就可以在Linux系统上编译且运行。√

4.Linux内核支持可以裁减的功能,因此它属于微内核架构。×

5.Linux在fork()时采用了写时拷贝(简称COW)技术,允许父进程和子进程同时共享相同的物理页面。√

6.任何一个Linux应用程序都需要调用exit()函数。√

7.当前的Linux调度算法非常高效,但是查找当前最高优先级的可运行程序时,开销会随着可运行程序的多少而变化。× 8.Linux的系统调用是作为C库的一部分提供的。√ 9.为了对硬件做出迅速的响应并完成对时间严格的操作,中断处理下半部必须在关中断状态下执行。×

10.Linux的内存管理采用了分页的机制,因此即使是内核本身也全部是分页的。×

二、选择题

11.通过文件名存取文件时,文件系统内部的操作过程是通过(C)A.B.C.D.文件在目录中查找文件数据存取位置。

文件名直接找到文件的数据,进行存取操作。

文件名在目录中查找对应的i节点,通过i节点存取文件数据。

文件名在中查找对应的超级块,在超级块查找对应i节点,通过i节点存取文件数据。

12.Linux 实现的虚拟文件系统(VFS)有几个主要类型的结构体对象,以下选项中,不属于VFS结构体对象的是(D)A.超级块(superblock)对象 B.目录项(inode)对象 C.文件(file)对象 D.数据(date)对象

13.关于Linux的内存管理方式中,叙述正确的是(A)

A.在32位x86上,当内存容量超过896M时,必须采用区(zone)的概念

B.为了能够执行磁盘的DMA操作,任有架构上必须有ZONE_DMA这个区 C.slab分配器作为通用数据结构缓存层的角色,不会产生内存碎片 D.内核具有超级权限,在内核栈中可以比用户栈中分配更多的空间 14.Linux的内核同步方法中哪种可用于休眠(C)

A.原子操作方法

B.自旋锁与读-写自旋锁 C.信号量与读-写信号量

D.屏障

15.关于Linux的系统调用使用情况,最恰当的是(B)

A.由于系统调用号数目有限,那些不再使用的调用号需要回收利用 B.系统调用函数的参数必须通过寄存器传送 C.Linux的所有系统调用都有一个明确的用途 D.自定义系统调用可以不修改内核

16.Linux的进程管理中,正确的是(A)B A.Linux中,进程和程序是一个概念

B.Linux中,进程和线程是一个概念

C.进程描述结构是task_struct,其空间由slab分配器分配。

D.x86结构中有一个寄存器存储了task_struct的地址,用于快速定位 17.关于Linux的调度机制中,不恰当的是(A)D A.Linux提供了基于动态优先级的调度机制

B.调度程序对优先级高的进程默认分配更长的时间片

C.当调度程序查找可执行程序时,查找时间不会因为系统任务繁重而变慢 D.当need_resched被设置时,系统就立刻调用schedule()进行调度 18.不属于Linux在处理器上的上下文执行环境的是(D)

A.运行于内核空间的进程上下文,代表请求服务的进程被执行 B.运行于内核空间的进程上下文,处理当前响应的中断 C.运行于用户空间,执行用户进程

D.运行于用户空间,处理当前响应的中断 19.对Linux内核的理解,一定正确的是(C)

A.Linux的效率非常高,因此经常被用在有硬实时需求的环境中

B.在用Linux作为系统的嵌入式环境中,一定要使用ARM的处理器 C.Linux可以运行在没有内存管理单元(MMU)的架构上 D.Linux的内核抢占是所有嵌入式应用中必须的 20.关于Linux内核的编译,错误的是(C)

A.不必在相同的架构上编译,也就是可以交叉编译

B.内核编译可以不提供动态加载模块的功能 C.模块的编译必须在编译内核时进行 D.Linux内核的编译只能使用gcc才能完成

三、简答题

21.请简述用户自定义一个Linux系统调用的步骤过程。

答: 如果用户在Linux中添加新的系统调用,应该遵循几个步骤才能添加成功。

(1)添加源代码

(2)连接新的系统调用

(3)重建新的Linux内核

(4)用新的内核启动系统

22.简述Linux的slab分配器作用和原理 答:slab分配器的作用

slab分配器源于 Solaris 2.4 的分配算法,工作于物理内存页框分配器之上,管理特定大小对象的缓存,进行快速而高效的内存分配。

slab 分配器为每种使用的内核对象建立单独的缓冲区。Linux 内核已经采用了伙伴系统(Buddy System)管理物理内存页框,因此slab分配器直接工作于伙伴系统之上。每种缓冲区由多个 slab 组成,每个 slab就是一组连续的物理内存页框,被划分成了固定数目的对象。为了充分利用硬件高速缓存,slab 分配器允许对象在一级硬件高速缓存中对齐(创建缓冲区时,设置 SLAB_HWCACHE_ALIGN 标志);同时使用着色(color)策略,使得同一缓冲区内不同 slab 中相同编号的对象的地址相互错开,避免它们被放入同一物理高速缓存行而造成频繁换入/换出的性能损失。为了支持多处理器同时分配对象,缓冲区为每个处理器维护一个本地缓存。处理器直接从本地缓存中分配对象,从而避免了锁的使用;当本地缓存为空时,从 slab 中批量分配对象到本地缓存。

slab分配器的原理:slab分配器分配的各种内存块被看作不同类型的对象,采用对象复用技术可以对对象进行如下操作:①.分配内存;②.构造对象;③.使用对象;④.析构对象;⑤.释放对象.有时系统会频繁地分配和释放对象,从而使对象构造和析构的开销很大, slab分配器采用基于对象缓存技术,可以大大优化这方面的性能.。

slab分配器的结构:slab分配器主要有三层数据结构:对象缓存, slab对象.对象缓存 slab分配器给每一种对象分配一个缓存,同时提供一组2次幂常用缓存给不需要私有对象缓存的用户.Cache_cache缓存负责分配管理缓存的结构kmem_cache_s,再由kmem_cache_s以链表结构引出空闲对象.slab分配器是一种快速,安全,高效,对硬件支持较好的分配器,预计在未来的Linux版本中还将使用slab分配器并对其做出改进

下载浙大远程嵌入式系统第1次word格式文档
下载浙大远程嵌入式系统第1次.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文