.. include:: ../../my-header_2.txt

Pseudo-código del esquema productor-consumidor
----------------------------------------------

.. code-block:: c

	struct semaf huecos, items;
	tipo_cerrojo mutex;
	ini_semaforo(huecos, N);
	ini_semaforo(items, 0);

	Productor()
	{
		struct elemento elem;
		while (1) {
			producir_elemento(&elem);
			bajar(huecos);
			lock(mutex);
			insertar(elem);
			unlock(mutex);
			subir(items);
		}
	} 

	Consumidor()
	{
		struct elemento elem;
		while (1) {
			bajar(items);
			lock(mutex);
			retirar(&elem);
			unlock(mutex);
			subir(huecos);
			consumir_elemento(elem);
		}
	} 

.. include:: ../../my-footer_2.txt


