Page Index - angrave/SystemProgramming GitHub Wiki
104 page(s) in this GitHub Wiki:
- Home
- Foreword
- Contents
- 0. Introduction
- 1. Learning C
- 2. Processes
- 3. Memory and Allocators
- 4. Intro to Pthreads
- 5. Synchronization
- 6. Deadlock
- 7. Inter-process Communication & Scheduling
- 8. Networking
- 9. File Systems
- 10. Signals
- Exam Practice and Review Questions
- #Example Markdown
- #Piazza: When And How to Ask For Help
- C Programming, Part 1: Introduction
- C Programming, Part 2: Text Input And Output
- C Programming, Part 3: Common Gotchas
- C Programming, Part 4: Strings and Structs
- C Programming, Part 5: Debugging
- C Programming, Review Questions
- C Programming: Review Questions
- Deadlock Review Questions
- Deadlock, Part 1: Resource Allocation Graph
- Deadlock, Part 2: Deadlock Conditions
- Deadlock, Part 3: Dining Philosophers
- Exam Topics
- File System, Part 1: Introduction
- File System, Part 2: Files are inodes
- File System, Part 3: Permissions
- File System, Part 4: Working with directories
- File System, Part 5: Virtual file systems
- File System, Part 6: Memory mapped files and Shared memory
- File System, Part 7: Scalable and Reliable Filesystems
- File System, Part 8: Removing preinstalled malware from an Android device
- File System, Part 9: Disk blocks example
- File Systems Review Questions
- Files, Part 1: Working with files
- Filesystem: Review Questions
- Forking, Part 1: Introduction
- Forking, Part 2: Fork, Exec, Wait
- HW0
- Informal Glossary
- Introduction to Container based Computing
- IPC Review Questions
- Kernel, Shells, Terminals Oh My!
- Memory Review Questions
- Memory, Part 1: Heap Memory Introduction
- Memory, Part 2: Implementing a Memory Allocator
- Memory, Part 3: Smashing the Stack Example
- Memory: Review Questions
- Multi threaded Programming: Review Questions
- Networking Review Questions
- Networking, Part 1: Introduction
- Networking, Part 2: Using getaddrinfo
- Networking, Part 3: Building a simple TCP Client
- Networking, Part 4: Building a simple TCP Server
- Networking, Part 5: Shutting down ports, reusing ports and other tricks
- Networking, Part 6: Building a web server
- Networking, Part 6: Creating a UDP server
- Networking, Part 7: Nonblocking I O, select(), and epoll
- Networking, Part 8: Protocols (TCP Handshaking, HTTP latency, Heart Bleed)
- Networking: Review Questions
- OSI Model
- Pipe: Review Questions
- Pipes, Part 1: Introduction to pipes
- Pipes, Part 2: Pipe programming secrets
- POSIX, Part 1: Error handling
- Process Control, Part 1: Wait macros, using signals
- Processes Review Questions
- Processes, Part 1: Introduction
- Programming Tricks, Part 1
- Pthread Review Questions
- Pthreads, Part 1: Introduction
- Pthreads, Part 2: Usage in Practice
- Pthreads, Part 3: Parallel Problems (Bonus)
- RPC, Part 1: Introduction to Remote Procedure Calls
- Sample program using pthread barriers
- Scheduling, Part 1: Scheduling Processes
- Scheduling, Part 2: Scheduling Processes: Algorithms
- Signals Review Questions
- Signals, Part 2: Pending Signals and Signal Masks
- Signals, Part 3: Raising signals
- Signals, Part 4: Sigaction
- Signals: Review Questions
- Synchronization Concepts: Review Questions
- Synchronization Review Questions
- Synchronization, Part 1: Mutex Locks
- Synchronization, Part 2: Counting Semaphores
- Synchronization, Part 3: Working with Mutexes And Semaphores
- Synchronization, Part 4: The Critical Section Problem
- Synchronization, Part 5: Condition Variables
- Synchronization, Part 6: Implementing a barrier
- Synchronization, Part 7: The Reader Writer Problem
- Synchronization, Part 8: Ring Buffer Example
- Synchronization, Part 9: Synchronization Across Processes
- System Programming Jokes
- System Programming Short Stories and Songs
- Systems Programming Bugs in Industry
- Test page
- Virtual Memory, Part 1: Introduction to Virtual Memory
- Virtualization, Part 1: Machine emulation