1. Convert the given single-threaded web server into a more responsive web server that uses a
thread-pool architecture with a fixed number of worker threads. See the introduction.
2. Design and use a bounded list of shared buffers to schedule waiting requests that cannot be
served immediately because there are no available worker threads in the pool to serve them.
3. Implement FIFO scheduling to serve waiting requests. See Scheduling Policies below.
4. Implement four different policies in your server to handle overload situations. This is necessary
to enhance server responsiveness when the list of buffers becomes full. The selected policy
must be specified as a command line option.