|
This page documents what we do in class. It contains C programs that we will discuss in class, reading assignments from our textbook, simple homework exercises that you can work on for practice and exam preparation (not for credit), links to other sources of information, etc.
The reading assignments and practice problems are listed by the date on which they were assigned. The sample program files are listed by the date on which they were used. When you are viewing a source code page, you can use your browser's "File -> Save As..." menu item to save a copy of the code on your computer. It is a good idea for you to "play" with these example programs; compile them, run them, make simple changes to them and compile and run them again.
|
- Monday, April 30.
- Read Chapter 9, Sections 9.7-9.11 (pages 348-366) from the operating systems textbook.
- Use the following notes to get some insight into the somewhat odd virtual memory behaviour of the following program.
- Here is a link to a "Performanc Monitor object" that you can use to observe the difference between "hard page faults" (green graph) and "soft page faults" (blue graph). Download this object and double click on it. It should start up Performance Monitor and start recording data right away.
- Wednesday, April 25.
- The second exam will be on Monday, May 6, at 6:00 PM. Here is the file that contains sample questions for the exam.
- Read Chapter 9, Sections 9.4-9.6 (pages 327-348) from the operating systems textbook.
- Here is a zip file containing some more information about virtual memory systems.
- Monday, April 23.
- See the homework page for your eighth (and last) homework assignment.
- Read Chapter 8, Section 8.5-8.7 (pages 297-310) and Chapter 9, Sections 9.1-9.3 (pages 315-327) from the operating systems textbook.
- Here are a few examples of using Win32 virtual memory functions.
- Here is a zip file containing a few programs that can be used to create maps of vitual memory for running processes.
- Monday, April 16.
- Read Chapter 8, Sections 8.1-8.4 (pages 275-297) from the operating systems textbook.
- Here are links to a few articles that point out why concurrency has just recently become important to all developers and why this is a bit of a problem.
- Here are links to two web sites that have Java applets that animate some of the famous synchronization problems.
- Wednesday, April 11.
- Read Chapter 7, Sections 7.1-7.3 (pages 245-253) from the operating systems textbook.
- The following zip file contains Internet shortcuts to Wikipedia entries that define a number of the terms that we use when discussing synchronization.
- Here are several implementations of two very simple synchronization patterns.
- Here are two pseudocode solutions to the Readers and Writers Problem.
- Monday, April 9.
- See the homework page for your seventh homework assignment.
- Read Chapter 6, Section 6.8 (pages 217-222) from the operating systems textbook.
- Here are a few examples of how to implement semaphores, both in hardware and in software.
- Monday, April 2.
- Read Chapter 6, Sections 6.4-6.6 (pages 197-209) from the operating systems textbook.
- Read Section 4.1 (pages 57-67) from The Little Book of Semaphores by Allen B. Downey.
- Here are two simple examples of the Producer Consumer synchronization problem.
- Here are Win32 programs that demonstrate more race conditions and that use mutexes and semaphores to protect the critical sections.
- Monday, March 26.
- Wednesday, March 21.
- The midterm exam will be next Wednesday, March 28. Be sure to study the sample questions for the midterm exam.
- Read Chapter 5, Sections 5.7-5.8 (pages 181-186), and Chapter 6, Sections 6.1-6.3 (pages 191-196)from the operating systems textbook.
- Here are a few links to articles about modern notions of scheduling in high performance computer clusters.
- Wednesday, March 7.
- There will be a midterm exam after spring break. Here is the file that contains sample questions for the midterm exam.
- Read Chapter 5, Sections 5.4-5.6 (pages 169-181) from the operating systems textbook.
- Wednesday, February 28.
- See the homework page for your fifth homework assignment.
- Read Chapter 5, Sections 5.1-5.3 (pages 153-169) from the operating systems textbook.
- Here are several Win32 programs that create threads.
- Monday, February 26.
- Read Chapter 4, Sections 4.1-4.6 (pages 127-146) from the operating systems textbook.
- Here is a family of programs that demonstrate different kinds of processes (cpu bound and I/O bound) and some issues with concurrent processes.
- Wednesday, February 21.
- Read Chapter 3, Sections 3.1-3.3 (pages 81-95) from the operating systems textbook.
- Here is an example of a Win32 program that creates a process.
- Here are links to a few programs that let you examine processes in Windows.
- Monday, February 19.
- Read Chapter 2, Sections 2.1-2.7 (pages 39-63) from the operating systems textbook.
- Here are a few references about "system calls" in Windows.
- Wednesday, February 14.
- See the homework page for your fourth homework assignment.
- Here are three simple C programs that demonstrate basic I/O in C and also demonstrate a couple of important operating systems concepts.
- If you want, you can build the above three programs using any one of the following make files. Instructions are in the make files.
- A good input file for testing the above three programs is War and Peace from Project Gutenberg
- It is a good idea to run the above programs and watch them run using the QuickSlice (qslice.exe) program. Also, an easy way to compute their runtimes is to use Timethis (timethis.exe) or ptime.
- If you want, you can use either of the following two batch files to make timing and observing the above programs easier.
- For a bit of information about using make and makefiles, read any of the following.
- Wednesday, February 7.
- Read Chapter 1 (pages 3-35) from the operating systems textbook.
- Look at this brief explanation of why we need operating systems.
- Here is another (simpler) example of a single program made up of separate compilation units.
- Monday, February 5.
- Here are some linking diagrams that try to help you visualize the steps in creating and using static and dynamic libraries.
- Here is an example that shows how to create and use a dll.
- Here are some references on linking and dll's.
- Wednesday, January 31.
- See the homework page for your third homework assignment.
- Be sure to study this handout about the "C run time system".
- Here is an example of a single program made up of three compilation units.
- Here are some programs that demonstrate ideas about how C (and also C++) calls functions.
- Here are references to more information about calling conventions.
- Monday, January 29.
- Here are some C programs for which we shall examine the assembly language translations.
Wednesday, January 24.
- See the homework page for your second homework assignment.
Monday, January 22.
- Be sure to study this handout about variables and the "C run time system". Use a book about C to familiarize yourself with ideas and terms mentioned in the handout.
- Here are C programs that demonstrate some ideas about the C run time system.
- If you have installed Lcc-Win32, MinGW, Microsoft Visual Studio 6, and TextPad on your computer, then you can download the following two files so that TextPad will be configured to use all three of these compiler systems. Put the
VCVARS32.BAT file in your C:\ directory. After you download the registry file, just double click on it. The registry file will put into TextPad 33 command line tools for using the compilers (but be careful since it will overwrite, and delete, any TextPad tools that you may already have).
- If you have installed Lcc-Win32, MinGW, and Microsoft Visual Studio 6 on your computer, then you may want to download the following zip file that contains a nice, free, text editor fully configured for all three of these compilers. Just unzip the file anywhere you like and run the executable
SciTE.exe contained in it. This editor is completely self contained and can be easily run from a flash drive and it will work in the CLO computer labs. See the SciTE editor home page for more information about this editor.
Wednesday, January 17.
- Be sure to look at the homework assignment page. Your first assignment is already listed there.
- If you would like to buy a good, but very cheap, used book on C, download this zip file that contains Internet shortcuts to a few suggested books. (I have placed copies of a few of these books on reserve in the library for this course.)
- Print and study this handout about variables and the C run time system. Use a book about C to familiarize yourself with ideas and terms mentioned in the handout.
- Here is a link to a brief movie, made at Stanford University, about pointers.
- Here are a couple more good references about pointers.
- Part of understanding pointers is understanding pointer declarations. Here are some explanations of how to read C declarations.
- Here are some simple C programs that demonstrate ideas about pointers.
|
|
|
|