惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
宝玉的分享
宝玉的分享
Jina AI
Jina AI
IT之家
IT之家
博客园 - Franky
MyScale Blog
MyScale Blog
Y
Y Combinator Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
雷峰网
雷峰网
WordPress大学
WordPress大学
Microsoft Security Blog
Microsoft Security Blog
Google DeepMind News
Google DeepMind News
美团技术团队
S
SegmentFault 最新的问题
罗磊的独立博客
博客园 - 聂微东
大猫的无限游戏
大猫的无限游戏
H
Help Net Security
D
Docker
博客园 - 司徒正美
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
阮一峰的网络日志
阮一峰的网络日志
M
MIT News - Artificial intelligence

Shiroha白羽的博客

Golang 踩坑 —— interface 为参数的时候传 nil 指针 Codeforces Round 925 (Div. 3) Codeforces Round 924 (Div. 2) Codeforces Round 923 (Div. 3) Codeforces Round 922 (Div. 2) Codeforces Round 921 (Div. 2) Educational Codeforces Round 161 (Rated for Div. 2) Codeforces Round 920 (Div. 3) Codeforces Round 919 (Div. 2) Hello 2024 Good Bye 2023 Codeforces Round 918 (Div. 4) 个人备份的常用 macOS 清理命令 Codeforces Round 917 (Div. 2) Pinely Round 3 (Div. 1 + Div. 2) Educational Codeforces Round 160 (Rated for Div. 2) Codeforces Round 915 (Div. 2) Codeforces Round 914 (Div. 2) Codeforces Round 913 (Div. 3) Educational Codeforces Round 159 (Rated for Div. 2) Codeforces Round 912 (Div. 2) Codeforces Round 911 (Div. 2) CodeTON Round 7 (Div. 1 + Div. 2, Rated, Prizes!) Educational Codeforces Round 158 (Rated for Div. 2) Codeforces Round 910 (Div. 2) Codeforces Round 909 (Div. 3) Codeforces Round 908 (Div. 2) Educational Codeforces Round 157 (Rated for Div. 2) C++自定义的字面量 Codeforces Round 907 (Div. 2)
面试复习(Linux)
Shiroha · 2021-02-23 · via Shiroha白羽的博客

查看进程占用系统资源情况

  • top
  • ps

终端

  • session
    • 一个终端窗口对应一个会话(session)
    • 一个会话包含多个进程组
    • 一个会话只有一个前台进程组,可以有多个后台进程组
    • 所有在终端内的输入都会发送给前台进程组
    • 当会话关闭时,所有会话内的进程将会被终止

fork

  • 进程的 fork 过程
    • 给新进程分配一个标识符
    • 在内核中分配一个PCB
    • 复制它的父进程的环境(PCB中大部分的内容)
    • 为其分配资源(程序、数据、栈等)
    • 复制父进程地址空间里的内容(代码共享,数据写时拷贝)
    • 将进程置成就绪状态,并将其放入就绪队列,等待CPU调度

守护进程

  • 什么是守护进程
    • 在后台运行的一种特殊的进程
    • 一般在系统启动时开始运行,系统关机后结束运行
    • 常常以 root 权限启动
    • 不需要输入,独立与终端
    • 名称常常以 d 结尾
  • 创建守护进程的过程
    • 在父进程中执行 forkexit 退出
    • 在子进程中调用 setsid 函数创建新的会话
    • 在子进程中调用 chdir 函数,让根目录 / 成为子进程的工作目录
    • 在子进程中调用 umask 函数,设置进程的 umask 为 0
    • 在子进程中关闭任何不需要的文件描述符

IO模式

  • IO 模式有哪些
    • 阻塞 IO:当进行 IO 时,线程阻塞,不再占用 CPU,直到 IO 完成
    • 非阻塞 IO:当进行 IO 时,线程不阻塞,而是进行循环判断是否 IO 完成,一直占用 CPU
    • IO 多路复用:允许同时进行多个 IO,线程仍然阻塞
    • 异步 IO:在 IO 时不会阻塞,也不会关心 IO 状态,而是继续执行代码,直到 IO 完成再回来执行 IO 完成的代码
  • IO 多路复用的机制
    • select:当有任意一个 IO 完成时,通知程序。缺点在于单个进程只能打开有限的文件,同时其采用轮番查询,效率较低,而且仅通知程序有 IO 完成,并不知道到底哪个文件的 IO 完成了
    • poll:与 select 相同,但其提供了无限制的文件打开数量
    • epoll:可以自定义打开的文件数量,同时当 IO 完成时会已消息的形式通知程序,包括了到底是哪个 IO 完成了