1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
ryzh [129]
3 years ago
7

The producer thread will alternate between sleeping for a random period of time and inserting a random integer into the buffer.

Random numbers will be produced using the rand_r(unsigned int *seed) function, which produces random integers between 0 and RAND_MAX safely in multithreaded processes. The consumer will also sleep for a random period of time and, upon awakening, will attempt to remove an item from the buffer. An outline of the producer and consumer threads appears as:
Computers and Technology
1 answer:
Llana [10]3 years ago
3 0

Answer:

// Producer Thread

void *producer(void *param) {

buffer_item item;

while (true) {

item = rand() % 100;

sem_wait(&empty);

pthread_mutex_lock(&mutex);

if (insert_item(item))

printf("Can't insert item\n");

else

printf("Producer %d: produced %d\n", *((int*)param), item);

pthread_mutex_unlock(&mutex);

sem_post(&full);

}

}

// Consumer Thread

void *consumer(void *param) {

while (true) {

buffer_item item = NULL;

if (in > 0)

item = buffer[in - 1];

sem_wait(&full);

pthread_mutex_lock(&mutex);

if (remove_item(&item))

printf("Can't remove item\n");

else

printf("Consumer %d: consumed %d\n", *((int*)param), item);

pthread_mutex_unlock(&mutex);

sem_post(&empty);

}

}

Explanation:

An outline of the producer and consumer threads appears as shown above.

You might be interested in
Why do we use the internet so much?​
allochka39001 [22]

Answer:

We use the internet because it is a way of finding certain things out that we do not know or a better way of communicating to people who are far away instead of sending a letter to them and it taking 2 to 3 months for it to get to that person.

Explanation:

Your welcome

4 0
2 years ago
Disk requests come in to the disk driver for cylinders 10, 22, 20, 2, 40, 6, and 38, in that order. A seek takes 6 msec per cyli
oksano4ka [1.4K]

Answer:

For  FCFS = 876msec For SSTF = 360msec For SCAN(elevator) = 348msec

Explanation:

Considering FCFS algorithm.

In FCFS, the requests are addressed in the order they arrive in the disk queue, this means that the number of cylinders traveled becomes equal to the total of disk requests. With the arm initially at 20, the first request is to read cylinder 10.

Therefore the cylinders traversed for the first request = 20 – 10 = 10  

For the second request i.e. a movement from cylinder 10 to cylinder 22, the number of cylinders traversed is = 22 - 10 = 12.

Similarly, for the third request seek arm will return to 20 from 22 so, cylinders traversed through would be = 22-20 = 2.    

Also for the fourth request, cylinders traversed would be = 20 – 2 = 18.

For the fifth request, cylinders traversed = 40 – 2 = 38.

Now for the sixth request cylinders traversed = 40 – 6 = 34.

For the seventh and last request, cylinders traversed = 38 – 6 = 32.

So now to get the how much seek time is required for Disk scheduling algorithm  

First we would add the total cylinders traversed = 10 + 12 + 2+ 18+ 38 + 34 + 32

     = 146 cylinders  

So therefore the total seek time = number of cylinders traversed X seek time per cylinder

               = 146 X 6

   = 876msec

Considering SSTF algorithm.

In SSTF (Shortest Seek Time First), requests having shortest seek time are executed first. So, the seek time of every request is calculated in advance in the queue and then they are scheduled according to their calculated seek time. What this means is that the closest disk (cylinder) next to the position of the seek arm is attended to first. With   the arm at 20 initially, the first request is to read cylinder 22 (i.e. the closest cylinder to the seek arm)

Therefore the cylinders traversed for the first request = 22-20 = 2

For the second request, the disk to focus on is disk 20 and the cylinders traversed = 22-20 = 2

Similarly for the third request the seek arm will move to 10 from 20 so, cylinder traversed = 20-10 =10

For fourth request, cylinder traversed = 10 – 6 = 4

For the fifth request, cylinder traversed = 6 – 2 = 4

For sixth request, since all other disk request closer to it has been attended to the seek arm will move to disk 38 to attend to that disk request So, the cylinder traversed = 38 – 2 = 36

