Linux---进程的介绍

1.程序是什么:完成特定任务的一系列指令的有序集合

2.进程是什么?
从用户角度: 进程是程序一次动态执行过程。
操作系统角度:
硬件上有中断系统出现,产生了分时系统。
进程是操作系统分配资源的基本单位。
进程是操作系统分配资源的最小单位。
进程有自己的运行状态和地址空间。(空间是虚拟的地址空间)

mmu:内存管理(快速的找到物理内存)

这个就为进程的一个示意图:

如何找到物理内存

Linux---进程的介绍

3.PCB(进程控制块):task_struct {esp pc}
find /usr/src/ -name "*.h" | xargs grep -n "task_struct"
系统内部维护着一个pcb的链表,操作系统通过这个链表管理系统所有的进程。
我们是如何知道栈的位置,代码和栈区离的较远,那么是如何得知呢?就是利用pcb可以从中的esp里面的内容所知道的。

Linux---进程的介绍


4.进程和程序的区别:

程序里面只有:代码+数据
进程:代码+数据+堆栈+pcb
进程和程序的区别:
进程是动态的运行过程,程序是静态的。
进程有pcb
进程是短暂,程序是相对永久的。
一个进程只能对应一个程序,一个程序可以对应多个进程。
5.进程状态:
3态:运行态 就绪态 阻塞态

Linux---进程的介绍


7态:内核(就绪、运行、可中断睡眠、不可中断睡眠、僵尸、暂停)
用户(运行状态)
进程标识号:每个进程有唯一的一个标号[0~cat /proc/sys/kernel/pid_max]

Linux---进程的介绍