COMPUTER SYSTEMS&MOD MSGT/ET SA AC PKG
COMPUTER SYSTEMS&MOD MSGT/ET SA AC PKG
3rd Edition
ISBN: 9780134671123
Author: Bryant
Publisher: PEARSON
bartleby

Concept explainers

Expert Solution & Answer
Book Icon
Chapter 12, Problem 12.38HW

Explanation of Solution

Implementation of a concurrent prethreaded version of the TINY web server:

Modified code for “sbuf.h” file:

The modified code for “sbuf.h” from section 12.5.4 in book is given below:

#ifndef SBUF_HEADER

#define SBUF_HEADER

#include "csapp.h"

typedef struct

{

int *buf;          /* Buffer array */

int n;             /* Maximum number of slots */

int front;         /* buf[(front+1)%n] is first item */

int rear;          /* buf[rear%n] is last item */

sem_t mutex;       /* Protects accesses to buf */

sem_t slots;       /* Counts available slots */

sem_t items;       /* Counts available items */

} sbuf_t;

//Function declaration

void sbuf_init(sbuf_t *sp, int n);

void sbuf_deinit(sbuf_t *sp);

void sbuf_insert(sbuf_t *sp, int item);

int sbuf_remove(sbuf_t *sp);

//Function declaration for sbuf_empty

int sbuf_empty(sbuf_t *sp);

//Function declaration for sbuf_full

int sbuf_full(sbuf_t *sp);

#endif

Modified code for “sbuf.c” file:

The modified code for “sbuf.c” from section 12.5.4 in book is given below:

#include "csapp.h"

#include "sbuf.h"

/* Create an empty, bounded, shared FIFO buffer with n slots */

void sbuf_init(sbuf_t *sp, int n)

{

  sp->buf = Calloc(n, sizeof(int));

  sp->n = n;                       /* Buffer holds max of n items */

  sp->front = sp->rear = 0;        /* Empty buffer if front == rear */

  Sem_init(&sp->mutex, 0, 1);      /* Binary semaphore for locking */

  Sem_init(&sp->slots, 0, n);      /* Initially, buf has n empty slots */

  Sem_init(&sp->items, 0, 0);      /* Initially, buf has zero data items */

}

/* Clean up buffer sp */

void sbuf_deinit(sbuf_t *sp)

{

  Free(sp->buf);

}

/* Insert item onto the rear of shared buffer sp */

void sbuf_insert(sbuf_t *sp, int item)

{

  P(&sp->slots);                          /* Wait for available slot */

  P(&sp->mutex);                          /* Lock the buffer */

  sp->buf[(++sp->rear)%(sp->n)] = item;   /* Insert the item */

  V(&sp->mutex);                          /* Unlock the buffer */

  V(&sp->items);                          /* Announce available item */

}

/* Remove and return the first item from buffer sp */

int sbuf_remove(sbuf_t *sp)

{

int item;

  P(&sp->items);                          /* Wait for available item */

  P(&sp->mutex);                          /* Lock the buffer */

  item = sp->buf[(++sp->front)%(sp->n)];  /* Remove the item */

  V(&sp->mutex);                          /* Unlock the buffer */

  V(&sp->slots);                          /* Announce available slot */

return item;

}

//Function definition for empty buffer

int sbuf_empty(sbuf_t *sp)

{

//Declare variable

int ne;

//For lock the buffer

  P(&sp->mutex);                        

  ne = sp->front == sp->rear;

//For lock the buffer

  V(&sp->mutex);                         

return ne;

}

//Function definition for full buffer

int sbuf_full(sbuf_t *sp)

{

//Declare variable

int fn;

//For lock the buffer

  P(&sp->mutex);                        

  fn = (sp->rear - sp->front) == sp->n;

//For lock the buffer

  V(&sp->mutex);                        

return fn;

}

For code “tiny.c” and “tiny.h”:

Same code as section 11.6 in book.

sample.html:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>Home</title>

</head>

<body>

Tiny server Example

</body>

</html>

main.c:

#include <stdio.h>

#include "csapp.h"

#include "tiny.h"

#include "sbuf...

Blurred answer
Students have asked these similar questions
Word File Edit View Insert Format Tools Table Window Help PEPSI AutoSave 5-Marca, Christopher Read-Only Compatibility Mode - Saved to my Mac Insert Draw Design Layout References Mailings Review View Picture Format X Aptos (Body) ▾ 10 A A Aa Po BIU x, x A DA EvE E1INT AaBbCcl Pleading 2 Lalacoder AaBbCcl AalibGDdEe AaBbCcDr Abde ABC Normal Title No Spacing Heading 3 Heading 3 Subtitie Suble B d Only To save a copy of this document, click Duplicate. Problem 10) For the Boolean.expression, which is the correct MSOP expression? I Y = wxyz+xy+w Expression A. I Y = wxyz+y 663 words Expression B. English (United States) Accessibility: Investigate A APR LO M O stv I
For Arduino Timer at 16MHz, if a square wave with frequency 500KHz (50% duty cycle), by choosing the suitable pre-scale make all needed calculations to find the low and high value of Timer-1 bytes.
Q3) using the following image matrix a- b- 12345 6 7 8 9 10 11 12 13 14 15 1617181920 21 22 23 24 25 Using direct chaotic one dimension method to convert the plain text to stego text (hello ahmed)? Using direct chaotic two-dimension method to convert the plain text to stego text?
Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Computer Networking: A Top-Down Approach (7th Edi...
Computer Engineering
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:PEARSON
Text book image
Computer Organization and Design MIPS Edition, Fi...
Computer Engineering
ISBN:9780124077263
Author:David A. Patterson, John L. Hennessy
Publisher:Elsevier Science
Text book image
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:9781337569330
Author:Jill West, Tamara Dean, Jean Andrews
Publisher:Cengage Learning
Text book image
Concepts of Database Management
Computer Engineering
ISBN:9781337093422
Author:Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:Cengage Learning
Text book image
Prelude to Programming
Computer Engineering
ISBN:9780133750423
Author:VENIT, Stewart
Publisher:Pearson Education
Text book image
Sc Business Data Communications and Networking, T...
Computer Engineering
ISBN:9781119368830
Author:FITZGERALD
Publisher:WILEY