Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

3.1.3. Gestione dei processi‌


Un processo è un'istanza in esecuzione di un programma, che richiede memoria per memorizzare sia il programma stesso che i suoi dati operativi. Il kernel è responsabile della creazione e del monitoraggio dei processi. Quando un programma viene eseguito, il kernel prima mette da parte un po' di memoria, carica in esso il codice eseguibile dal file system e quindi avvia l'esecuzione del codice. Conserva le informazioni su questo processo, la più visibile delle quali è un numero di identificazione noto come identificatore di processo (PID).

Come la maggior parte dei sistemi operativi moderni, quelli con kernel simili a Unix, incluso Linux, sono in grado di svolgere più attività. In altre parole, consentono al sistema di eseguire molti processi contemporaneamente. In realtà c'è solo un processo in esecuzione alla volta, ma il kernel divide il tempo della CPU in piccole porzioni ed esegue ogni processo a turno. Poiché questi intervalli di tempo sono molto brevi (nell'ordine dei millisecondi), creano l'aspetto di processi in esecuzione in parallelo, sebbene siano attivi solo durante il loro intervallo di tempo e siano inattivi per il resto del tempo. Il compito del kernel è regolare i suoi meccanismi di pianificazione per mantenere quell'aspetto, massimizzando le prestazioni globali del sistema. Se gli intervalli di tempo sono troppo lunghi, l'applicazione potrebbe non essere reattiva come desiderato. Troppo breve e il sistema perde tempo cambiando attività troppo frequentemente. Queste decisioni possono essere affinate con le priorità dei processi, in cui i processi ad alta priorità verranno eseguiti per periodi più lunghi e con intervalli di tempo più frequenti rispetto ai processi a bassa priorità.


Sistemi multiprocessore La limitazione sopra descritta, di un solo processo in esecuzione alla volta, non sempre (e varianti) applica: la restrizione effettiva è che può esserci un solo processo in esecuzione per core del processore. Multiprocessore, multicore o iper-thread i sistemi consentono diversi

processi da eseguire in parallelo. Lo stesso sistema di time-slicing viene utilizzato, tuttavia, per gestire i casi in cui sono presenti più processi attivi rispetto ai core del processore disponibili. Questo non è insolito: un sistema di base, anche per lo più inattivo, ha quasi sempre decine di processi in esecuzione.

Sistemi multiprocessore La limitazione sopra descritta, di un solo processo in esecuzione alla volta, non sempre (e varianti) applica: la restrizione effettiva è che può esserci un solo processo in esecuzione per core del processore. Multiprocessore, multicore o iper-thread i sistemi consentono diversi

processi da eseguire in parallelo. Lo stesso sistema di time-slicing viene utilizzato, tuttavia, per gestire i casi in cui sono presenti più processi attivi rispetto ai core del processore disponibili. Questo non è insolito: un sistema di base, anche per lo più inattivo, ha quasi sempre decine di processi in esecuzione.


Il kernel consente l'esecuzione di diverse istanze indipendenti dello stesso programma, ma ciascuna può accedere solo ai propri intervalli di tempo e alla propria memoria. I loro dati rimangono quindi indipendenti.

Il miglior sistema operativo cloud computing su OnWorks: