User Tools

Site Tools


en:os_ueve

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

en:os_ueve [2018/05/15 17:06] (current)
sivanov created
Line 1: Line 1:
 +~~TRANS~~
  
 +===== Operating Systems =====
 +
 +The goal of this course is to discuss two of the many fundamental domains in which operating systems must operate: asynchronous input/​output (I/O), and parallelism and concurrency. ​ The course starts with a brief presentation of large classes of operating systems and their historic evolution. ​ Then asynchronous,​ interrupt-driven,​ and buffered I/O is discussed. ​ Finally, algorithms for maximising parallelism and deadlock handling and avoidance are shown and analysed.
 +
 +This course is taught in French to the students of [[https://​www.univ-evry.fr/​formation/​loffre-de-formation/​domaines-de-formation/​domaine/​sciences-technologies-sante/​programme/​licence-mention-informatique-1.html|L3 informatique]] (3rd year of bachelor education) at [[http://​www.univ-evry.fr/​fr/​index.html|Université d'​Évry]]. ​ Basic understanding of the computer architecture as well as some programming experience are required.
 +
 +This course is strongly based upon [[https://​www.ibisc.univ-evry.fr/​~delosme/​|Jean-Marc Delosme]]'​s notes about operating systems. ​ In the school year 2018/2019, the course will include more practical demonstrations and assignments.
 +
 +The following sections briefly describe the 4 main chapters of the course, as well as 2 executable code examples.
 +
 +The materials of this course are distributed under the [[https://​en.wikipedia.org/​wiki/​Creative_Commons_license|Creative Commons Attribution Alone licence]] {{:​ccby.png?​60}}.
 +
 +
 +==== 1. Introduction ====
 +
 +This chapter introduces the basic terminology used in the study, design, and development of operating systems: computer system, operating system, physical machine, abstract machine, etc.  Some of the essential functions of the operating systems are enumerated, then a generic classification and the historic development of operating systems are described.
 +
 +The slides for this chapter (in French) are available {{:​se-01.pdf|here}}.
 +
 +
 +==== 2. Execution and communication mechanisms ====
 +
 +This chapter describes the design of the communication in a concurrent and asynchronous open system. ​ The object of study of this part are the interruptions,​ hardware and software (including supervisor calls). Some classical applications of interruptions are shown, including pseudoparallel process scheduling and buffered input/​output.
 +
 +The slides for this chapter (in French) are available {{:​se-02.pdf|here}}.
 +
 +
 +==== 3. Processes. Models of representation ====
 +
 +This chapter defines the notion of a process and describes its role and its technical representation inside an operating system. ​ The chapter starts with a technical discussion and transitions into the abstract model of systems of concurrent tasks. ​ Sequential and parallel composition operations are then considered.
 +
 +The slides for this chapter (in French) are available {{:​se-03.pdf|here}}.
 +
 +This chapter comes with a runnable {{:​ton-paire.cpp|code example}} (comments in French) showing how to use ''​fork''​ to create new processes.
 +
 +
 +==== 4. Process interaction ====
 +
 +This chapter focuses on two fundamental issues of any concurrent system : maximal parallelism and deadlocks. ​ Maximal parallelism is considered in the framework of systems of tasks. ​ An algorithm for constructing a maximally parallel system equivalent to a given one is presented and analysed. ​ Then, a different formal framework is built for deadlock analysis and a deadlock detection algorithm is shown. ​ Finally, an approximate algorithm for deadlock avoidance is described.
 +
 +The slides for this chapter (in French) are available {{:​se-04.pdf|here}}.
 +
 +==== 5. Semaphores ====
 +
 +This part of the course aims to define and understand semaphores through interactive development of a program synchronising several threads. ​ {{:​semaphores.py|This}} is the runnable code which is to be written by the end of the interactive session (the inline comments are in French).
en/os_ueve.txt · Last modified: 2018/05/15 17:06 by sivanov