Assignment No. 02 |
Total Marks:20 | ||
Due Date: | |||
Spring 2013 |
|||
Tuesday 14th May | |||
CS604- Operating System |
|||
2013 | |||
Objectives:
To Learn and understand the concept of UNIX/Linux basic commands.
Lecture Covered:
Lecture # 7 to 12
Instructions:
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 cs604@vu.edu.pk
GOOD LUCK
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)
- Parent process should display its PID (process ID).
- Child process value returned to its parent by fork () and show return value.
- Parent process wait for child process to complete its tasks
- Parent process should read the message (VU student ID) written by child process and display it on screen.
- Parent process should print length of string entered by student.
Sample output is given below. .(1 mark on each main step)
SAMPLE OUTPUT
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
CHILD: Goodbye!
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 program.
Note:
1) Do not write your program in other languages like Java, C++ etc. Write your program only in C language.
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 below.
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.
Uploading Instructions:
- Paste your screen shots in word file and then upload your assignment as a Word file. It should have name [YourRollNo.doc]
Deadline:
Your assignment must be uploaded/submitted at or before Tuesday, 14th May 2013.