Task interrupt by higher priority task

I have a question about tasks with different priorities and interrupts.

So for example I am using I2C and UART with different tasks and suppose I2C is in the midst of transaction and UART task interrupt is triggered. How this will be handled in nRF SDK API?

For example, I2C byte is transmitting and first 4 bits have already transmitted, what will happen if task is switched to UART at this point? How to avoid this behaviour? I know that DMA can help to overcome such situations but what if there is no DMA? Can this create a soft/hard fault?

I know there is Zephyr working as backend for this feature but not sure exactly how this is done. 

Related