系统设计¶
要求设计一个 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 类型的指针,这个函数主要是实现各种数据类型的拷贝。