Servizi per la didattica
PORTALE DELLA DIDATTICA

System programming

04KTOBG

A.A. 2019/20

Course Language

English

Course degree

Master of science-level of the Bologna process in Communications And Computer Networks Engineering - Torino

Course structure
Teaching Hours
Lezioni 40
Esercitazioni in laboratorio 20
Teachers
Teacher Status SSD h.Les h.Ex h.Lab h.Tut Years teaching
Montrucchio Bartolomeo Professore Associato ING-INF/05 40 0 0 0 5
Teaching assistant
Espandi

Context
SSD CFU Activities Area context
ING-INF/05 6 C - Affini o integrative Attività formative affini o integrative
2019/20
The course aims at introducing the basic elements of the Operating Systems architecture, describing the basic structure of OSs and the working principles from the point of view of both the advanced user and the system programmer. This course analyzes the operating system architecture, and its internal modules. It introduces concepts and techniques for an effective management of the resources of a computer system. System programming techniques are illustrated through the analysis and use of Unix system calls. The course is taught in English.
The course aims at introducing the basic elements of the Operating Systems architecture, describing the basic structure of OSs and the working principles from the point of view of both the advanced user and the system programmer. This course analyzes the operating system architecture, and its internal modules. It introduces concepts and techniques for an effective management of the resources of a computer system. System programming techniques are illustrated through the analysis and use of Unix system calls. The course is taught in English.
• Skill for using system calls for the creation, synchronization and termination of processes and threads • Knowledge of virtual memory mechanism • Knowledge of process scheduling • Skill to understand device drivers • Skill to understand and implement programs based on system calls
• Skill for using system calls for the creation, synchronization and termination of processes and threads • Knowledge of virtual memory mechanism • Knowledge of process scheduling • Skill to understand device drivers • Skill to understand and implement programs based on system calls
• Knowledge of a computer system architecture: in particular structure of the CPU and memory • Knowledge of the interrupt mechanism and basics of an Assembly language • Knowledge of the main data type structures and algorithms • Good programming skill in C language
• Knowledge of a computer system architecture: in particular structure of the CPU and memory • Knowledge of the interrupt mechanism and basics of an Assembly language • Knowledge of the main data type structures and algorithms • Good programming skill in C language
1. Computer Architecture and Programming (0.45 credits): o Recalls on programming languages o Architecture and behavior of a processor o Peripheral management and control 2. Operating System Structures (0.3 credits): o Operating System Services and User Interface o Kernel 3. Unix shell (0.3 credits): o Bash o Debugger o Profiler 4. Processes and Threads (1.35 credits): o multitasking and scheduling o Concurrent Programming o Threads 5. Process and Threads Synchronization (1.5 credits): o Semaphores o Inter-Process Communication o System call o Posix Threads 6. Memory Management and Virtual Memory (0.45 credits)
1. Computer Architecture and Programming (0.45 credits): o Recalls on programming languages o Architecture and behavior of a processor o Peripheral management and control 2. Operating System Structures (0.3 credits): o Operating System Services and User Interface o Kernel 3. Unix shell (0.3 credits): o Bash o Debugger o Profiler 4. Processes and Threads (1.35 credits): o multitasking and scheduling o Concurrent Programming o Threads 5. Process and Threads Synchronization (1.5 credits): o Semaphores o Inter-Process Communication o System call o Posix Threads 6. Memory Management and Virtual Memory (0.45 credits)
Laboratory activity (1.65 credits): o Unix Shell o Concurrent programming with processes and threads o Introduction to Linux kernel end device drivers The students are required to submit four homeworks, at defined deadlines. The homeworks will be evaluated.
Laboratory activity (1.65 credits): o Unix Shell o Concurrent programming with processes and threads o Introduction to Linux kernel end device drivers The students are required to submit four homeworks, at defined deadlines. The homeworks will be evaluated.
The slides used for the course will be made available to the students, through the official page of the course on the web site. The textbooks are the following: • Silberschatz, Galvin, Gagne, Operating System Concepts, 8th Edition, John Wiley & Son, 2009 • J. Cooperstein, Linux Program Development, 2009 • J. Cooperstein, Writing Linux Device Drivers, 2009
The slides used for the course will be made available to the students, through the official page of the course on the web site. The textbooks are the following: • Silberschatz, Galvin, Gagne, Operating System Concepts, 8th Edition, John Wiley & Son, 2009 • J. Cooperstein, Linux Program Development, 2009 • J. Cooperstein, Writing Linux Device Drivers, 2009
Modalità di esame: prova scritta; prova orale obbligatoria; elaborato scritto individuale;
The examination consists of a written test and an oral verification. Homeworks correctness and completeness will be also considered in the final result. Homeworks must be completed during the course following a calendar specified at the beginning of the course. The written test (max 30 points, duration usually of 120 minutes) consists of two parts: • exercises and questions (normally 4) on the topics of the lectures • the solution to a problem using threads or concurrent programming in C language. The written exam will be closed books; in selected cases it will be distributed a cheat sheet. Using smartphones, smartwatches and any kind of computers and communication system is strictly forbidden. The oral verification will be on the topics of the lectures, on the homework and on the verification of the program developed during the written exam. Correctness of answers to written and oral exam and correct execution of the mandatory homework will produce the final mark. The points gained with the oral exam will be added to those obtained through the written exam.
Exam: written test; compulsory oral exam; individual essay;
The examination consists of a written test and an oral verification. Homeworks correctness and completeness will be also considered in the final result. Homeworks must be completed during the course following a calendar specified at the beginning of the course. The written test (max 30 points, duration usually of 120 minutes) consists of two parts: • exercises and questions (normally 4) on the topics of the lectures • the solution to a problem using threads or concurrent programming in C language. The written exam will be closed books; in selected cases it will be distributed a cheat sheet. Using smartphones, smartwatches and any kind of computers and communication system is strictly forbidden. The oral verification will be on the topics of the lectures, on the homework and on the verification of the program developed during the written exam. Correctness of answers to written and oral exam and correct execution of the mandatory homework will produce the final mark. The points gained with the oral exam will be added to those obtained through the written exam.


© Politecnico di Torino
Corso Duca degli Abruzzi, 24 - 10129 Torino, ITALY
m@il