一,进程的概念:
在内存中执行的程序;进程执行必须按顺序进行
一个程序可以是多个进程,多个用户可以执行同一程序
程序是存储在磁盘(可执行文件)上的被动实体
进程处于活动状态:当操作系统的加载器将可执行文件加载到内存中时,程序成为进程。
二,ELF
可执行和可链接格式(ELF):目标文件再不同的系统或平台上具有不同的命名格式
一个统一的格式:
1,可重定位对象文件(.o),
2,可执行对象文件(a.out或无扩展名)
3,共享对象文件(.so)
ELF对象文件格式:
1,ELF标题:
字长、字节顺序、文件类型(.o、exec、.so)、机器类型等
2,段头表:
页面大小、虚拟地址、内存段(节)、段大小
3,.text片段:
代码
4,.rodata片段:
只读数据:跳转表,恒定数据
5,.data片段:
初始化的全局变量
6,.bss片段:
未初始化的全局变量
“以符号开头的块”
“更好地节省空间”
具有节标题,但不占用空间
进程组成:
1,程序代码,也称为text部分
2,包含临时数据的stack
例如,函数参数、返回地址、局部变量
3,包含全局变量和静态变量的data部分
4,包含在运行时动态分配的内存的heap
5,程序计数器、处理器寄存器(包括CPU内程序的所有当前数据)
进程状态:
当一个进程执行时,它会改变状态
新的:正在创建流程
运行:CPU正在执行指令
等待:进程正在等待某个事件发生
就绪:进程正在等待分配给处理器
终止:执行已完成
进程控制块
每个进程在操作系统内用进程控制块来表示
PCB:与每个进程相关的信息,可以存储在结构类型中
**进程状态:**运行,等待…
程序计数器:下一个要执行的指令的地址
CPU寄存器:所有以进程为中心的寄存器的内容
CPU调度信息:优先级、调度队列指针
内存管理信息:分配给进程的内存
记账信息:使用的CPU、启动后经过的时钟时间、时间限制
I/O状态信息:分配给进程的I/O设备、打开的文件列表
PCB是一种内核数据结构:
1,存储在为内核保留的内存中;
2,过程本身是看不见的;
3,其信息仅因内核修改。
所有的PCB加在一起就是内核如何跟踪内存中存在哪些进程,它们在内存中的位置,它们当前正在做什么。每个进程在内核中都有相应的唯一PCB。当创建一个新进程时,内核会为其创建一个新的PCB。当进程死亡时,内核会删除进程的PCB。