Latest Entries »

Hi Readers,

It is since long I posted on my blog. Now as part of the course work for the FDP of IIT-B, I am creating this blog post.

The current FDP is a good one for Teaching Fraternity of colleges because it introduces them to ICT based techniques for Learning. I have been dabbling with many of these very seriously since 3-4 years since so I am quite familiar with it. This Blog is approximately 9 years or so old. I had my personal website since 2005, 11 years and counting.

There are several tools for every technology teacher this FDP focuses on However there are more. Every teacher should have some background knowledge of the following :-

  • Creating interesting learning material like Walk-throughs, Screen recordings, animations
  • Creating Assessment materials like quizzes
  • Managing student progress by tools like Excel or custom ones.
  • Using group in hangout, whatsapp to keep in touch with students and to instantly contact them.
  • Using website to create your own pages, tutorials and articles. So on…

This FDP is a good starting point for many things. Moodle though a dated software is still good. There are Sakai, Efront etc. By the way everyone should at least try coursesites by Blackboard, it is too good.

One gripe about this FDP is that the Moodle of IIT Bombay does not support the Moodle Mobile App. Possibly they should update their moodle or tweak the settings.

The Video lectures by Prof. Sahana Murty are quite good. They surely have very nice recording equipment. So far, so good.



This space can be utilized for clearing doubts on the concepts of Advanced Operating System PECS 3409 of BPUT Syllabus. Questions will be added to the topic body and answers will be discussed in the comments.

  1. What is consistency maintenance in distributed system and what are its prime categories?
  2. Discuss the technique by which RPCs can be replaced in threaded environment for increasing performance?
  3. What is Omega Network?
  4. Draw 16 input Omega network

    16 input Omega Network


See this document for other Answers :

Firebird Fury

Today I dabbled a bit with the Firebird SQL Server. It was created from Interbase so the fundamentals are strong. A little confusing in the beginning but I worked it out. The command line sucks though but it is just for a couple of times. Rest a cake ride.

Step one:-

Obtain the package from

Step two:-

Install with the GUI Installer. There are two engines, choose the super server. It is the future. You may use it as a service or as an ordinary application. As I am testing it out, I chose the application. On a deployment scene I would use it as a service.

Step three:-

Open the install directory and go to the bin folder in command mode.

(in windows) C:\Program Files\Firebird\Firebird_2_1\bin>

Now a bit of command mode setup :-

  1. Open GSEC by typing  C:\Program Files\Firebird\Firebird_2_1\bin>gsec -user sysdba -password masterkey
  2. Change password at GSEC prompt  GSEC> modify sysdba -pw manager
  3. Create a user for regular use. I am using scott and tiger deliberately because of the familiarity of Oracle users to this login. GSEC> add scott -pw tiger -fname Scott -lname Urman
  4. Then quit GSEC  GSEC> quit

Now the painful command operations are over. Let’s turn graphical. There are many good graphical utilities but FlameRobin is a good free and Open-Source tool. It shines well for learning purposes. For expert Query generation you need to obtain commercial tools. However for my case, I code SQL by hand and the editor has colored code highlighting and intelligence. This is a big help.

Step four :-

Go to and download the installer. It is quite small like firebird and installs in a jiffy.

Step five :-

  1. Open FlameRobin Database Admin and create a new database by right clicking localhost and select Create New Database.

    Creating scottdb

  2. Give any display name. I gave scottdb.
  3. Enter a valid database path where the *.gdb file will be created. I created a scott.gdb in my home directory.
  4. Feed scott and tiger as name and password.
  5. I selected UTF8 as the charset. You may choose other.
  6. Select SQL dialect as 3 if not already selected.
  7. Press Create.
  8. The database will be created and icon would appear under localhost.

    FlameRobin with db created

  9. Double click the icon. The tree would open. I got 40 system tables with it. The other tables in the pic are created by me.

    FlameRobin with db tree expanded

Step six :-

No default table is there to experiment. So we need to create it. Right click on the tables and select Create New.

SQL Editor

The editor with a CREATE TABLE template would appear. Change it and Run by pressing the play arrow. The output / error will be available in the statistics window.

Enter some data to experiment with it.

Run a select Query. The output will be displayed in data tab. Multiple select queries are not permitted. For all non-queries, multiple semicolon delimited DDL, DML and DCL and be written.

The tool is quite impressive. Find some interesting dialogs here:-

Some Interesting dialogs

That’s all. I am yet to experiment on the software development arena. Once done, I will be writing about it. Till then Happy Experimenting.

— Manik.

Name at least 4(four) different type of processors that can be used as the core of an embedded system.

  • General Purpose Processor (GPP)
    • Microprocessor
    • Microcontroller
    • Embedded Processor
    • Digital Signal Processor
    • Media Processor
  • Application Specific System Processor(ASSP)
  • Multiprocessor system using GPP and ASSPs
  • GPP Core or ASIP core integrated into Application specific Integrated Circuit ASIC orVLSI integrated with processor units on ASIC VLSI Chip.

What is a charge pump? Give at least one example where charge pump is used.

An Internal power source is required for a system. But when a system does not have a power source of its own, they connect to either an external power source or a charge pump.

A charge pump uses arrays of capacitors to increase voltage in a circuit. In this way, you can drive higher voltage loads from logic voltages of 3 – 5 volts. A charge pump consists of a diode in the series followed by a charging capacitor. The diode gets forward bias input from an external signal; for example, from an RTS signal.

A common application for charge pump circuits is in RS-232 level shifters where they are used to derive positive and negative voltages (often +10 V and -10 V) from a single 5 V or 3 V power supply rail.

What is index register and segment register?

Index registers are used to provide more flexibility in addressing modes, allowing the programmer to create a memory address by combining the contents of an address register with the contents of an index register (with displacements, increments, decrements, and other options). In some processors, there are specific index registers (or just one index register) that can only be used only for that purpose. In some processors, any data register, address register, or general register (or some combination of the three) can be used as an index register. Intel 80×86: 7 of the 8 general purpose registers may be used as an index register.

Base registers or segment registers are used to segment memory. Effective addresses are computed by adding the contents of the base or segment register to the rest of the effective address computation. In some processors, any register can serve as a base register. In some processors, there are specific base or segment registers (one or more) that can only be used for that purpose. In some processors with multiple base or segment registers, each base or segment register is used for different kinds of memory accesses (such as a segment register for data accesses and a different segment register for program accesses). These registers are a part of the x86 “Segmentation Memory Model” and are rarely used due to the advent of “flat” memory space. Despite their depreciation during the evolution of the x86 architecture, these registers are still required to have a valid values during normal CPU operation.

What are Virtual Devices? Give two examples of virtual devices.

A virtual device in Unix is a file such as /dev/null or /dev/urandom, that is treated as a device, as far as user level software is concerned, but is generated by the kernel without reference to hardware.

For instance when /dev/null is written to, the kernel tells the program it wrote everything to it (without actually writing it anywhere), and when read from, the reading program is told that it has reached the end of the file. It is a device file (it can be made with mknod for instance), but does not reference any hardware.

File and Pipe are the examples of Virtual devices.

What are the advantages of re-entrant functions in embedded system software?

A reentrant function is one that can be used by more than one task concurrently without fear of data corruption. Conversely, a non-reentrant function is one that cannot be shared by more than one task unless mutual exclusion to the function is ensured either by using a semaphore or by disabling interrupts during critical sections of code. A reentrant function can be interrupted at any time and resumed at a later time without loss of data. Reentrant functions either use local variables or protect their data when global variables are used.

A reentrant function:

  • Does not hold static data over successive calls
  • Does not return a pointer to static data; all data is provided by the caller of the function
  • Uses local data or ensures protection of global data by making a local copy of it
  • Must not call any non-reentrant functions

Advantages :-

  • Embedded systems have space constraints. Reentrant functions reduce space requirements.
  • Maintenance of a single source
  • Proper handling of software interrupts.
  • Avoiding data corruption.

What do you mean by NRE cost in a system design?

Design costs, also called Non-Recurring Engineering costs (NRE), are of major importance when few of a particular embedded system are being built. Conversely, production costs are important in high-volume production. Embedded systems vary from single units to millions of units, and so span the range of tradeoffs between NRE versus production costs.

