PDA

View Full Version : Operating System- CS604 Assignment 1Spring 2011 idea solution



Vuhelper
04-15-2011, 02:36 AM
Operating System- CS604
Assignment # 1
Spring 2011
Marks: 20
Due Date
Your assignment must be uploaded before or on April 18, 2011
Objective
The objective of this assignment is to familiarize with the system calls.
Instructions
 Avoid Plagiarism. No marks will be given in case of cheating or copying from the
internet or from other students.
 Submit the assignment through your account on VULMS. No assignment will be
accepted through email after the due date.
 If you have any problem related to assignment, feel free to discuss it by email at
cs604@vu.edu.pk
Question # 1:
Read the following program carefully and write the output of the program. Explain each
line of code according to given numbering.
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
1……………… int main (void)
{
pid_t pid;
2………………………… pid = fork();
3…………………………. if (pid > 0)
{
int i;
4………………………… for (i = 0; i < 5; i++)
{
5………………… …………… printf(" I AM VU : %d\n", i);
6………………… …………… sleep(1);
}
exit(0);
}
7………………… ……… else if (pid == 0)
{
int j;
for (j = 0; j < 5; j++)
{
8……………………………… printf(" I have no child: %d\n", j);
sleep(1);
}
_exit(0);
}
else
{
9………………………………fprintf(stderr, "can't fork, error %d\n", errno);
10……………… … ………… exit (EXIT_FAILURE);
}
}

Xpert
04-18-2011, 04:09 PM
int main (void) Starts the main function
2 pid = fork ( ); The fork ( ) method will call and store the integer value in the pid variable. In case of Child “0” value returned while the parent will store the “process id” of the child. In case when fork fails it will be initialized by -1
3 if (pid > 0) This condition will be only true when fork failed.
4 for (i = 0; i < 5; i++) Limmitations of for loop are declared and the loop starts

5 printf(" I AM VU : %d\n", i);
Prints I AM VU and the value of I message on screen
6 sleep(1); Process sleeps
7 else if (pid == 0) Now this blok of code executes in parent process since fork returns the ID to the parent process from child. which is not 0.
8 printf(" I have no child: %d\n", j);
“I have no child” is printed on the screen
9 fprintf(stderr, "can't fork, error %d\n", errno);
If the given conditions are not true then this error message is send
10 exit (EXIT_FAILURE); system call will terminate the process abnormally as it fails.

snqaisar313
04-18-2011, 05:04 PM
thanks dear, good work for operating system

snqaisar313
04-18-2011, 05:07 PM
EXPERT YAR CS408 (hci) ka solution be send kro, as soon as possible

Xpert
04-18-2011, 07:00 PM
dear you have to post it then i can you don't post the assignments on the very first day then how i can help?