CdSINFORMATICA
Codice277AA
CFU12
PeriodoSecondo semestre
LinguaItaliano
Lo studente acquisirà conoscenze approfondite relative ai concetti fondamentali dei sistemi operativi e agli aspetti legati alla loro implememtazione. Inoltre, lo studente acquisirà conoscenze relative alla programmazione concorrente.
The student who successfully completes the course will demonstrate a solid knowledge of the fundamental concepts related to the operating systems, of the aspects related to their implementation and of concurrent programming in general.
La valutazione avverrà tramite una prova scritta, un progetto e una prova orale.
Nella prova scritta verrà valutata la capacità dello studente di comprendere e di risolvere alcuni esercizi che presentano situazioni ipotetiche in un sistema operativo.
Con il progetto verrà valutata la capacità dello studente di mettere in pratica le conoscenze acquisite, tramite la realizzazione di un progetto funzionante.
Nella prova orale lo studente verrà valutato in base alla sua capacità di discutere i contenuti del corso usando una terminologia appropriata.
Il peso delle varie prove nella valutazione finale è orientativamente progetto (50%) - prova scritta e prova orale (50%)
- The student will be assessed on his/her demonstrated ability to discuss the main course contents using the appropriate terminology.
- During the written and oral exam the student must be able to demonstrate his/her knowledge of the course material and be able to solve exercises and to discuss the reading matter thoughtfully and with propriety of expression.
- The student must also demonstrate the ability to put into practice and to execute, with critical awareness, the activities illustrated or carried out under the guidance of the teacher during the laboratory, by implementing a project on a sucject proposed by the teacher.
Methods:
- Final oral exam
- Final written exam
- Laboratory report
Further information:
Students must produce a working project as result of the laboratories. The weighting of the different parts of the exam is: - project (50%) - final written and oral exam (50%)
Lo studente acquisirà la capacità di scrivere programmi concorrenti che utilizzano chiamate di sistema per l'uso dei dispositivi e per l'interazione con il sistema operativo
the student will have the ability to write concurrent programs that use system calls for the interaction with the devices and with the operating system
Le capacità acquisite dallo studente verravvo verificate tramite la realizzazione di un progetto, su un argomento proposto dal docente di laboratorio.
The student will demonstrate the ability to put into practice and to execute, with critical awareness, the activities illustrated or carried out under the guidance of the teacher during the laboratory, by implementing a project on a subject proposed by the teacher of the laboratory.
Il corso non si pone obiettivi di apprendimento in termini di comportamenti attesi.
The course does not have specific objectives in terms of expected behaviours
Non sono previste prove per la verifica dei comportamenti.
the course do not have specific tests to assess the extecpet behaviours
sono utili basi di architetture degli elaboratori
basic knowledge of computer architecture is suggested (although not mandatory)
Le lezioni avvengono in aula o in laboratorio alla presenza del docente. Le attività di apprendimenti comprendono:
- seguire le lezioni
- attività pratica di laboratorio
- studio individuale
Non c'è obbligo di presenza alle lezioni
Delivery: face to face
Learning activities:
- attending lectures
- individual study
- Laboratory work
Attendance: Not mandatory
Il corso è strutturato in due moduli: il primo modulo presenta i fondamenti dei sistemi operativi e il secondo modulo di laboratorio mostra un’applicazione concreta dei concetti teorici presentati nel primo modulo.
Il primo modulo introduce i principi ed i concetti su cui si basano i sistemi operativi e analizza la loro realizzazione nei sistemi reali. In particolare, vengono presentate le tecniche che consentono di coordinare e gestire le risorse di un sistema di elaborazione e che permettono di trasformare la macchina fisica in una macchina astratta, dotata di funzionalità più convenienti per l'utente. Il corso lascia ampio spazio alla descrizione e all'esemplificazione di come i vari concetti presentati sono realizzati nei sistemi Unix/Linux e in quelli della famiglia Microsoft Windows. Il secondo modulo fornisce le conoscenze di base relative alla programmazione C con chiamate di sistema Unix/POSIX. In particolare, vengono prese in considerazione le chiamate standard per il trattamento di file e directory, processi, thread, segnali, pipe, socket e vari meccanismi di sincronizzazione.
The course is organized in two moduli: one theoretical (named Operating Systems), and one practical (named laboratory). The Operating Systems module introduces the main concepts of operating systems and discusses their implementation in real systems. Specific topics covered are concurrency and the management of processor, memory and device management, the file system and the case studies of Unix/Linux and Windows. The module of laboratory gives a broad view of standard tools for sequential C programs addressing debugging, testing, compiling, making libraries, using makefiles to manage large programs. Precisely, the module presents the Bash shell scripting language and develop simple scripts for routine tasks. In the last part of the course we present Posix programming and develop a small client-server system using Posix threads.
T. Anderson, M. Dahlin : "Operating Systems: principles and practice", Recursive Books Ltd, 2013 Marc J. Rochkind. Advanced UNIX Programming 2nd Edition, Addison-Wesley Professional Computing Series, 2004.
Marc J. Rochkind. Advanced UNIX Programming 2nd Edition, Addison-Wesley Professional Computing Series, 2004
T. Anderson, M. Dahlin : "Operating Systems: principles and practice", Recursive Books Ltd, 2013 Marc J. Rochkind. Advanced UNIX Programming 2nd Edition, Addison-Wesley Professional Computing Series, 2004.
Marc J. Rochkind. Advanced UNIX Programming 2nd Edition, Addison-Wesley Professional Computing Series, 2004
gli studenti non frequentanti hanno accesso a tutto il materiale didattico (inclusa la registrazione delle lezioni) al sito web del corso
All the students have access to all material (included recordings of the classes) on the web site of the course
La valutazione avverrà tramite una prova scritta, un progetto e una prova orale.
Nella prova scritta verrà valutata la capacità dello studente di comprendere e di risolvere alcuni esercizi che presentano situazioni ipotetiche in un sistema operativo.
Con il progetto verrà valutata la capacità dello studente di mettere in pratica le conoscenze acquisite, tramite la realizzazione di un progetto funzionante.
Nella prova orale lo studente verrà valutato in base alla sua capacità di discutere i contenuti del corso usando una terminologia appropriata.
Il peso delle varie prove nella valutazione finale è orientativamente progetto (50%) - prova scritta e prova orale (50%)
- The student will be assessed on his/her demonstrated ability to discuss the main course contents using the appropriate terminology.
- During the written and oral exam the student must be able to demonstrate his/her knowledge of the course material and be able to solve exercises and to discuss the reading matter thoughtfully and with propriety of expression.
- The student must also demonstrate the ability to put into practice and to execute, with critical awareness, the activities illustrated or carried out under the guidance of the teacher during the laboratory, by implementing a project on a sucject proposed by the teacher.
Methods:
- Final oral exam
- Final written exam
- Laboratory report
Further information:
Students must produce a working project as result of the laboratories. The weighting of the different parts of the exam is: - project (50%) - final written and oral exam (50%)
http://didawiki.cli.di.unipi.it/doku.php/informatica/sol/start
http://didawiki.cli.di.unipi.it/doku.php/informatica/sol/start