今天是总结《计算机操作系统》思维导图的第二天,每一次翻书都有新的收获,这可能就叫做常读常新吧,希望今天的导图对您有所帮助。
代码1:
void producer(){
while(1){
produce an item in nextp;
……
while(counter==n)
;
buffer[in]=nextp;
in=(in+1)%n;
counter++;
}
};
void consumer()
{
while(1){
while(counter==0)
;
nextc=buffer[out];
out=(out+1)%n;
counter--;
consumer the item in nextc;
……
}
};
代码2:
while(TURE)
{
进入区
临界区
退出区
剩余区
}
代码3:
boolean TS(boolean *lock){
boolean old;
old=*lock;
*lock=TRUE;
return old;
}
do{
……
while TS(&lock); /*do skip*/
critical section;
lock = FALSE;
remainder section;
}while(TRUE);
当*lock = FALSE时,表示该资源空闲;当*lock = TRUE时,表示该资源正在被使用。
代码4:
void swap(boolean *a,boolean *b)
{
boolean temp;
temp = *a;
*a = *b;
*b = temp;
}
do{
key = TRUE;
do{
swap(&lock,&key);
}while (key != FALSE);
临界区操作;
lock = FALSE;
……
}while(TURE);
学完第二章,对进程有了初步的认识,对里面抽象的概念有时还在一知半解中,控制、同步、通信,与实际有联系又感觉脱节的抽象概念,希望在思维导图的帮助下,能够构建起本章的体系结构,我觉得我会再深刻的理解,把相关知识转化为自己的语言,应该会再开一个更细的专题吧。