MacIntosh-OS-X-Spr-2001-sect-2-group

Download Report

Transcript MacIntosh-OS-X-Spr-2001-sect-2-group

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
– E-mail, 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”