Please enable JavaScript.
Coggle requires JavaScript to display documents.
Process (:banana:signal (:three:SIGPIPE (:maple_leaf:SIGPIPE信号忽略即可 (…
Process
:banana:signal
:one:SIGCHLD
:explode:进程死亡后,将SIGCHLD信号发送给父进程
-
-
:three:SIGPIPE
:bread:向已经发送FIN的对方继续发送数据包而收到RST的TCP包后,第二次发送数据包时系统会产生SIGPIPE信号
:!:如果对方发送FIN,我们仍可以向对方发送数据.但是由于对面没有进程了,所以对面就会发送一个RST的TCP包过来
-
-
-
-
-
:melon:context switch
:apple:context
-
:moneybag:registers, process state, memory management information
-
-
-
-
-
:cherry_blossom:原理
-
-
:two:CPU执行进程的工作原理
-
:bread:解释
:bread:CPU的预取器从cache中拿出二进制指令,交给译码器.译码器配合MMU分析二进制指令,指明哪些寄存器要工作,交给ALU.ALU进行计算,将结果放回到指定寄存器中.之后CPU再配合MMU将寄存器的结果返回给cache.cache可以将数据一层层往下回写
:star:二进制指令内使用的是虚拟地址,所以MMU要配合CPU的预取器和回写寄存器结果的工作
:warning:寄存器应该在CPU内部,图有点不准确
-
-
:watermelon:state
:one:特殊进程的状态
:one:僵尸进程
:zap:原因
-
:explode:子进程死亡后,父进程没有等待子进程
-
:sweat_drops:占用进程表,占用系统资源.kill命令不能杀死僵尸进程(调度程序无法选中defunct进程),只能重启解决
-
-
:two:孤儿进程
-
:arrow_right:孤儿进程会被init进程(pid=1)收留,由init进程回收
:three:守护进程
:explode:独立于控制终端,在后台执行,周期性提供服务的进程
-
:apple:创建
-
:two:设置当前目录为根目录或其他目录
:checkered_flag:防止可卸载的文件系统.比如我U盘里有个守护进程,然后我启动了,如果拔掉U盘,那么守护进程的工作目录就没了
-
-
-
-
-
:lemon:单道程序设计 & 多道程序设计
:one:单道程序设计
:explode:程序在CPU要排队等待,不能穿插着运行
-
:two:多道程序设计
-
:bread:CPU会分成很多时间片,然后将时间片分配个每个程序,如果该程序时间片到了,CPU就会发出时钟中断,进行上下文切换
:banana:上下文切换
:explode:CPU将正在运行的进程的寄存器中间数据存放到进程的私有堆栈,然后还原待运行程序的私有堆栈的中间数据到寄存器,之后开始执行