程序在CPU工作简图
MMU工作简图
内存管理单元 MMU的作用:
1.完成虚拟内存和物理内存的映射
2.设置修改内存访问级别
CPU的内存访问级别由高到低 0->1->2->3,虚拟地址空间只使用到了0(内核区)和3(用户区),在两者之间进行切换。
同一个程序被两个不同的进程开启,其虚拟地址空间用户区所占空间映射到物理内存是两个不同的存储单元,而内核区中的两个不同的PCB使用的是同一块物理内存
进程控制块PCB【进程描述符】
每个进程在内核中都有一个进程控制块PCB来维护进程相关的信息,Linux内核的进程控制块是task_struct结构体。
task_struct的内部成员如下:
1.进程id,系统中每个进程有唯一的id,在C语言中用pid_t类型表示,是一个非负整数
2.进程的状态有 就绪、运行、挂起、停止等状态
3.进程切换需要保存和恢复一些CPU寄存器的值
4.描述虚拟地址空间的信息
5.描述控制终端的信息
6.当前工作目录
7.umask掩码
8.文件描述符表,包含很多指向file结构体的指针。
9.和信号相关的信息
10.用户id和组id
11.会话(session)和进程组
12.进程可以使用的资源上限【ulimit -a】