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
svetlana [45]
3 years ago
5

Your task is to write a C program that measures the latencies of various system calls. In particular, you want to know 1) the co

st of CPU mode switch by measuring a light-weight system call which does very little thing in the kernel, and 2) the cost of heavier system calls which triggers a lot of activities inside the kernel.
Computers and Technology
1 answer:
tensa zangetsu [6.8K]3 years ago
3 0

Answer and Explanation:

#include <stdio.h>

#include<fcntl.h>

#include <sys/time.h>

#include<time.h>

#define MAX 1000

int main()

{

int pid;

int i,fd ;

char c[12];

FILE *fp;

struct timeval start,end;

double time1,time2,time3;

//open file for writing

fp=fopen("output.txt","w");

 

if(!fp)

{

printf("Not able to open the file output.txt\n");

return -1;

}

for(i = 0; i < MAX ; i++)

{

gettimeofday(&start,NULL);

//invoke getpid call

system(pid = getpid());

//printf("%d\n",start.tv_usec);

}

gettimeofday(&end,NULL);

//printf("%d\n",(end.tv_usec - start.tv_usec));

time1 = ((end.tv_sec - start.tv_sec) + (end.tv_usec - start.tv_usec) / 1000000.0)/MAX;

 

//wtite the time taken to execute getpid to

//to get micro second , divide multiply time by 1000000 , to get nano multiply time by 1000000000

printf("getpid(): %.10f %.10f\n",time1*1000000,time1*1000000000);

fprintf(fp,"getpid():%.10f %.10f\n",time1*1000000,time1*1000000000);

//in similar way execute other two commands ,open and read

 

for(i = 0; i < MAX ; i++)

{

gettimeofday(&start,NULL);

//invoke getpid call

system(open("/dev/null", O_RDONLY ));

//printf("%d\n",start.tv_usec);

}

gettimeofday(&end,NULL);

//printf("%d\n",(end.tv_usec - start.tv_usec));

time2 = ((end.tv_sec - start.tv_sec) + (end.tv_usec - start.tv_usec) / 1000000.0)/MAX;

 

//wtite the time taken to execute getpid to

printf("open(): %.10f %.10f\n",time2*1000000,time2*1000000000);

fprintf(fp,"open():%.10f %.10f\n",time2*1000000,time2*1000000000);

//in similar way execute other two commands ,open and read

fd = open("/dev/dev",O_RDONLY );

//printf("fd = %d\n",fd);

for(i = 0; i < MAX ; i++)

{

gettimeofday(&start,NULL);

//invoke getpid call

system( read(fd,c,10));

//printf("%d\n",start.tv_usec);

}

gettimeofday(&end,NULL);

//printf("%d\n",(end.tv_usec - start.tv_usec));

time3 = ((end.tv_sec - start.tv_sec) + (end.tv_usec - start.tv_usec) / 1000000.0)/MAX;

 

//wtite the time taken to execute getpid to

printf("read(): %.10f %.10f\n",time3*1000000,time3*1000000000);

fprintf(fp,"read(): %.10f %.10f\n",time3*1000000,time3*1000000000);

}

----------------------------------------------------------

//output

//I have written output to standard output also , you can remove that

getpid(): 0.1690000000 169.0000000000    

open(): 0.1890000000 189.0000000000    

read(): 3.1300000000 3130.0000000000

------------------------------------------------------

//Makefile content

prob2.o : prob2.c    

         gcc -c  prob2.c                                                                                                                                      

prob2 : prob2.o                                                                                                                                                

       gcc -o prob2 prob2.o                                                                                                                                    

all   :                                                                                                                                                        

       gcc -o prob2 prob2.c                                                                                                                                    

clean:                                                                                                                                                          

       rm -rf prob2.o  

---------------------------------------

use

$make all

then execute as below

$./prob2

You might be interested in
Which function works best when you need to remove an element at a specific index in a list?
natka813 [3]

Answer:

You can use the pop() method to remove specific elements of a list. pop() method takes the index value as a parameter and removes the element at the specified index. Therefore, a[2] contains 3 and pop() removes and returns the same as output.

Explanation:

Hope it helps you!

8 0
3 years ago
You step out of your office and miss a telephone call. when you sit at your desk you notice that the voicemail light is blinking
Sauron [17]
The answer is <span>Unified Communications.  </span><span>You step out of your office and miss a telephone call. when you sit at your desk you notice that the voicemail light is blinking on your phone, you have a new email, and you have a transcribed instant message on your computer screen in the form of an instant message. your organization has most likely adopted Unified Communications type of technology.  </span>
6 0
3 years ago
Joshua needs to join in two cells together which of the following would perform the function
irina1246 [14]
=(Happy)&(Birthday) this is how it would be formatted 
7 0
3 years ago
PLEASE HELP!!!
BaLLatris [955]

leave (i'm pretty sure this is the answer)

3 0
3 years ago
Read 2 more answers
Your computer is once again out of hard drive and you want to see which folders are consuming the most space on your drive. Whic
sertanlavr [38]

Answer:

I would say cclrearner

Explanation:

This is what helped me with my computer so it may help you but try which one works for you

7 0
3 years ago
Other questions:
  • To add and remove chart elements, you can use the add chart element button in the charts layout group on the ____ tab.
    6·1 answer
  • Your car's engine, transmission, power steering, and brakes all require __________ inspection and changes.
    12·2 answers
  • A(n) _____ chart is drawn on the same worksheet as the data.
    9·1 answer
  • Does anyone know this page for drivers ed?
    9·1 answer
  • You wish to lift a 12,000 lb stone by a vertical
    7·1 answer
  • What is Computer categories
    9·1 answer
  • In the early days of photography, cameras were limited to professional photographers because of the knowledge needed to work the
    9·2 answers
  • Disadvantages of computer. ​
    9·1 answer
  • 3. Windows that are viewed as Web pages have<br> sections. **
    9·2 answers
  • Which of the following is a group of computer systems and computing hardware devices linked together through various communicati
    15·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!