0.1: Introduzione al Corso

Documenti analoghi
Università di Bologna Corso di Laurea in Ingegneria Informatica A.A Sistemi Operativi L-A

Università di Bologna Corso di Laurea in Ingegneria Informatica A.A Sistemi Operativi L-A. Obiettivi del Corso. Argomenti trattati

CORSO DI Principi di Sistemi Operativi (1? anno Corso di Laurea Specialistica in Ingegneria Informatica) ANNO ACCADEMICO

Il corso di Sistemi Operativi Introduzione al corso di Sistemi Operativi

Sistemi Operativi Informatica II. Presentazione del corso. a.a Patrizia Scandurra

Progettazione di Sistemi Operativi (1 anno Corso di Laurea Magistrale in Ingegneria Informatica) ANNO ACCADEMICO

Principi di Sistemi Operativi (1 anno Corso di Laurea Magistrale in Ingegneria Informatica) ANNO ACCADEMICO

Alberto Ceselli

Sistemi Operativi (mod. Informatica II)

Il corso di Sistemi Operativi. Introduzione al corso di Sistemi Operativi Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Sistemi Operativi. Prof. Alberto Broggi. Dip. di Ingegneria dell Informazione Università di Parma

Sistemi Operativi/Informatica per l Automazione l

SISTEMI OPERATIVI - canale 2

SISTEMI OPERATIVI - canale 2

Sistemi Operativi corso A, a.a

Sistemi Operativi corso A, a.a

Sistemi Operativi A. Prof. Alberto Broggi. Dip. di Ingegneria dell Informazione Università di Parma

Sistemi Operativi - Teoria corso A

Universita` di Bologna Corso di Laurea Magistrale in Ing. Informatica A.A Sistemi Operativi M. Prof. Anna Ciampolini

IL SISTEMA OPERATIVO

Presentazione del corso

SISTEMI OPERATIVI - canale 1

Universita` di Bologna Corso di Laurea Magistrale in Ing. Informatica A.A Sistemi Operativi M. Prof. Anna Ciampolini

CORSO DI Sistemi Operativi e Lab. (2 anno-270 CCL in Ingegneria Informatica) 9 CFU ANNO ACCADEMICO

Sistemi Operativi e Lab. Informatica) ANNO ACCADEMICO

IL SISTEMA OPERATIVO

Sistemi Operativi A. Corso di Laurea in Ingegneria Informatica. Francesco Zanichelli. a.a. 2002/03

Università degli Studi di Enna Kore Facoltà di Ingegneria ed Architettura

Presentazione del corso

CORSO DI Sistemi Operativi e Lab. (2 anno-270 CCL in Ingegneria Informatica) 9 CFU ANNO ACCADEMICO

introduzione al corso di sistemi operativi a.a maurizio pizzonia

CORSO DI Sistemi Operativi e Lab. (2 anno-270 CCL in Ingegneria Informatica) 9 CFU ANNO ACCADEMICO

Sistemi Operativi L-S

Università di Bologna Corso di Laurea Specialistica in Ingegneria dell'automazione e Ingegneria Elettronica A.A Sistemi Operativi L-A

Universita` di Bologna Corso di Laurea Magistrale in Ing. Informatica A.A Sistemi Operativi M. Prof. Anna Ciampolini

FONDAMENTI DI INFORMATICA II

Docente: Prof. Marco Patella Tutor: Lorenzo Rosa

Docente: Prof. Marco Patella Tutor: Stefano Pio Zingaro

Corso di. Corsi di Laurea in Ingegneria Elettronica e Ingegneria dell Automazione

Docente: Prof. Marco Patella Tutor: Vincenzo Lomonaco

Sistema operativo: Introduzione

Corso di INFORMATICA AZIENDALE (4 CFU)

Operating Systems & Lab

Teoria (prima parte del corso completata entro 16/04/09 - compitino il 28/04/09)

Informazioni sul corso

Universita` di Bologna Corso di Laurea Magistrale in Ing. Informatica A.A Sistemi Operativi M. Prof. Anna Ciampolini

Elenco sezioni libro di testo Ed. 5 Tra parentesi le corrispondenze per l'ed. 7.

Corso di Sistemi di Elaborazione Modulo 1 (6 CFU)

A.A sull insegnamento Architettura degli Elaboratori e Sistemi Operativi (B)

Introduzione al corso. Laboratorio di Telecomunicazioni (6 CFU) Corso di Laurea in Ingegneria dell Informazione

