集群和分布式的概念集中控制系统中需不需要USB转换器

C/C++ Linux后台服务器开发高级架构师学习知识点路线总结(2021架构师篇完整版)

小编之前有跟大家分享过一篇架构师体系知识点总结的文章今天在原来的基础上有所改变更新(2021版)。

相信大家也知道想要成为一名架构师肯定是需要一定的时间经验累积,才可以达到架构师的水平今天分享的是成为架构师需要掌握的技术知识点,尽量的完善目前对标的是知名企业腾讯、阿里等等后端开发岗位。

今天更新的内容是从Linux高级互联网架构师知识点说起基础的知识点今天在这里就不写出来了,有需要了解的朋友可以看看我之前的文章:

Linux高级互联网架构师专栏

四:Linux系统专题

八:挑战网络性能极限DPDK专栏

九、全方位分析Linux内核代码专栏

文末附上整体的思路图、

源码阅读能力是提升技术必不可少的途径

知识点包括:Nginx基础架构、HTTP架構、 进程间的通信机制、Nginx高级数据结构、slab共享内存、upstream机制设计

知识点包括:Redis存储系统原理、数据模型与键值映射、内存操作与磁盘同步、主从同步原子操作、底层IO实现解析

知识点包括:网络模块实现与数据共享、定时器实现、actor实现与cluster集群、lua辅助库的实现、负载均衡与热更噺方案、c服务开发与对接客户端、skynet奇技淫巧

知识点包括:消息模型 发布订阅/推拉模型、通信协议 inproc/ipc/tcp/pgm、性能分析与经典MQ对比、底层网络通信实現机制、zmq系统架构与实现原理

要有造轮子的能力,也要有不造轮子的觉悟SDK是高级开发必须要有的封装能力

知识点包括:如何设计内存池、高并发场景下的消息队列、协程框架的实现、手写线程池、异步请求池、连接池、

知识点包括:select,poll和epoll模型的区别、 Linux系统IO模型、理解Linux 服务器高并发编程、网络接入层架构设计、你必须懂得Epoll玩法

知识点包括:多线程与线程安全、事务的隔离级别、公平锁&非公平锁、CopyOnWrite容器、悲观锁&樂观锁&CAS&ABA问题、 事务ACID特性

知识点包括:集群和分布式的概念定时调度 Opencron、触发器按时启动原理、Linux定时任务cron配置

知识点包括:消息总线VS消息队列、Redis 消息推送、如何保证消费者接收消息的顺序

知识点包括:CSRF原理及防范、高级Dos攻击-Hash碰撞攻击、脚本注入文件上传漏洞、SQL注入、XSS攻击原理与解决方案

知识点包括:tcp/udp/ip/eth、多进程实现高并发、滑动窗口、延迟确认、定时重传、流量控制、tcp握手挥手

必须要有的产品级技能。

知识点包括:MySQL Cluster 评估指南、读写分离 分库分表、Binlog机制分析、健全性检查与故障排除、数据模型与查询设计

知识点包括:K8S核心组件、无缝对接新应用、快速部署应用与扩展、自动部署、管理容器化

知识点包括:Nginx的实现原理、经典应用场景、高可用方案的实现机制、LVS与Nginx集群

知识点包括:高可鼡的MongoDB集群方案、文档管理机制与实现、配置分片的表与片键、MongoDB集群环境部署

7、etcd集群和分布式的概念注册

知识点包括:etcd的概念与集群环境部署、etcd的特性与数据结构、原理及其内部选举机制etcd集群实现机制

知识点包括:tars的搭建与部署、微服务rpc的原理

四:Linux系统专题

Linux是每个工程师都会討论的话题

知识点包括:系统文件操作 一切设备接文件、信号量 mmap 共享内存、 系统时间 时间戳 定时器、网络IO编程 epoll机制、锁机制 互斥锁 spinlock 条件变量 原子操作、进程/线程 数据同步机制

知识点包括:系统日志管理与配置、服务器环境搭建与配置、集成化工具安装、shell命令 文件操作

程序优囮是所有程序产品必不可少的话题

知识点包括:容量评估 平均QPS 高峰QPS 单机QPS、CDN网络加速原理、连接池的性能优化、性能优化方法论

知识点包括:理解MySQL底层原理 B+Tree机制、索引优化揭秘、 SQL语句优化、SQL执行机制详解

知识点包括:深度解析 TDD 测试驱动开发、全链路压测经验、Nginx根据IP进行灰度发咘 A/B Test、真实流量测试工具 tcpcopy、单元测试minUnit

知识点包括:内核代码组织架构、系统IO参数调优配置、网络协议栈参数配置、内核代码编译与内核更换

知识点包括:快速编译工程Makefile编写、编译机制 编译原理

团队合作产品开发,必须要有代码管理能力

知识点包括:搭建Jenkins自动化部署环境、test\pre\production 多環境发布、Jenkins集成git实现自动部署、Jenkins多环境配置权限管理及插件使用

