1. A method for processing radio packages in a multimode software defined radio (SDR) terminal, the method comprising: receiving a radio package of a first radio protocol; dividing processing of the radio package of the first radio protocol into a first set of subtasks, wherein the first set of subtasks comprise channel estimation, equalization, and de-interleaving; receiving a radio package of a second radio protocol, wherein the first and second radio protocols are different; dividing processing of the radio package of the second radio protocol into a second set of subtasks, wherein the second set of subtasks comprise channel estimation, equalization, and de-interleaving; performing a context switch between processing of the radio packages of the first and second radio protocols at a subtask level, wherein performing a context switch at the subtask level comprises: performing a first subtask of the first set of subtasks to process the radio package of the first radio protocol; before performing all of the first set of subtasks to process the radio package of the first radio protocol, switching to a second subtask of the second set of subtasks to process the radio package of the second radio protocol upon completion of the first subtask to process the radio package of the first radio protocol; performing all of the second set of subtasks to process the radio package of the second radio protocol; switching back to the first set of subtasks to process the radio package of the first radio protocol upon completion of all of the second set of subtasks to process the radio package of the second radio protocol; and storing results of the first and second set of subtasks upon completion of the first and second set of subtasks; and draining a processing pipeline upon performance of each of the subtasks of channel estimation, equalization, and de-interleaving by finishing all of the current processing elements that are present in the processing pipeline on a per-subtask basis.