MODELLO SCHEDA INSEGNAMENTO

Corso di Reti di Calcolatori L-A

Struttura dei Sistemi Operativi

Elementi di Informatica

Prof. Rossella Cancelliere

ELEMENTI DI INFORMATICA per Matematica

Corso di Sistemi di Elaborazione Modulo 1 (6 CFU)

Università degli Studi di Ferrara

Corso Sistemi Operativi AA Prof. Enzo Mumolo

Università degli Studi di Bologna. Facoltà di Ingegneria CORSO DI INGEGNERIA DEL SOFTWARE. Prof. Evelina Lamma

OBIETTIVI: FILONI PRINCIPALI FONDAMENTI DI INFORMATICA II

Syllabus A042 Insegnamenti disciplinari

Programma e Modalità d Esame

Informatica industriale L-31. Corso di Programmazione e Laboratorio di Programmazione

Linguaggi di Programmazione + Lab. A.A Docente: Marco de Gemmis. Presentazione dell insegnamento

Organizzazione di Sistemi Operativi e Reti. Overview. Programma

Fondamenti di Informatica MultiDAMS

Linguaggi e Traduttori 1

Principi di Progettazione del Software a.a Introduzione al corso Prof. Luca Mainetti Università del Salento

Corso di Reti di Calcolatori T

Presentazione del corso Lezione 1

Basi di Dati II. Introduzione al corso

Principi di Progettazione del Software a.a Introduzione al corso Prof. Luca Mainetti Università del Salento

WEB:

Università degli Studi di Enna Kore Facoltà di Ingegneria ed Architettura Anno Accademico

SOFTWARE. Programmi e dati che indicano al computer come svolgere un determinato compito

Fondamenti di Informatica II Corso (HA-ZZ) Introduzione al corso

Sistema operativo: Introduzione

Corso di Reti di Calcolatori T

Informatica di Base B - MultiDAMS -- Rossano Gaeta

Sistema operativo & file system 1

Fondamenti di Informatica T-1

Corso di Laurea Ingegneria Informatica

I sistemi operativi. Prof. Daniele Contarino

Informatica industriale L-31. Corso di Programmazione e Laboratorio di Programmazione

CORSO DI INTELLIGENZA ARTIFICIALE. Docente: Prof. Paola Mello

OBIETTIVI. Conoscere i concetti di base dell Informatica. Conoscere i principi e gli strumenti di base della programmazione

Elementi di Informatica A. A. 2016/2017

Corso di Programmazione I Introduzione

Università degli studi Magna Graecia di Catanzaro

Corso di Sistemi Operativi

Sistemi Informativi. Ing. Fabrizio Riguzzi

Fondamenti di Informatica T-1

Corso di Fondamenti di Informatica Anno accademico 2018/19

Domenico Talia. Corso di Laurea in Ingegneria Informatica. Facoltà di Ingegneria A.A UNICAL. D. Talia SISTEMI DISTRIBUITI - UNICAL 1

Transcript:

0.1: Introduzione al Corso Informazioni di base Obiettivi del corso Programma del corso Ambiente di lavoro Pre e post requisiti del corso Modalità di svolgimento dell'esame Testi e dispense 0.1.1

Corso di Sistemi Operativi Introduzione al corso e informazioni preliminari a.a. 2002 2003 Docente del corso: Prof. Vito Asta E mail: vito.asta@axdigital.com, vito.asta@axnet.it 0.1.2

Preliminari Aule e orari: Martedì ore 14.00 16.30 Aula 505 Mercoledì ore 14.00 16.30 Aula 1 Il mercoledì verrà spesso utilizzato il laboratorio, per le esercitazioni pratiche. 0.1.3

Preliminari (Cont.) Home page WEB del corso: http://www.axdigital.com/~vito/solt Programma Dispense Avvisi (consultare spesso!) Esami (prove d'esame svolte, anche degli anni scorsi) Mailing list del corso: Tutte le informazioni importanti vengono trasmesse tramite la mailing list Inviare una mail al docente, entro il 16 maggio, con soggetto "S.O. Latina", specificando: Nome, Cognome, indirizzo di e mail Corso di laurea + anno di frequenza 0.1.4