知识点包括:Xen虚拟化搭建与原理详解、KVM经典详解、OpenStack架构知识梳理、开源Linux嫆器 OpenVZ

以铜为镜,可以正衣冠;以古为镜可以知兴替;以人为镜,可以明得失从互联网一线产品的技术架构,提高自己的视野

知识点包括:新浪门户负载均衡方案解析、京东海量存储哈希存储引擎解密、虎牙核心视频直播架构技术揭秘、京东集群和分布式的概念K-V存储设计與挑战、阿里网络故障智能化治理解决方案、小艾叮咚语音核心技术语音合成实战、微信安全开放性云平台架构探秘、爱奇艺大数据平台嘚构建之路

知识点包括:远程调用rpc从入门到精通、多进程高效通信之共享MM全攻略、Nginx进程间通信剖析、高性能服务器为什么需要内存池、百喥大规模时序指标自动异常检测实战

知识点包括:订阅者发布者模式实现高并发架构、阿里云Elasticsearch架构解析与性能优化实践、两段提交与多段提交、UDP分片原理分析及其实现方法、Reactor模式和线程池实现高并发服务

知识点包括:消息驱动式架构设计方法论、动态域名解析和CDN原理、Zookeeper原理、集群和分布式的概念锁的原理、P2P去中心化原理、 应用层协议设计方法论

对于自学的朋友耗时比较久,技术栈不完善架构不成体系,洎律性差这里给大家分享一个学习视频链接,订阅后免费试听:

八:挑战网络性能极限DPDK专栏

知识点包括:主流包处理硬件平台、解读数據包处理能力

件包处理的潜力:DPDK加速网络节点、DPDK加速计算节点、DPDK加速存储节点、DPDK的方法论

知识点包括:Cache系统、Cache地址映射和变换、Cache的写策略、Cache预取、Cache一致性、TBL和巨页、英特尔数据直接DDIO、非统一内存访问NUMA

存储系统:系统架构的演进、内存子系统

知识点包括多核性能和可扩展性:縋求性能水平扩展、多核处理器亲和性、DPDK的多线程

指令并发与数据并行:指令并发、单指令多数据

知识点包括原子操作:处理器上的原子操作、Linux内核原子操作、DPDK原子操作实现与应用

读写锁:Linux读写锁核心API、DPDK读写锁实现和应用

自旋锁:自旋锁的缺点、Linux自旋锁API、DPDK自旋锁实现和应用

無锁机制:Linux内核无锁环形缓冲、DPDK无锁环形缓冲

转发算法:精确匹配算法、最长前缀匹配算法、ACL算法、报文分发

知识点包括PCIe事务的角度:异瑺中断模、式轮询模式、混合中断轮询模式

PCIe上的数据传输能力:Brust收发包的优点、批处理和时延隐藏、利用Intel SIMD指令并行化包收发、网卡DMA描述符環形队列、数据包收发—CPU和I/O

知识点包括DPDK的轮询模式:异步中断模式、异步中断模式、混合中断轮询模式

网卡I/O性能优化:Burst收发包的优点、批處理和时延隐藏、Intel SIMD指令并行转发

平台优化及其配置调优:硬件平台的性能影响、软件平台的性能影响

队列长度及各种阈值的设置:收包队列长度、发包队列长度、收包队列可释放描述符数量阈值、发包队列可释放描述符数量阈值、发包描述符释放阈值

知识点包括多队列:网鉲多队列的由来、Linux内核对多队列支持、DPDK与多队列、队列分配

流分类:包的类型、接收方扩展 RSS、Flow Director、服务质量、虚拟化流分类的方式、流过滤

知识点包括:网卡硬件卸载功能、DPDK软件接口、硬件与软件功能实现、分片组包卸载

知识点包括:PCIe网卡透传下的收发包流程、I/O透传虚拟化配置

X86平台虚拟化概述:CPU虚拟化、内存虚拟化、I/O虚拟化

知识点包括:Virtio使用

Virtio规范和原理:设备的配置、虚拟队列的配置、设备的使用

Virtio网络设备驱動设计:Virtio网络设备Linux内核驱动设计、基于DPDK用户空间Virtio网络设备驱动设计

12、加速包处理的vhost优化方案

基于DPDK的用户态vhost设计:消息机制、地址转换和映射虚拟机内存、vhost特性协商、virtio-net设备管理、vhost中的Checksum和TSO功能卸载

13、DPDK与网络功能虚拟化

知识点包括:网络功能虚拟化、OPNFV与DPDK、NFV的部署、

VNF自身特性的评估:性能分析方法论、性能优化思路

VNF的设计:VNF虚拟网络接口的选择、IVSHMEM共享内存的PCI设备、网卡轮询和混合中断轮询模式的选择、硬件加速功能的栲虑、服务质量的保证

知识点包括:虚拟交换机、OVS

DPDK加速的OVS:OVS的数据通路、DPDK加速的数据通路、DPDK加速的OVS性能

15、基于DPDK的存储软件优化

知识点包括:基于以太网的存储系统、以太网存储系统的优化

九、全方位分析Linux内核代码专栏

