Skip to content

Commit a41a159

Browse files
authored
Merge pull request ashutosh97#33 from syk007/master
Added Question FCFS
2 parents 0770ecb + 63ccd05 commit a41a159

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

FCFS/fcfs.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
process_queue = []
2+
total_wtime = 0
3+
n = int(raw_input('Enter number of process: '))
4+
for i in xrange(n):
5+
process_queue.append([])#append a list object to the list
6+
process_queue[i].append(i+1)
7+
process_queue[i].append(int(raw_input('Enter p_arrival: ')))
8+
while process_queue[i][1]>50 or process_queue[i][1]<0:
9+
process_queue[i][1]=int(raw_input('Enter p_arrival(Should be between 0-50 sec): '))
10+
total_wtime += process_queue[i][1]
11+
process_queue[i].append(int(raw_input('Enter p_bust: ')))
12+
while process_queue[i][2]>10 or process_queue[i][2]<0:
13+
process_queue[i][2]=int(raw_input('Enter p_burst(Should be between 0-10 msec): '))
14+
process_queue[i].append(process_queue[i][1])
15+
print ''
16+
17+
process_queue.sort(key = lambda process_queue:process_queue[1])
18+
exe=process_queue[0][1]+process_queue[0][2];
19+
for j in xrange(n-1):
20+
i=j+1
21+
if exe < process_queue[i][1]:
22+
exe=process_queue[i][1]+process_queue[i][2]
23+
else:
24+
process_queue[i][3]=exe
25+
exe=exe+process_queue[i][2]
26+
27+
28+
print 'ProcessName\tArrivalTime\tBurstTime\tExecutionStartTime'
29+
for i in xrange(n):
30+
print process_queue[i][0],'\t\t',process_queue[i][1],'\t\t',process_queue[i][2],'\t\t',process_queue[i][3]
31+
32+
print 'Total waiting time: ',total_wtime
33+
print 'Average waiting time: ',(total_wtime/n)

FCFS/question.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Implement the First-Come, First-Serve process scheduling algorithm.
2+
3+
The input to your algorithm must be a 2-D array that contains values for(Burst Time, Arrival Time) for 10 processes. Initialize random values for each of the 2 attributes for each process and print this table.
4+
5+
Acceptable range of values for input:
6+
Burst Time: [0,10]microseconds
7+
Arrival Time: [0,50]seconds
8+
*Burst Time is the amount of time the process requires to execute on the CPU.
9+

0 commit comments

Comments
 (0)