However with the continuous advancements in electronic design process and in the quality of CAD / CAE tools, NRE costs for simple embedded systems should come down but in reality with the advancement in technology, more and more complex embedded systems are being built which maintains the NRE (development) costs quite high.

What do you mean by Interrupt Latency?

When an electronic device causes an interrupt, the intermediate results (registers) have to be saved before the software responsible for handling the interrupt can run. They must also be restored after that software is finished. If there are more registers, this saving and restoring process takes more time, increasing the latency.

Interrupt Latency Period Tla is a sum of:-

  • Time for response and initiation for ISR instructions. (This includes time to save or switch the context)
  • Periods needed to service all interrupts of higher priority than that of the present one.
  • Maximum period of disabling of the execution of the ISR for “critical region” instructions.

Ways to reduce such context/restore latency include having relatively few registers in their central processing units (undesirable because it slows down most non-interrupt processing substantially), or at least not having hardware save them all (hoping that the software doesn’t then need to compensate by saving the rest “manually”). Another technique involves spending silicon gates on “shadow registers”: one or more duplicate registers used only by the interrupt software, perhaps supporting a dedicated stack.

What do you mean by Priority Inversion?

Priority Inversion is a resource sharing problem in a priority scheduling situation.

Most commercial real-time operating systems (RTOSes) employ a priority-based preemptive scheduler. These systems assign each task a unique priority level. The scheduler ensures that of those tasks that are ready to run, the one with the highest priority is always the task that is actually running. To meet this goal, the scheduler may preempt a lower-priority task in mid-execution. However the scheduler may not have any control over the resources in the system and the resource once allocated to a low priority process will remain allocated to it till release.

This situation may force a high priority process to remain in waiting for the resource to get released. The waiting elongates if another medium priority process pre-empts the low priority process to execute itself. Now the midium priority process is running. The low priority process is in waiting for the midium priority process to finish and high priority process will get a chance to execute only after the lower priority processes finish. This is illogical and improper as ideally the high priority process should finish first. This problem is known as priority inversion problem.

What do you mean by hierarchical RTOS?

Hierarchical RTOS is a configurable RTOS where only limited functions of the scheduler is derived.  All other functions like memory allocation, IPC, Memory Management, File System operations etc are kept outside the scheduler. These functions link and bind dynamically as and when needed. This makes the RTOS use only the functions needed and if required extended. Such a hierarchical RTOS can be configured for specific processors and devices.

What do you mean by hierarchical RTOS?

Hierarchical RTOS is a configurable RTOS where only limited functions of the scheduler is derived.  All other functions like memory allocation, IPC, Memory Management, File System operations etc are kept outside the scheduler. These functions link and bind dynamically as and when needed. This makes the RTOS use only the functions needed and if required extended. Such a hierarchical RTOS can be configured for specific processors and devices.

Enumerate the sequence of events that takes place in interrupt handling.

1. Hardware stacks program counter, etc.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers.
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides which process is to run next.
7. C procedure returns to the assembly code.
8. Assembly language procedure starts up new current process.

What do you mean by plug and play devices? Explain any protocol that supports plug and play feature.

In computing, plug and play is a term used to describe the characteristic of a universal computer bus, or device specification, which facilitates the discovery of a hardware component in a system, without the need for physical device configuration, or user intervention in resolving resource conflicts.
Plug and play refers to both the boot-time assignment of device resources, and to hotplug systems.
ISA PnP or (legacy) Plug & Play ISA was a plug-n-play system that used a combination of modifications to hardware, the system BIOS, and operating system software to automatically manage resource allocations. It was superseded by the PCI bus during the mid-1990s.
UPnP or Universal Plug n Play supports plug and play feature.
Universal Plug and Play (UPnP) is a set of networking protocols promulgated by the UPnP Forum.
Universal Plug and Play functionality involves five processes:
Discovery: A Universal Plug and Play device advertises its presence on the network to other devices and control points by using the Simple Service Discovery Protocol (SSDP). A new control point uses SSDP to discover Universal Plug and Play devices on the network. The information that is exchanged between the device and the control point is limited to discovery messages that provide basic information about the devices and their services, and a description URL, which can be used to gather additional information about the device.
Description: Using the URL that is provided in the discovery process, a control point receives XML information about the device, such as the make, model, and serial number. Additionally, the description process can include a list of embedded devices, embedded services, and URLs that are used to access device features.
Control: Control points use URLs that are provided during the description process to access additional XML information that describes actions to which the Universal Plug and Play device services respond, with parameters for each action. Control messages are formatted in XML and use SOAP.
Eventing: When a control point subscribes to a service, the service sends event messages to the control point to announce changes in device status. Event messages are formatted in XML and use General Event Notification Architecture (GENA).
Presentation: If a Universal Plug and Play device provides a presentation URL, a browser can be used to access interface control features, device or service information, or any device-specific abilities that are implemented by the manufacturer.

What problem might occur in a shared memory process communication? How can you overcome that problem? Illustrate your answer with an example.

Sharing memory for communication between processes is a classical IPC methodology available for operating systems. Here one process creates an area in RAM which can be used by other processes. Since multiple processes can access the shared memory area like regular working memory, this is a very fast way of communication. 2.6 Linux kernel series uses /dev/shm (a world-writable directory that is stored in memory with a defined limit in /etc/default/tmpfs) for shared memory IPC. The program PulseAudio uses it extensively.
Problem arises when there is a multiple-processor architecture. If the Cache-Coherence policy is not adopted, a copy of the shared memory will be running for accessing process which may not be current, eventually leading to over-writing of the shared memory with inaccurate data.
Example: –
Process X and Y handles location L for shared access.

  1. X read L

  2. X Writes L

  3. Y read L

  4. Y Writes L

  5. X read L but this actually is not a read because content of L is already there in cache. As cache coherence is not used the old value is there in L

  6. X writes L now it writes wrong data because the earlier read was not proper and garbage in results in garbage out.

If any Cache-Coherence policy is adopted, the cache will be kept updated for accesses. This would result in updated value in cache.
Otherwise use of cache can be disabled for shared memory locations. This requires too complicated implementations.
An other method is to disable cache altogether. This is not advised as this will seriously impact performance.

a)Describe IMEI and its parts.
b)Write about APN and its importance for GPRS.
c)Compare Signal Encryption with Call Encryption.
d)Compare In-band and Out-of-band signaling. Which should be preferred and why?
e)What is Tandem Call?
Describe IN Conceptual Model (INCM)
Describe the limitations of GPRS.
Describe GPRS Network Architecture.
a)What do you mean by a Device? Explain with example.
b)What is Synchronous transmission?
c)Compare Bit Stuffing and Octet Stuffing in HDLC.
d)Describe with example Iso-Synchronous Transmission?
e)Differentiate Standard and Extended HDLC.
Describe HDLC frame structure
Compare Synchronous and Asynchronous serial input characteristics.
Short Notes
a)Compare Simplex, Duplex and Half Duplex communication with examples.
b)Classify I/O Devices
I can’t currently upload my notes to the website due to server problem. I will post them here.ES-2-2-HDLC and ES-2-1-Devices.

What’s Up Google?

This was one of the rarest of rare google goofups. Today while doing search on DTH offerings in India I found out the infamous “This site may harm your computer”. To test how well Google’s own site fare, I tested it out and to my utter surprise the results revealed it all! Further clicking on the link opened a 502 server error page showing that there has been some sort of a crash.

Have a look at the screenshot and have your own Laugh!

Google says it all!

Google says it all!


SPMP Example

Find a good introduction to SPMP document here.

I have written an article elaborating the steps for installing the SQLExpress 2008 with the Default Instance. There is a step wise screen shot representation which shows how to install the true default instance.

As the deceptive default instance option of the install actually installs a named instance, many existing software written using the default instance in SQLExpress 2005 will not work anymore and so this is important to be done.

I had to migrate some data to MySQL and the migration assistant could not handle the named instance so I needed this workround. As I had to search a lot to find how to do it, I thought possibly it would be fine to post them as a tutorial for others to follow.

Link :


Latex on Web

Nothing beats the good old latex for writing a technical paper.

Recently while working on my synopsis, I was thinking where to find latex when I visit places without my system? The answer is found on some of the pages I visited. There are a couple of good sites with updated tex installation which would help in compilation of the files on go.

For documents:

For equations only:

Keep up the good work!