Hardware Software Systems And Networks Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

The purpose of this report is to help reader to understand mobile application development of android. The issues on android challenges and discuss the differences on the application architecture on android comparing the generation. Other than that, this report research & investigate areas relating to process control management of windows. Beside, the types of scheduling, handling of processes or threads and internal systems structure will be covered as well on this report.

2.0 Introduction

Nowadays, Android is the world's most popular mobile platform. Android gives you everything you need to build best-in-class app experiences. Therefore, on this report we are going to helps the reader to understand more about mobile application development of android. Besides, research and investigate the process control management of operation system help us to understand more deep into the system structure and handling of processes. Therefore, it can help us to efficient use of the windows operation system.

3.0 Chapters

The Chapter that will be coved in this report:

Process Control Management : Process states, process scheduling

CPU Scheduling : Type of Scheduling, preemptive, non-preemptive, algorithm

Operating Systems and Utility Programs : User Interface , Operating System Function

4.0 History of Android

Android, Inc. was founded by Andy Rubin, Nick Sears, Rich Miner and Chris in Palo Alto, California in October 2003 (Ryanlow2 2013). After that, Google acquired Android Inc. on August 17, 2005, making it a wholly owned subsidiary of Google (Ryanlow2 2013).. Android was unveiled as its first product, a mobile device platform built on the Linux kernel version 2.6 (Ryanlow2 2013). On October 22, 2008 HTC released the first phone HTC Dream that available to run Android OS (Operating System) (Ryanlow2 2013).

4.1 Mobile Application Development of Android

Before start to development of Android application, we need to development set up. It is required:

1. Download the Android SDK from the official android developer website: http://developer.android.com

2. Install the ADT plug-in for Eclipse (if you will use Eclipse IDE)

3. Download the latest SDK tools and platforms using the SDK Manager,

4.1.1 Creating an Android Project with Eclipse

Figure 1.png

Figure 1.0

To create a new project with Eclipse, Click "New" button in the toolbar.

In the window that appears as "Figure 1.0" from above, open the Android folder and select Android Application Project and click Next.

Fill in the form that appears as Table 1.0 Below:

Table 1.0 Description

Application Name

The name of your application that appears to users

Project Name

The name of your project

Package Name

The package name of your project

Minimum Required SDK

The lowest version of Android that your app supports

Target SDK

Indicates the highest version of Android

Compile With

The platform version against which you will compile your apps


The Android UI style to apply your application

On the next screen to configure the project and leave the default selection by click Next.

The next screen can help you create a launcher icon for your app, click Next.

Select a template from which to begin building your application. Select Blank Activity and Click Next

Leave all the details for the activity in default state and click Finish (Android 2013).

4.2 Android's Challenges

4.2.1 Reduce Fragmentation

Android's biggest problem is the inability of smart phones to stay current on software. Wireless carriers and phone makers and are slow to blend Google's updates with their own software modifications, therefore even the latest phones are still using a version of Android that became outdated few months ago (PCWorld 2011).

4.2.2 Contain Malware

As Android becomes more and more popular, it is going to become a bigger target for malware, Google's only strategy against malicious applications is to remove them from the Android's Market (PCWorld 2011).

4.2.3 Dependence of Android on Google

On August 17, 2005, Google bought over Android Inc. for $US50 million (estimated) (ROSOFF 2011).Google also key employees of Android Inc (Softpanorama.info 2013). Google marketed the android platform to carriers and handset makers on the promise of providing a flexible, upgradable system (ROSOFF 2011). Therefore Android is very dependent on Google.

4.2.4 It it "there" has the methods to outcome this dependent?

No, there is because Google Inc. is a big and good enough company to support the Android projects and development. Google has huge amount of capital to invest the Android developer teams to research and provide the best user-experience of mobile platform. In fact, Android now has become the world's most popular mobile platform (Developer.android 2013).

4.3 The Generations of Android

The Table 2.0 below is comparing about the generation on Android (Visual.ly 2013).




12 Nov 2007

Beta (SDK)

Android Beta SDK Released

23 Sep 2008


Featured on HTC Dream (G1)

9 Feb 2009

1.1 (Initial release)

Android 1.1 update released for T-Mobile G1

30 April 2009

1.5 (Cupcake)

based on Linux kernel 2.6.27

-Camcorder support to record and watch videos

-Ability to easily upload images and videos to Picasa and YouTube

-A number of Bluetooth improvements

15 Sep 2009

1.6 (Donut)

based on Linux kernel 2.6.29

-New Camera, camcorder and photo gallery interfaces

-Improved voice search and search experience

-Support for higher screen resolutions

26 Oct 2009

2.0 (Éclair)

based on Linux kernel 2.6.29

- Improved UI

-Live wallpapers

-Improved virtual keyboard

3 Dec 2009

2.0.1 (SDK)

SDK Released.

12 Jan 2010

2.1 (SDK)

SDK Released.

20 May 2010

2.2 (Froyo)

based on Linux kernel 2.6.32

-Camera control improvements with more on-screen buttons

-New home screen tips widget

-Tethering with up to 8 Wi-Fi hotspots

6 Dec 2010

2.3 (Gingerbread)

based on Linux kernel 2.6.35

-New download manager

-Near-Field Communication (NFC) support to read NFC tags

-One-touch word selection and copy/paste

22 Feb 2011

