Find Jobs
Hire Freelancers

Semaphores

$10-30 USD

În desfășurare
Data postării: peste 7 ani în urmă

$10-30 USD

Plata la predare
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.
ID-ul proiectului: 12010191

Despre proiect

Proiect la distanță
Activ: 7 ani în urmă

Vrei să câștigi bani?

Avantajele de a licita pe platforma Freelancer

Stabilește bugetul și intervalul temporal
Îți primești plata pentru serviciile prestate
Evidențiază-ți propunerea
Te înregistrezi și licitezi gratuit pentru proiecte

Despre client

Steagul UNITED STATES
hyderabad, United States
5,0
15
Metoda de plată a fost confirmată
Membru din dec. 8, 2015

Verificarea clientului

Mulțumim! Ți-am trimis prin e-mail linkul pe care trebuie să-l accesezi pentru a revendica creditul gratuit.
A apărut o eroare la trimiterea e-mailului. Încearcă din nou.
Utilizatori înregistrați Totalul proiectelor postate
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Se încarcă previzualizarea
S-a oferit permisiunea de depistare a locației.
Ți-a expirat sesiunea pentru conectare sau te-ai deconectat. Conectează-te din nou.