Microkernel approach restructures the existing operating system by removing all nonessential


components from the kernel and implementing them as user-level programs. The main function of the


microkernel is to provide a communication facility, such as inter-process communication (IPC), between the


client program and the various services that are also running in user space. Since IPC occurs very often in


microkernel, the performance of IPC highly affects the overall performance of the system. The performance of


IPC decreases tremendously when there are many threads in ready state because many threads need to execute


before IPC receiver thread begins. One of solutions to this problem is direct thread switching, which schedules


the receiver thread immediately after the sender thread send a data. In this paper, we implemented synchronous


IPC for microkernel and adopted direct thread switching to improve IPC performance. Carrying out extensive


performance measurement studies, we showed that direct thread switching enormously improves the


performance of IPC.