C programming for distributed systems

Description:

You are asked to develop a replicator (client) that distributes a large job over a number of computers (a server group) on a single switched LAN (our Linux lab). In this assignment, a large (simulation) job can be divided into a number of small jobs, each of which can be assigned to one machine from the server group for execution. The execution results of the small jobs can be merged once all of them successfully terminate.

System Architecture:

  client             server1       server2        server3 ...
     |                      |                 |                  |
     |                      |                 |                  |
     |       LAN        |                 |                  |
     |------------------|--------------|---------------|-----

The client and servers are running Network File System (NFS) so that user files are visible at $HOME directory. You may want to set up the following environment:

  • $HOME/replicate.hosts: a list of (server) hostnames which participate in the simulation.  There is no reason why your implementation cannot support up to 10 servers.
  • $HOME/replicate_out: the directory that stores the small job execution result.

The simulation program ” hyper_link ” (binary) is provided. In this assignment, you don’t need to know or care what “hyper_link” does, and actually it is a computing intensive (CPU demanding) simulator. The command line arguments of “hyper_link” are job# 1000000 999 1 2 2 100, where the job number determines the number of small jobs in your simulation. To allow the client to run a large job, the job# should be given in a tuple: start, end, and step. For example, the command (from the client) “hyper_link 1 100 1 1000000 999 1 2 2 100” yields 100 small jobs with the job# starting from 1 to 100. Each small job produces a screen output (see example below) at the end (if finished successfully). Your code needs to redirect the output to a file and save it in $HOME/replicate_out. For example (on the server side),

./hyper_link 1 1000000 999 1 2 2 100

will produce a screen output looks like (it takes approximately 2 minutes on spirit):
1:1000000:999:2:0.5:1.125193e+00:2.454346e-04:6.251640e-01:2.205078e-04:0.000000e+00:0.000000e+00

Requirements:

  1. The communications between the replicator and servers are achieved through remote procedure calls in the client-server fashion.  You can only use C programming lanuage to complete this project.  Your implementation should not rely on any extra library (to compile your code).  
  2. A user interface is required for the replicator to control the server. A command line interface will be acceptable. A (working) graphic user interface (GUI) will impress the instructor and earn up to 20 bonus credits. Your client interface should at least support the following operations.
    • start a large job. For example: hyper_link 1 100 1 1000000 999 1 2 2 100 (start 100 small jobs with job number starting from 1 to 100)
    • show the current CPU load of a certain server (if the server is active).
    • show the current server status (active or inactive).
    • stop a certain server.
    • restart a certain server.
    • For those who are going to implement GUI, you need to create an icon for each server, and show the server status in the real time, e.g., the CPU load (with the mark of hi-threshold), active/inactive, etc.
    • The hi-threshold and lo-threshold can be set to the pre-determined values (as long as they are reasonable).  Alternatively, you will impress the instructor by implementing the configurable threshold values during the run.  If that is the case, you have to provide two extra commands that set the values.
  3. The replicator has to make sure all small jobs are successfully finished.
    • If a server crashes (or not responsive), the running job (not finished yet) will be killed and rescheduled (at a certain time per your design) for execution.
    • If a server CPU load exceed the preset threshold (the higher threshold), the replicator stops the server (and therefore kills the job).
    • The replicate should keep polling the CPU load of the stopped server. Once the load becomes lower than the lower threshold (a preset value), the server should be reactivated to run the jobs.
    • The replicator can also stop any server (through user interface) if needed. Once happened, the unfinished job will be killed.
    • If a job terminates abnormally (e.g., being killed), the replicator has to reschedule the job execution later.
  4. Makefile: you need to provide a Makefile that allows the instructor to compile your code by simply typing “make”.
  5. Write-up: you are required to write a README document (in txt format) that describes your project design detail and the execution sequence (with the commands). In particular, please explicitly state which part, if there is any, does not work and the possible reasons why that module does not work. For those working modules, please give a brief (in short) sample output.

Hints:

  1. RPC programming: a brief (Sun) RPC programming introduction is given in the class.
  2. CPU load: please check /proc/loadavg for the CPU load information in Linux.
  3. Linux signal: the signal mechnism must be used to control the simulation execution at the servers.

Encrypting, Decrypting, and Hashes

In this work, you are going to use the program openssl to encrypt, decrypt, and hash some values. We are going to use real algorithms that are used in modern communications.

At a command prompt, type “openssl ciphers” to see the ciphers that are available with this installation of openssl.

First, we will attempt to encrypt and then decrypt a string. After the first command, you’ll need to enter a password that will derive your encryption key.

  • echo “CIS3100” | openssl enc -aes-256-cbc -a 
  • echo | openssl enc -aes-256-cbc -a -d 

You should have returned “CIS3100” (our original plaintext) at this point. To break down further what’s happening, the echo command is used to provide text input to openssl. Then, we call the program openssl; “enc” says we are using the encryption/decryption module; “-a” is encoding the data in base64; and “-d” is specifying that this will be a decryption operation.  

Now, let’s try hashing a password: 

  • openssl passwd -salt “salt” “password” 

In this example, the returned result will be your hash of a password. The hash will be the same for each time you run this with the same parameters. However, it is not easily reversible. To break down further what’s happening, “-salt” is specifying a value to be a salt, an additional piece of data to add complexity to your hash and make it harder for someone to brute force your list of hashes; “password” (in this case) is your secret password value.  

