170 likes | 460 Views
BeOS, the Be Operating System. Robert Robinson CS 550-1. What Is BeOS?. Coded from scratch 1990: Be, Inc. formed 1996: 1 st public release Ran on Be’s proprietary hardware, BeBox 1997: Be quits the hardware business. BeOS History. 1998: Release 4, the money-maker
E N D
BeOS, the Be Operating System Robert Robinson CS 550-1
What Is BeOS? • Coded from scratch • 1990: Be, Inc. formed • 1996: 1st public release • Ran on Be’s proprietary hardware, BeBox • 1997: Be quits the hardware business
BeOS History • 1998: Release 4, the money-maker • Runs on PowerPC, x86, more • 2000: Release 5, “the demise” • “Personal Edition”; 512MB partition limit • 2001: Be bought by Palm, Inc. • 2001: BeOS R5.1 leaked to public • Today: Haiku (changed from OpenBeOS) and YellowTab
BFS, the Be File System • Much of structure borrowed from UNIX • Journaling • Reduces data loss • Eliminates need for scandisk or fsck • Rich metadata model • Database-like approach to file retrieval
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 • Thread priority numbers: 1-120. • Levels 1-99: assigned to time-sharing threads. • Levels 100-120: reserved for real-time threads. • Time-sharing threads are scheduled according to their priority number and a logarithmic scale of 2. • 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 given the processor after every time quantum (3 milliseconds in BeOS). • Execution on multiple processors • Time-sharing threads must always yield to real-time threads. This makes BeOS a streamlined OS for media applications requiring real-time performance.
Deadlock • Problem: Dropping of messages • Solution: Port • Problem: Manipulation of data by another process during execution. • Solution: Semaphores • Problem: Semaphores Slowness • Solution: Benaphores