\documentclass[12pt]{amsart}
\usepackage[portuges]{babel}
\usepackage{boxedminipage}
\usepackage[latin1]{inputenc}
% uncomment next line to get pdf files with hyperlinks
\usepackage[pdftex,bookmarks=true]{hyperref}
\def\cao{\c c\~ao}
\def\cc{\c c}
\def\coes{\c c\~oes}
\def\ii{\'{\i}}
\def\stdin{\emph{stdin}}
\def\stdout{\emph{stdout}}
\def\sqn{seqüência}
\def\ibf#1{\item\textbf{#1}}
\def\rw{\emph{readers-and-writers}}
\title{Sistemas Operacionias\\ Notas finais}

\author{Raul H.C. Lopes}


\begin{document}

\maketitle

\section{As notas}

\begin{tabular}{|l|r|r|r|r|r|}\hline
Aluno           & P.0 & P.1 & TP.0 & TP.1 & Média \\ \hline
Alexandre       & 6.4 & 9.5 &  9.0 & 8.0 & 8.3 \\ \hline
Adailton        & 2.6 & 1.5 &  -- & -- & 2.1 \\ \hline
Arthur          & 2.0 & 2.0 &  -- & -- & 2.0 \\ \hline
Cleber          & 2.0 & 0.0 &  -- & -- & 1.0 \\ \hline
David           & 4.8 (!) & 3.3 (!) & 5.0 & -- & 4.2 (!)\\ \hline
Fabrício        & 3.2  & 3.3 & 9.0 (!)  & 6.0 & 4.1 (!) \\ \hline
Hilário         & 5.8 & 9.5 & 9.0  & 8.0 & 7.9  \\ \hline
Hudson          & 5.4 (?) & 3.3 (!) &  9.0 (!) & 4.0 & 4.9 (!) \\ \hline
Jaci            & 4.0 (!) & 1.8 (!) & 9.95 (!) & 7(!)(w2)  & 4.5 (!) \\ \hline
Jociel          & 6.6 & 8.5 & 9.0 & 9.0 & 7.9 \\ \hline
Kellen          & 4.2 & 2.5 & (T) & 4.0 &  3.5 \\ \hline
Lilian          & 4.5 & 6.3 &  9.0  & -- & 6.0 \\ \hline
Luciana         & 6.2 & 5.8 &  5.0 & 4.0 & 6.0 \\ \hline
Mariella        & 4.0 & 7.8 &  9.0 & 9.0  & 6.6 \\ \hline
Márcio          & 6.8 & 9.8 &  9.0 & 8.0 & 8.4 \\ \hline
Michelle        & 4.8 & 0.0 &  --  & -- & 2.4 \\ \hline
Otávio          & 4.2 & 1.0 & 9.95 (!) & 7 (!) &  4.3 (!) \\ \hline
Patrick         & 4.6 & 7.8 & 9.0 & 5.0 (IO)  & 6.5 \\ \hline
Pedro Busatto   & 5.2 (!) & 4.5 (!) &  9.0 (!) & 6.0 & 5.4 (!) \\ \hline
Pedro Henrique  & 4.2 & 6.5 &  9.0 & 4.0 &  4.8 \\ \hline
Peterson        & 0.0 & 0.0 &  --  & --  & 0.0 \\ \hline
Rafael          & 5.0 (!) & 6.0 (!) &  5.0 (!) & 5.0  & 5.5 (!) \\ \hline
Rodrigo         & 5.0 (!) & 4.3 (!) & 9.0  & 6 & 5.3 (!) \\ \hline
Suzana          & 2.4 & 0.0  & -- & --  & 1.2 \\ \hline
\end{tabular}
\vfill

As observa\coes:
\begin{itemize}
  \ibf{(!)}: nota revisada.
  \ibf{(w2)}: computado com peso 2.
\end{itemize}

\section{As provas}
A seguir, seguem os critérios usados para corrigir as provas. Fundamentalmente,
eles servem para você rever sua prova e conferir cada item e decidir se
realmente tem direito a revisão.

\subsection{A primeira parte da primeira prova}

\subsubsection{Primeira questão}
\begin{itemize}
  \item definir claramente em que situa\cao\ um processo perde a CPU;
  \item definir como um processo entra em \emph{Ready} pela primeira vez, 
incluíndo
o crédito que ele recebe;
  \item definir o crédito do processo sempre que entra em \emph{Ready};
  \item definir o crédito inicial do processo ao entrar em \emph{Run};
  \item identificar as polítcas obtidas, provando seu argumento.
\end{itemize}

\subsubsection{Segunda questão}
\begin{itemize}
\item definir claramente como o processo que admistra a árvore em disco
se comunicará com outro processo (não é apenas uma questão de existência
de um cache);
\item definir claramente como administrar a concorrência, usando apenas
as duas primitivas propostas, garantindo exclusão mútua;
\item mostrar como implementar \emph{SJF}, sem provocar erros no
acesso concorrente (não era apenas uma questão de definir um
algoritmo ``simpático'' de contagem de tempo);
\item discutir e propor solu\coes\ para problema de starvation, que não
perturbassem a concorrência.
\end{itemize}

\subsection{A segunda parte da segunda prova}
\subsubsection{Primeira questão}
Demandava apenas uma discussão informal, mas clara:
\begin{itemize}
  \item o que é o problema de \rw;
  \item o que é exclusão mútua no problema de \rw;
  \item possibilidade de deadlock no \rw;
  \item possibilidade de starvation no \rw;
  \item possível solu\cao\ com suas qualidades e defeitos. 
\end{itemize}

Em resumo, se copiasse a se\cao\ correspondente do livro, estaria bom.

\subsubsection{Segunda questão}
O algoritmo de Peterson foi apresentado duas vezes em sala de aula. Na 
segunda vez, foi introduzido um erro, na atribui\cao\ à variável $v$ e
proposto como exercício que o aluno identificasse e corrigisse o erro. 
Quem fez o exercício, resolveu a questão.

\subsubsection{Terceira questão}
Essa questão apresentava varia\cao\ do algoritmo de Lamport para 2 processos.
Solu\cao, trivial, está no livro do Ben-Ari 
``Principles of Concurrent Programmning.'' Processo $0$ entra na se\cao\ 
crítica se $n.1 = 0$ ou se $n.0<n.1$. Bastava alterar uma compara\cao\
no \emph{while} do processo $0$ e provar corre\cao.

\subsection{Segunda prova}
\subsubsection{Questão 1}
\begin{itemize}
  \item sem pagina\cao: considerar o uso de aloca\cao\ contígua e segmenta\cao;
abordar problemas de fragmenta\cao\ e tempos de acesso; abordar algorimos de
aloca\cao de memória;
 \item tabela de páginas direta: funcionamento, fragmenta\cao\ externa e 
interna, tamanho da tabela e sua hierarquiza\cao, tempos de acesso.
 \item Tabela invertida: funcionamento, tamanho de tabela, tempo.
 \item TLB: funcionamento, tempos.
 \item Hassh: funcionamento, tempos.

\end{itemize}

\subsubsection{Questão 2}
\begin{itemize}
  \item algoritmo de page replacement: funcionamento, viabilidade, tempos;
  \item uso de TLB;
  \item todos os casos e tempos de acesso à memória: página identificada na
TLB; não está na TLB, mas está na memória; page-fault com frame livre,
page-fault sem frame-livre.
  \item como aloca\cao\ de frames afetaria sua política.

\end{itemize}

\subsubsection{Questões 3 e 4}
Foram solucionadas em aula e estão resolvidas no livro-texto. Sem comentários.

 


\section{As notas dos trabalhos}

\section{O cálculo da média}
A média é calculada pela seguinte fórmula, já divulgada ao início do curso.

\[ \frac{(((P_0+P_1)/2)*(10-(W_0+W_1)))+(W_0 * T_0 + W_1 * T_1)}{10} \]

onde:
\begin{itemize}
  \item $P_i$ é a nota da prova $i$;
  \item $W_i$ é o peso do trabalho $i$;
  \item $T_i$ é a nota do trabalho $i$.
\end{itemize}

\subsection{O Peso dos trabalhos}
Trabalhos realizados individualmente têm o peso do trabalho multiplicado por
$1.5$.

O primeiro trabalho tem peso $1$ para quem entregou implementa\cao\ usando 
rendez-vous ou objeto protegido. Tem peso  $2$ para quem entregou os dois.
Assim, se o aluno fez rendez-vous e objeto protegido e trabalhou 
individualmente, o trabalho tem peso $3$.

O peso do segundo trabalho está definido no próprio.

Trabalhos não executados, ou com nota que diminuiria a média final do aluno, 
são considerados como tendo peso $0$.

\section{A aprova\cao}

Passa quem tiver nota igual ou superior a $6.0$.

\section{Reflexões sobre as notas}
As notas infelizmente apresentam um dado lamentável: reprova\cao\ para uns
dois terços da turma. Cabe perguntar se o tio pegou pesado. Talvez, mas
há um fato importante: dentre os aprovados apenas um ou dois precisaram 
de ``ajuda'' dos trabalhos práticos para passar. A esses bastaram as notas 
das provas. 

E as provas? Fato interessantíssimo: foram nove questões ao todo. Dessas,
cinco foram quase que inteiramente resolvidas em sala de aula e estavam
inteiramente resolvidas no livro-texto. Bastava
anotá-las, estudá-las em casa e resolvê-las para passar sem precisar de 
trabalhos.
O que houve com as pessoas que não conseguiram? Aliás, em rela\cao\
a essas pessoas, e se elas estiverem interessadas em tentar um revisão 
de nota, eu gostaria que elas trouxessem as notas de aula produzidas
de próprio punho. Algo como: $A$ está descontente com nota em prova $X$,
então vamos procurar nas notas de aula de $A$ as solu\coes\ para as questões
de $X$. Confissão do tio: tio elaborou a prova pensando em $A$.

\section{Prova final}

A maior nota da prova final foi $3.0$. Todo mundo que ficou para a prova final
está reprovado. Quem tiver interesse deve passar hoje (8/4) na minha sala,
às 17 horas. Estou considerando dar um exercício de recupera\cao, ao menos
para os que estão mais próximo da média. 


\bibliography{abbrev,analysis,formal,algorithms,program,string}

\bibliographystyle{amsplain}


\end{document}