Preliminari (Cont.) N.B. chi non invia la mail per iscriversi alla lista entro la data specificata, NON sarà ammesso agli esoneri. La mailing list verrà utilizzata per inviare avvisi (complementari a quelli inseriti nel sito) su disponibilità di dispense, modifiche di orari o annullamento di lezioni, etc. 0.1.5

Obiettivi del Corso Presentare i concetti fondamentali, le problematiche da affrontare e le tecniche adottate nell implementazione di un Sistema Operativo. Esaminare in dettaglio come i concetti e le problematiche viste si concretizzano nell'implementazione del Sistema Operativo Unix, e più particolarmente Linux. Presentare le parti più rilevanti del codice del kernel di Linux, come esempio concreto di un Sistema Operativo reale e moderno, in modo da apprezzarne in dettaglio le scelte realizzative, in termini di strutture di dati e di algoritmi adottati. Far acquisire un livello accettabile di manualità pratica in un sistema Unix/Linux, a livello utente/amministratore e a livello programmatore. Introdurre le basi del lavoro pratico in ambiente Unix/Linux, con lo studio del linguaggio di comandi shell. 0.1.6

Programma del Corso N.B il programma potrebbe essere suscettibile di variazioni Parte 0 Introduzione Definizione e ruolo di un Sistema Operativo; classificazione, struttura del kernel, servizi, chiamate di sistema; programmazione di sistemi Evoluzione storica dei Sistemi Operativi: il ruolo di IBM fino agli anni '70 e l'importanza dell'avvento di Unix; il ruolo di Microsoft e l'importanza dell'avvento di Linux Il fenomeno del Software Libero; impatto attuale e futuro. 0.1.7

Programma del Corso (Cont.) Parte 1 Concetti fondamentali Cenni sull'organizzazione dei sistemi di calcolo Software di base: linguaggi, compilatori, librerie etc. Gestione del file system Gestione dei processi; scheduling Gestione della CPU; algoritmi di scheduling Sincronizzazione dei processi Spazio degli indirizzi di un processo Struttura interna del kernel Gestione della memoria primaria; swapping e paginazione Struttura e gestione della memoria secondaria; scheduling del disco 0.1.8

Programma del Corso (Cont.) Parte 2 I Sistemi Operativi Unix (System V / BSD) e Linux: caratteristiche e utilizzazione pratica Generalità, evoluzione storica L'interfaccia utente, comandi associati; l'interfaccia di programmazione L'ambiente di amministrazione La shell come interprete di comandi File System, comandi associati Meccanismi di protezione di file, processi, risorse Controllo e gestione di processi e segnali; meccanismi di comunicazione Avvio e arresto del sistema (scenario); i server di sistema Panoramica delle primitive di sistema; comandi 0.1.9

Programma del Corso (Cont.) Parte 2 (continua) Le parti fondamentali del kernel: strutture di dati e algoritmi interrupt e trap gestione delle chiamate di sistema gestione dei moduli del kernel Linux gestione e sincronizzazione dei processi; lo scheduler gestione della memoria e della paginazione gestione delle periferiche; la cache di I/O; interfacciamento ai device driver gestione dei file system (System V; Ext2) gestione dell'astrazione dei file system in Linux (VFS Virtual File System) 0.1.10

Programma del Corso (Cont.) Parte 3 Programmazione in ambiente Unix/Linux Linguaggio C studio delle chiamate sistema e funzioni di libreria per: gestione dei files gestione dei processi e dei thread gestione dell'ambiente operativo gestione dei segnali gestione dei meccanismi di comunicazione tra processi gestione delle tty fisiche e delle pseudo tty gestione multiplexata di canali di I/O 0.1.11

Programma del Corso (Cont.) Parte 3 (continua) Realizzazione di script di comandi La shell come linguaggio di programmazione; la sintassi, i costrutti La shell come esempio di applicazione pratica delle primitive di sistema di Unix/Linux Principali comandi di utilità per gli script shell Esempi di applicazioni a livello utente e a livello amministratore Esempi di applicazione; studio dettagliato del loro codice; realizzazione di funzionalità mediante interazione tra script shell e programmi C 0.1.12

Programma del Corso (Cont.) Parte 4 Codice del Kernel del Sistema Operativo Linux Organizzazione dei file sorgente; configurazione e compilazione del kernel. I principali header files e le strutture di dati. I principali files di codice, le strategie e gli algoritmi: inizializzazione del sistema chiamate di sistema segnali e interrupt processi e thread file systems e VFS Interfacciamento e supporto per i device drivers 0.1.13

