我出的面试题目

1. C++

Const  /Static  


Mutable volatile


2.   STL 

2.1  STL 内部概念

      重要组成部分:   Algorithm, Container, iterator, funtor

    Iterator 分类:Forward, bi-direction,  random, input, output

    Container 分类:sequence, list,  association


2.2 Write Code with a Case   

Prefix: 。。。。。。。。。。。。。。。。。

T -> vector,  list,  map


begin  -----   curActive  ------------ end

[begin, curActive)  -->   remove the iterator

[curActive, end)  -->      movve iterator to curActive,   ++curActive


template<typename T>
class Container
{
Container(int curActive=0){}
typedef typename T::iterator Iterator;


Schedule(Iterator it)
{
}
private:
T m_tasks;
int m_curActive;
};



3.  TCP      

TCP 协议栈 的层次


connect  Establish 


closing  (Client,  Server)


如何快速close一个server链接?



4.  协议设计 

多条消息如何处理;

       只收到半条,怎么办




5. Database  

5.1     SQL 编写

    A   (  pA,   a1, a2)                          30,000+     ,  2000

   B   ( pB,  b1, b2,.....)                      100,000+    4000

     b2  ----> ref ----> pA

    pA  =  b2 = [200, 700)         ->  a1, a2,  b1, b2  

    select distinct (a.* , b.*)  from A, B where pA = b2 and b2 in (200, 700)

   select distinct(  Va.* , b.* ) from ( select  * from B where b2 in (200,700)) vb ,    (select a.* from A where pA in(200, 700) )    Va where va. pA = vb.b2


5.2  Stu(n *  10K) ,   Course(几K) , Teacher(几K)    设计学生选课系统/ 评教数据库, 

   问题:   Stu 每年会变化, 如何设计一个高效的数据库, 优化措施

  key : 每年的  Stu 表不能放在一张表里面;



7. 描述一下你设计过最好的系统的体系结构;

  亮点在哪里?




8. 内核:

8.0   mask      &  SetBit

         MASK(3)   -->         00000000111 :              ~((~0) << n)

SetBit(value, n)                                   value |= (1<<n)

        ClearBit(vlaue, n)       value &= ~(1<<<n)

8.1   X86系统启动过程:

       上电开始,到初始化完成  (Init 启动,启动shell)

key:   内核解压的过程,  

       串口的初始化过程;


8.2 驱动模型

       kobject ->   Ref,   type,   Kset

bus ,class , device, driver       device-driver

8.3   内核中的并发机制:

1. sema   mutex     rw

        2.   Completions  通知

        3.  spin_lock     lock (irq,  no-irq)

8.4   中断;

如果很多事情需要做时,       中断服务程序如何编写: 

      key :  前半段,后半段;

      使用 tasklets技术

      前半部 和后半部的切换

8.5 drivers 开发时,如何实现一个阻塞的设备读写

         app 级别怎么调用?


8.6   drivers 开发时, 对char字符设备下的读写数据 , 功能划分时,如何定义  read , write  和   iotcl 函数, 

      发送速率  1~~200,000bps

        1. 发送 连续字节消息

        2. 接受连续字节消息

         3.  发送一个字节命令控制消息

        4. 接受一个字节命令控制消息

        5. 设置发送频率

   消息格式定义,解码,编码,等等功能;

你如何设计这个系统-  app,  drivers    划分和实现



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值