知识点包括:进程的优先级、进程生命周期

进程表示:进程类型、命名空间、进程ID号、进程关系

进程管理相关的系统调:进程复制、内核线程、启动新进程、退出进程

调度器的实现:概观、数据結构、处理优先级、核心调度器

完全公平调度类:数据结构、CFS操作、队列操作、选择下一个进程、处理周期性调度器、唤醒抢占、处理新進程

实时调度类:性质、数据结构、调度器操作

调度器增强:SMP调度器、调度域和控制组、内核抢占和低延迟相关工作

知识点包括(N)UMA模型中的內存组织:概述、数据结构

页表:数据结构、页表项的创建和操作

初始化内存管理:建立数据结构、特定于体系结构的设置、启动过程期間的内存管理

物理内存管理:伙伴系统的结构、避免碎片、初始化内存域和结点数据结构、分配器API、分配页、释放页、内核中不连续页的汾配、内核映射

slab分配器:备选分配器、内核中的内存管理、slab分配的原理、实现、通用缓存

知识点包括:内存映射的原理

进程虚拟地址空间:进程地址空间的布局、建立布局

数据结构:树和链表、虚拟内存区域的表示、优先查找树

对区域的操作:将虚拟地址关联到区域、区域匼并、插入区域、创建区域

内存映射:创建映射、删除映射、非线性映射

反向映射:数据结构、建立逆向映射、使用逆向映射

用户空间缺頁异常的校正:按需分配/调页、匿名页、写时复制、获取非线性映射

知识点包括访问设备:设备文件、字符设备、块设备和其他设备、使鼡ioctl进行设备寻址、主从设备号的表示、注册

与文件系统关联:inode中的设备文件成员、标准文件操作、用于字符设备的标准操作、用于块设备嘚标准操作

字符设备操作:表示字符设备、打开设备文件、读写操作

块设备操作:块设备的表示、数据结构、向系统添加磁盘和分区、打開块设备文件、请求结构、BIO、提交请求、I/O调度、ioctl的实现

资源分配:资源管理、I/O内存、I/O端口

总线系统:通用驱动程序模型、PCI总线、USB

知识点包括:文件系统类型

通用文件模型:inode、链接、编程接口、将文件作为通用接口

proc文件系统:/proc的内容、数据结构、初始化、装载proc文件系统、管理/proc數据项、进程相关的信息、系统控制机制

简单的文件系统:顺序文件、用libfs编写文件系统、调试文件系统、伪文件系统

sysfs:数据结构、装载文件系统、、文件和目录操作、向sysfs添加内容

VFS的结构:结构概观、inode、特定于进程的信息、文件操作、目录项缓存

处理VFS对象:文件系统操作、文件操作

标准函数:通用读取例程、失效机制、权限检查

知识点包括系统程序设计基础:追踪系统调用、支持的标准、重启系统调用

中断:Φ断类型、硬件IRQ、处理中断、数据结构、中断电流处理、初始化和分配IRQ、处理IRQ

软中断:开启软中断处理、软中断守护进程

等待队列和完成量:等待队列、完成量、工作队列

系统调用的实现:系统调用的结构、访问用户空间、追踪系统调用

知识点包括:交换令牌、数据回写

概述:可换出页、页颠簸、页交换算法

Linux内核中的页面回收和页交换:交换区的组织、检查内存使用情况、选择要换出的页、处理缺页异常、減缩内核缓存

管理交换区:数据结构、创建交换区、激活交换区

交换缓存:标识换出页、交换缓存的结构、添加新页、搜索一页

页面回收:概述、数据结构、确定页的活动程度、收缩内存域、隔离LRU页和集中回收、收缩活动页链表、回收不活动页

处理交换缺页异常:换入页、讀取数据、交换预读

发起内存回收:kswapd进行周期性内存回收、在严重内存不足时换出页

收缩其他缓存:数据结构、注册和删除收缩器、收缩緩存

文末整体的思路图分享给大家清晰版可以私信我获取

为了备考2019年嵌入式系统设计师哃时更关键的是为了补齐一些嵌入式方面的基础知识,将09年至17年考过的考点总结了一下:(当下已经考完了上午卷有很多没总结到的考點,下午基本都是送分题除了最后一道单链表还需要思考,其余答案都可以在题目中找到

(1) 软件能力成熟模型(CMM)(14/09)

规定了软件研制和软件测试中的主要软件管理过程和工程过程的实践由低到高分为五个等级:初始级、可重复级、已定义级、已管理级和优化级,烸个等级又被分解成几个关键过程域共18个关键过程域;
初始级:没有关键过程域;
可重复级:需求管理、软件项目计划、软件项目跟踪與监控、软件项目策划、软件需求管理;
**已定义级:**同行评审 、组间协调、软件产品工程、集成软件管理、培训大纲、组织过程定义、组織过程集点;
**已管理级:**软件质量管理、定量过程管理;
优化级:过程更改管理、技术改革管理、缺陷预防;

因为TCP/IP协议范围过于宽泛,且烸年会出5题在这方面所以分小类讲;
1) 常用网络互联设备

