Nytro Posted February 22, 2015 Report Posted February 22, 2015 [h=1]SystemProgramming[/h] Welcome to Angrave's crowd-sourced System Programming wiki! This wiki is being built by students and faculty from UIUC. Rather than requiring a book this semester, we will build our own set of resources here. [h=2]Week 1[/h] C Programming, Part 1: IntroductionC Programming, Part 2: Text Input And OutputInformal Glossary of basic terms#Piazza: When And How to Ask For Help [h=2]Week 2[/h] C Programming, Part 3: Common GotchasForking, Part 1: IntroductionForking, Part 2: Fork, Exec, Wait Kill [h=2]Week 3[/h] Memory, Part 1: Heap Memory IntroductionMemory, Part 2: Implementing a Memory AllocatorMemory, Part 3: Smashing the Stack ExamplePthreads, Part 1: Introduction [h=2]Week 4[/h] Pthreads, Part 2: Usage in PracticeSynchronization, Part 1: Mutex LocksSynchronization, Part 2: Counting Semaphores [h=2]Week 5[/h] Synchronization, Part 3: Working with Mutexes And SemaphoresSynchronization, Part 4: The Critical Section ProblemSynchronization, Part 5: Condition Variables [h=2]Week 6[/h] Synchronization, Part 6: Implementing a barrierSynchronization, Part 7: The Reader Writer ProblemSynchronization, Part 8: Ring Buffer ExampleSynchronization, Part 9: The Reader Writer Problem (part 2) [h=2]Week 7[/h] Deadlock, Part 1: Resource Allocation GraphDeadlock, Part 2: Deadlock Conditions [h=2]Week 8[/h] Todo Analysis of Dining Philosophers (for now see the discussion section handout) ** Breaking Circular Wait. Using a global mutex to break hold-and-wait ** Beware of starvation if all philosophers hold their left chopstick and try+release their right chopstickVirtual Memory, Part 1: Introduction to Virtual MemoryPipes, Part 1: Introduction to pipesPipes, Part 2: Pipe programming secretsFiles, Part 1: Working with files [h=2]Week 9[/h] POSIX, Part 1: Error handlingNetworking, Part 1: IntroductionNetworking, Part 2: Using getaddrinfoNetworking, Part 3: Building a simple TCP ClientProgramming Tricks, Part 1 [h=2]Week 10[/h] Networking, Part 4: Building a simple TCP ServerNetworking, Part 5: Reusing portsScheduling, Part 1: Scheduling Processes [h=2]Week 11[/h] File System, Part 1: IntroductionFile System, Part 2: Files are inodes (everything else is just data...)File System, Part 3: Permissions [h=2]Week 12[/h] File System, Part 4: Working with directoriesFile System, Part 5: Virtual file systemsFile System, Part 6: Memory mapped files and Shared memoryFile System, Part 7: Scalable and Reliable FilesystemsNetworking, Part 6: Creating a UDP server [h=2]Week 13[/h] Signals, Part 2: Pending Signals and Signal MasksSignals, Part 3: Raising signalsSignals, Part 4: Sigaction [h=2]Week 14[/h] File System, Part 8: Disk blocks example [h=2]Other content[/h] C Programming, Part 4: Debugging#Example Markdown Legal and Licensing information: Unless otherwise specified, submitted content to the wiki must be original work (including text, java code, and media) and you provide this material under a Creative Commons License. If you are not the copyright holder, please give proper attribution and credit to existing content and ensure that you have license to include the materials.Sursa: https://github.com/angrave/SystemProgramming/wiki Quote