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 |
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 |
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 |