Moblie Operating System: Mittal Vishal
Moblie Operating System: Mittal Vishal
PIET
MITTAL VISHAL
[MOBLIE OPERATING
SYSTEM]
[Case study on the workings of a Mobile Operating system. Including topics like
History, Process Management, File management, I/O Management, Memory
Management, Security an etc.]
MOBILE OPERATING SYSTEM
Contents
Contents..................................................................................................................... 2
Mobile operating system............................................................................................3
History........................................................................................................................6
1 The History of Symbian........................................................................................6
Process management.................................................................................................8
2 Processes and Threads in Symbian OS.................................................................9
2.2 Processes.................................................................................................... 11
For hardware functions such as input and output and memory allocation, the operating
system acts as an intermediary between application programs and the computer
hardware, although the application code is usually executed directly by the hardware
MOBILE OPERATING SYSTEM
Operating systems are found on almost any device that contains a computer—from
cellular phones (MOBILE PHONES) and video game consoles to supercomputers and
web servers.
A mobile phone (also called mobile, cellular phone, cell phone or handphone) is an
electronic device used for full duplex two-way radio telecommunications over a cellular
network of base stations known as cell sites. Mobile phones differ from cordless
telephones, which only offer telephone service within limited range through a single
base station attached to a fixed land line, for example within a home or an office. Low-
end mobile phones are often referred to as feature phones, whereas high-end mobile
phones that offer more advanced computing ability are referred to as smartphones.
Operating systems are two-sided platforms, bringing consumers (the first side) and
program developers (the second side) together in a single market.
As we all know that the boom in cell phone industry has prompted big technology giants
like Apple, Nokia, Google, RIM(Research In Motion) to go head on with each other to
capture a bigger market share. So let’s, at first sort them out and pick out the ones we
would be interested in.
Now we all know there are basically a handful of mobile operating systems accepted by
the general public worldwide. The popular ones are iOS by Apple, Android by
Google(Open Handset Alliance), Symbian by Nokia and RIM’s Blackberry OS. There
are other Mobile Operating systems available too like the Web OS by Palm and
Windows Mobile 6.5 but they really don’t catch a good market share worldwide to
qualify as popular Mobile Operating Systems. Also as Microsoft have declared the
launch of their new Windows Mobile 7 platform, the older versions or Windows Mobile
are just considered as a dying breed. HP on acquiring Palm and Web OS is still not
clear about what plans they have for Web OS.
As this case study focuses on the working of the Mobile Operating system, we
need a current Mobile operating system that can help us observe the way the
modern Mobile Operating system work.
So, for the purpose of this case study we shall consider Symbian OS, as it is
offered to the public on open public license. Also Symbian has the largest share
in most markets worldwide and is one of the best example of a mobile operating
system catering to the masses.
History
The roots of Symbian and the Symbian Foundation stretch back to the very start of
mobile computing, when smart minds came together around the idea of finding the best
ways to mobilize computing—to help people do things better and faster.
From its earliest days, the idea that became Symbian was all about collaboration—
starting with David Potter's early 1980s designs of games and office productivity
software for Sinclair's personal computers, a partnership that launched the "Psion"
name. Those programs helped give birth in 1984 to the Psion Organizer, the world's first
MOBILE OPERATING SYSTEM
The collaborative support from the industry for the growing power of the Psion software
base led to the historic formation in 1998 of Symbian, a joint venture between Psion and
phone manufacturers Ericsson, Motorola, and Nokia. Over the next few years Symbian
helped bring forth the explosion of mobile device innovation—with Symbian software at
the base of more than 100 million phones by 2006.
In 2008, the next step of Symbian evolution took place, with Nokia purchasing all
Symbian assets and starting the software down the path to open source.
1987: Psion begins development of its "SIBO" ("SIxteen Bit Organiser") family of
devices and its own new multitasking operating system called EPOC to run its
PDA products.
1989: First EPOC16 devices, the MC400 and MC200, ship with a primarily 1-bit,
keyboard-operated graphical interface.
MOBILE OPERATING SYSTEM
1997: The first version of EPOC32 Release 1 appeared on the Psion Series 5
ROM v1.0. The EPOC32 operating system, at the time simply referred to as
EPOC, was later renamed Symbian OS. EPOC32 was a pre-emptive
multitasking, single user operating system with memory protection, which
encourages the application developer to separate their program into an engine
and an interface.
1998: In June Psion Software became Symbian, a major joint venture between
Psion and phone manufacturers Ericsson, Motorola, and Nokia. As of Release 6,
EPOC became known simply as Symbian OS.
1999: The Psion Series 5mx, Psion Series 7, Psion Revo, Diamond Mako, Psion
netBook, netPad, GeoFox One, and Ericsson MC218 were released using ER5.
A phone project was announced at CeBIT, the Phillips Illium/Accent, but did not
achieve a commercial release.
2000: The first phone, the Ericsson R380 was released using ER5u in
November.
2001: The first 'open' Symbian OS phone, the Nokia 9210 Communicator, was
released in June 2001. Bluetooth support was added. Almost 500,000 Symbian
phones were shipped in 2001, rising to 2.1 million the following year.
2003: First shipment of Symbian OS 7.0 and 7.0s, an important Symbian release
which appeared with all contemporary user interfaces including UIQ (Sony
Ericsson P800, P900, P910, Motorola A925, A1000), Series 80 (Nokia 9300,
9500), Series 90 (Nokia 7710), Series 60 (Nokia 3230, 6260, 6600, 6670, 7610)
as well as several FOMA phones in Japan. It also added EDGE support and
IPv6. One million Symbian phones were shipped in Q1 2003, with the rate
increasing to one million a month by the end of 2003.
Process management
MOBILE OPERATING SYSTEM
Nanothreads run in privileged mode and need a stack to store their runtime
environment data. Nanothreads cannot run in user mode. This fact means that the
operating system can keep close, tight control over each one. Each nanothread
needs a very minimal set of data to run: basically, the location of its stack and
how big that stack is. The operating system keeps control of everything else, e.g.,
the code each thread uses, and stores a thread’s context on its runtime stack.
Nanothreads have thread states like processes have states. The model used by
the Symbian OS nanokernel adds a few states to the basic model. In addition to
the basic states, nanothreads can be in the following states:
DFC Wait. A thread in this state is waiting for a delayed function call or
DFC to be added to the DFC queue. DFCs are used in device driver
implementation. They represent calls to the kernel that can be queued and
scheduled for execution by the Symbian OS kernel layer.
Developers that do this must also implement how states are transitioned to
and from their extended implementations.
Symbian OS threads build upon nanothreads; the kernel adds support beyond
what the nanokernel provides. User mode threads that are used for standard
applications are implemented by Symbian OS threads. Each Symbian OS thread
contains a nanothread and adds its own runtime stack to the stack the nanothread
uses. Symbian OS threads can operate in kernel mode via system calls. Symbian
OS also add exception handling and exit signaling to the implementation.
Symbian OS threads implement their own set of states on top of the
nanothread implementation. Because Symbian OS threads add some functionality
to the minimal nanothread implementation, the new states reflect the new ideas
built into Symbian OS threads. Symbian OS adds seven new states that Symbian
OS threads can be in, focused on special blocking conditions that can happen to a
Symbian OS thread. These special states include waiting and suspending on (normal)
semaphores, mutex variables and condition variables. Remember that,
because of the implementation of Symbian OS threads on top of nanothreads,
these states are implemented in terms of nanothread states, mostly by using the
suspended nanothread state in various ways.
MOBILE OPERATING SYSTEM
2.2 Processes
If active objects are just Symbian OS threads, one can ask what the advantage
the operating system gains from this simplified thread model. The key to active
objects is in scheduling. While waiting for events, all active objects reside within
a single process and can act as a single thread to the system. The kernel does not
need to continually check each active object to see if it can be unblocked. Active
objects in a single process, therefore, can be coordinated by a single scheduler
implemented in a single thread. By combining code that would otherwise be
implemented as multiple threads into one thread, by building fixed entry points
into the code, and by using a single scheduler to coordinate their execution,
active
objects form an efficient and lightweight version of standard threads.
MOBILE OPERATING SYSTEM
It is important to realize where active objects fit into the Symbian OS process
structure. When a conventional thread makes a system call that blocks its execution
while in the waiting state, the operating system still needs to check the thread.
Between context switches, the operating system will spend time checking blocked
processes in the wait state, determining if any needs to move to the ready state.
Active objects place themselves in the wait state and wait for a specific event.
Therefore, the operating system does not need to check them but moves them
when their specific event has been triggered. The result is less thread checking
and faster performance.