32 lines
1.7 KiB
TeX
32 lines
1.7 KiB
TeX
\documentclass[10pt]{article}
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage{amsmath,amsthm,amssymb}
|
|
\usepackage{fullpage}
|
|
\usepackage{url}
|
|
\pagenumbering{gobble}
|
|
\usepackage{hyperref}
|
|
|
|
\title{ Tutorial: Breakdown Desastroso}
|
|
\author{Kattis - Disastrous Downtime}
|
|
\date{}
|
|
\begin{document}
|
|
\maketitle
|
|
Para resolver o problema, utilizaremos uma \textbf{fila de prioridade (min-heap)} para armazenar o \textbf{instante em que cada servidor ficará livre} para ser utilizado novamente. Além disso, manteremos uma variável para registrar o \textbf{número máximo de servidores ativos} em um dado momento da simulação.
|
|
|
|
A cada nova requisição, verificamos o elemento no topo da fila, isto é, o servidor que ficará disponível mais cedo.
|
|
\begin{itemize}
|
|
\item Se o tempo armazenado nesse elemento for \textbf{menor que o instante da requisição atual}, significa que o servidor já está livre e pode ser reutilizado, então o removemos da fila.
|
|
\item Caso contrário, o servidor ainda está ocupado, e portanto \textbf{precisaremos ativar um novo servidor} para atender à requisição.
|
|
\end{itemize}
|
|
|
|
Em ambos os casos, inserimos na fila um novo valor correspondente a $(instante\_requisição + 1000)$, indicando que o servidor recém-utilizado permanecerá ocupado pelos próximos $1000$ milissegundos.
|
|
|
|
Durante o processo, atualizamos continuamente a variável que armazena o \textbf{maior tamanho alcançado pela fila}, representando o pico de servidores simultaneamente ativos.
|
|
|
|
Ao final da simulação, o número mínimo de servidores necessários será dado por:
|
|
\[
|
|
\left\lceil \frac{n_{\text{máx}}}{K} \right\rceil
|
|
\]
|
|
onde $K$ é o número de requisições que cada servidor consegue processar simultaneamente.
|
|
\end{document}
|