- 50
- 1
- 约3.18万字
- 约 114页
- 2018-10-14 发布于浙江
- 举报
linux中内存管理.ppt
一般用户进程有自己的用户空间;同时,系统空间也是可以被进程使用的。用户在用户态下只能访问自己的空间,但通过系统调用,用户进程可以转到核心态在系统空间中实现一定的功能。 正文段(text) 存放着进程要执行的指令代码,具有只读的属性 用户数据段(user segment) 存放进程运行过程中处理的数据,它们是进程直接进行操作的所有数据,以及进程使用的进程堆栈 系统数据段(system segment) 存放着进程的控制信息 包括进程控制块PCB。 关于进程的堆栈: 每个进程都有自己的堆栈,内核在创建一个新的进程时,在创建进程控制块task_struct的同时,也为进程创建自己堆栈。一个进程 有2个堆栈,用户堆栈和系统堆栈;用户堆栈的空间指向用户地址空间,内核堆栈的空间指向内核地址空间。 当进程在用户态运行时,CPU堆栈指针寄存器指向的 用户堆栈地址,使用用户堆栈,当进程运行在内核态时,CPU堆栈指针寄存器指向的是内核栈空间地址,使用的是内核栈; 进程用户栈和内核栈之间的切换 当进程由于中断或系统调用从用户态转换到内核态时,进程所使用的栈也要从用户栈切换到内核栈。系统调用实质就是通过指令产生中断,称为软中断。进程因为中断(软中断或硬件产生中断),使得CPU切换到特权工作模式,此时进程陷入内核态,进程进入内核态后,首先把用户态的堆栈地址保存在内核堆栈中,然后设置堆栈指针寄存
原创力文档

文档评论(0)