O que é agendamento de tarefas?
O agendamento de tarefas, também conhecido como agendamento em lote, é um processo que aloca recursos do sistema para controlar a execução de programas em segundo plano não supervisionados. O agendador decide quais tarefas executar, em que momento e os recursos da unidade central de processamento (CPU) necessários para completar a tarefa. Ele garante que todas as tarefas sejam concluídas de acordo com prioridades definidas.
O software de agendamento de tarefas pode realizar o agendamento e monitorar tarefas ou lotes em tempo real. Agendadores modernos têm uma interface gráfica de usuário (GUI) com um sistema de controle de ponto único. Muitas empresas usam software de automação de carga de trabalho para automatizar tarefas propensas a erros relacionadas ao agendamento de tarefas, processamento e armazenamento.
O software de automação de carga de trabalho ajuda as empresas a reduzir a interação manual, permitindo que o departamento de TI se concentre em tarefas com maior prioridade. Profissionais de TI podem rapidamente resolver problemas de registro central e relatórios e fazer uso de outras capacidades, como auto-remediação, alertas e notificações.
Os agendadores de tarefas usam alguns parâmetros padrão para decidir qual tarefa executar. Esses parâmetros são os seguintes:
- Prioridade da tarefa
- Dependência da tarefa
- Disponibilidade de recursos do computador
- Dependência de arquivo
- Dependência de solicitação do operador
- Tempo estimado de execução
- Tempo de execução decorrido
- Tempo de execução alocado a um usuário
- Tarefas simultâneas permitidas para um usuário
- Disponibilidade de dispositivos periféricos
- Ocorrência de eventos prescritos
- Disponibilidade de chave de licença quando uma tarefa está usando um software licenciado
Tipos de agendamento de tarefas
As empresas agendam tarefas ou lotes através de múltiplos tipos de processos de agendamento. Abaixo estão três tipos comuns de agendamento de tarefas que as equipes de TI usam para otimizar seu ambiente.
- Agendamento de longo prazo: Uma longa lista de itens está pronta para processamento quando novos processos são criados. Isso requer um poder de processamento substancial e adiciona sobrecarga ao sistema operacional. O SO mantém uma longa lista, e há um aumento na troca de contexto e despacho. Este tipo atende ao gerenciamento de uma lista tão longa de processos. Um agendador de longo prazo decide as tarefas que entram na fila de processamento dos agendadores de curto ou médio prazo. Ele limita os processos que entram na fila com base em diferentes algoritmos de processamento.
- Agendamento de médio prazo: Para alguns sistemas operacionais, um novo processo começa em uma condição de swap-out. Um swap-out acontece quando um processo é removido da memória de acesso aleatório (RAM) e é adicionado ao disco rígido. Este tipo é parte da função de swap. Quando há espaço livre na memória principal, o agendador decide qual processo pode ser trocado. Isso depende da memória, prioridade e outros recursos necessários. Um agendador de médio prazo frequentemente realiza a função de swap-in para processos trocados.
- Agendamento de curto prazo: Um agendador de curto prazo, também chamado de despachante, começa quando um novo evento ocorre. Isso ocorre com mais frequência e pode interromper um processo em execução. Agendadores de curto prazo são rápidos e selecionam novos processos prontos para execução, alocando a CPU para um deles, o que acontece com muita frequência.
Algoritmos de agendamento de tarefas
O agendamento de curto prazo usa principalmente algoritmos de agendamento de tarefas para alocar processos e otimizar o comportamento do sistema. Abaixo estão alguns algoritmos ou políticas de agendamento comuns que impactam quais processos devem ser atribuídos à CPU.
Algoritmo de agendamento FCFS
O algoritmo de agendamento first-come, first-serve (FCFS) segue o método first-in, first-out. À medida que os processos entram na fila de prontos, o agendador escolhe a tarefa mais antiga na fila e a envia para processamento. O tempo médio de processamento para essas tarefas é comparativamente longo.
Abaixo estão as vantagens e desvantagens dos algoritmos FCFS.
- Vantagem: O FCFS adiciona uma sobrecarga mínima ao processador e é melhor para processos longos.
- Desvantagem: Efeitos de comboio ocorrem quando até mesmo uma pequena tarefa espera muito tempo para entrar em processamento, resultando em menor utilização da CPU.
Agendamento SJF
O menor trabalho primeiro (SJF), também conhecido como próximo menor trabalho (SJN), seleciona uma tarefa que exigiria o menor tempo de processamento e a aloca à CPU. Este algoritmo associa cada processo ao comprimento da próxima explosão de CPU. Uma explosão de CPU é quando os processos utilizam a CPU antes de não estarem mais prontos.
Suponha que duas tarefas tenham a mesma explosão de CPU. O agendador então usaria o algoritmo FCFS para resolver o empate e mover uma delas para execução.
Abaixo estão as vantagens e desvantagens do agendamento do menor trabalho primeiro.
- Vantagem: O rendimento é alto, pois as tarefas mais curtas são preferidas em relação a um processo de longa duração.
- Desvantagem: Registra o tempo decorrido que adiciona sobrecarga adicional à CPU. Além disso, pode resultar em inanição, pois processos longos ficarão na fila por muito tempo.
Agendamento por prioridade
O agendamento por prioridade associa uma prioridade (um número inteiro) a cada processo. Aquele com a maior prioridade é executado primeiro. Normalmente, o menor número inteiro é atribuído a uma tarefa com a maior prioridade. Se houver duas tarefas com prioridade semelhante, o algoritmo usa o FCFS para determinar qual entraria em processamento.
Abaixo está uma vantagem e desvantagem do agendamento por prioridade.
- Vantagem: Tarefas prioritárias têm um bom tempo de resposta.
- Desvantagem: Tarefas mais longas podem experimentar inanição.
Agendamento round robin
O agendamento round robin é projetado para sistemas de compartilhamento de tempo. É um agendador preemptivo baseado no relógio e é frequentemente chamado de agendador de fatias de tempo. Sempre que ocorre um intervalo de relógio periódico, o agendador move uma tarefa em processamento para a fila de prontos. Ele pega a próxima tarefa na fila para processamento em uma base first-come, first-serve.
Decidir um quantum de tempo ou uma fatia de tempo é complicado neste algoritmo de agendamento. Se a fatia de tempo for curta, tarefas pequenas são processadas mais rapidamente.
Abaixo estão algumas vantagens e desvantagens do agendamento round robin.
- Vantagens: Fornece tratamento justo a todos os processos, e a sobrecarga do processador é baixa.
- Desvantagens: O rendimento pode ser baixo se a fatia de tempo for muito curta.
Como funciona o software de agendamento de tarefas?
O software de agendamento de tarefas empresariais consiste em uma interface de agendamento de tarefas e um agente de execução. Esses elementos desempenham um papel vital na função geral de um sistema de agendamento de tarefas.
Abaixo estão algumas responsabilidades primárias de um agendador de tarefas ou lotes:
- Definir tarefas para executar com a ajuda do recurso de arrastar e soltar
- Criar uma fila e agendar tarefas para priorizar a execução de tarefas
- Alocar tarefas ao agente certo com base em múltiplos fatores, como prioridade, frequência e mais
Por outro lado, um agente de execução cuida dos seguintes processos:
- Submeter tarefas para execução
- Monitorar tarefas durante a execução
Um agente de execução refere-se a informações técnicas, como disponibilidade de CPU, tempo de execução projetado e dependências durante a execução.
As empresas podem automatizar várias tarefas com software de agendamento de carga de trabalho.
Abaixo estão algumas das tarefas comuns que os agendadores de tarefas automatizam.
- Disparo de eventos: Os agendadores de tarefas podem detectar eventos de disparo, como e-mails, modificações de arquivos, atualizações de sistema, transferências de arquivos e eventos definidos pelo usuário. Eles podem ser conectados a diferentes APIs para detectar tais disparos.
- Processamento de arquivos: As ferramentas de agendamento de tarefas monitoram movimentos de arquivos. Assim que um arquivo de disparo entra no sistema, ele informa o agente de execução para processar a tarefa predefinida.
- Transferência de arquivos: Programas de agendamento de tarefas podem acionar um protocolo de transferência de arquivos (FTP) para iniciar uma transferência segura do servidor para a internet ou puxar dados da internet para o servidor.
- Registro de eventos: Sistemas de agendamento de tarefas geram e registram logs de eventos para conformidade regulatória.
Agendamento de tarefas vs. agendamento de CPU vs. automação de carga de trabalho
Entender esses três termos é essencial ao aprender sobre agendamento de tarefas.
Tanto o agendamento de tarefas quanto o agendamento de CPU estão associados à execução de processos. O agendamento de tarefas é o mecanismo que decide qual processo deve ser movido para a fila de prontos. Normalmente, agendadores de longo prazo realizam o agendamento de tarefas.
Por outro lado, o agendamento de CPU é um mecanismo que determina qual processo deve ser executado a seguir e aloca a CPU de acordo. Agendadores de curto prazo geralmente realizam o agendamento de CPU.
Ferramentas tradicionais de agendamento de tarefas automatizam tarefas para plataformas ou aplicativos específicos. Por outro lado, o software de automação de carga de trabalho centraliza os controles de tarefas em várias plataformas, aumentando a coordenação entre sistemas operacionais e reduzindo conflitos.

Sagar Joshi
Sagar Joshi is a former content marketing specialist at G2 in India. He is an engineer with a keen interest in data analytics and cybersecurity. He writes about topics related to them. You can find him reading books, learning a new language, or playing pool in his free time.