Este documento fornece uma visão geral técnica do Sistema de Escalonamento de Tarefas desenvolvido em Java. O sistema permite a entrada de tarefas com duração estimada e calcula os tempos de espera e tempo de execução de cada tarefa usando o algoritmo FCFS (First-Come, First-Served).
O Sistema de Escalonamento de Tarefas é uma aplicação Java que permite ao usuário inserir informações sobre tarefas, calcular os tempos de espera e tempo de execução e exibir os resultados em uma tabela formatada.
- Entrada de informações sobre tarefas, incluindo a duração estimada.
- Cálculo dos tempos de espera e tempo de execução usando o algoritmo FCFS.
- Exibição dos resultados em uma tabela formatada.
- Linguagem de Programação: Java 19
- Ambiente de Desenvolvimento: IntelliJ IDEA
- Bibliotecas: Nenhuma biblioteca externa é utilizada neste projeto.
O sistema possui os seguintes casos de uso:
-
Entrada de Informações sobre Tarefas:
- O usuário insere o número de tarefas.
- Para cada tarefa, o usuário insere a duração estimada.
-
Cálculo dos Tempos:
- O sistema calcula os tempos de espera e tempo de execução para cada tarefa usando o algoritmo FCFS.
-
Exibição dos Resultados:
- O sistema exibe os resultados em uma tabela formatada.
- O sistema deve permitir ao usuário inserir o número de tarefas.
- O sistema deve permitir ao usuário inserir a duração estimada de cada tarefa.
- O sistema deve calcular os tempos de espera e tempo de execução para cada tarefa.
- O sistema deve exibir os resultados em uma tabela formatada.
- O sistema deve calcular o tempo médio de espera e tempo médio de execução.
- O sistema utiliza o algoritmo FCFS para calcular os tempos de espera e tempo de execução das tarefas.
- Os tempos de espera e tempo de execução são medidos em unidades de tempo.
- O tempo médio de espera é calculado como a média dos tempos de espera de todas as tarefas.
- O tempo médio de execução é calculado como a média dos tempos de execução de todas as tarefas.
O algoritmo FCFS (First-Come, First-Served) é um dos algoritmos de escalonamento mais simples. Ele opera da seguinte maneira:
- As tarefas são executadas na ordem em que chegaram, ou seja, a primeira tarefa a chegar é a primeira a ser executada.
- Quando uma tarefa é executada, ela é executada até a conclusão, sem interrupções.
- O tempo médio de espera é calculado como a média do tempo que cada tarefa passa esperando para ser executada.
- O tempo médio de execução é calculado como a média do tempo que cada tarefa leva para ser concluída.
O algoritmo FCFS é fácil de implementar, mas pode não ser eficiente em termos de tempo de espera, especialmente quando há tarefas longas na fila.
O código original fornecido pelo professor serviu como base, mas foram feitas diversas melhorias e implementações para seguir o paradigma orientado a objetos e aumentar a flexibilidade do sistema. As principais melhorias e implementações incluem:
-
Utilização de Classes: Foram criadas as classes Task e PriorityTask para representar as tarefas e as tarefas prioritárias, permitindo uma modelagem mais orientada a objetos.
-
Encapsulamento: As classes Task e PriorityTask encapsulam os dados relevantes das tarefas e fornecem métodos de acesso para esses dados.
-
Herança: A classe PriorityTask herda da classe Task, aproveitando a reutilização de código e a estrutura hierárquica.
-
Polimorfismo: As tarefas são armazenadas em uma lista polimórfica, o que permite tratar objetos Task e PriorityTask da mesma forma durante o processamento.
-
Abstração: O sistema utiliza abstração para representar tarefas genéricas e tarefas prioritárias, abstraindo os detalhes de implementação.
-
Separação de Responsabilidades: O código foi organizado em diferentes classes (Task, PriorityTask, Printer, Timing, Program) para melhorar a separação de responsabilidades e facilitar a manutenção.
-
Formatação de Saída Melhorada: A tabela de saída foi formatada para alinhar os dados das colunas e melhorar a legibilidade.
-
Cálculo de Médias Ajustado: O cálculo das médias de espera e tempo de execução foi ajustado para considerar todas as tarefas, incluindo as prioritárias.
Essas melhorias e implementações tornam o código mais modular, extensível e orientado a objetos, facilitando a compreensão e manutenção do sistema.
O fluxo de processamento do sistema segue as seguintes etapas:
- O usuário insere o número de tarefas.
- Para cada tarefa, o usuário insere a duração estimada.
- Uma tarefa prioritária também pode ser inserida.
- O sistema calcula os tempos de espera e tempo de execução das tarefas.
- Os resultados são exibidos em uma tabela formatada.
- O sistema calcula o tempo médio de espera e o tempo médio de execução.
- As médias são exibidas ao usuário.
Este fluxo de processamento é baseado no algoritmo FCFS, onde as tarefas são tratadas na ordem de chegada.
O Sistema de Escalonamento de Tarefas é uma aplicação Java que utiliza o algoritmo FCFS para calcular os tempos de espera e tempo de execução de tarefas. As melhorias e implementações realizadas no código original visam torná-lo mais orientado a objetos e flexível. O sistema é uma ferramenta útil para entender os princípios de escalonamento de tarefas e é facilmente extensível para futuras melhorias.
Este documento fornece uma visão geral técnica do Sistema de Escalonamento de Tarefas desenvolvido em Java, utilizando o algoritmo SJF (Shortest Job First). O sistema permite a entrada de tarefas com duração estimada e calcula os tempos de espera e tempo de execução de cada tarefa.
O Sistema de Escalonamento de Tarefas SJF é uma aplicação Java que permite ao usuário inserir informações sobre tarefas, calcular os tempos de espera e tempo de execução e exibir os resultados em uma tabela formatada.
- Entrada de informações sobre tarefas, incluindo a duração estimada.
- Cálculo dos tempos de espera e tempo de execução usando o algoritmo SJF.
- Exibição dos resultados em uma tabela formatada.
- Linguagem de Programação: Java 17
- Ambiente de Desenvolvimento: IntelliJ IDEA
- Bibliotecas: Nenhuma biblioteca externa é utilizada neste projeto.
O sistema possui os seguintes casos de uso:
- Entrada de Informações sobre Tarefas:
- O usuário insere o número de tarefas.
- Para cada tarefa, o usuário insere a duração estimada.
- Cálculo dos Tempos:
- O sistema calcula os tempos de espera e tempo de execução para cada tarefa usando o algoritmo SJF.
- Exibição dos Resultados:
- O sistema exibe os resultados em uma tabela formatada.
- O sistema deve permitir ao usuário inserir o número de tarefas.
- O sistema deve permitir ao usuário inserir a duração estimada de cada tarefa.
- O sistema deve calcular os tempos de espera e tempo de execução para cada tarefa.
- O sistema deve exibir os resultados em uma tabela formatada.
- O sistema deve calcular o tempo médio de espera e tempo médio de execução.
- O sistema utiliza o algoritmo SJF (Shortest Job First) para calcular os tempos de espera e tempo de execução das tarefas.
- Os tempos de espera e tempo de execução são medidos em unidades de tempo.
- O tempo médio de espera é calculado como a média dos tempos de espera de todas as tarefas.
- O tempo médio de execução é calculado como a média dos tempos de execução de todas as tarefas.
O algoritmo SJF (Shortest Job First) é um dos algoritmos de escalonamento que visa minimizar o tempo médio de espera. Ele opera da seguinte maneira:
As tarefas são executadas na ordem em que chegaram, mas a tarefa mais curta (menos tempo estimado) é a primeira a ser executada.
Isso significa que as tarefas com menor duração estimada têm prioridade sobre as tarefas mais longas.
O algoritmo SJF é eficiente em termos de tempo de espera, pois reduz o tempo que as tarefas passam na fila de espera, priorizando as tarefas mais curtas.
O código original fornecido serviu como base, mas foram feitas diversas melhorias e implementações para seguir o paradigma orientado a objetos e aumentar a flexibilidade do sistema. As principais melhorias e implementações incluem:
- Utilização de Classes: Foram criadas as classes Task e ConcreteTask para representar as tarefas, permitindo uma modelagem mais orientada a objetos.
- Encapsulamento: As classes Task e ConcreteTask encapsulam os dados relevantes das tarefas e fornecem métodos de acesso para esses dados
- Herança: A classe ConcreteTask herda da classe Task, aproveitando a reutilização de código e a estrutura hierárquica.
- Polimorfismo: As tarefas são armazenadas em uma lista polimórfica, o que permite tratá-las da mesma forma durante o processamento.
- Abstração: O sistema utiliza abstração para representar tarefas genéricas, abstraindo os detalhes de implementação.
- Separação de Responsabilidades: O código foi organizado em diferentes classes (ConcreteTask, Printer, Timing, Program) para melhorar a separação de responsabilidades e facilitar a manutenção.
- Formatação de Saída Melhorada: A tabela de saída foi formatada para alinhar os dados das colunas e melhorar a legibilidade.
- Cálculo de Médias Ajustado: O cálculo das médias de espera e tempo de execução foi ajustado para considerar todas as tarefas.
Essas melhorias e implementações tornam o código mais modular, extensível e orientado a objetos, facilitando a compreensão e manutenção do sistema.
O fluxo de processamento do sistema segue as seguintes etapas:
- O usuário insere o número de tarefas.
- Para cada tarefa, o usuário insere a duração estimada.
- O sistema calcula os tempos de espera e tempo de execução das tarefas.
- Os resultados são exibidos em uma tabela formatada.
- O sistema calcula o tempo médio de espera e o tempo médio de execução.
- As médias são exibidas ao usuário.
Este fluxo de processamento é baseado no algoritmo SJF, onde as tarefas são tratadas de forma a minimizar o tempo médio de espera.
O Sistema de Escalonamento de Tarefas SJF é uma aplicação Java que utiliza o algoritmo SJF (Shortest Job First) para calcular os tempos de espera e tempo de execução de tarefas. As melhorias e implementações realizadas no código original visam torná-lo mais orientado a objetos e flexível. O sistema é uma ferramenta útil para entender os princípios de escalonamento de tarefas e é facilmente extensível para futuras melhorias.
Este documento fornece uma visão geral técnica do Sistema de Escalonamento de Tarefas desenvolvido em Java, que utiliza o algoritmo SRTF (Shortest Remaining Time First). O sistema permite a entrada de tarefas com duração estimada e calcula os tempos de espera e tempo de execução de cada tarefa com base na prioridade de menor tempo restante.
O Sistema de Escalonamento de Tarefas SRTF é uma aplicação Java que permite ao usuário inserir informações sobre tarefas, calcular os tempos de espera e tempo de execução e exibir os resultados em uma tabela formatada.
- Entrada de informações sobre tarefas, incluindo a duração estimada.
- Cálculo dos tempos de espera e tempo de execução usando o algoritmo SRTF.
- Exibição dos resultados em uma tabela formatada.
- Linguagem de Programação: Java 17
- Ambiente de Desenvolvimento: IntelliJ IDEA
- Bibliotecas: Nenhuma biblioteca externa é utilizada neste projeto.
O sistema possui os seguintes casos de uso:
- O usuário insere o número de tarefas.
- Para cada tarefa, o usuário insere a duração estimada.
- O sistema calcula os tempos de espera e tempo de execução para cada tarefa usando o algoritmo SRTF.
- O sistema exibe os resultados em uma tabela formatada.
- O sistema deve permitir ao usuário inserir o número de tarefas.
- O sistema deve permitir ao usuário inserir a duração estimada de cada tarefa.
- O sistema deve calcular os tempos de espera e tempo de execução para cada tarefa.
- O sistema deve exibir os resultados em uma tabela formatada.
- O sistema deve calcular o tempo médio de espera e tempo médio de execução.
- O sistema utiliza o algoritmo SRTF (Shortest Remaining Time First) para calcular os tempos de espera e tempo de execução das tarefas.
- Os tempos de espera e tempo de execução são medidos em unidades de tempo.
- O tempo médio de espera é calculado como a média dos tempos de espera de todas as tarefas.
- O tempo médio de execução é calculado como a média dos tempos de execução de todas as tarefas.
O algoritmo SRTF (Shortest Remaining Time First) é um algoritmo de escalonamento de tarefas que prioriza a execução da tarefa com o menor tempo restante. Ele opera da seguinte maneira:
- A tarefa com o menor tempo restante é escolhida para execução.
- Quando uma tarefa é executada, seu tempo restante é decrementado.
- O algoritmo verifica periodicamente se uma nova tarefa com um tempo menor restante chegou ou se a tarefa em execução terminou.
- O tempo médio de espera é calculado como a média do tempo que cada tarefa passa esperando para ser executada.
- O tempo médio de execução é calculado como a média do tempo que cada tarefa leva para ser concluída.
O algoritmo SRTF é eficiente em minimizar o tempo de espera, pois sempre seleciona a tarefa com menor tempo restante.
O código original foi desenvolvido com base no algoritmo SRTF, e não foram feitas mudanças significativas em relação à estrutura do sistema, pois o algoritmo SRTF é intrinsecamente orientado a objetos e eficiente em termos de tempo de espera. A estrutura do código segue princípios de encapsulamento e modularidade para facilitar a compreensão e manutenção.
O fluxo de processamento do sistema SRTF segue as seguintes etapas:
- O usuário insere o número de tarefas.
- Para cada tarefa, o usuário insere a duração estimada.
- O sistema calcula os tempos de espera e tempo de execução das tarefas usando o algoritmo SRTF.
- Os resultados são exibidos em uma tabela formatada.
- O sistema calcula o tempo médio de espera e o tempo médio de execução.
- As médias são exibidas ao usuário.
Este fluxo de processamento é baseado no algoritmo SRTF, que prioriza as tarefas com menor tempo restante para execução.
O Sistema de Escalonamento de Tarefas SRTF é uma aplicação Java que utiliza o algoritmo SRTF para calcular os tempos de espera e tempo de execução de tarefas. O algoritmo SRTF é eficaz em minimizar o tempo de espera, pois sempre seleciona a tarefa com menor tempo restante. O sistema é uma ferramenta útil para entender os princípios de escalonamento de tarefas baseado em prioridade de menor tempo restante e é facilmente extensível para futuras melhorias.