Che cos'è la pianificazione dei lavori?
La pianificazione dei lavori, nota anche come pianificazione batch, è un processo che assegna risorse di sistema per controllare l'esecuzione di programmi in background non sorvegliati. Il pianificatore decide quali lavori eseguire, a che ora e le risorse della unità centrale di elaborazione (CPU) necessarie per completare il lavoro. Garantisce che tutti i lavori siano completati secondo le priorità stabilite.
Il software di pianificazione dei lavori può eseguire la pianificazione e monitorare i lavori o i batch in tempo reale. I moderni pianificatori di lavori hanno un'interfaccia grafica utente (GUI) con un sistema di controllo a punto singolo. Molte aziende utilizzano software di automazione del carico di lavoro per automatizzare compiti soggetti a errori relativi alla pianificazione dei lavori, all'elaborazione e all'immagazzinamento.
Il software di automazione del carico di lavoro aiuta le aziende a ridurre l'interazione manuale, consentendo al reparto IT di concentrarsi su compiti con priorità più alta. I professionisti IT possono affrontare rapidamente problemi di registrazione centrale e reportistica e sfruttare altre capacità come l'auto-rimediamento, gli avvisi e le notifiche.
I pianificatori di lavori utilizzano alcuni parametri standard per decidere quale lavoro eseguire. Questi parametri sono i seguenti:
- Priorità del lavoro
- Dipendenza del lavoro
- Disponibilità delle risorse del computer
- Dipendenza dai file
- Dipendenza dal prompt dell'operatore
- Tempo di esecuzione stimato
- Tempo di esecuzione trascorso
- Tempo di esecuzione assegnato a un utente
- Lavori simultanei consentiti per un utente
- Disponibilità dei dispositivi periferici
- Occorrenza di eventi prescritti
- Disponibilità della chiave di licenza quando un lavoro utilizza un software con licenza
Tipi di pianificazione dei lavori
Le aziende pianificano lavori o batch attraverso diversi tipi di processi di pianificazione. Di seguito sono riportati tre tipi comuni di pianificazione dei lavori che i team IT utilizzano per ottimizzare il loro ambiente.
- Pianificazione a lungo termine: Una lunga lista di elementi è pronta per l'elaborazione quando vengono creati nuovi processi. Questo richiede una notevole potenza di elaborazione e aggiunge un sovraccarico al sistema operativo. Il sistema operativo mantiene una lunga lista e c'è un aumento del cambio di contesto e dell'invio. Questo tipo si occupa di gestire una lista così lunga di processi. Un pianificatore a lungo termine decide i lavori che entrano nella coda di elaborazione dei pianificatori a breve o medio termine. Limita i processi che entrano nella coda in base a diversi algoritmi di elaborazione.
- Pianificazione a medio termine: Per alcuni sistemi operativi, un nuovo processo inizia in una condizione di swap-out. Uno swap-out avviene quando un processo viene rimosso dalla memoria ad accesso casuale (RAM) e viene aggiunto al disco rigido. Questo tipo fa parte della funzione di swapping. Quando c'è spazio libero nella memoria principale, il pianificatore decide quale processo può essere scambiato. Questo dipende dalla memoria, dalla priorità e da altre risorse richieste. Un pianificatore a medio termine spesso esegue la funzione di swap-in per i processi scambiati.
- Pianificazione a breve termine: Un pianificatore a breve termine, chiamato anche dispatcher, inizia quando si verifica un nuovo evento. Questo si verifica più frequentemente e potrebbe interrompere un processo in esecuzione. I pianificatori a breve termine sono veloci e selezionano nuovi processi pronti per l'esecuzione, assegnando la CPU a uno di essi, il che avviene molto frequentemente.
Algoritmi di pianificazione dei lavori
La pianificazione a breve termine utilizza principalmente algoritmi di pianificazione dei lavori per allocare i processi e ottimizzare il comportamento del sistema. Di seguito sono riportati alcuni algoritmi o politiche di pianificazione comuni che influenzano quali processi dovrebbero essere assegnati alla CPU.
Algoritmo di pianificazione FCFS
L'algoritmo di pianificazione dei lavori first-come, first-serve (FCFS) segue il metodo first-in, first-out. Man mano che i processi si uniscono alla coda pronta, il pianificatore sceglie il lavoro più vecchio nella coda e lo invia per l'elaborazione. Il tempo medio di elaborazione per questi lavori è relativamente lungo.
Di seguito sono riportati i vantaggi e gli svantaggi degli algoritmi FCFS.
- Vantaggio: FCFS aggiunge un minimo sovraccarico sul processore ed è migliore per processi lunghi.
- Svantaggio: Si verificano effetti di convoglio quando anche un piccolo lavoro aspetta a lungo per entrare in elaborazione, risultando in un utilizzo inferiore della CPU.
Pianificazione SJF
Il lavoro più breve prima (SJF), noto anche come lavoro più breve successivo (SJN), seleziona un lavoro che richiederebbe il tempo di elaborazione più breve e lo assegna alla CPU. Questo algoritmo associa ogni processo alla lunghezza del prossimo burst della CPU. Un burst della CPU è quando i processi utilizzano la CPU prima che non sia più pronta.
Supponiamo che due lavori abbiano lo stesso burst della CPU. Il pianificatore utilizzerebbe quindi l'algoritmo FCFS per risolvere il pareggio e spostare uno di essi in esecuzione.
Di seguito sono riportati i vantaggi e gli svantaggi della pianificazione del lavoro più breve prima.
- Vantaggio: Il throughput è elevato poiché i lavori più brevi sono preferiti rispetto a un processo a lungo termine.
- Svantaggio: Registra il tempo trascorso che aggiunge un ulteriore sovraccarico sulla CPU. Inoltre, può risultare in una fame poiché i processi lunghi saranno in coda per molto tempo.
Pianificazione a priorità
La pianificazione a priorità associa una priorità (un intero) a ciascun processo. Quello con la priorità più alta viene eseguito per primo. Di solito, il numero intero più piccolo viene assegnato a un lavoro con la priorità più alta. Se ci sono due lavori con priorità simile, l'algoritmo utilizza FCFS per determinare quale passerebbe in elaborazione.
Di seguito è riportato un vantaggio e uno svantaggio della pianificazione a priorità.
- Vantaggio: I lavori a priorità hanno un buon tempo di risposta.
- Svantaggio: I lavori più lunghi possono sperimentare fame.
Pianificazione round robin
La pianificazione round robin è progettata per sistemi di condivisione del tempo. È un pianificatore preemptive basato sull'orologio ed è spesso chiamato pianificatore a fette di tempo. Ogni volta che si verifica un intervallo di orologio periodico, il pianificatore sposta un lavoro attualmente in elaborazione nella coda pronta. Prende il prossimo lavoro nella coda per l'elaborazione su base first-come, first-serve.
Decidere un quantum di tempo o una fetta di tempo è complicato in questo algoritmo di pianificazione. Se la fetta di tempo è breve, i lavori piccoli vengono elaborati più velocemente.
Di seguito sono riportati alcuni vantaggi e svantaggi della pianificazione round robin.
- Vantaggi: Fornisce un trattamento equo a tutti i processi e il sovraccarico del processore è basso.
- Svantaggi: Il throughput può essere basso se la fetta di tempo è molto breve.
Come funziona il software di pianificazione dei lavori?
Il software di pianificazione dei lavori aziendali consiste in un'interfaccia di pianificazione dei lavori e un agente di esecuzione. Questi elementi svolgono un ruolo fondamentale nella funzione complessiva di un sistema di pianificazione dei lavori.
Di seguito sono riportate alcune responsabilità principali di un pianificatore di lavori o batch:
- Definire i compiti da eseguire con l'aiuto della funzione di trascinamento e rilascio
- Creare una coda e pianificare i lavori per dare priorità all'esecuzione dei compiti
- Assegnare i lavori all'agente giusto in base a diversi fattori come priorità, frequenza e altro
D'altra parte, un agente di esecuzione si occupa dei seguenti processi:
- Invio dei compiti all'esecuzione
- Monitoraggio dei compiti durante l'esecuzione
Un agente di esecuzione si riferisce a informazioni tecniche come la disponibilità della CPU, il tempo di esecuzione previsto e le dipendenze durante l'esecuzione.
Le aziende possono automatizzare vari compiti con il software di pianificazione del carico di lavoro.
Di seguito sono riportati alcuni dei compiti comuni che i pianificatori di lavori automatizzano.
- Attivazione di eventi: I pianificatori di lavori possono rilevare eventi di attivazione come email, modifiche ai file, aggiornamenti di sistema, trasferimenti di file ed eventi definiti dall'utente. Possono essere collegati a diverse API per rilevare tali attivazioni.
- Elaborazione dei file: Gli strumenti di pianificazione dei lavori monitorano i movimenti dei file. Non appena un file di attivazione entra nel sistema, informa l'agente di esecuzione di elaborare il compito preimpostato.
- Trasferimento dei file: I programmi di pianificazione dei lavori possono attivare un protocollo di trasferimento file (FTP) per avviare un trasferimento sicuro dal server a Internet o prelevare dati da Internet al server.
- Registrazione degli eventi: I sistemi di pianificazione dei lavori generano e registrano i log degli eventi per la conformità normativa.
Pianificazione dei lavori vs. pianificazione della CPU vs. automazione del carico di lavoro
Comprendere questi tre termini è essenziale quando si apprende la pianificazione dei lavori.

Sia la pianificazione dei lavori che la pianificazione della CPU sono associate all'esecuzione dei processi. La pianificazione dei lavori è il meccanismo che decide quale processo dovrebbe essere spostato nella coda pronta. Di solito, i pianificatori a lungo termine eseguono la pianificazione dei lavori.
D'altra parte, la pianificazione della CPU è un meccanismo che determina quale processo dovrebbe essere eseguito successivamente e assegna la CPU di conseguenza. I pianificatori a breve termine di solito eseguono la pianificazione della CPU.
Gli strumenti tradizionali di pianificazione dei lavori automatizzano i compiti per piattaforme o applicazioni specifiche. D'altra parte, il software di automazione del carico di lavoro centralizza i controlli dei lavori su più piattaforme, aumentando il coordinamento tra i sistemi operativi e riducendo i conflitti.

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.
