UNIVERSITY OF NEBRASKA AT OMAHA COURSE SYLLABUS DESCRIPTION Department and Course Number Course Title Course Coordinator Total Credits Date of Last Revision 1 0 CSCI 8530 Advanced Operating Systems Stanley Wileman 3 September 12 2009 Course Description 1 1 Overview of content and purpose of the course This course introduces state of the art techniques for operating system structuring and implementation special purpose operating systems and pragmatic aspects of operating system design implementation and use The course is logically divided into two parts In the first part the source code for a small real operating system is examined in detail and students implement substantial modifications Design and implementation issues are noted during this study The second part of the course focuses on real time programming and real time operating systems and in particular the real time extensions to the POSIX operating system standards Fundamentals of real time programming are introduced and students write several programs using a commercial real time system 1 2 For whom course is intended This course is intended for graduate students majoring in computer science as well as others with a strong interest in operating systems 1 3 Prerequisites of the course Courses The prerequisites for this course include a strong introductory course in operating systems like CSCI 4500 and the ability to write and modify large programs written in the C programming language 1 4 Prerequisites of the course Topics 1 4 1 Fundamental aspects of operating systems 1 4 2 High level programming language preferably C 1 4 3 Computer organization at the machine language level 1 4 4 Fundamental data structures in particular arrays lists and trees 1 5 Unusual circumstances of the course This course is not open to non degree students 2 0 Objectives 2 1 Upon completion of this course a student should be able to 2 1 1 identify many of the design decisions that must be made during the implementation of an operating system 2 1 2 understand the effects of various design decisions 2 1 3 identify the major functional components of an operating system 2 1 4 explain in detail the operation of each major functional component of a particular real operating system 2 1 5 describe the differences in design and implementation of significant operating system components among several commercial operating systems 2 1 6 be able to design and effect changes in any of the major components of an operating system for various reasons including the implementation of new system calls and algorithms 2 1 7 explain and modify the scheduling components of a real operating system to include basic scheduling actions and algorithms like blocking preempting and resuming the execution of a process priority based scheduling first come first served and round robin scheduling 2 1 8 explain the design and implementation of typical system calls and algorithms for process creation and management 2 1 9 explain the design and implementation of typical system calls and algorithms for management of real and virtual memory 2 1 10 explain the design and implementation of typical system calls and algorithms for physical and virtual timers 2 1 11 explain the design and implementation of typical system calls for various interprocess communication and synchronization facilities including at least semaphores signals messages and shared memory 2 1 12 provide an overview of the complete I O facilities in modern operating systems including device independent facilities device drivers file systems block and character devices and the synchronization of I O users with device activities 2 1 13 describe typical steps taken at system startup including bootstrap loader operation identification of system resources memory I O devices processors and initialization of I O devices memory resources and system data structures 2 1 14 explain the details of one or more file system implementations and describe the purpose of file systems 2 1 15 explain the details of device drivers with some components written in assembly language for common devices found in a typical computer including keyboard display priority interrupt controller 2 1 16 explain the steps required to build an operating system from its source code components 2 1 17 utilize an emulator like Bochs to demonstrate the execution of a real operating system and perform debugging 2 1 18 explain the purpose and benefits of the POSIX operating system standards 2 1 19 describe and in some cases write complete programs using POSIX system calls focusing on those in the POSIX real time extensions e g signals timers semaphores pipes FIFOs message queues shared memory input output 2 1 20 describe the basic categories of scheduling algorithms for real time systems 2 1 21 explain priority inversion and the basics of priority inheritance to deal with priority inversion 2 1 22 explain the difference between functional correctness and temporal correctness 2 1 23 explain and illustrate static and dynamic scheduling 2 1 24 explain a cyclic executive identifying positive and negative attributes and be able to construct a cyclic executive for a small set of tasks 2 1 25 explain and illustrate rate monotonic priority assignment 2 1 26 describe several schedulability tests include a utilization based test and a response time analysis test 2 1 27 explain why knowledge of the worst case execution time of realtime system components is required 2 1 28 describe several approaches to determining the worst case execution time of real time system components 2 1 29 explain the earliest deadline first priority assignment algorithm 2 1 30 explain the least laxity first priority assignment algorithm 2 1 31 explain the deadline monotonic priority assignment algorithm 2 1 32 explain techniques that might be used to schedule sporadic and aperiodic tasks 2 1 33 explain the difference between hard and soft real time tasks 2 1 34 explain the original priority ceiling protocol and the immediate priority ceiling protocol identifying the advantages and disadvantages of each and illustrate the scheduling of several tasks using them 3 0 Content and Organization 3 1 History and Concepts of a Small Operating System 3 1 1 How the system was developed history Contact hours 2 0 3 2 3 3 3 1 1 1 How the system relates to commercially available systems 3 1 1 2 What is not included in the system 3 1 1 3 Current development activity 3 1 2 The purposes of the detailed study of a small
View Full Document
Unlocking...