1 / 21

Mac OS X

Mac OS X. December 5, 2005 Fall 2005 Term Project CS450 Operating Systems (Section 2) Darrell Hall, Ryan Lanman, Chris Sanford, John Suarez {halldl, lanmanrm, sanforcp, suarezjg}@jmu.edu. OS X History. 1985, CEO Steve Jobs leaves Apple Creates NeXT Inc. NEXTSTEP

lavey
Download Presentation

Mac OS X

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mac OS X December 5, 2005 Fall 2005 Term Project CS450 Operating Systems (Section 2) Darrell Hall, Ryan Lanman, Chris Sanford, John Suarez {halldl, lanmanrm, sanforcp, suarezjg}@jmu.edu

  2. OS X History • 1985, CEO Steve Jobs leaves Apple • Creates NeXT Inc. • NEXTSTEP • based on Mach 2.5 and 4.3BSD • said to be ahead of its time • GNUstep (www.gnustep.org)

  3. OS X History • Meanwhile…Apple encounters problems: • Pink OS fails (joint effort by IBM and Apple) • Advanced OS Copland makes little impact • Considers purchasing • Windows NT, Solaris, and even Pink OS • Steve Jobs pitches NeXT technology to Apple • Apple agrees and purchases NeXT for $427 million dollars

  4. OS X History • NeXT-based system called Rhapsody • Two developer releases • OS X • Announced in 1997 • Mac OS X Server and preview of desktop version become available in 1999 • Mac OS X beta released on September 13, 2000 • 10.0, “Cheetah” released on March 24, 2001 • 10.1, “Puma” released September 29, 2001 • 10.2, “Jaguar” released August 13, 2002 • 10.3, “Panther” released October 24, 2003

  5. The Good of Mac OS X • Aqua’s usability • Excellent FireWire support • Apple's iLife suite (iDVD, iMovie, iPhoto, iTunes, and GarageBand) • Metadata stored in a relation database • Power management • Zero configuration networking

  6. The Bad of OS X • Scattered documentation • System slow down • DVD-R burn errors

  7. OS X Success/Potential • 10 to 15 million OS X ready Macs worldwide • Mac OS userbase: 25 million worldwide • 26% share of US education market • 85% share of US graphics professionals market • > 1 million shrink-wrapped copies of OSX sold • Apple has become the largest UNIX vendor in history • Linux: 12 million users worldwide (linux.org) (Steffen, 2002)

  8. Processor Overview • Two processor modes: • User • Supervisor • Multiprocessor capability • SMP

  9. CPU Scheduling • Preemptive priority scheduling • Priority bands • Normal • System High Priority • Kernel Mode Only • Real Time Threads • “Mach Thread API”

  10. Process States • Process states are actual thread states: • “ready to execute” → ready • “executing” → running • “stopped” → block

  11. System 7-style Virtual Memory • Each page: 4 KB • Processes are given either a 32 or 64-bit virtual address space • 32-bit address can grow to 4 gigabytes • 64-bit address can grow to 18 exabytes • (exabyte = 260 bytes)

  12. VM controls 2 major address ranges • Primary Address Range • Normal memory • File mapping space • Created when Code Fragment Manager is loaded

  13. Figure X: VM address ranges Source: http://developer.apple.com/technotes/tn/pdf/tn1094b.pdf

  14. Implementation • System 7 VM implementation has 5 difficulties: • prevention of fatal page faults • running old drivers • a synchronous SCSI manager • An asynchronous SCSI manager • an ATA manager

  15. Prevention of Fatal Page Faults • Two different approaches: • Stopping paging devices from causing page faults in the process of handling a read/write request • Virtual Memory stops code that may cause a page fault (referred to as “User code”) from executing with another page fault is currently being handled

  16. Old Drivers • Two techniques: • Device Manager routines such as “_Read”, “_Write”, “_Status”, and “_Control” are patched to avoid parameter blocks passed to the device drivers. • The entire system heap is held. • Doing so prevents device drivers from causing a page fault while accessing their own code

  17. Synchronizing the SCSI manager • Solutions: • Ensure the device managers did not cause a page fault • Disable user code while the SCSI bus is busy

  18. Asynchronous SCSI manager • Problem: With the current Virtual Memory Manager, user code quite commonly takes page faults while interrupts have been disabled. However, the asynchronous SCSI manager needs these interupts to complete its operations. • Solution: Patching “vSyncWait” to poll the SCSI hardware looking for interrupts • Not pretty, but it works

  19. ATA manager • When ATA hard disks were intoduced to Mac computers, SCSI software problems reappeared, only for the ATA disks. • Similar problem, similar solution

  20. Bibliography • Steffen, D. (2002). “Mac OS X: The Darwin Kernel.” URL: http://www.maths.mq.edu.au/~steffen/t alks/comp342-macosx-darwin.pdf

  21. Questions?

More Related