进程的相关概念
1.并发
2.单道程序设计
3.多道程序设计
4.cpu/mmu
5.进程控制块
6.进程状态
环境变量
1.常用的环境变量作用
2.函数
进程控制原语
1.fork函数 循环创建子进程的架构
2.exec函数 各个函数的参数使用方法/作用
3.wait/waitpid 回收子进程的一般方式
程序和进程
程序 是指编译号的二进制文件 例如a.out文件 保存在磁盘上 不占用系统资源(cpu、内存、打开的文件、设备、锁……)
进程 是一个抽象的概念 与操作系统原理联系紧密。进程是活跃的程序 占用系统资源 在内存中执行(程序运行起来 产生一个进程)
并发
并发在操作系统中 一个时间段中有多个进程都处于已经启动运行到运行完毕之间的状态 但任一个时刻点上仍只有一个进程在运行
单道程序设计模式:微软的DOS系统 同一时间cpu只能执行一个程序 下一个程序想要执行必须排队等第一个程序执行完毕 执行效率非常低
多道程序设计模式:可以看上去同时执行多个进程 但是实际上是做不到同时执行的 本质上是把每一个进程划分成多个任务片段 cpu把自己划分成多个时间轮片 然后把自己的时间轮片分配给其中的一个任务片段执行
时钟中断:是一种硬件手段 来划分cpu时间轮片的机制 当一个进程遇到时钟中断 是不可抗拒的放弃掉cpu来使得cpu执行其他进程
在多道程序设计模型中 多个进程轮流使用cpu。而当下常见cpu为纳秒级 1秒可以执行大约10亿条指令 由于人眼的反应速度是毫秒级 所以看似同时在运行
中央处理器的简易构架
cache:缓冲区
预取器每次只会从缓冲区中取一个指令
译码器的作用就是在分析这条指令在干嘛 需要哪些寄存器来配置完成运算
运算就交给ALU 这个算数逻辑单元 只会加法和左移 运算好了再返回给寄存器
mmu的基本工作原理
mmu位于cpu内部 作为一个硬件存在
虚拟地址:可用的地址空间有4G 真正占用的内存却没这么大
0x804a4000 int a = 10;
物理地址 1000
mmu帮助把虚拟地址和物理地址对应
cpu对于内存的访问级别分为3 2 1 0 其中3是最低的 0是最高的 Linux只使用了3级和0级
对照虚拟内存 用户空间是3级 内核空间是0级
进程彼此是独立的 同时运行两个a.out在物理内存上分别要分配物理内存空间 但是内核却只需要一份 两份同用一份内核空间
进程控制块PCB
每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息 linux内核的进程控制块是task_struct结构体 在其内部成员有很多 重点掌握以下部分: