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