(Exercise 4.3) Which of the following components of program state are shared across threads in a multithreaded process? a. Register values b. Heap memory c. Global variables d. Stack memory (Exercise 4.4) Can a multithreaded solution using multiple user-level threads achieve better performance on a multiprocessor system than on a single processor system? Explain. (Exercise 4.6) Is it possible to have concurrency but not parallelism? Explain. (Exercise 4.9) A system with two dual-core processors has four processors available for scheduling. A CPU-intensive application is running on this system. All input is performed at program start-up, when a single file must be opened. Similarly, all output is performed just before the program terminates, when the program results must be written to a single file. Between startup and termination, the program is entirely CPU-bound. Your task is to improve the performance of this application by multithreading it. The application runs on a system that uses the one-to-one threading model (each user thread maps to a kernel thread). a. How many threads will you create to perform the input and output? Explain. b. How many threads will you create for the CPU-intensive portion of the application? Explain. (Exercise 4.10) Consider the following code segment: After running this program, answer the following questions. a. How many processes do we have? b. How many threads do we have (including main threads)?
Please give proper explanation and typed answer only.