1 / 10

Programming Project #1

Programming Project #1. CS-502 Operating Systems Spring 2006. Programming Assignment. Write a command called doit to execute another command and print out statistics Extend doit to become a basic shell that prompts for and executes commands

thao
Download Presentation

Programming Project #1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programming Project #1 CS-502 Operating SystemsSpring 2006 CS502 Spring 2006

  2. Programming Assignment • Write a command called doit to execute another command and print out statistics • Extend doit to become a basic shell that prompts for and executes commands • Extend your basic shell to execute commands in the background CS502 Spring 2006

  3. Purpose • To practice using the fork and exec facilities of Unix/Linux • To learn how to find and use on-line documentation about system calls and system facilities. • man pages • To be accustomed to speaking directly with the operating system CS502 Spring 2006

  4. Part 1: doit • doit command:– • Take another command as argument • Execute that command • Print out statistics about command • Must execute on a CCC or CS Linux system • May not use system() system call • Helpful hints:– • fork(), execve(), wait() • getrusage(), gettimeofday() CS502 Spring 2006

  5. Part 1 (output) % doit cat /etc/motd < print the current message of the day > < statistics about the cat command > CS502 Spring 2006

  6. Part 2: a basic shell • Repeatedly prompt for command lines • Execute each command and print out statistics, as in doit • Implement special “built-in” commands • exit • ch dir • Special conditions • Exit on end of file • Complain about illegal commands • Check for line length, number of arguments CS502 Spring 2006

  7. Part 2 output % doit ==>cat /etc/motd < print the current message of the day > < statistics about the cat command > ==>cd dir < current directory is changed to dir > ==>ls < listing of files in current directory > < statistics about this ls command > ==>exit % < back to the Unix prompt > CS502 Spring 2006

  8. Part 3: Background execution • Modify shell to support execute commands in background, indicated by ‘&’ character • Causes shell to prompt for next command before previous command is complete • jobs built-in command lists background tasks in progress • Report completion at next opportunity CS502 Spring 2006

  9. Part 3 output % doit ==>numbercrunch & [1] 12345 < indicate background task #1, process id > ==>jobs [1] 12345 numbercrunch < print process id and command name for tasks > ==>ls < listing of files in the current directory > < statistics about this ls command > ==>cat /etc/motd [1] 12345 Completed < indicate background job done > < statistics about numbercrunch command > < print the current message of the day > < statistics about this cat command > ==>exit % < back to Unix prompt > CS502 Spring 2006

  10. Project submission • Due Monday, February 20 at start of class • Submit via turnin • command = ‘/cs/bin/turnin’ on CCC machines • classname = ‘cs502’ • assignment = ‘project1’ • Bring copy of code, test case, and printout to class. CS502 Spring 2006

More Related