Politecnico di Torino
Politecnico di Torino
   
Login  
en
Politecnico di Torino
Anno Accademico 2013/14
01NYHOV
System and device programming
Corso di Laurea Magistrale in Ingegneria Informatica (Computer Engineering) - Torino
Docente Qualifica Settore Lez Es Lab Anni incarico
Laface Pietro ORARIO RICEVIMENTO PO ING-INF/05 70 6 24 8
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 10 B - Caratterizzanti Ingegneria informatica
ORA-01722: invalid number
Presentazione
This course is characterizing for the Master of Science in Computer Engineering, and it is held at the second semester of the first year.
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 (processors, memories, devices, files, etc.). System programming techniques are illustrated through the analysis and use of Unix and Windows system calls.
Risultati di apprendimento attesi
Knowledge of the operating systems architecture as a collection of resource managers
Knowledge of operating system kernel modules, and skill to implement new modules
Skill for using system calls for the creation, synchronization and termination of processes and threads
Knowledge of virtual memory mechanism
Knowledge of process scheduling with and without real-time constraints
Skill to understand and implement memory management and scheduling algorithms
Knowledge of device management
Skill to understand and implement device drivers
Knowledge of modern file system organizations and skill to manage file systems and file locking
Knowledge of the main mechanisms for resource and information protection
Knowledge of system programming APIs (system calls)
Skill to understand and implement programs based on system calls.
Prerequisiti / Conoscenze pregresse
Knowledge of a computer system architecture: in particular structure of the CPU and memory
Knowledge of the interrupt mechanism and basics of an Assembler language
Knowledge of the main data type structures and algorithms
Good programming skill in C language
Knowledge of the concurrent programming techniques
Programma
Operating Systems architecture (10 h)
modules for the management of the resources of a computer system
process and thread management,
synchronization,
exception handling
interprocess communication
Memory management (6 h)
segmentation
paging
virtual memory
Process scheduling (4 h)
Device management (6 h)
I/O terminal management
disk management
Win32 low-level system architecture: operating system families, device drivers
synchronous and asynchronous I/O
Linux device drivers
File system management (8 h)
file system organization, management and protection
file locking
Resource and information protection (2 h)
Win32 System Programming: (28 h)
File and directory manipulation
Processes and threads
Synchronization primitives
Structured Exception Handling
Memory management
Asynchronous I/O

Laboratory practice (36 h)
Concurrent programming with processes and threads
Linux kernel customization and install
PC booting
Kernel modules and daemons
Device drivers
Exception handling
Writing a system call
File system internals and system calls
Visual studio programming environment
Binary files and concurrent programming in Win32
Multiple threads/processes and synchronization primitives in Win32
Exception handling in Win32