Building unix daemons - ipc using fifos

Assignment Help Computer Engineering
Reference no: EM13997727

Word-Count Client-Server

Important Reminder: As per the course Academic Honesty Statement, cheating of any kind will minimally result in receiving an F letter grade for the entire course.

The document first describes the aims of this project. It then gives the requirements as explicitly as possible. It hints at how the project may be implemented. It then briefly describes tools which may be used for this project. Finally, it lists exactly what needs to be submitted.

Aims

The aims of this project are as follows:

To introduce you to building Unix daemons.

To expose you to IPC using FIFOs.

To familiarize you with the Unix dynamic loading API.

Requirements

Write a client program with executable word-count and server program with executable word-countd. Between them, the client and server should be able to compute word-counts as per your previous projects, with the server computing the actual word-counts and the client merely invoking the server and displaying the results.

The server should be started using the command:

$ ./word-countd DIR_NAME

When started, the server should start up a daemon process running in directory DIR_NAME (which must exist). The initial server process should exit after printing the PID of the daemon process followed by a newline on standard output.

The daemon should listen for a request from a client on a well-known FIFO in directory DIR_NAME, creating the FIFO if it does not already exist. When a request is received, it should process it and return the results to the client.

The client should be run using the command:

$ ./word-count DIR_NAME WORD_CHAR_MODULE N STOP_WORDS FILE1...

where DIR_NAME specifies the directory for the server, WORD_CHAR_MODULE specifies the name of a dynamically-loaded module which defines a function isWordChar(), and the remaining arguments are as in your previous projects. If WORD_CHAR_MODULE, STOP_WORDS, FILE1... specify relative paths, then they are assumed to be relative to DIR_NAME.

When invoked, the client should send a request to the server using the well-known FIFO in DIR_NAME sending it the command-line arguments starting with WORD_CHAR_MODULE. The server should process the request concurrently in a separate worker process and return results to the client. The client should output on standard output the N most frequently occurring words in one-or-more files FILE1... which are not in the file STOP_WORDS.

A word is a maximal sequence of characters c for which the function isWordChar(c) in WORD_CHAR_MODULE returns non-zero.

Words which differ merely in case are regarded as identical.

The output should consist of N lines with each line containing a lower-cased word followed by a single space character followed by the count of that word across all files FILE1.... The lines should be sorted in non-increasing order by count; ties where words have the same count should be broken with the lexicographically greater word preceeding the lexicographically smaller word.

The program should handle files which do not necessarily end with newline.

If the arguments to either the word-countd or the word-count programs are in error, then that program should print a suitable error message on standard error and terminate.

Both programs should also detect any runtime errors (like memory allocation errors, I/O errors, process errors) and terminate after outputting a suitable error message on standard error. However, if a worker process encounters an error, it should not stop the main daemon process; ideally, it should signal the error to the client so that it can be reported by the client.

The program must meet the following implementation restrictions:

All communication between the client and server should be done using named pipes (FIFOs). (The details of the exact communication protocol are up to you)

Each client request should be handled by the server using a concurrent worker process spawned using the double-fork technique to avoid zombies.

The client should exit only after cleaning up all resources (including any client-specific FIFO's).

The worker process which handles each client request should clean up all resources before terminating.

The programs may assume that the the client command-line arguments starting with WORD_CHAR_MODULE can be contained within PIPE_BUF bytes using any reasonable scheme.

The server may assume that all distinct words in all of FILE1... and their counts can fit within memory.

There should not be any implementation restrictions on the size of entities except those defined by available resources. Hence there should not be any restriction on the size of a word or a line.

The following steps are not prescriptive:

1. Review the material on daemons, FIFOs and dynamically loaded modules. Design a protocol to communicate between your client and server. The protocol should also take care of the creation and cleanup of any client-specific FIFOs.

2. Start your client and server code using your code for prj1 or the solution.

3. Remove the hard-coded definition for what constitutes a word-char. Instead, add a additional argument to the program specifying the module and change the program to load the module and use the word-char definition provided by the module. Test.

4. Modify the program to become a daemon meeting all the specifications for word-countd except that instead of writing the results back to the client; instead have the worker process simply write the results to standard output (assuming you have not closed it). You can test by simply echo'ing a client request to your well-known FIFO.

5. Write a simple client program which when run, simply writes its arguments (starting with WORD_CHAR_MODULE) to the well-known FIFO. Test.

6. Modify your server to return the results to the client according to your protocol and modify the client to write those results onto standard output as per the specifications. Test.

7. Iterate until your client and server meet all the specifications.

Reference no: EM13997727

Questions Cloud

Find that location : Sitting stationary at some location not far above the Earth's surface is a charge of q = -0.320 nC. Is there any location where a single proton can be in equilibrium relative to this charge? Ignore the effects of drag (air resistance), buoyancy, w..
What elements are missing in performance management process : What important elements are missing in the performance management process? In what ways would improving the performance management process help improve discipline and morale at Modern Office Supply
Explain the organizational and societal functions of pr : For the organization and the issue you have chosen, explain how Public Relations should address both the organizational and societal audiences and what public relations tools can be used to do so.
What is the uncertainty in the acceleration due to gravity : What is the acceleration due to gravity on the surface of this hypothetical planet? What is the uncertainty in the acceleration due to gravity found above?
Building unix daemons - ipc using fifos : The aims of this project are as follows - To introduce you to building Unix daemons, to expose you to IPC using FIFOs and to familiarize you with the Unix dynamic loading API.
Ethical perspective has evolved throughout the program : Explain the role of ethics and social responsibility in developing a strategic plan, considering stakeholder needs.
Perform an internal environmental analysis : How you intend to ensure the organization's vision, mission, and people strategies and values statements are aligned with the proposed strategic plan.
Evaluates an organization''s innovation strategy : Write a paper of no more than 1,050 words that describes and evaluates an organization's innovation strategy.
Find the maximum ratio of m2 over m1 : For the situation below, find the maximum ratio of m2 over m1 for which block 1 does not slide. The pulleys are assumed to be massless, frictionless, and do not move. The coefficient of static friction between the inclined plane and mass one is 2..

Reviews

Write a Review

Computer Engineering Questions & Answers

  Mathematics in computing

Binary search tree, and postorder and preorder traversal Determine the shortest path in Graph

  Ict governance

ICT is defined as the term of Information and communication technologies, it is diverse set of technical tools and resources used by the government agencies to communicate and produce, circulate, store, and manage all information.

  Implementation of memory management

Assignment covers the following eight topics and explore the implementation of memory management, processes and threads.

  Realize business and organizational data storage

Realize business and organizational data storage and fast access times are much more important than they have ever been. Compare and contrast magnetic tapes, magnetic disks, optical discs

  What is the protocol overhead

What are the advantages of using a compiled language over an interpreted one? Under what circumstances would you select to use an interpreted language?

  Implementation of memory management

Paper describes about memory management. How memory is used in executing programs and its critical support for applications.

  Define open and closed loop control systems

Define open and closed loop cotrol systems.Explain difference between time varying and time invariant control system wth suitable example.

  Prepare a proposal to deploy windows server

Prepare a proposal to deploy Windows Server onto an existing network based on the provided scenario.

  Security policy document project

Analyze security requirements and develop a security policy

  Write a procedure that produces independent stack objects

Write a procedure (make-stack) that produces independent stack objects, using a message-passing style, e.g.

  Define a suitable functional unit

Define a suitable functional unit for a comparative study between two different types of paint.

  Calculate yield to maturity and bond prices

Calculate yield to maturity (YTM) and bond prices

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd