Operating Systems

A tantárgy neve magyarul / Name of the subject in Hungarian: Operációs rendszerek

Last updated: 2023. szeptember 14.

Budapest University of Technology and Economics
Faculty of Electrical Engineering and Informatics
Software Engineering, BSc
Course ID Semester Assessment Credit Tantárgyfélév
VIMIAB03 3 3/0/1/f 5  
3. Course coordinator and department Dr. Mészáros Tamás Csaba,
Web page of the course http://www.mit.bme.hu/eng/node/11975
4. Instructors Tamás  Mészáros PhD,  assistant professor, MIT
5. Required knowledge Computer architecture, Basic Programing, Programming Techniques
6. Pre-requisites
Kötelező:
(TárgyEredmény( "BMEVIHIAA03" , "aláírás" , _ ) = -1
VAGY
TárgyEredmény( "BMEVIHIAA02" , "aláírás" , _ ) = -1 )

ÉS
NEM ( TárgyTeljesítve("BMEVIMIAB00")
VAGY
TárgyEredmény("BMEVIMIAB00", "FELVETEL", AktualisFelev()) > 0 ) ÉS

(Kepzes("5N-A8") VAGY
Kepzes("5NAA8"))

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

7. Objectives, learning outcomes and obtained knowledge The subject introduces students to the functions, internal operation, and types of operating systems, and in addition, to the programming model of concurrent, distributed systems. It also demonstrates these concepts using examples, including the task of operating system selection. The lectures and the laboratories, which are inherent part of the subject, concentrates on the relationship of the hardware and the operating system, making possible for student to use operating systems in practical applications.
8. Synopsis 1st week: Introduction, the short history of operating systems. Generic introduction to operating systems, types of operating systems, requirements and properties, operating system architectures. Monolithic, modular and microkernel architecture. Relationship of hardware, user, and operating system. Concept of virtual machines.

2nd week: The history of Windows and UNIX/Linux, their architecture, and fundamental properties. Solving operating system malfunctions using tools provided by Windows or Linux.

3rn and 4th weeks: Multiprogramming. Theory and practice of CPU scheduling. Basic scheduling algorithms, their properties, complex scheduling algorithms. Multiprocessor scheduling, processor affinity and its consequences. Scheduling in Windows and Linux. Realization of tasks, hardware aspects, processes and threads.

5th and 6th weeks: Resource management, shared resources. Re-entrant functions. Mutual exclusion and critical section. The implementation of mutual exclusion. Handling shared resources, locking. Sleeplocks and spinlocks. Lock bit, semaphore (binary and counter type), mutex. Typical programming errors committed while implementing mutual exclusion, and techniques to avoid them. Alternatives such as lockless programming, transactional memory, etc. The concept of monitors (Hoare and Mesa semantics).

7th week: Inter-process communication (IPC). Methods of message passing, message addressing, buffering and implicit synchronization, acknowledgement, value or reference passing, semantic consistency. Mailbox, message queues, signals, remote procedure calls, System V IPC examples.

8th week: Deadlock and handling of deadlocks. Definition of deadlock in systems with resource contention, conditions , necessary conditions for the existence of deadlocks. Handling time on modern operating systems, hardware and software components of time handling. NTP and IEEE 1588 protocols, and their operating system specific aspects.

9th and 10th weeks: Storage hierarchy and memory handling. Hierarchy levels and their properties including caches and cache coherency. The fundamental idea of virtual memory and its operation, demand and anticipatory paging, hardware requirements, page replacement strategies and their properties. Global and local memory optimization, trashing and working set, balancing the memory subsystem. Handling memory in Windows.

11st week: Embedded systems and operating systems. Types of embedded operating systems and their relation to hardware and applications. The fundamental properties and operation of uCOS.

12nh week: Virtualization. Classification of virtualization techniques. Platform virtualization, CPU, memory and I/O virtualization and their HW support. Virtualization on the x86 HW architecture. Hosted and bare-metal virtualization. Introduction to virtualization solutions and their properties.

13rd and 14th week: Permanent storage handling, data access and allocation strategies. The concept of the block and the file, file systems. RAID, SAN, NAS technologies in modern operating systems. An introduction to UNIX VFS, its properties, operation, and application.

Laboratories:

  1. Linux laboratory
  2. Windows laboratory
  3. Virtualization technologies
9. Method of instruction Lectures and laboratories
10. Assessment One mid-term must be written with satisfactory results (40%).
2/3 of the laboratories must be accomplished with a "passed" result.
11. Recaps The mid-term can be repeated one time during the repetition period of the semester.
Laboratories can't be repeated.
12. Consultations Consultations are organized upon the explicit request of students taking into account personal and other resource availabilities.
13. References, textbooks and resources Silberschatz, Peterson: Operating System Concepts (7th or later edition)
14. Required learning hours and assignment
Lectures56
Preparation for lectures
14
Preparation for mid-term exam
 20
Personal curriculum processing 6
Preparation for exam40
Total 150
15. Syllabus prepared by
Name:
Status:
Department:
Tamás Kovácsházy, PhD Associate Professor
MIT
Tamás Mészáros
Master LecturerMIT
Zoltán Micskei, PhD
Assistant Professor
MIT