关于线程、进程、用户态、内核态的不严谨体会

1.进程对象,维护一个虚拟内存到物理内存的映射表,以便达到不同进程对相同虚拟内存的操作映射到对不同物理内存的操作。
2.线程对象,维护两套栈(内核态,用户态),以便不同线程的PUSH,POP堆栈操作,针对各自的虚拟内存。至于两套栈,是为了用户态和内核态切换时使用的,如系统调用。

3.用户态与内核态:用户态的线程只能访问用户态的内存空间,要想访问内核态空间,必须发生切换;
而内核态的线程,不仅可以访问内核态空间,也可以访问用户态空间,所以可以直接读写用户态空间的数据或执行用户态空间的函数,而不需要发生状态切换。

Windows32GUI编程中的WndProc()就是作为回调函数,是可以被内核态线程调用(处理SendMessage())的,也就是说位于用户空间的函数运行在了内核态。
一个线程处于哪种态,不在于执行的指令函数位于哪个空间,而在于特权寄存器是否被设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值