116 – Sistemi operativi di Marco Lino Ferrario

Acquista su Amazon

Compito di un sistema operativo è rendere disponibili a uno o più utenti le risorse di un sistema di elaborazione. Il sistema operativo è dunque un software che si occupa di gestire fisicamente l’HW della macchina fisica: computer, tablet o smartphone, console di gioco o processore embedded; contemporaneamente il sistema operativo presenta un modello logico delle funzionalità della macchina verso l’utente o l’applicazione in esecuzione. Esempi di risorse gestite sono innanzitutto i processi, ovvero programmi contemporaneamente in esecuzione in un sistema multiprocessing. L’esecuzione contemporanea di più processi pone inoltre il problema di gestire in modo efficiente la memoria a disposizione, affiancando alla gestione fisica di questa risorsa anche tecniche di virtualizzazione e protezione. La memorizzazione permanente dei dati e dei programmi è poi gestita tramite l’uso dei file, in una gerarchia denominata filesystem. L’utente interagisce con il sistema tramite dispositivi di input (tastiera, mouse, joystick, touch screen, …) e di output (monitor, stampanti, …). Un sistema operativo spesso permette l’accesso ad Internet, gestendo interfacce di rete. Si occupa poi dell’autenticazione di ciascun utente e della protezione degli accessi. Fra le molte implementazioni sviluppate per i sistemi operativi, hanno avuto particolare diffusione Microsoft Windows e GNU/Linux. Entrambi presentano un’interfaccia a linea di comando (shell in Linux, interprete dei comandi in Windows), ma soprattutto forniscono ricche funzionalità di configurazione e controllo attraverso sofisticate interfacce grafiche. Dal punto di vista di un programmatore, l’accesso al sistema operativo avviene attraverso un’interfaccia (API) che definisce le funzioni disponibili. In Linux l’accesso alle system call, e in generale ai servizi disponibili, avviene attraverso una serie di funzioni in linguaggio C. In Windows esistono diverse soluzioni di accesso, ma storicamente è sempre esistita una serie di funzioni API, anch’essa in linguaggio C, denominata Win32 (Win64).

Sommario

1. INTRODUZIONE AI SISTEMI OPERATIVI – 1.1. Evoluzione storica dei sistemi operativi – 1.2. Funzioni e caratteristiche dei sistemi operativi – 1.3. Bootstrap – 1.4. Interfacce utente – 1.5. Tipologie di sistemi operativi – 1.6. Tipologie di elaborazione – 1.7. Introduzione ai processi – 1.8. File system – 1.9. Gestione della sicurezza ● 2. ARCHITETTURA DEI SISTEMI OPERATIVI – 2.1. Architettura di Windows NT – 2.2. Architettura di Linux ● 3. WINDOWS – 3.1. File System Windows – 3.2. Gestione degli utenti – 3.3. Gestione dell’accesso alle risorse ● 4. LINUX – 4.1. Boot – 4.2. File System Linux – 4.3. Gestione degli utenti – 4.4. Shell – 4.5. Comandi Linux ● 5. GESTIONE DEI PROCESSI – 5.1. Schedulazione dei processi ● 6. GESTIONE DELL’INGRESSO E USCITA ● 7. GESTIONE DELLA MEMORIA CENTRALE – 7.1. Memoria virtuale ● 8. PROGRAMMAZIONE C IN AMBIENTE LINUX – 8.1. Funzioni API fondamentali di Linux ● 9. PROGRAMMAZIONE C IN AMBIENTE WINDOWS – 9.1. Programmazione basata su User Interface – 9.1.1 Convenzioni di chiamata e tipi di dato – 9.1.2 Esempio di applicazione UI – 9.1.3 Funzioni API Win32 – 9.2. Programmazione basata su console – 9.2.1 Funzioni Microsoft CRT – 9.2.2 Esempio di applicazione console ● 10. VIRTUALIZZAZIONE.

Tratto dal Capitolo 25 del Manuale Cremonese di Informatica e Telecomunicazioni, Zanichelli, 2015

ISBN: 9788893640107

 

%d blogger hanno fatto clic su Mi Piace per questo: