The innovation of the information technology is growing rapidly day-by-day and we are getting very smart and high efficient electronic devices due to that. Nowadays the operating systems which we are using are more efficient than the past one. The development in the operating system is growing in fast pace and it paves way for many organizations to provide more efficient way of handling the processes. This report discuss about the development of Operating systems for smaller devices like handheld sets, PDAs etc. Also the comparison of these operating systems with the traditional operating systems which is being used in home and in professional purposes. The discussion will portray the memory management, power management, scheduling, support for I/O devices etc. The innovation of symbian OS and Tiny OS grabs the mobile market which challenges the traditional OS market. So this report will also discuss about the creation or idea behind the Symbian and Tiny OS.
An operating system is a set of programs which acts as an interface between the user and the hardware. It is considered as the backbone of the computer as it manages both the software and hardware devices. The operating system provides protection mechanisms. The main services provided by an operating system are:
Memory management (includes main memory, virtual memory, secondary memory, paging and file system)
I/O device management
Process management (includes scheduling, task management, synchronisation, interrupt tasks communication and exception handling)
Multi-user and Multi programming.
The two most popular OS in laptops and desktops are Windows and Linux. Most of the CPUs are not in laptops and desktops. There are many smaller devices such as PDAs, watches, mobiles, ipods, digital cameras, GPS systems, etc which have a CPU. Most of them doesn't recognize the existence of operating systems in these devices. With increase in technology over years the computers have become more compact. With this advancement, operating system is implemented in smaller devices such as PDAs, mobiles, watches, etc. For these devices desktop operating system is not appropriate. The reasons for these are as follows
The desktop operating system occupies too much space which will not be available on the smaller devices.
Power optimization is also a major issue as the small device doesn't have direct power supply. It mostly runs on a battery.
Monolithic kernel feature will not be available and is not modular, configurable, and modifiable and fault tolerant.
Some of the special features might not be available which the smaller device is mainly used for.
It is not designed for mission critical applications.
To overcome these, Real Time operating systems (RTOS) are invented.
The major goals while developing an operating system for smaller devices is:
Small: minimal memory footprint
Open: many interfaces and protocols, open system standards
Modular: easy to integrate custom components
Portable: run on lots of devices
Real-time: support of hard deadlines, bounded interrupts, scheduling, and synchronization
Power consumption: integrated power management
Robustness: fault tolerant, halts, guards, exceptions, CRC
Configurable: adaptable to required functionality
2. Significant issues with regard to development of operating system
2.1 Memory Management
Memory management is one the important issues in developing an operating system, especially for the embedded systems. Memory is one of the scarce resources for the embedded systems. The scarcity of memory is due to the size of the system. Thus an application running in an embedded system should use the memory efficiently. However, the data and code must be stored in the memory for running. Many embedded systems have a very few number of applications running at a time but they have a very little physical memory. All the processes should share the available small amount of memory.
Fig 2a: An embedded OS model
"Within memory management, other sub-functions such as security system management allow for portions of the embedded system sensitive to disruptions that can result in the disabling of the system, to remain secure from unfriendly, or badly written, higher-layer software".
Fig 2b: Kernel Sub-system dependencies
Memory Management in Multiuser and multiprogramming operating systems
In the traditional operating systems memory management deals with the following:
Relocation: For memory management in systems with virtual memory, the program exists at different parts of memory at different times. So the memory management in such cases includes handling the memory references after the relocation
Protection: Protection is very important for memory management. Processes should refer to the addresses in memory with permission.
Sharing: Memory deals with the protection by restricting the addresses to the other processes. It should also deal with the addresses while in sharing where two users use the addresses.
Local Organisation: Programs are generally organised in modules. These modules are generally shared by different processes. These should be well organised according to the read and modify permissions.
Physical Organisation: Usually the memory is divided into two parts. These are known as fast primary memory and slow secondary memory. Moving the information between these both memories should be organised.
Memory Management for Windows:
Most of the Windows operating systems use a pagefile for memory management. The memory for a pagefile is allocated on the disk. The pagefile contains the less frequently used objects saving the memory on the RAM for other objects. This method raises some problems such as disk fragmentation, which decreases the speed by which the objects are fetched back from the memory when they are needed. The later versions such as Windows XP can defragment the pagefile and allocate blocks to overcome this problem.
Memory management includes the understanding of "Managing Heap Memory," "Managing Virtual Files," and "Managing Memory-mapped Files". Windows API provides these three for managing the memory for the applications.
Fig 2c: Layered Memory Management in Win32
2.2 Power Management
With the increase of smaller devices, several applications and functionalities are being added to them. These smaller devices don't have continuous supply of power. Most of them run with a battery and all the batteries are not in exhaustive. So, these applications and functionalities would add to the vulnerabilities of the smaller devices. The size of the battery in these is also smaller due to the size of the device. Hence, the power should be efficiently managed to make the device to work longer.
Power Management should be efficiently managed in design for smaller devices. While a low power device certain aspects such as real time responsiveness and intense execution of communication tasks should also be considered. Power management can be done by turning off components or adjusting Quality of Service parameters by using the state of computation, without harming its timeliness.
Power Management for Multitasking Systems:
Power Management is not an important aspect when compared to the smaller devices. Most of the devices have continuous power supply. Laptops have bigger batteries, so power can be managed. Some of the ways managing power in larger systems is as follows:
Reducing display brightness: A brighter display uses more power than the CPU and Hard disk. So reducing brightness would also give a battery stand time.
Shorten the length of time before Windows dims and turns off: This is a helpful when you don't use the device though it is turned on.
Scheduling is process of assigning the processes to run on the available CPUs. The main purpose of Scheduling is to overcome resource starvation and fairness.
Scheduling is an important factor for multi tasking and multi processor operating system. TheÂ schedulerÂ is fretful mainly with Throughput, Latency (Turnaround and Response time) and Fairness (equivalent CPU to every process). Scheduling for embedded systems is an important task. Prioritising the process is the major tasking. Most of the devices have a basic function which should be prioritised. Example Incoming calls should be prioritised among all the processes in a mobile phone.
Scheduling for Windows
In early days the systems were not multi tasking and they were not provided with the scheduler. Later with the use of multi tasking, scheduling has come into light. Windows uses a priority scheduler for the Input and Output queue so that disk defragmenters and other such programs don't interfere with foreground operations
2.4 I/O Management:
Input and Output devices are also shared by the processes. The Input and Output devices should be shared by using memory and access. I/O plays a vital role in an operating system of any size. In the systems the data is sent in, processed and sent back. In most cases data is copied from the device into a buffer, processed and then copied back into another buffer.
The major issues with I/O devices regard to efficiency of an operating system.
Most of the Input and Output devices are slow when compared to main memory
With multiprogramming, some of the processes may be kept waiting on I/O whilst the other process executes.
Input and Output may not keep up with processor speed.
The series of I/O devices are quite large. Most of them fall under one of these categories
Input Devices such as mouse, stylus, keyboard, etc
Graphics I/O such as CRT, Touch screen, etc
Networking and Communication devices such as Bluetooth, Infrared, Wi-Fi, etc
Storage devices such as flash drives, RAM, etc
Managing performance of an I/O is very important as it slows down the entire system. The major challenges for I/O are
The data rates of the I/O devices
The speed of the master processor
How to synchronize the speed of the master processor with the speed of the I/O
Symbian is an open source operating system and software platform developed by Symbian Limited. It is principally developed for 2G, 3G and 3.5G mobile phones. Various versions of Symbian OS were developed based on the requirements.
Symbian OS is an operating system that runs on mobile ''smartphone'' platforms from several different manufacturers. Smartphones are so named because they run fully-featured operating systems and utilize the features of desktop computers. Symbian OS is designed so that it can be the basis of a wide variety of smartphones from several different manufacturers. It was carefully designed specifically to run on smartphone platforms: general-purpose computers with limited CPU, memory and storage capacity, focused on communication.
Various versions of Symbian:
The first release of Symbian was Symbian 1 and was not open source. This is the platform for all the versions of Symbian. The primary version of Symbian includes fifth edition of S60 (S60 is a software platform for mobile phones) and Symbian operating system.
The second release of Symbian was Symbian 2 and it was open source. In this version the source code was not completely open source. A part of the source code was licensed as open source. Many companies released mobile phones using the Symbian 2 version. The companies include DoCoMo and Sharp.
The third release of Symbian was Symbian 3. This version was announced in February 2010 and was released in September 2010. This version was released with more advanced features. The main idea behind the release was the 2D and 3D graphics. Symbian 3 included both of these. Many improvements were made to the User Interface to make it more usable. This version also supports external display through HDMI (High-Definition Multimedia Interface is an interface which is used for transmitting digital data).
Symbian 4: Yet to be released The Symbian 4 version is yet to be released. It was announced in October 2010. It is expected to be released in the early 2011. Symbian 4 is not a separate release. Improvements are made to Symbian 3.
History of Symbian OS
Symbian OS has its roots developed in 1990's but was released in 2001. It is used in handheld devices and was released in several versions since it is released.
Handheld computers were originally developed as PDAs (Personal Digital Assistant) with much functionality. With the development of technology many functions were also added to the PDAs. They began to work like the normal PCs. Many forms of memory were also added to the PDAs to increase its functions such as multi-tasking. Personal communication also developed with the development of PDAs. With growing communication, mobile phones also got importance during 1990s. With this the hand held devices were merged with the mobile phones.
Psion Computers manufactured PDAs in 1990s. Psion also developed a pocket size computer with a small screen in 1991 which is known as Series 3. Later several versions such as Series 3C in 1996, Series 3mx in 1998, were developed by adding several functions (such as infrared, faster processor and more memory) to the older version. These devices became quite popular as they had good power management and interoperability with other computers such as PCs and handheld devices. It was an object oriented design and programming language used was C.
A new 32 bit operating system was designed by Psion in 1996. It was object oriented, used multimedia and supported pointing devices on a touch screen. The programming language used was C++. It was the known as the EPOC Release 1. Later EPOC Release 3 and EPOC Release 5 were also released with increased functionalities. With rapid growth in the use of handheld devices, Psion and other mobile companies (mobile companies included Nokia, Ericsson, Motorola and Panasonic) joined together formed a joint mission known as the Symbian, which took further steps to develop EPOC OS core which is known as Symbian OS. Later Symbian OS version 6 and 7 were released with added phone technologies and functions to the EPOC.
Symbian OS version 7 was considered as an important release because of its flexibility with the operating system. The major issue with the OS was the performance. Symbian OS 7 and Symbian OS 8 (in 2004) were released with increased security and performance. Symbian OS version 9 was released in 2005 with added security and gate-keeping installation and flexible hardware.
Symbian OS was unique as it was developed specially for the mobile platform. It has many features of a normal operating system such as multi tasking, memory management, security and multi threading. The antecedent of Symbian OS has given their best features. It has an object oriented design which has been inherited from the EPOC. It uses a microkernel design and uses client server architecture.
Object orientation implies Abstraction. Abstraction is process in which an object of the data is made to implement it rather than using the original data. Symbian OS is object oriented by design in which the implementations of the system calls are hidden. They are associated with system objects. The system data is hidden and the system data is used by creating an interface on the system objects. The Symbian OS creates an object of the file and then calls an open method to connect to the object. Resource allocation and protection is focused on allocation of objects and not system calls.
Symbian OS is Microkernel based Operating System. As the Symbian OS is object oriented it doesn't use system calls to perform a function, rather it uses system objects to perform an action. Thus is uses minimal memory for implementation. Access to the system resources are done by opening connection to the resource servers. Starting all the servers is not required during the initial boot time. The problem with microkernel appears when there is need for operation with a single system call. The system uses message passing where the job can be done using a single system call. This creates a performance issue. This made the developers of the Symbian operating system to think in order to increase the performance.
The Symbian OS Nanokernel
Due to the performance issues with the microkernel, Symbian OS Nanokernel was implemented at the core of the operating system. Some of the system functions are injected into the user space servers in micro kernels. Symbian OS separates the basics functions and the complicated system calls. The basic functions are kept at the Nanokernel, the core of the operating system. Nanokernel provides the basic functions in the Symbian operating system. Implementations at Nanokernel include interrupt handling, synchronisation operations, scheduling and synchronisation such as semaphores and mutexes. Functions at this level are primitive. Example of complicated functions for Nanokernel might include the dynamic memory allocation. The Nanokernel requires another level to implement some more complicated functions. Another layer is used to implement more complicated functions and it is known as the Symbian OS kernel layer. The functions at this layer might include complex object services, context switching, user mode threads, dynamic memory, dynamically loaded libraries, complex synchronisation objects and inter process communications.
Fig 3.a The Symbian OS kernel architecture
Client/Server Resource access
Symbian OS uses microkernel architecture and uses client/server architecture for access to resources. Client is the user or the application which needs access to the resource and server is the program which links the access to the resources. In the Symbian OS clients makes a connection to the server. Later the server acknowledges the connection and requests are made by the client to the server to perform certain functions. So, in this architecture opening a file is to find the file server and connecting to the server, and then sending the open request to the server.
Processes and Threads in Symbian OS
Symbian operating system uses multitasking operating system which uses the concept of processes and threads. Basically processes are used to perform multitasking. Symbian OS unlike others, use threads for multitasking. Threads form basic blocks for multithreading. It needs a process control block and some memory to perform a function.
In Symbian OS, threads are supported by nanokernel using nanothreads. The Nanokernel provides synchronization, scheduling and timing services for the nanothreads. Nanothreads require minimal data to run. Nanothreads require a stack to store their environment data. Nanothreads have some additional threads. They are
Suspended: This is the state when a thread suspends another, unlike waiting.
Fast Semaphore Wait: This is the state when a thread is waiting for a fast semaphore.
DFC Wait: This is the state in which the thread is added to the DFC queue. In this state the thread waits for function call or DFC then it is added to the DFC queue.
Sleep: These are the threads waiting for a certain amount of time to elapse.
Other: This is state used by developers to implement new states for the nanothreads.
Memory management is an important aspect for an operating system. Windows and Linux operating systems have virtual memory in addition to the physical memory. Demand paged virtual memory in addition to physical memory (hard disk) would provide an illusion of almost a limitless storage. With the absence of concept of virtual memory, amount of memory is limited.
But the absence of virtual memory doesn't mean the absence of memory management. The memory management consists of the following tasks.
Management of application size
Heap Management (Space for dynamic memory allocation)
Execution in place
Offload Memory management to hardware
Symbian OS is a 32 bit operating system. The addresses can range up to 4GB. The memory is divided into two categories by Symbian OS. They are the physical frames and virtual pages. Each frame would have a size of around 4 KB. With the available 4 GB space and 4 KB frame size there could be over a million pages. On the smaller platforms huge size of page, search and access time would burden the system. To overcome this difficulty Symbian OS uses a two level page table to reduce the access time and storage. The First level of the page table is known as the Page directory. The first level provides a link to the second level. It is listed by a segment of the virtual address (first 12 bits). The system consists of a Translation Table Base register (TTBR). This TTBR is used to point the page directory in the memory. This table provides all the links to the pages in the memory.
Fig 3b: Two level page table of the Symbian OS
Symbian OS uses four different types of memory implementation. Each implementation is used ito satisfy the different types of hardware configuration. The different types available are as shown below
The Moving Model: This mode is designed for the early ARM architectures
The Multiple Models: This was developed for the later ARM architectures
The Direct Model: It assumes that there is no MMU, so it is not allowed to uses on smartphones
The Emulator Model: This is used to support Windows host Symbian OS emulator.
INPUT AND OUTPUT
The structure of Symbian OS is similar to other operating systems.
The device drivers in Symbian OS are divided into 2 levels. They are
A logical device driver (LDD) - This driver presents an interface to the upper layers of the software
A physical device driver (PDD) - This device driver directly interacts with the hardware
These are the device drivers that are loaded at the boot time by the Symbian OS and they target specified devices. These are provided for two reasons. They are
It matches the object oriented design abstractions for the microkernel design.
It allows separate platforms to run specialized device drivers that enable the h/w to each platform w/o recompiling the kernel.
Direct Memory Access:
Symbian OS supports Direct Memory Access. Many of the device drivers regularly use Direct Memory Access. Most of the platforms have a definite number of DMA channels. The Symbian OS supports different H/W configurations so a single DMA channel cannot be assumed. The Direct Memory Access Hardware consists of a controller to control the different channels available.
The Media drivers are a special form of PDD in Symbian operating system. These drivers are use to access the storage media devices. The file server can maintain 25 drives at the similar time. As in windows, the local drives are discriminated by their drive letter.
Blocking I/O is done by Symbian OS using active objects. Active objects are coordinated by a single scheduler and implemented in a single thread
Removable Media created a problem to the developers. When a removable media is inserted into the system it should be recognized. Like all the devices these also have drivers and will communicate with CPU using DMA. Symbian OS starts its implementation by recognizing the similarities with the removable media. All the removable media has the following functions.
All the removable media are inserted and removed
They need power
Incompatible disks are rejected
The Symbian OS consist of software controllers that control each card. The controllers work with the device drivers. When a removable media is inserted, Symbian OS creates a socket object. Device drivers are configured as active objects to respond and listen to the events.
Security is one of the major issues with the smaller operating systems. These are single user operating systems. Even complicated application installation might require authorization but not authentication. The basic functions are available without any authentication.
The versions older than Symbian OS 9 used to have a gate keeper security. They used to prompt for user authentication before any installation. This gatekeeper service did a lot of benefits to the security system. The other problem occurs was with the viruses and malicious software. The users were unable to distinguish between the normal applications and malicious software. For this purpose security platform was rebuilt for Symbian OS 9. To get the trust from the users, the application developer should get the software verified by the process called signing. Signing along with gatekeeper service proved better security.
In version 9 of Symbian OS an additional function is added, known as data caging. In data caging, the data is organized into certain directories. This provides additional security.
Fig 3c: Symbian OS uses trust relationships to implement security.
Tiny OS is a free and open source component-based operating system and platform targeting wireless sensor networks (WSNs). It is a framework designed for embedded systems that require efficient resource management. The embedded systems have very limited resources such as power and memory. Tiny OS is a Component-based architecture. It has reusable system components: ADC, Timer and radio.
Components of Tiny OS
Communication, routing, sensing and storage systems are provided by TinyOS for the hardware components. Software components in TinyOS refer to abstraction of definite facilities provided by the hardware or the software component. Software components consists of the following
Modules are the lowest form of abstraction provided by the TinyOS. They implement program logic that directly addresses s/w component and can also provide a particular set of services, thereby enabling the reuse of s/w components. Other s/w components can interact with a module through its defined interface, which specifies a set of operations/services that a particular module implementation provides.
On the other hand abstractions of multiple modules and other configurations grouped together form a newly abstracted component referred to as a configuration. A configuration can be visualised as a super component signature- this is the set of interfaces that a component uses and provides to another component thereby allowing two or more components to communicate with each other.
Tiny OS differentiates between three kinds of resource abstractions: dedicated, virtualized, and shared. A dedicated abstraction is an abstraction that represents a resource which a subsystem requires exclusive access to at all times. In this category of resources, no sharing policy is essential since only a single component ever requires use of the resource at a time. Currently, the power states of all dedicated resources are controlled by one of these three interfaces.
This report the current state of the art in mobiles isÂ
Tools and tipsÂ Within and use some of its future development trends .Â one mobile device to rapidly and likely to be in possessionÂ
Near future allÂ These types of strong computing devices will be able toÂ OriginalÂ To connect to the Internet through a variety of local and metropolitanÂ
Wireless network andÂ Third-generation cellular network range.Â These devices will effectivelyÂ 'Alwayson'Â Network.Â .Â
Also, markets and technologies associated with these devices areÂ
Rapidly changing.Â IfÂ Converge on the market different types of the same type of equipment currentlyÂ Then problemsÂ Associated with lack of uniformity will be minimized.Â If it does notÂ AgainÂ Institutions will be presented with difficult decisions concerningÂ Integration of their existingÂ smart phones, PDAs and media systems with a wide range of devices is playing.Â OnÂ Same timeÂ Safety and privacy issues and concerns