Mobile Computing
Dr. Mohammed Fadhil
How operating system works ?
Desktop , TV , Laptop and smartphone
OPERATING SYSTEMS
An operating system is the set of programs that, after being initially loaded into a computer by a
boot program, controls all the other programs in a computer. It also manages a computer’s
internal workings – its memory, processors, internal and external devices, the file system, etc.
Operating systems are designed to make best use of a computer’s resources. PCs, laptops,
virtual machines, servers, and tablets all use an operating system. But most other devices containing
a (small) computer use an operating system as well: a mobile phone, a network router, a car, a
television, or sometimes even a washing machine.
OPERATING SYSTEMS (CONT.)
Operating systems provide an abstraction layer between (virtualized or physical) hardware and
software applications. All Low level hardware management like process management, memory
management, interrupt management, multi user management, file locking, and file sharing are all
handled by the operating system.
The most popular operating systems running on servers today are Microsoft Windows, Linux, and
UNIX. On end user devices, Windows, Linux, Mac OS X, and mobile operating systems iOS and
Android are popular.
OPERATING SYSTEMS (CONT.)
An operating system basically performs two operations:
1. It enables multiple users, multiple processes, and multiple
applications to run together on a single piece of hardware.
2. It hides the technical complexities of the underlying hardware from
the applications running on top of the operating system.
OPERATING SYSTEMS (CONT.)
The kernel is the heart of an operating system. It starts and stops
programs, manages the file system, and performs other so called "low
level" tasks that most programs need. And, perhaps most importantly,
the kernel schedules access to hardware to avoid conflicts if two
programs try to access the same resource or device simultaneously.
OPERATING SYSTEMS (CONT.)
Drivers are small applications that connect specific hardware devices,
like a printer of a network card, to the kernel.
Utilities are applications that are considered part of the operating
system, like user interfaces (text-based shells and GUIs), installation
and configuration tools, logging tools, editors, system update
processes, and web browsers.
OPERATING SYSTEMS (CONT.)
Applications consist of one or more processes that communicate
with the operating system using system calls that are invoked through
Application Programming Interfaces (APIs).
PROCESS IN MEMORY
A process is an instance of a program in execution.
• Process memory is divided into four sections as shown in the figure:
• The text section comprises the compiled program code.
• The data section stores global and static variables, allocated and initialized prior to
executing main.
• The heap is used for dynamic memory allocation, and is managed via calls to new,
delete, malloc, free, etc.
• The stack is used for local variables. Space on the stack is reserved for local
variables when they are declared, and the space is freed up when the variables go
out of scope.
• Note that the stack and the heap start at opposite ends of the process's free space and
grow towards each other. If they should ever meet, then either a stack overflow error
will occur, or else a call to new or malloc will fail due to insufficient memory
available.
• When processes are swapped out of memory and later restored, additional information
must also be stored and restored. Key among them are the program counter and the value of
all program registers. A process in memory
PROCESS SCHEDULING
In most computer systems, a large number of multiple
processes are running simultaneously, while each CPU
core is physically only capable of running one
process at a certain time.
Operating systems create the illusion of multiple running processes in parallel by scheduling
each process to run only during a short time frame.
SOME REQUIREMENTS FOR SUCCESSFUL MOBILE OS
• Easy and consistent for app developers
• Responsive, fast and efficient
• Secure
• Run with limited RAM
Evolution of Mobile Hardware
From “Brick” to “Slick”
Evolution of Mobile
Functionality/Software
Why is Mobile Interesting
• Big
– 5.2bn mobile phone subscriptions
• vs. 4.2bn people with toothbrush
• On-hand
– For 91% of the population the device is only an arm’s length
away (24/7)
– Users look at their mobile device 150x/day on average
• Individual
– 60% of married people will not share their mobile with spouse.
How is Mobile Software Different
Desktop software is not suited for mobile
Higher heterogeneity
Desktop world for developers is quite homogeneous
Initially: problem of device fragmentation
“Mobile device/OS fragmentation is a phenomenon that occurs when some mobile
users are running older versions of an operating system, while other users are
running newer versions.”
Recently: shift towards platform fragmentation
iOS, Android, bada, Blackberry, Win Phone 7, Symbian, J2ME/JavaFX, WebOS,
Win Mobile, OpenMoko, LiMo.
CHARACTERISTICS
Different usage context
Limited attention time span: 4 seconds
Inherent context factors
Mobility (constant change of position)
Device capabilities (CPU, battery, screen size)
Operator plan and communication costs
Interaction possibilities
CHARACTERISTICS
Different market rules:
Much shorter product lifecycles
With much shorter time-to-market
More difficult user attraction: a lost user is very difficult to win back
Different product distribution:
Mostly centralised application stores: The “Google play, App Store, Amazon
Appstore and windows store”
Different business models:
Different price policies (Android: free apps)
Different revenue channels (ads, subscriptions and one time purchase)
Different payment methods (operator billing and payment cards)
CHARACTERISTICS
Different interaction possibilities / user experience
Traditional “desktop devices” cannot be assumed:
No mouse, full keyboard, large screen or unlimited power supply.
Instead
Multipoint-touch
Gestures and motion detection
Sensors (acceleration, tilt, GPS, compass)
Haptic feedback
STT/TTS
Camera (face detection/recognition)
EASY AND CONSISTENT FOR APP DEVELOPERS
• Apps attract users and user attract apps
• Inconsistent hardware
o Small Screen, Large Screen, keyboard, touchscreen 1MP camera, 10MP
camera, 600Mhz single core - 1GHZ quad core
• Multiple OS versions