Computer Operating Systems
CET3505 — COMPUTER OPERATING SYSTEMS
← Course Modules
Course Description
CET 3505 – Computer Operating Systems (3 credit hours) is a junior-level course in the Engineering Technologies / Computer Engineering Technology taxonomy of Florida's Statewide Course Numbering System (SCNS). The course is a study of the fundamental concepts, structures, and organization of operating systems. It includes the study of processes, threads, multi-tasking, concurrency and deadlocks, memory management, and file management. Students develop both theoretical understanding and practical skills applicable to modern operating environments including Linux and Windows.
Learning Outcomes
Required Outcomes
Upon successful completion of this course, all students will be able to:
- Describe the fundamental concepts and historical development of operating systems, including batch, multi-programmed, and interactive systems.
- Explain process and thread management, including process states, scheduling algorithms, and context switching.
- Analyze concurrency problems such as race conditions, critical sections, mutual exclusion, and deadlocks, and apply solutions including semaphores and monitors.
- Describe and compare memory management strategies, including contiguous allocation, paging, segmentation, and virtual memory.
- Explain file system organization and management, including directory structures, file allocation methods, and disk scheduling.
- Identify and explain I/O system architecture and device management techniques used by modern operating systems.
- Compare the architectural structures of operating systems, including monolithic, microkernel, layered, and modular designs.
Optional Outcomes
Depending on institutional emphasis, students may also be able to:
- Use the Linux command-line interface to perform system administration tasks including user management, file permissions, and process control.
- Write basic shell scripts to automate operating system tasks.
- Configure and manage virtualization environments, including virtual machines and containers.
- Explain fundamental OS security mechanisms, including access control, authentication, and protection rings.
- Describe distributed and cloud operating system concepts, including resource management across networked systems.
- Apply OS concepts using a programming language (C or C++) to implement process management or synchronization primitives.
Major Topics
Required Topics
The following topics are covered in all standard offerings of CET 3505 at Florida colleges:
- Introduction to Operating Systems – History, evolution, types (batch, time-sharing, real-time, distributed), and OS roles
- OS Structures – Monolithic kernels, microkernels, layered systems, virtual machines, and system calls
- Process Management – Process states, Process Control Block (PCB), process creation and termination, context switching
- Threads and Multi-tasking – User vs. kernel threads, multi-threading models, thread libraries (POSIX, Windows)
- CPU Scheduling – First-Come First-Served (FCFS), Shortest Job Next (SJN), Round Robin, Priority scheduling, multilevel queues
- Concurrency and Synchronization – Critical section problem, mutex locks, semaphores, monitors, classic synchronization problems (Producer-Consumer, Readers-Writers, Dining Philosophers)
- Deadlocks – Necessary conditions, resource-allocation graphs, prevention, avoidance (Banker's Algorithm), detection, and recovery
- Memory Management – Contiguous allocation, fragmentation, paging, segmentation, page tables, TLBs
- Virtual Memory – Demand paging, page replacement algorithms (FIFO, LRU, Optimal), working set model, thrashing
- File System Management – File concepts, directory structures, file allocation methods (contiguous, linked, indexed), free-space management
- I/O Systems and Device Management – I/O hardware, polling vs. interrupts, DMA, disk scheduling algorithms (FCFS, SSTF, SCAN)
Optional Topics
The following topics may be covered depending on the instructor and institutional focus:
- Linux System Administration – Command-line interface, user and group management, file permissions (chmod, chown), process monitoring (ps, top, kill)
- Shell Scripting – Bash scripting fundamentals, variables, conditionals, loops, and automation
- Virtualization and Containers – Hypervisors (Type 1 and Type 2), virtual machines, Docker/container basics
- OS Security – Access control lists, protection domains, authentication mechanisms, encryption basics
- Distributed and Cloud OS Concepts – Client-server models, remote procedure calls, cloud resource management
- Real-Time Operating Systems (RTOS) – Hard vs. soft real-time systems, scheduling in embedded/RTOS environments
- Windows OS Internals – Windows process and memory architecture, Registry, and system administration tools
Resources & Tools
- Textbook: Operating System Concepts ("Dinosaur Book") by Silberschatz, Galvin, and Gagne – the most widely adopted text at Florida colleges for this course. Operating Systems: Internals and Design Principles by William Stallings is also commonly used.
- Operating Systems: Linux (Ubuntu, CentOS, or Fedora distributions) and Windows for hands-on laboratory exercises
- Virtualization Tools: Oracle VirtualBox or VMware Workstation for sandboxed OS environments
- Programming Environment: GCC/G++ compiler, GDB debugger, and POSIX thread libraries for programming assignments
- Simulation Tools: OS process/memory simulators for scheduling and memory management visualization
- Learning Platforms: Canvas or Blackboard LMS (standard across Florida College System institutions)
- Reference: IEEE/ACM Computer Engineering Body of Knowledge (CBOK) – Operating Systems knowledge area
Career Pathways
CET 3505 provides foundational knowledge aligned with several high-demand technology career paths in Florida and nationally:
- Systems Administrator – Manages and maintains server operating systems, user accounts, and system resources
- Linux/Unix Administrator – Specializes in Linux-based infrastructure for enterprise, cloud, and government environments
- DevOps / Site Reliability Engineer – Applies OS-level knowledge to automate deployments and manage containerized workloads
- Embedded Systems / Firmware Engineer – Develops software interfacing with real-time and embedded operating systems
- Cybersecurity Analyst – Leverages OS internals knowledge for threat analysis, vulnerability assessment, and secure system configuration
- Cloud Infrastructure Engineer – Manages virtual machines and OS environments in AWS, Azure, or Google Cloud platforms
- Computer Engineering Technologist – Applies OS knowledge within hardware-software integration roles in manufacturing, defense, and telecommunications
Special Information
Certification Preparation
The content of CET 3505 provides meaningful preparation for industry-recognized certifications that are valued by Florida and national employers:
- CompTIA Linux+ (XK0-005) – CET 3505 closely aligns with Linux+ exam domains, including Linux installation, process and user management, file systems, security, and scripting. CompTIA Linux+ is the primary vendor-neutral credential validating Linux administrator competencies.
- CompTIA A+ and Server+ – OS concepts covered in this course support A+ Core 2 (OS domain) and Server+ exam objectives.
- Microsoft Certified: Fundamentals / Associate – Windows OS internals topics support entry-level Microsoft certification pathways.
- Red Hat Certified System Administrator (RHCSA) – Advanced students pursuing Linux-focused roles may use this course as foundational preparation for the RHCSA credential.
Students are encouraged to pursue the CompTIA Linux+ certification as a direct complement to this course. CompTIA Linux+ covers the skills needed to install and support the Linux OS, including user administration, file permissions, software configurations, and fundamental Linux system management.