<\/a><\/p>\n\u092a\u094d\u0930\u093e\u092f\u094b\u0930\u093f\u091f\u0940 \u0936\u0947\u0921\u094d\u092f\u0942\u0932\u093f\u0902\u0917 \u0915\u0947 \u0938\u093e\u0925 \u0938\u092c\u0938\u0947 \u092c\u095c\u0940 \u0938\u092e\u0938\u094d\u092f\u093e \u092f\u0947 \u0939\u0948 \u0915\u093f \u0936\u0947\u0921\u094d\u092f\u0942\u0932\u093f\u0902\u0917 \u090f\u0915 \u0905\u0928\u093f\u0936\u094d\u091a\u093f\u0924 \u092c\u094d\u0932\u094b\u0915\u093f\u0902\u0917 \u092f\u093e starvation \u0939\u094b\u0924\u093e \u0939\u0948\u0964\u0932\u094b \u092a\u094d\u0930\u093e\u092f\u094b\u0930\u093f\u091f\u0940 \u092a\u094d\u0930\u094b\u0938\u0947\u0938 \u0915\u0947 \u0905\u0928\u093f\u0936\u094d\u091a\u093f\u0924 \u092c\u094d\u0932\u0949\u0915\u093f\u0902\u0917 \u0915\u0940 \u0938\u092e\u0938\u094d\u092f\u093e \u0915\u093e \u090f\u0915 \u0938\u092e\u093e\u0927\u093e\u0928 \u0939\u0948 \u0914\u0930 \u0935\u094b \u0939\u0948 \u090f\u091c\u093f\u0902\u0917\u0964<\/p>\n
\u090f\u091c\u093f\u0902\u0917 \u090f\u0915 \u0910\u0938\u093e \u0924\u0915\u0928\u0940\u0915 \u0939\u0948 \u091c\u093f\u0938\u0947 \u0910\u0938\u0947 \u092a\u094d\u0930\u094b\u0938\u0947\u0938 \u091c\u094b \u0932\u092e\u094d\u092c\u0947 \u0938\u092e\u092f \u0938\u0947 \u0915\u094d\u092f\u0942 \u092e\u0947\u0902 \u0907\u0928\u094d\u0924\u091c\u093e\u0930 \u0915\u0930 \u0930\u0939\u0947 \u0939\u0948\u0902 \u0909\u0928\u0915\u0940 \u092a\u094d\u0930\u093e\u092f\u094b\u0930\u093f\u091f\u0940 \u0915\u094b \u0927\u0940\u0930\u0947-\u0927\u0940\u0930\u0947 \u092c\u0922\u093e\u0924\u0947 \u0939\u0948\u0902\u0964<\/p>\n
\u092a\u094d\u0930\u093e\u092f\u094b\u0930\u093f\u091f\u0940 \u0936\u0947\u0921\u094d\u092f\u0942\u0932\u093f\u0902\u0917 \u0915\u094b\u0921 (priority scheduling code in hindi)<\/h3>\nC++ \u092a\u094d\u0930\u094b\u0917\u094d\u0930\u093e\u092e FCFS \u0915\u0947 \u0907\u092e\u094d\u092a\u094d\u0932\u0940\u092e\u0947\u0902\u091f\u0947\u0936\u0928 \u0915\u0947 \u0932\u093f\u090f<\/code><\/div>\n\/\/ \u0936\u0947\u0921\u094d\u092f\u0942\u0932\u093f\u0902\u0917<\/code><\/div>\n#include<bits\/stdc++.h><\/code><\/div>\nusing<\/code> namespace<\/code> std;<\/code><\/div>\n<\/div>\n
struct<\/code> Process<\/code><\/div>\n{<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>int<\/code> pid;\u00a0 <\/code>\/\/ \u092a\u094d\u0930\u094b\u0938\u0947\u0938 ID<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>int<\/code> bt;\u00a0\u00a0 <\/code>\/\/ CPU\u092c\u0930\u0924 \u091f\u093e\u0907\u092e \u0915\u0940 \u091c\u0930\u0941\u0930\u0924
\n<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>int<\/code> priority; <\/code>\/\/ \u0907\u0938 \u092a\u094d\u0930\u094b\u0938\u0947\u0938 \u0915\u0940 \u092a\u094d\u0930\u093e\u092f\u094b\u0930\u093f\u091f\u0940<\/code><\/div>\n};<\/code><\/div>\n<\/div>\n
\/\/ \u092a\u094d\u0930\u094b\u0938\u0947\u0938 \u0915\u094b \u092a\u094d\u0930\u093e\u092f\u094b\u0930\u093f\u091f\u0940 \u0915\u0947 \u0906\u0927\u093e\u0930 \u092a\u0930 \u0938\u0949\u0930\u094d\u091f \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u092b\u0902\u0915\u094d\u0936\u0928<\/code><\/div>\nbool<\/code> comparison(Process a, Process b)<\/code><\/div>\n{<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>return<\/code> (a.priority > b.priority);<\/code><\/div>\n}<\/code><\/div>\n<\/div>\n
\/\/ \u0938\u093e\u0930\u0947 \u092a\u094d\u0930\u094b\u0938\u0947\u0938 \u0915\u0947 \u0932\u093f\u090f \u0935\u0947\u091f\u093f\u0902\u0917 \u091f\u093e\u0907\u092e \u092a\u0924\u093e \u0915\u0930\u0928\u0947 \u0915\u093e<\/code><\/div>\n\/\/\u092a\u094d\u0930\u094b\u0938\u0947\u0938<\/code><\/div>\nvoid<\/code> findWaitingTime(Process proc[], <\/code>int<\/code> n,<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code>int<\/code> wt[])<\/code><\/div>\n{<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>\/\/ \u092a\u0939\u0932\u0947 \u092a\u094d\u0930\u094b\u0938\u0947\u0938 \u0915\u0947 \u0932\u093f\u090f \u0935\u0947\u091f\u093f\u0902\u0917 \u091f\u093e\u0907\u092e \u0939\u0948 0<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>wt[0] = 0;<\/code><\/div>\n<\/div>\n
\u00a0\u00a0\u00a0\u00a0<\/code>\/\/ \u0935\u0947\u091f\u093f\u0902\u0917 \u091f\u093e\u0907\u092e \u0915\u093e \u0915\u0948\u0932\u0915\u0941\u0932\u0947\u0936\u0928<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>for<\/code> (<\/code>int<\/code>\u00a0 i = 1; i < n ; i++ )<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code>wt[i] =\u00a0 proc[i-1].bt + wt[i-1] ;<\/code><\/div>\n}<\/code><\/div>\n<\/div>\n
\/\/ \u091f\u0930\u094d\u0928 \u0905\u0930\u093e\u0909\u0902\u0921 \u091f\u093e\u0907\u092e \u092a\u0924\u093e \u0915\u0930\u0928\u0947 \u0915\u093e \u0915\u0948\u0932\u0915\u0941\u0932\u0947\u0936\u0928<\/code><\/div>\nvoid<\/code> findTurnAroundTime( Process proc[], <\/code>int<\/code> n,<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code>int<\/code> wt[], <\/code>int<\/code> tat[])<\/code><\/div>\n{<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>\/\/ \u091f\u0930\u094d\u0928 \u0905\u0930\u093e\u0909\u0902\u0921 \u091f\u093e\u0907\u092e \u0915\u0948\u0932\u0915\u0941\u0932\u0947\u091f \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u091c\u094b\u095c\u0947\u0902:<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>\/\/ bt[i] + wt[i]<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>for<\/code> (<\/code>int<\/code>\u00a0 i = 0; i < n ; i++)<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code>tat[i] = proc[i].bt + wt[i];<\/code><\/div>\n}<\/code><\/div>\n<\/div>\n
\/\/\u090f\u0935\u0930\u0947\u091c \u091f\u093e\u0907\u092e \u0915\u0948\u0932\u0915\u0941\u0932\u0947\u091f \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u092b\u0902\u0915\u094d\u0936\u0928
\n<\/code><\/div>\nvoid<\/code> findavgTime(Process proc[], <\/code>int<\/code> n)<\/code><\/div>\n{<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>int<\/code> wt[n], tat[n], total_wt = 0, total_tat = 0;<\/code><\/div>\n<\/div>\n
\u00a0\u00a0\u00a0 <\/code>\/\/\u0938\u093e\u0930\u0947 \u092a\u094d\u0930\u094b\u0938\u0947\u0938 \u0915\u0947 \u0935\u0947\u091f\u093f\u0902\u0917 \u091f\u093e\u0907\u092e \u0915\u094b \u092a\u0924\u093e \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u094b\u0938\u0947\u0938<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>findWaitingTime(proc, n, wt);<\/code><\/div>\n<\/div>\n
\u00a0\u00a0\u00a0\u00a0<\/code>\/\/\u0938\u092d\u0940 \u092a\u094d\u0930\u094b\u0938\u0947\u0938 \u0915\u0947 \u091f\u0930\u094d\u0928 \u0905\u0930\u093e\u0909\u0902\u0921 \u091f\u093e\u0907\u092e \u092a\u0924\u093e \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u094b\u0938\u0947\u0938
\n<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>findTurnAroundTime(proc, n, wt, tat);<\/code><\/div>\n<\/div>\n
\u00a0\u00a0\u00a0\u00a0<\/code>\/\/\u092a\u094d\u0930\u094b\u0938\u0947\u0938 \u0915\u094b \u0909\u0938\u0915\u0947 \u0921\u093f\u091f\u0947\u0932 \u0915\u0947 \u0938\u093e\u0925 \u0926\u093f\u0916\u093e\u090f\u0901
\n<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>cout << <\/code>\"\\nProcesses\u00a0 \"<\/code><< <\/code>\" Burst time\u00a0 \"<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><< <\/code>\" Waiting time\u00a0 \"<\/code> << <\/code>\" Turn around time\\n\"<\/code>;<\/code><\/div>\n<\/div>\n
\u00a0\u00a0\u00a0 <\/code>\/\/ \u091f\u094b\u091f\u0932 \u0935\u0947\u091f\u093f\u0902\u0917 \u091f\u093e\u0907\u092e \u0914\u0930 \u091f\u094b\u091f\u0932 \u091f\u0930\u094d\u0928 \u0905\u0930\u093e\u0909\u0902\u0921 \u091f\u093e\u0907\u092e<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>\/\/ \u0915\u093e \u0915\u0948\u0932\u0915\u0941\u0932\u0947\u0936\u0928<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>for<\/code> (<\/code>int<\/code>\u00a0 i=0; i<n; i++)<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>{<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code>total_wt = total_wt + wt[i];<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code>total_tat = total_tat + tat[i];<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code>cout << <\/code>\"\u00a0\u00a0 \"<\/code> << proc[i].pid << <\/code>\"\\t\\t\"<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><< proc[i].bt << <\/code>\"\\t\u00a0\u00a0\u00a0 \"<\/code> << wt[i]<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><< <\/code>\"\\t\\t\u00a0 \"<\/code> << tat[i] <<endl;<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>}<\/code><\/div>\n<\/div>\n
\u00a0\u00a0\u00a0\u00a0<\/code>cout << <\/code>\"\\nAverage waiting time = \"<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><< (<\/code>float<\/code>)total_wt \/ (<\/code>float<\/code>)n;<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>cout << <\/code>\"\\nAverage turn around time = \"<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><< (<\/code>float<\/code>)total_tat \/ (<\/code>float<\/code>)n;<\/code><\/div>\n}<\/code><\/div>\n<\/div>\n
void<\/code> priorityScheduling(Process proc[], <\/code>int<\/code> n)<\/code><\/div>\n{<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>\/\/ \u092a\u094d\u0930\u094b\u0938\u0947\u0938 \u0915\u094b \u092a\u094d\u0930\u093e\u092f\u094b\u0930\u093f\u091f\u0940 \u0915\u0947 \u0906\u0927\u093e\u0930 \u092a\u0930 \u0938\u0949\u0930\u094d\u091f \u0915\u0930\u0947\u0902<\/code><\/div>\n\u00a0\u00a0\u00a0\u00a0<\/code>sort(proc, proc + n, comparison);<\/code><\/div>\n<\/div>\n
\u00a0\u00a0\u00a0\u00a0<\/code>cout<< <\/code>\"Order in which processes gets executed \\n\"<\/code>;<\/code><\/div>\n