Buscar

Relatório - Escalonadores

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL 
 
DOURADOS – MS 
Novembro 2013 
Acadêmico: Fábio Goulart de Matos RGM: 017707 
Acadêmico: James Gotardi Castilho RGM: 15756 
 
Sistemas Operacionais e Aplicações – Silberschatz 
Relatório – Escalonadores de Processos. 
Introdução 
Relatório de desenvolvimento dos escalonadores de processo em 
linguagem C, em ambiente UBUNTU/LINUX. Descreve os procedimentos 
utilizados, e dificuldades encontradas durante todo o processo de 
desenvolvimento da aplicação. 
Desenvolvimento 
Para cumprir as exigências do projeto foram implementados 4 
arquivos: 
 Makefile: contém todos os parâmetros de compilação. Assim 
basta acessar o terminal no Linux, chamar o diretório onde 
estão todos os arquivos das instruções e chamar o arquivo 
Makefile, os resultados serão exibidos na tela. 
 Main.c: contém a chamada dos procedimentos, e alimentação 
dos dados para o processamento. O modelo de lista de 
processos passado no enunciado do trabalho foi utilizado para 
alimentar o arquivo de entrada. 
 Escalonador.h: contém os protótipos das funções e estrutura 
do processo, que foram implementadas no arquivo 
escalonador.c. 
 Escalonador.c: contém a implementação dos protótipos 
declarados no arquivo escalonador.h. 
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL 
 
DOURADOS – MS 
Novembro 2013 
As imagem a seguir ilustram as implementações realizadas, assim 
como a descrição dos pontos de maior dificuldade no desenvolvimento. 
Mekifile: 
 
Contém os parâmetros de chamada das funções implementadas, 
além de funções nativas do próprio GCC, que garantem um código limpo e 
sem warning. 
Main.c: 
 
O enunciado do trabalho pedia uma menu dinâmico, deixando a 
critério do usuário inserir a quantidade de processos que ele quisesse. 
Uma das dificuldades foi criar a lista de processos de maneira dinâmica, 
assim o desenvolvido foi uma aplicação estática apenas com a inserção 
dos processos passados no enunciado do trabalho. 
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL 
 
DOURADOS – MS 
Novembro 2013 
Escalonador.h: 
 
Contém o protótipo das funções implementadas no arquivo 
escalonador.c: 
 Struct processos: contém os parâmetros que compõe um 
processo, como identificador, tempo de chegada, pico do 
processo, prioridade, tempo de execução e tempo de espera. 
Além de um ponteiro para o próximo processo. 
 Inicializa_processos: função que faz a alocação de memoria 
para o novo processo, e atribui a ele os valores passados por 
parâmetro. 
 Listaprocessos: procedimento que mostra na tela os 
processos declarados no arquivo main.c. 
 FCFS: procedimento que executa os passos realizados no 
escalonador FCFS. Esse foi o procedimento mais fácil de ser 
implementado, posto que os processos sejam executados na 
ordem que vão chegando, ou seja, o primeiro que entra é o 
primeiro que sai. 
 PRIORIDADE: a implementação desse procedimento tem um 
grau de dificuldade maior, posto que a lista de processos 
precisa ser ordenada de forma crescente, assim os elementos 
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL 
 
DOURADOS – MS 
Novembro 2013 
que estiverem no inicio da lista serão executados primeiro. 
Esse escalonador necessita de mecanismos que, possibilitem a 
execução de processo com baixa prioridade, já que o mesmo 
ordena os processos com maior prioridade deixando os de 
mais baixa prioridade de lado. Não tivemos resultados 
negativos nesse procedimento, pois a nossa main.c, não 
possibilitou uma quantidade elevada de entradas. 
 SJF: com esse procedimento tivemos um problema 
semelhante ao do escalonador de prioridade, pois o mesmo 
ordena os processos de acordo com o pico, ou seja, o job de 
menor tamanho é executado antes dos de maior tamanho. 
O enunciado do projeto pedia que fosse implementado o 
escalonador de processos RR, mas não conseguimos fazer a 
implementação. Constatamos que a maior dificuldade durante o 
desenvolvimento, não foi entender os passos que cada escalonador toma 
para ordenar a fila de prontos, mas sim os problemas com as estruturas 
de ordenação, ou seja, ordenar as lista de processos de acordo com a sua 
aplicação. A saída dos processos é mostrada na tela e não em arquivo 
texto como era pedido. 
Demonstração gráfica 
 O enunciado do projeto pedia uma demonstração gráfica. Dos 
protótipos implementados, foram selecionados dois: FCFS e PRIORIDADE: 
 Em sala de aula, foi discutida uma vez a real melhoria obtida pelo 
uso correto do escalonador no sistema operacional em questão, isso é 
percebido quando a quantidade de processos é muito grande, o que não é 
o nosso caso, pois temos apenas 5 processos. Analisando o gráfico 
percebemos que o tempo de espera dos processos é menor no FCFS, mas 
isso seria diferente se a quantidade de processos fossem maiores. O 
algoritmo de prioridade executa um maior processamento de dados, assim 
o tempo de resposta dos processos é mais demorado. 
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL 
 
DOURADOS – MS 
Novembro 2013 
 
 
 
 
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL 
 
DOURADOS – MS 
Novembro 2013 
Conclusão 
Durante o desenvolvimento dos algoritmos de escalonamento, 
diferente do que havíamos imaginado no inicio do projeto, a dificuldade foi 
a implementação das estruturas de ordenação de listas ligadas, que é 
exigida pelos algoritmos SJF e PRIORIDADE. Entender os passos 
realizados pelos escalonadores para criar a lista de prontos foi mais fácil, 
do que transformar esses passos em algoritmos. 
Embora o projeto atenda parte do enunciado proposto, conseguimos 
firmar os conhecimentos obtidos sobre escalonadores. 
 
 
Referência 
Gagne, A. S. (s.d.). Sistemas Operacionais Concietos e Aplicações. 
Campus.

Outros materiais