很多人都在考计算机四级嵌入式,为的是有一个更好的工作,嵌入式四级四级,听名字就知道他不简单,对于嵌入式四级来说,包含的知识点比较多,有编程开发方向的,有操作系统方面的都是这种有难度的题型,介于这个,我总结出了一些嵌入式四级题,计算机四级考试的可以来参考哦。
一、编程开发能力方向:
1、用预处理指令#define声明一个常数,用以表明一年中有多少秒(忽略闰年问题);写一个“标准”宏MIN函数,这个宏输入两个参数并返回较小的一个。
2、用变量a给出下面的定义:
(1)一个整型数(An integer);
(2)一个指向整型数的指针(A pointer to an integer);
(3)一个指向指针的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer);
(4)一个有10个整型数的数组(An array of 10 integers);
(5)一个有10个指针的数组,该指针是指向一个整型数的(A array of 10 pointers to integers);
(6)一个指向有10个整型数组的指针(A pointer to an array of 10 integers);
(7)一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument returns an integer);
(8)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数(An array of 10 pointers to functions that take an integer argument and return an integer);
3、关键字volatile有什么含义?并举出三个不同的例子。
4、嵌入式系统总是要用户对变量或寄存器进行位操作,给定一个整型变量a,写两段代码,第一个设置a 的bit 3,第二个清除a 的bit 3,在以上操作中,要保持其他位不变。
5、嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点,在某工程中,要去设置一绝对地址为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器,写代码去完成这一任务。
6、中断是嵌入式系统中的重要组成部分,这导致了很多编译开发商提供一种扩展——让标准C支持中断,具有代表性的是,产生一个新的关键字:__interrupt,下面的代码就使用了__interrupt去定义了一个中断子程序(ISR),请评论下这段代码的__interrupt,
double compute_area(double radius) {
double area=PI*radius*radius; print f(" Area"=%f,area); return area; }
7、尽管不像非嵌入式计算机那样常见,嵌入式系统还是有从堆(heap)中动态分配内存的过程的,那么嵌入式系统中,动态分派内存可能发生的问题是什么?
8、关键字static 的作用是什么?
9、#include 与#include "file.h"的区别? 10、请说出const 与#define 相比,有何优点?
二、嵌入式系统编程:
1、进程与线程有什么区别?
2、操作系统有哪几个特征?最主要的特征是什么?虚拟存储器有哪几个特征?
其最本质的特征是什么?
3、库函数的调用和系统调用的区别?
4、Linux进程间通行方式有哪几种以及各自的特点?
5、Linux中四层网络模型?IP的各种类型的范围?
6、在Linux系统中,造成死锁的原因有哪些?
7、Linux网络编程中主要使用的API有哪些以及网络服务器模型的种类? 8、简述对Linux的认识(特点,优势)。
三、嵌入式平台开发
1、bootloader 是什么?bootloader的stage1和stage2分别做的工作有哪些? 2、Linux内核版本命名的规则? 3、Linux设备文件有哪几类?
4、Linux文件系统的种类有哪些以及使用特点? 5、嵌入式系统移植的主要工作步骤是什么?
四、编程能力实测
1、编写一个C函数,将“I am from shanghai”倒置为“shanghai from am I”即将句子中的单词位置倒置,并不改变单词内部结构。
2、请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出。
五、操作系统方向
1.异步环境下的一组并发的进程因为直接制约而相互发送消息,进行相互合作,相互等待,使得各进程按照一定的速度执行的过程称为进程间的同步。
2.P,V操作可以实现进程同步,进程互斥,进程的前驱关系,进程共享是属于进程间大量信息的交换
3.在民航订票系统中,每个订票点在票务服务器上发起了请求订票进程,这些进程的关系是互斥关系
4.进程间的相互制约关系如下:
相互感知程度 交互关系 一个进程对其他进程的影响 潜在的控制问题
相互不感知 竞争关系 一个进程的操作对其他进程的结果无影响 互斥,死锁,饥饿
间接感知 通过共享进行协作 互斥,死锁,饥饿,数据一致性
直接感知 通过通信进行协作
其中间接感知 共享进行协作 进程死锁,互斥,饥饿,数据一致性
5.不同的用户在同一台游戏机上玩踢足球的电子游戏的时候既有同步关系又有互斥关系
6.用P,V操作管理临界区的时候,把信号量mutex的初值设定为1,。当有k(k>1 )个进程在mutex的等待队列中,信号量的值为-k
7.进程间通信时,已经满的邮件槽,发送进程不能再申请互斥锁
8.共享内存适合传送大量的信息,是非高效
9.对信号量的操作有:初始化,等信号,给信号,清理
10.在访问前必须先调用进入区代码,然后执行临界区代码,最后执行退出区代码
11.管道通信时同步的
12.信息缓冲通信机制包括:信息缓冲区,消息队列首地址,同步互斥信号量,发送接收信息原语
六、最重要的:算机嵌入式四级考试易错题
1.进程由多个线程组成,有一个线程被调度程序选入投入运行(占用CPU),则该进程就为运行状态。
2.pthread_join: 等待一个特定的线程退出。
pthread_yield:表示线程让出CPU。(yield:让位,退位)
pthread_mutex_init:创建一个互斥量。
pthread_create:创建线程后运行该线程。
pthread_exit:运行后主动退出。
没调用这些函数时,也没有出错指令,线程执行完指令后退出。
3.有CPU资源让出来的不一定能发生调度,但没有CPU资源让出,则一定不会发生进程调度。
4.同步关系:异步环境下的一组并发的进程因直接制约而相互发送消息、进行相互合作、相互等待,使得各进程按一定的速度执行的过程(流水线,无竞争);竞争关系:公共资源,导致竞争。
5.有K个进程在mutex(初始为1)的等待队列,当前需要访问临界区的进程有k+1个,此时mutex=-k。
6.p_v操作。
7.虚拟页式存储管理:在进程开始运行之前不是装入全部页面,而是装入一个或零个页面,之后根据进程运行的需要,动态转入其他页面。当内存空间已满,而又需要装入新的页面时,根据某种算法置换页面,装入新的页面。
将内存等分成大小为2的幂次方的内存块,成为页框
系统将虚拟地址空间等分为若干页面,大小与页框相同
虚拟页面在物理空间上不要求连续存放
硬件机制实现逻辑地址到物理地址的动态转换
虚拟页式存储技术的基本思想就是利用大容量的外存来扩充内存。(使用交换技术)
8.在成功打开一个文件系统调用后,系统会给用户返回一个文件描述符。
系统描述符在形式上是一个非负整数。(实际上是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表)。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。(文件描述符只在UNIX,LINUX提到)
9.指令流水线中,最大吞吐率是指:流水线达到稳定状态后可以获得的吞吐率。
指令流水线中的吞吐率是指:单位时间内流水线上所完成的指令或输出结果的数量。
10.光磁记录型可擦写光盘的存取原理:热磁效应。
11.8086CPU在响应INTR中断时,为了得到指向存放中断向量的内存的实际物理地址,将I/O给的中断类型码乘以4。
中断类型码→中断向量(左移)
中断向量→中断类型码(右移)
其实也不只是这些,还有很多,这是我总结的一部分,计算机四级嵌入式考试的人都快来看看,为自己以后的考试做好充分的准备。