1.程序和进程 程序:编译好的二进制文件,在磁盘上,不占用系统资源(CPU,内存,打开的文件,设备,锁...) 进程:与操作系统联系紧密,进程是活跃的程序,占用系统资源,在内存中执行(程序运行起来,产生一个进程) 2.并发 3.并行 4.单道程序 多道程序 5.CPU 和 MMU

32位与64位主要针对的是寄存器 32位: 4字节 64位: 8字节 寄存器 速度快 容量小 硬盘 速度慢 容量大

6.硬盘到cpu 硬盘 -> 内存 -> 寄存器 -> cpu(cpu 中存储的其实是一条一条的指令( 二进制)(预处理 -> 编译 ->汇编 ->链接 ))

**预取器:**从内存中把指令取出来 **译码器:**解析指令,查看需要哪些寄存器来完成现在想要实现的功能 **ALU:**用来运算 只会加法和左移,算法回写到寄存器 7.MMU作用

虚拟地址:可用的地址空间 实际占用的内存没有那么多

MMU:虚拟地址与物理内存的映射 设置修改内存的访问级别(MMU在映射时 也会设置访问级别 为cpu设置 Linux只使用3级(用户空间)和0级(内核空间))

进程之间是互相独立的 同一程序虽然是不同的进程但是同用同一块内核空间。 pcb是位于内核空间当中,当时两个进程的pcb内容不一样,但是位于同一块物理内存

进程控制块 pcb

每个内核中都有一个进程控制块(PCB)来维护进程相关信息,linux内核进程控制块是task_struct结构体 主要掌握:

1.进程Id:每个进程都有唯一的id,在c语言中用pid_t类型表示,是一个非负整数 2.进程的状态:就绪 运行 挂起 停止

  1. 进程切换时需要保存和恢复的一些cpu寄存器

4.描述虚拟地址空间的信息 5.描述终端的信息 6.当前工作目录 7.umask掩码 8.文件描述符,包含很多指向file结构体的指针