ECE 421: Operating Systems
December 18, 2012
Required for CE
Contact hours: Three 50 minute lectures per week OR two 75 minute lectures per week
Course Instructor or Coordinator: Stephen Murrell
Operating System Concepts, A. Silberschatz, Wiley, ISBN 0471694665, 2007
Other supplementary material:
a. Class web site, http://rabbit.eng.miami.edu/class/een521
b. Operating Systems internals and design principles, Stallings, Prentice-Hall, 2009.
2012-2013 University of Miami Academic Bulletin Description:
The design and implementation of operating systems. Virtual memory and memory management, resource allocation, device drivers, process creation, control, communications and scheduling, file systems, data protection, security, parallel processing and time-sharing. The class includes a significant operating system implementation project.
Prerequisites or co-requisites: ECE 318
Specific outcomes of instruction: The student will:
1. Have sufficient understanding of the theory and practical concerns to successfully contribute to the implementation and maintenance of any of the major operating system components
2. Gain sufficient expertise to construct functional operating system components
3. Understand of the tasks, responsibilities, and modi operandi of modern operating systems
1. Memory: paging, access protection, virtual memory, page faults and swapping.
2. File systems: Physical characteristics of media, error detection and correction.
3. Disc structures: i-nodes, partitions, free lists, files and directories, recovery
4. CPU internals: interrupts, mode, privileges, context switching
5. Processes: implementation, creation, manipulation, states, life-cycle
6. Input/output systems: device drivers, blocking/non-blocking, processing, scheduling
7. Concurrency, inter-process communication, and time-sharing
8. Resource allocation, locks, deadlocks: causes, avoidance, and cures, semaphores, and monitors
9. Construction of major operating system components.
Student outcomes strongly addressed by the course:
(c) an ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability (4):
Operating systems are case studies in the design of software systems, components, and processes, students undertake a significant implementation project.
(e) an ability to identify, formulate, and solve engineering problems (4):
Designing and implementing operating system components is a perfect example of identifying, specifying, and solving a computer engineering problem.
(g) an ability to communicate effectively (4):
Students have to explain and document their projects.
(i) a recognition of the need for, and an ability to engage in life-long learning (4):
Operating system technology at first sight seems to have stagnated; a thorough study of the subject reveals that real progress does occur, and not actively keeping up with developments means actively falling behind.
(j) a knowledge of contemporary issues (3):
The protection of data against theft, accidental loss, and illicit modification is a significant contemporary issue.
(k) an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice (4):
There is a significant programming project that requires a great deal of low-level programming and knowledge of machine level actions.