Computer Systems: Program... -Access
3rd Edition
ISBN: 9780134071923
Author: Bryant
Publisher: PEARSON
expand_more
expand_more
format_list_bulleted
Concept explainers
Question
Chapter 12, Problem 12.30HW
A.
Program Plan Intro
Deadlocks:
- The deadlock denotes a situation where a collection of threads remains blocked.
- It denotes waiting for a condition that would never be true.
- The progress graph denotes invaluable tool for understanding deadlock.
- If “P” and “V” operations are been ordered incorrectly, the forbidden regions for two semaphores would overlap.
- If any execution trajectory reaches deadlock state “d” then no further progress will be possible.
- In this case each thread waits for the other one for a “V” operation that never occurs.
- The overlapping forbidden regions would induce a set of states called “deadlock region”.
- The deadlock is inevitable is trajectory touches a state in deadlock region.
- Once it enters deadlock regions, the trajectories could never leave.
Mutex lock ordering rule:
- A program is deadlock-free if each thread acquires its mutexes in order.
- It releases them in reverse order and given a total ordering for all mutexes.
- The mutex should be achieved in order to ensure deadlock free scheme.
B.
Program Plan Intro
Deadlocks:
- The deadlock denotes a situation where a collection of threads remains blocked.
- It denotes waiting for a condition that would never be true.
- The progress graph denotes invaluable tool for understanding deadlock.
- If “P” and “V” operations are been ordered incorrectly, the forbidden regions for two semaphores would overlap.
- If any execution trajectory reaches deadlock state “d” then no further progress will be possible.
- In this case each thread waits for the other one for a “V” operation that never occurs.
- The overlapping forbidden regions would induce a set of states called “deadlock region”.
- The deadlock is inevitable is trajectory touches a state in deadlock region.
- Once it enters deadlock regions, the trajectories could never leave.
Mutex lock ordering rule:
- A program is deadlock-free if each thread acquires its mutexes in order.
- It releases them in reverse order and given a total ordering for all mutexes.
- The mutex should be achieved in order to ensure deadlock free scheme.
C.
Program Plan Intro
Deadlocks:
- The deadlock denotes a situation where a collection of threads remains blocked.
- It denotes waiting for a condition that would never be true.
- The progress graph denotes invaluable tool for understanding deadlock.
- If “P” and “V” operations are been ordered incorrectly, forbidden regions for two semaphores would overlap.
- If any execution trajectory reaches deadlock state “d” then no further progress will be possible.
- In this case each thread waits for the other one for a “V” operation that never occurs.
- The forbidden regions that are overlapping would induce a set of states called “deadlock region”.
- The deadlock is inevitable is trajectory touches a state in deadlock region.
- Once it enters deadlock regions, the trajectories could never leave.
Mutex lock ordering rule:
- A program is deadlock-free if each thread acquires its mutexes in order.
- It releases them in reverse order and given a total ordering for all mutexes.
- The mutex should be achieved in order to ensure deadlock free scheme.
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
design a java program that implements thread priority based on setPriority() method using different level of priority for two threads .Both these threads donot run on preemptive platform in the same way.Thus,prioritize the threads by running each thread for few seconds.After this main thread stops this thread.Moreover, the program should display the no of times each thread made it through the loop is displayed
Write a c program that creates 5 threads and prints which thread is running and after the thread is closed, a new thread starts its execution. Each thread should run sequentially one by one.
OUTPUT:
thread-1 running
thread-1 closed
thread-2 running
thread-2 closed
Write a Java program to implement two threads such that one thread prints all the numbers that are divisible by 3 or 5 but not both from 1 to 100 and other thread prints all the numbers that are divisible by both 3 and 5 from 1 to 100. (use Thread class ). Note : Each thread has a delay of 200 millisecond after printing one number
Chapter 12 Solutions
Computer Systems: Program... -Access
Ch. 12.1 - Prob. 12.1PPCh. 12.1 - Prob. 12.2PPCh. 12.2 - Practice Problem 12.3 (solution page 1036) In...Ch. 12.2 - Practice Problem 12.4 (solution page 1036) In the...Ch. 12.4 - Prob. 12.5PPCh. 12.4 - Prob. 12.6PPCh. 12.5 - Prob. 12.7PPCh. 12.5 - Prob. 12.8PPCh. 12.5 - Prob. 12.9PPCh. 12.5 - Prob. 12.10PP
Ch. 12.6 - Prob. 12.11PPCh. 12.7 - Prob. 12.12PPCh. 12.7 - Prob. 12.13PPCh. 12.7 - Prob. 12.14PPCh. 12.7 - Prob. 12.15PPCh. 12 - Prob. 12.20HWCh. 12 - Derive a solution to the second readers-writers...Ch. 12 - Prob. 12.22HWCh. 12 - Prob. 12.23HWCh. 12 - Prob. 12.24HWCh. 12 - Prob. 12.25HWCh. 12 - Prob. 12.26HWCh. 12 - Some network programming texts suggest the...Ch. 12 - Prob. 12.28HWCh. 12 - Prob. 12.29HWCh. 12 - Prob. 12.30HWCh. 12 - Implement a version of the standard I/O fgets...Ch. 12 - Prob. 12.32HWCh. 12 - Prob. 12.33HWCh. 12 - Prob. 12.34HWCh. 12 - Prob. 12.35HWCh. 12 - Prob. 12.36HWCh. 12 - Prob. 12.37HWCh. 12 - Prob. 12.38HWCh. 12 - Prob. 12.39HW
Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Similar questions
- Write a multithreaded C++, Pthread program that outputs prime numbers <= N. This program should work as follows: the user will run the program and will enter a number N on the command line. The program will then create a separate thread that outputs all the prime numbers less than or equal to N specified in the command-line argument. Please comment every line in the code with its funcionalityarrow_forwardThe following question is related to Threading Task-1: Write a c program that creates 5 threads and prints which thread is running and after the thread is closed, a new thread starts its execution. Each thread should run sequentially one by one. OUTPUT: thread-1 running thread-1 closed thread-2 running thread-2 closedarrow_forwardWrite a multithreaded C++, Pthread program that outputs prime numbers <= N. This program should work as follows: the user will run the program and will enter a number N on the command line. The program will then create a separate thread that outputs all the prime numbers less than or equal to N specified in the command-line argument.arrow_forward
- in java multithreading prgram to Consider the following scenario. Whenever a hen lays an egg its owner sells the egg to a shop. In the last 4 months, the owner has gained Rs. 100 by selling eggs at the rate of Rs.2 per egg. Display the following messages where multiple threads are representing Hen and Owner respectively: Hen Laid the Egg – 1 Owner gained Rs 2 Hen Laid the Egg – 2 Owner gained Rs 4arrow_forwardWrite a program that launches 26 threads. Each thread represents an English alphabet, say a, b, c, etc. Each thread should concatenate the string "+ ch " to a string variable that is initially defined as the string " " (i.e. empty string). "ch" represents the character of the current thread being executed (e.g. a, b, c,..) . Print your string variable after all threads have been executed. The targeted correct output may look like "a+b+c+d+e+…..". Run the program with and without synchronization to see its effect. Comment on the non-synchronized output.arrow_forwardWrite a program in c++ to create two Threads T1 and T2. Thread T1 print the name roll number and section while T2 print the cnic and village informationarrow_forward
- Write a C program called threadcircuit to run on ocelot which will provide a multithreaded solution to the circuit-satisfiability problem which will compute for what combinations of input values will the circuit output the value 1. This is the sequential solution, which is also attached. You should create 8 threads and divide the 65,536 test cases among them. For example, if p=8, each thread would be responsible for roughly 65,536/8 number of iterations (if it's not divisible, some threads can end up with one more iteration than the others). #include <stdio.h>#include <sys/time.h> /* Return 1 if 'i'th bit of 'n' is 1; 0 otherwise */#define EXTRACT_BIT(n,i) ((n&(1<<i))?1:0) int check_circuit (int z) {int v[16]; /* Each element is a bit of z */int i; for (i = 0; i < 16; i++) v[i] = EXTRACT_BIT(z,i);if ((v[0] || v[1]) && (!v[1] || !v[3]) && (v[2] || v[3])&& (!v[3] || !v[4]) && (v[4] || !v[5])&& (v[5] || !v[6]) &&…arrow_forwardFirst, generate a series of random points as simple (x, y) coordinates. These points must fall within the Cartesian coordinates that bound the square. Of the total number of random points that are generated, some will occur within the circle. Next, estimate by performing the following calculation: π = 4 × (number of points in circle) / (total number of points) Write a C program that creates several threads, each of which generates random points and determines if the points fall within the circle. Each thread will have to update the global count of all points that fall within the circle. Protect against race conditions on updates to the shared global variable by using mutex locks.arrow_forwardWrite program for the following Create a child thread class for sorting an array of 10000 size string values Create a child class for calculating factorial of 50 Create a child thread class for calculating base b to the power p Create a single object of each thread in the main thread, and stop the execution of main thread until the termination of all child threads using join methodarrow_forward
- Write a JAVA program to print X, Y and Z multiplication tables (multiplication table from 1 to 10) using multithreading, where X,Y and Z are three integer numbers. Create three threads to print three multiplication tables and use thread synchronization to print one multiplication table at a time completely without interruption.arrow_forwardWrite a C program with N threads. Thread i must print number i in a continuous loop. Without any synchronization between the threads, the threads will print their numbers in any order. Now, add synchronization to your code such that the numbers are printed in the order 1, 2, ..., N, 1, 2, ..., N, and so on. You may want to start with N = 2 and then move on to larger values of Narrow_forwardIn Python code: Put the thread_function on a thread. Put 3 threads into a queue and run the threads. import queuequeue = queue.Queue def thread_function(name): print("Thread %s: starting", name) time.sleep(2) print("Thread %s: finishing", name) # start threads by passing function to Thread constructorfrom pprint import pprintimport threadingimport time def threadfunc(*t): print(">>>>",*t) time.sleep(1) print('[',*t,']') time.sleep(2) print("<<<<",*t) arg1 = ("AAAAAAAA")threadA = threading.Thread(target=threadfunc,args=arg1)threadA.start() arg2 = ("BBBBBBBB")threadB = threading.Thread(target=threadfunc,args=arg2)threadB.start() arg3 = ("CCCCCCCC")threadC = threading.Thread(target=threadfunc,args=arg3)threadC.start() threadA.join()threadB.join()threadC.join() # multiple threadsimport threadingimport time tnames = ('AAAAAAAA','BBBBBBBB','CCCCCCCC')count = len(tnames)threadlist = []count = 3 def threadfunc(*t):…arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education