A method for allocating an uplink resource in a communication system, comprising: a. configuring a first resource block for a Narrow Band Internet of Things, NB-IoT, terminal and a second resource block for an enhanced Machine Type Communication, eMTC, terminal; b. scheduling the NB-IoT terminal and the eMTC terminal to commonly use the first resource block and the second resource block; wherein the step a comprises: - determining part of the second resource block as a shared resource group in the first resource block, wherein each of the first and second resource blocks includes a plurality of uplink physical blocks and the shared resource group includes mutually overlapping uplink physical blocks from the first resource block and the second resource block; characterized in that the step b comprises: - allocating M 1 consecutive subframes in every N 1 subframes in the first resource block to the NB-IoT terminal, wherein M 1 and N 1 are natural numbers, wherein the M 1 value to the utmost is no greater than the N 1 value; and - allocating remaining N 1 -M 1 subframes in the shared resource group to the eMTC terminal. a. configuring a first resource block for a Narrow Band Internet of Things, NB-IoT, terminal and a second resource block for an enhanced Machine Type Communication, eMTC, terminal; b. scheduling the NB-IoT terminal and the eMTC terminal to commonly use the first resource block and the second resource block; wherein the step a comprises: - determining part of the second resource block as a shared resource group in the first resource block, wherein each of the first and second resource blocks includes a plurality of uplink physical blocks and the shared resource group includes mutually overlapping uplink physical blocks from the first resource block and the second resource block; characterized in that the step b comprises: - allocating M 1 consecutive subframes in every N 1 subframes in the first resource block to the NB-IoT terminal, wherein M 1 and N 1 are natural numbers, wherein the M 1 value to the utmost is no greater than the N 1 value; and - allocating remaining N 1 -M 1 subframes in the shared resource group to the eMTC terminal. wherein the step a comprises: - determining part of the second resource block as a shared resource group in the first resource block, wherein each of the first and second resource blocks includes a plurality of uplink physical blocks and the shared resource group includes mutually overlapping uplink physical blocks from the first resource block and the second resource block; - determining part of the second resource block as a shared resource group in the first resource block, wherein each of the first and second resource blocks includes a plurality of uplink physical blocks and the shared resource group includes mutually overlapping uplink physical blocks from the first resource block and the second resource block; characterized in that the step b comprises: - allocating M 1 consecutive subframes in every N 1 subframes in the first resource block to the NB-IoT terminal, wherein M 1 and N 1 are natural numbers, wherein the M 1 value to the utmost is no greater than the N 1 value; and - allocating remaining N 1 -M 1 subframes in the shared resource group to the eMTC terminal. - allocating M 1 consecutive subframes in every N 1 subframes in the first resource block to the NB-IoT terminal, wherein M 1 and N 1 are natural numbers, wherein the M 1 value to the utmost is no greater than the N 1 value; and - allocating remaining N 1 -M 1 subframes in the shared resource group to the eMTC terminal.