Class Lectures and Reading Assignments
CS 51590
Parallel Computing
Spring, 2025

This page documents what we do in class. It contains code that we will discuss in class, reading assignments, simple homework exercises that you can work on for practice and exam preparation (not for credit), links to other sources of information, etc.

Today we will finish these Java examples of race conditions, critical sections, and mutual exclusion.

Next week we will look at examples of the producer/consumer synchronization problem.

When you are connected to the campus network, download Chapter 2 from the book Java Threads and the Concurrency Utilities (you need to be on campus to access this book). The chapter is about race conditions and critical sections.

Download Chapter 3 from the book Java Threads and the Concurrency Utilities. The chapter is about the wait() and notify() methods and their use in the producer-consumer problem.

Today we will continue with these Java examples of race conditions, critical sections, and mutual exclusion.

Here is a brief explanation of synchronization for Java threads.

Read Section 4.4.1 from the following chapter about synchronization, bounded buffers, and the producer/consumer problem, from this operating systems textbook.

Because of the weather, class met using the Zoom application.

Here is a link to today's video lecture.

Today we will look at these code examples that demonstrate race conditions and synchronization.

Read about race conditions and synchronization from the following two Java references.

Read the first two sections (pages 93 - 98) from the following chapter about thread synchronization from this operating systems textbook.

Here are code examples that demonstrate race conditions and synchronization.

We will continue to look at these Java threads examples.

Here is a very general overview of Java threads written by one of the designers of the Java language.

We will begin looking at these Java threads examples.

Here are a few more introductions to Java threads that you might find useful.

We will finish looking at these pthreads examples.

NOTE: Starting today, the class willl meet in room Gyte 211.

Here are three introductions to Java threads. Read the first three sections (the first 15 pages) from the first reference. Read the first four sections (the first 8 pages) from the second reference. Read Section 12.1 from the third reference.

Here are some simple code examples using Java threads.

I highly recommend that you read the following chapter from this operating systems textbook. It provides valuable background information for understanding thread scheduling.

See the programming assignment page for your first assignment.

Read the first three sections (pages 45 - 60) from the following chapter about thread scheduling from this operating systems textbook.

Here are some simple code examples using pthreads.

Here is a link to a C compiler that can compile, link, and run the pthread examples.

No class. Martin Luther King Jr. Day.

Read the following chapter about threads from this operating systems textbook.

Read the following chapter about processes from this operating systems textbook.

Here are some simple code examples for creating processes.