秋招准备之linux

select—文件描述符—1024。与poll区别–>文件描述符数量+可移植性(select更优)
poll()和select()每次调用时都需要所有被监听的文件描述符。内核必须遍历所有被监视的文件描述符。当数量过大时,遍历过程就会成为瓶颈

零copy(读取)和mmap(写入磁盘)
三个位置:磁盘,内核,应用程序
零copy,读取。中间不需要加工,实例:kafak读,Nginx读图片(直接一个系统调用seadfile)
mmap,文件映射到内存中,内存和文件中数据时一一对应的。void * mmap (*addr ,int fd).
mmap的优点:1.减少系统调用次数,2.(数据共享),3.搜索时一般的指针操作,而不必使用lseek。
缺点:映射区域的大小通常是页大小的整数倍。,映射区域会占用进程地址空间。
linux文件描述符中就有O-NONBLOCK.

linux的进程体系。linux创建进程Fork和运行进程exec系列(载入并执行一个新的二进制可执行文件)。
fork,新进程几乎和父进程一模一样,除了必要组件,eg:进程ID…子进程代码,改进:写时复制。

守护进程运行在后台,不与任何控制终端相关联。
每个普通文件均对应一个inode,inode存储了与文件有关的元数据,除去文件名。
秋招准备之linux

信号是提供处理异步事件机制的中断,发生和处理均为异步。SIGINT----ctr+C。
信号有明确的声明周期:产生信号(Kill系统调用)—内核存储信号直到可以发生它–>处理信号(a忽略,B捕捉并处理信号SIGINT,c执行默认的操作)

IPC方式:共享内存、管道、信号量、消息队列、套接字。
秋招准备之linux
秋招准备之linux