用户态
用户空间的代码只能使用局部的一个内存空间。
内核态
内核空间的代码可以使用所有的内存。
系统调用过程
用户态线程
优点
创建,销毁,调度不需要和系统打交道,开销成本低。
缺点
- 与内核线程协作频繁切换内核态和用户态。(IO操作)
- 内核态线程之间协作,有时需要内核线程辅助。(IO操作)
- 无法充分利用多核实现高并发。一个应用进程一次只能执行
- 线程一旦阻塞,无法自动切换其他线程。
内核态线程
优点
- 充分利用多核优势。
- 系统调度,一个线程阻塞,会换另一个。
缺点
- 不能创建过多。
- 创建和切换成本高,需要切换到内核态。
用户态线程和内核态线程的映射
参考:
- 拉钩教育 重学操作系统
- [用户态和内核态:用户态线程和内核态线程有什么区别?]((52条消息) 用户态和内核态:用户态线程和内核态线程有什么区别?_张俊杰1994的博客-CSDN博客_用户态线程与内核态线程)