
\documentclass[a4paper]{article}

\setlength\textwidth{6.5in}
\setlength\oddsidemargin{0in}
\setlength\evensidemargin{0in}

%\setlength\headheight{0in}
%\setlength\headsep{0in}

%\setlength\topmargin{-0.5in}
%\addtolength{\textheight}{0.5in}


\newcommand{\SIG}[1]{\ensuremath{\mathit{#1}}}
\newcommand{\Idiom}[1]{\textsl{#1}}
\newcommand{\IF}[0]{\textbf{if}}
\newcommand{\FI}[0]{\textbf{fi}}
\newcommand{\SKIP}[0]{\textbf{skip}}
\newcommand{\DO}[0]{\textbf{do}}
\newcommand{\OD}[0]{\textbf{od}}

\usepackage{latexsym}
\usepackage[spanish]{babel}

\title{Programaci\'on Concurrente \\ Pr\'actico 9: T\'ecnica del Sem\'aforo Binario Dividido}
\author{J. Blanco, N. Wolovick}


\begin{document}
\maketitle

Se tienen los siguientes problemas de sincronizaci\'on:

\begin{enumerate}
	
	% de Javier, el que hizo Laurita
	\item{\textbf{Buffer compartido} \\
		Existen productores y consumidores de dos tipos que comparten un buffer com\'un de capacidad $N$.
		Las operaciones sobre el buffer son $producir_0$, $consumir_0$, $producir_1$ y $consumir_1$.
		Sincronizar el sistema de manera tal que no se produzcan \Idiom{overflows} o \Idiom{underflows} del buffer com\'un.
	}


	%And00 - 4.30
	\item{\textbf{Ba\~no Unisex} \\
		Suponga que hay s\'olo un ba\~no en toda la facultad que puede ser usado por varones y mujeres, pero no al mismo tiempo.
		Los varones y mujeres de la facultad se comportan m\'as o menos de la siguente manera\footnote{Abstracci\'on que s\'olo interesa a este problema.}.
		\[ *[ventrar(); vsalir()] \]
		\[ *[mentrar(); msalir()] \]
		Sincronice para que el ba\~no siempre sea unisex.
	}


	%And00 - 4.25
	\item{\textbf{Mol\'ecula de Agua}\\
		Suponga \'atomos de hidr\'ogeno y ox\'{\i}geno rebotando en el espacio, intentando juntarse en mol\'eculas de agua.
		Esto requiere que dos \'atomos de hidr\'ogeno y uno de ox\'{\i}geno sincronicen.
		Los \'atomos de hidr\'ogeno $H$ y ox\'{\i}geno $O$ son simulados por procesos.
		Cada \'atomo $H$ llama a $Hready$ cuando quiere combinarse en una mol\'ecula de agua, mientras que los \'atomos $O$, llaman a $Oready$.
		El procedimiento $makeWater$ que siempre est\'a siendo llamado por el proceso $Naturaleza$, produce el agua y para mantener el equilibrio f\'{\i}sico-qu\'{\i}mico de la tierra, disminuye en uno la cantidad de $O$ listos y en dos la cantidad de $H$ listos.
	}

\end{enumerate}

Para cada uno de ellos:

\begin{enumerate}
	\item{Defina el estado compartido del sistema.}
	\item{Defina las operaciones at\'omicas sobre el estado.}
	\item{Defina el invariante que debe cumplir el estado compartido.}
	\item{Calcule las precondiciones necesarias para que las operaciones mantengan el invariante.}
	\item{Aplique la t\'ecnica del \Idiom{Split Binary Semaphore}.}
	\item{Intente simplificar la soluci\'on insertando aserciones que deber\'a demostrar v\'alidas.}
\end{enumerate}


\end{document}
