190 likes | 472 Views
BeOS. AJ Schuster Robert Robinson Nicole Chung Brian Hoffman. What Is BeOS?. Not a UNIX derivative Be, Inc. formed in 1990 First public release in 1996 Ran on proprietary hardware: BeBox 1997: Be quits the hardware business. BeOS on x86. 1998: Release 4 retails for US$70
E N D
BeOS AJ Schuster Robert Robinson Nicole Chung Brian Hoffman
What Is BeOS? • Not a UNIX derivative • Be, Inc. formed in 1990 • First public release in 1996 • Ran on proprietary hardware: BeBox • 1997: Be quits the hardware business
BeOS on x86 • 1998: Release 4 retails for US$70 • Runs on PowerPC, x86, more • 2000: Release 5 “Personal Edition” • 512MB partition limit • 2001: Be bought by Palm, Inc. • Today: OpenBeOS
BFS (Be File System) • Structure based on standard *NIX hierarchy • Earliest general-purpose journaling file system • Similar to transaction support in databases • Eliminates need for scandisk or fsck
Memory Management • Memory Model • Implementation at the Microkernel level Figure 3 – BeOS Architecture <jon@rupture.net>
Memory Model • Virtual Memory Addresses (mapping dynamic memory) • Shared by threads and processes • Can be locked into RAM • Object-Oriented Design • Full Memory Protection • Symmetric Multi-Processing (SMP)
Implementation at theMicrokernel Level • BeOS Threads and Objects • Communication between Threads • Message Handling with BLooper • Ports (FIFO message repositories) • Semaphores (data protected locks) • Benaphores (Increased efficiency in data protection)
Internal Data Structures • Structures Used in Process Management • Thread creation • Thread execution and control • Thread termination • Structures Used in Memory Management • BLooper (Interface between objects & threads) • Semaphores, Ports, and Images • Structures Used in File Management • Bfile • Bdirectory
Threads • Multi-threaded Architecture of BeOS • Pervasive multi-threading • Teams • Kinds of Threads • Real-time & time-sharing • listener and image threads
CPU Scheduler • There are two types of threads: real-time and time-sharing. • Each thread is assigned a priority number 1-120. • Levels 1-99 are assigned to time-sharing threads. • Levels 100-120 are reserved for real-time threads. • Time-sharing threads are scheduled according to their priority number and a logarithmic scale of 2. • A thread with priority number 6 would be 26 or 64. • A thread with priority number 8 would be 28 or 256. • So a thread with a priority number greater by 2 is four times as likely to be chosen to execute.
CPU Scheduler (continued) • A new time-sharing thread is chosen every “scheduler quantum.” • A “scheduler quantum” is set to 3 milliseconds in BeOS. • Multiple processors are a little more complicated but follow the same principle. • No time-sharing thread should keep a real-time thread from executing. • A real-time thread can be executing on the first processor while a time-sharing thread executes on another processor. • If a real-time thread wakes or enters the scheduling queue if there is no processor available to it then the time-sharing thread with lowest priority is kicked back onto the queue and the real-time thread takes its place. • Time-sharing threads always yield to real-time threads. This makes BeOS a streamlined OS for media applications requiring real-time performance.
Deadlock • Ports • act as a message queue • Semaphores • prevent race situations and situations where multiple instructions must execute without interference • Benaphores • combination of an atomic variable and a semaphore