·

Sistemas de Informação ·

Estrutura de Dados

Send your question to AI and receive an answer instantly

Ask Question

Preview text

INSTITUTO FEDERAL FLUMINENSE IFF Campus Itaperuna Prof Leandro Fernandes dos Santos leandrofsantosiffedubr Disciplina Sistemas Operacionais Atividade Prática de Sistemas Operacionais Turma Sistemas de Informação 3º Período Objetivo Esta atividade tem por objetivo consolidar conceitos de processos e algoritmos de escalonamento Observações e regras de entrega Esta atividade deverá ser realizada de forma individual Terá o valor de 6 pontos na composição da nota Desta forma servirá como a Avaliação 2 A2 da disciplina A solução deverá ser enviada por meio da plataforma runcodes até as 23h59min do dia 14032023 Pontos importantes a serem seguidos Conformidade com os requisitos aqui apresentados Uso dos conceitos de modularização Códigos bem estruturados e bem indentados Caso seja detectada a ocorrência de plágio será atribuída nota zero a todos os envolvidos Submissões que apresentarem erros de compilação ou falhas de segmentação no runcodes NÃO serão corrigidas O não atendimento dos requisitos especificados neste documento acarretará em perda de pontos Instituto Federal FluminenseIFF Campus Itaperuna Especificacao Como visto em aula abaixo pode ser visto um diagrama com os estados genericos de um processo em um Sistema Operacional Figura 1 Esquema de estados de um processo Tomando por base estes estados vocˆe devera criar um algoritmo capaz de simular um conjunto de processos que percorrem estes estados por meio de Filas com Listas Encadeadas O seu algoritmo devera funcionar da seguinte maneira Trabalhar com a ideia de quantum de tempo preempcao como visto nas aulas sobre algoritmos de escalonamento de processos Este valor deve ser utilizado para controlar o tempo que cada processo fica executando antes de ser chaveado para outro processo ou ser finalizado Deverao existir 4 filas de processos Prontos Espera Execucao e Finalizados ou seja uma fila para cada estado mostrado acima Em cada fila devera ser possıvel adicionar enfileirar e remover desenfileirar processos A estrutura dos processos devera conter 3 campos Nome Tempo de Execucao em decimos de segundo e um ponteiro para o proximo processo A estrutura das filas deverao possuir trˆes campos Nome ponteiro para inıcio e um ponteiro para o final Vocˆe devera fazer o uso da funcao sleepunsigned int seconds fornecida pelo cabecalho unistdh para simular a passagem do quantum durante a execucao de cada processo Todos os dados referentes ao quantum e respectivos processos deverao ser lidos de um arquivo O Programa devera ler o caminho do arquivo no inıcio da execucao atraves de um simples scanf Apos a leitura os dados dos processos deverao ser inseridos na fila de prontos 2 Instituto Federal FluminenseIFF Campus Itaperuna O arquivo de entrada estara sempre no seguinte formato valor quantum P1 temp exec1 P2 temp exec2 P3 temp exec3 Pn temp execn Desta forma um exemplo de arquivo valido seria o seguinte 3 P1 10 P2 5 P3 3 P4 6 Logo apos a leitura e insercao na fila de prontos os processos deverao ser inseridos na fila de execucao e a simulacao sera iniciada com o primeiro processo executando Se a fatia de tempo quantum expirou e ainda restar algum tempo de execucao no processo este devera ser adicionado a fila de espera caso contrario devera ser adicionado a fila de finalizados Este comportamento se dara enquanto existirem processos na fila de execucao Quando a fila de execucao estiver vazia e ainda existirem processos na fila de espera estes deverao ser movidos para a fila de prontos e posteriormente para a fila de execucao Deste modo a execucao se inicia novamente ate que todos os processos sejam adici onados a fila de finalizados quando entao a simulacao sera finalizada O estado atual das filas de processos devera ser mostrado todas as vezes em que ocorrer alguma mudanca nos processosfilas Transicao de estados de processo execucao espera e execucao finalizados Movimentacao nas filas espera prontos e prontos execucao Seu programa devera liberar toda e qualquer memoria previamente alocada dinamica mente 3 Instituto Federal FluminenseIFF Campus Itaperuna Exemplo de execucao do algoritmo Suponha que o arquivo citado acima tenha sido lido entao a saıda de seu algoritmo devera ser a seguinte exercicioout dados processosdat Estado atual das filas de processos Pronto P1 10 P2 5 P3 3 P4 6 Espera vazia Execucao vazia Finalizados vazia Quantum 3 Iniciando execucao Processos foram adicionados a fila de execucao Estado atual das filas de processos Pronto vazia Espera vazia Execucao P1 10 P2 5 P3 3 P4 6 Finalizados vazia P1 esta executando Quantum expirou P1 sofreu preempcao P1 foi adicionado a fila de espera Estado atual das filas de processos Pronto vazia Espera P1 7 Execucao P2 5 P3 3 P4 6 Finalizados vazia P2 esta executando Quantum expirou P2 sofreu preempcao P2 foi adicionado a fila de espera Estado atual das filas de processos Pronto vazia Espera P1 7 P2 2 Execucao P3 3 P4 6 4 Instituto Federal FluminenseIFF Campus Itaperuna Finalizados vazia P3 esta executando P3 terminou a execucao P3 foi adicionado a fila de finalizados Estado atual das filas de processos Pronto vazia Espera P1 7 P2 2 Execucao P4 6 Finalizados P3 0 P4 esta executando Quantum expirou P4 sofreu preempcao P4 foi adicionado a fila de espera A fila de execucao esta vazia movendo processos para a fila de prontos Estado atual das filas de processos Pronto P1 7 P2 2 P4 3 Espera vazia Execucao vazia Finalizados P3 0 Processos foram adicionados a fila de execucao Estado atual das filas de processos Pronto vazia Espera vazia Execucao P1 7 P2 2 P4 3 Finalizados P3 0 P1 esta executando Quantum expirou P1 sofreu preempcao P1 foi adicionado a fila de espera Estado atual das filas de processos Pronto vazia Espera P1 4 Execucao P2 2 P4 3 Finalizados P3 0 P2 esta executando P2 terminou a execucao P2 foi adicionado a fila de finalizados 5 Instituto Federal FluminenseIFF Campus Itaperuna Estado atual das filas de processos Pronto vazia Espera P1 4 Execucao P4 3 Finalizados P3 0 P2 0 P4 esta executando P4 terminou a execucao P4 foi adicionado a fila de finalizados A fila de execucao esta vazia movendo processos para a fila de prontos Estado atual das filas de processos Pronto P1 4 Espera vazia Execucao vazia Finalizados P3 0 P2 0 P4 0 Processos foram adicionados a fila de execucao Estado atual das filas de processos Pronto vazia Espera vazia Execucao P1 4 Finalizados P3 0 P2 0 P4 0 P1 esta executando Quantum expirou P1 sofreu preempcao P1 foi adicionado a fila de espera A fila de execucao esta vazia movendo processos para a fila de prontos Estado atual das filas de processos Pronto P1 1 Espera vazia Execucao vazia Finalizados P3 0 P2 0 P4 0 Processos foram adicionados a fila de execucao Estado atual das filas de processos Pronto vazia Espera vazia Execucao P1 1 Finalizados P3 0 P2 0 P4 0 6 Instituto Federal FluminenseIFF Campus Itaperuna P1 esta executando P1 terminou a execucao P1 foi adicionado a fila de finalizados Estado atual das filas de processos Pronto vazia Espera vazia Execucao vazia Finalizados P3 0 P2 0 P4 0 P1 0 Nao ha mais processos a serem executados Simulacao finalizada Bom trabalho 7