Course Syllabus

Department and Course Number: Computer Science 5340

Course Title: Advanced Operating Systems

Text: Tannenbaum, Modern Operating Systems, 2ed

Knowledge and abilities required before the students enter the course:

Students entering the course

  1. are able to apply the following in new situations: knowledge of
  2. basic data structures
  3. pointers
  4. memory allocation
  5. basic machine organization, control unit and function
  6. program design, implementation (modularization), testing, documentation
  7. problem solving techniques
  8. written and oral comm.
  9. unication skills w.r.t. expressing themselves precisely
  1. are able to apply:
  2. fetch/decode/execute cycle, program counter, “machine state”
  3. finite state machines
  4. use of registers and memory (stored program concept), addressing bytes and words in memory
  5. data, text, and stack segments
  6. interrupt handling
  7. knowledge of interrupt-driven vs. memory-mapped I/O
  8. functions of a compiler, assembler, linker, and loader and relocatable code, assembler directives
  1. have been introduced to:
  2. RAM, ROM, EPROM
  3. disk architecture/access time (seek time, rotational latency, transfer time)

Learning Outcomes:

On successful completion of this course, students will

  1. be able to apply the following in new situations:
  2. operating system objectives and functions
  3. process definition/description and control/management
  4. threads, symmetric multiprocessing, microkernels
  5. mutual exclusion and synchronization (software and hardware approaches)—semaphores, monitors, message passing, readers/writers problem
  6. concurrency: deadlock and starvation—principles of deadlock, deadlock prevention, avoidance, and detection
  7. dining philosophers problem
  8. memory management—paging, segmentation
  9. virtual memory—hardware and control structures
  10. scheduling algorithms
  1. be able to apply:
  2. file management (file organization, directories, and sharing), record blocking, secondary storage management
  3. multiprocessor and real-time scheduling
  4. I/O management and disk scheduling
  1. have been introduced to:
  2. Windows NT operating system
  3. UNIX operating system
  4. distributed processing, client/server, an clusters
  5. distributed process management

Course outline (approximates first 6 chapters of text)

  1. Introduction
  2. What is an operating system?
  3. History
  4. Operating systems for various devices
  5. Review of computer architecture
  6. Summary of OS concepts
  7. System Calls
  8. Operating System Structure
  9. Processes and Threads
  10. Processes
  11. Threads
  12. Interprocess communication
  13. Classical problems
  14. Scheduling
  15. Synchronization (mostly deadlock prevention)
  16. Resources
  17. Deadlock (another reason why ostriches do not dominate the planet)
  18. Detection of deadlock
  19. Stopping systems from entering deadlock (avoidance)
  20. Designing systems that can not deadlock (prevention)
  21. Memory Management
  22. Single address space (both mono- and multiprogramming)
  23. better nomenclature than book
  24. virtual memory
  25. demand v. voluntary systems
  26. paged v. segmented systems
  27. Managing paged systems
  28. exposes a eviction (replacement) problem
  29. program behavior (locality)
  30. algorithms
  31. implementation
  32. simulation
  33. Managing segmented systems
  34. exposes both a placement & eviction problem
  35. Input/Output
  36. characteristics of i/o devices
  37. how to structure drivers
  38. disks
  39. terminals, graphical devices
  40. networked terminals
  41. power mgmt
  42. File Systems
  43. files
  44. directories
  45. implementation
  46. special files (/dev, links, /proc)
  47. example filesystems
  48. Multimedia
  49. File encoding
  50. processor scheduling issues
  51. disk scheduling issues
  52. storage, cacheing, and transmission issues
  53. Multiprocessor Systems
  54. Security

Lab assignments:

Labs must represent individual work and will contribute heavily to your final grade. Our TAs are very effective at detecting plagiarism, which will be reported to the Dean of Students (see section on academic honesty below).

Students are encoruaged to discuss requirements of lab assignments, and are encouraged to share evaluation test sets. However, students should prepare their implementations without detailed knowledge of each others' implementations.

Under normal circumstances, labs must be submitted as tarballs (see "man tar") using web-ct. Should there be a problem with web-ct, labs may be submitted as enclosures to email sent to the TA.

Lab 1: managing unix processes: command line shell

Lab 2: schedulers

Lab3: synchronization & threads

Lab4: memory allocation/low level programming

Exams:

One midterm, one in-class final

Grading:

Substantially based on exam & lab scores. Mastery of material as demonstrated in class participation and class quizzes can benefit borderline grades (e.g. promoting a b+ to an a-).

Accomodations for Students with Disabilities and Exceptional Circumstances:

Individuals with disabilities have the right to equal access and opportunity. Please contact Dr. Freudenthal or the UTEP Office of Disabled Student Services (DSSO) if you have a special circumstance such that an accomodation would be helpful in permitting you to excel or demonstrate mastery of the material covered in this course.

Standards of Conduct and Academic Honesty:

Students are expected to conduct themselves in a professional and courteous manner, as prescribed by the Standards of Conduct: Graded work should be unmistakably your own. You may not transcribe or copy a solution taken from another person, book, or other source ( e.g., a web page). Copying other's work will not be tolerated. Professors are required to report academic dishonesty and any other violation of the Standards of Conduct to the Dean of Students.

Permitted collaboration: Students may discuss requirements, background information, test sets, and the output of their programs. However, implementations and documentation must be prepared individually.

If academic dishonesty is suspected: You will receive an incomplete for the lab, and your case will be referred to the Dean of Students for adjudication. The Dean of Students has published a website with complete details concerning the UTEP Academic Honesty policy at the following arcane URL: