Mac OS X Cate Wardell Tim Miller Tina Han Kenan Shifflett Zach Debord
Mac OS X Latest version in Apple’s line of operating systems –First “modern operating system” Apple’s goals with Mac OS X: –To provide “the power of UNIX with the simplicity and elegance of Macintosh.” –To be “the first major computer company to make open source development a key part of its ongoing software strategy.” –Maintain loyal customer base and develop new customer base –Attract both personal and professional users –Boost profits
Features Kernel –Darwin: supports protected memory architecture, symmetrical multiprocessing, preemptive multitasking and virtual memory management GUI –Aqua Development tools –Carbon, Cocoa Graphic levels –Open GL (3D), Quartz (2D), QuickTime (streaming) Internet capabilities – , browsing, publishing
Data Structures Managed by Carbon –set of programming interfaces –restricts access to data structures –reduces wasted memory
Data Structures Central to Apple Events –how processes interact –structures govern the Events –basis for Object Oriented Programming
Data Structures Process Manager –scheduling, efficiency File Manager –disk control, access Memory Manager –restricted rights
File Management Mac OS Extended file system (HFS+) –Preferred Standard file system (HFS) –Remains for compatibility
File Management Case sensitivity Multiple data streams Directory segregation –user –local –network –system
Memory Management Mach –Demand Paging Connects virtual address to physical location in memory –Built-in Pagers Default pager Vnode pager
Memory Management Sharing Memory –Through vnode paging –Through inheritance Copy-on-write = protected sharing
Process Management Information on Processes –Includes current state, address, size, type, creator, process serial number All processes must be either foreground or background –Can only have one process in foreground Process in current use by user –Can have multiple background processes Processes can be background-only
Process Management Switching –Major switch Foreground and background processes switch States – Suspended – Running – Sleeping
Threads Multithreaded processes POSIX threads (pThreads) Task –Provides resources to the threads Thread –The point of control
Scheduling Time-sharing Fixed-priority Flexible framework –Additional policies can be added in future versions
Symmetric Multiprocessing First time it has been supported since 1997 Made possible through use of the latest Mach kernel Kernel puts together standard virtual memory semantics with the abstraction of memory objects
SMP (cont.) Not supported in first release however Latest release has preemptive multitasking Protected Virtual Memory Other features: FTP & Telnet
Multitasking Previously cooperative –Applications shared the CPU –Starvation possible Now preemptive –Like Unix based systems –Tasks can be swapped out
Deadlock Prevention OS decides which process gets processor dedication Program fails: Like UNIX, system does not crash, memory is flushed Possibly less robust than preemptive multitasking
Facilities for mutual exclusion POSIX (Portable Operating System Interface) threads –mutexes: lock primitives that are used to control access to a shared resource –condition variables: variables that allow a thread to block its own execution until some shared data reaches a particular state
Success or Failure? +Open Source License +Development tools +Crash protection +Backwards compatible +Program bundling +Service support -Limited software applications -Lacks CD and DVD support -Different look and feel -High memory requirements -Pay for “open software”