UNIVERSIDADE FEDERAL DO MARANHÃO
DEPARTAMENTO DE INFORMÁTICA
CURSO DE CIÊNCIA DA COMPUTAÇÃO
Disciplina: Teoria das Filas e Simulação
Prof: Mário Meireles Teixeira
Trabalho de Simulação: Sistema de Tempo Compartilhado
Objetivo
Implementar um programa de simulação para um sistema computacional de tempo
compartilhado.
Configuração e Parametrização do Sistema
Considere um sistema de tempo compartilhado composto de 16 estações de trabalho
conectadas a um servidor de arquivos com dois discos, como mostrado na figura a seguir.
As características da carga de trabalho são as mesmas para os 16 usuários; os usuários
possuem um tempo de pensar (think time) segundo uma distribuição exponencial com
média de 5 segundos.
O processamento de uma requisição requer um tempo médio de CPU de 480 ms e uma
média de 12 acessos a disco. O intervalo médio de execução da CPU por acesso a disco é,
portanto, de 40 ms e os intervalos entre os acessos aos discos são exponencialmente
distribuídos. Para efeito de modelagem do sistema, pode-se assumir que, quando um acesso
ao disco se completa, inicia-se (i) um outro intervalo de execução da CPU, com
probabilidade px, ou (ii) o processamento da requisição do usuário se completa (e um novo
tempo de pensar é iniciado), com probabilidade 1 – px. A probabilidade px é definida como
1 – 1/nio, onde nio é o número médio de acessos a disco por requisição de usuário (neste
caso, nio = 12).
As requisições aos discos são distribuídas aleatoriamente, independentemente e
uniformemente entre os dois discos. O tempo de serviço de um disco é a soma do tempo de
busca (seek time), da latência e do tempo de transferência, sendo os dados transferidos em
unidades de bloco. O tempo de busca pode ser modelado com uma distribuição uniforme
entre [0; 50] ms; o tempo de latência, igualmente entre [0; 16,7] ms; e o tempo de
transferência é fixado em 0,52 ms por bloco. Considere que cada requisição precisa
transferir somente um bloco de dados por vez.
Parte I
Elabore um programa de simulação, segundo a descrição acima, que forneça o tempo
médio de resposta por estação de trabalho e também o tempo médio de resposta global.
Todas as filas são do tipo FIFO e não há preempção. O sistema de filas é fechado, portanto
os 16 clientes devem ser criados no início da simulação; use o exemplo cpudisco.zip como
ponto de partida. Execute uma simulação com 2.000 requisições e verifique se os resultados
fornecidos pelo SimPack estão de acordo com as leis operacionais. Calcule o número médio
de requisições no sistema.
Parte II
No caso acima, assuma que o sistema é multiprogramado e pode atender, no máximo, m
clientes por vez. Quando uma estação de trabalho envia uma requisição ao sistema, esta
somente terá sua execução iniciada se o número de clientes atual for menor que m; caso
contrário, o sistema colocará a requisição em uma fila de espera até que uma das m
requisições em execução se complete. Uma possibilidade de implementação é representar a
área de espera como uma fila com m servidores. Assuma que o nível de multiprogramação
m é 6 (M/M//6/16). Execute uma simulação com 2.000 requisições e calcule os tempos
médios de espera, CPU e disco por requisição. Compare os valores do tempo médio de
resposta e do número médio de requisições no sistema com os obtidos na Parte I. Verifique
se os resultados estão de acordo com as leis operacionais.
Documentação do Trabalho
A seguinte documentação deverá ser entregue quando da apresentação do trabalho:
•
•
•
•
Programa fonte organizado e minimamente comentado (enviar por e-mail);
Relatório das simulações executadas, fornecido pelo SimPack;
Planilha com os resultados e gráficos;
Apreciação crítica dos resultados e suas conclusões.
Download

Sistema de Tempo Compartilhado - DEINF/UFMA