Finalizat

Semaphores

Acest proiect a fost finalizat cu succes de athukoralakasun pentru 35$ USD în o zi.

Obține oferte gratuit pentru un proiect similar
Angajare
Buget proiect
$10 - $30 USD
Finalizat în
1 zi
Nunăr total de oferte
2
Descriere proiect

CSCE 5640, Fall 2016

Project #1

Due: 11-9-2016

For this project you may be working in groups of two. Each member of your group must sign up on the corresponding project sheet in order to receive a grade. Your task is to implement a semaphore-based solution to the problem stated below.

Consider a system with N blocks of storage, each of which holds one unit of information (e.g. an integer, character, or employee record). Initially, these blocks are empty and are linked onto a list called freelist. Three threads communicate using shared memory in the following manner:

Shared Variables: freelist, list-1, list-2: block (where block is some data type to hold items)

Thread-1

var b: pointer to type block;

while (1)

{

b:= unlink(freelist);

produce_information_in_block(b);

link(b, list1);

}

Thread-2

var x,y: pointer to type block;

while (1)

{

x:=unlink(list-1);

y:=unlink(freelist);

use_block_x_to_produce info_in_y(x, y);

link(x, freelist);

link(y, list-2);

}

Thread-3

var c: pointer to type block;

while(1)

{

c:=unlink(list-2);

consume_information_in_block(c);

link(c, freelist);

}

Using the POSIX library, rewrite the code for the threads, using semaphores to implement the necessary mutual exclusion and synchronization. The solution must be deadlock-free and concurrency should not be unnecessarily restricted.

Vrei să câştigi niște bani?

  • Setează-ți bugetul și perioada de timp
  • Schițează-ți propunerea
  • Fii plătit pentru munca ta

Angajează freelanceri care au plasat oferte și la acest proiect

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online