Linux操作系统引导过程

①开机自检(BIOS)【硬件通电是否正常】

②MBR引导【系统需要加载的程序进程文件等内容需要MBR指引位置】(说简单点就是你选择登录系统之前的系统的动作)
在这里插入图片描述

③GRUB菜单【选择登录的操作,例如选择要登录的系统环境】(选择登录系统,这个很好理解)
在这里插入图片描述

④加载内核(kernel)【加载shell环境,系统部分环境到内存中】

⑤init进程初始化【先运行第一个服务进程:systemd;然后逐个开启一些“开机自启动”的服务】

进程

开机自启动的第一个进程

init进程(传统的系统初始化进程)/systemd进程(init 的替代者,新一代的系统和服务管理器)

服务器–>主进程–>和操作系统交互,获取到计算机的资源(CPU、内存、磁盘、I/O、网络)

进程的分类:主进程(有核心的任务)、子进程(具体负责)、线程

跨进程通讯CPU消耗很大

init是系统第一个运行的进程,后面的数字代表的是控制操作系统的运行级别
在这里插入图片描述
红色是我们经常会用到的命令
init 0:表示关机
init 6:表示重启

系统服务控制

systemctl 控制类型 服务名称

start:启动

stop:停止

restart:重新启动

reload:重新加载

status:查看服务状态

enable:开机自启动

进程管理

ps**(静态进程)**

常用搭配:
ps -aux

-a:显示所用用户的进程信息

-u:以用户为主的格式显示

-x:显示当前用户在所有终端下的进程

以用户作为主体输出进程信息的,查看当前系统中所有用户的进程任务信息,包括pid号、CPU/MEM使用率、登录的终端TTY、进程的状态、进程运行的开始时间、进程任务执行所花费的时间、进程任务具体的操作指令、应用程序执行文件的命令
在这里插入图片描述

ps -elf

-e:显示所有进程信息

-l:长格式详细显示

-f:完整格式显示

以系统作为主体输出进程信息的,并且可以看到父进程和子进程之间的关系,PID是进程号,PPID是父进程号
在这里插入图片描述

pstree(进程树)
在这里插入图片描述

常见的进程状态

R 正在运行

S 休眠(可被唤醒)

T 停止状态
在这里插入图片描述

进程的异常状态

Z 僵尸进程

孤儿进程:父进程退出,子进程还在,可手动杀死

僵尸进程、孤儿进程一般出现在系统资源压力很大的时候

⭐⭐top(动态进程)

输入命令:top我们需要查看到的几个信息

load average: 0.00, 0.01, 0.05
在这里插入图片描述

分别代表了cpu过去1min、5min、15min的平均负载率

目的:判断当前系统的压力情况,根据压力情况,对系统资源进行合理分配;【要找到消耗资源更大的进程,判断进程是否是重要的任务】

假如 当前操作系统有4个CPU核心

当load average的值小于cpu核心数量的时候,表示CPU使用率很空闲(小于4)

当load average的值等于cpu核心数量的时候,表示CPU是满负载的(等于4)

当load average的值大于cpu核心数量的2倍时,表示CPU是高负载的(等于8左右)

当load average的值大于cpu核心数量的3倍及以上时,准备好系统会崩

安装一个stress的CPU压力测试工具(压测)

这个工具是模拟CPU的任务。给系统施加压力,测试性能

例如stress -c 4

给四个CPU的系统满负载的压力
准备两个虚拟机窗口
一个运行压力测试工具
在这里插入图片描述
另一个用top来查看load average的值
在这里插入图片描述
上图运行了压力测试工具一到两分钟的结果;然后我们关闭压力测试工具,等待一到两分钟
在这里插入图片描述
这样更容易理解load average的三个值的表达的意思

最后拓展两个概念:
缓存、缓冲的区别
缓冲区:写入操作
缓存区:主要用于读数据

Logo

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。

更多推荐