COMPUTER SYSTEMS&MOD MSGT/ET SA AC PKG
3rd Edition
ISBN: 9780134671123
Author: Bryant
Publisher: PEARSON
expand_more
expand_more
format_list_bulleted
Concept explainers
Question
Chapter 12, Problem 12.24HW
Program Plan Intro
I/O Multiplexing:
- The idea of I/O multiplexing is to use “select” function to ask kernel to suspend process.
- It returns control to application only after one or more I/O events had occurred.
- It denotes waiting for a set of descriptors that is ready for reading.
- The “select” function would manipulate sets of type “fd_set”, that denotes descriptor sets.
- It takes two inputs: a descriptor set called “read set” and cardinality of read set.
- It blocks until at least one descriptor in read set is ready for reading.
- A descriptor “k” is ready for reading if and only if a request to read 1 byte from that descriptor would not block.
- The “fd_set” is been modified that points to argument “fdset” to indicate subset of read set called “ready set”.
- The value returned by function indicates cardinality of ready set.
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
How do you implement a thread pool in Java, and what are the benefits of using a thread pool in a concurrent application?
In a previous section, we mentioned that each thread running in the JVM is only permitted to have a single method active at any one moment. What information or experiences have led you to believe that this is the situation?
In a previous section, we mentioned that each thread running in the JVM is only allowed to have one method active at any one point in time. What information or experiences have led you to believe that this is the situation?
Chapter 12 Solutions
COMPUTER SYSTEMS&MOD MSGT/ET SA AC PKG
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
- Is it possible, in your opinion, for a single threaded process to get deadlocked without affecting any other threads? If you could elaborate on your answer in the following sentence, that would be great.arrow_forwardThis is some code in C for quicksort. The quicksort works correctly, but I am trying to implement multithreading. I am trying to run the recursive calls in parallel with a limit on how much threads can be running at one time (set by the global variable 'maximumThreads'). My logic is incorrect with managing how many threads can be ran at the same time. The part that I need you to look at is after the for loop in quick sort, where I have my logic for the mutex and the conditional variable. Right now when I run my code, the program runs without stopping. I would like help with correctly implementing this. #include <stdlib.h>#include <string.h>#include <pthread.h>#include <stdio.h>#define SORT_THRESHOLD 40typedef struct _sortParams {char** array;int left;int right;int* currentThreads;pthread_mutex_t* mutex;pthread_cond_t* cond_var} SortParams;static int maximumThreads; /* maximum # of threads to be used *//* This is an implementation of insert sort, which although…arrow_forwardDo you think that a single single-threaded process may get stuck in a deadlock state? Please expand on your response in the next phrase.arrow_forward
- Write in some programming language or pseudocode a function that calculates the division of two integers positive, using successive subtractions, in such a way that it is reentrant and WITHOUT thread safety and rewrite it to be reentrant and WITH thread security.arrow_forwardThis is some code in C for quicksort. The quicksort works correctly, but I am trying to implement multithreading. I am trying to run the recursive calls in parallel with a limit on how much threads can be running at one time (set by the global variable 'maximumThreads'). My logic is incorrect with managing how many threads can be ran at the same time. The part that I need you to look at is after the for loop in quick sort, where I have my logic for the mutex and the conditional variable. Right now when I run my code, the program runs indefinitely. I would like help with correctly implementing this part. #include <stdlib.h>#include <string.h>#include <pthread.h>#include <stdio.h>#define SORT_THRESHOLD 40typedef struct _sortParams {char** array;int left;int right;int* currentThreads;pthread_mutex_t* mutex;pthread_cond_t* cond_var} SortParams;static int maximumThreads; /* maximum # of threads to be used *//* This is an implementation of insert sort, which…arrow_forwardWhat is a thread pool in Java? What purpose does it serve?arrow_forward
- Discuss the various thread synchronization mechanisms available in Java and their use cases (e.g., synchronized blocks, locks, semaphores).arrow_forwardMake a C / C++, Java, or Python program with two processes (or threads, whichever is easier for you to code), a producer and a consumer. If you want to use another language, clear it with me first. The producer process/thread consists of a loop that writes the loop count (a value from 0 to 4) into a variable that it shares with the consumer process/thread (this variable is to be initialized to 100). On each pass through the loop, before the producer writes into the shared variable, it does a random wait of from one to three seconds (compute a new random wait value on each pass through the loop). The loop is to be executed five times. The consumer process consists of a loop that reads the variable it shares with the producer five times and computes the sum of the values it has read. On each pass through the loop before it reads the shared variable, it does a random wait of from one to three seconds (compute a new random value on each pass through the loop). When the loop finishes, the…arrow_forwardIntroducing thread in your program is a great strategy to utilize the computer system. However, thread programming is not trivial and often requires to synchronize the concurrent tasks running in different threads. Based on the aforementioned information and your acquired knowledge about the multithreading in Java, answer the following questions: Suppose that you are implementing a java program for a task that can be divided into three subtasks - T1, T2, and T3. Here, T1 and T2 can be executed independently, however, T3 has data dependency on both T1 and T2. What will ensure the fastest execution of your program? Describe your strategy to implement the aforementioned program that ensures the maximum possible utilization of the computer system resources? Suppose that you have a computer system with three CPU cores. Draw a pictorial presentation of the threads to solve the following arithmetic equation that ensures the maximum utilization of the computer system resources.arrow_forward
- Do you think that a single, single-threaded process may get stuck in a deadlock state? Could you please comment on your response in the following sentence?arrow_forwardInvestigate how race conditions can be avoided by using a mutex and locks, as well as other thread management techniques in C++. Please and thank youarrow_forwardA thread with the priority of 30 is presently running. What would its new priority be if it: (a) used up all of its time quantum? (b) I/O was obstructed?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