| Course Information | ||||
|---|---|---|---|---|
| Course Section | Lecture Hours | Location | ||
| Contact Information | ||||
|---|---|---|---|---|
| Instructor: | Steven Fulakeza | Email: | steven.fulakeza(at)lehman.cuny.edu | |
| Phone: | NA | Office Location: | NA | |
| Office Hours: | By appointment Mondays through Thursdays 4pm to 6 pm using the following link: | |||
| Instructor Availability: | I respond to students' emails regularly, but please note that I do not typically check email or Slack messages during late hours on weekdays. Additionally, I do not monitor these platforms on weekends, as I reserve and dedicate this time to family, rest, and religious observances. Any messages received during these times will be addressed when 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 |