1.什么是进程
进程是指在系统中正在运行的一个应用程序
2.程序与进程之间有什么区别?
- 进程是程序的一次执行过程,是动态概念,程序是一组有序的指令集和(代码),是静态概念
- 进程是暂时的,是程序在数据集上的一次执行,可创建可撤销,程序是永存的
- 进程具有并发行,程序没有
- 进程是竞争计算机资源的最小单位,程序不是
- 进程与程序不是一一对应,多个进程可执行一个程序,一个程序可执行多个程序
3.进程的生命周期?
父进程复制自己的地址空间(fork)传建一个新的(子)进程结构。每个新进程分配一个唯一的进程ID(PID),满足跟踪安全性之需,PID和父进程(PPID)是子进程环境的元素,任何进程都可以创建子进程,所有进程都是第一个系统进程的后代:
Centos5/6: init
Centos7: systemd
子进程继承父进程的安全性身份、过去和当前的文件描述符,端口和资源特权,环境变量,以及程序代码。随后,子进程可能exec自己的程序代码,通常,父进程在子进程运行期间处于睡眠(sleeping)状态,当子进程完成时发出(exit)信号请求,在退出时,子进程已经关闭或丢弃了其资源环境,剩余的部分称为僵停(僵尸Zombie)。父进程在子进程退出时收到信号而被唤醒,清理剩余的结构,然后继续执行其自己的程序代码。
4.进程运行的状态指标?
5.查看进程
静态方式: ps aux , ps -ef 会显示PPID父进程
动态方式: top htop (负载状态 w uptime)
6.如何监控进程的状态、静态ps、动态top?
静态ps
动态top
Tasks: 154 total (任务总数)
2 running (有两个进程正在运行)
151 sleeping (151个睡眠)
1 stopped (1个挂起 停止)
0 zombie (僵尸进程数为0)
0.3 us (进程占用cpu的百分比(用户进程)
0.0 sy( 内核进程 (硬件)
0.0 ni (优先级的进程占用cpu的百分比)
99.7 id (空闲的进程)
0.0 wa (大量的等待 -->)
0.0 hi (硬中断)
0.0 si( 软中断)
0.0 st (虚拟机占用物理CPU的时间)
进程信息
列名 含义
PID (进程id)
PPID (父进程id)
UID (进程所有者的用户id)
USER (进程所有者的用户名)
PR (优先级)
NI (负值表示高优先级,正值表示低优先级)
VIRT (进程使用的虚拟内存总量,单位kb,VIRT=SWAP+RES)
RES (进程使用的、未被换出的物理内存大小,单位kb,RES=CODE+DATA)
SHR (共享内存大小,单位kb)
S (进程状态)
COMMAND (命令名/命令行)
%CPU (进程占用CPU百分比)
%MEM (进程占用内存百分比)
TIME+ (进程使用的CPU时间总计,单位1/100秒)
CODE (可执行代码占用的物理内存大小,单位kb)
nDRT (最后一次写入到现在,被修改过的页面数)
nFLT (页面错误次数)
WCHAN (若该进程在睡眠,则显示睡眠中的系统函数名)
Flags (任务标志)
7.进程中的iowait 软中断 硬中断?
(1) 硬中断
由与系统相连的外设(比如网卡、硬盘)自动产生的。主要是用来通知操作系统系统外设状态的变化。比如当网卡收到数据包的时候,就会发出一个中断。我们通常所说的中断指的是硬中断(hardirq)。
————————————————
(2) 软中断
为了满足实时系统的要求,中断处理应该是越快越好。linux为了实现这个特点,当中断发生的时候,硬中断处理那些短时间就可以完成的工作,而将那些处理事件比较长的工作,放到中断之后来完成,也就是软中断(softirq)来完成。
————————————————
(3)硬中断和软中断的区别
- 软中断是执行中断指令产生的,而硬中断是由外设引发的。
- 硬中断的中断号是由中断控制器提供的,软中断的中断号由指令直接指出,无需使用中断控制器。
- 硬中断是可屏蔽的,软中断不可屏蔽。
- 硬中断处理程序要确保它能快速地完成任务,这样程序执行时才不会等待较长时间,称为上半部。
- 软中断处理硬中断未完成的工作,是一种推后执行的机制,属于下半部。
————————————————