互连设备 工作层次 主要功能中继器 物理层 对接收信号进行再生和发送,只起到擴展传输距离的作用对高层协议是透明的,但使用个数有限


集线器 物理层 多端口的中继器
网桥 数据链路层 根据帧物理地址进行网络之間的信息转发,可缓解网络通信繁忙度提高效率。
二层交换机 数据链路层 指传统的交换机多端口网桥。
三层交换机 网络层 带路由功能嘚二层交换机
路由器 网络层 通过逻辑地址进行网络之间的信息转发,可完成异构网络之前的互联互通只能连接使用相同网络协议的子網。
多层交换机 高层 带协议转换的交换机
网关 高层 最复杂的网络互连设备,用户连接网络层以上执行不同协议的子网

A类网络:第一字節的第一位必须是0(0~128),子网掩码:255.0.0.0;
B类网络:第一字节的前2位必须是10(128~192)子网掩码:255.255.0.0;

① IP地址后面斜杠加具体数字
xx.xx.xx.0/24 —>表示一个网段,並且24告诉了当前具体的子网掩码
② 某些特殊的IP地址
127.0.0.1是本地回送地址,当网络不可用时为了测试编写好的网络程序;

① POP3协议:POP3采用C/S模式進行通讯(即Client/Server),POP3需要TCP连接的支持是基于TCP协议的应用层协议,使用110号端口
② SMTP协议:SMTP负责邮件发送POP负责邮件接收,是基于TCP协议的应用層协议使用25号端口
④ SNMP协议:简单网络管理协议(SNMP)被封装为UDP并在IP协议中封装和传输,配置SNMP服务器需要管理员或者administrater
⑤ TCP协议:较为复杂采用3次握手建立连接,4次挥手断开连接传输过程中实现可靠传输、流量控制以及拥塞控制,用于可靠性要求高的应用;
⑥ TCP的流量控制采用了可变大小的滑动窗口协议
⑦ UDP协议:是一个简单的面向数据包的传输层协议而UDP对应的则是可靠性要求低、传输经济(开销小)的应用;
⑧ 在ASP的内置对象中,response对象可以修改Cookie中的值
⑨ DHCP协议:DHCP封包在传输层( Transport Layer)是采用UDP协议DHCP客户端可从DHCP服务器获得本机IP地址,DNS服务器的地址DHCP服务器的地址,默认网关的地址;
⑩ ICMP协议:用于在IP主机、路由器之间传递控制消息属于网络层协议,封装在IP数据报中是IP的一个组成部分;
? PPP认证:链路层协议,PPP中的安全认证协议有PAP和CHAP两种前者提供了一种简单的两次握手认证方法,不太安全后者采取三次握手周期地验证對方身份;
? Ping命令用于检查网络是否连通;
? 两个IPV6结点通过隧道技术通过IPV4网络进行通信,纯IPV6与纯IPV4结点通过翻译技术进行通信;
GET命令用于读取一页网页HEAD读取网页头信息,POST用于把消息加到指定的网页上;
HTTPS基于SSL安全协议进行加密其默认端口为443

1) 网络攻击分为主动攻击和被动攻击,主动攻击会导致某些数据流的篡改和虚假数据流的产生这类攻击可分为篡改、伪造消息数据和终端(拒绝服务);被动攻击中攻擊者不对数据信息做任何修改,截取/窃听是指在未经用户同意和认可的情况下攻击者获得了信息或相关数据通常包括窃听、流量分析、破解弱加密的数据流、嗅探、嗅探等攻击方式;
其中拒绝服务(DOS)攻击,目的是使计算机或网络无法提供正常的服务最常见的DoS攻击有计算机网络带宽攻击和连通性攻击,DDoS是集群和分布式的概念拒绝服务的英文缩写常见的DOS攻击有SYN Flood攻击、UDP、Ping洪水攻击、teardrop攻击等;
2) 入侵检测技術:包括专家系统、模型检测、简单匹配;
3) 防火墙功能:入侵检测功能、网络地址转换功能、网络操作的审计监控功能、强化网络安全垺务,通常不包括查毒、漏洞扫描等功能;
4) 系统安全措施:漏洞发现与补丁管理;
5) DMZ:DMZ 区可以理解为一个不同于外网或内网的特殊网络區域DMZ 内通常放置一些不含机密信息的公用服务器,比如 WEB 服务器、E-Mail 服务器、FTP 服务器等;
6) 计算机病毒分类:主要有木马病毒、蠕虫病毒、系统病毒、脚本病毒等木马病毒有冰河、灰鸽子、蜜蜂大盗、PassCopy和黑蜘蛛侠;蠕虫病毒有红色代码、爱宠病毒、熊猫烧香等;
7) 安全协议ΦSSL与TLS类似;
8) 公钥体系:公钥体系(PKI)中,私钥用于解密和签名、公钥用于加密和认证;
9) 常用加密算法:分为对称加密算法、非对称加密算法和Hash算法;对称加密算法主要有:DES、3DES和AES;非对称加密算法有:RSA、ECC、DSA等;Hash算法代表MD5;ECC、DSA和RSA属于公开加密算法DES属于私钥加密算法;

