Find Jobs
Hire Freelancers

Semaphores

$10-30 USD

In Bearbeitung
Veröffentlicht vor mehr als 7 Jahren

$10-30 USD

Bezahlt bei Lieferung
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.
Projekt-ID: 12010191

Über das Projekt

Remote Projekt
Aktiv vor 8 Jahren

Möchten Sie etwas Geld verdienen?

Vorteile einer Ausschreibung auf Freelancer

Legen Sie Ihr Budget und Ihren Zeitrahmen fest
Für Ihre Arbeit bezahlt werden
Skizzieren Sie Ihren Vorschlag
Sie können sich kostenlos anmelden und auf Aufträge bieten

Über den Kunden

Flagge von UNITED STATES
hyderabad, United States
5,0
15
Zahlungsmethode verifiziert
Mitglied seit Dez. 8, 2015

Kundenüberprüfung

Danke! Wir haben Ihnen per E-Mail einen Link geschickt, über den Sie Ihr kostenloses Guthaben anfordern können.
Beim Senden Ihrer E-Mail ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.
Registrierte Benutzer Veröffentlichte Jobs
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Vorschau wird geladen
Erlaubnis zur Geolokalisierung erteilt.
Ihre Anmeldesitzung ist abgelaufen und Sie wurden abgemeldet. Bitte melden Sie sich erneut an.