Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

Inoltre, Linux è basato su UNIX, dove era politica comune avere più utenti che eseguivano più comandi, allo stesso tempo e sullo stesso sistema. È ovvio che devono essere prese misure affinché la CPU gestisca tutti questi processi e che la funzionalità deve essere fornita in modo che gli utenti possano passare da un processo all'altro. In alcuni casi, i processi dovranno continuare a essere eseguiti anche quando l'utente che li ha avviati si disconnette. E gli utenti hanno bisogno di un mezzo per riattivare i processi interrotti.


Spiegheremo la struttura dei processi Linux nelle sezioni successive.


Immagine

4.1.2. Tipi di processo


4.1.2.1. Processi interattivi


I processi interattivi vengono inizializzati e controllati tramite una sessione terminale. In altre parole, ci deve essere qualcuno connesso al sistema per avviare questi processi; non vengono avviati automaticamente come parte delle funzioni di sistema. Questi processi possono essere eseguiti in primo piano, occupando il terminale che ha avviato il programma e non è possibile avviare altre applicazioni finché questo processo è in esecuzione in primo piano. In alternativa, possono essere eseguiti in background, in modo che il terminale in cui è stato avviato il programma possa accettare nuovi comandi mentre il programma è in esecuzione. Fino ad ora, ci siamo concentrati principalmente sui programmi in esecuzione in primo piano - il tempo impiegato per eseguirli era troppo breve per essere notato - ma la visualizzazione di un file con meno command è un buon esempio di comando che occupa la sessione del terminale. In questo caso, il programma attivato sta aspettando che tu faccia qualcosa. Il programma è ancora connesso al terminale da cui è stato avviato e il terminale è utile solo per immettere comandi che questo programma può comprendere. Altri comandi genereranno solo errori o


mancata risposta del sistema.


Tuttavia, mentre un processo viene eseguito in background, all'utente non è impedito di fare altre cose nel terminale in cui ha avviato il programma, mentre è in esecuzione.


La shell offre una funzionalità chiamata controllo del lavoro che consente una facile gestione di più processi. Questo meccanismo commuta i processi tra il primo piano e lo sfondo. Utilizzando questo sistema, i programmi possono anche essere avviati immediatamente in background.


Immagine

L'esecuzione di un processo in background è utile solo per i programmi che non richiedono l'input dell'utente (tramite la shell). La messa in secondo piano di un lavoro viene in genere eseguita quando si prevede che l'esecuzione di un lavoro richieda molto tempo. Per liberare il terminale di emissione dopo aver immesso il comando, viene aggiunta una e commerciale finale. Nell'esempio, utilizzando la modalità grafica, apriamo una finestra di terminale aggiuntiva rispetto a quella esistente:


billy:~> xterm &

[1] 26558


billy:~> posti di lavoro

[1]+ Corsa

xterm &

billy:~> xterm &

[1] 26558


billy:~> posti di lavoro

[1]+ Corsa

Le funzioni di controllo completo del lavoro sono spiegate in dettaglio nel bash Pagine informative, quindi qui sono elencate solo le applicazioni di controllo dei lavori utilizzate di frequente:


Tabella 4-1. Processi di controllo


(parte di) comando

Significato

comando_regolare

Esegue questo comando in primo piano.

comando &

Esegui questo comando in background (rilascia il terminale)

posti di lavoro

Mostra i comandi in esecuzione in background.

Ctrl+Z

Sospendere (arrestare, ma non chiudere) un processo in esecuzione in primo piano (sospendere).

Ctrl+C

Interrompere (terminare e chiudere) un processo in esecuzione in primo piano.


%n

Ad ogni processo in esecuzione in background viene assegnato un numero. Usando l'espressione % si può fare riferimento a un lavoro usando il suo numero, per esempio fg %2.

bg

Riattivare un programma sospeso in background.

fg

Riporta il lavoro in primo piano.

kill

Termina un processo (vedi anche i comandi incorporati della shell nelle pagine Info di bash)

Ulteriori esempi pratici possono essere trovati negli esercizi.


È probabile che la maggior parte dei sistemi UNIX sia in grado di funzionare schermo, che è utile quando si desidera effettivamente che un'altra shell esegua i comandi. Alla chiamata schermo, viene creata una nuova sessione con una shell di accompagnamento e/o comandi come specificato, che puoi quindi mettere da parte. In questa nuova sessione puoi fare tutto ciò che vuoi. Tutti i programmi e le operazioni verranno eseguiti indipendentemente dalla shell di emissione. Puoi quindi staccare questa sessione, mentre i programmi che hai avviato in essa continuano a essere eseguiti, anche quando ti disconnetti dalla shell di origine e scegli il tuo schermo rialzati ogni volta che vuoi.


Questo programma ha origine in un'epoca in cui le console virtuali non erano ancora state inventate e tutto doveva essere fatto utilizzando un terminale di testo. Per i tossicodipendenti, ha ancora un significato in Linux, anche se abbiamo console virtuali da quasi dieci anni.


Immagine


4.1.2.2. Processi automatici


I processi automatici o batch non sono collegati a un terminale. Piuttosto, si tratta di attività che possono essere accodate in un'area di spooler, dove attendono di essere eseguite su base FIFO (first-in, first-out). Tali attività possono essere eseguite utilizzando uno dei due criteri:


· XNUMX€ A una certa data e ora: fatto usando il at comando, di cui parleremo nella seconda parte di questo capitolo.

· XNUMX€ A volte, quando il carico totale del sistema è abbastanza basso da accettare lavori extra: fatto usando il partita comando. Per impostazione predefinita, le attività vengono messe in una coda in cui attendono di essere eseguite finché il carico del sistema non è inferiore a 0.8. In ambienti di grandi dimensioni, l'amministratore di sistema può preferire l'elaborazione in batch quando devono essere elaborate grandi quantità di dati o quando le attività che richiedono molte risorse di sistema devono essere eseguite su un sistema già caricato. L'elaborazione batch viene utilizzata anche per ottimizzare le prestazioni del sistema.


Immagine

4.1.2.3. Demoni


Il miglior sistema operativo cloud computing su OnWorks: