嵌入式系统---多核cpu
多核是多微处理器核的简称,是将两个或更多的独立处理器封装在一起,集成在一个电路中。多核处理器是单枚芯片(也称为硅核),能够直接插入单一的处理器插槽中,但操作系统会利用所有相关的资源,将它的每个执行内核作为分立的逻辑处理器。通过在多个执行内核之间划分任务,多核处理器可在特定的时钟周期内执行更多的任务。
多核与多cpu相比,可以很好的降低系统的功耗和体积。
在多核技术中,计算机可以同时执行多个进程;在操作系统中,多个线程也可以并发执行
smp\bmp\mp这几种处理器系统硬件结构都有差异,采用哪种结构需要考虑这个因素的。
计算机组成与体系结构---CISC、RISC
计算机体系是一个硬件和软件的综合体,可以把它看作是按功能划分的多级层次结构,这种结构的划分,有利于正确理解计算机系统的工作过程,明确软件、硬件在系统中的地位和作用。
- 硬联逻辑级:这是计算机的内核、由门、触发器等逻辑电路组成。
- 微程序级,这一级的机器语言是微指令集,程序员用微指令编写的微程序一般直接由硬件执行
- 传统机器级,这一级的机器语言是该机的指令集,程序员用机器指令编写的程序可以由程序进行解释
- 操作系统级,从操作系统的基本功能来看,一方面它要直接管理传统机器中的软硬件资源,另一方面它又是传统机器的延伸。
- 汇编语言级,这一级机器语言是汇编语言,完成汇编语言翻译的程序称为汇编程序
- 高级语言级:这一级的机器语言是各种高级语言,通常用编译程序来完成高级语言翻译工作
- 应用语言级:这一级是为了使计算机满足某种用途而专门设计的,因此,这一级的机器语言就是各种面向问题的应用语言。
计算机系统基础---流水线
- 流水线周期:3t
- 流水线的吞吐率为:指令条数/流水线执行时间。
- 计算流水线执行时间的理论公式是:第一条指令顺序执行时间+(指令条数-1)*周期。
- 流水线最大吞吐率流水线周期的倒数
- 流水线加速比=不用流水线的执行时间/使用流水线的执行时间
多级存储结构:
- 按内容存取,是相联存储的最基本的特点,Cache是一种非常经典的相联存储器。
- Cache与主存之间的映射采用的硬件方式完成的,其目的是提高速度。
计算机组成与体系结构---Cache
- 随机算法(Random algorithm RAND)。这是最简单的替换算法。随机法完全不管Cache块过去、现在以及未来的使用情况,简单地根据一个随机数,选择一个块替换掉
- 先进先出(First In First Out FIFO)算法。按调入Cache的先后决定淘汰的顺序,即在需要更新时,将最先进入Cache的块作为被替换的块。这种方法要求为每块做一个记录,记下他们进入cache先后的顺序。这种方法容易实现,而且系统开销小。其缺点是可能会把一些需要经常使用的程序块(如循环程序)替换掉。
- 近期最少使用(Least Recenlty Used LRU)算法。LRU算法是把cup近期最少使用的块作为被替换的块。这种替换方法需要随时记录cache中各块的使用情况,以便确定那个块是近期最少使用的块。LRU算法相对合理,但是实现起来比较复杂,系统开销大。通常需要对每一块设置一个称为“年龄计数器”的硬件或软件计算器,用以记录其被使用的情况。
- 最不经常使用页置换(Least Frequently used LFU)算法,要求在页面置换时置换引用次数最小的页,因为经常使用的页应该有一个较大的引用次数。但是有些页在开始使用次数很多,但以后就不再使用,这类页将会长时间留在内存中,因此可以将引用计算寄存器定时右移一位,形成指数衰减的平均使用次数。LFU的复杂度以及计数器规模都比LRU大,LRU只关注近期访问情况,而LFU会统计累计访问次数作为淘汰的依据。
操作系统知识---设备管理
访问一个数据库的时间应为:寻道时间+旋转延迟时间+传输时间。
根据题意:每块旋转延迟时间以及传输时间共需要102ms,磁头从一个磁道移动到另一个磁道需要10ms,但是逻辑上相邻的数据库的平均距离是10个磁道,即读完一个数据块到下一个数据库的寻道时间需要100ms。即访问一个数据库的时间应该是202ms。因此读取100块文件共需要100*202=20200;
计算机系统基础---磁盘管理:
当进程请求读磁盘时,操作系统先进行移臂调度,再进行旋转调度。然后再根据扇区号从小到大;
计算机组成与体系结构---磁盘存储
系统磁盘优化方面的基础知识:系统读记录为33/11=3ms。第一种情况,系统读出并处理记录R0之后,将转到记录R2的开始处,所以为了读出记录R1,磁盘必须再旋转一圈,需要33ms(30ms到R1起始位置,3ms读完R1,刚好转一圈的时间)这一,处理11个记录的总时间为366ms,因为处理前10个记录(即R0;;;R9)的时间为10*(33+3)=360ms,读记录R10以及处理记录R10时间为6ms,所以处理11个记录的总时间=360ms+6ms=36ms。
第二种情况:若对信息进行分布优化的结果,当读出记录R0并记录结束后,磁头刚好转至R1记录的开始处,立即就可以读出R1并且处理,因此处理11个记录的总时间为:11*(3读记录+3处理记录)=66ms
系统配置与性能评价---性能评估
- 真实程序、核心程序、小型基准程序、合成基准程序。评测准确程度依次递减。其中评测准确度最高的是真是程序。把应用程序中用的最多、最频繁的那部分核心程序作为评估计算机系统性能的标准程序,称为基准测试程序。基准程序法是目前一致承认的测试系统性能的较好的方法。
操作系统---死锁以及银行家算法
系统不会发生死锁的条件是:系统资源总数>=进程数*(每个进程所需资源数-1)+1
带入公式:系统资源总数>=5*(3-1)+1,也就是说系统资源总数至少要等于11才能让系统避免死锁。
操作系统---进程资源图
在图中R1与R2代表的是资源,P1-P3代表进程。从资源指向进程的箭头代表有资源分配给进程,而从进程指向资源的箭头代表进程要申请这个资源(注意,每个箭头只是代表一个资源或资源请求)。例如,R1一共有2个资源,并且将这2个资源中的1个分给了P1,另一个分配了P3,P2此时向R1申请1个资源。
下面开始分析阻塞点,所谓的阻塞点就是从这个进程开始执行,会让程序陷入死锁,执行不了。
- 尝试先执行P1:P1向R2申请了一个资源,R2一共有3个资源,已经分配了2个,还剩余1个,所以他能满足P1的申请给P1分配资源。P1分配到资源之后可以执行完毕,并释放自己占用的所有资源。接下来的P2与P3都能执行完毕,所以P1是非阻塞点。
- 尝试先执行P2:P2向R1申请了一个资源,R1一共2个资源,并全部分配出去了,所以目前P2的资源申请无法被满足,既然无法被满足,自然不能执行,也就是阻塞点了。
- 尝试先执行P3:P3向R2申请1个资源,R2一共有3个资源,已经分配了2个,还剩余1个,所以他能满足P3的申请给P3分配资源。P3分配到资源之后可以执行完毕,并释放自己占用的所有资源。接下来的P1与P2都能执行完毕,所以P3是非阻塞点。
嵌入式系统---嵌入式处理器
- 哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址,独立访问。
- 与两个存储器相对应的是系统的4条总线:程序和数据的数据总线、地址总线。这种分离的程序总线和数据总线可以允许在一个机器周期内同时获得指令字(来自程序存储器)和操作数(来自数据存储器),从而提高了执行速度,提高了数据的吞吐率。又由于程序和数据存储在两个分开的物理空间中,因此取地址和执行能够完全分开重叠。中央处理器首先到程序指令存储器中读取程序指令的内容,解码后得到数据地址,再到响应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度。
- 哈佛结构能够在一个机器周期内同时获得指令字与操作数,但是做不到一个机器周期内多次访问存储器。
嵌入式系统---总线与接口
IEEE-1394通常可以以树形或菊花链形拓扑结构连接63台设备,这63台设备对外可以连接其他总线,现在每个1394设备支持1023条桥接总线与其他节点进行连接,那么此时最多可以互连63*1023=64449个节点。
嵌入式系统:
- 根据系统对时间的敏感度可将嵌入式系统分为:嵌入式系统、嵌入式实时系统、强实时系统、弱实时系统。
- 从安全性要求看,嵌入式系统可分为:安全攸关系统、非安全攸关系统
嵌入式操作系统的特点:
嵌入式操作系统运行在嵌入式智能芯片环境中,对整个智能芯片以及它所操作、控制的各种部件装置等资源进行统一协调、处理、指挥和控制。
- 微型化。从性能和成本角度考虑,希望占用资源和系统代码量少,如内存少,字长短、运行速度有限、能源少(用微小电池)
- 可定制:从减少成本和缩短研发周期考虑,要求嵌入式操作系统图能够运行在不同的 微处理器上,能针对硬件变化进行结构与功能上的配置,以满足不同的应用需求
- 实时性:嵌入式操作系统主要应用于过程控制、数据采集、传输通信、多媒体信息以及关键要害领域需要迅速响应的场合,所以对实时性的要求较高
- 可靠性:系统构件、模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和防故障措施
- 易移植性:为了提高系统的易移植性,通常采用硬件抽象层(HardWare Abstraction Level HAL)和扳级支持包(Board Support Package BSP )的底层设计技术
嵌入式系统---进程调度
- 对于多核cpu,优化操作系统任务调度算法是保证效率的关键。一般任务调度算法有全局队列调度和局部队列调度。
-
- 全局任务调度算法,是指操作系统维护一个全局的任务等待队列,当系统中有一个cpu核心空闲时,操作系统就从全局任务等待队列中选取就绪任务开始开始在此核心上执行。这种方法的优点是cpu核心利用率高。
- 局部任务调度算法:是指操作系统为每个cpu内核维护一个局部的任务等待队列,当系统中有一个cpu内核空闲时,便从该核心的任务等待队列中选取恰当的任务执行,这种方法的优点是任务基本上无需在多个cpu核心间切换,有利于提高cpu核心局部cache命中率。
- 目前多数多核cpu操作系统采用的是基于全局队列的任务调度算法
数据库系统---数据库模式
- 数据库通常采用三级模块结构,其中,视图对应外模式、基本表对应模式、存储文件对应的内模式
- 数据的独立性是由DBMS的二级映像功能来保证的,数据的独立性包括数据的物理独立性和数据的逻辑独立性。
-
- 数据的物理独立性:数据库的内模式发生改变时,数据的逻辑结构不变。为了保证程序能够正确运行,需要通过修改概念模式与内模式的映像。
- 数据的逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,数据的逻辑结构发生变化后,用户程序也可以不修改。但是,为了保证应用程序能够正确运行,需要修改外模块与概念模式之间的映像。
索引的写入修改了数据库的物理结构,而不是简单的逻辑设计。内模式规定了数据在存储介质上的物理组织方式,记录寻址方式。
两阶段提交写意思受如下两条规则的支配:
- 只有一个参与者撤销事务,协调者就必须做出全局撤销决定。
- 只有所有参与者都同意提交事务,协调者才能做出全局提交的决定。
数据库系统---关系代数
自然连接,以左侧为主、去除重复列
数据库系统---规范化理论
- 解决这类问题,使用图示法比较合适,以下是用图示法的方式画出的图:
A与D是入度为零的节点,他们一定是候选键的组成部分。但是仅有A与D还不能充当候选键,所以要加入其他属性;加入B之后,ABD能遍历全图,能充当候选键;加入C之后,ACD也能遍历全图,所以ABD与ACD都是候选键。
求出候选键之后,包含任意候选键中的所有属性都是主属性,所以ABCD都是主属性
数据库系统---数据库安全控制
SQL中使用grant 和revoke语句向用户授予或收回对数据的操作权限。
grant语句向用户授予权限,revoke语句收回已经授予用户的权限。
grant语句一般格式为:
grant《权限》on《对象名》to《用户》with grant option
with grant option的意思是:权限赋予、取消是级联的,如将with grant option用于对象授权时,被授予的用户也可把次对象权限授予其他用户或角色,但是管理员收回with grant option授权的用户对象权限时,权限会因传播而失效。而with public 是可将权限赋给所有的用户
数据库系统---并发控制
- 完整性是指数据库的正确性和相容性,是防止合法用户使用数据库时向数据库加入不符合语义的数据。保证数据是正确的,避免非法的更新。而题干中的并发控制就是指在多用户共享的系统中,许多用户可能同时对同一数据进行操作,所以要避免非法的更新,保证完整性不被破坏。
数据控制功能包括对数据库中数据的安全性、完整性、并发性和恢复的控制。其中:
- 安全性(security)是指保护数据库不受恶意访问,即防止不合法的使用所造成的数据泄露、更改或破坏。这样,用户只能按规定对数据进行处理,例如,划分了不同的权限,有的用户只能有读取数据的权限,有的用户有修改数据的权限,用户只能在规定的权限范围内操纵数据库。
- 完整性(integrality)是指数据库正确性和相容性,是防止合法用户使用数据库时向数据库加入不符合语义的数据,保证数据库中的数据是正确的,避免非法的更新。
- 并发控制(concurrency control)是指在多用户共享的系统中,许多用户可能同时对同一数据进行操作。DBMS的并发控制子系统负责协调并发事务的执行,保证数据库的完整性不受破坏,避免用户得到不正确的数据。
- 故障恢复(recovery from failure)数据库中的4类故障时事务内部故障、系统故障、介质故障以及计算机病毒。故障恢复主要是指恢复数据库本身,即在故障引起数据库当前状态不一致后,将数据库恢复到某个正确状态或一致状态。恢复的原理非常简单,就是要建立冗余数据(redundancy)
计算机网络---tcp、ip协议族
电子邮件协议通常包括smtp和pop3,其中smtp是电子邮件发送协议,pop3是电子邮件接收协议
- mime是多用途互联网邮件扩展,它是一个互联网标准,扩展了电子邮件标准,使其能够支持;非ascii字符文本;非文本格式附件(二进制、声音、图像等);由多部分组成的消息体;包含非acsii字符的头信息(header infromation)
- pop3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等)。不会反馈到服务器上面,比如说通过客户端收取了邮件中的1封邮件并且移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的。
- IMAP客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。
DNS协议的作用:将域名(网址)解析为IP地址,这个过程叫做DNS域名解析。客户端向DNS服务器发送域名查询请求;然后DNS服务器告知客户机Web服务器的Ip地址;最后客户机与Web服务器进行通信。
ARP协议是将IP地址解析为MAC地址;
目前没有明确的协议可以将主机名解析为IP地址。