【ARM嵌入式汇编基础】- 操作系统基础(二)
操作系统基础(二)
文章目录
- 操作系统基础(二)
- 6、线程
- 7、进程内存管理
- 8、内存页
- 9、内存保护
- 10、匿名内存和内存映射内存
- 11、内存映射文件和模块
6、线程
程序首次启动时,会创建一个新进程,并为该程序分配一个线程。该初始线程负责初始化进程并最终调用程序中的主函数。多线程程序可以请求向进程添加其他线程来处理后台工作。例如,多线程 Web 应用服务器可能会为每个传入请求使用一个线程,以防止长时间运行的请求阻塞其他用户访问网站。
进程始终至少有一个线程。当进程中的最后一个线程完成时,该进程将退出。查看程序内部线程的一种方法是通过 top11 程序,该程序使用语法 top –H –p 。例如,图 6.1 显示了程序 rsyslogd 内部正在运行的线程。
每个线程独立运行代码,逻辑上就像一个独立的处理器核心一样运行。每个线程都有自己的一组处理器寄存器和处理器状态,包括自己的程序计数器、堆栈指针和算术标志,以及自己内部管理的局部变量和调用堆栈。但请注意,与进程不同,线程彼此之间并非隔离。每个线程的代码和数据都加载到同一个进程中,尽管编程约定通常规定一个线程不应直接干扰另一个线程的私有数据,