(from Margo:)
As I've mentioned, our last class meeting will be a panel of some
distinguished operating systems developers. I am including brief
bios for each speaker, so you can begin thinking of good questions.
In particular, if you are a distance student or cannot be in class
Thursday, please send me questions that you would like to have
our panelists answer.
And if you can make it, we'll meet for lunch at MD323 at Noon.
KEITH BOSTIC
Keith Bostic was a member of the Berkeley Computer Systems Research
Group, where he was the architect of the 2.10BSD release and a
principal developer of the 4.4BSD and related releases. He co-designed
and implemented the 4.4BSD log-structured file system and the
Berkeley DB database library, and is the author of the widely used
vi implementation, nvi. He is currently vice-president of product
development at Sleepycat Software.
JOSEPH BOYKIN
Joseph Boykin is currently co-founder and Vice President of Product
Development at UbqC, Inc; a storage infrastructure company. He has
been writing and managing OS development for over twenty-five years,
ranging from single-purpose proprietary systems for e.g. doing disk
storage, to large-scale (thousands of processors) embedded real-time
Multi Computers, to having developed the symmetric multiprocessing
software for Mach and OSF/1 (which is now a part of most vendors OS).
FRED OLIVEIRA
Fred Oliveira is currently Director of Architecture & Advanced
Development at EMC Corp. He is currently investigating how network
embedded intelligence can be used to improve the functionality,
cost and flexibility of data storage. Previously at EMC, he worked
on a distributed block virtualization environment and I/O path
load-balancing & fail-over drivers. Prior to EMC, he worked on
various OS projects at Stratus, Apple, Kendall Square Research,
Encore Computer, Ztel and Raytheon. Mr. Oliveira was awarded a
double major BS in EE and CS from the University of Connecticut.
RONY SEBOK
Rony Sebok is currently the founder of 1 Beyond, Inc, a PC-based video
editing systems integrator. She graduated from Harvard in 1983 with an AB
and SM. After graduation she joined the nascent Apple Macintosh OS team
where she was one of six people creating the first operating system.
After Apple, she did a brief stint at HP Research Labs before returning
to the Harvard Business School. After HBS, she worked as a management
consultant for the Boston Consulting Group, before starting 1 Beyond
in 1998.
=-=-=-=-
For your interest, Rony included a document describing the early
Macintosh and its development team.
At Apple, the software team was VERY small:
Larry Kenyon - File System, Drive Interfaces
Andy Hertzfeld - Windows Manager, Menu Manager, Button/Control Manager
Bruce Horn - Resource Manager, Finder (probably the most interesting part
from a CS point of view)
Steve Capps - Window Manager, Finder
Rony Sebok - young Turk, tester, "Mousing Around", ResourceEditor (became
ResEdit)
Jerome Coonen - Manager, Floating Point Routines
------
Don Denman - Basic Interpreter
Bill Atkinson - QuickDraw, MacPaint
Randy Wigginton - MacWrite
Susan Kare - Graphic Designer (Fonts, Icons)
>From the Lisa division:
- support for Printer Drivers
>From Research Division (Larry Tessler):
- Object-oriented application development environment
Original Mac Tech Specs:
Motorola MC68000 32-bit microprocessor (7.8336 MHz)
128K RAM
64K ROM
3.5" floppy (400K bytes)
9" diagonal black&white monitor (512x342 bitmapped)
connectors:
mouse
optional disk drive
2 serial ports
audio out
9.7" x 10.9" footprint
16 lbs.
$2495.00
hello cs161ers:
just a reminder that there will be no section tomorrow. your TF should be in
the process of scheduling individual meetings to review your progress on
asst5.
enjoy the sunshine!
-gwa-
geoffrey werner-allen : 617-694-7261 : www.eecs.harvard.edu/~werner
hello cs161ers:
just a reminder that there will be no section tomorrow. your TF should be in
the process of scheduling individual meetings to review your progress on
asst5.
enjoy the sunshine!
-gwa-
geoffrey werner-allen : 617-694-7261 : www.eecs.harvard.edu/~werner
i'm at desk 5 tonight. if nobody else shows up i'm taking llama with me to
rock bottom where we'll watch the rest of the ducks-stars game.
jk.
-gwa-
geoffrey werner-allen : 617-694-7261 : www.eecs.harvard.edu/~werner
Today's 7:30 PM section is cancelled - since it's an A5 section it does
not need to be filmed for the extension school, and everyone in FAS who
usually attends this section is able to attend an alternative one.
I will co-teach a 3 PM section with Dave.
-- Sasha
Here is another full-project that you should add to the list of
possibilities:
LRU dates back at least to 1965 and has been the de facto buffer cache
replacement policy ever since. While there have been many contenders,
none has caught on. In March 2003, a new algorithm called the Adaptive
Replacement Cache (ARC) replacement algorithm in your buffer cache. This
replacement policy was proposed in March 2003 by two IBM Almaden
researchers, N. Megiddo and D. Modha. According to their paper:
"In response to evolving and changing access patterns, ARC dynamically,
adaptively, and continually balances between the recentcy and frequency
components [of a cache replacement policy] in an online and self-tuning
fashion."
In a nutshell, the idea is to create two lists of pages each of size c,
where c is the number of pages in the buffer cache. Pages that have been
accessed exactly once are put in one list (for recentcy); pages that have
been accessed more than once are put in the other list (for frequency).
The pages actually held in memory are a subset of these two lists.
The key benefits of ARC are that it does not need workload specific
parameters (like most of the other algorithms since LRU), and that, unlike
LRU, it is scan-resistant (a scan of a large file does not empty the
buffer cache of pages that actually will be accessed soon).
The project would be to:
- implement ARC
- evaluate it with a mixture of workloads that
(a) exhibit strong temporal locality
(b) perform scans that far exceed memory capacity
(c) include looping behavior
(d) include a mixture.
Paper abstract:
http://www.usenix.org/events/fast03/tech/megiddo.html
Full paper:
http://www.eecs.harvard.edu/~jonathan/papers/2003/megiddo03arc.pdf
I'd be happy to go over this in detail with any group that would like to
do it, particularly with what experiments to run.
-jonathan
In sfs_reclaim, there's code to detect that the refcount has gone up
again (past 1), and return instead of actually reclaiming the vnode.
At this point it is necessary to reduce the refcount by one,
atomically with the check, to actually drop the reference associated
with the call to reclaim. (Due to oversight, the code in vnode_decref
doesn't do this, and due to synchronization issues, you don't want to
try to change it so it does.)
Since the sfs code provided should have done this, it's kind of our
fault, and we'll proceed accordingly if you've already submitted a
tree that suffers from this problem.
This is the change that would apply to the base system:
Index: src/kern/fs/sfs/sfs_vnode.c
===================================================================
RCS file: /disk/disk0/cs161/CVSREPO/os161/src/kern/fs/sfs/sfs_vnode.c,v
retrieving revision 1.24
diff -u -r1.24 sfs_vnode.c
--- kern/fs/sfs/sfs_vnode.c 4 Sep 2002 01:42:06 -0000 1.24
+++ kern/fs/sfs/sfs_vnode.c 22 Apr 2003 00:18:56 -0000
@@ -868,6 +868,11 @@
*/
lock_acquire(v->vn_countlock);
if (v->vn_refcount != 1) {
+
+ /* consume the reference VOP_DECREF gave us */
+ assert(v->vn_refcount>1);
+ v->vn_refcount--;
+
lock_release(v->vn_countlock);
return EBUSY;
}
--
- David A. Holland / dholland(a)eecs.harvard.edu