esto es lo que tengo...
Algoritmo No. 1
Código:
#include <conio.h>
#include <iostream.h>
void proceso1();
void proceso2();
void regionCritica(int turno);
int turno;
int pid;
int main()
{
turno = 1;
proceso1();
proceso2();
system("pause");
return 0;
}
void proceso1()
{
while(true)
{
cout <<"proceso 1 entrando a region critica....\n";
while(turno == 2)
{
}
cout<<"Proceso 1 esta en region critica...\n";
regionCritica(turno);
turno = 2;
cout << "Proceso 1 saliendo de region critica...\n\n\n";
}
}
void proceso2()
{
while(true)
{
cout <<"Proceso 2 entrando a region Critica";
while(turno == 1)
{
}
cout <<"Proceso 2 dentro de region critica...\n";
regionCritica(turno);
turno = 1;
cout << "Proceso 2 saliendo de region critica...\n\n\n";
}
}
void regionCritica(int turno)
{
int temp;
temp = turno;
cout<<temp++<<"\n\n";
}
Algoritmo No. 2
Código:
#include <conio.h>
#include <iostream.h>
#include <windows.h>
void regionCritica();
void Proceso1();
void Proceso2();
bool bandera_proceso1,bandera_proceso2;
int main()
{
bandera_proceso1 = false;
bandera_proceso2 = false;
Proceso1();
Proceso2();
return 0;
}
void Proceso1()
{
while(true)
{
cout <<"Entrando region Critica proceso1\n";
bandera_proceso1 = true;
while(bandera_proceso2)
{
}
cout <<"Proceso1 esta en region Critica\n";
//system("pause");
regionCritica();
bandera_proceso1 = false;
cout <<"Proceso1 saliendo de region Critica\n";
}
}
void Proceso2()
{
while(true)
{
cout <<"Proceso2 entrando a region Critica\n";
bandera_proceso2 = true;
while(bandera_proceso1)
{
}
cout<<"Proceso2 Esta en region Critica\n";
//system("pause");
regionCritica();
bandera_proceso2 = false;
cout <<"Proceso2 saliendo de region Critica\n";
}
}
void regionCritica()
{
int temp=0;
cout<<temp++<<endl<<endl;
Sleep(3000);
}
Gracias por cualquier ayuda...