Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior | |||
so:escalonamento_de_disco [2015/03/27 18:34] – [Outras informações] maziero | so:escalonamento_de_disco [2023/03/29 19:13] (atual) – maziero | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== Escalonamento de disco ====== | ||
+ | Este projeto tem por objetivo implementar diferentes algoritmos de escalonamento de acessos a um disco simulado. | ||
+ | |||
+ | ===== O problema ===== | ||
+ | |||
+ | A política de escalonamento dos acessos a discos rígidos tem um impacto importante no // | ||
+ | |||
+ | * //First Come, First Served// (FCFS): os pedidos são atendidos na ordem em que são gerados pelas tarefas; sua implementação é simples, mas não oferece um bom desempenho; | ||
+ | * //Shortest Seek-Time First// (SSTF): os acessos a disco são ordenados conforme sua distância relativa: primeiro são atendidos os pedidos mais próximos à posição atual da cabeça de leitura do disco. | ||
+ | * //Circular Scan// (CSCAN): os pedidos são atendidos sempre em ordem crescente de suas posições no disco; após tratar o pedido com a maior posição, a cabeça do disco retorna ao próximo pedido com a menor posição no disco. | ||
+ | |||
+ | ===== A implementação ===== | ||
+ | |||
+ | Este projeto usa como base o projeto de [[gerente de disco]] desenvolvido anteriormente. Neste projeto você deve: | ||
+ | |||
+ | * Implementar as políticas de escalonamento de disco FCFS, SSTF e CSCAN; | ||
+ | * para cada política, implementar uma função separada que a implementa; | ||
+ | * medir o número de blocos percorridos pela cabeça do disco em cada uma dessas três políticas; | ||
+ | * medir o tempo total de execução para cada uma das três políticas. | ||
+ | |||
+ | Use o código de teste e os conteúdos de disco do projeto de [[gerente de disco]] para efetuar seus testes e medições. | ||
+ | |||
+ | ===== Outras informações ===== | ||
+ | |||
+ | * Duração estimada: 8 horas. | ||
+ | * Dependências: | ||
+ | * [[Gestão de Tarefas]] | ||
+ | * [[Dispatcher]] | ||
+ | * [[Preempção por Tempo]] | ||
+ | * [[Tarefa Main]] | ||
+ | * [[Tarefas suspensas]] | ||
+ | * [[Tarefas dormindo]] | ||
+ | * [[Semáforos]] | ||
+ | * [[Gerente de disco]] |