UNIVERSITA` DEGLI STUDI MEDITERRANEA DI REGGIO

UNIVERSITA’ DEGLI STUDI MEDITERRANEA DI REGGIO CALABRIA
Subject Code
Subject Name
Professor
16491
Operation Systems and Databases
Francesco Buccafurri and Domenico Ursino
Department:
Degree course:
Class:
Type of educational activity:
Disciplinary Area:
Scientific-Disciplinary Sector:
Department of Information, Infrastructure and
Sustainable Energy Engineering
Information Engineering
L8
Characterizing activity
Computer Science Engineering
ING-INF/05
Compulsory preliminary exams:
Course Year:
Semester:
Computer Programming
III
I
ECTS:
Hours:
12
96
Synthetic description:
This course aims at providing the guidelines for designing a database, at presenting the
main Data Definition Languages and Data Manipulation Languages for DBMSs, as well as
some technological aspects concerning databases. The aim of this course is also to give
the students a general understanding of how a computer works, and to describe functions
and structures of an operating system.
Acquisition of knowledge on:
Database Design, Relational Algebra, SQL, Transactions, Functional Dependencies,
Normal Forms. Topics of the course are also Processes and Threads, Concurrent
Programming and Deadlock, Memory Management and Virtual Memory, File system, I/O,
Secondary Memory, Oriented Operating Systems. Students are allowed to have
implementation experiences of concurrent programming using Java on practical problems.
Evaluation method:
The final examination consists of the project of a database, a test about databases and
operating systems and an oral examination.
Student’s independent work
Students implement a database project, play exercises about Relational Algebra and SQL
and deepen their knowledge about transactions, functional dependencies and normal
forms. Concerning Operating Systems it is required individual study aimed at acquiring the
concepts presented in the lectures and strengthen their knowledge, even through further
investigation. It is also required some home working related to implementation of
concurrent programming in Java
Detailed course program
1. Databases
 Introduction to databases
 Modeling an Information System
o The Entity/Relationship Model
o The Relational Model
o Introduction to the Unified Modeling Language
 Requisite Analysis and Design of an Information System
o Requisite specification and analysis for an Information System
o Design of the Data Component of an Information System
o Design of the Application Component of an Information System
 Database Languages
o Relational Algebra
o SQL
 Introduction to the Oracle DBMS
 Technological Issues
o Transactions
o Functional Dependencies and Normal Forms
2. Operating Systems
 Introduction
o Basic Concepts
o Types of Operating Systems
o Computer Architectures

 Structure of the Operating System
o Components
o Services o fan OS
o Interrupt and System Call

 Processes
o Representation of a process in a OS
o Process Scheduling
o State transition diagram
o Cooperation and Communication between processes

 Threads
o Multithreading Programming
o User-level and Kernel-level Threads
o Mixed solutions (Solaris)
o Scheduling of Threads

 Concurrent Programming and Deadlock
o Liveness, Fairness
o Critical Section
o Peterson Solution
o Semaphores
o Productor-Consumer problem
o Monitors
o
o
o
o
Implementation of Monitors
Resourse management
Deadlock
Deadlock Detecting and Deadlock Prevention

 Concurrent Programming in Java
o The class Thread
o Constructs synchronized, notify(), wait() and notifyAll()
o Examples of concurrent programs

 Memory Management
o Process swapping
o Contiguous memory al location
o Relocation, Base and limit registers
o Pagination
o Page Table and reverse page table
o Reference bit, dirty bit, block bit, cache bit, validity bit
o Segmentation
o MMU, TLB

 Virtual Memory
o Memory page replacement algorithms
o Local and global allocation
o Working set and trashing

 File system
o The abstraction file
o Directories
o Structure of a file system
o File allocation methods
o Free-space management

 I/O
o Program control I/O
o interrupt-driven I/O
o DMA-based I/O
o Memory mapped I/O

 Secondary memory
o Structure of disks
o Disk scheduling
o RAID (0,1,2,3,4,5)

 Oriented Operating Systems
o Real-time operating systems
o Multimedia operating systems
Resources and main references
 P. Atzeni, S. Ceri, S. Paraboschi, P. Fraternali, R. Torlone, “Basi di Dati – Modelli e
linguaggi di interrogazione”, Quarta Edizione, McGraw Hill, 2013
 M. Fowler, “UML Distilled”, III Edizione, Addison Wesley, 2004
 H. Garcia-Molina, J.D. Ullman, J. Widom, “Database Systems – The complete
book”, Second Edition, Pearson Education, 2008.
 Silberschatz, H.F. Korth, S. Sudarshan, “Database System Concepts”, VI Edizione,
McGraw Hill, 2010
 R. Ramakrishnan, J. Gehrke, “Sistemi di Basi di Dati”, McGraw Hill, 2004
 T. Connolly, C. Begg, “Database Systems”, V Edizione, Pearson Education, 2009
 Silberschatz, Galvin, Gagne. Sistemi operativi: Concetti ed esempi (8° ed.).
Pearson, ISBN: 9-788871-925691
 S. Tanenbaum. Modern Operating Systems, (3° ed.). Pearson Prentice Hall, ISBN10: 0136006639
 Paolo Ancilotti, Maurelio Boari, Anna Ciampolini, Giuseppe Lipari. Sistemi Operativi,
(2° ed.) McGraw-Hill ISBN: 9788838664328
 Deitel & Deitel: Java. Fondamenti di programmazione. 2a ediz, Apogeo, 2003 (per
la parte di Programmazione Concorrente in Java)
