目录
1.系统的启动流程(centos7)
参考:
https://www.cnblogs.com/getbird/p/10869730.html
https://blog.51cto.com/14469918/2432029
POST开机自检
加载MBR到内存
启动GRUB引导器
加载linux内核
systemd进程初始化(centos6以前为init)
2.程序、进程、线程、协程的区别
参考:
https://blog.csdn.net/WJWFighting/article/details/82589177
https://www.cnblogs.com/guolei2570/p/8810536.html
https://blog.csdn.net/junaozun/article/details/90268569
程序:程序是静态的,存放在磁盘
进程:进程是动态的,在内存中运行;进程是最小的资源管理单元
线程:一个进程可拥有多个线程,线程是最小的执行单元、
协程:协程在用户态执行,完全由程序控制,更加灵活
3.进程之间的通信方式
参考:
https://www.cnblogs.com/diegodu/p/9167671.html
管道(pipe)
有名管道(FIFO)
信号(signal)
消息队列
共享内存
信号量
套接字(socket)
4.进程的几种状态
参考:
https://www.cnblogs.com/diegodu/p/9167671.html
常见的几种状态:
R 执行状态
S 睡眠(挂起)状态
T 停止(追踪)状态
Z 僵尸进程
< 高优先级进程
N 低优先级进程
5.进程的结构及内存分布
参考:
https://www.cnblogs.com/HKUI/articles/9080214.html
https://www.cnblogs.com/rohens-hbg/p/8630929.html
linux进程由程序、数据和进程控制块三部分组成
6.进程的分类
参考:
https://blog.csdn.net/weibo1230123/article/details/82187572
交互进程:由一个shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。
批处理进程:与终端无关,提交到等待队列中顺序执行的进程
守护进程:又称监控进程、实时进程,在系统启动时初始化,运行于后台
7.进程的启动方式
参考:
http://c.biancheng.net/view/6098.html
前台启动 cmd
后台启动 cmd & 或 nohub cmd &
调度启动 crontab、at
8.进程与作业的区别
参考:
http://www.qibaqian.com/zuoye/8148.html
区别:进程是一个程序在一个数据集上的一次执行,而作业是用户提交给系统的一个任务。
关系:一个作业通常包括几个进程,几个进程共同完成一个任务,即作业。
用户提交作业以后,当作业被调度,系统会为作业创建进程,一个进程无法完成时,系统会为这个进程创建子进程。
9.作业管理命令
后台运行命令:cmd &
后台运行命令,且用户注销后依然执行:nohup cmd &
查看后台作业,并显示PID:jobs -l
终止一个前台作业:Ctrl+C
挂起一个前台作业:Ctrl+Z
恢复一个后台作业:bg
将一个后台作业放到前台运行:fg
+号表示默认作业
-号表示第二默认作业
杀死6号作业:kill %6 或 kill -9 PID
Ctrl+S:挂起终端
Ctrl+Q:解除挂起
10.进程管理命令(重要)
参考:
https://blog.csdn.net/lv8549510/article/details/80577701