\documentclass{hitec}
\sloppy
% Pacotes relativos a linguagem de entrada
\usepackage[brazil]{babel}     % nomes e hifenação em português
\usepackage[latin1]{inputenc}  % aceitar texto acentuado em ISO-Latin1
\usepackage{verbatim}
%\usepackage{method}

% Pacotes relativos a fonte do texto final
%\usepackage [T1]{fontenc}      % T1 Font encoding (opcional)
%\usepackage {times}            % usar Times-Roman (default é Computer Modern)
\usepackage{latexsym}          % símbolos matemáticos adicionais
\usepackage{amsmath}
\usepackage{amssymb}

\usepackage{lscape,graphicx}
\usepackage{graphics}


\settextfraction {0.95}
\begin{document}

\newtheorem{definicao}{Definição}[section]
\newtheorem{exemplo}{Exemplo}[section]

\newcommand{\teste}[1] {
    \fbox{\scriptsize #1}
}

\title{Universidade Federal do Paraná\\Curso de Engenharia Elétrica\\TE244 - Sistemas Operacionais Embarcados\\Trabalho 1 - Gerência de Tarefas}
\author{Prof. Pedroso}
\maketitle

\section{Objetivos}

\begin{enumerate}
 \item Compreender o funcionamento dos escalonadores de tarefas do Windows e Unix.
 \item Implementar solução para o problema de concorrência proposto utilizando semáforos.
\end{enumerate}


\section{Descrição do Trabalho}

Deve ser apresentado um documento, em formato de \emph{short paper} contendo:

\subsection{Escalonamento de tarefas}

\begin{itemize}
    \item Descrição do mecanismo de escalonamento de tarefas utilizado pelo Linux.
    \item Descrição do mecanismo de escalonamento de tarefas utilizado pelo Windows.
    \item Resultados de testes comparativos: utilize o programa consumidor de CPU disponível na página da disciplina, versão multithread. Execute o programa criando 1, 2, 4, 8 e 16 threads simultâneas. Discuta a ocupação da CPU e a interação do usuário com o sistema (o usuário ainda consegue interagir com o sistema). Execute o mesmo teste novamente, mas agora aumentando a prioridade base do programa.  
\end{itemize}

Apresente uma discussão a respeito do significado dos resultados obtidos, apontando benefícios e problemas das abordagens dos dois sistemas.

\subsection{Concorrência e sincronização de processos}

Propor a solução para o problema do Papai Noel, Elfos e Renas, descrito a seguir.

Papai Noel dorme em sua casa no Polo Norte, e só pode ser despertado nas seguintes condições:

\begin{enumerate}
\item quando a última das as nove renas voltar de suas férias. As renas passam as férias no nordeste do Brasil e só voltam um pouco antes do Natal; ou
\item por \emph{vários} elfos que estão tendo dificuldades para fazerem os brinquedos. 

O problema de um elfo nunca é sério o suficiente para acordar Papai Noel (caso contrário, ele nunca poderia dormir), portanto, os elfos só podem visitar Papai Noel em grupos de três. 
Quando três elfos estão conversando com Papai Noel, quaisquer outros elfos desejando visitar Papai Noel devem aguardar. 

Se Papai Noel acorda e encontra três elfos na porta da sua casa, juntamente com a última da renas retornando das férias, ele sempre decide que os elfos podem esperar até depois do Natal, porque é mais importante 
aprontar seu trenó para sair o mais rapidamente possível. 

Supõe-se que as renas não querem deixar os trópicos e, portanto, elas ficam no Brasil até o último momento possível. 
Como o Pai Natal está pagando a conta das férias, elas sempre voltam (se não voltarem, não terão mais férias). Isso também explica a rapidez na entrega dos presentes.

A penalidade para a última rena a chegar é que ela deve ficar aguardando o Papai Noel, enquanto as outras aguardam em um estábulo quente até o momento que serão atreladas ao trenó.

Deve ser proposto um método de sincronização entre processos utilizando semáforos, e apresentar em pseudo-código \emph{com comentários e explicações}.
Considere três tipos de processos: PapaiNoel, Rena, Elfo. Utilize variáveis compartilhadas entre os processos para armazenar o número de elfos com problemas e o número de renas que retornaram das férias. Suponha que pode haver um processo PapaiNoel, nove processos Rena e um número ilimitado de processos Elfo.

\end{enumerate}



\section{Critérios de avaliação}

O trabalho deve ser implementado em equipes de até 3 pessoas. Não serão admitidos trabalhos desenvolvidos por equipes maiores.

Será realizada uma apresentação de 20 minutos onde todos os componentes da
equipe devem demonstrar conhecimento sobre a sistema em estudo. Caso um dos componentes não demonstre conhecimento sobre o trabalho implementado, sua nota será reduzida em proporção a
sua participação no trabalho.

Em caso de cópias, as equipes envolvidas terão grau zero.

\end{document}
