Evoluzione Storica dei Computer e Fondamenti della Gestione dei Processi
Classificato in Informatica
Scritto il in
italiano con una dimensione di 8,25 KB
Le Quattro Generazioni di Computer
Prima Generazione (1940-1956)
- Utilizzava tubi a vuoto per i computer.
- Queste macchine usavano un linguaggio macchina diretto (0 e 1).
- Erano macchine di grandi dimensioni.
- Consumavano grandi quantità di energia elettrica.
- Erano macchine molto lente; le operazioni eseguite erano ridotte a semplice matematica.
- L'inserimento dei dati era effettuato manualmente, come in un centralino telefonico, cliccando su pannelli pieni di fori, ognuno con caratteristiche diverse.
- Dagli anni Cinquanta, le schede perforate permisero di immettere i dati in modo più rapido (un dispositivo che non era di metallo).
Seconda Generazione (1956-1963)
La Seconda Generazione vide l'introduzione dei transistor nei computer. Questi computer erano più piccoli, meno costosi, più veloci e consumavano meno energia, emettendo meno calore. Le persone coinvolte nel trattamento automatico delle informazioni erano di due tipi: le schede perforate e l'operatore che visualizzava la console.
Elaborazione Batch (Batch Processing)
L'Elaborazione Batch consisteva nel processo di immissione dei dati in un componente hardware, come schede perforate, nastri o tamburi magnetici. L'inserimento dei dati veniva effettuato in un ambiente fisico diverso dal computer. Il supporto caricato con i dati veniva inviato al computer dove veniva elaborato; una volta completato, il processo veniva memorizzato su un altro dispositivo. Schede perforate, nastri perforati e transistor contenevano le informazioni.
Apparvero sistemi operativi che permettevano di eseguire più programmi contemporaneamente. Iniziarono ad apparire anche quelli che oggi chiamiamo periferiche.
Terza Generazione di Computer (1965-1980)
- In questo decennio, si iniziarono a utilizzare i circuiti integrati.
- Si ridussero le dimensioni delle macchine.
- Si ridusse il consumo energetico e il calore sprigionato.
- In questo decennio, IBM inventò il computer IBM 360, una macchina in grado di eseguire operazioni di tipo logico e matematico, che includeva la progettazione di hardware e software di base (sistema operativo) che permetteva a un sistema informatico di gestire vari processi contemporaneamente.
Quarta Generazione di Computer (1980-Oggi)
- In questa generazione, furono creati i personal computer (PC) utilizzando tecniche di integrazione complessa di componenti elettronici, come i chip (composti di silicio).
- Apparvero i CD di archiviazione, rendendo visibili i dispositivi ottici di massa; questi componenti erano molto più economici e facili da produrre.
- L'uso potenziale si estese a utenti non esperti di programmazione.
- I sistemi operativi divennero più facili da usare (nascita dei nomi commerciali dei SO). Questi sistemi gestivano l'alimentazione e l'utilizzo di hardware, programmi e dati, con versioni sempre più stabili, con meno errori e più facili da usare, soprattutto in modalità grafica.
- Apparvero le reti informatiche: Intranet e Internet.
Gestione dei Processi e Struttura del Sistema Operativo
Il Sistema Operativo è responsabile della sincronizzazione e della ripartizione delle risorse in un ordine equo e in base alle priorità.
Il Blocco di Controllo di Processo (BCP)
Una struttura dati chiamata Blocco di Controllo di Processo (BCP, o PCB) contiene le seguenti informazioni per ogni processo:
- Stato attuale del processo: Un processo può essere avviato, fermato o bloccato.
- ID del processo (PID): A ogni processo viene assegnato un codice (PID). Questo codice è solitamente il numero che il sistema operativo assegna come priorità e parametri di progetto definiti, tenendo in considerazione l'uso e il livello di ciascun processo.
- Priorità del processo: Questa priorità è determinata automaticamente dal sistema operativo a seconda dei parametri progettati. Può essere modificata dall'amministratore.
- Locazione di memoria: Tenendo conto della tecnica utilizzata per localizzare i programmi in memoria e in funzione del tipo di programma, il sistema operativo cercherà di localizzare ogni processo in una zona separata della memoria o, nel peggiore dei casi, in aree di memoria condivisa con altri processi.
- Risorse utilizzate: Ogni processo deve avere determinate risorse hardware e software disponibili per l'esecuzione. Queste risorse vengono messe a disposizione del processo non appena inizia a funzionare. Tali risorse sono gestite dal sistema operativo.
Stati dei Processi
- Running (In Esecuzione): Il processore esegue le istruzioni che costituiscono il programma e utilizza il tempo concesso su una specifica CPU.
- Ready (Pronto), Waiting (In Attesa) o Active (Attivo): Un processo è pronto per essere eseguito e sta aspettando il proprio turno per utilizzare l'intervallo di tempo e implementare le proprie istruzioni per accedere alle risorse di sistema.
- Blocked (Bloccato): Il processo è sospeso a causa di molteplici cause. Una ragione comune è che due processi tentano di utilizzare le stesse risorse in un file di dati.
Livelli (Layer) del Sistema Operativo
- User (Utente): Responsabile del controllo a livello di processi utente, mostrando all'utente il processo in esecuzione o quello che si desidera eseguire.
- Supervisor (Supervisore): Responsabile dell'esecuzione di ogni processo e della comunicazione tra il sistema e l'utente. Controlla e coordina l'input/output di diversi processi per le periferiche e i dispositivi di archiviazione esterni.
- Management (Gestione): A questo livello, si effettua la gestione dello storage. Memorizza i processi in pagine (segmentazione, paginazione, ecc.) sia nella memoria principale che su disco.
- Kernel (Nucleo): Responsabile del controllo della CPU. Gestisce l'accesso ai processi del computer per l'esecuzione. Nei sistemi operativi multi-utente, questo livello è responsabile dell'esecuzione delle attività di base, della comunicazione con l'hardware, della pianificazione dei processi, ecc.
Funzioni e Caratteristiche del Sistema Operativo
Funzioni Principali di un Sistema Operativo
- Controllo e attuazione dei programmi.
- Controllo, gestione e amministrazione delle periferiche.
- Controllo, gestione e amministrazione degli utenti.
- Controllo dei processi.
- Controllo degli errori di sistema e di applicazione.
- Controllo e gestione della sicurezza contro intrusioni o virus.
Gestione della Memoria
Il sistema che gestisce la memoria è il Gestore della Memoria (o Memory Manager). Il suo ruolo è chiaro: tenere traccia delle parti di memoria in uso e di quelle libere. In questo modo, riserva spazio di memoria per i nuovi processi e libera lo spazio dei processi che sono stati completati.
Definizione e Caratteristiche dei Processi
Un processo o attività può essere definito come un programma in esecuzione. I processi in un sistema operativo sono caratterizzati da:
- Per avviare l'esecuzione, un processo deve trovarsi interamente in memoria e devono essergli assegnate tutte le risorse necessarie.
- Ogni processo è protetto dagli altri processi; gli altri processi non possono scrivere in aree di memoria appartenenti ad altri.
- I processi possono corrispondere all'utente; in tal caso, vengono eseguiti in modalità utente del processore (con restrizioni di accesso alle risorse hardware). Se i processi appartengono al sistema, vengono eseguiti in modalità kernel o modalità privilegiata del processore (possono accedere a qualsiasi risorsa).
- Ogni processo avrà una struttura dati (BCP) che memorizza le informazioni sul processo.
- I processi sono in grado di comunicare, sincronizzare e collaborare.