联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> C/C++编程C/C++编程

日期:2022-03-02 11:14

Operating Systems Project 2

University at Albany

Department of Computer Science

CSI 500

Project 2

Assigned: Monday, February 21st, 2022

Due: Wednesday, March 2nd by 11:59 PM. Submissions with 20% penalty will be

Accepted by Monday, March 7th by 11:59 PM.


Purpose

To develop an interprocess communication through the use of both fork() and pipe() process

system calls.


What to Do

You are to modify Project 1 such that the data sharing between producer and consumer is done

by reading and writing through a shared pipe. The data shared by the producer is encoded and

shared with the consumer. The consumer decodes the message, modifies it, and saves it. The

files containing the original data, the encoded version of it, and the modified version of it are to

be stored in files with the extension inpf, binf, and outf respectively. Details regarding such files

are provided by the table below.


File Characteristics

Naming Contents Created by Accessed by

filename.inpf any ASCII character user producer

filename.binf (0 and 1) ASCII characters producer consumer

filename.outf Modified version of .inpf consumer user


1. The Producer

Creates a pipe and uses it to share all the encoded frames with the consumer in addition to all the

other tasks defined in the Project 1 document.


2. The Consumer

In addition to all tasks defined in the Project 1 document, the consumer will read all encoded

frames through the shared pipe, converts all lowercase characters to uppercase and write the

modified version of the received data into a file with extension outf.


3. Details

The following are the tasks to be done for this project:

a. Create a simple consumer/producer application, as discussed in this document, that

uses a shared pipe for communication.

b. The filename.inpf will contain all the original data to be shared between producer and

consumer.


c. The filename.binf is the binary (0’s and 1’s) version of the original data. It is created

by the producer, shared with the consumer through the pipe, and processed by the

consumer.

d. The filename.outf is the modified version of filename.inpf where all lower case letters

have been replaced by upper case letters. The consumer is responsible for the creation

of filename.outf.


3. What to Submit


a) Your solution must be uploaded to Blackboard.

b) Copies of the source files for both your producer and your receiver as well as their

executables, and any data you used for testing your solution.

c) You are to place all files that are related to your solution to a .zip file. Your .zip file

must follow the format: CSI 500 Project2 Your Name.

d) The documentation associated with your solution must be typeset in MS Word. Marks

will be deducted if you do not follow this requirement.



Your program should be developed using GNU versions of the C compiler. Your solution must

use Ordinary Pipes (Lecture 03 – Interprocess Communication; slides 31-32). It should be

layered, modularized, and well commented. The following is a tentative marking scheme and

what is expected to be submitted for this assignment:


1. External Documentation (as many pages necessary to fulfill the requirements listed below.)

including the following:

a. Title page

b. A table of contents

c. [20%] System documentation

i. A high-level data flow diagram for the system

ii. A list of routines and their brief descriptions

iii. Implementation details

d. [5%] Test documentation

i. How you tested your program

ii. Test sets must include

- input files .inpf; binary files .binf; and output files .outf.

- You may use the quote below as one of your testing files. You

may name it as winVirus.inpf.

e. [5%] User documentation

i. How to run your program

ii. Describe parameter (if any)


2. Source Code

a. [65%] Correctness

b. [5%] Programming style

i. Layering


ii. Readability

iii. Comments

iv. Efficiency


Joke:

McAfee-Question: Is Windows a virus?

No, Windows is not a virus. Here's what viruses do:

1. They replicate quickly-okay, Windows does that.

2. Viruses use up valuable system resources, slowing down the system as they do so-okay,

Windows does that.

3. Viruses will, from time to time, trash your hard disk-okay, Windows does that too.

4. Viruses are usually carried, unknown to the user, along with valuable programs and

systems. Sign... Windows does that, too.

5. Viruses will occasionally make the user suspect their system is too slow (see 2.) and the

user will buy new hardware. Yup, that’s with Windows, too.

Until now it seems Windows is a virus but there are fundamental differences:

Viruses are well supported by their authors, are running on most systems, their program

code is fast, compact and efficient and they tend to become more sophisticated as they

mature.

So Windows is not a virus. It's a bug.


相关文章

版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp