! "
#
! "
#
$
$
#define BUFFER_SIZE 10
typedef struct {
. . .
} item;
item buffer[BUFFER_SIZE];
int in = 0;
int out = 0;
!
$
!
$
!
<
H
=
= B
( "
;
B = =
% &
B #9 #7<
# % # &
# = ( (
) ( " !
:
#
:
#
#
#
while (true) {
flag[i] = TRUE; turn = j;
while ( flag[j] && turn == j);
CRITICAL SECTION
flag[i] = FALSE;
REMAINDER SECTION
}
" * " ! ( ( ++ ,
#9 B #9 394
,
:
:
A "
/*
/*
! "
" %7RE9& "
A B
S
- ! "
I
I
-+ 9
5
6
DE #
>7?
7U I
% &
DU
% &
7V #
>@?
#
7
@B
I
. $
,
A "
A " W
A " W
$
#
$
#
,
=,
#
!
I
#
#
#
*
*
7
9
,
,
,
,
#
#
,
,
;
;
!
!
=
=
I
I
#
#
*
7B
*
7B
#
#
% & H
: