Operating Systems for Small Devices

3
Operating Systems for Small Devices Operating systems for small devices such as mobile phones, tablets, satnavs, and many other portable and embedded machines are optimised for the requirements of the machines that they run on. An example of some of the main operating systems for mobile devices are the Windows Phone operating system, iOS for Apple iPhone models, Symbian for Nokia mobile phones and, Blackberry OS for Blackberry phones. These are proprietary operating systems that are optimised for the features of the phones they are made specifically to run on, compared to the popular Android operating system which is used by many brands of mobiles 1 . Linuxbased operating systems are also widely used for other systems such as PDA’s and other consumerelectronic products, as well as smaller embedded systems, due to it’s opensource nature and low cost 2 . The main difference between the operating systems running on small and embedded devices compared to PCs are the fact that they are run on resource limited systems, which means they need to be efficient, and therefore specialised. To make the operating system as efficient as possible in terms of speed and determinism, it is often written in assembly language to maximise it’s responsiveness. As embedded systems are generally dedicated to carrying out a small selection of tasks, the hardware tends to be very specific for the systems needs 6 . This is generally as users tend to expect an almost immediate response to any requests, and is especially important in actual realtime systems. These systems use real time operating systems, which reduces the jitter the response time of tasks as much as possible. These operating systems manage this with an advanced scheduling system, with minimal threadswitching and interrupt delays 7 . The dimensions of the hardware of these device are generally much smaller, which means there are size and weight restrictions for the components 3 . Due to their small size, these devices tend to use microprocessors which combine all of the different functionalities of the CPU onto one integrated circuit, reducing the usage and therefore the amount of energy consumed by the system 4 . However, this also reduces the power capabilities of the processor, and so the operating system needs to be as simple and as specialised as possible. There are several architectures that these operating systems use to achieve this 5 the first being cooperative multitasking, which is simply a loop that calls subroutines when a specific event occurs. This is a simple architecture, which maximises response time with no unnecessary code, and is dedicated to the system’s particular tasks. The second type of architecture is preemptive multitasking, or multithreading, whereby a simple block of code switches between threads based on a timer which are conceptually run parallel to each other. The architecture used by the device is generally dependant on its requirements. The use of microprocessors, which reduce the energy consumption of the system, is useful as the devices that these chips are used in tend to be portable, and therefore battery powered. This means that there is limited power available for the CPU usage, so the operating system running the device needs to be as efficient as possible. To reduce the power consumption on devices

Transcript of Operating Systems for Small Devices

Page 1: Operating Systems for Small Devices

Operating Systems for Small Devices

Operating systems for small devices such as mobile phones, tablets, sat­navs, and many otherportable and embedded machines are optimised for the requirements of the machines that theyrun on. An example of some of the main operating systems for mobile devices are the WindowsPhone operating system, iOS for Apple iPhone models, Symbian for Nokia mobile phones and,

Blackberry OS for Blackberry phones. These are proprietary operating systems that areoptimised for the features of the phones they are made specifically to run on, compared to thepopular Android operating system which is used by many brands of mobiles1. Linux­based

operating systems are also widely used for other systems such as PDA’s and otherconsumer­electronic products, as well as smaller embedded systems, due to it’s open­sourcenature and low cost2. The main difference between the operating systems running on small andembedded devices compared to PCs are the fact that they are run on resource limited systems,

which means they need to be efficient, and therefore specialised.

To make the operating system as efficient as possible in terms of speed and determinism, it isoften written in assembly language to maximise it’s responsiveness. As embedded systems aregenerally dedicated to carrying out a small selection of tasks, the hardware tends to be very

specific for the systems needs6. This is generally as users tend to expect an almost immediateresponse to any requests, and is especially important in actual real­time systems. These

systems use real time operating systems, which reduces the jitter ­ the response time of tasks ­as much as possible. These operating systems manage this with an advanced scheduling

system, with minimal thread­switching and interrupt delays7.

