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)