Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    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
    4. Instructors Tamás  Mészáros PhD,  assistant professor, MIT
    5. Required knowledge Computer architecture, Basic Programing, Programming Techniques
    6. Pre-requisites
    (TárgyEredmény( "BMEVIHIAA03" , "aláírás" , _ ) = -1
    TárgyEredmény( "BMEVIHIAA02" , "aláírás" , _ ) = -1 )

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

    (Kepzes("5N-A8") VAGY

    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.


    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
    Preparation for lectures
    Preparation for mid-term exam
    Personal curriculum processing 6
    Preparation for exam40
    Total 150
    15. Syllabus prepared by
    Tamás Kovácsházy, PhD Associate Professor
    Tamás Mészáros
    Master LecturerMIT
    Zoltán Micskei, PhD
    Assistant Professor