摘要: 1、共享变量1)线程存储模型线程由内核自动调度,每个线程都有它自己的线程上下文(thread context),包括一个惟一的整数线程ID(Thread ID,TID),栈,栈指针,程序计数器,通用目的寄存器和条件码。每个线程和其他线程一起共享进程上下文的剩余部分,包括整个用户的虚拟地址空间,它是由只读文本(代码),读/写数据,堆以及所有的共享库代码和数据区域组成的,还有,线程也共享同样的打开文件的集合。[1]寄存器从不共享,而虚拟存储器总是共享。The memory model for the separate thread stacks is not as clean(整齐清楚的). Th 阅读全文
posted @ 2011-07-10 11:04 浪里飞 阅读(690) 评论(0) 推荐(0) 编辑
摘要: 1、如果逻辑控制流在时间上重叠,那么它们就是并发的。这种现象,称为并发(concurrency)。2、为了允许服务器同时为大量客户端服务,比较好的方法是:创建并发服务器,为每个客户端创建各自独立的逻辑流。现代OS提供的常用构造并发的方法有:进程和线程。1)每个逻辑流都是一个进程,由内核来调度维护。每个进程都有独立的虚拟地址空间,控制流通过IPC机制来进行通信。2)线程:运行在单一进程上下文中的逻辑流,由内核进行调度,共享同一进程的虚拟地址空间。由于进程控制和IPC的开销较高,所以基于进程的设计比基于线程的设计慢。常见IPC有:管道,FIFO,共享存储器,信号。3、基于线程的并发编程线程由内核自 阅读全文
posted @ 2011-07-10 09:57 浪里飞 阅读(1209) 评论(1) 推荐(0) 编辑