操作系统笔记(五)线程管理
- 进程回顾
- 资源分配的基本单位
- 线程
- 系统调度的基本单位
- 进程可以包含多个线程。这些线程共享代码区,数据区和打开的文件。
- 每个线程有独立的线程上下文(program counter,寄存器和其他的状态信息)和栈。
- 优势:1)responsiveness 2) 资源共享 3) 高效,创建快,context switch快 4)适合多处理器的架构。

- 线程的实现
- 用户空间的用户线程 and 内核空间的内核线程
- 用户线程: 依赖于线程库来实现线程的创建、调度(节省时间,不用trap into os,调度算法可定制)和管理。但对于内核而言,多线程是不可见的。【缺点:系统调用阻塞;无法利用多处理器的优势】
- 内核线程:操作系统支持,内核实现线程的创建,调度和管理。
- Linux线程创建例子:
-
#include <pthread.h> int sum; void* runner(void* arg); int main() { pthread_t tid; pthread_attr_t attr; // default attribute pthread_attr_init(&attr); // create thread pthread_create(&tid, &attr, runner, 82); // wait thread to exit pthread_join(tid, NULL); pfrintf("sum = %d \n", sum); } void * runner(void* arg) { int i, upper = (int)arg; sum = 0; if(upper > 0) { for(i = 1; i <= upper; i++) sum+= i; } // exit pthread_exit(0); }

浙公网安备 33010602011771号