uwloo

ECE 350Real-Time Operating Systems

Units
0.50
Faculty
Engineering
Subject
Electrical and Computer Engineering

When it runs

  1. F24
  2. W25
  3. S25
  4. F25
  5. W26
  6. S26
  7. F26
  8. W27
  9. S27

Ran in 4 of the last 7 terms. Winter 2027: scheduled, 2 lecture sections. Spring 2027: schedule not out yet.

Memory and virtual memory and caching; I/O devices, drivers, and permanent storage management; process scheduling; queue management in the kernel; real-time kernel development. Aspects of multi-core operating systems.

Prerequisites

  • Complete all of the following
    • Must have completed the following:
      • ECE252 - Systems Programming and Concurrency (0.50)
    • Students must be in level 3A or higher
    • Complete 1 of the following

Antirequisites

  • Not completed nor concurrently enrolled in any of the following:
    • CS350 - Operating Systems (0.50)
    • SE350 - Operating Systems (0.50)

Leads to

Winter 2027 sections

Enrolment from UW Open Data, which can trail Quest by up to two days. Instructors and rooms: Schedule of Classes.
SectionClassEnrolledMeets
LEC 0014887119 / 130TTh 08:30–09:50
Jan 18 11:30–12:20
Feb 1 11:30–12:20
Feb 22 11:30–12:20
Mar 8 11:30–12:20
Mar 22 11:30–12:20
Apr 5 11:30–12:20
LEC 70119722 / 9999Online or by arrangement
LAB 201488936 / 35Jan 25 13:30–16:20
Feb 8 13:30–16:20
Mar 8 13:30–16:20
Mar 22 13:30–16:20
Apr 5 13:30–16:20
LAB 202489033 / 35Jan 26 13:30–16:20
Feb 9 13:30–16:20
Mar 9 13:30–16:20
Mar 23 13:30–16:20
Apr 6 13:30–16:20
LAB 203489135 / 35Jan 27 13:30–16:20
Feb 10 13:30–16:20
Mar 10 13:30–16:20
Mar 24 13:30–16:20
Apr 7 13:30–16:20
LAB 204518315 / 25Jan 28 13:30–16:20
Feb 11 13:30–16:20
Mar 11 13:30–16:20
Mar 25 13:30–16:20
Apr 8 13:30–16:20
TUT 1014888119 / 130M 09:00–09:50

Resources

Around the web

Found by uwloo’s link finder, which checks that each page names ECE 350.

Suggest a resource.

Reviewed on UW Flow

84% liked it36% easy87% useful

From 64 ratings and 21 comments on UW Flow. The most helpful comments, quoted as written, without names. Read them all on UW Flow.

  • The first half of the course is like an extension of ECE252 and the second half is like an extension of ECE222. Surprisingly, this course doesn't focus too heavily on RTOS. Our exams were way too easy compared to Zernett's

    Aug 2026 · liked itOn UW FlowRemove this

  • I actually quite liked this course, it was quite informative in telling what going on under the hood in an operating system. The labs are continuous and by the end you have a full operating system. Very cool. Don't leave this course to the last minute, the content is dense but very interesting

    Aug 2026 · liked itOn UW FlowRemove this

  • took this as a math student for an elective, went in with a decent amount of C/systems programming background but no embedded, and it worked out fine, wouldn't say you need much beyond comfort with C and being willing to read datasheets/register docs as you go. you build a preemptive RTOS kernel from scratch on bare metal ARM doing your own context switching and scheduling, workload is pretty light for an ECE course honestly and the labs are genuinely the best part, actually makes you think about what's going on in the hardware instead of just trusting some API to do its thing. reading https://lwn.net/Kernel/LDD3/ on the side helped a lot conceptually too. midterm is pretty easy with an…

    Jul 2026 · liked itOn UW FlowRemove this

  • The labs were great, very useful. The lectures however, are often dense by nature and don't feel logical. Obviously there is a reason for why the systems you learn about work the way they work, but the course can't possibly cover the derivations or prove certain behaviours given the breadth of the outline. This makes the course feel weirdly like a bio course in the way you study it. Make the font of you cheat sheet as small as possible and colour code everything. Prof. Zahedi said we could bring a magnifying glass if we wanted to. Given the memorization nature of the course, the cheat sheet was so much more useful than in other courses.

    Jul 2026 · didn’t like itOn UW FlowRemove this

  • A mix of computer hardware and philosophy in a way. When Zarnett teaches it, many exam questions can be open-ended, in which the most correct answer aligns most with his way of thinking about it. That requires some memorization of the lecture slides, so I recommend going through them early rather than last minute. And vibe coding the labs won't help. They'll be grilled about on the final exam so you might as well spend the time anyways.

    May 2026 · liked itOn UW FlowRemove this

