程序是存放在存储介质上的一个可执行文件 而进程是程序执行的过程
进程的状态是变化的 其包括进程的创建 调度和消亡
程序是静态的 进程是动态的
平时写的代码 通过编译器编译 最终称为一个可执行程序 当这个可执行程序运行起来后(没结束之前)就称为了一个进程
同一个程序可以加载位不同的进程 彼此不影响
在linux操作中 操作系统是通过进程完成一个个任务 进程是管理事务的基本单元
进程拥有自己独立的处理环节(环境变量 运行目录 等)
和系统资源(处理器cpu占用率 存储器 io设备 数据程序)
并行和并发
并行指同一时刻 有多条指令在多个处理器上同时执行(两个队列同时使用两台咖啡机)
并发指同一时刻只能有一条指令执行 但多个进程被快速轮换执行 使宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行,只是把时间分成若干段使多个进程快速交替的执行(两个队列交替使用一台咖啡机)
MMU内存管理单元 使中央处理器cpu用来管理虚拟存储器、物理存储器的控制线路,同时负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权 多用户多进程操作系统
进程控制块PCB
进程运行使,内核为进程每个进程分配一个pcb进程控制块 维护进程相关信息,linux内核的进程控制块是task_struct结构体
其内部成员很多
进程id 系统中每个进程有唯一的id
进程的状态 有就绪 运行 挂起 停止等状态
进程切换时需要保存和回复的一些cpu寄存器
描述虚拟地址空间的信息
描述控制终端的信息
当前的工作目录
umask掩码
文件描述符表 包含很多指向file结构体的指针
和信息相关的信息
用户id和组id
会话和进程组
进程可以使用的资源上限