Waiting for answer This question has not been answered yet. You can hire a professional tutor to get the answer.

# Consider a concurrent atomic PeekableStack(k) object: An atomic Stack with an added look() operation.

Consider a concurrent atomic PeekableStack(k) object: An atomic Stack with an added look() operation. It allows each of n threads to execute push() and pop() operations atomically with the usual LIFO semantics. In addition, it offers a look() operation, the first k calls of which return the value at the bottom of the stack (the least recently pushed value that is currently in the stack) without popping it. All subsequent calls to look() after the first k return null. Also, look() returns null when the Stack is empty.

• Is it possible to construct a wait-free Queue (accessed by at most two threads) from an arbitrary number of PeekableStack(1) (i.e., with k = 1) objects and atomic read-write registers? Prove your claim!

• Is it possible to construct a wait-free n-thread PeekableStack(2) object from an arbitrary number of atomic Stack objects and atomic read write registers? Prove your claim!