University of Cincinnati Logo

EECE-4029 Operating Systems
Electrical Engineering and Computer Science


John Franco

Registration Data

Credit Level: Undergraduate. Credit Hrs: 3.00.
Prerequisite: 20-EECE-3026 (Arch & Comp. Org.) or 20-CS-2011 (Intro Comp. Sys.)
Corequisite: 20-CS-2X28 (Data Structures)


Course Description

This courses covers the function, design, and integration of the parts of an operating system. The course begins with an introduction to all the important concepts associated with an operating system including process control, I/O, resource allocation, files, virtual memory, memory, deadlock, access control and mutual exclusion. The second phase of the course looks at all aspects of processes: state, hierachies, threads, memory management, process scheduling, synchronization, processor co-operation, and semaphores. The next phase considers some problems that come up in OS design such as deadlock, livelock, starvation and ways to prevent these problems or deal with them. The fourth phase treats memory management and storage allocation, including virtual memory. The fifth phase considers I/O including device controllers, device drivers, memory mapped I/O, DMA, and character I/O. The course ends with file organization, descriptors, and structures.

Students will manipulate the linux kernel using C code and observe the effects and consequences. Students will also do system level programming in the bash shell.


operating system, process control, I/O, resource allocation, files, virtual memory, memory management, paging, segmentation, deadlock, livelock, starvation, access control, mutual exclusion, threads, scheduling algorithms, multi-programming, semaphores, device driver, device controller, character I/O.


Paul Erdos
Ladies on Campus
Oscar Robinson