Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 28
Computing Environments
• Traditional • Mobile • Client Server • Peer-to-Peer • Cloud computing • Real-time Embedded Traditional
• Stand-alone general-purpose machines
• But blurred as most systems interconnect with others (i.e., the Internet) • Current trend – providing more ways to access the computing environment. • Portals provide web access to internal systems • Network computers (thin clients) are like Web terminals • Mobile computers interconnect via wireless networks • Networking becoming ubiquitous – even home systems use firewalls to protect home computers from Internet attacks Mobile • Handheld smartphones, tablets, etc. • What is the functional difference between them and a “traditional” laptop? • Extra feature – more OS features (GPS, gyroscope) • Allows new types of apps like augmented reality • Use IEEE 802.11 wireless, or cellular data networks for connectivity • Leaders are Apple iOS and Google Android (Mobile OS) Client Server Client-Server Computing • Dumb terminals supplanted by smart PCs • Many systems now servers, responding to requests generated by clients Compute-server system provides an interface to client to request services (i.e., database) File-server system provides interface for clients to store and retrieve files Distributed Systems • Collection of separate, possibly heterogeneous, systems networked together • Network is a communications path, TCP/IP most common • Local Area Network (LAN) • Wide Area Network (WAN) • Metropolitan Area Network (MAN) • Personal Area Network (PAN) • Network Operating System provides features between systems across network • Communication scheme allows systems to exchange messages • Illusion of a single system Peer-to-Peer
• Another model of distributed system
• P2P does not distinguish clients and servers • Instead all nodes are considered peers • May each act as client, server or both • Node must join P2P network • Registers its service with central lookup service on network, or • Broadcast request for service and respond to requests for service via discovery protocol • Examples include Napster and Gnutella, Voice over IP (VoIP) such as Skype Virtualization • Allows operating systems to run applications within other OSes • Vast and growing industry • Emulation used when source CPU type different from target type (i.e. PowerPC to Intel x86) • Generally slowest method • When computer language not compiled to native code – Interpretation • Virtualization – OS natively compiled for CPU, running guest OSes also natively compiled • Consider VMware running WinXP guests, each running applications, all on native WinXP host OS • VMM (virtual machine Manager) provides virtualization services Virtualization (cont.) • Use cases involve laptops and desktops running multiple OSes for exploration or compatibility • Apple laptop running Mac OS X host, Windows as a guest • Developing apps for multiple OSes without having multiple systems • Quality assurance testing applications without having multiple systems • Executing and managing compute environments within data centers • VMM can run natively, in which case they are also the host • There is no general-purpose host then (VMware ESX and Citrix XenServer) Computing Environments - Virtualization Cloud Computing • Delivers computing, storage, even apps as a service across a network • Logical extension of virtualization because it uses virtualization as the base for it functionality. • Amazon EC2 has thousands of servers, millions of virtual machines, petabytes of storage available across the Internet, pay based on usage Cloud Computing (Cont.) • Many types • Public cloud – available via Internet to anyone willing to pay • Private cloud – run by a company for the company’s own use • Hybrid cloud – includes both public and private cloud components • Software as a Service (SaaS) – one or more applications available via the Internet (i.e., word processor) • Platform as a Service (PaaS) – software stack ready for application use via the Internet (i.e., a database server) • Infrastructure as a Service (IaaS) – servers or storage available over Internet (i.e., storage available for backup use) Cloud Computing (cont.)
• Cloud computing environments composed of traditional
OSes, plus VMMs, plus cloud management tools • Internet connectivity requires security like firewalls • Load balancers spread traffic across multiple applications Real-Time Embedded Systems • Real-time embedded systems most prevalent form of computers • Vary considerable, special purpose, limited purpose OS, real-time OS • Use expanding • Many other special computing environments as well • Some have OSes, some perform tasks without an OS • Real-time OS has well-defined fixed time constraints • Processing must be done within constraint • Correct operation only if constraints met Free and Open-Source Operating Systems
• Operating systems made available in source-code format
rather than just binary closed-source and proprietary • Counter to the copy protection and Digital Rights Management (DRM) movement • Started by Free Software Foundation (FSF), which has “copyleft” GNU Public License (GPL) • Free software and open-source software are two different ideas championed by different groups of people • https://www.gnu.org/philosophy/open-source-misses-the-point.en.html
• Examples include GNU/Linux and BSD UNIX
(including core of Mac OS X), and many more • Can use VMM like VMware Player (Free on Windows), Virtualbox (open source and free on many platforms - http://www.virtualbox.com) • Use to run guest operating systems for exploration PC Motherboard Operating System Structure • General-purpose OS is very large program • Various ways to structure ones • Simple structure – MS-DOS • More complex – UNIX • Layered – an abstraction • Microkernel – Mach Monolithic Structure – Original UNIX
• UNIX – limited by hardware functionality, the
original UNIX operating system had limited structuring. • The UNIX OS consists of two separable parts • Systems programs • The kernel • Consists of everything below the system-call interface and above the physical hardware • Provides the file system, CPU scheduling, memory management, and other operating-system functions; a large number of functions for one level Traditional UNIX System Structure Beyond simple but not fully layered Linux System Structure Monolithic plus modular design Layered Approach • The operating system is divided into a number of layers (levels), each built on top of lower layers. The bottom layer (layer 0), is the hardware; the highest (layer N) is the user interface. • With modularity, layers are selected such that each uses functions (operations) and services of only lower-level layers Microkernels • Moves as much from the kernel into user space • Mach is an example of microkernel • Mac OS X kernel (Darwin) partly based on Mach • Communication takes place between user modules using message passing • Benefits: • Easier to extend a microkernel • Easier to port the operating system to new architectures • More reliable (less code is running in kernel mode) • More secure • Detriments: • Performance overhead of user space to kernel space communication Microkernel System Structure Modules • Many modern operating systems implement loadable kernel modules (LKMs) • Uses object-oriented approach • Each core component is separate • Each talks to the others over known interfaces • Each is loadable as needed within the kernel • Overall, similar to layers but with more flexible • Linux, Solaris, etc. Hybrid Systems • Most modern operating systems are not one pure model • Hybrid combines multiple approaches to address performance, security, usability needs • Linux and Solaris kernels in kernel address space, so monolithic, plus modular for dynamic loading of functionality • Windows mostly monolithic, plus microkernel for different subsystem personalities • Apple Mac OS X hybrid, layered, Aqua UI plus Cocoa programming environment • Below is kernel consisting of Mach microkernel and BSD Unix parts, plus I/O kit and dynamically loadable modules (called kernel extensions) macOS and iOS Structure Darwin Android • Developed by Open Handset Alliance (mostly Google) • Open Source • Similar stack to iOS • Based on Linux kernel but modified • Provides process, memory, device-driver management • Adds power management • Runtime environment includes core set of libraries and Dalvik virtual machine • Apps developed in Java plus Android API • Java class files compiled to Java bytecode then translated to executable thnn runs in Dalvik VM • Libraries include frameworks for web browser (webkit), database (SQLite), multimedia, smaller libc Android Architecture