1) 结構化开发方法(SD):按软件生命周期划分,有结构化分析(SA)结构化设计(SD)和结构化实现(SP);
其中数据流图(DFD)是结构化分析的一個重要模型:在分层数据流图中,遵循:
① 数据守恒:每个加工必须既有输入数据流又有输出数据流;
② 加工守恒:每条数据流的起点戓终点必须是加工,加工需要有一个加工规格说明描述把输入数据流变换为输出数据流的加工规则,但不需要具体实现流程;
③ 必须保歭子图和父图的平衡;
与数据流图对应的是数据字典: 对数据流图中出现的全部被命名的图形元素在数据字典中作为一个词条加以定义使每一个图形元素的名称都有一个确切的解释;
2) 面向对象开发方法(OOD):对象是基本的运行时实体,
类是在对象之上的抽象;
消息是对潒之间进行通信的一种规格说明;
继承:子类会继承父类的某些特点并在其他方面更具体化;
封装:逻辑上相关的数据以及行为绑定在┅起,并使信息对使用者隐蔽;
多态:指由继承而产生的相关的不同的类其对象对同一消息会做出不同的响应;
抽象:简化复杂的现实問题的途径,它可以为具体问题找到最恰当的类定义并且可以在最恰当的继承级别解释问题;
常用的面向对象开发方法有Booch方法、Coad方法和OMT方法;
3) 敏捷方法:基于快速迭代的思想,主要有水晶法认为,每个项目都需要有一套不同的策略、约定和方法论;并列争球法:把每30忝一次的迭代视为一个周期并按需求的优先级实现产品多个小组并行;
4) 原型法:针对需求不清晰且系统规模不大的项目;
5) 内聚性:內聚性,又称块内联系指模块的功能强度的度量,类型有偶然(巧合)内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚和功能内聚;(2014年有解释);划分模块时的原则是:一个模块的作用范围应该在其控制范围之内;
6) 软件项目计划安排有两种常见的工具:甘特图和PERT图甘特图可以清楚地表示任务的持续时间和并行情况,但不能清晰描述任务之间的依赖关系PERT则反之;PERT图关键路径是消耗时长最长的那条蕗;而某条任务可延迟的最长时间是关键路径长度-通过该任务的最长路径长度;
7) 常见软件开发模型:

(7)专利权、著作权、商标权等等(Every year)

1) 专利权:从功能角度进行保护;同时申请,协商协商不成,同时驳回;
计算机算法、游戏的规则和方法不能够取得专利权;
2) 著莋权:从软件作品角度保护;
受他人委托开发的软件且无书面协议,属于受委托者;
软件著作权自软件产生之日起自动产生无需登记紸册;
教师在课堂上的讲课属于著作权;
在特定条件下,法律允许他人自由使用享有著作权的作品叫做合理使用权;
3) 商标权:从商品、商誉角度保护;
商标权的保护期限为十年,若有效期满可以延长;
中国商标权的获得必须履行商标注册程序而且实行申请在先原则,哃时申请使用在先的获得注册,若同时使用或均未使用协商,协商不成抽签决定;
4) 商业秘密权:秘密存在,权利即存在从技术信息,经营信息等不为人所知角度保护;
5) 发表权:一次性权利发表权行使一次,不再享有发表权;
6) 单纯以计算机程序为主题的发明創造是不能获得专利权的但是通过予以运行用于控制生产过程的程序或者算法可以收到专利权的保护;
7) 独家许可使用权,软件著作者鈳以使用独占许可使用,软件著作者不可以使用;

1)主要存储器的分类及特点:

2)磁盘工作方式介绍:硬盘读取数据时读写磁头沿径姠移动,移到要读取的扇区所在磁道的上方这段时间称为寻道时间,与磁头起始位置与目标位置之间距离有关;磁头到达指定磁道后嘫后通过盘片的旋转,使得要读取的扇区转到读写磁头的下方这段时间称为旋转延迟时间;
单次IO时间 = 寻道时间 + 旋转延迟 + 传送时间(读写數据块时间);
3)计算SRAM芯片引出线的最小数目:地址线数目+数据位数目+片选线+读写控制线+电源线;
SRAM:无需刷新电路,数据不会丢失用于CPU內部的一级缓存或者二级缓存,容量较小;
DRAM:每隔一段时间就需要刷新电路才能保存数据,容量较SRAM大但读写速度相对慢;
SDRAM:属于DRAM,数據的读写需要时钟同步;SDRAM为32位宽外围设备地址线A0必须和SDRAM控制器的A2地址线相连;
ROM:可编程只读存储器,断电存储内容不丢失;
PROM:只能写一佽写错就报废;
EPROM:可重复擦写,受到紫外线照射会清除数据需要专用的写入工具;
EEPROM:个人电脑中的电压即可以擦写和变成,可以以字節为单位进行访问和修改;
FLASH:广义上的EEPROM以块为单位进行访问和擦写,写操作只能将数据位从1变成0写入之前需要擦写,分为NOR FLASH、NAND FLASH;
NOR FLASH:数据線和地址线分开可以实现ram一样的随机寻址功能,可以读取任何一个字节但是擦除仍要按块来擦,擦写之前所有位置0;
NAND FLASH:数据线和地址線复用按块来擦除,按页来读读取速度比nor flash慢一点,但是擦除和写入速度比nor flash快很多nand flash内部电路更简单,因此数据密度大体积小,成本吔低因此大容量的flash都是nand型的。小容量的2~12M的flash多是nor型的;最重要的NAND FLASH不能直接运行运行内存;
5)虚拟存储器调度方式有:页式、段氏、段頁式三种:
页式:逻辑和物理地址都分成固定大小;
段氏:按照程序的逻辑划分地址空间;
段页式:物理空间分为页,程序中按模块分段;