The dimensions of the hardware of these device are generally much smaller, which means thereare size and weight restrictions for the components3. Due to their small size, these devices tendto use microprocessors which combine all of the different functionalities of the CPU onto oneintegrated circuit, reducing the usage and therefore the amount of energy consumed by thesystem4 . However, this also reduces the power capabilities of the processor, and so theoperating system needs to be as simple and as specialised as possible. There are severalarchitectures that these operating systems use to achieve this5 ­ the first being co­operative

multitasking, which is simply a loop that calls subroutines when a specific event occurs. This isa simple architecture, which maximises response time with no unnecessary code, and isdedicated to the system’s particular tasks. The second type of architecture is pre­emptivemultitasking, or multi­threading, whereby a simple block of code switches between threads

based on a timer which are ­ conceptually ­ run parallel to each other. The architecture used bythe device is generally dependant on its requirements.

The use of microprocessors, which reduce the energy consumption of the system, is useful asthe devices that these chips are used in tend to be portable, and therefore battery powered. Thismeans that there is limited power available for the CPU usage, so the operating system runningthe device needs to be as efficient as possible. To reduce the power consumption on devices

Page 2: Operating Systems for Small Devices

such as mobile phones whilst they are on standby or not in use, the operating system willunderclock the CPU. This means that it will be modified to run at a slower clock rate than it willnormally run at, and this has many advantages. There is reduced power consumption ­ usefulfor devices running from a limited energy supply such as battery power, which also causes adecrease in heat generation ­ useful for devices with small dimension devices where cooling

systems are limited8.

Another restraint of a small device is the limitation of memory resources ­ ROM & RAM. Thismeans that the operating system for these device must have an efficient way of managing itsmemory. Unlike PCs which have Memory Management Units (MMU), small devices have no

specialised hardware to manage it’s memory, and so must deploy several techniques to do this.Usually, memory is statically allocated for a faster execution time, but one technique that can beused to increase memory is called Bank Switching. This is a technique that is used to extend theamount of memory address locations available for the processor to access by using an externalregister, such as a latch, to switch between address banks. Unlike a virtual memory addressingscheme like the MMU would use, bank switching is run directly by the operating system, rather

than by hardware9. Another technique used to manage memory is the use of a garbagecollection algorithm, which detects objects in memory that are no longer being used by thesystem and discards them. This then frees up memory for new objects which do need to be

used by the current task, or any future tasks10.

The final important aspect of small devices that their operating systems must deal with is it’ssecurity. As the operating system controls the device’s resources, it should also be the one toauthorise access to them. The security of an operating system should include protection of thedevice’s controls and files, and most importantly be secure when connected over a network11.These systems are always vulnerable, so operating systems are always being updated with themost up to date software, to prevent foreign viruses. Firewalls and third party Anti­Virus softwareare generally used to prevent unexpected network access, but the operating system must alsoprotect the resources by authenticating users, and using encryption to store private information

safely12.

References

(All sites accessed 21.03.2013)

1. www.store­orange.co.uk/operating­systems­comparison.html2. www.wikipedia.org/wiki/Embedded_Linux

3.http://www.embedded.com/design/prototyping­and­development/4007255/Choosing­the­best­sy

stem­software­architecture­for­your­wireless­smart­sensor­design­Part­1

4. http://en.wikipedia.org/wiki/Microprocessor

Page 3: Operating Systems for Small Devices

5. www.wikipedia.org/wiki/Embedded_system

6. www.wikipedia.org/wiki/Embedded_operating_system

7. www.wikipedia.org/wiki/Real­time_operating_system

8. www.wikipedia.org/wiki/Underclocking

9. www.wikipedia.org/wiki/Bank_switching

10. www.wikipedia.org/wiki/Garbage_collection_(computer_science)

11. www.edn.com/design/systems­design/4406387/Embedded­Systems­Security

12. www.cs.columbia.edu/~smb/classes/s06­4118/l25.pdf