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
- are able to apply the following in new situations: knowledge of
- basic data structures
- pointers
- memory allocation
- basic machine organization, control unit and function
- program design, implementation (modularization), testing, documentation
- problem solving techniques
- written and oral comm.
- unication skills w.r.t. expressing themselves precisely
- are able to apply:
- fetch/decode/execute cycle, program counter, “machine state”
- finite state machines
- use of registers and memory (stored program concept), addressing bytes and words in memory
- data, text, and stack segments
- interrupt handling
- knowledge of interrupt-driven vs. memory-mapped I/O
- functions of a compiler, assembler, linker, and loader and relocatable code, assembler directives
- have been introduced to:
- RAM, ROM, EPROM
- disk architecture/access time (seek time, rotational latency, transfer time)
Learning Outcomes:
On successful completion of this course, students will
- be able to apply the following in new situations:
- operating system objectives and functions
- process definition/description and control/management
- threads, symmetric multiprocessing, microkernels
- mutual exclusion and synchronization (software and hardware approaches)—semaphores, monitors, message passing, readers/writers problem
- concurrency: deadlock and starvation—principles of deadlock, deadlock prevention, avoidance, and detection
- dining philosophers problem
- memory management—paging, segmentation
- virtual memory—hardware and control structures
- scheduling algorithms
- be able to apply:
- file management (file organization, directories, and sharing), record blocking, secondary storage management
- multiprocessor and real-time scheduling
- I/O management and disk scheduling
- have been introduced to:
- Windows NT operating system
- UNIX operating system
- distributed processing, client/server, an clusters
- distributed process management
Course outline (approximates first 6 chapters of text)
- Introduction
- What is an operating system?
- History
- Operating systems for various devices
- Review of computer architecture
- Summary of OS concepts
- System Calls
- Operating System Structure
- Processes and Threads
- Processes
- Threads
- Interprocess communication
- Classical problems
- Scheduling
- Synchronization (mostly deadlock prevention)
- Resources
- Deadlock (another reason why ostriches do not dominate the planet)
- Detection of deadlock
- Stopping systems from entering deadlock (avoidance)
- Designing systems that can not deadlock (prevention)
- Memory Management
- Single address space (both mono- and multiprogramming)
- better nomenclature than book
- virtual memory
- demand v. voluntary systems
- paged v. segmented systems
- Managing paged systems
- exposes a eviction (replacement) problem
- program behavior (locality)
- algorithms
- implementation
- simulation
- Managing segmented systems
- exposes both a placement & eviction problem
- Input/Output
- characteristics of i/o devices
- how to structure drivers
- disks
- terminals, graphical devices
- networked terminals
- power mgmt
- File Systems
- files
- directories
- implementation
- special files (/dev, links, /proc)
- example filesystems
- Multimedia
- File encoding
- processor scheduling issues
- disk scheduling issues
- storage, cacheing, and transmission issues
- Multiprocessor Systems
- 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: