7.3.3. Computer System Structures

Download Report

Transcript 7.3.3. Computer System Structures

Computer System Structures
System Operation
Operating system structure.
OS examples
Virtual Machines
Textbook Silberschatz, Chapter 2
Different OS - Monolithic, Microkernel, Modular ?
Hybrid !
Windows
 W95 and earlier – layered monolithic
 Windows NT – layered microkernel - very slow
 Windows XP and … - layered, more monolithic
 DLL ability
MAC OS
 from microkernel to more
monolithic
 DLL ability
Unix type systems (Solaris, Linux,
FreeBSD)
 Mainly monolithic
 Could build custom kernel
monolithic or micro
 DLL ability
Linux
The Linux system is composed of three main bodies of code, in line with most traditional
UNIX implementations:
 Kernel
 maintaining all the important abstractions of the operating system, including such
things as virtual memory, processes, device drivers, file systems, networking code.
 All the kernel code executes in privileged mode .
 the kernel is created as a single, monolithic binary
• Monolithic
 Single Reason - performance.
•
•
•
DLL support
No message passing
No layers
 Supports dll (so*).
 System libraries
 standard set of functions through which applications can interact with the kernel
 Work in user mode.
 Libc,…
 System utilities
 perform individual,
specialized management
tasks
 Run once
 Daemons
kernel mode
Windows
•
•
•
•
Mainly Monolithic
Layered
DLL support
Message Passing
kernel
mode
Mac OS X
 uses a hybrid structure
 layered system
 Aqua user interface
 set of application environments and services
•
•
•
•
Hybrid
Layered
DLL support
Message Passing
 Cocoa - an API for the Objective-C programming language, which is used for
writing Mac OS X applications.
 Below these layers is the kernel environment, which consists primarily of the
 Mach microkernel
 BSD UNIX kernel.
 Mach - memory management; RPC,
IPC, message passing, thread
scheduling.
 The BSD - command-line interface,
networking and file systems, POSIX
APIs, Pthreads.
 I/O kit - development of device
drivers and dynamically loadable
modules (which Mac OS X refers to
as kernel extensions).
iOS
 iOS is a mobile operating system designed by Apple to run its
smartphone, the iPhone, as well as its tablet computer, the iPad
 Cocoa Touch is an API for Objective-C that provides several frameworks for
developing applications that run on iOS devices (touch screens).
 The media services layer provides services for graphics, audio, and video.
 The core services layer provides a variety of features,
including support for cloud computing and
databases.
 The bottom layer represents the core operating
system, which is based on the kernel environment
(not fully compatible with Unix).
Android
 Whereas iOS is designed to run on Apple mobile devices and is closesourced,
 Android runs on a variety of mobile platforms and is open-sourced.
 Layered
 The Android runtime environment includes a core set of libraries as well as
the Dalvik virtual machine.
 Google has designed a separate
Android API for Java development.
 The Java class files are first compiled
to Java bytecode and then translated
into an executable file that runs on the
Dalvik virtual machine.
 At the bottom of this software stack is
the Linux kernel, although it has been
modified by Google and is currently
outside the normal distribution of
Linux releases.
Virtual Machines
 Virtualization supported by the kernel
 IBM VM370 divided a mainframe into multiple virtual machines
(logical partitions- LPARs), each running its own operating
system.
(a) Non virtual machine. (b) Virtual machine.
Vmware, Virtual Box, ESXi
Vmware Elastic Sky X Integrated
 virtualization tool to run in user mode
The Java Virtual Machine
Sun’s (now Oracle’s) VM
 For each Java class, the compiler produces an architecture-neutral
bytecode output (.class) file that will run on any implementation of
the JVM.
 The JVM is a specification for an abstract computer.
 It consists of a class loader and a Java interpreter that executes the
architecture-neutral bytecodes
C
THE .NET FRAMEWORK
Microsoft’s VM
 This platform allows programs to be written in the platform independent
.NET Framework instead of a specific architecture.
 The Common Language Runtime - CLR is the implementation of the .NET
virtual machine.
 Programs written in languages such as C# and VB.NET are compiled into
an intermediate, architecture-independent language called Microsoft
Intermediate Language (MS-IL).
 These compiled files, called assemblies, include
MS-IL instructions and metadata. They have file
extensions of either .EXE or .DLL.
 Upon execution of a program, the CLR loads
assemblies, converts the MS-IL instructions
inside the assemblies into native code that is
specific to the underlying architecture using
just-in-time compilation.
 Once instructions have been converted to
native code, they are kept and will continue to
run as native code for the CPU