Anteprima
Vedrai una selezione di 4 pagine su 11
Computer Pag. 1 Computer Pag. 2
Anteprima di 4 pagg. su 11.
Scarica il documento per vederlo tutto.
Computer Pag. 6
Anteprima di 4 pagg. su 11.
Scarica il documento per vederlo tutto.
Computer Pag. 11
1 su 11
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

(SO)

all'accensione di un computer

Ne esistono di diverse tipologie:

SO per i desktop SO per i server SO per i SO per SO "embedded"

mainframe smartphone e

tablet

- - - - -

Windows Windows Open MVS iOS Linux

Server

- - - -

Mac OS X VMS Android Android

- OS/2 embedded

- -

DOS HarmonyOS

- UNIX

- Linux - Linux

-

Meno potenti e Sicuri e portabili Software Interfaccia touch Per

proprietario in

af dabili elettrodomesticipi

genere ccoli, apparecchi

e, ormai, nelle

automobili

Sono i più diffusi Sono pensati per Ogni azienda ha

prodotto un suo

la gestione s.o., rendendo la

multitasking e comunicazione

multithreading di tra elaboratori

applicazioni molto complessa.

mission-critical 3

 fi fi fi

• Sistema operativo = rappresenta un insieme di software progettato per fornire

all'utente una gamma di comandi e servizi, consentendo l'ottimizzazione delle

capacità di calcolo di qualsiasi dispositivo elettronico.

La sua è quella di nascondere i dettagli tecnici speci ci

funzione primaria

dell'hardware e dell'architettura, presentando le informazioni a un livello più

comprensibile per l’utente.

Il sistema operativo:

- assicura il funzionamento di base di un calcolatore coordinando e gestendo

risorse hardware (es. il processore e la memoria primaria), nonché le periferiche

e le attività software (processi)

- svolge il ruolo cruciale di interfaccia con l'utente, senza la quale l'utilizzo del

computer e dei programmi speci ci (es. applicazioni o librerie software) sarebbe

impraticabile

- è il componente chiave che si interpone tra l'utente e la macchina

- costituisce una fondamentale piattaforma su cui si basano gli altri software, i

quali devono essere progettati e implementati in modo da essere riconosciuti e

supportati da quel particolare sistema operativo.

• Piattaforma del sistema di elaborazione = è costituita dal sistema operativo

correlato al processore.

Un sistema operativo può essere:

- monoutente→ se un solo utente per volta può accedere alle risorse

dell'elaboratore

- multiutente→ se più utenti possono accedere alle risorse dell'elaboratore che a

sua volta può essere:

sequenzialmente uno per volta

⟹seriale, ciascuno parallelamente agli altri

⟹parallelo,

- monotasking→ se in grado di eseguire un solo compito o task (processo) alla

volta

- multitasking o multithreading→ se in grado di svolgere più compiti o sottocompiti

parallelamente attraverso una certa politica di scheduling (es. timesharing)

- portabile o meno su differenti architetture hardware di processori

La maggior parte dei sistemi operativi moderni per PC è multiutente, multitasking

e portabile. 4

 fi fi

In una de nizione più rigorosa, il sistema operativo assume la responsabilità di

diverse funzioni e strutture dati, tra cui:

- controllo e gestione delle risorse di sistema, comprese la CPU e la memoria

primaria, e delle componenti hardware del computer, gestendo i processi di

Input/Output da e verso le periferiche collegate al sistema.

- esecuzione dei programmi, che vengono de niti come entità passive, dai quali

emergono i processi (considerati entità attive)➜ i processi vengono eseguiti,

assegnando loro le risorse necessarie per il progresso delle loro attività.

Nel caso in cui il sistema di elaborazione preveda la memorizzazione aggiuntiva dei

dati su memoria di massa, come nei computer general purpose, il sistema

operativo si occupa anche di:

- gestione dell'archiviazione e dell'accesso ai le➜ i programmi possono gestire

l'archiviazione dei dati su memoria di massa, ad esempio creando strutture

complesse come una base di dati, utilizzando le procedure messe a disposizione

dal sistema operativo. Questa componente è comunemente chiamata le

system.

In ne, se è prevista l'interazione con l'utente, si fa spesso uso di un'interfaccia

utente (sia gra ca che testuale) per accedere alle risorse hardware del sistema,

come dischi, memoria e 1/0 in generale.

Inoltre, un sistema operativo può essere impiegato anche su macchine senza

interazione diretta con un essere umano, come ad esempio smart card o

determinati sistemi embedded, spesso più leggeri e sempli cati.

Tipicamente, un sistema operativo installato su un computer fornisce anche

applicazioni di base per svolgere varie elaborazioni.

Nonostante molte delle funzionalità sopra menzionate non siano sempre

immediatamente visibili o percepibili dall'utente, l'importanza del sistema operativo

in un calcolatore è cruciale.

Oltre a gestire le funzionalità di base, il sistema operativo in uenza

signi cativamente l'ef cienza e gran parte delle prestazioni operative complessive

del sistema, ad esempio in termini di latenze di processamento, stabilità e

prevenzione di interruzioni o crash del sistema.

Un sistema operativo moderno tipico è costituito da diverse componenti standard,

caratterizzate da una de nizione più o meno precisa:

- Kernel

- Scheduler 5

 fi fi fi fi fi fi fi fi fi fl fi

