WED MAR 23
• lecture 20: memory manager data structs
txt
MON MAR 21
• lecture 19: intro to memory management
txt
• read pages 189202 of Tanenbaun
• assignment 6: memory allocation pdf
proj6_data txt
memmgr.c c
• buddy system html
due Fri Apr 1
• assignment 4 cutoff is Fri Mar 25.
FRI MAR 11
• lecture 18: squeak's etoys
txt
• assignment 5: squeak html
due Fri Mar 25
• missing pages 164165 from handoutpdf
91.308 Assignment 5: Squeak, the Object-Oriented Operating System
Due: Friday, March 25
The objective of this assignment is to get some experience using
Squeak. Squeak is an operating system and programming environment
that is based largely on the Smalltalk language, which was developed
as part of the seminal Xerox PARC Star computer in the 1970s.
Squeak is interesting because it demonstrates an approach not seen
in the contemporary operating systems with which we are all familiar
(Windows, Mac, Linux):
Everything is an object, and the Squeak system is built largely in
itself.
Squeak has a persistent object store. Everytime you create an
object, it simply exists in the Squeak environment.
The whole Squeak system is interpreted, and is a demonstration
proof of the viability of such systems.
Readings
Three readings were handed out related to Squeak:
Chapter 1, Squeak for Nonnative Speakers, by Noel
Rapkin, from Squeak: Open Personal Computing and Multimedia
(Mark Guzdial and Kim Rose, editors).
This chapter is a good introduction to the Squeak environment,
object-oriented approach, and language model.
Chapter 2, A Tour of Squeak, and Chapter 3,
Your First Program: Joe the Box, from Squeak:
Object-Oriented Design with Multimedia Applications, by Mark
Guzdial.
These chapters provide a thorough introduction to the language and
show how to create objects and get them to talk to one another.
Excerpts from Chapter 5, Building User Interfaces in
Squeak, from the second book noted just above.
This material specifically introduces Morphic, the Morphic halo
system, and shows how to build applications using the eToy
programming environment, which was designed for programming novices.
Please make sure you have these handoutsespecially the last
onebefore setting off on this assignment.
Assignment
Get Squeak from http://www.squeak.org. There are
versions for all major operating systems. Use the 3.7 release.
Go through the Morphic introduction and build the
accelerating-ellipse-and-kicker demo. Put it into its own Playground
object.
Figure out where the code lives that makes the ellipse make the
scratchy sound and bounce off the bottom of the screen.
Using this knowledge, build some kind of multi-agent
demonstration of the producer-consumer problem, semaphores,
synchronization, and/or race conditions. Think about how these
concepts map to the Squeak environment.
Your program should have at least a half-dozen objects in it. If
you can figure out how to get entities to spawn other ones, that
would be great. If you want to make something like a video game, go
for it.
To turn in your work: Save your work in your Squeak
image, and upload the whole image to Mercury (make sure to use binary
mode to get the file across). Then type submit fredm 308a4
and submit your Squeak binary.
Make sure your project is in the foreground when Squeak is booted
in your binary. I shouldn't need to go hunting down inside your image
for your work.
Also, turn in a physical cover sheet. The cover sheet
should include a printed 3-paragraph discussion of what you did.
Also, the discussion should include an answer to #3 above.
Last modified:
Friday, 11-Mar-2005 10:15:41 EST
by