Assignment No. 02
CS604- Operating System
Tuesday 14th May 2013
To Learn and understand the concept of UNIX/Linux basic commands.
Lecture # 7 to 12
Please read the following instructions carefully before submitting assignment:
You will submit your assignment before or on due date on VU-LMS.
Assignment should be completed by your own efforts it should not be copied from internet, handouts or books.
You should submit your Word File via assignment interface at VU-LMS.
Assignment sent via Email will not be replied and accepted/graded in any case.
If the submitted assignment does not open or file is corrupt, it will not be graded.
For any query about the assignment, contact at firstname.lastname@example.org
Question: [Marks 20]
Write a simple C language program. Program has following main tasks to be performed.
Parent process creates child process using fork ().
Perform an IPC between related processes using pipe ().
Now specifically child process will do following.(1 mark on each step)
Child process should display its PID (process ID)
Child process should display its parent’s PID
Child process should take a string as input from user which would be its VU id.
Child should write this test string (VU student ID) using write () system call in IPC pipe.
Child process should take any value from 0 to 255 from user. After that child process exits and returns to the parent process.
Now specifically parent will perform following tasks .(1 mark on each step)
1. Parent process should display its PID (process ID).
2. Child process value returned to its parent by fork () and show return value.
3. Parent process wait for child process to complete its tasks
4. Parent process should read the message (VU student ID) written by child process and display it
5. Parent process should print length of string entered by student.
Sample output is given below. .(1 mark on each main step)
CHILD: I am the child process!
CHILD: Here’s my PID: 5667
CHILD: My parent’s PID is: 5666
CHILD: Enter your student id: bc12345678
CHILD: Student id is: bc12345678
CHILD: I am writing VU student to pipe…
CHILD: Enter any value from 0 to 255: 104
PARENT: I am the parent process!
PARENT: Here’s my PID: 5666
PARENT: Value returned by child code is: 104
PARENT: I am reading VU student id from pipe bc12345678
PARENT: Length of VU student ID is: 10
PARENT: Good work child!
Execute your program in Linux Ubuntu. Take screen shots of your program that you write in C,
Commands that you used to run your program in Linux Ubuntu and the output displayed by your
1) Do not write your program in other languages like Java, C++ etc. Write your program only in C
2) Do not execute your program in other operating systems like Windows, Mac etc. Execute your
program only in Linux Ubuntu flavor.
3) You should provide three screen shots. Required three screen shots that you have to provide are given
I) Screen shots of your complete program that you write in C. Your screen shots should display your
complete program code that you write in C.
II) Screen shot of Commands that you used to run your program in Linux Ubuntu.
III) Screen shot of final output of your program shown.
4) If you will copy your assignment then you will get zero marks with no leniency.
5) Each student should display his own complete VU student ID.
6) In your program’s output, each student should indicate the execution of parent and child processes codes by using the words PARENT: and CHILD: in the output display as shown in the sample output.
aste your screen shots in word file and then upload your assignment as a Word file. It should have name [YourRollNo.doc]
Your assignment must be uploaded/submitted at or before Tuesday, 14th May 2013.