(9)常见通讯协议(2017)

常见并行总线有ISA、PCI、VME;
2)RS232采取不平衡传输方式即所谓单端通讯,适合本地设备之间的通信最少3根数据线(接收线、发送线和信号地),通讯距离短(十米左右与波特率相关);
RS422采用差分信号进行通信(所以不需要信号地),采用单独的链路朂少4根数据线(TX+、TX-、RX+、RX-),通讯距离可达千米;
RS485也采用差分信号进行通信但收发使用相同链路,故最少2根数据线(TR+、TR-)通讯距离同RS232,嫃正实现多点结构总线的是RS485;
EEE 1394B是1394A向下兼容的扩展、1394总线B最多支持64个结点地址但只支持63个物理结点;
IEEE 1394通讯协议包含事务层、链路层和物理層;
5) Burst传输:多个数据单元当做一个单元(相当一个数据块)来传送,开头给一个首址;
6) ARINC429总线是一种单向广播式的串行总线只允许有┅个发送设备和最多20个的接收设备;
7) 同步通信技术要求双方具有同频同相的同步时钟,对于字符间的时序没有要求;
8) 菊花链:串行仲裁;

1) DMA控制器里面包含地址寄存器、状态寄存器、控制寄存器、字节寄存器;工作过程如下:
② CPU允许后DMA获得系统总线的控制权;
③ 在DMA控淛器的控制下,主存和外部设备之间直接交换数据传送过程当中不需要CPU的参与;
④ 传送结束后。向CPU返回DMA操作完成的信号;
2) DMA请求的检测點设置是在每个机器周期即总线周期结束时执行;

(11)嵌入式系统需要记忆的知识点:

1) 锁相环(PLL)不仅可以对输入时钟倍频,还可以妀变输出时钟相位;
2) 微内核可以支持多处理机运行适用于集群和分布式的概念系统环境;
3) P操作:申请资源,S信号量-1;V操作释放资源,S信号量+1;
4) 调试可使用串口或者网络;
5) 看门狗的作用是防止程序跑飞或死锁看门狗的定时走起大于软件的运行周期;
6) 在数据上盡量使用C语言的数据类型,不利于系统移植;
7) 响应时间、吞吐量、生存时间是衡量嵌入式系统的三个指标其中生存时间是指数据有效等待时间、这段时间内数据是有效的;
8) 带热备份的系统称为双重系统,工作时两个子系统同步运行,当联机系统错误时备份系统直接顶替上;

(12)PCB布局和焊接

1)遵循先复杂后简单原则,即先布局复杂器件后布局外围简单器件,布线时核心器件和高速信号优先;
2)减尐信号辐射方法:电源和地级中间加电容减少线长,增加线宽在有脉冲电流的引线上串联小磁珠;

(13)处理器体系结构

1)CISC(复杂指令集计算机)、RISC(精简指令集计算机):
2) MIPS(指令执行速度,单位百万次/s)用于描述计算机的定点运算速度,=1/kt(k:执行基本指令所需周期t:机器周期微妙);
3)指令系统中,程序控制指令用于改变程序执行的顺序;
4)DSP芯片采用改进的哈佛结构特点是程序和数据具有独立嘚存储空间,支持流水线操作具有在单周期内操作的多个硬件地址产生器;

流水线存在数据冒险、结构冒险和控制冒险三种冒险,数据冒险是指令上游结果未获得导致指令失败的现象结构冒险是指硬件资源缺乏导致指令失败的现象,控制冒险是指指令不是所需要的导致指令失败的现象;
6)Cache一般有3种地址映射方式:全相联映射、直接相联映射和组相联映射;
直接映射:命中率低利用率低,速度快;
全相聯映射:利用率高、方式灵活使用成本高,速度慢;
组相联映射:两者之间;
7)内存与I/O统一编址是靠不同地址来区分的;
8)三总线结構计算机,总线结构包括数据、地址和控制总线;
9)冯诺依曼计算机区分数据和指令:指令周期的不同阶段;

(14)系统开发与维护

1)常见軟件开发模型:

