四、Linux 系统结构
4.1 进程管理
进程
- 进程是正在执行的一个程序或命令
- 进程有自己的地址空间,占用一定的系统资源
- 一个 CPU 核同一时间只能运行一个进程
- 进程由它的进程ID(PID)和它父进程的进程ID(PPID)唯一识别
进程相关指令
# 查看启动的 nginx 进程
ps -ef | grep nginx
#查看某个进程
top -p 进程号
# 关闭指定的进程
kill 进程号
# 全部进程动态实时视图
top
进程调度
进程调度 是指操作系统按某种策略或规则选择进程占用CPU进行运行的过程。
进程状态
进程主要有7种状态:就绪状态、运行状态、轻度睡眠、中度睡眠、深度睡眠、僵尸状态、死亡状态。它们之间
- R (TASK_RUNNING),可执行状态
- S (TASK_INTERRUPTIBLE),可中断的睡眠状态
- D (TASK_UNINTERRUPTIBLE),不可中断的睡眠状态
- T (TASK-STOPPED or TASK-TRACED),暂停状态或跟踪状态
- Z (TASK_DEAD-EXIT_ZOMBIE),退出状态,进程成为僵尸进程
- X (TASK_DEAD- EXIT_DEAD),退出状态,进程即将被销毁
状态的转换
- 就绪态 --> 运行态 进程被调度
- 运行态 --> 就绪态 时间片到,或者cpu被优先级更高的抢占
- 运行态 --> 阻塞态 等待资源分配,或者某事发生(主动)
- 阻塞态 --> 就绪态 资源分配到位,等待事件发生(被动)
- 创建态 --> 就绪态 系统完后创建进程相关的工作
- 运行态 --> 终止态 进程结束,或出现不可修复的错误
注意:不能 阻塞 直接转 运行 ,也不能 就绪 直接转 阻塞 。
流程如下:
进程调度原则
- 一个 CPU 核同一时间只能运行一个进程
- 每个进程有近乎相等的执行时间
- 对于逻辑 CPU 而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复
- 进程执行消耗时间和进程量成正比
进程的系统调用
内核空间(Kernal Space) :系统内核运行的空间
用户空间(User Space) :应用程序运行的空间
4.2 文件系统
文件系统
文件系统 是操作系统中负责管理持久数据的子系统,负责把用户的文件存到磁盘硬件中,持久化的保存文件。
Linux 中一切皆文件
在Linux操作系统中,所有被操作系统管理的资源,例如网络接口卡、磁盘驱动器、打印机、输入输出设备、普通文件或是目录都被看作是一个文件。在LINUX系统中有一个重要的概念:一切都是文件。其实这是UNIX哲学的一个体现,而Linux是重写UNIX而来,所以这个概念也就传承了下来。在UNIX系统中,把一切资源都看作是文件,包括硬件设备。UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访问。
目录结构
Linux 文件系统是采用树状的目录结构,最上层是/(根)目录
虚拟文件系统(VFS)
- 对应用层提供一个标准的文件操作接口
- 对文件系统提供一个标准的文件接入接口
文件相关指令
# df 命令报告文件系统磁盘空间利用率
df
# mount命令是挂载文件系统用的,不带任何参数运行,会打印包含文件系统类型在内的磁盘分区的信息
mount
ls #查看文件夹下内容
mkdir demo #创建文件夹
mv demo /home #移动 demo 文件夹到/home
rm -r demo # 删除 demo 文件夹
touch file.txt #创建空文件
cp file.txt file_bak.txt #复制文件