First cycle
degree courses
Second cycle
degree courses
Single cycle
degree courses
School of Engineering
COMPUTER ENGINEERING
Course unit
OPERATIVE SYSTEMS
IN06107631, A.A. 2018/19

Information concerning the students who enrolled in A.Y. 2018/19

Information on the course unit
Degree course Second cycle degree in
COMPUTER ENGINEERING
IN0521, Degree course structure A.Y. 2009/10, A.Y. 2018/19
N0
bring this page
with you
Number of ECTS credits allocated 9.0
Type of assessment Mark
Course unit English denomination OPERATIVE SYSTEMS
Department of reference Department of Information Engineering
E-Learning website https://elearning.dei.unipd.it/course/view.php?idnumber=2018-IN0521-000ZZ-2018-IN06107631-N0
Mandatory attendance No
Language of instruction Italian
Branch PADOVA
Single Course unit The Course unit can be attended under the option Single Course unit attendance
Optional Course unit The Course unit can be chosen as Optional Course unit

Lecturers
Teacher in charge MICHELE MORO ING-INF/05

ECTS: details
Type Scientific-Disciplinary Sector Credits allocated
Core courses ING-INF/05 Data Processing Systems 9.0

Course unit organization
Period Second semester
Year 1st Year
Teaching method frontal

Type of hours Credits Teaching
hours
Hours of
Individual study
Shifts
Lecture 9.0 72 153.0 No turn

Calendar
Start of activities 25/02/2019
End of activities 14/06/2019
Show course schedule 2019/20 Reg.2009 course timetable

Examination board
Board From To Members of the board
8 A.A. 2018/2019 01/10/2018 15/03/2020 MORO MICHELE (Presidente)
FERRARI CARLO (Membro Effettivo)
GHIDONI STEFANO (Supplente)
MENEGATTI EMANUELE (Supplente)
MIGLIARDI MAURO (Supplente)
NANNI LORIS (Supplente)
ZINGIRIAN NICOLA (Supplente)
7 A.A. 2017/2018 01/10/2017 15/03/2019 MORO MICHELE (Presidente)
NANNI LORIS (Membro Effettivo)
BADALONI SILVANA (Supplente)
CANAZZA TARGON SERGIO (Supplente)
MENEGATTI EMANUELE (Supplente)
MIGLIARDI MAURO (Supplente)
RODA' ANTONIO (Supplente)
SATTA GIORGIO (Supplente)
ZINGIRIAN NICOLA (Supplente)

Syllabus
Prerequisites: In order to attend profitably the course the knowledge of the following topics is requested:

Computer Architecture
- Architecture of Computers (CPU, ALU, registers, bus, memory, I/O devices)
- Systems of interrupt (one-level and multi-level, vectorized), interrupt service routine, context saving, reentrancy
- I/O Management (busy-waiting, interrupt-based, buffering with message queues, character queue), MMU, paged memory
- Cache Memory, direct mapping and fully associative cache, TLB, MMU
- Introduction to multiprocessor systems
- The architecture of a modern microprocessor: operating mode (user / supervisor, privileged instructions), special instructions, exceptions (vectorization, hardware and software interrupt, trap block, context saving, system calls)
- Realization of high-level languages ​​(static allocation / dynamic variables, stack frame for procedure calls with parameters)
- Introduction to scheduling

Data and Algorithms 1
- Basic data structures (lists, queues, stacks, vectors and linked lists, trees, heaps)
- Sorting and Searching on lists (ordered)
- Programming in high-level language (C or C + + or Java, visibility and vitality of the variables, basic constructs for flow control, procedure input and output parameters , programming abstract data types or classes, introduction to multithreading)
- Introduction to the UNIX OS
Target skills and knowledge: Upon completing the course, the student will be able to:

Understand the concept of process and the distinction between process and program
Describe the evolution of processes
Know the problems related to resource allocation and deadlock
Know the Petri Net semantics and evolution
Understand the request for process synchronization and related tools
Know the basic constructs of the ADA language regarding service calls and their options
Know the role of an operating system kernel and hardware resources it uses
Understand the objectives of a scheduler and some important Scheduling Algorithms
Understand the distinction between physical and logical organization of memory
Understand features and benefits of a virtual memory
Understand motivations and benefits in I/O management
Understand the organization of a file system
Know some basics of the UNIX architecture
Understand scheduling needs and related solutions in Real Time OS
Understand methods for authentication and security in OS
Examination methods: Frontal lectures with projected slides; classroom concurrent programming
exercises; distribution of a software library for concurrent
programming in Java finalized to individual activities.
Assessment criteria: Witten test on concurrent programming +
Oral test
Course unit contents: Theory and Evolution of operating systems
Role of an OS and its internal organization
Examples of OS in use
Concurrent programming paradigms and synchronization models
Working with real-time systems

---------------
In deeper detail:

Basic concepts. Functions of an operating system. Evolution of architectures.
Concurrency and parallelism. Models of concurrent systems. Processes, resources,
interference and cooperation. Constraints in processes evolution.
Precedence Graphs. Deadlock: definition, recognition and prevention.
Petri nets. Synchronization and communication between processes.
Semaphores, mailboxes and messages. Synchronization protocols.
Design of an operating system: organization, resource management,
data structures and algorithms. Main OS subsystems:
Kernel: protection, synchronization, processor scheduling,
memory management, input-output devices and drivers,
organization and management of secondary memory,
virtual memory. Raid systems.
High level functions of an operating system: file system, shell,
graphic user interface. Multiprocessor systems,
scheduling. Outlines: embedded, distributed and real time systems - OS virtualization. Authentication and security. Organisation and use of the Linux system.

Processes, threads and concurrent programming.
Paradigms for concurrent programming.
Basic models for synchronization: Mutex, Semaphores, Regions.
High-level constructs: Monitor, Rendez-vous.
Concurrent programming languages: Concurrent Pascal,
CSP, ADA. Concurrency in Java,
implementation of synchronization protocols.
Examples and exercises of concurrent programs.
Planned learning activities and teaching methods: Lectures with the use of video-projected slides.
Guided exercises in classroom.
(optional) Development of some homeworks.
Use of a support library in Java.
Additional material available on moodle platform.
Additional notes about suggested reading: For further educational materials see: https://elearning.dei.unipd.it/
Textbooks (and optional supplementary readings)
  • G.Clemente, F.Filira, M.Moro, Sistemi Operativi: Architettura e Programmazione concorrente, 3/e. Padova: Libreria Progetto, 2011. (o eventuale nuova edizione) Cerca nel catalogo

Innovative teaching methods: Teaching and learning strategies
  • Lecturing
  • Problem based learning
  • Case study
  • Interactive lecturing
  • Problem solving
  • Active quizzes for Concept Verification Tests and class discussions
  • Video shooting made by the teacher/the students
  • Use of online videos
  • Loading of files and pages (web pages, Moodle, ...)

Innovative teaching methods: Software or applications used
  • Moodle (files, quizzes, workshops, ...)
  • Kaltura (desktop video shooting, file loading on MyMedia Unipd)
  • Petri net simulator; scheduling simulation

Sustainable Development Goals (SDGs)
Good Health and Well-Being Quality Education Gender Equality Affordable and Clean Energy Decent Work and Economic Growth Industry, Innovation and Infrastructure Reduced Inequalities Sustainable Cities and Communities Responsible Consumption and Production Climate Action Peace, Justice and Strong Institutions Partnerships for the Goals