Copyright © Antonio D'Angelo, Univ. of Udine

Operating Systems Lectures


(Tentative) Class Schedule






15 Novembre

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



16 Novembre

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


22 Novembre

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



23 Novembre

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


29 Novembre

Overview; Multithreading Models; Thread Libraries; Threading Issues; Thread programming Examples: creation and syncronization

Threads I


30 Novembre

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

Threads II

Threads and Processes Examples

S.O. Test 1


13 Dicembre

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


14 Dicembre

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

Process Syncronization

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

S.O. Test 2


20 Dicembre

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

Synchronization and Deadlock


21 Dicembre

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

Deadlock and Memory Management

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

S.O. Test 3

10 Gennaio

Solution of the Sleeping Barber Problem; CPU Management and Scheduling on comparison; Fibonacci's Series solution

S.O. Test 2 Solution

11 Gennaio

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

S.O. Test 3 Solution

Money Transfer; Scheduling and Memory; Paging: address translation

S.O. Test 4


17 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


18 Gennaio

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

Virtual Memory