61. Multicore Systems Present Certain Challenges For Multithreaded Programming. Briefly Describe These Challenges.
Multicore systems have placed more pleasure on system programmers as well as application developers to make efficient use of the multiple computing cores. These challenges include determining how to divide applications into separate tasks that can run in parallel on the different cores. These tasks must be balanced such that each task is doing an equal amount of work.
Just as tasks must be separated, data must also be divided so that it can be accessed, data dependencies must be identified and where such dependencies exist, data accesses must be synchronized to ensure the safety of the data. Once all such challenges have been met, there remains considerable challenges testing and debugging such applications.
62. What Is A Thread Pool & Why Is It Used?
A thread pool is a collection of threads, created at process startup, that sit and wait for work to be allocated to them. This allows one to place a bound on the number of concurrent threads associated with a process and reduce the overhead of creating new threads and destroying them at termination.
63. Under What Circumstances Does A Multithreaded Solution Using Multiple Kernel Threads Provide Better Performance Than A Single-Threaded Solution On A Single-Processor System?
When a kernel thread suffers a page vault, another kernel thread can be switched in to use the interleaving time in a useful manner. A single threaded process, on the other hand will not be capable of performing useful work when a page fault takes place. Therefore in scenarios where a program might suffer from frequent page faults or has to wait for other system events, a multithreaded solution would perform better even on a single processor system.
64. Define Deadlock? List Types Of Resources We Might Consider In Deadlock Problems On Computers.
A process is said to be in deadlock if it is waiting for an event that will never occur. Typically, but not necessarily, more than one process will be involved together in a deadlock. Also deadlock is a set of processes each holding a resource and waiting to acquire a resource held by another process in the set.
Types of resources that we might consider in deadlock problems on computers can be:
- Memory Space.
- CPU Cycles.
- Object Locks.
- I/O devices.
65. List Three Examples Of Deadlocks That Are Not Related To A Computer System Environment.
Three examples of deadlocks that are not related to a computer system environment are:
- Two cars crossing a single-lane bridge from opposite directions.
- A person going down a ladder while another person is climbing up the ladder.
- Two trains traveling toward each other on the same track.