嵌入式软件开发面试题总结三.

本文档提供了嵌入式领域的面试题目解析,涵盖了动态库与静态库的区别、进程调度算法、SPI通信、TCP/IP协议等内容,旨在帮助读者理解嵌入式系统的关键概念和技术。

1.动态库和静态库的区别,后缀格式,以及函数的相对地址区

解题思路

区别 命名方式不同: 静态库libxxx.a:库名前加“lib”,后缀用“.a”,“xxx”为静态库名。动态库 libxxx.so:库名前加“lib”,后缀变为“.so”。链接时间不同: 静态库的代码是在编译过程中被载入程序中。动态库的代码是当程序运行到相关函数才调用动态库的相应函数 链接方式不同: 静态库的链接是将整个函数库的所有数据在编译时都整合进了目标代码。动态库的链接是程序执行到哪个函数链接哪个函数的库。(用哪个链接哪个)
优缺点? 静态库: 优点是,在编译后的执行程序不再需要外部的函数库支持,运行速度相对快些; 缺点是,如果所使用的静态库发生更新改变,你的程序必须重新编译。动态库 : 优点是,动态库的改变并不影响你的程序,所以动态函数库升级比较方便; 缺点是,因为函数库并没有整合进程序,所以程序的运行环境必须提供相应的库。

2. 说说你了解的进程调度算法

解题思路
不同环境的调度算法目标不同,因此需要针对不同环境来讨论调度算法。批处理系统 批处理系统没有太多的用户操作,在该系统中,调度算法目标是保证吞吐量和周转时间(从提交到终止的时间)。先来先服务 第一来-serverd(FCFS) 按照请求的顺序进行调度。有利于长作业,但不利于短作业,因为短作业必须一直等待前面的长作业执行完毕才能执行,而长作业又需要执行很长时间,造成了短作业等待时间过长。短作业优先 shortest job first(SJF) 按估计运行时间最短的顺序进行调度。长作业有可能会饿死,处于一直等待短作业执行完毕的状态。因为如果一直有短作业到来,那么长作业永远得不到调度。最短剩余时间优先 剩余最短时间 next(SRTN) 按估计剩余时间最短的顺序进行调度。交互式系统 交互式系统有大量的用户交互操作,在该系统中调度算法的目标是快速地进行响应。时间片轮转 将所有就绪进程按FCFS的原则排成一个队列,每次调度时,把CPU时间分配给队首进程,该进程可以执行一个时间片。当时间片用完时,由计时器发出时钟中断,调度程序便停止该进程的执行,并将它送往就绪队列的末尾,同时继续把 CPU 时间分配给队首的进程。时间片轮转算法的效率和时间片的大小有很大关系:因为进程切换都要保存进程的信息并且载入新进程的信息,如果时间片太小,会导致进程切换得太频繁,在进程切换上就会花过多时间。而如果时间片过长,那么实时性就不能得到保证。优先级调度 为每个进程分配一个优先级,按优先级进行调度。为了防止低优先级的进程永远等不到调度,可以随着时间的推移增加等待进程的优先级。多级反馈队列 一个进程需要执行 100 个时间片,如果采用时间片轮转调度算法,那么需要交换 100 次。多级队列是为这种需要连续执行多个时间片的进程考虑,它设置了多个队列,每个队列时间片大小都不同,例如 1,2,4,8,…。进程在第一个队列没执行完,就会被移到下一个队列。这种方式下,之前的进程只需要交换 7 次。每个队列优先权也不同

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值