Now, for your submission, you’ll be encrypting, decrypting, or hashing the following values and submitting those based on the parameters given. Remember that capitalization matters, and be careful to remove any line breaks in the output when you copy and paste.  

  1. Encrypt “CIS3100” using the password “password” and the algorithm “aes-128-cbc”.
  2. Decrypt “U2FsdGVkX18O3AUltiVEAyBDcfesmyojn8pU6zXWUu8x4LHsrV3Q+BWRR2wjC3Xl” using the password “password” and the algorithm “aes-128-cbc”.
  3. Hash the password “MySecret” using the salt “pepper”.
  4. Decrypt “U2FsdGVkX18idu4Cp/KbOanB726etAlbcmI/yeihAoh01Md5EOkb8Ld/
    Dk88CDManZKZ4FH8ruo7THx5boOOXz9LkMiqh47Dc2kA8omOcGwjJo
    tuHyq54rlq17bV9srO025vbZ+jRRHrwbd+iNQaMQ==” using the
    password “password1” and algorithm “aes-256-cbc” and then decrypt
    that result using the password “password2” and algorithm “aes-256-cbc”.

Parameters

  • The work should be double-spaced, 12-point Times New Roman font, with one-inch margins
  • Use APA for citing references and quotations 

Create an Excel workbook that

     Create an Excel workbook that uses the built-in date & time functions in Excel to   answer the following questions:1. How many days have you been at Ole Miss,   since your first date of attendance? (it’s okay to “guess” on the   start date)2. What day of the week will the 8th of November occur on in   2018?3. How many “net working days” (e.g., Monday – Friday) are   there between August 1, 2018 and November 30, 2018?4. A bill that your   company received must be paid 75 days before the last day of this calendar   year.   What date will that be?   What month will that be?   What day of the month?   What day of the week?5. A   manufacturing process takes 157 hours to run. If it starts running at 12:30   p.m. on May 15, 2018, what date and time will it finish? What would the end   date/time be if it could be completed in 88 hours?       

Final Research paper on topic “The Role of Network Administrators in the Detection of Malicious Activities”

Final Research paper on topic “The Role of Network Administrators in the Detection of Malicious Activities”

Subject: Business Network Systems Management – 03478 – Sp22

Book: The-practice-of-system-and-network-administration-volume-1, 3rd-edition,

      Author: Thomas A. LimoncelliChristina J. HoganStrata R. Chalup

Important Notes:

———–  

** The final paper will need to be 8-10 full pages long (double-spaced, 12 pt font, 1″ margins, EXCLUDING graphics, cover page, bibliography, tables, appendices, extra white space, and any other non-textual content). 

** The page length calculation of your submitted work will include just the body of the paper without graphics, etc. formatted according to the specified guidelines. 

** You will need to include at least 6 authoritative references. At least 3 of those references must be from peer-reviewed articles or other published authoritative texts. You are also limited to 3 direct quotes of no more than 2 sentences each within the body of the paper. 

** The paper should expand upon the information presented in the textbooks, not just rehash the same material.  

** The papers will also be submitted to a plagiarism detection application to verify that the work submitted is original. 

as below

 INSTRUCTIONS

For this assignment, you must analyze a dataset and provide the results of your analysis. You should not interpret the output at this stage. Please refer to the data file in the week 1 resources.

In the video game dataset provided, you can explore two categorical or grouping variables (independent variables), which include the type of player (police officer or thief) and advertising period (advertising period or no advertising period). You can explore the data to determine if the number of video game visits and/or the amount of visit time (dependent variables) are different for the levels of the two independent variables. If the data are normally distributed, you could use independent samples t-tests as your inferential model to compare the two levels of each independent variable (you would run two separate t-tests). If you analyze both independent variables simultaneously with their interaction term, you will use a two-way analysis of variance.

Your paper should consist of the following components:

  1. Describe the problem and state the hypotheses to be tested.
  2. Include the appropriate descriptive statistics and visuals in order to describe the characteristics of the data and include a written summary of the data.
  3. Address all relevant statistical assumptions and provide a written summary of the findings.
  4. Describe the results of the inferential analyses implemented to address each hypothesis.

Length: 5-7 pages, not including title and reference pages

References: Include a minimum of 5 scholarly resources.

Computer Architecture Feb 7

Assignment Content

  1. We are now in Week 4 so you all should be more familiar with the Architectural components and processes of a computer. To further enhance your knowledge on this topic, you will be answering the questions below.   Remember to format your work in an APA style (Cover Page is a Must) and provide proper citation and references for the paper. Plagiarism is not allowed and I will give you an automatic zero if I discover that any part of your work was plagiarized either from the internet or another student’s paper.   For this week’s assignment, Please provide a write-up as an answer to the question below;  
    • Compare the computer architecture of modern processors from two different vendors in terms of memory, speed and expansion bus.
    • Explain the concept of virtual memory and its role in memory management and in memory protection.
    • Provide any five differences between logical addressing and physical addressing in operating systems.
    • What are the benefits of using scripts to automate operating systems tasks?
    • You should submit at least TWO FULL PAGES OF CONTENT…meaning sources, title, etc. do NOT count…be sure to include any reference material you used…      

discussion

 Do you agree with the following statement: “With proper planning, it is possible to eliminate most/all risks from a project”? Why or why not? If you can, explain your rationale with an example.

Textbooks:

Project Management: Achieving Competitive Advantage (5th ed.) Jeffery K. Pinto