The course provides an introduction to the structure and organization on modern operating systems and to databases.
The target of this course is to make students acquire notions about the structure of operating systems and an introduction to databases. As for operating systems, the focus in on the functions of their modules, the algorithms and the software structures they use. With respect to databases, an introduction to relational databases is provided together with the languages for the creation, interrogation and manipulation of centralized databases. Another goal of the course is to provide a first introduction to the SQL language and to let students get acquired with the practical aspects of the language.
The course is divided in two parts: databases and operating systems.
Lectures will be complemented with hands-on sessions
Databases 1. Objective of a DBMS 2. Information Modeling: what to model and how 3. The Object Data Model and the Relational Data Model 4. SQL: A Relational Database Language for data definition and query 5. DBMS in action: SQLite
Operating systems 1. Introduction to the structure of operating systems. 2. Processes and Threads 3. Inter-process communications (signal, pipe, socket, shared memory, ...). Mutual exclusion and synchronization. Dekker's algorithm, Peterson's Algorithm. Hardware support to mutual exlcusion. The Producer-Consumer Problem. Sempahors. Monitors. Message Passing. The Readers-Writers Problem. 4. Deadlock and Starvation. Dealing with deadlocks: Detection, Prevention and Avoidance. Resourse Allocation Graphs. The Dining Philosophers' Problem. 5. Memory Management. Physical Memory vs Virtual Memory. Paging vs Segmentation. 6. Uniprocessor Scheduling. Lont-term. medium-term and short-term scheduling: FCFC, Round Robin, SPN, SRT, HRRN, Feedback. 7. I/O Management. DMA, Disk Scheduling. 8. The file system. Structure and attributes of files and directories. 9. Access Control. Models, policies and mechanisms for access control. Access control in in Linux (ACL in Unix, setuid)
Databases A. Albano, G. Ghelli, R. Orsini. Database essentials. http://fondamentidibasididati.it
Operating systems Operating Systems: Internals and Design Principles. 8th edition di W. Stallings, Pearson
SIMONE MINISI (President)
LUCA VERDERAME
ALESSANDRO ARMANDO (President Substitute)
https://corsi.unige.it/9273/p/studenti-orario
The exam is divided in two parts.
Databases: Project discussion or oral exam.
Operating systems: Written exam
Students with learning disorders ("disturbi specifici di apprendimento", DSA) will be allowed to use specific modalities and supports that will be determined on a case-by-case basis in agreement with the delegate of the Engineering courses in the Committee for the Inclusion of Students with Disabilities.