中移苏州面试

嵌入式

  1. 利用malloc申请10M空间
    malloc(10 * 2^20);
    malloc申请的是一块连续的内存(虚拟内存,不保证在物理内存上连续),虽然系统内存足够,但是不能保证存在连续大小的内存。
  2. 无限fork耗尽系统资源,导致系统死机或者程序奔溃。子进程继承了父进程的整个地址空间,包括进程上下文、堆栈地址和内存信息等。
  3. 利用vim删除文件中每行的前2个!
    :%s/^.{10}//
    其中,%表示所有行,s表示替换,"%s"可用"1,$“代替(下同);正则表达式”/.{10}//"中,表示行首;".“表示要删除的字符个数,”.{10}“表示删除10个字符,可用10个”."表示;
  4. 开发板上电后做了什么
    从主板的BIOS读取其中存储的程序
    读取起始的512字节(主引导记录MBR master boot record)
    引导bootloader
    加载内核
    通过驱动程序检测计算机硬件
    init process
    login
    BIOS -> MBR -> 引导加载程序 -> 内核 -> init process -> login
  5. 计算机是如何执行程序的
    CPU由寄存器、运算器、控制器和时钟组成。
    程序首先由内存加载到寄存器,再从寄存器存储到主存,通过控制器和运算器执行程序,寄存器再将结果输出到显示设备上。

go

  1. 如何搭建分布式系统
    目前是互相独立的服务器,如需搭建,可以利用一台独立的服务器作为中间键负责接收客户端连入,然后利用随机算法负载均衡到后端服务器后再处理逻辑。
  2. 如何实现负载均衡
    客户端:多中心,主备中心
    服务器:当当前服务器负载超过临界点时主动断开与客户端的websocket连接,让客户端去连接备份服务器。
  3. 如何在分布式系统中扩展服务器
  4. docker实现原理
    通过linux的namespace、控制组和UnionFS实现容器的隔离,namespace实现进程、网络、文件系统隔离,控制组实现CPU、内存资源隔离,UnionFS实现镜像隔离。
  5. 协程实现原理
    维护一组数据结构和n个线程,协程执行的代码扔进一个执行队列中;对各种io函数进行了封装。
    封装操作系统的异步函数,包括linux 的epoll、select。

Ceph

  1. 什么是块存储、文件存储和对象存储
    块设备存储:看作一块硬盘,读写速度快,但不能同时读写
    文件存储:提供多处挂载同时读写,但读写速度慢
    对象存储:综合块存储和文件存储的优缺点,可以同时读写,速度一般
  2. 什么是Crush算法
    一种优化的Hash算法,在客户端通过算法实现数据分布查询工作,从而决定元数据迁移到哪个节点,起到数据分布的作用。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值