SYSTEM PROGRAMMING

Alessia SAGGESE SYSTEM PROGRAMMING

0622700083
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA
EQF7
COMPUTER ENGINEERING
2020/2021

OBBLIGATORIO
YEAR OF COURSE 1
YEAR OF DIDACTIC SYSTEM 2017
SECONDO SEMESTRE
CFUHOURSACTIVITY
324LESSONS
324EXERCISES
324LAB
Objectives
DESIGN AND IMPLEMENTATION OF SYSTEM APPLICATIONS, WHICH INTERFACE AT LOW LEVEL WITH THE OPERATING SYSTEM, AND DRIVERS FOR PERIPHERALS.

KNOWLEDGE AND UNDERSTANDING
KNOWLEDGE OF THE ARCHITECTURE OF AN OPERATING SYSTEM AND SYSTEM CALLS. THREAD AND PROCESS MANAGEMENT. SYNCHRONIZATION AND INTER-PROCESS COMMUNICATION. VIRTUAL MEMORY MANAGEMENT. CREATION AND MANAGEMENT OF KERNEL MODULES. CHARACTER AND BLOCK DEVICE DRIVERS. ALLOCATION OF RESOURCES FOR PERIPHERALS (I / O PORTS, MEMORY, DMA CHANNELS, IRQ) WITH DIFFERENT TYPES OF BUSES. CASE STUDIES OF CHARACTER AND BLOCK DRIVERS.
ABILITY TO APPLY KNOWLEDGE AND UNDERSTANDING
ABILITY TO BUILD A SYSTEM APPLICATION AND A DEVICE DRIVER.
Prerequisites
IN ORDER TO ACHIEVE THE GOALS OF THE COURSE, THE KNOWLEDGE OF THE CONTENTS OF THE OPERATING SYSTEM COURSE AND A DEEP KNOWLEDGE OF THE C PROGRAMMING LANGUAGE IS REQUIRED.
Contents
OVERVIEW OF SYSTEM PROGRAMMING (2/0/0)
UNIX SYSTEM OVERVIEW, UNIX SYSTEM STANDARDIZATION AND IMPLEMENTATIONS, LINUX.

BASIC I/O OPERATIONS (4/2/0)
FILE I/O OVERVIEW, FILE DESCRIPTORS, FILE ACCESS PERMISSIONS, FILE SYSTEMS, FILE I/O BUFFERING, INODES, FILES AND DIRECTORY MANAGEMENT.

PROCESSES AND PROGRAMS (4/2/0)
SYSTEM CALLS FOR PROCESS MANAGEMENT, USER AND GROUPS, SCHEDULING POLICIES

MEMORY MANAGEMENT (4/2/0)
DYNAMIC MEMORY ALLOCATION, VIRTUAL MEMORY

THREADS (6/4/0)
MULTI THREADING APPLICATIONS, SYNCHRONISATION, PTHREADS

SIGNAL INTERFACE (4/2/0)

INTER PROCESS COMMUNICATION (IPC) (6/4/2)
PIPES, FIFO, SHARED MEMORY, SEMAPHORES, NETWORK IPC, SOCKETS
KERNEL MODULES DESIGN AND DEVELOPMENT, DRIVERS DESIGN AND DEVELOPMENT (10/8/6)
CHARACTER AND BLOCK DEVICE DRIVERS. ALLOCATION OF RESOURCES FOR PERIPHERALS (I / O PORTS, MEMORY, DMA CHANNELS, IRQ) WITH DIFFERENT TYPES OF BUSES. CASE STUDIES OF CHARACTER AND BLOCK DRIVERS.
Teaching Methods
THE COURSE CONTAINS THEORETICAL LECTURES, IN-CLASS EXERCITATIONS AND PRACTICAL LABORATORY EXERCITATIONS. DURING THE IN-CLASS EXERCITATIONS THE STUDENTS ARE DIVIDED IN TEAMS AND ARE ASSIGNED SOME PROJECT-WORKS TO BE DEVELOPED ALONG THE DURATION OF THE COURSE. THE PROJECTS INCLUDE ALL THE CONTENTS OF THE COURSE AND IS ESSENTIAL BOTH FOR THE ACQUISITION OF THE RELATIVE ABILITIES AND COMPETENCES, AND FOR DEVELOPING AND REINFORCING THE ABILITY TO WORK IN A TEAM.

IN ORDER TO PARTICIPATE TO THE FINAL ASSESSMENT AND TO GAIN THE CREDITS
CORRESPONDING TO THE COURSE, THE STUDENT MUST HAVE ATTENDED AT LEAST 70% OF THE HOURS OF ASSISTED TEACHING ACTIVITIES.
Verification of learning
THE EXAM AIMS AT EVALUATING, AS A WHOLE: THE KNOWLEDGE AND UNDERSTANDING OF THE CONCEPTS PRESENTED IN THE COURSE, THE ABILITY TO APPLY THAT KNOWLEDGE TO SOLVE PROGRAMMING PROBLEMS REQUIRING THE USE OF ARTIFICIAL VISION TECHNIQUES; INDEPENDENCE OF JUDGMENT, COMMUNICATION SKILLS AND THE ABILITY TO LEARN.

THE EXAM INCLUDES TWO STEPS: THE FIRST ONE CONSISTS IN AN ORAL EXAMINATIONS AND IN THE DISCUSSION OF MID TERM PROJECTS REALIZED DURING THE COURSES. THE SECOND STEP CONSISTS IS BASED ON THE REALIZATION OF A FINAL TERM PROJECT: THE STUDENTS, PARTITIONED INTO TEAMS, ARE REQUIRED TO REALIZE A SYSTEM, FINALIZED TO A COMPETITION AMONG THE TEAMS, DESIGNING AND METHODOLOGICAL CONTRIBUTIONS OF THE STUDENTS, TOGETHER WITH THE SCORE ACHIEVED DURING THE COMPETITION, ARE CONSIDERED FOR THE EVALUATION.
THE AIM IS TO ASSESS THE ACQUIRED KNOWLEDGE AND ABILITY TO UNDERSTANDING, THE ABILITY TO LEARN, THE ABILITY TO APPLY KNOWLEDGE, THE INDEPENDENCE OF JUDGMENT, THE ABILITY TO WORK IN A TEAM.

IN THE FINAL EVALUATION, EXPRESSED IN THIRTIETHS, THE EVALUATION OF THE INTERVIEW AND OF THE MID TERM PROJECTS WORK WILL ACCOUNT FOR 40% WHILE THE FINAL TERM PROJECT WILL ACCOUNT FOR 60%. THE CUM LAUDE MAY BE GIVEN TO STUDENTS WHO DEMONSTRATE THAT THEY CAN APPLY THE KNOWLEDGE AUTONOMOUSLY EVEN IN CONTEXTS OTHER THAN THOSE PROPOSED IN THE COURSE
Texts
- LINUX SYSTEM PROGRAMMING: TALKING DIRECTLY TO THE KERNEL AND C LIBRARY, ROBERT LOVE, 2013
- ADVANCED PROGRAMMING IN THE UNIX ENVIRONMENT, STEVENS, W. RICHARD, 2013
- THE LINUX PROGRAMMING INTERFACE: A LINUX AND UNIX SYSTEM PROGRAMMING, MICHAEL KERRISK, 2010
More Information
Course language is English.
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2022-05-23]