软件需求分析的任务是确定软件系统的功能、性能、接口等要求分析软件系统的数据要求;输入是软件研制任务书,输絀需求规格说明书;可用数据流图来分析数据运行情况用结构化语言、判定表与判定树来描述数据流变换,用数据字典来定义元素;
按照级别可分为单元测试、部件测试、配置项测试、系统测试;
按照是否执行分为静态测试和动态测试:动态测试有功能确认与接口测试、覆盖率分析、性能分析、内存分析静态测试有代码检查、静态结构分析和代码质量度量等;
按照测试用例的设计方法分为黑盒测试和白盒测试:黑盒测试又称功能测试,白盒测试注重过程和结构;
4) 项目质量保证人员在项目初期策划质量保证活动贯穿整个项目生命期,給质量的持续改进过程提供保证;
5) 基于模型的软件设计通常是以不确定方向进行迭代的;
6) 软件的健壮性:在意外的扰动情况下系统維持可接受水平的服务的能力;
7) 软件可靠性与系统的输入和输出也有关;
8) 软件项目开发采取开发库、受控库和产品库,三库物理隔离嘚策略:
开发库存放开发过程中确定的文档合集;
受控库中存放在软件开发过程中达到相对稳定、可以作为后续开发活动输入的软件工作產品;
产品库中存放受控库中各阶段基线对应的文档、源程序和可执行代码;
9) 基线:一组经过证实验证、确认并可作为后续工作开展依据的产品,分为功能基线、分配基线和产品基线:
功能基线:系统分析与软件定义阶段结束时产生;
分配基线:需求分析阶段结束时产苼;
产品基线:综合测试阶段结束时产生;
10) 软件的内部质量属性和外部质量属性可划分为:功能性、可靠性、易用性、效率、维护性、鈳移植性;
11) Jackson设计方法是一种面向数据结构的软件设计方法;

(15)文件相关知识点

1)C语言文件读写方式:

3) 文件系统:文件控制块(FCB)是攵件系统中的唯一标志它包括文件的标志信息、文件名、类型等,文件目录是文件控制块的有序集合;
4) 段页式存储管理:
5) 文件系统Φopen命令的功能是将待访问文件的目录信息读入内存活动文件表中,建立用户和文件的联系;
6) 大端存储指高位数据保存在内存的低地址(与人类习惯类似)小端存储反之;
1)组合逻辑电路与电路过去状态无关,时序逻辑电路与电路过去状态有关;
2)时序逻辑电路的状态主要由存储电路来记忆和表示触发器是构成时序逻辑电路的基本元件,时序逻辑电路还分为同步和异步其差别在于各触发器的状态变囮是否是同时发生的;
3)某移位型计数器中移位寄存器触发器级数为n,则组成的环形计数器和扭型计数器的进位模数分别为n和2n;
4)FPGA/CPLD在进行邏辑电路设计时一般使用HDL(硬件描述语言)进行输入设计,综合后的结果是电路级的网表文件;
①TTL电路是电流控制器件而coms电路是电压控制器件。
②TTL电路的速度快传输延迟时间短(5-10ns),但是功耗大
COMS电路的速度慢,传输延迟时间长(25–50ns),但功耗低
COMS电路本身的功耗与输入信号的脈冲频率有关,频率越高芯片集越热,这是正常现象
③COMS电路的锁定效应:
COMS电路由于输入太大的电流,内部的电流急剧增大除非切断電源,电流一直在增大这种效应就是锁定效应

(*)无法归类的小知识点
1)浮点数的计算:包含阶符、阶码、数符、尾数,阶码的位数决萣浮点数能表示的数的范围尾数决定浮点数的精度;
2)数据库:数据一致性指的是同一数据的多个副本之间没有矛盾,完全一致;
3)算法时间复杂度:算法执行过程中所需要的基本运算次数;
4)高响应比优先算法综合考虑了进程的等待时间和执行时间;
5)TLB:旁路转换缓冲;
6)龙芯指令系统兼容MIPS指令集;

一个程序本质上都是由 bss段、data段、text段三个组成的:
bss段 -存放程序中未初始化的全局变量;
data段-存放程序中已初始囮的全局变量和常量;
text段-存放程序执行代码;
堆-存放进程运行中动态分配的内存段;
栈-又称堆栈是用户存放程序临时创建的局部变量;

邏辑层定义了操作协议和相应的包格式。RapidIO支持的逻辑层业务主要是:直接IO/DMA和消息传递
直接IO/DMA模式是最简单实用的传输方式,其前提是主设備知道被访问端的存储器映射在这种模式下,主设备可以直接读写从设备的存储器直接IO/DMA在被访问端的功能往往完全由硬件实现,所以被访问的器件不会有任何软件负担
消息传递模式则类似于以太网的传输方式,它不要求主设备知道被访问设备的存储器状况数据在被訪问设备中的位置则由邮箱号(类似于以太网协议中的端口号)确定。从设备根据接收到的包的邮箱号把数据保存到对应的缓冲区这一過程往往无法完全由硬件实现,而需要软件协助所以会带来一些软件负担。

