Given code:
//Include necessary header files
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <wait.h>
#include <signal.h>
#include "csapp.h"
//Initialize the global counter variable as 2
volatile long counter = 2;
//Define a function named handler1()
void handler1(int sig)
{
//Variable declaration
sigset_t mask, prev_mask;
//Call the function sigfillset()
sigfillset(&mask);
//Call the function sigprocmask() and block sigs
sigprocmask(SIG_BLOCK, &mask, &prev_mask);
//Call the function sio_putl()
sio_putl(--counter);
//Call the function sigprocmask() and restore sigs
sigprocmask(SIG_SETMASK, &prev_mask, NULL);
//Exit
_exit(0);
}
//Define a function named main()
int main()
{
//Variable declaration
pid_t pid;
sigset_t mask, prev_mask;
//Print the counter value
printf("%ld ", counter);
//Flush the output buffer using fflush()
fflush(stdout);
//Call the function signal()
signal(SIGUSR1, handler1);
//Check the condition
if ((pid = Fork()) == 0)
{
//True, execute the statement
while(1) {};
}
//Call the function kill()
Kill(pid, SIGUSR1);
//Call the function waitpid()
Waitpid(-1, NULL, 0);
//Call the function Sigfillset()
Sigfillset(&mask);
//Call the function sigprocmask() and block sigs
Sigprocmask(SIG_BLOCK, &mask, &prev_mask);
//Print the counter value
printf("%ld", ++counter);
//Call the function sigprocmask() and restore sigs
Sigprocmask(SIG_SETMASK, &prev_mask, NULL);
//Exit
exit(0);
}
Want to see the full answer?
Check out a sample textbook solutionChapter 8 Solutions
Computer Systems: A Programmer's Perspective (3rd Edition)
- (Python) Numerous engineering and scientific applications require finding solutions to a set of equations. Ex: 8x + 7y = 38 and 3x - 5y = -1 have a solution x = 3, y = 2. Given integer coefficients of two linear equations with variables x and y, use brute force to find an integer solution for x and y in the range -10 to 10. Ex: If the input is: 8 7 38 3 -5 -1 Then the output is: x = 3 , y = 2 Use this brute force approach: For every value of x from -10 to 10 For every value of y from -10 to 10 Check if the current x and y satisfy both equations. If so, output the solution, and finish. Ex: If no solution is found, output: "There is no solution" You can assume the two equations have no more than one solution. ''' Read in first equation, ax + by = c '''a = int(input())b = int(input())c = int(input()) ''' Read in second equation, dx + ey = f '''d = int(input())e = int(input())f = int(input())arrow_forwardThe programming language: C++ The union of two ordered lists (Sequential linear list)[the solution introduction: The first video of in 3.1, 35:00-43:00] [Problem description] Give the union of two ordered lists. The maximal number of elements in an inputted set is 30. [Basic requirements] 1) Use sequential linear list. 2) The result list should also be ordered. [Example] Problem: Give the union of the ordered lists (3,4,9,100,103) and (7,9,43,53,102,105). What you need to show in the terminal(the back part is outputted by you and the blue part is inputted by the user, i.e., teacher): Please input the first ordered list: (3,4,9,100,103)Please input the second ordered list: (7,9,43,53,102,105) The union is: (3,4,7,9,9,43,53,100,102,103,105)arrow_forward1. (Assembly Language Programming) Write a procedure gcd for finding the greatest common divisor (GCD) of two positive integers x and y, which is described in the C code below. int gcd (int x, int y) { if (y 0) == return x; else return gcd (y, x % y); } Assume that x and y are passed to procedure gcd via X4 and X5 and the result is returned in X2. Note that x % y is the remainder of x / y.arrow_forward
- (Use Python) Use the Design Recipe to write a function, print_histogram that consumes a list of numbers and prints a histogram graph using asterisks to represent each number in the list. Use one output line per number in the list. You may assume that only integers are passed to this function. Your function should ignore negative values. Test Result print_histogram([ 2, 0, 4, 1]) ** ***** print_histogram([10, 5, 3, -1, 8]) **************************arrow_forward(c++) What is the adjacency matrix of the graph given below? Please include the final answer and also show the steps needed to get to the final answer.arrow_forwardPlease Help Me :( I am very sad.Problem: Create A Mobile Phone Load Balance Computation Program using JAVAarrow_forward
- (x-) hkt 2 1 m y = e 1+ 4m q 1 + 4m²q+ Write a Python code to plot a graph of y against x for the given range oft values from 0 to 150. Let h = 6.2, m = 5.2, q = 8.6, k = 3.9. Each plot for different t values should be on the same page.arrow_forwardProblem 1 (Ransom Note Problem) in python A kidnapper kidnaps you and writes a ransom note. He does not write it by hand to avoid having his hand writing being recognized, so he uses a magazine to create a ransom note. We need to find out, given the ransom string and magazine string, is it possible to create a given ransom note. The kidnapper can use individual characters of words. Here is how your program should work to simulate the ransom problem: your program should prompt the user to enter a long String to represent the magazine and another short String to represent the required ransom note. your program needs to check if the magazine string contains all required characters in equal or greater number present in the ransom note. your program should print true if it is possible to create the given ransom note from the given magazine, and print false otherwise. Break up your code into a set of well-defined functions. Each function should include a comment block that briefly describes…arrow_forward(Question) [CODE-97546】 43_CQ15.1 Content-M List and briefly define four different kinds of assembly language statements. Discussion time has been started. Students can comment and vote for comments during this time.arrow_forward
- (h) (Extra Credit!) Write a for-loop to implement a hill-climbing algorithm for the original constrained problem. Note that this algorithm must reflect the link be- tween small increases in x and y as captured through the constraint and so is поп-trivial.arrow_forward(a) Assume that five generation units with third order cost function (F, (R) = A; P+ B;P+C; P; + D;) are in the circuit. Write a computer program using any abitrary programming longuage (MATLAB, C++, C#, Python,.) to calculate economic load dipatch (ELD) using first order gradient method. Note that all parameters and variables should be defined inside the program (at tirst lines) such that units' characteristics and demand can be changed easily. Neglect grid losses. jusing dynamic programming (DP) methed.arrow_forward(PYTHON) (Display characters) Write a function that prints characters using the following header: def printChars(ch1, ch2, numberPerLine): This function prints the characters between ch1 and ch2 with the specified numbers per line. Write a test program that prints ten characters per line from 1 to Z.arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education