Degree in Computer Science
Operating Systems (2010/2011)
| Course code |
4S00019 |
| Credits |
12 |
| Coordinator |
Graziano Pravadelli
|
| Disciplinary sector |
ING-INF/05 - Information Processing Systems
|
| Teaching language |
Italian |
|
| Links |
 |
|
 |
|
|
Teaching is organised as follows:
Lecture timetable
| II semestre |
| Activity |
day |
Time |
Type |
Place |
Note |
| Teoria |
Tuesday |
2:30 PM - 4:30 PM |
lesson |
Lecture theatre B
|
|
| Teoria |
Wednesday |
12:30 PM - 1:30 PM |
lesson |
Lecture theatre B
|
|
| Laboratorio [Laboratorio 1] |
Tuesday |
12:30 PM - 2:30 PM |
laboratorio |
Didactic workshop Delta
|
from Apr 18, 2011
to Jun 15, 2011
|
| Laboratorio [Laboratorio 1] |
Thursday |
11:30 AM - 2:30 PM |
laboratorio |
Didactic workshop Delta
|
from Apr 18, 2011
to Jun 15, 2011
|
| Laboratorio [Laboratorio 1] |
Friday |
2:30 PM - 7:30 PM |
laboratorio |
Didactic workshop Alfa
|
from Mar 1, 2011
to Apr 15, 2011
|
| Laboratorio [Laboratorio 2] |
Monday |
1:30 PM - 4:30 PM |
laboratorio |
Didactic workshop Gamma
|
from Apr 18, 2011
to Jun 15, 2011
|
| Laboratorio [Laboratorio 2] |
Tuesday |
8:30 AM - 10:30 AM |
laboratorio |
Didactic workshop Gamma
|
from Apr 18, 2011
to Jun 15, 2011
|
| Laboratorio [Laboratorio 2] |
Saturday |
8:30 AM - 1:30 PM |
laboratorio |
Didactic workshop Delta
|
from Apr 14, 2011
to Apr 15, 2011
|
Educational objectives
The course introduces to operating system design, with particular regards to concepts related to the architecture of an operating system, and to the management and synchronization of processes and resources.
Syllabus
Theory:
-------
* Introduction: Evolution and role of the operating system. Architectural concepts. Organization and functionality of an operating system.
* Process Management: Processes. Process status. Context switch. Process creation and termination. Thread. User-level threads and kernel-level threads. Process cooperation and communication: shared memory, messagges. Direct and indirect communication.
* Scheduling: CPU and I/O burst model. Long term, short term and medium term scheduling. Preemption. Scheduling criteria. Scheduling algorithm: FCFS, SJF, priority-based, RR, HRRN, multiple queues with and without feedback. Algorithm evaluation: deterministic and probabilistic models, simulation.
* Process synchronization: data coherency, atomic operations. Critical sections. SW approaches for mutual exclusion: Peterson and Dekker's algorithms, baker's algorithm. HW for mutual exclusion: test and set, swap. Synchronization constructs: semaphores, mutex, monitor.
* Deadlock: Deadlock conditions. Resource allocation graph. Deadlock prevention. Deadlock avoidance. Banker's algorithm. Deadlock detection e recovery.
* Memory management: Main memory. Logical and physical addressing. Relocation, address binding. Swapping. Memory allocation. Internal and external fragmentation. Paging. HW for paging: TLB. Page table. Multi-level paging. Segmentation. Segment table. Segmentation with paging.
* Virtual memory: Paging on demand. Page fault management. Page substitution algorithms: FIFO, optimal, LRU, LRU approximations. Page buffering. Frame allocation: local and global allocation. Thrashing. Working set model. Page fault frequency.
* Secondary memory. Logical and physical structure of disks. Latency time. Disk scheduling algorithms: FCFS, SSTF, SCAN, C-SCAN, LOOK, C-LOOK. I/O subsystem: I/O Hardware. I/O techniques: programmed I/O, interrupt, DMA. Device driver and application interface. I/O kernel services: scheduling, buffering, caching, spooling.
*File System: file, attributes and related operation. File types. Sequential and direct access. Directory structure. Access permissions and modes. Consistency semantics. File system structure. File system mounting. Allocation techniques: adjacent, linked, indexed. Free space management: bit vector, lists. Directory implementation: linear list, hash table.
Laboratory:
------------
* Shell programming in Unix/Linux.
* Introduction to the system programming in Unix/Linux.
* System calls for I/O.
* System calls for process management.
* System calls and techniques for inter-process communication and synchronization (pipe, fifo, message queue, share memory, semaphores, ...).
* Thread programming.
Exam methods
Theory:
-------
The final exam consists of a written test containing questions and exercises.
Laboratory:
-----------
The exam can be taken in two modes: oral or written.
Oral mode:
During the course, students must solve 4 homeworks and provide the corresponding solutions within deadlines defined by the theacher. Then, at the end of the course, on the second half of June, each student must present orally the provided solutions to the theacher.
The exam can be taken in oral mode only on the second half of June.
The observance of deadlines is mandatory. Students that miss the deadline cannot take the exam in the oral mode.
Written mode:
The exam consists of solving some exercises related to system programming by means of shell scripts and/or C programs.
Total grade
-----------
The total grade (thery+laboratory) is given by:
theory_grade*0.5 + laboratory_grade*0.5.
| Reference books |
| Activity |
Author |
Title |
Publisher |
Year |
ISBN |
Note |
| Teoria |
Andrew S. Tanenbaum |
I moderni sistemi operativi
(Edizione 3)
|
Addison Wesley |
2009
|
8871925408 |
|
| Teoria |
Dhananjay M. Dhamdhere |
Sistemi Operativi
(Edizione 1)
|
McGraw-Hill |
2010
|
9788838664878 |
|
| Teoria |
A. Silberschatz - P.B. Galvin - G. Gagne |
Sistemi Operativi. Concetti ed esempi.
(Edizione 8)
|
Pearson Paravia Bruno Mondadori |
2009
|
978-88-7192-569-1 |
Testo di riferimento |
|
Teaching aids
|
| Activity |
Title |
Format (Language, Size, Publication date) |
|
Teoria
|
Calendario lezioni II semestre (aggiornato al 19/05/2011)
|
pdf (it, 7.844 KB, 5/19/11)
|
|
Teoria
|
Calendario lezioni I semestre
|
pdf (it, 5.963 KB, 11/9/10)
|
|
Teoria
|
Il file system ZFS
|
pdf (it, 851.711 KB, 1/17/11)
|
|
Teoria
|
Materiale didattico [laboratorio] (aggiornato al 15/04/11)
|
html (it, 38.226 KB, 4/15/11)
|
|
Teoria
|
Materiale didattico [teoria]
|
html (it, 47.081 KB, 9/21/10)
|
|
Teoria
|
ZFS - Slide
|
pdf (it, 744.033 KB, 1/17/11)
|
| Statistics |
| Outcomes Exams |
Outcomes Percentages |
Average |
Standard Deviation |
| Passed |
35.35%
|
23
|
3
|
| Failed |
33.33%
|
|
| Absent |
24.74%
|
| Withdrawn |
4.04%
|
| Canceled |
2.52%
|
| Distribuzione degli esiti positivi |
| 18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
30 e Lode |
|
4.2%
|
4.2%
|
11.4%
|
8.5%
|
12.8%
|
11.4%
|
12.8%
|
8.5%
|
7.1%
|
8.5%
|
2.8%
|
1.4%
|
2.8%
|
2.8%
|
Data from AA 2010/2011 based on 198 students. I valori in percentuale sono arrotondati al numero intero più vicino.
|