CMP 426/CMP 697
Operating Systems

Course Information
Course Section Lecture Hours Location
Contact Information
Instructor: Steven Fulakeza Email: steven.fulakeza(at)lehman.cuny.edu
Phone: NA Office Location: GI 232
Office Hours: Mon and Wed 1:40 pm to 3:40 pm
Instructor Availability: I reply to students' emails regularly but please note that I do not typically check email or Slack messages during late hours on weekdays, and I do not check these at all on the weekends in order to devote time to family, rest, and religious observances. Messages received during these times will receive attention once I am back online.


Announcements:


Last updated on: 03/21/2019


Vocabulary List and Study Guide for Exam 1(We will keep on updating this page until the week before the exam):

Chapter 1: An Overview of Operating Systems

operating system (kernel) operating system environment Bootstrap program(firmware) Computer-system organization
Shell (command interpreter) trap, or interrupts multiprogramming System call(monitor call)
Von Neumann architecture instruction register storage-device hierarchy Linux
Computer-system architecture Direct memory access(DMA) Single processor systems Multiprocessor systems
Graceful degradation Asymmetric multiprocessing Symmetric multiprocessing Cluster systems
Operating-system structure multiprogramming Real-time operating systems Process
Job scheduling CPU scheduling Timesharing (Multitasking) Open source operating systems
Virtual memory Kernel mode and user mode Virtual machine manager(VMM) Priviledged instructions
Process management Memory management Storage management caching
Protection and security Virtualization Emulation Cloud computing
Mobile computing

Chapter 2: Computer System and OS Structures

Child process system call interrupt/exception command line interface
Message passing Shared memory Interprocess communication Types of system calls
APIs Parameter passing Methods to OSes Operatind-system design and implementation Background services
Mechanism and policy Different ways of structring OSes System boot Grub
EPROM Ubuntu I/O operations File systems manipulation
Batch monolithic system Simple Structure Layered Approach
Microkernels Modules Hybrid Systems

Chapter 3: Process Concept

The process Process state and diagram of process state Process control block Threads
Process scheduling Schedulers Context Switch Operations of processes
Cascading termination Process termination Zombie processes Ophan processes
Interprocess communicatin Shared memory and message passing The producer-consumer problem Message-passing systems
Synchronization Blocking send and blocking receive Nonblocking send and nonblocking receive Pipes

Chapter 4: Threads

Threads Process vs Threads Multicore Programming Benefits of Threads
Thread Programming Challenges Types of Parallelism Data parallelism vs Task parallelism Multithreading Models
Many-To-One Model One-To-One Model Many-To-Many Model Thread Libraries
Implicit Threading Threading Issues Thread Cancellation

Chapter 5: Process and Threads Synchronization

Cooperating processes vs Independent Processes The producer-consumer cooperating processes The Critical-Section Problem Conditions to the critical section problem must satisfy
Peterson's Solution Synchronization Hardware Mutex Locks Semaphores
Deadlocks and Starvation Priority Inversion Classic Problems of Synchronization Monitors
Atomic Transactions Threading Issues Thread Cancellation