Ambiente di Lavoro Ambiente operativo di riferimento (esercitazioni pratiche): GNU/Linux Alternativa (poco consigliata): Windows + package Cygwin (emulazione ambiente GNU/Linux) N.B. il laboratorio dispone di macchine con Linux installato Configurazioni: Linux: Mandrake 8.0 o sup. (*) http://www.mandrakelinux.com Open Office 1.0.1 per Linux (*) http://www.openoffice.org Windows: Windows 98 o sup. Open Office 1.0.1 per Windows (*) http://www.openoffice.org Cygwin versione 1.3.22 o succ. (*) http://www.cygwin.com 0.1.14

Prerequisiti del Corso Conoscenza di base della struttura hardware e del funzionamento dei calcolatori (1) Saper programmare in linguaggio C (2) Conoscenza e capacità d'uso del programma Make (2) Leggere correntemente testi tecnici in inglese (1) Dal corso di Calcolatori Elettronici; alcuni contenuti verranno ricapitolati nel corso delle lezioni (2) Oggetto di seminari di approfondimento. 0.1.15

Postrequisiti del Corso Acquisizione delle conoscenze di base sui S.O.: ruolo e struttura, gestione dei processi, della memoria, dei file system, sistemi di I/O. Capacità di utilizzare gran parte delle chiamate sistema Unix/Linux da linguaggio C Capacità di utilizzare gran parte delle funzionalità Unix/Linux da script shell Conoscenza delle parti principali dei sorgenti del kernel del S.O. Linux, così da saperne spiegare il relativo funzionamento e illustrare gli algoritmi implementati; conoscenza delle principali strutture di dati utilizzate nel kernel e delle loro dichiarazioni nei files di intestazione Capacità di generare, configurare, installare e utilizzare una versione del S.O. Linux 0.1.16

Svolgimento dell'esame L'esame consiste di una prova scritta e una prova orale Prova scritta: 4 ore Prova orale: normalmente solo una discussione dello scritto, salvo casi particolari (lode, o sufficienza scarsa) Scritto: due parti teoria 40 definizioni brevi Argomento a tema, da trattare liberamente Commento di alcune righe di codice del kernel di Linux o di Unix pratica un esercizio di programmazione shell 0.1.17

Svolgimento dell'esame Le due parti possono essere svolte separatamente, in due appelli consecutivi Per l'argomento a tema (parte di teoria), 48 ore prima della prova scritta verrà comunicata una rosa di quattro possibili temi, tra i quali verrà scelto (all'ultimo momento) quello della prova stessa Per la parte pratica, verrà distribuito un pro memoria dei comandi shell utili e di chiamate di sistema con i rispettivi prototipi. Le informazioni per gli esoneri verranno comunicate più avanti. 0.1.18

Testi Adottati Testi di base: D.P. Bovet V. Asta, Introduzione ai Sistemi Operativi V. Asta, Introduzione ai Sistemi Operativi Unix e GNU/Linux V. Asta, Esercitazioni di programmazione in linguaggio shell F. Quaglia C. Demetrescu, Programmazione in Ambiente Unix, dispensa didattica Dispense distribuite dal docente. Tutti i testi e le dispense di cui sopra sono scaricabili dal sito WEB del corso Formato dispense:.pdf (Portable Document Format),.ps 0.1.19

Testi Adottati (Cont.) Altri libri, dispense e risorse: Scott E. Maxwell, Linux Core Kernel Commentary, Coriolis Group 1999 (1) T. Aivazian, Linux Kernel Internals (2) Sorgenti del kernel di Linux in formato ipertestuale, disponibili sul sito http://lxr.linux.no (1) Solo poche pagine, disponibili presso il docente; non è necessario acquistarlo (2) Scaricabile dal sito WEB del corso 0.1.20

Testi Adottati (Cont.) Altri libri consigliati per approfondimenti (ma non necessari): A. Silberschatz P.B. Galvin G. Gagne, Operating System Concepts 6. Edition, Addison Wesley 2003 traduzione italiana: A. Silberschatz P.B. Galvin, Sistemi Operativi 5. edizione, Addison Wesley 1998 W. R. Stevens, Advanced Programming in the Unix Environment, Addison Wesley 1993 D.P. Bovet M. Cesati, Understanding the Linux Kernel, O'Reilly 2001 E. Paita C. Parente, Usare Open Office, Jackson 2002 0.1.21