Nozioni di base sui computer - Funzioni del sistema operativo
Come sapete, il sistema operativo è responsabile del funzionamento del sistema informatico. A tal fine svolge queste tre grandi categorie di attività:
Essential functions - Garantisce un utilizzo ottimale ed efficace delle risorse
Monitoring functions - Monitora e raccoglie le informazioni relative alle prestazioni del sistema
Service functions - Fornisce servizi agli utenti
Esaminiamo alcune delle funzioni più importanti associate a queste attività.
Gestione del processore
Viene chiamata la gestione della CPU di un computer per garantire il suo utilizzo ottimale processor management. La gestione del processore implica fondamentalmente l'allocazione del tempo del processore alle attività che devono essere completate. Questo è chiamatojob scheduling. I lavori devono essere programmati in modo tale che:
- C'è il massimo utilizzo della CPU
- Il tempo di consegna, ovvero il tempo necessario per completare ogni lavoro, è minimo
- Il tempo di attesa è minimo
- Ogni lavoro ottiene il tempo di risposta più veloce possibile
- Si ottiene la velocità effettiva massima, dove la velocità effettiva è il tempo medio impiegato per completare ogni attività
Esistono due metodi di pianificazione del lavoro eseguiti dai sistemi operativi:
- Pianificazione preventiva
- Pianificazione non preventiva
Pianificazione preventiva
In questo tipo di pianificazione, il lavoro successivo che deve essere eseguito dal processore può essere pianificato prima del completamento del lavoro corrente. Se si presenta un lavoro con priorità più alta, il processore può essere costretto a rilasciare il lavoro corrente e riprendere il lavoro successivo. Esistono due tecniche di pianificazione che utilizzano la pianificazione preventiva:
Round robin scheduling - Una piccola unità di tempo chiamata time sliceè definito e ogni programma riceve solo una porzione di tempo alla volta. Se non viene completato durante quel periodo, deve unirsi alla coda dei lavori alla fine e attendere che tutti i programmi abbiano un intervallo di tempo. Il vantaggio qui è che tutti i programmi hanno pari opportunità. Lo svantaggio è che se un programma completa l'esecuzione prima che l'intervallo di tempo sia terminato, la CPU è inattiva per il resto della durata.
Response ratio scheduling - Il rapporto di risposta è definito come
$$ \ frac {Elapsed \: Time} {Esecuzione \: time \: ricevuto} $$
Un lavoro con tempi di risposta più brevi ottiene una priorità maggiore. Quindi un programma più grande potrebbe dover attendere anche se è stato richiesto prima del programma più breve. Ciò migliora il throughput della CPU.
Pianificazione non preventiva
In questo tipo di pianificazione, le decisioni sulla pianificazione del lavoro vengono prese solo dopo il completamento del lavoro corrente. Un lavoro non viene mai interrotto per dare la precedenza a lavori con priorità più alta. Le tecniche di pianificazione che utilizzano la pianificazione non preventiva sono:
First come first serve scheduling - Questa è la tecnica più semplice in cui il primo programma che genera una richiesta viene completato per primo.
Shortest job next scheduling - Qui viene programmato il lavoro che richiede meno tempo per l'esecuzione.
Deadline scheduling - Il lavoro con la prima scadenza è programmato per l'esecuzione successiva.
Gestione della memoria
Viene chiamato processo di regolazione della memoria del computer e utilizzo di tecniche di ottimizzazione per migliorare le prestazioni complessive del sistema memory management. Lo spazio di memoria è molto importante nell'ambiente informatico moderno, quindi la gestione della memoria è un ruolo importante dei sistemi operativi.
Come sai, i computer hanno due tipi di memoria: primary e secondary. La memoria primaria èfast but expensive e la memoria secondaria lo è cheap but slower. Il sistema operativo deve trovare un equilibrio tra i due per garantire che le prestazioni del sistema non siano danneggiate a causa di una memoria primaria molto inferiore o che i costi di sistema non aumentino a causa della troppa memoria primaria.
I dati di input e output, le istruzioni per l'utente ei dati intermedi per l'esecuzione del programma devono essere archiviati, accessibili e recuperati in modo efficiente per ottenere prestazioni di sistema elevate. Una volta accettata una richiesta del programma, il sistema operativo le assegna le aree di archiviazione primaria e secondaria secondo i requisiti. Una volta completata l'esecuzione, lo spazio di memoria ad essa allocato viene liberato. Il sistema operativo utilizza molte tecniche di gestione dell'archiviazione per tenere traccia di tutti gli spazi di archiviazione allocati o liberi.
Allocazione di archiviazione contigua
Questa è la tecnica di allocazione dello spazio di archiviazione più semplice in cui vengono assegnate posizioni di memoria contigue a ciascun programma. Il sistema operativo deve stimare la quantità di memoria richiesta per il processo completo prima dell'allocazione.
Allocazione dello spazio di archiviazione non contiguo
Come suggerisce il nome, il programma ei dati associati non devono essere memorizzati in posizioni contigue. Il programma è suddiviso in componenti più piccoli e ogni componente è memorizzato in una posizione separata. Una tabella tiene traccia della posizione in cui è archiviato ogni componente del programma. Quando il processore deve accedere a qualsiasi componente, il sistema operativo fornisce l'accesso utilizzando questa tabella di allocazione.
In uno scenario reale, lo spazio di memoria principale potrebbe non essere sufficiente per memorizzare l'intero programma. In tal caso, il sistema operativo richiede l'aiuto diVirtual Storagetecnica, in cui il programma è fisicamente archiviato nella memoria secondaria ma sembra essere archiviato nella memoria primaria. Questo introduce un minuscolo ritardo nell'accesso ai componenti del programma. Esistono due approcci agli archivi virtuali:
Program paging - Un programma è suddiviso in dimensioni fisse pagee archiviati nella memoria secondaria. Le pagine sono fornitelogical address or virtual addressda 0 a n. UNpage table mappa gli indirizzi logici sugli indirizzi fisici, che viene utilizzato per recuperare le pagine quando richiesto.
Program segmentation - Un programma è suddiviso in unità logiche chiamate segments, assegnato indirizzo logico da 0 an e archiviato nella memoria secondaria. UNsegment table viene utilizzato per caricare segmenti dalla memoria secondaria alla memoria primaria.
I sistemi operativi in genere utilizzano una combinazione di segmentazione di pagine e programmi per ottimizzare l'utilizzo della memoria. Un segmento di programma di grandi dimensioni può essere suddiviso in pagine o più piccoli segmenti possono essere memorizzati come una singola pagina.
Gestione dei file
I dati e le informazioni vengono archiviati sui computer sotto forma di file. La gestione del file system per consentire agli utenti di conservare i propri dati in modo sicuro e corretto è una funzione importante dei sistemi operativi. Viene chiamata la gestione dei file system dal sistema operativofile management. La gestione dei file è necessaria per fornire strumenti per queste attività relative ai file:
- Creazione di nuovi file per la memorizzazione dei dati
- Updating
- Sharing
- Protezione dei dati tramite password e crittografia
- Ripristino in caso di guasto del sistema
Gestione dei dispositivi
Viene chiamato il processo di implementazione, funzionamento e manutenzione di un dispositivo in base al sistema operativo device management. Il sistema operativo utilizza un software di utilità chiamatodevice driver come interfaccia al dispositivo.
Quando molti processi accedono ai dispositivi o richiedono l'accesso ai dispositivi, il sistema operativo gestisce i dispositivi in modo da condividere in modo efficiente i dispositivi tra tutti i processi. Elabora i dispositivi di accesso tramitesystem call interface, un'interfaccia di programmazione fornita dal sistema operativo.