YoVDO

Electrical and Computer Engineering - Systems Programming and Concurrency

Offered By: University of Waterloo via YouTube

Tags

Computer Science Courses Electrical Engineering Courses Concurrency Courses Threads Courses Systems Programming Courses

Course Description

Overview

Dive into the world of systems programming and concurrency with this comprehensive lecture series. Explore essential topics including interrupts, system calls, file systems, processes, interprocess communication, sockets, network communication, threads, synchronization, deadlock, and advanced concurrency problems. Learn about various synchronization patterns, including the producer-consumer and readers-writers problems. Delve into deadlock avoidance, detection, and recovery techniques. Discover condition variables, monitors, atomic types, and the Byzantine Generals Problem. Examine concurrency in file systems and explore asynchronous I/O methods using select, poll, curl, AIO, and libevent. Access lecture notes and slides on GitHub for additional support throughout the course.

Syllabus

ECE 252: Introduction.
ECE 252 Gitlab Setup.
ECE 252 Lecture 1: Introduction.
ECE 252 Lecture 1: Our C Toolkit.
ECE 252 Lecture 2: Interrupts and System Calls.
ECE 252 Lecture 3: The File System.
ECE 252 Lecture 4: Processes.
ECE 252 Lecture 5: Processes in UNIX.
ECE 252 Lecture 6: Interprocess Communication (IPC).
ECE 252 Lecture 7: Sockets.
ECE 252 Lecture 8: Network Communication.
ECE 252 Lecture 9: Pipes and Shared Memory.
ECE 252 Lecture 10: Threads.
ECE 252 Lecture 11: Threads and Concurrency.
ECE 252 Lecture 12: Concurrency: Synchronization & Atomicity.
ECE 252 Lecture 13: Semaphores.
ECE 252 Lecture 14: Synchronization Patterns.
ECE 252 Lecture 15: The Producer-Consumer Problem.
ECE 252 Lecture 16: The Readers-Writers Problem.
ECE 252 Lecture 17: Deadlock.
ECE 252 Lecture 18: Deadlock Avoidance.
ECE 252 Lecture 19: Deadlock Detection and Recovery.
ECE 252 Lecture 20: Advanced Concurrency Problems.
ECE 252 Lecture 21: Condition Variables, Monitors, and Atomic Types.
ECE 252 Lecture 22: Of Asgard and Hel.
ECE 252 Lecture 23: The Byzantine Generals Problem.
ECE 252 Lecture 24: Concurrency in File Systems.
ECE 252 Lecture 25: More Concurrency in File Systems.
ECE 252 Lecture 26: Asynchronous I/O with select, poll.
ECE 252 Lecture 27: Asynchronous I/O with curl.
ECE 252 Lecture 28: Asynchronous I/O with AIO.
ECE 252 Lecture 29: Asynchronous I/O with libevent.
ECE 252 Lecture 30: Preparing for the Final.


Taught by

Jeff Zarnett

Tags

Related Courses

Intro to Operating Systems 3: Concurrency
Codio via Coursera
Concurrent Programming in Java
Rice University via Coursera
Comprehensive Java Course Certification Training
Edureka
Advanced Software Construction in Java
Massachusetts Institute of Technology via edX
Computer Hardware and Operating Systems
New York University (NYU) via edX