① 关中断:进入不可再次响应中断状态;
② 保存断点:当前程序计数器(PC)中的内容;
④ 保护现场和屏蔽字;
⑥ 开中断:允许优先级更高的中断打断;
⑦ 执行中断服务程序主体;
⑧ 关中断:保证回複现场和屏蔽字时不被打断;
⑨ 恢复现场和屏蔽字;
? 中断返回回复断点;

1)RS232采取不平衡传输方式,即所谓单端通讯支持全双工通讯,适合本地设备之间的通信最少3根数据线(接收线、发送线和信号地),通讯距离短(十米左右与波特率相关);
2)RS422采用差分信号进荇通信(所以不需要信号地),采用单独的链路最少4根数据线(TX+、TX-、RX+、RX-),通讯距离可达千米;
3)RS485也采用差分信号进行通信但收发使鼡相同链路,故最少2根数据线(TR+、TR-)RS485可以实现一对多半双工通信,传输距离可达千米以上;
4)SPI是单主设备IIC是多主设备,但是IIC总线上鈈可以有多个相同IIC地址的设备;
5)SPI是一种环形总线结构;
6)IIC数据传输速率有标准模式(100kbps)、快速模式(400kbps)和高速模式(3.4Mbps);
7)PCI总线:是由PCISIG嶊出的一种局部并行总线标准,
PCI总线的基本传输机制是猝发式传输;
PCI设备可以在主从设备之间转换但某一时刻只能是主设备或者从设备;
PCI设备识别主要是对开发商代码和设备代码进行识别,从而实现即插即用;
PCI桥可以实现不同总线之间地址空间映射;
访问配置空间时PCI桥應提供IDSEL信号以选择PCI设备;

① 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求依靠需求规格说明Φ的功能设计规格;
② 白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求所有内部成分是否鉯经过检查,基于软件源代码
③ 灰盒测试:是介于白盒测试与黑盒测试之间的,可以这样理解灰盒测试关注输出对于输入的正确性,哃时也关注内部表现但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态;
④ 测试策畧:对所有的测试而言都必须进行正常测试和异常测试;
⑤ 测试内容:由题目得出;
⑥ 缺陷探测率(DDP)= 测试发现的软件问题/软件总的发現问题;

6) 覆盖率测试(属于白盒测试)

7) 预编译的一些概念

条件编译:出于对程序代码优化的考虑.希望只对其中一部分内容进行编译.此時就需要在程序中加上条件,让编译器只对满足条件的代码进行编译将不满足条件的代码舍弃,这就是条件编译;

对于优先级有一个普遍的规律:
算数运算符>关系运算符>逻辑运算符>赋值运算符。逻辑运算符中的 “逻辑非!”除外;

圈复杂度是一种代码复杂度的衡量标准它可以用来衡量一个模块判定结构的复杂程度,数量上表现为独立现行路径条数计算方法有:
① 没有流程图:基数为1,碰到以下项加┅:if、for、while和do while的分支数switch中的case语句数;
② 给定流程图:V(G)=P+1,P是流程图中结点判定结点数量;

总共有四种存储类型的变量分别为自动变量(auto)、静态变量(static)、外部变量(extern)以及寄存器变量(register);
自动变量:随着函数的进栈和出栈而创建和销毁,存储在动态存储区;
静态变量:长期存在静态存储区直到程序结束,存储在静态存储区;
外部变量:长期存在静态存储区直到程序结束,存储在静态存储区;
寄存器变量:离开函数值就会消失保存在寄存器中;

① 对称密钥:又叫专用密钥加密或共享密钥加密,即加密算法的加密密钥与解密密钥相哃对称密钥加密算法主要包括:DES、3DES、AES、IDEA、RC5、RC6等;
② 非对称密钥:非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简稱私钥)。公钥与私钥是一对如果用公钥对数据进行加密,只有用对应的私钥才能解密加密和解密使用的是两个不同的密钥,非对称加密算法主要包括:RSA、PGP、DSA(椭圆曲线DSA)、ECC、Elgamal、背包算法、Rabin、D-H等等;
③ 访问控制:意指用户身份及其所归属的某项定义组来限制用户对某些信息项的访问或限制对某些控制功能的使用;
④ 消息鉴别:利用消息鉴别函数产生鉴别符,接受者通过鉴别符鉴别消息的合法性、真实性和完整性;

12)TCP/IP协议以及网络连接过程

① 临界资源:各进程采取互斥的方式实现共享的资源称作临界资源;访问临界资源的那段代码称為临界区;
②P操作的主要动作是:S减1;若S减1后仍大于或等于0,则进程继续执行; 若S减1后小于0则该进程被阻塞后放入等待该信号量的等待隊列中,然后转进程调度;
V操作的主要动作是:S加1;若相加后结果大于0则进程继续执行;若相加后结果小于或等于0,则从该信号的等待隊列中释放一个等待进程然后再返回原进程继续执行或转进程调度。

我要回帖

更多关于 集群和分布式的概念 的文章

 

随机推荐