Question
Operating system Topic: dead lock (Banker's Algorithm) Question: Explain details whole code of each line .(I am giving my code I will give thumbs up
Operating system
Topic: dead lock (Banker's Algorithm)
Question: Explain details whole code of each line .(I am giving my code I will give thumbs up for nice answer)
CODE:
def main(): processes = int(input("number of processes : ")) resources = int(input("number of resources : ")) max_resources = [int(i) for i in input("maximum resources : ").split()]
print(" -- allocated resources for each process --") currently_allocated = [[int(i) for i in input(f"process {j + 1} : ").split()] for j in range(processes)]
print(" -- maximum resources for each process --") max_need = [[int(i) for i in input(f"process {j + 1} : ").split()] for j in range(processes)]
allocated = [0] * resources for i in range(processes): for j in range(resources): allocated[j] += currently_allocated[i][j] print(f" total allocated resources : {allocated}")
available = [max_resources[i] - allocated[i] for i in range(resources)] print(f"total available resources : {available} ")
running = [True] * processes count = processes while count != 0: safe = False for i in range(processes): if running[i]: executing = True for j in range(resources): if max_need[i][j] - currently_allocated[i][j] > available[j]: executing = False break if executing: print(f"process {i + 1} is executing") running[i] = False count -= 1 safe = True for j in range(resources): available[j] += currently_allocated[i][j] break if not safe: print("the processes are in an unsafe state.") break
print(f"the process is in a safe state. available resources : {available} ")
if __name__ == '__main__': main()
Picture for avoid line indentation error:
def main(): processes = int(input("number of processes : ")) int(input("number of resources : ")) max_resources = [int(i) for i in input("maximum resources :").split()] resources = print(" -- allocated resources for each process --") currently_allocated = [[int(i) for i in input(f"process {j + 1} : ").split()] for j in range (processes)] print(" -- maximum resources for each process --") max_need = [[int(i) for i in input (f"process {j + 1} : ").split()] for j in range (processes)] allocated = [0] * resources for i in range (processes): for j in range (resources): allocated[j] += currently_allocated[i][j] print(" total allocated resources : allocated}") available = [max_resources[i] - allocated[i] for i in range(resources)] print("total available resources : {available} ") running = [True] * processes count = processes while count != 0: safe = False for i in range (processes): if running[i]: executing = True for j in range (resources): if max_need[i][j] - currently allocated[i][j] > available[j]: executing = False break if executing: print(f"process {i + 1} is executing") running[i] = False count -= 1 safe = True for j in range (resources): available[j] += currently_allocated[i][j] break if not safe: print("the processes are in an unsafe state.") break print("the process is in a safe state. Inavailable resources : {available} ") if name _main__': main()Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started