Discussed on r/uwaterloo

51 posts and comments in 38 threads mention ECE 350, July 2016 to December 2024. Quoted word for word, newest first; each reply sits under the post and the comment that started its branch. Search r/uwaterloo for newer posts.

Fall 2024

ECE 350 Horror Stories 2 points, 3 comments

u/Tight_Document_1513: “How hard and tedious are ECE350 labs compared to ECE252/298 labs? I'm quite interested in knowing how fucked the labs are. If any upper year can provide their experience with the course, that would be great. :)”

u/ehhthing: “ECE 350 Labs are great, brush up on ECE 222 ARMv7. Note that the board you'll be using is the same as ECE 198. For how much the labs are worth, they're not actually that much work although lab 2 was somewhat frustrating to debug. …”

View on RedditRemove this

Spring 2024

ECE 252 Override? 3 points, 2 comments

“Is it possible to override into ECE 252 (Systems Programming and Concurrency) for those who are outside of Engineering? …”

u/ehhthing: “252 labs are cool but the course content is sometimes painful. Would recommend taking the CS alternative and then taking ECE 350 instead.”

View on RedditRemove this

My experience with CS 444, 452, 488 34 points, 4 comments

u/proturtle46: “The bugs are similar to what I found in ece 350 lol Compilers might not be able to optimize your code the same way if you have prints using a var as you’ve probably learned in the compilers class lol so printf might appear to change the behaviour of your code A big issue I found …”

View on RedditRemove this

Winter 2024

Best Eng Program to get into Machine Learning? 19 points, 32 comments

“I'm applying to Waterloo Engineering this year. What is the best engineering programs besides software eng to get into machine learning?”

u/kawaiiggy: “theres so much to ML. the mathematical architecture behind models? cs/math/co/software if u take a lot of math courses the systems and infrastructure to run ML? …”

u/kawaiiggy: “… courses like ECE254, ECE350, ECE351 i would imagine would be good to know”

View on RedditRemove this

Fall 2023

Spring 2023

What are your core courses? 8 points, 11 comments

“Basically title - What are several courses that you think really define your program? Any thoughts on them, and how they went? Looking forward to the discussion (ノ◕ヮ◕)ノ\:・゚✧”

u/Xierumeng: “Computer engineering: ECE 224 ECE 320 ECE 327 ECE 350 ECE 423 ECE 455 Honourable mention: ECE 105 ECE 106 Douglas Harder Peter Levine Paul Ward The ECE advisors”

View on RedditRemove this

Winter 2023

Biggest disaster of a course you have ever been in and why? 82 points, 30 comments

“In honor of stat231, share the biggest clusterfuck of a course you have ever taken and why. Mine isn’t super bad but ENVS278 this semester lost 1/3 of the class between first and second midterm, …”

[deleted]: “ECE 350 - heaviest lab component I've ever had. This course was like a full time job. More of a late hazing ritual than a clusterfuck tbh. ECE 298 online - since this was online, we had to use some shitty simulation software that didn't work half the time. …”

View on RedditRemove this

Download MangoTango on VSCode 109 points, 11 comments

“Have you ever wanted to sabotage a curriculum and feel like a revolutionary? This is your chance. &x200B; There was a question in CS136L that which one of the following is not a VSCode extension. …”

u/ghfsigiwaa: “Me at 3am working on ece350 https://i.redd.it/nm961znck8ha1.gif”

View on RedditRemove this

Fall 2022

how hard is Comp Eng 2B? 21 points, 16 comments

“How hard is 2B compared to 2A for comp eng? Which courses tend to be the hardest or most time consuming? Have the courses changed at all after COVID?”

u/superuwu1000: “get used to the lab stress in 2B, because 3A is 10 times worse (ECE 350). Then, as long as you don't take ECE 320 in 3B, you're chill for the rest of your program, unless you take a heavy lab course electively. …”

View on RedditRemove this

Spring 2022

CE vs math 20 points, 46 comments

“Iam planning to pursue SWE. I dont like physics, hardware. Iam only interested in software things. Sadly i got rejected from cs and se so i need to choose between math and ce. Iam a math lover”

u/TheRealArjun: “… Don't count on being able to do this but what I did was take interesting CE courses as electives for fun just by asking the course instructor (ECE 252, 350, 351, 454, 459), so maybe thats an option if you take the math offer. …”

View on RedditRemove this

Check it elsewhere for Fall 2026

Calendar versions

Undergraduate Calendar