In this research article, we present a novel fuzzy decision-making system to improve CPU scheduling algorithm of a multitasking operating system. We add intelligence to the existing scheduling algorithms by incorporating fuzzy techniques in the selection of a process to be run on CPU, which result in improved waiting and turn-around times. We implement our proposed algorithm as a simulator using C language. The simulator implements our fuzzy scheduling algorithm, reads the required parameters of all the ready to run processes from a file, and finally computes a dynamic priority (dpi) value for each process. The run queue is sorted according to each process's dpi, and the process at the head of the queue is selected to run on CPU. Finally, we compare our results with some existing proposed fuzzy CPU scheduling (PFCS) algorithms as well as with some standard CPU schedulers. Our results show improvements as compared to the work of Ajmani's PFCS (Ajmani and Sethi in BVICAM's Int J Inf Technol 5:583---588, 2013), as well as from Behera's improved fuzzy-based CPU scheduling algorithm (Behera et al. in Int J Soft Comput Eng 2:326---331, 2012). Our efforts contribute to the overall efforts of the community contributing to the fuzzification of different operating system modules. These efforts finally result in an operating system that gives convenience to its users in both certain and uncertain environments and at the same time efficiently utilize the underlying hardware and software under precise as well as fuzzy conditions (Kandel et al. in Fuzzy Sets Syst 99:241---251, 1988).