intel的cpu分為四個(gè)運(yùn)行級(jí)別ring0~ring3,內(nèi)核創(chuàng)建進(jìn)程,創(chuàng)建進(jìn)程的同時(shí)創(chuàng)建進(jìn)程控制塊,創(chuàng)建進(jìn)程自己的堆棧。一個(gè)進(jìn)程有兩個(gè)堆棧,用戶(hù)棧和系統(tǒng)棧。用戶(hù)堆棧的空間指向用戶(hù)地址空間,內(nèi)核堆棧的空間指向內(nèi)核地址空間。
有個(gè)CPU堆棧指針寄存器,進(jìn)程運(yùn)行的狀態(tài)有用戶(hù)態(tài)和內(nèi)核態(tài),當(dāng)進(jìn)程運(yùn)行在用戶(hù)態(tài)時(shí)。CPU堆棧指針寄存器指向的是用戶(hù)堆棧地址,使用的是用戶(hù)堆棧;當(dāng)進(jìn)程運(yùn)行在內(nèi)核態(tài)時(shí),CPU堆棧指針寄存器指向的是內(nèi)核堆棧地址,使用的是內(nèi)核堆棧。