Copyright © Antonio D'Angelo, Univ. of Udine

Operating Systems Lectures


(Tentative) Class Schedule






6 Ottobre

Hardware & Firmware Organization; Process Unit; RISC Machine: PowerPC, SPARC, MIPS, Alpha, Cell; CISC Machine: Pentium3, AMD, Athlon; Process Architecture: Motorola, Intel, Silicon Graphics, IBM XT; Control models; Event-driven Architecture; ARM Architecture: processors, ARMv7, Cortex A8 & A9, data size & instruction sets, processor modes, register sets & program status register



13 Ottobre

Operating System Services; User Operating System Interface; System Calls; Types of System Calls; System Programs; Operating System Structure; Virtual Machines; System Boot

Operating System Structure


20 Ottobre

Process Concept; Process Scheduling; Operations on Processes; Scheduling; Examples of process Creation: newp, pshare, mshare



27 Ottobre

Information Sharing and Modularity; Cooperating Process; Models of Communication; Direct and Indirect Communication; Examples of IPC Systems using shared memory and explicit message passing; Communication in Client-Server Systems: Sockets, Remote Procedure Calls, Remote Method Invocation

Interprocess Communication


3 Novembre

Overview; Multithreading Models; Thread Libraries; Threading Issues; Thread programming Examples: creation and syncronization, creaction by cloning

Threads I


24 Novembre

Overview; Multicore Programming; Thread Libraries: example; Operating System Examples: Windows XP, Linux; thread creation example

Threads II

Threads and Processes Examples: Hints to implement the sieve of Eratosthenes using threads;

S.O. Test 1


27 Novembre

Basic Concepts; Scheduling Criteria; Scheduling Algorithms: First come first served, Shorted job first version 1 and version 2; Thread Scheduling; Multiple-Processor Scheduling; Operating Systems Examples: Solaris, Windows XP, Linux

CPU Scheduling


1 Dicembre

Background; the Critical-Section Problem; Peterson’s Solution; Synchronization Hardware; Semaphores; Classic Problems of Synchronization: producer-consumer problem; Monitors; Dining Philosopher Problem

Process Syncronization

Sleeping Barber Problem; CPU Management and Scheduling; Fibonacci's Series

S.O. Test 2


15 Dicembre

Synchronization Examples: Solaris, Windows XP, Linux, Pthreads; Atomic Transactions; The Deadlock Problem; System Model; Deadlock Characterization; Example of deadlock; Methods for Handling Deadlocks; Deadlock Prevention; Deadlock Avoidance

Synchronization and Deadlock

Cigarette Smokers Problem; Scheduling and Synchronization; Comparison of Scheduling Algorithms

S.O. Test 3

Solution of the Cigarette Smokers Problem; Scheduling and Synchronization: solved questions; Algorithms to be compared

S.O. Test 3 Solution


22 Dicembre

Deadlock Detection; Banker's Algorithm; Recovery from Deadlock; Main Memory Background; Swapping; Contiguous Memory Allocation; Paging

Deadlock and Memory Management

Money Transfer; Scheduling and Memory; Paging: address translation

S.O. Test 4

Money Transfer; Scheduling and Memory; Paging: address translation

S.O. Test 4 Solution


12 Gennaio

Paging revising; Structure of the Page Table; Segmentation; Example: The Intel Pentium; Virtual Memory Background; Demand Paging; Copy-on-Write; Page Replacement

Main and Virtual Memory


19 Gennaio

Page Replacement revised; Allocation of Frames; Thrashing; Memory-Mapped Files; Allocating Kernel Memory; Other Considerations; Operating-System Examples

Virtual Memory