标签:
进程 = 资源 + 指令执行序列
一个网页浏览器
这些线程要共享资源吗?
void WebExplorer()
{ char URL[] = "http://cms.hit.edu.cn";
char buffer[1000];
pthread_create(..., GetData, URL, buffer);
pthread_create(..., Show, buffer); }
void GetData(char *URL, char *p){...};
void Show(char *p){...};
核心是Yield…
仔细看Yield ,就是100 跳到300
(3) 再往下执行会怎么样 ?
问题怎么解决?
为什么?
Yield 切换要先切换栈,然后...
void Yield(){
TCB1.esp=esp;
esp=TCB2.esp;
jmp 204; 应该去掉
}
ThreadCreate 的核心就是用程序做出这三样东西
void ThreadCreate(A)
{
TCB *tcb=malloc();
*stack=malloc();
*stack = A;//100
tcb.esp=stack;
}
gcc -o explorer get.c yield.c … 或 或 gcc get.c.. -lthread
GetData 下载到文本时会调用Yield()…
如果进程的某个线程进入内核并阻塞,则…
ThreadCreate是系统调用,会进入内核,内核知道TCB
[No000039]操作系统Operating Systems用户级线程User Threads
标签:
原文地址:http://www.cnblogs.com/Chary/p/No000039.html