Copyright © Antonio D'Angelo, Univ. of Udine
The aim of the course is that to acquaint the student with the software machinary devoted to control the processing operations of a computer. Operating systems are presented in a layered fashion where the lower layer is the hardware whereas the upper layer is the graphic user interface. So, the kernel is the initial program loaded into the central memory to dispatch the basic activities of the hardware: CPU cycles to be assigned to every process and memory space to be allocated to allow program execution. Some basic resources, such as user stack and heap, are mentioned as fundamental components of any executing program. So, also memory management comes with process scheduling and a computer system must know where to take execution track of program, even on hard disk when no memory space is no more available (virtual memory).
The course is intended to understand the fundamental mechanisms which are the normal working background of the current computer systems. Thus, operating systems are presented as the necessary tool to make usable a computer, without explicitly considering the applicative programs which are provided to the end-user depending on his specific requirements. We shall starting with a short introduction to some hardware architectures on which the operating systems are built up. The discussion is about process creation and scheduling along with the memory managemt. The notion of process is largely investigated and compared with the concept of thread which is widely used in the modern applications such as browsers, mail clients, etc... The concept of dedlock is also introduced starting through the request-use-release model and the resource allocation graph. Different methods to handle deadlocks are presented and discussed. The course terminates with a short presentation of O.S. kernels.
The topics are primarily based on CPU and memory management starting from the hardware architecture before moving to process scheduling and resource allocation. Here only central memory allocation is considered because the disk allocation has been considered in the first part of the course. Some general properties of process syncronization are investigated dealing with the classical problem of critical regions, producer-consumer relationship and the more general framework of the client-server schema.
In the following you can find a schematic program of the course. A more precise scheduling of the lectures are available as detailed outlines of their contents.