当前位置: 技术问答>linux和unix
有关进程创建
来源: 互联网 发布时间:2016-07-01
本文导语: 今天上操作系统的课,有点听不明白。 L0, L1,L2,L3,是什么呢?他们是一个引发一个并行执行的?如果是的话哪个执行第一啊,还是哪个执行第一都没有所谓? JOIN 究竟是什么意思呢? Count 是用来计算什么的?...
今天上操作系统的课,有点听不明白。 L0, L1,L2,L3,是什么呢?他们是一个引发一个并行执行的?如果是的话哪个执行第一啊,还是哪个执行第一都没有所谓? JOIN 究竟是什么意思呢? Count 是用来计算什么的?ProcA,ProcB 与 L0, L1,L2,L3有什么关系呢?
////////////////////////////////////////////////////////////////////
创建进程:
FORK(label): Create another process in the same address
space beginning execution at instruction label
QUIT(): Terminate the process.
JOIN(count):
disableInterrupts();
count--;
if(count > 0) QUIT();
enableInterrupts();
//////////////////////////////////////////////////////////////////
procA() {
while(TRUE) {
;
update(x);
;
retrieve(y);
}
}
procB() {
while(TRUE) {
retrieve(x);
;
update(y);
;
}
}
////////////////////////////////////////////////////////////
L0: count = 2;
;
update(x);
FORK(L2);
;
L1: JOIN(count);
retrieve(y);
goto L0;
L2: retrieve(x);
;
update(y);
FORK(L3);
goto L1;
L3:
QUIT();
////////////////////////////////////////////////////////////////////
创建进程:
FORK(label): Create another process in the same address
space beginning execution at instruction label
QUIT(): Terminate the process.
JOIN(count):
disableInterrupts();
count--;
if(count > 0) QUIT();
enableInterrupts();
//////////////////////////////////////////////////////////////////
procA() {
while(TRUE) {
;
update(x);
;
retrieve(y);
}
}
procB() {
while(TRUE) {
retrieve(x);
;
update(y);
;
}
}
////////////////////////////////////////////////////////////
L0: count = 2;
;
update(x);
FORK(L2);
;
L1: JOIN(count);
retrieve(y);
goto L0;
L2: retrieve(x);
;
update(y);
FORK(L3);
goto L1;
L3:
QUIT();
|
这么猛,, goto.