Adarsh B Shankar UCI ID: 11972805 COMPSCI 143A SS2 Homework 1 HOMEWORK 1 Exercise 1.1.1: Abstraction and virtualization. Justify or refute the statements below. Give supporting examples, if appropriate. (a) Abstraction can be used without virtualization. Yes, abstraction does not necessarily create a virtual object. (b) Virtualization can be used without abstraction. Yes, virtualization may or may not use abstraction, since it emphasizes on diversification and replication. (c) Abstraction and virtualization can be used together. Yes since abstraction and virtualization are closely related, they can be used together. Exercise 1.1.2: Multiprogramming and time-sharing. (a) What do multiprogramming and time-sharing have in common? What are differences between the two concepts? Multiprogramming and time-sharing both accomplish the task of running more than one program on a computer system. Multiprogramming is the switching of CPUs between several programs while time-sharing involves extends this feature by switching periodically by employing virtualization and creating the illusion of several CPUs. Exercise 1.2.1: Interrupts and traps. (a) What do interrupts and traps have in common? What are the differences between the two concepts? Interrupts are hardware raised signal to the CPU to indicate completion of a certain process which it previously requested. Traps, on the other hand are exceptions that occur in user processes. A trap is a software interrupt rather than a hardware interrupt. Exercise 1.2.2: Multiprogramming, time-sharing, and interrupts. (a) Is multiprogramming possible without interrupts? No it is not possible. Without interrupts, time slices cannot be created to divide the CPU for each job or task. (b) Is time-sharing possible without interrupts? No it is not possible. Without interrupts, time slices cannot be created to divide the CPU for each job or task.