1. Introduction:Mobile phones becomes a basic necessity of our digital world.
First computer and now smart mobile phones revolutionize our every aspect oflife. Modern smartphones are closer to handheld computers that enable us tosend emails, play games, watch news, make video calls, and can perform bankingtasks and much more besides. Mobile operating system is a software whichcontrols and drive all the components of a mobile hardware A mobile operatingsystem (mobile OS) is an OS built exclusively for a mobile device such as asmartphone, personal digital assistant (PDA), tablet or other embedded mobileOS. Now a day’s most popular mobile operating systems are Android and iOS 1.1 Android VS iOSAndroid andiOS are the two top most leading Mobile operating system in the world.
Androidis launched by Google Inc. initial release was on 23rd September2008(9 years ago) basically designed for touch screen mobiles devices laterthan also developed for Android TV, android auto and Android wear, iOS islaunched by Apple Inc. initial release of iOS was on 29th June2007(10 years ago) for iPhone, iPad, iPod. Both Operating systems are much fast,secure and reliable.Now a days 99% mobile devices are powered by android and iOSso the market is also occupied by these two of Operating Systems. According torecent stats 85% market share is occupied by Google Android 14% by Apple IPhoneiOS and 1% by others mobile operating system.
According to official Pressreleases of Google and Apple which states that over 2 billion android devicesare monthly active and over one billion iOS devices active worldwide.In this paper we are going to provide a comparison betweenandroid and iOS at operating systems level. Such that how things are handled inthese two Operating systems 1.1 Kernel:Both Androidand iOS are forked from existing Operating systems.
Android is based on Linuxkernel LTS (long-term support) branches, written in java, C and C++. Sinceandroid run on a modified Linux kernel it have a monolithic style of kernel. Androidis an open source mobile operating system by having anOpen Source software program, Google allow developers to alter large amounts ofthe code to their own preference.On the otherhand iOS is based on Darwin (BSD) and macOS forked from UNIX operating system.Written in C, C++, objective-C and swift.
iOS have a hybrid style of kernel(XNU) containing features of both micro & monolithic kernels. iOS is aclosed source mobile OS apple don’t allow developersto change anything that deals with the operating system itself2.Process & thread Management:Table 1:process and thread management Android iOS Android iOS Single thread of execution Yes Yes Visible process Yes Yes Separate process for app components Yes Yes Background process Yes yes Separate Threads for app components Yes Yes Using of threads Yes Yes Controlling of process Yes No Inter Process communication (IPC) Yes Yes Process shutdown by OS Yes yes Remote Procedure calls RPC for IPC Yes No foreground Process Yes yes URL scheme for IPC No yes Process States Yes Yes Perform I/o operation Yes yes When anapplication component starts and the application does not have any othercomponents running, both operating systems starts a new process for theapplication with a single thread of execution.
In both OS By default allcomponents of the same application run in the same process and thread (calledthe “main” thread) in android main thread is called UI thread. Eachprocess is made up of one or more thread which run dependently or independentlyand every thread use the same virtual memory and address space of the process.In android all components of the same application run in the same process andmost applications should not change this if to control which process a certaincomponent belongs to, this can be done in manifest file. If a new application needto start and there is not enough space in the memory then both the OS androidand iOS forcefully shut down the process according to their importance tocreate space for new process. There is a hierarchy of processes to determinewhich process will be killed first or last while system is low on memory, inandroid foreground process, visible process, service process, backgroundprocess & empty process.
In iOS the hierarchy is same like this foregroundprocesses, background processes, suspended processes & not runningprocesses, the list is based on “importance hierarchy” it mean importance of first process is highso it will be killed at last while last one killed first. There are differentstates of a process, in android states are created, running, Paused, stopped& killed, in iOS states of process is Not running, active, inactive, background& suspended. Android provides a proper mechanism for inter processcommunication IPC through RPCs Remote procedure calls, in which a method iscalled by an activity or other application component, but executed remotely (inanother process), with any result returned back to the caller. In iOS twotechniques are used for IPC which is Grand central dispatch and pasteboard. Inboth Operating systems processes can perform I/O operations.3. Memory ManagementMemorymanagement is a very important aspect of every modern operating system. Mobileoperating systems like android and iOS handle and manage memory veryefficiently.
Android iOS Virtual memory Yes Yes Page size 4kb 4-16kb ARC No Yes Garbage collector Yes No Generational memory heap Yes No Eden space Yes no Survivor space Yes No Tenured space Yes no Permanent space Yes No Autorealease pools No yes Auto deallocation No Yes Factory method No yes GC of java Runtime – ARC of mac OS X – Compile time Memory share Yes No Voluntarily free up memory No yes 3.1 Android Memory ManagementAndroid usememory mapping and paging to handle memory problems. Page size is of 4kb. Anyapplication old or new can’t be removed from memory and remain in the main memoryuntil that application releases the object references it holds and making theoccupied memory available for Garbage Collector (GC) to Clean. Inside a managedmemory environment like in android system keep track of its memory allocation.
Thetechnique of reclaiming unused memory from application after determining that apiece of memory is no longer used by any application is called garbage cleaning.There are two goals of a GC. Finding those type of data object which are not accessedin future and reclaiming the memory used by those data objects. Android memoryis generational type of memory. In generational memory there are three type ofgeneration young generation, old generation and permanent generation.
The newlycreated object stays in young generation. When an object lives long then thatobject transfer to older generation. Young and old generation are furtherdivided into to Eden and survivor space generation, tenured generation. Permanentgeneration is a generation where classes of java and method object resides init. GC of java works at runtime. In generational memory every generation has itown upper limit that when will garbage collector start and how long it remainactive for cleaning and how many data object remain in a generation.
3.2 iOS memory managementiOS supportfull time virtual memory environment. Page size is same as android 4kb but somehardware support 16kb of page size. MAC OSX uses garbage collector of objectiveC rather than iOS based on MAC OSX it don’t use GC for memory cleaning. It usesanother technique which is known as Automatic Reference counter (ARC). The mainmethods of ARC are retain and release and these methods are inserted in code atcompile time. In ARC when an object is created or copy of object is created it’sretain count become 1.
When any other object shows an ownership interest in aobject its retain count increases to 2 and whenever owner releases it ownershipits retain count reduced by 1. When the retain count become zero the object isdestroyed. There is a auto release pool when an object is placed in this thenthat object is release after the program execution exits beyond the scope.
Thereis a method auto deallocation when retain count of a object becomes zero thedeallocation method is call to reclaim the resource. iOS applications voluntarilyfree up memory for another applications. 4.
Virtual MemoryAndroid andiOS both support full time virtual memory environment comparison of both OSvirtual memory is give below Android iOS Virtual memory support Yes Yes Memory mapping Yes Yes Paging Yes Yes Page size 4kb 4-16 kb Virtual address Yes Yes Physical address Yes Yes Swapping No Yes Logical address space Yes Yes Thrashing No yes Memory management unit MMU Yes yes 4.1 Android Virtual memoryAndroidsupport virtual memory and use memory mapping and paging to implement virtualmemory. Page size is of 4 kb. Two types of addresses are generated in virtualmemory one is physical address and other is virtual address. When system is lowon memory android kill the apps according to priorities but don’t supportswapping of apps to secondary memory from main memory. In android every processremains in its own separate logical address.4.
2 iOS virtual memory iOS alsosupport virtual memory and use memory mapping and paging to implement Virtual Memory.Page size is of 4kb but in some hardware support 16kb page size. Two type ofaddress are generated in this virtual memory one is physical address and otheris virtual address. When system is low on memory iOS kill the apps according topriorities but also support swapping of apps to secondary memory from mainmemory to free up memory for new apps. In iOS every process remains in its ownseparate logical address.5.Processes and threads Scheduling Android iOS Priority based scheduling Yes yes Normal priority Yes Yes Static & dynamic priority Yes No High priority Yes Yes Real time priority Yes Yes Kernel thread priority No Yes Completely fair scheduler CFS Yes no First in first out FIFO Yes No Round robin Yes Yes Total priority range 0-139 0-127 Lowest to highest priority range 0-39 0-63 System reserved thread priority range – 64-95 Real time priority range 40-139 96-127 5.
1Android schedulingScheduling in android is done according to priorities ofprocess. Priorities defines that which process take how much of the Central ProcessingUnit (CPU) time. The range of priorities are from 0 to 139. There are threetypes of priorities, first one is static priority. This is the default andlowest priority of newly created thread. Second one is the dynamic priority.
Whenprocesses or thread don’t get enough CPU time and they start starving becauseof higher priority thread take all the CPU time then dynamic priority comes toaction. In dynamic priority, priorities of those processes and threads are raisedwhich are starving. It is called dynamic because priorities are keep onchanging (lower and higher) in this. Both static and dynamic priorities rangefrom 0 to 39.
The third priority is Real Time priority in this priority all thereal time processes are scheduled under a scheduling policy. Which are Roundrobin (RR) and First in first out (FIFO). Real time priority weight more thanin comparison to static and dynamic priority. Real time priority range startfrom 40 to 139. In Linux 2.6.
23 a new scheduling policy was introduced that is CompletelyFair Scheduler CFS. In this scheduling policy those process gets CPU which receiveleast CPU so far.