1. Write a short report, describing the following:
    • What is deadlock? Give a definition and an example scenario (could be a real world scenario).
    • What is livelock? Give a definition and an example scenario.
    • What is starvation? Give a definition and an example scenario.
  2. Assume you designed a scheduler for a system that has tasks with different priorities. Your scheduler makes sure than a higher priority process always preempts a lower priority one, as long as it has work to do. Further assume that your system supports shared resources and locks. So, if a high priority thread requests a shared resource that is currently being used (locked) by a low priority one, it waits until the resource is released (unlocked) by the low priority task. It seems like in this setup, a high priority thread that has work to do gets the processor unless a lower priority process currently has the processor and is holding a resource that the higher priority thread needs. However, this is not the case, and thus there is a problem with this system. What is the problem (think about more than two processes)? What is the solution to the problem? Hint: Search for what happened on Mars Pathfinder mission (launched on July 4th, 1997). Here is a link. Note: Do not tell the story from the link. I am asking about the general problem. It has a well defined name and the solution also has a well defined name.