For the last request, cylinder traversed = 40 -38 = 2

So now to get the how much seek time is required for Disk scheduling algorithm  

First we would add the total cylinders traversed = 2 + 2 +10 + 4 + 4 + 36 + 2  

     = 60 cylinders

So therefore the total seek time = number of cylinders traversed X seek time per cylinder

     = 60 X 6 = 360msec

From Here we see that SSTF is better or an improvement to FCFS as it decrease the average response time (Average Response time is the response time of the all requests).

Considering SCAN (elevator) algorithm  

In SCAN algorithm the disk arm moves into a particular direction and services the requests coming in its path and after reaching the end of disk, it reverses its direction and again services the request arriving in its path. So, this algorithm works as an elevator and hence also known as elevator algorithm. Therefore the number of cylinder traveled becomes equal to the total of disk request. With the arm at 20 initially

The first request is to read cylinder 22 i.e. the first cylinder on the upward movement  

Therefore the cylinders traversed would be  =   20 – 22 = 2

For the second request is to read cylinder 38, and the cylinders traversed would be   = 38 – 22 =16

For the third request, seek arm will move to 40 So, the cylinders traversed would be = 40 – 38 = 2

For the fourth request, seek arm will return to 20 since from 40 since 40 is the highest in this upward elevator movement So, cylinders traversed would be = 40 -20 = 20  

For the fifth request, cylinder traversed would be = 20 – 10 = 10

For the sixth request, cylinder traversed would be   = 10 – 6 = 4

For the seventh and last request, cylinder traversed = 6 – 2 = 4

So now to get the how much seek time is required for Disk scheduling algorithm  

First we would add the total cylinders traversed = 2 + 16 + 2 + 20 +10+ 4 + 4 = 58 cylinders

So therefore the total seek time = number of cylinders traversed X seek time per cylinder

   = 58 X 6

          = 348msec

From Here we see that SCAN is better or an improvement to FCFS and SSTF as it decrease the average response time (Average Response time is the response time of the all requests).

6 0
3 years ago
What is the value of numX when this program is executed? if 3 < 5 and 8 != 3: numX = 3 else: numX = 7
Hatshy [7]

Answer:

numX = 3

Explanation:

First, let's analyze what the code is showing:

If both conditions in the if-statement are true, then numX = 3. If one or both conditions are false, then numX = 7 ('and' means that both conditions have to be true for the if-statement to become true).

3 - this statement is true.

8 != 3 - this statement is also true (!= means 'not equal').

Since both conditional statements are true, then numX must equal 3.

Hope this helps :)

3 0
3 years ago
Read 2 more answers
To maintain her audience's confidence in her, what should kiara not do while delivering her presentation?
IrinaVladis [17]
Use filler words like ummmm, like, so, kinda, or such. Faltering on her words, forgetting things, or not saying things with confidence wouldn't help either. Also, do not loose eye contact with the people even if you only occasionally look up, it makes you look nervous and like you don't know what you're talking about.
7 0
3 years ago
Please help me excel questions!​
Elenna [48]

Answer:

hi,hi,hi,hi,hi,hi,hi,hi,hi,hi,hi,hi,hi

7 0
2 years ago
Read 2 more answers
Other questions:
  • A(n) ____ tag is used to let the compiler know that your intention is to override a method in a parent class
    10·1 answer
  • To move from layout view to form view, tap or click the _____ button on the access status bar.
    15·1 answer
  • Data ____ travel over the Internet from router to router until reaching their destinations.
    7·1 answer
  • How many bytes of information can be stored on a hard drive?
    7·1 answer
  • You work for a company that is growing. Originally, all the users in all departments had access to all the data in the database.
    6·2 answers
  • Charts are more effective in attaining attentionthen others methods of presenting data. Do you agree?
    10·1 answer
  • Help with this quiz question thank you!
    12·2 answers
  • Raul is a 13-year-old teenager interested in taking up photography as a new hobby. His dad wants to buy him a camera for his bir
    13·1 answer
  • Which type of programming language translates one line of code at a time and then executes it before moving to the next line?
    5·2 answers
  • ___________ is some danger that can exploit a vulnerability.
    15·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!