Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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 Figure 3 – BeOS Architecture <[email protected]> • Memory Model • Implementation at the Microkernel level 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 the Microkernel 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 Thread States Running Thread has processor Ready Thread is waiting for processor Receiving Thread is in receive_data() call Sleeping Thread is in snooze() call Suspended Thread is first created or suspended Waiting Thread is waiting to get processor