Linux -进程概念笔记

程序: 为了执行特点任务的一系列指令的有序集合。

进程:

 从用户的角度看,进程是程序执行的一次动态过程。
 从操作系统的角度看,
                                进程是操作系统分配系统内存、CPU时间片等系统资源的基本单位。
                                每个进程都有自己独立的虚拟地址独立空间和状态。
                                 进程是分配资源的最小单位。
进程是程序的一次执行过程,需要保存进程的现场信息,这些信息需要一个数据结构来保存,在C语言中用结构体,我们将这个结构称为PCB。

程序:代码段+数据段
进程:代码段+数据段+堆栈+PCB

PCB将代码和数据有效的粘合在一起

进程和程序的区别:
 1.进程是动态的,程序是静态的。
 2.进程是短暂的,程序是永久的。(相对的)
 3.进程有PCB
 4.一个进程只能对应一个程序,一个程序可以对应多个进程。
awk '{}' filename
PCB : 操作系统感知进程存在的重要数据结构。
状态变迁:
 三态
 linux7态
ps 查看进程状态
 ps aux
 ps -ef
 
Linux 对应的PCB数据结构:task_struct{
 进程标识符
 进程状态
 进程优先级
 各种时间信息
 进程间通信信息
 内存使用情况
 寄存器信息(保存现场)
 }

进程标识符:
 操作系统会给每个进程一个独一无二的标号。
 编号范围(unsize_t)[2, cat /proc/sys/kernel/pid_max]
 0 内核进程
 0号进程启动1号进程。 init
 swap 分区

创建进程的一般进程:
 给新建的进程分配一个标识符,在内核中创建PCB
 复制父进程的环境(PCB内的信息)
 给子进程分配资源,栈,堆,代码,数据等。
 复制父进程的地址空间内容到子进程的地址空间
 将进程置为就绪态,放到就绪队列
 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


寄存器:
pc 下一条指定的地址
esp 栈顶指针
ebp 基址

猜你喜欢

转载自blog.csdn.net/porryCn/article/details/80426147