This paper concerns scheduling parallel programs in multiprocessing systems. The goal is to improve job turnaround time and speedup. As most programs are not fully parallelizable, parallel programs consisting of serial, partially parallel, and (perfectly) parallel stages are modeled by task graphs which depict the parallelism profiles. From another perspective, the study is intended to be a queueing counterpart of Amdahl's Law. In this paper, various two-stage cases are investigated with preemptive or FCFS scheduling policies, and the optimal strategy is determined. Methods of solving the queueing models encompass the z-transform approach and the state-of-the-art matrix-geometric method, whichever is appropriate. In addition, probability projection is devised to enhance the z-transform methods and handle Markov chains which have more than one boundary probability. Results indicate that, with nonhomogeneous parallelism profiles, it would be a better processor allocation policy to give preferential treatment to serial stages. This study might hopefully improve the design of parallel operating systems as well as parallel algorithms, databases, and parallelizing compilers.