Linux学习之路(十四):进程管理以及运行级别

进程管理

每一个进程都由这几个段组成:
在这里插入图片描述
重要概念:Stack and Heap
栈(stack):是一个动态增长和收缩的段,有栈帧(stack frames)组成。系统会为每个当前调用的函数分配一个栈帧。栈帧中存储了函数的局部变量(所谓自动变量)、实参和返回值。
堆(heap):是可在运行时(为变量)动态进行内存分配的一块区域。堆顶端称为program break。
其自动向对方扩展。
其余部分具体可参见进程结构和内存布局
进程切换:上下文切换,环境切换,将一个要退出的现场保存到内核的数据结构中去
进程
进程号
内存空间
用户
父进程
CPU time
进程所拥有的常见状态
Uninterruptible sleep:不可中断的睡眠
需要调度的外部资源没有满足的时候
Interruptible sleep:可中断的睡眠
不需要任何IO资源
僵尸进程,内存泄漏的一种表现
僵死态
Init:所有进程都是它的子进程
父子关系
优先级关系
0-139:140个优先级,数字越小,优先级越高
100-139:用户可控制
0-99:内核调整的
优先级高:
1.获得更多的CPU运行时间
2.更优先获得运行的机会
进程命令

PID:进程号Process ID
ls  /proc
Init:1
ps:Process state
     SysV风格:-
     BSD风格

  a:所有与终端有关的进程
  u:显示是哪个用户启动的
  x:所有与终端无关的进程

一般使用 ps aux | head(显示所有包含其他使用者的行程)
进程的分类:
跟终端相关的进程
跟终端无关的进程

进程状态:
    	D:不可中断的睡眠
    	R:运行或就绪
    	S:可中断的睡眠
    	T:停止
    	Z:僵死
	
<:高优先级进程
N:低优先级进程
+:前台进程组中的进程
l:多线程进程
s:会话进程首进程

ps
	-elF
	-ef e显示环境变量 f 显示程序间的关系
	-eF
ps -o PROPERTY1,PROPERTY2
ps -o pid,comm,ni

ps命令详解
显示与bash相关的进程

ps aux | grep "bash"

加了[]的进程表示为一个内核线程
进程状态:

Linux上进程的状态:
1运行(正在运行或在运行队列中等待)
2中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
3不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
4僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
5停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

pstree :显示当前系统上的进程树
pgrep:
pgrep -u root bash以root为属主运行的bash命令
pidof:根据进程或程序名查找其相关进程的ID号
top:
	M:根据驻留内存大小进行排序
	P:根据CPU使用百分比进行排序
	T:根据累计时间进行排序
	l:是否显示平均负载和启动时间
	t:是否显示进程和CPU状态相关信息
	m:是否显示内存相关信息
	c:是否显示完整的命令行信息
	q:退出top
	k:终止某个进程

top
	-d:指定延迟时长,单位是秒
	-b:批模式
	-n #:在批模式下,共显示多少批

进程间通信(IPC:Inter Process )
共享内存

重要的信号:

1:SIGHUP:让一个进程不用重启,就可以重读其配置文件,并让新的配置信息生效
2:SIGINT:Ctrl+c:中断一个进程
9:SIGKILL:杀死一个进程
15:SIGTEAM:终止一个进程,默认信号

指定一个信号:

信号号码:kill -1
	信号名称:kill -SIGKILL
	信号名称简写:kill -KILL
Vmstat:系统状态查看命令
每隔多少秒切换一次vmstat n
vmstat 1 5 
每个1秒钟更新一次,只显示5次


Kill PID
	-l 可以显示出所有进程的可用信号
killall COMMAND 杀死这个命令的所有进程

调整nice值:
调整已经启动的进程的nice值:

renice NI PID

在启动时指定nice值:

nice -n NI COMMAND

前台:占据了命令提示符
后台:启动之后,释放命令提示符,后续的操作在后台完成

jobs:查看当前系统后台的所有作业
	作业号,不同于进程号
		+:命令将默认操作的作业
		-:命令将第二个默认操作的作业
fg:将后台作业调回前台
	fg  [[%]JOBID]
kill %JOBID

运行级别

完成系统健康状况检查
POST加电自检->BIOS(Boot Sequence)->MBR(bootloader,446Bytes)–>Kernel–>(ROOTFS)/sbin/init(/etc/inittab可以更改默认运行级别)
文件系统
进程管理
内存管理
网络管理
安全功能
驱动程序
根/所在的分区称为根文件系统rootfs
内核设计风格:
单内核:Linux (LWP轻量级进程)
核心(动态加载),ko(Kernel Object)
内核:/lib/modules/内核版本号命名的目录/
Vmlinuz-2.6.32
/lib/modules/2.6.32/
微内核:Windows,Solaris(线程)
ramfs把内存模拟成硬盘使用–>inittamfs
Chroot: chroot /PATH/TO/TEMPROOT [COMMAND]
vga模式,维护模式
运行级别:启动的服务不同
0-6
0:halt关机
1:单用户模式single user mode直接以管理员身份登入
2:multi user mode多用户模式,不启动NFS
3:multi user mode 文本模式,不启用图形界面
4:reserved 保留级别
5:multi user mode graphic mode启用图形界面
6:reboot 重启
详解启动过程
bootloader(MBR)
LILO:LInux LOader
GRUB:Grand Unified BootLoader
Stage1:MBR
Stage1_5:识别文件系统
Stage2:/boot/grub/
grub.conf:我没找到

default=0 设定默认启动的title编号,从0开始
timeout=5等待用户选择的超时时长,单位是秒
splashimage =grub的背景图片
hidedenmenu隐藏菜单
title内核标题,或操作系统名称,字符串,可自由修改
	root内核文件所在的设备,对grub而言,所有类型键盘一律hd,格式为(hd#,N):hd#,#表示第几个磁盘,最后的N表示对应磁盘的分区
	kernel内核文件路径,以及传递给文件的参数
	initrd ramdisk文件路径,安装操作系统最后一步生成的
boot单独分区和不单独分区访问目录不一样
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值