Analysis of an Operating System
Analysis of an Operating System
CIS 612: Computing Platforms and Networks
1
Analysis of an Operating System
2
An operating system refers to a type of system software that controls or runs the computer
hardware and software resources by granting common services to the programs in a computer. All
application programs cannot work without the aid of an operating system hence stressing the
importance of an OS. There are different types of operating systems. The most common types
include Windows, Unix, and Linux. This research paper discusses in depth the Windows OS.
The Windows OS just like any other OS has various design principles underlying them.
The following are the basic design principles otherwise referred to as facilities that make up
Windows (Hansen 1973). The first principle is that Windows has code commonality. The earliest
forms of Windows used similar codes to perform basic functions such as math. This meant that
sharing a library of common routines was the most efficient way of utilizing resources. A common
super-task shared by all application was assigned the tasks.
The second principle refers to the efficiency of execution. Windows can run two or more tasks
together hence, can swap controls as and when required by the input/ output requests. This is in a
bid to increase the efficiency of the CPU, which is usually 90% idle in an I/O with an intensive
application.
The third principle underlying the Windows OS is the task protection. Since the Windows
can perform different tasks simultaneously, hardware-level locks which are tamper-proof are used
so that one task cannot interfere with another when the tasks are sharing hardware.
The fourth and final design principle is virtualization. Virtualization refers to the solely assigning
of resources to the executing task hence pushing other non-executing task to slower secondary
memory. The non-executing would, however, be rolled back to the primary memory once there is
a task switch. However, this can only happen for a well-protected multi-tasking surrounding.
Analysis of an Operating System
3
Every Windows OS process contains one or more threads introduction. Since threads are a
basic requirement of a process, they are scheduled for the availability of resources such as the
CPUs and physical memory, fairness, and priority. Since Windows support multiprocessor
systems, the threads are allocated to separate processors within a computer. Each thread has an
independent schedule. A thread has the following elements:
•
A stack for procedure calls interrupts.
• Thread Local Storage (TLS) which is an array-like collection of pointers giving each thread the
ability to allocate storage to create its unique data environment.
•
An argument on the stack that is usually unique for each thread.
•
A context structure that contains machine register values.
Each Windows process is made of the following components (Verissimo,1998);
•
A virtual address space that is unique from other processes' address spaces. Memory-mapped
files share physical memory, but the sharing processes will probably use different virtual addresses
to access the mapped file.
•
One or more code segments.
•
Data segments containing global variables.
• Environment strings with the environment variable information, such as the current search path.
•
The process heap.
•
Resources such as open handles.
•
One or more threads.
Analysis of an Operating System
4
The Windows OS provides ways for facilitating communication and data between
applications. Such communications are referred to as inter-process communication (IPC); some
IPC enables division of labor among specialized processes to while the rest other is among
computers on a network. There exist two main types of IPC; the clients and servers, the client
refers to an application that requests a service from other application or process while a server is
an application that responds to the request os a client.
There are many IPC mechanisms that are supported by Windows (Weisshaar et.al. 1987). They
include;
•
Clipboard; is the central place for data sharing among other applications
•
COM/ Component Object Model; enables other applications to do data editing
• Data Copy; makes an application to send information to another application through the use of
WM_COPYDATA message
•
DDE/ Dynamic Data Exchange; refers a protocol that enables application to exchange data in
many formats
•
File Mapping; a process that treats the contents of a file in a way that makes the file look like
a block of memory in the process’s address space
•
Mailshots; provides one-way communication between applications
•
Pipes; are of two types, anonymous and named pipes, while anonymous pipes allow related
processes only to transfer information to each other, named pipes are used for unrelated processes
and between processes on different computers.
•
RPC; enables applications to call functions in a remote way
Analysis of an Operating System
•
5
Window Sockets; it takes great use of the capabilities of the underlying protocols since it is a
protocol independent interface.
Memory management involves how best each application in an OS system can be stored.
It involves memory allocation to each application. Memory allocation is divided into two main
categories;
1.
Frame allocation; with frame allocation, the user works with the actual memory itself. Also,
schemes of work in the frame allocation are automatically deleted.
2.
Heap allocation; the user is given a pointer or direction to the memory block to use. The
program in the heap allocation decides whether to delete files on the computer or not.
A memory manager plays the roles of implementing the virtual memory, providing services
such as memory mapped files, large memory support, copy-on-write memory and underlying
support to the cache manager.
In the Windows OS, each process on 32-bit Windows possesses its virtual address space
that enables it to work with a memory of up to 4gigabytes. Similarly, each process in a 64-bit
Windows has a virtual address space of 8 terabytes. Although all threads can access the virtual
address space, they cannot access memory that belongs to other processes hence preventing
processes from being corrupted. The following are the examples of functions that demonstrate the
use of memory management functions;
•
Reserving and committing memories
•
Creating Guard Pages
•
Use of file mapping
Analysis of an Operating System
•
Getting process heaps
•
Enumerating a heap
•
Allocating Memory for an NUMA node
6
There exist four major elements used with memory management. The first is the Memory
Management Functions which include the Copy Memory, Fill Memory, GetWriteWatch and Move
Memory among many others (Gannon, Jalby, & Gallivan, 1988). The second element is the
Memory Management Registry Keys, the third and fourth elements are the Memory Management
Structures and Memory Protection Constants.
The Windows OS uses two major files system; the File Allocation Table and the Resilient
File system (Vogels, 1999). The FAT is one of the simplest types of file systems. FAT comprises
of three main components;
1.
File system descriptor sector; commonly referred to as boot sector or superblock
2.
File system blocks allocation table
3.
Plain storage space
The Resilient File System is the latest development available for Windows 8 servers. The
new system has a high tolerance for failure which is only achieved due to the new features included
in the new system. The system architecture is different from the normally Windows file system
and is usually organized in B+ tree. The Copy-on –Write is the main feature that causes the
resilience in the RFS. The following features cause the resistance;
1.
All metadata are only modified when they have been copied.
2.
overwriting of data can never occur rather data is stored in a new disk space.
Analysis of an Operating System
7
Applications have several options for the input/output requests they issue. There are
different ways to hand the I/O requests which include;
Synchronous and Asynchronous I/O;
Most I/O operations used by applications are synchronous. This means that the application
thread waits while the device undertakes the data operation and gives back a status code when the
I/O is complete. The program continues and accesses the transferred data directly. In their simplest
form, the Windows Read File and Write File functions are executed synchronously. They complete
the I/O operation before returning control to the caller. Synchronous I/o is usually a default in most
I/O operations.
The Asynchronous I/O gives an application a choice to issue several I/O requests and
continue executing while the device performs the initial I/O operation. I this way the throughput
of an I/o is improved because the application thread continues to work even when the I/O operation
is taking place.
First I/O
It is a type of I/O with a special mechanism that allows the I/O system to skip a generation
of an IRP and instead perform directly the I/O request.
Mapped File I/O and File Caching
The I/O system in conjunction with memory manager produces the mapped file I/O jointly
hence making it an important feature of the I/O system. The mapped file I/O system refers to the
ability that an application has to view data that has been stored on disk as part of a process’s virtual
memory.
Analysis of an Operating System
8
Scatter/ Gather I/O
This is another type of a special kind of high- performance I/O that Windows O/S can
support. These functions allow an application to send an instruction of a single read or write from
not a single buffer in virtual memory to a contiguous area of a file on disk rather of issuing a
separate I/O request for each buffer. Scatter/gather I/O is used only when the file has been opened
for non-cached I/O, the user buffers being used have to be page-aligned, and the I/O’s must be
asynchronous. Furthermore, if the I/O is aligned to a mass storage device, the I/O must be aligned
on a device sector boundary and should be of a length that is a multiple of the sector size.
I/O Requests Packets
The IRP is the place where the I/O system stores information that it requires processing an
I/O request. An IRP consists of two parts; the fixed header and one or more stack locations. The
fixed header contains information such as the type and size of the request while the stack location
contains the codes and function-specific parameters.
The following are the main programming interface that Windows O/S works under;
Window controls;
Windows controls refer interface elements that are work together with another window so
that the user can interact with the application. The other window can be either a client window or
dialog box. Although the window controls are supported by all versions of Windows some later
versions are not supported by the earlier versions due to the evolution that has occurred over time.
A user should use Windows when the user wants to create a traditional UI for an unmanaged
Windows-based application that is used on a wide range of Windows versions.
Analysis of an Operating System
9
Visual styles
These refer to the specifications for the appearance of controls. A visual style determines
the overall appearance of controls hence enabling software developers to align the visual interface
of the existing controls to run in line with the appearance of an application. Visual Styles are used
to change the appearance of the standard Windows controls and common controls, so that look
like UI application.
Windows Ribbon Framework
It is Window- based application that contains a wide variety of presentation command
systems. The Windows Ribbon Framework is made up of a ribbon command bar that displays the
major features of an application via a series of tabs that open up at the top of the application
window. The Windows Ribbon framework is used when the user needs to implement a command
UI that acts as an alternative to the existing menus, toolbars and task panes of traditional Window
applications.
Windows Animation Manager
This interface provides a powerful animation engine and a standardized programmatic
interface that enables it to support the animation of UI elements. The interface simplifies the
maintenance and development of UI animation sequence and enables developers to implement UI
animations that are reliable.
The Windows Animation Manager is used when the user wants to add animation sequences
to the Windows- based application.
Analysis of an Operating System
10
Desktop Window Manager
The DWM mainly plays the role of supporting the desktop composition. The desktop
composition is a feature introduced in Windows Vista. DWM enables windows to have visual
effects. DWM exposes an API for controlling a wide range of visual effects related to desktop
composition. The DWM is recommendable for a user who wants to improve the appearance of the
desktop through the use of animation and visual effects.
Advantages of the Windows OS
1.
Ease of use; the progressive improvements of the Windows has made the user of an earlier
version of Windows find the modern version easier to use and work with. This is the main reason
Windows users usually are reluctant to switch to other forms of operating systems.
2.
Availability; the Windows OS software is easily available in wide selections to choose from.
It is mostly likely for a user to find a Windows version suitable to run an application in a business
setting. This has led to the dominance of windows in the Market.
3.
Support for new hardware; when building applications, all hardware developers put into
considerations the recent versions of Windows and make sure that the windows are compatible
with their hardware.
4.
Backward compatibility; older programs used in later versions of Windows can be used with
new versions of Windows hence a user can switch to the newer version without necessarily losing
the old programs.
Analysis of an Operating System
11
Disadvantages of Windows OS
1. High resource requirements; Microsoft, who develop Windows require its customers to invest
in the hardware. Windows need a faster processor, more internal memory, and a larger hard disk.
2.
Poor security; though the most used OS Windows still pose a threat due to its weak security
when compared to other OS. Therefore, Windows can be easily hijacked leading to it being used
to distribute spam.
3. Virus susceptibility; Windows can easily be attacked by viruses since all the computer viruses
target the Windows OS.
Analysis of an Operating System
12
References:
1. Gannon, D., Jalby, W., & Gallivan, K. (1988). Strategies for cache and local memory
management by global program transformation. In Supercomputing (pp. 229-254).
Springer Berlin Heidelberg.
2. Hansen, P. B. (1973). Operating system principles. Prentice-Hall, Inc..
3. Verissimo, E. S., Valentin, G., Pagnano, M. A., Donaires, O. S., & Miranda, V. L.
(1998). U.S. Patent No. 5,841,654. Washington, DC: U.S. Patent and Trademark
Office.
4. Vogels, W. (1999, December). File system usage in Windows NT 4.0. In ACM SIGOPS
Operating Systems Review (Vol. 33, No. 5, pp. 93-109). ACM.
5. Weisshaar, B. P., Kolnick, F. C., Kun, A. I., & Mansfield, B. M. (1987). U.S. Patent
No. 4,694,396. Washington, DC: U.S. Patent and Trademark Office.
Purchase answer to see full
attachment