How to implement a multi-thread server with a thread pool

Assignment Help Operating System
Reference no: EM131465115

Project: A Multithreaded Server

Overview -

In this assignment, you will learn how to implement a multi-thread server with a thread pool. To get started, download a copy of the starting source code from blackboard course assignment link. The goals of this assignment are as follows:

  • To gain experience in writing and debugging multi-threaded code. In particular, you will be exposed to code that can deadlock or have race conditions.
  • To make use of common synchronization primitives such as locks and condition variables.
  • To gain some tangential exposure to network programming.
  • To understand the concept of overlapping I/0 and computation.

Background -

As I'm sure you know, the Internet has exploded in popularity over the past decade. Driving much of this explosion is the proliferation of networked servers, which are programs that run "in the guts" of the Internet. Client programs (such as web browsers) communicate with these servers over the network, sending requests and reading back the servers' responses. For example, a web browser will send a web server a request for a particular web page; the server will process this request, and then respond by sending back the page's HTML, which the web browser reads, parses, and displays. One of the challenges in building Internet services is dealing with concurrency. In particular, many independent clients can simultaneously send requests to a given server. A server therefore must be designed to deal with concurrent requests. There are many different strategies for doing this; we will explore two in this project.

Deliverables -

You should submit a write-up of what you did (name it readrae.txt), plus all the source code files for your project. Your write-up should include the following:

  • A verbal description of the structure of your thread pool implementation, including a list of any design decisions you made.
  • A list of critical sections inside your thread pool code (and why they are critical sections).
  • A description of the synchronization inside your thread pool. What condition variables did you need, where, and why? Under what conditions do threads block, and which thread is responsible for waking up a blocked thread?

Submit in the all your files as a gzip compressed tarball. Include in the tarball all files necessary for a successful build! The name of your attachment should be project.tar.gz.

Your submission will be graded by compiling and running it and reviewing the source code.

  • As usual, the grading platform is linprog. Make sure your code works on linprog.
  • Please make sure your source code can compile. Absolutely no credit if it does not compile.
  • Get rid of warnings from the compiler. Points will be deducted if your code has excessive warnings.
  • Please don't include the binary files. Do a make clean before submission. You'll make grading harder for us if you do.
  • Please don't leave out any files! You'll make grading harder for us if you do.
  • Please don't modify any files you don't need to! You'll make grading harder for us if you do.
  • Please don't send us the meta-information from your revision control system! You'll make grading harder for us.

And if we have a hard time grading, you'll have a hard time getting points!

Attachment:- Assignment Files.rar

Reference no: EM131465115

Questions Cloud

How the conceptual framework revision to include prudence : Does the current accounting framework meet the needs of the users of financial reports as prescribed in the objective of the Conceptual Framework of Accounting
Explain how cost volume profit-break-even point : Explain how cost volume profit, break-even point, and contribution margin relate to profit planning.
Which section of the statement of cash flows is affected : What are the four timing differences between recognizing revenues and expenses between accrual basis and cash basis accounting?
Provide a conclusion that evaluates significance of paper : Provide a conclusion that evaluates the significance of paper, reemphasizes the main points, predicts an outcome, offers a solution, or suggest a further study.
How to implement a multi-thread server with a thread pool : In this assignment, you will learn how to implement a multi-thread server with a thread pool. To understand the concept of overlapping I/0 and computation
Describe the sources of power : You have just been hired as a brand manager of toothpaste for a large consumer products company. Your job mainly involves encouraging the advertising.
Structure is the most effective for the organization : Do you think GM's Structure is the most effective for the organization?
What is the short-run profit or loss : Using a market price of $42, what is the short-run profit or loss earned by a typical firm in this industry at this market price?
Conflict when customer was rude to one of your employees : Describe how you would handle the conflict when a customer was rude to one of your employees. How would you prepare them to face challenges like that?

Reviews

len1465115

4/17/2017 4:41:56 AM

Note: This is a Linux-based project, NOT xv6. You must make sure that your code works on linprog. the system we use for grading. Words of wisdom: first, please start early! Second, please make minimal changes to the starting code; you do not want to make it hard for us to grade! Submit in the all your files as a gzip compressed tarball. Include in the tarball all files necessary for a successful build! The name of your attachment should be project.tar.gz. Your submission will be graded by compiling and running it and reviewing the source code. And if we have a hard time grading, you'll have a hard time getting points!

Write a Review

Operating System Questions & Answers

  Implementation of algorithms for process management

The Shortest Job Next (SJN) algorithm queues processes in a way that the ones that use the shortest CPU cycle will be selected for running rst.

  Develop a user mode command interpreter

Develop a user mode command interpreter which support list-short.

  Memory allocation in operating system

Analysis and implementation of algorithms for memory allocation in operating system, Explain First- t and best- t methods are used in memory allocation in operating systems.

  Stand alone child process

Forking the child process

  Write a multi-threaded program

Write a multi-threaded program to solve producer and consumer problem

  Marginal and average cost curves

n a competitive market place (pure competition) is it possible to continually sell your product at a price above the average cost of production.

  Simulating operating systems scheduling

Simulate the long-term scheduler, the short-term scheduler and the I/O scheduler of the computer using the First-Come-First-Serve algorithm.

  Issues with trusted platform module

Research paper discussing the issues with Trusted Platform Module (TPM)

  Threads

Explain a complication that concurrent processing adds to an operating system.

  Design and programming

Use the semaphore methods to control the concurrency of the solution

  Virtual machines

Virtual machines supported by a host operating system

  Discuss an application that benefits barrier synchronization

Discuss an application that would benefit from the use of barrier synchronization

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd