专题6-Linux内核子系统
第1课-Linux内存管理子系统
从架构理解内存管理
1。虚拟地址映射
支持的虚拟地址空间是硬件决定的,地址线决定的
0-3G是用户空间,3-4G是内核空间
内核空间分布:
1。直接映射区3-3+896M
2.vmalloc区
3.永久映射区
一个物理页4K
高10位+cr3寄存器=通过页目录页表的基地址
中间10位+也目录的基地址=页表中页的基地址
低12位+页基地址=物理地址
直接映射区中虚拟地址=物理地址+3G
vmalloc没有固定的线性映射关系
固定映射区和特定寄存器映射关系,操作寄存器
malloc分配的是虚拟地址,不会占用内存,只有使用的时候才会分配内存
malloc请求内存
当你访问的时候会找,找不到就缺页异常,然后从空闲页框分配内存
Kmalloc申请内存就直接分配了,即使不使用,返回的地址直接绑定物理内存
进程管理子系统
阻塞态2可以发信号唤醒
组态3可以特殊信号唤醒,待有效资源唤醒,但是不能由其他进程信号或终中断唤醒
组赛态4,可以被SIGKILL唤醒
PCB:进程控制块
先实时进程,实时进程之间,先来先服务,或者时间片轮转
主动放弃cpu