- Gestore delle periferiche

- Gestore della memoria

- File system

- Interfaccia utente

- Spooler di stampa

Kernel

Il kernel rappresenta un insieme di funzioni fondamentali strettamente

interconnesse tra loro e con l'hardware, operanti con il massimo privilegio

disponibile sulla macchina.

• Kernel = è un software dedicato a fornire ai moduli costituenti il sistema operativo

e ai programmi in esecuzione sul computer le funzioni essenziali e un accesso

controllato all’hardware. Esso funge da motore o nucleo centrale del sistema

operativo.

Tale approccio solleva tali elementi dai dettagli della gestione hardware, offrendo le

funzionalità di base necessarie per tutte le altre componenti del sistema operativo.

Scheduler

• Scheduler = costituisce il componente essenziale dei sistemi operativi

multitasking, che sono in grado di gestire simultaneamente più processi.

Questo avviene in sequenza, ma con tempi così brevi che all'utente sembra che i

programmi siano in esecuzione contemporaneamente.

Avviene parzialmente in parallelo se il processore è multi-core.

La funzione principale dello scheduler è far progredire un processo,

interrompendone temporaneamente un altro e realizzando così un cambio di

contesto (context switch).

Poiché i computer con un singolo processore sono in grado di eseguire un solo

programma alla volta, l'uso dello scheduler è indispensabile per consentire la

coesistenza di più attività.

Esistono vari algoritmi di scheduling progettati per selezionare in modo ef ciente

quale processo far avanzare.

I processi non richiedono costantemente l'utilizzo della CPU➜ talvolta, anziché

eseguire istruzioni, si trovano in uno stato di attesa, aspettando dati da un le o

l'input dell'utente tramite la tastiera.

Di conseguenza, è teoricamente possibile utilizzare questi periodi di "inattività" per

eseguire altri programmi. 6

 fi fi

Questo concetto, emerso n dagli anni '50, si è concretizzato nei sistemi operativi

multitasking, che sono dotati di uno scheduler in grado di eseguire più processi

contemporaneamente.

Lo scheduler assegna a ciascun processo a turno l'uso della CPU, sospingendo

temporaneamente l'esecuzione di processi in attesa di eventi esterni, come

operazioni di lettura/scrittura su memoria di massa, stampa o input utente.

Dato che i sistemi multitasking devono gestire più processi contemporaneamente in

memoria centrale, richiedono una quantità maggiore di memoria rispetto a quelli

monotasking.

Inoltre, con la presenza di più processi attivi simultaneamente, il controllo delle

risorse hardware diventa una necessità essenziale.

L'implementazione del multitasking può avvenire principalmente in due modi:

- multitasking cooperativo→ i processi cedono spontaneamente il controllo al

sistema una volta completata la singola operazione in corso

- multitasking preemptive→ è lo scheduler a interrompere i processi allo scadere

del tempo assegnato, trasferendo il controllo da uno all'altro

Cooperative multitasking richiede minori risorse di calcolo, con ritardi minimi nella

commutazione dei task, e non richiede alcuna struttura hardware dedicata, rendendolo

adatto a implementazioni su qualsiasi calcolatore.

Tuttavia, è vulnerabile agli errori nei programmi, spesso causando il crollo dell'intero

sistema quando un processo si interrompe.

L'isolamento fra processi è limitato, ed è un modello spesso utilizzato in vecchi sistemi.

Preemptive multitasking richiede CPU con implementazioni hardware speci che,

inclusi livelli di privilegio per l'esecuzione del codice.

Poiché le interruzioni dei processi sono arbitrarie, il sistema operativo è costretto a salvare

la maggior parte dei registri della CPU al momento del cambio di task e a ricaricarli con

quelli del nuovo task, comportando un maggiore tempo di esecuzione.

Nonostante queste richieste aggiuntive, il preemptive multitasking offre una maggiore

sicurezza del sistema e una praticamente totale immunità dai crash causati da errori nei

programmi. È il modello adottato dai moderni sistemi operativi.

Gestore delle periferiche

• Meccanismo degli interrupt = effettua la gestione dell’input/output (periferiche

del sistema). In questo meccanismo, le periferiche stesse richiamano l'attenzione

del sistema operativo.

In questo processo, il sistema operativo esegue un cambiamento di contesto

(context switch) all'interno del ciclo del processore, assegnando al processore il

compito di gestire l'operazione di input/output richiesta dalla periferica coinvolta.

7

▶︎

▶︎

 fi fi

Questo meccanismo dinamico consente una gestione ef ciente delle periferiche,

permettendo al sistema operativo di rispondere tempestivamente alle richieste delle

periferiche.

• Polling = ulteriore modalità comune di gestione delle periferiche, alternativa agli

interrupt.

In questo caso, il sistema operativo, anziché attendere passivamente segnali dagli

interrupt, veri ca periodicamente lo stato delle periferiche mediante cicli di

interrogazione.

Quando rileva una periferica pronta, il sistema operativo effettua un context switch

per gestire l'operazione di input/output.

Il polling può comportare un utilizzo continuo della CPU, anche in situazioni in cui

non è richiesta alcuna attività da parte delle periferiche, potenzialmente generando

Dettagli
Publisher
A.A. 2024-2025
11 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher FeFeRoSsi2004 di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università telematica Guglielmo Marconi di Roma o del prof Mancarella Maria.