giftiaのblog

操作系统合集

· giftia

僵尸进程 孤儿进程

  • 僵尸:子进程挂了,但没有被父进程正常回收,会消耗资源
  • 孤儿:父进程挂了,子进程仍在允许,会交由 init 进程管理,无害

select poll epoll

  • select: 用位图传 fd 集合,每次调用全量拷贝进内核并线性扫描,受 FD_SETSIZE(默认 1024)限制,连接多了就慢。
  • poll: 用 pollfd 结构体数组替代位图,取消了 1024 上限,但仍需全量拷贝和线性扫描,连接多了照样慢。
  • epoll: fd 只注册一次,底层用红黑树管理全量 fd、用就绪链表存放活跃 fd,epoll_wait 直接取就绪链表返回,适合大量连接但活跃少的场景(仅 Linux)。

死锁条件

互斥、持有并等待、循环等待、不可剥夺