class: title # Threads and Scheduling Wrap-Up ## CSC 213 – October 30, 2026 --- # Agenda for Today 1. Department Events 1. Upcoming Work 1. Scheduling and Threads 1. Lab Working Time 1. Wrap Up --- # Department Events ## CS Table: _TBD_ .indent[ Tuesday, November 3rd at noon in JRC 224C ] ## Faculty Candidate Talks .indent[ Coming soon. Watch for emails about timing and topics. ] *To receive a token, send an email to let me know you attended no more than 48 hours after the event.* --- # Election Day is Next Week If you are a US citizen, you can vote in Iowa as long as you aren't voting in a different state. Bring a photo ID (e.g. driver's license) with you when you vote. If you aren't registered already, you can register on election day. You can get a copy of a proof-of-residence letter from the Grinnell College housing portal. ## When do I vote? Tuesday, November 3rd from 7am—8pm ## Where do I vote? Find your polling place at
## What are we voting for? You can find a sample ballot for your ward at
See full details on registration and elections at
. --- class: section, blue # Upcoming Work --- # Assignment: Concurrency Bugs **Due:** Monday, November 2nd by 11:59pm **Late Deadline:** Wednesday, November 4th by 10:00am ## Q&A _No questions so far._ --- # Lab: Password Cracker **Due:** Wednesday, November 4th by 11:59pm **Late Deadline:** Monday, November 9th by 11:59pm ## Q&A _No questions so far._ --- class: section, blue # Scheduling and Threads --- # Discussion: Multi-Level Feedback Queue **Questions for think, pair, share:** 1. What kind of workload causes problems for the simple scheduling algorithms we've already discussed, such as round-robin and first-in, first-out? 2. How does the MLFQ scheduler do a better job handling this difficult workload? 3. What do you think is the key insight that makes MLFQ a good scheduling algorithm? *Start by thinking of answers on your own. I will let you know when to start discussion.* --- # Discussion: Proportional Share Scheduling **Questions for think, pair, share:** 1. Instead of working with priorities like MLFQ, proportional share schedulers give out a specific fraction of available CPU time to different tasks. For example, task A may get 40% of CPU time while task B gets 60%. Can you think of a context where that would be a desirable way to think about scheduling instead of regular priority? 2. How do you think think proportions should be assigned? 3. We read about two approaches to proportional share scheduling: lottery and stride scheduling. How do these work, how are they different, and which do you prefer? *Start by thinking of answers on your own. I will let you know when to start discussion.* --- # Discussion: Multiprocessor Scheduling **Questions for think, pair, share:** 1. What new challenges does a multiprocessor scheduler have to deal with, compared to a single processor scheduler? 2. For one or two of the challenges you identified in question 1: how can we design a multiprocessor scheduler to effectively address the challenge? *Start by thinking of answers on your own. I will let you know when to start discussion.* --- class: section, green # Lab Working Time --- class: section, blue # Wrap Up --- # Reminders ## Upcoming Deadlines - **Concurrency Bugs Assignment:** due next Monday, or Wednesday morning with a token - **Password Cracker Lab:** due next Wednesday, or the following Monday with a token ## Need Help? Stop in during the mentor session on Sunday, from 3–5pm. Or drop in during my office hours next week. You can find all office hours and mentor session times on the course website. ## Reading - **Introduction** (CUDA Programming Guide, Section 1.1) - **Programming Model** (CUDA Programming Guide, Section 1.2) - **Intro to CUDA C++** (CUDA Programming Guide, Section 2.1)