跳转至

系统设计

要求设计一个 DNS 的 Cache 结构,要求能够满足每秒 5000 以上的查询,满足 IP 数据的快速插入,查询的速度要快。

设计一个系统处理词语搭配问题

设计一个系统处理词语搭配问题,比如说 中国 和人民可以搭配, 则中国人民 人民中国都有效。要求:

  • 系统每秒的查询数量可能上千次;
  • 词语的数量级为 10W;
  • 每个词至多可以与 1W 个词搭配

当用户输入中国人民的时候,要求返回与这个搭配词组相关的信息。

任务调度

系统有很多任务,任务之间有依赖,比如 B 依赖于 A,则 A 执行完后 B 才能执行 (1)不考虑系统并行性,设计一个函数 (Task *Ptask,int Task_num) 不考虑并行度,最快的方法完成所有任务。 (2)考虑并行度,怎么设计

  typedef struct{
      int ID;
     int * child;
      int child_num;
  }Task;

提供的函数:

    bool doTask(int taskID);无阻塞的运行一个任务;
    int waitTask(int timeout);返回运行完成的任务id,如果没有则返回-1;
    bool killTask(int taskID);杀死进程

设计一种内存管理算法

相关的问题:

  • 请编写实现 malloc() 内存分配函数功能一样的代码
  • 用 C 语言实现函数 memmove() 函数
void * memmove(void *dest, const void *src, size_t n)

memmove() 函数的功能是拷贝 src 所指的内存内容前 n 个字节到 dest 所指的地址上。

分析:由于可以把任何类型的指针赋给 void 类型的指针,这个函数主要是实现各种数据类型的拷贝。

A 向 B 发邮件,B 收到后读取并发送收到,但是中间可能丢失了该邮件,怎么设计一种最节省的方法,来处理丢失问题。

设计一种算法求出算法复杂度