Search⌘ K
AI Features

Feature #14: Releasing Process Lock

Understand how to detect the process that fails to release a lock on shared resources by applying binary search on even indices in a lock acquisition and release log. This lesson demonstrates managing mutual exclusion in operating systems and optimizing search with time complexity O(log n) and constant space usage.

Description

Processes acquire and release locks on shared resources, which must be accessed with mutual exclusion. Whenever a process acquires a lock, the OS writes the corresponding process ID in a log file. Similarly, whenever the process releases the lock, the process ID is written to the log file again. Suppose that several processes acquired locks on a shared resource, but only one of these processes released the lock.

In this feature, we want to figure out which process did not release the lock. Each process is assigned a number, according to the order in which it acquired the lock. So, the first process that acquired the lock is given the number 1, the second process that acquired the lock is given the number 2, and so on. We will be given a list of integers, representing the order in which the lock was acquired and released. We have to return the process number that did ...