(1) 了解一下网件常用策略
已经知道了。
(2) 基本知识点:C语言二级
如何应付笔试啊,面试的基本算法
(3) 常用数据结构的分析
排序,递归的用法
先看一下PPT
(4) 内存问题
段错误,内存泄漏
在编程中以下几类做法容易导致段错误,基本是是错误地使用指针引起的:
1)访问系统数据区,尤其是往系统保护的内存地址写数据,最常见的就是给一个指针以0地址;
2)内存越界(数组越界,变量类型不一致等) 访问到不属于你的内存区域。
内存泄漏的排查:
(5) 性能优化的问题
(6) 路由器原理
(7) 系统建模
Rose UML
(8) 转发流程
指路由器,华为的了 ma5200
控制层面,转发层面
(9) 简历上的东东
让人信服吧
EPON原理的介绍
(10)华为交换机的构架与简要介绍
(11)组网问题/架构平台介绍
(12)常用专业名词的解释
PON技术的介绍,给别人大致解释一下
(13)堆与栈的区别?
由C/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack): 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。
3、全局区(static): 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域,程序结束后有系统释放 。
4、文字常量区: 常量字符串就是放在这里的, 程序结束后由系统释放。
5、程序代码区: 存放函数体的二进制代码。
(14)VXworks操作系统
=====================================================
介绍概念的介绍
实时系统是对外来事件在限定时间内能做出反应的系统。
指标
响应时间 Response Time
生存时间 Survival Time
吞吐量 Throughput
进程问题
=====================================================
在实时计算中,系统的正确性不仅仅依赖于计算的逻辑结果而且依赖于结果产生的时间
对于实时系统来说最重要的要求就是实时操作系统必须有满足在一个事先定义好的时间限制中对外部或内部的事件进行响应和处理的能力
此外作为实时操作系统还需要有效的中断处理能力来处理异步事件和高效的I/O能力来处理有严格时间限制的数据收发应用
功能:
任务管理(多任务和基于优先级的任务调度)
任务间同步和通信(信号量和共享内存等)
存储器优化管理(含ROM的管理)
实时时钟服务
中断管理服务
预先分配内存。
在系统构造或编译时为每个任务指定其使用的内存空间。这种方法对于硬实时系统来说是很合适的。而且嵌入式实时操作系统很多都是在ROM中运行,仅仅只有需要变化的数据才放在RAM中。这种系统在组成上无疑是静态的。
虚拟内存
但必须给实时任务提供方法,以便将实时任务“锁”进内存,也就是系统在管理虚拟内存时,不将“锁”住的内存块换出物理内存。
• 实时系统的一个任务可有多种状态,其中最基本的状态有四种:
– 就绪态:任务只等待系统分配CPU资源;
– 悬置态:任务需等待某些不可利用的资源而被阻塞;
– 休眠态:如果系统不需要某一个任务工作,则这个任务处于休眠状态;
– 延迟态:任务被延迟时所处状态;
进行任务管理
任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、I/O设备及内存空间等系统资源,并独立于其它任务,与它们一起并发运行(宏观上如此)。VxWorks内核使任务能快速共享系统的绝大部分资源,同时有独立的上下文来控制个别线程的执行。
VxWorks实时内核Wind提供了基本的多任务环境,系统内核根据某一调度策略让它们交替运行。
系统调度器使用任务控制块的数据结构(简记为TCB)来管理任务调度功能。
任务控制块里面包含了:
当前状态、优先级、要等待的事件或资源、任务程序码的起始地址、初始堆栈指针
任务的“上下文”(context)。任务的上下文就是当一个执行中的任务被停止时,所要保存的所有信息。通常,上下文就是计算机当前的状态,也即各个寄存器的内容。
VxWorks中,内存地址空间不是任务上下文的一部分。所有的代码运行在同一地址空间。如每一任务需各自的内存空间,需可选产品VxVMI的支持。
优先级调度策略:
• 基于优先级的抢占式调度法作为缺省策略
– 这种调度方法为每个任务指定不同的优先级。没有处于悬置或休眠态的最高优先级任务将一直运行下去。
– 当更高优先级的任务由就绪态进入运行时,系统内核立即保存当前任务的上下文,切换到更高优先级的任务。
– 当有内核调用或有中断到来时,内核重新调度
• 同时提供了时间片轮转调度
内核时间片:
• 时间片的长度可由系统调用
KernelTimeSlice(ticks)
通过输入参数值来指定。
当 ticks为0时,时间片调度被关闭
• 基于优先级的抢占式调度可以发生在任何时候,时间片轮转调度只能在相同优先级的任务间每隔ticks发生一次。
• 在VxWorks系统中,可以调用函数kernelTimeSlice来使用时间片轮转调度。
VxWorks任务特性:
所有的代码运行在同一地址空间。
任务能快速共享系统的绝大部分资源,同时有自己独立的上下文
所有的任务都运行在特权模式下
VxWorks怎样满足实时性需求
多任务特性
基于抢占式多任务调度
快速的任务上下文切换
快速确定的系统响应
高效的任务间通讯机制
任务状态迁移:
任务编程的常见异常分析:
l 1 代码重入与共享
l 2 符号表的使用
l 3 特殊的任务保护
l 4 任务调度中CPU的占用
l 5 堆栈越界
l 6 CPU异常
冒泡,选择排序,快速排序