2.3.3 (SDK)

SDK Released.

22 Feb 2011

3.0 (Honeycomb)

based on Linux kernel 2.6.36

-New UI optimized for tablets include a new system bar

-Improved text selection, copy and paste

-Multi-core processor support

10 May 2011

3.1 (SDK)

SDK Released.

18 Jul 2011

3.2 (SDK)

SDK Released.

19 Oct 2011

4.0 (Ice Cream Sandwich)

based on Linux kernel 3.0.1

-Refined UI

-Resizable Widgets

-Recent Apps Selection

-Lock Screen Actions

9 Jul 2012

4.1(Jelly Bean)

based on Linux kernel 3.0.31

- Improved touch response and transitions

-Google Wallet

-Instant review of taken photos

29 Oct 2012

4.2 (Jelly Bean)

-Multiple users for tablets

-Beam photos and videos

-Photo Sphere to take 360 degree images

Table 2.0 Comparison of Android Generation

5.0 Introduction of Microsoft and Windows

In 1975, Bill Gates and Paul Allen form a partnership called Microsoft. "Like most start-ups, Microsoft begins small, but has a huge vision-a computer on every desktop and in every home" (Microsoft 1975). In 1985, Microsoft initial announcement and ship Windows 1.0 Operation System. Currently, Windows OS are done many improvement and new version released such as Windows XP, Windows 7 and Window 8.

5.1 Windows Process and Thread Objects

Windows makes use of two types of process-related objects, there are processes and threads. Each Windows process is represented by an object whose general structure is shown in Figure 2.0 below. Each process is defined by a number of actions and encapsulates a number of attributes, or services, that it may perform (William 2005, p.18)


Figure 2.0

A Windows process must contain at least one thread to execute. The thread attribute value is derived from the process attribute value. Example, the thread processor affinity is the set of processors in a multiprocessor system that may execute this thread; this set is equal to or a subset of the process processor affinity (William 2005, p.20). If that one of the attributes of a thread objects is a context. This information will enable threads to be suspended and resumed. Additionally, it is possible to alter the behavior of a thread by altering its context when it is suspended (William 2005, p.20).

5.2 Windows OS's Internal Systems Structure

5.2.1 I/O operations

A running program may require I/O, which may involve a file or an I/O device. For efficiency and protection, users usually cannot control I/O devices directly (Wiley 2013, p.40).

5.2.2 User Interface

Almost all OS have a user interface. Most commonly, a Graphical User Interface (GUI) is used. A GUI provides a desktop metaphor where the mouse is moved to position its pointer on images, on the screen (the desktop) that represent programs, directories, and system function (Wiley 2013, p.41).

5.2.3 Program Execution

A system must be able to run that program and load a program into memory. Therefore the program must be able to end its execution, either abnormally or normally (Wiley 2013, p.40).

5.3 Types of Scheduling

5.3.1 Long Term Scheduling

Long term scheduling is performed when a new process is created (techgeek.in 2010).

5.3.2 Medium-term Scheduling

Medium-term scheduling is a part of the swapping function (techgeek.in 2010).

5.3.3 Short-term Scheduling

Short-term scheduler is also called as dispatcher. Short-term scheduler is invoked whenever an event occurs, that may lead to the interruption of the current running process (techgeek.in 2010).

5.3.4 Preemptive Scheduling

In preemptive mode, the currently running process task may be interrupted and moved to the ready State by the OS (techgeek.in 2010).

5.3.5 Non-preemptive Scheduling

In non-preemptive mode, once if a process enters into running state, it will continues to execute until it terminates or blocks itself to wait for Input/Output or by requesting some OS service (techgeek.in 2010).

Type of scheduling algorithms



First-come, first-served scheduling (FCFS)

Better for long processes

No starvation

Short process behind long process results in lower CPU utilization.

Shortest Job First Scheduling (SJF)

It gives superior turnaround time performance to shortest 

Starvation may be possible for the longer processes.

Non-preemptive priority

Good response for the highest priority processes.

Starvation may be possible for the lowest priority processes.

Preemptive priority

Very good response for the highest priority process over non-preemptive version of it.

Starvation may be possible for the lowest priority processes.


Fair treatment for all the processes.

Effective in a general-purpose, times-sharing system or transaction-processing system.

Care must be taken in choosing quantum value.

Throughput is low if time quantum is too small.

5.4 Advantages & Disadvantages of Scheduling algorithms

The Table 3.0 below is comparing about the Advantages & Disadvantages of Scheduling algorithms (techgeek.in 2010).

Table 3.0 Advantages & Disadvantages of scheduling algorithms

5.5 The Best and Worst Scheduling Algorithm

Each scheduling algorithm has different advantages and disadvantage. For general purpose OS will use priority based, preemptive and round robin. Real Time OS will use priority, no preemption (Breecher 2013). According to Microsoft, preemptive scheduling which Windows DOES NOT do because "Between any two application instructions, N instructions may execute in another application's context, where N is greater than or equal to zero" (Microsoft 2013). A non-preemptive system, such as Windows, will guarantee that this number N will always be zero (Microsoft 2013).

6.0 Conclusion

To bringing the better user-experience and performance to the users, there is still a lot of improvement and enhancement that can be done by the Android developers. There are different kinds of scheduling and each of it contains its advantages and disadvantages.

7.0 Appendices