Discussions 3

 Select from the following list four (4) topics and discuss. Use only 50-words max per topic to discuss and present your answer.  The discussion questions this week are from Chapter’s 3 & 4  (Jamsa, 2013).Chapter 3 topics:

  • Define and describe PaaS.
  • List the benefits of PaaS solutions.
  • Describe potential disadvantages of PaaS.
  • Describe how a cloud-based database management system differs from an on-site database.
  • List the computing resources normally provided with a PaaS.

Chapter 4 topics:

  • Define and describe IaaS.
  • Define and describe system redundancy. Discuss how you might use IaaS to implement a redundancy plan.
  • Define and describe load balancing. Discuss how you might use IaaS to implement load balancing.
  • Define and describe NAS. Assume you must implement a shared file system within the cloud. What company would you select? Why? What costs should your client expect to pay for cloud-based data on a gigabyte (GB) basis?
  • Define and describe colocation. Discuss how you might use IaaS to implement colocation.
  • Compare and contrast a cloud-based disk storage device (with a file system) with a cloud based database.
  • Compare and contrast physical, dedicated virtual, and shared virtual servers. Search the web for companies that provide each. What cost should a customer expect to pay for each?

NOTE: You are required to use at least two-peer reviewed sources (besides your textbook) to answer the above questions. 

Needs help with similar assignment?

We are available 24x7 to deliver the best services and assignment ready within 3-4 hours? Order a custom-written, plagiarism-free paper

Get Answer Over WhatsApp Order Paper Now

Technology Acceptance Model in Leadership context

This week’s journal article was focused on how information and communication innovation drives change in educational settings. The key focus of the article was how technology-based leadership has driven the digital age. Also, that the role of technology leadership incorporates with the Technology Acceptance Model (TAM).

In this paper, address the following key concepts:

  1. Define TAM and the components.
  2. Note how TAM is impacting educational settings.
  3. Give an overview of the case study presented and the findings.

Be sure to use the UC Library for scholarly research. Google Scholar is also a great source for research. Please be sure that journal articles are peer-reviewed and are published within the last five years.

The paper should meet the following requirements:

· 3-5 pages in length (not including title page or references)

· APA guidelines must be followed. The paper must include a cover page, an introduction, a body with fully developed content, and a conclusion.

· A minimum of five peer-reviewed journal articles.

The writing should be clear and concise. Headings should be used to transition thoughts.

Needs help with similar assignment?

We are available 24x7 to deliver the best services and assignment ready within 3-4 hours? Order a custom-written, plagiarism-free paper

Get Answer Over WhatsApp Order Paper Now

title: ‘Assignment 02: Process State Simulation’ author: ‘CSci 430: Introduction to Operating Systems’ date: ‘Fall 2020’

In this assignment you will simulate a three-state process model (ready, running and blocked) and a simple list of processes, like the process control block structure as discussed in Chapter 3. Your program will read input and directives from a file. The input describes events that occur to the processes running in the simulation. These are the full set of events that can happen to and about processes in this simulation:

Event Description

new A new process is created and put at tail of the ready queue

done The currently running process has finished and will exit the system

block eventId The currently running process has done an I/O operation and

is waiting on an event with the particular eventId to occur

unblock eventId The eventId has occurred, the process waiting on that event should

be unblocked and become ready again.

CPU Simulate the execution of a single CPU cycle in the simulated system.

The system time will increment by 1, and if a process is currently

running on the CPU, its time and time quantum will be increased.

The increase of the process time quantum used is how we determine when

a process has exceeded its allotted time and needs to be returned back

to the ready queue.

In addition to these events, there are 2 other implicit events that need to occur before and after every simulated event listed above.

Action Description

dispatch Before processing each event, if the CPU is currently idle, try and dispatch

a process from the ready queue. If the ready queue is not empty, we will

remove the process from the head of the ready queue and allocate it the

CPU to run for 1 system time slice quantum.

timeout After processing each event, we need to test if the running process has

exceeded its time slice quantum yet. If a process is currently allocated

to the CPU and running, check how long it has been run on its current

dispatch. If it has exceeded its time slice quantum, the process should

be timed out. It will be put back into a ready state, and will be pushed

back to the end of the system ready queue.

The input file used for system tests and simulations will be a list of events that occur in the system, in the order they are to occur. For example, the first system test file looks like this:

—– process-events-01.sim ——–

new

cpu

cpu

cpu

new

cpu

cpu

cpu

cpu

block 83

cpu

cpu

unblock 83

cpu

cpu

done

cpu

cpu

cpu

cpu

———————————-

The simulation you are developing is a model of process management and scheduling as described in chapter 3 from this unit of our course. You will be implementing a simple round-robin scheduler. The system will have a global time slice quantum setting, which will control the round-robin time slicing that will occur. You will need to create a simple ready queue that holds all of the processes that are currently ready to run on the CPU. When a process is at the head of the ready queue and the CPU has become idle, the system will select the head process and allocate it to run for 1 quantum of time. The process will run on the CPU until it blocks on some I/O event, or until it exceeds its time slice quantum. If it exceeds its time slice quantum, the process should be put back into a ready state and put back onto the end of the ready queue. If instead a block event occurs while the process is running, it should be put into a blocked state and information added to keep track of which event type/id the process is waiting to receive to unblock it. In addition to timing out or becoming blocked, a running process could also finish and exit the system.

Your task is to complete the functions that implement the simulation of process creation, execution and moving processes through the three-state process event life cycle. You will need to define a process list for this assignment, using an STL container like a list or a map. The Process class will be given to you, which defines the basic properties of processes used in this simulation. But you will need to write methods for the ProcessSimulator and define your process list, ready queue, and other structures to keep track of blocked processes and the events they are waiting on.

Unit Test Tasks

There are 3 classes given to you for this assignment, defined in the ProcessState.[cpp|hpp], Process.[cpp|hpp], and ProcessSimulator.[cpp|hpp] files respectively. You will mostly need to add code and functions to the ProcessSimulator class. You probably will not need to make any changes to the ProcessState type nor the Process class, though if you feel it makes your solution or approach easier, you can make changes or additions as needed to those classes.

You should probably begin by familiarizing yourself with the ProcessState enumerated type that is give to you. This is a user defined data structure that simply defines an enumerated type of the valid process states that processes can be in in your simulation. These correspond to the 3/5 process states from our textbook, e.g. NEW, READY, RUNNING, BLOCKED and DONE. For your simulation, processes will pretty much be in one of the READY/RUNNING/BLOCKED states. You will need to handle the creation of NEW processes, but in your simulation when a NEW process enters the system it should immediately be transitioned into a READY state and added to the end of the ready queue, so it will not stay in the NEW state long enough to see this state normally.

The other class that is given to you for this assignment is the Process class defined in the Process.hpp header file and the Process.cpp implementation file. The Process class should define most all of the information you will need to keep track of the current state and information about processes being managed by your simulation. For example, if you look in the Process header file you will see that a Process has member variables to keep track of the processes unique identifier (its pid), the state the process is currently in, the time when the process entered the system and was started, etc. For the most part, you should only need to use the public functions given for the Process class to create and manage the processes you will need to implement your simulation.

As a starting point, just like in assignment 1, you should begin with the unit tests given to you in the assg02-tests.cpp file. The first test case in the unit tests actually test the Process class. These tests should all be passing for you. You can look at that code to get an idea of how you should be using the Process class in your simulation.

Your work will begin with the second test case, that starts by testing the initial construction and setup of the ProcessSimulator, then tests the individual methods you will need to complete to get the simulation working.

So for this assignment, you should start by getting all of the unit tests to pass, and I strongly suggest you work on implementing the functions and passing the tests in this order. You will need to perform the following tasks.

You should start by getting the initial getter function tests to work in the second test case. We did not give you the implementation of the constructor for the ProcessSimulator class, so you will need to start with a constructor that specifies the system time slice quantum and saves that value. The other functions that are tested in this first unit test are things like getNextProcessId(), getNumActiveProcesses(), readyQueueSize(), blockedListSize(), etc. You will need to initialize member variables in the constructor, like the timeSliceQuantum, systemTime, nextProcessId, etc., and modify some or all of these getter methods to return the member variable value. I would suggest that you start by simply hard coding the expected initial values you need to return from these functions and just get these tests to pass. Then later on as you are forced to implement more, you will add in the actual code you will need in these methods. Most of these methods are used for debugging the unit tests, so that we can query different properties of the current state of your simulation and see if they return the expected value or not.

Implement the newEvent() function. The newEvent() function is called whenever a “new” occurs in the simulation. Basically you need to create a new process, assign it the correct next process id, make the process ready, and add it to the end of your ready queue. I would suggest again you work on implementing code to get the unit tests to pass in the order given in the third unit test. For example, just get the check of the sim.getNextProcessId() == 2 to work first by defining a member variable in your ProcessSimulator that keeps track of the next process id that will be assigned and returns it in this function. You will want to use the constructor for the Process and the ready() member function of the Process in your implementation of newEvent().

Implement the dispatch() function. There are two actions that don’t directly correspond to explicit events in our simulation. Later on when we get to implementing the whole simulation, the dispatch() should basically occur before you process the next explicit event of the simulation (and the timeout() will always occur after you process each explicit event). The first unit test of dispatch() are where you may need to implement a real ready queue (you could probably fake it or ignore it through the previous unit tests). Before you work on defining a queue structure for your ready queue, you will need to define some mechanism by which you keep track of whether or not the CPU is currently idle or is currently running a process, and if it is running a process you need to know which process is currently running on the CPU.

Implement basic cpuEvent() CPU cycles. The cpuEvent() is relatively simple. The system time should be incremented by 1 every time a CPU event occurs. Also, if a process is currently running on the CPU, its timeUsed should be incremented by 1 and its quantumUsed as well. You should use the cpuCycle() member function of the Process class to do the work needed to increment the time used and quantum used of the current running process.

Implement the timeout() function. This is the other implicit action needed for your simulation. The basic thing that timeout() should do is to test if the quantumUsed of the current running process is equal to or has exceeded the system time slice quantum. If it has, then the process needs to be timed out, which means it goes back to a ready state and is returned back to the tail of the ready queue. You should use the isQuantumExceeded() and timeout() member functions from the Process class in your implementation of the simulation timeout() member function.

There is a test case after the timeout() test case that does some more extensive testing of a dispatch/cpu/timeout cycle. Hopefully if you implemented these 3 functions well, these tests will be passing as well from your implementations of dispatch(), cpuEvent() and timeout().

Implement the blockEvent() simulation function. Besides the round robin scheduling of processes, your simulation will also simulate blocking and unblocking on simulated I/O or other types of events. An event in our simulation is simple, we just abstractly say that some event of a given unique eventId will occur, and that processes block until this eventId occurs, when they become unblocked. In your simulation, we simplify things and say that only 1 process can ever be waiting on any particular eventId. In some real systems it is possible for 1 event to cause multiple processes to become unblocked, but we will not implement that idea here.

The blockEvent() function should put the current running process into a BLOCKED state, and should record the eventId that the process is now waiting on. You should use the block() Process member function in your implementation of blockEvent().

Implement the unblockEvent() simulation function. You would not need this for the previous unit test, but now you need to have some way to find out which process is blocked waiting on a particular eventId to occur. You could just do a simple search of your process list to find the blocked process waiting on the particular eventId. In the example solution I will post after this assignment, I used an STL map, to map from an eventId to a process id, and thus be able to directly query the map to find which process should be unblocked when an eventId occurs. However you implement keeping track of the mapping, once you identify the process that should be unblocked, you should use the unblock() member function of the Process class in your unblockEvent() function. You will also need to put the blocked process back onto the tail of the ready queue when it unblocks.

Implement the doneEvent() simulation function. This function simulates a process finishing and exiting the system. There is no done() function in the Process class, though you could add one if you think you need it. But for a done event, you can simply remove the process from the list of active processes (for example take it out of your process list).

System Tests: Putting it all Together

Once all of the unit tests are passing, you can begin working on the system tests. Once the unit tests are all passing, your simulation is actually working correctly. But to test a full system simulation we have to add some output to the running simulator.

I will give up to 5 bonus points for correctly adding the output and getting all of the system tests to pass as well for this assignment. For the ProcessSimulator, you have already been given the implementation of the runSimulation() function that is capable of opening one of the process event simulation files, reading in each event, and calling the appropriate function you implemented above while working on the unitTests.

As with the previous assignment, the assg02-sim.cpp creates program that expected command line arguments, and it uses the ProcessSimulator class you created to load and run a simulation from a simulation file. The command line process simulator program expects 2 arguments. The first argument is the setting for the system time slice quantum to use. The second is the name of a process events simulation file to load and run. If the sim target builds successfully, you can run a system test of a process simulation manually by invoking the sim program with the correct arguments:

$ ./sim

Usage: sim timeSliceQuantum events-file.sim

Run process simulation on the given set of simulated process events file

timeSliceQuantum   Parameter controlling the round robin time slicing

                     simulated by the system.  This is the maximum

                     number of cpu cycles a process runs when scheduled

                     on the cpu before being interrupted and returned

                     back to the end of the ready queue

events-file.sim    A simulation definition file containing process

                     events to be simulated.

So for example, you can run the simulation from the command line with a time slice quantum of 5 on the first event file like this:

$ ./sim 5 simfiles/process-events-01.sim

————————————————————————

Event: new

<Simulation> system time: 1

  timeSliceQuantum      : 5

  numActiveProcesses    : 1

  numFinishedProcesses  : 0

  CPU

  CPU

  Ready Queue Head

  Ready Queue Tail

  Blocked List

  Blocked List

————————————————————————

Event: cpu

<Simulation> system time: 2

  timeSliceQuantum      : 5

  numActiveProcesses    : 1

  numFinishedProcesses  : 0

  CPU

  CPU

  Ready Queue Head

  Ready Queue Tail

  Blocked List

  Blocked List

… output snipped …

We did not show all of the output, the simulation will run to time 16 actually for this simulation. To complete the simulator, you simply need to output the information about which process is currently running on the CPU, which processes are on the Ready Queue (ordered from the head to the tail of the queue), and which processes are currently blocked. If you look at the file named simfiles\process-events-01-q05.res you will see what the correct expected output should be from the simulator.

In order to pass the system tests, you will need to do some additional work to output the contents of the CPU, ready queue and blocked list. You will need to add output to display your ready and blocked list items, since it was left up to you to decide how to implement these data structures. The Process class has a defined operator<<() that you can reuse to display the state information for your processes. But you will need to add some code in the toString() method of the ProcessSimulator to display the contents of your CPU, ready queue a blocked list.

For example, lets say you used a simple integer called cpu that holds the pid of the process currently running on the CPU. Lets further say you have a vector or a regular C array of Process items to represent your process control block, and you index into this array using the pid. Then you could output the current running process on the CPU with code similar to this in your toString() method.

// Assumes processControlBlock is a member variable, and is an array or a

// vector of Process objects that you create when a new process is simulated

// Further  assumes the member variable cpu holds the pid of the running process

// first check and display when cpu is idle

if (isCpuIdle() )

{

  stream << ”   IDLE” << endl;

}

// otherwise display process information using overloaded operator<<

else

{

  Process p = processControllBlock[cpu];

  stream << ”    ” << p << endl;

}

You would need to add something like this so that the process that is on the CPU is correctly displayed in the simulation output. Likewise you need to do similar things to display the processes on the ready queue and the blocked list, though of course you will need loops to go through and output/dispaly all such processes in either of these states in the appropriate output location.

If you get your output correct, you can see if your system tests pass correctly. The system tests work simply by doing a diff of the simulation output with the correct expected output for a simulation. You can run all of the system tests like this.

$ make system-tests

./run-system-tests

System test process-events-01 quantum 03: PASSED

System test process-events-01 quantum 05: PASSED

System test process-events-01 quantum 10: PASSED

System test process-events-02 quantum 03: PASSED

System test process-events-02 quantum 05: PASSED

System test process-events-02 quantum 10: PASSED

System test process-events-03 quantum 05: PASSED

System test process-events-03 quantum 15: PASSED

System test process-events-04 quantum 05: PASSED

System test process-events-04 quantum 11: PASSED

===============================================================================

System test failures detected (5 tests passed of 10 system tests)

The most common reason that some of the system tests will pass but some fail is because the output of the processes on the blocked list is not in the order expected for the system tests. The processes on the ready queue need to be listed in the correct order, with the process at the front or head of the queue output first, down to the tail or back of the queue as the last process.

Likewise the system tests expect blocked processes to be listed by pid, so that the smallest blocked proces by pid is listed first, then the next pid, etc. I consider it mostly correct (4/5 bonus points) if the only failing system tests are failing because you do not correctly order the output of the blocked processes. But it is definitely incorrect to not order the ready processes by the ready queue ordering, so issues with the ready queue ordering mean few or not bonus points for this part.

Assignment Submission

In order to document your work and have a definitive version you would like to grade, a MyLeoOnline submission folder has been created named Assignment-02 for this assignment. There is a target in your Makefile for these assignments named submit. When your code is at a point that you think it is ready to submit, run the submit target:

$ make submit

tar cvfz assg02.tar.gz ProcessSimulator.hpp ProcessSimulator.cpp

  Process.hpp Process.cpp ProcessState.hpp ProcessState.cpp

ProcessSimulator.hpp

ProcessSimulator.cpp

Process.hpp

Process.cpp

ProcessState.hpp

ProcessState.cpp

The result of this target is a tared and gziped (compressed) archive, named assg02.tar.gz for this assignment. You should upload this file archive to the submission folder to complete this assignment. I will probably be also directly logging into your development server, to check out your work. But the submission of the files serves as documentation of your work, and as a checkpoint in case you keep making changes that might break something from when you had it working initially.

Requirements and Grading Rubrics

Program Execution, Output and Functional Requirements

Your program must compile, run and produce some sort of output to be graded. 0 if not satisfied.

12.5 pts each (100 pts) for completing each of the 8 listed steps in this assignment to write the functions needed to create the ProcessSimulator.

+10 bonus pts if all system tests pass and your process simulator produces correct output for the given system tests.

Program Style and Documentation

This section is supplemental for the second assignment. If you use the VS Code editor as described for this class, part of the configuration is to automatically run the uncrustify code beautifier on your code files everytime you save the file. You can run this tool manually from the command line as follows:

$ make beautify

uncrustify -c ../../config/.uncrustify.cfg –replace –no-backup *.hpp *.cpp

Parsing: HypotheticalMachineSimulator.hpp as language CPP

Parsing: HypotheticalMachineSimulator.cpp as language CPP

Parsing: assg01-sim.cpp as language CPP

Parsing: assg01-tests.cpp as language CPP

Class style guidelines have been defined for this class. The uncrustify.cfg file defines a particular code style, like indentation, where to place opening and closing braces, whitespace around operators, etc. By running the beautifier on your files it reformats your code to conform to the defined class style guidelines. The beautifier may not be able to fix all style issues, so I might give comments to you about style issues to fix after looking at your code. But you should pay attention to the formatting of the code style defined by this configuration file.

Another required element for class style is that code must be properly documented. Most importantly, all functions and class member functions must have function documentation proceeding the function. These have been given to you for the first assignment, but you may need to provide these for future assignment. For example, the code documentation block for the first function you write for this assignment looks like this:

/**

 * @brief initialize memory

 *

 * Initialize the contents of memory.  Allocate array larget enough to

 * hold memory contents for the program.  Record base and bounds

 * address for memory address translation.  This memory function

 * dynamically allocates enough memory to hold the addresses for the

 * indicated begin and end memory ranges.

 *

 * @param memoryBaseAddress The int value for the base or beginning

 *   address of the simulated memory address space for this

 *   simulation.

 * @param memoryBoundsAddress The int value for the bounding address,

 *   e.g. the maximum or upper valid address of the simulated memory

 *   address space for this simulation.

 *

 * @exception Throws SimulatorException if

 *   address space is invalid.  Currently we support only 4 digit

 *   opcodes XYYY, where the 3 digit YYY specifies a reference

 *   address.  Thus we can only address memory from 000 – 999

 *   given the limits of the expected opcode format.

 */

This is an example of a doxygen formatted code documentation comment. The two ** starting the block comment are required for doxygen to recognize this as a documentation comment. The @brief, @param, @exception etc. tags are used by doxygen to build reference documentation from your code. You can build the documentation using the make docs build target, though it does require you to have doxygen tools installed on your system to work.

$ make docs

doxygen ../../config/Doxyfile 2>&1

  | grep warning

  | grep -v “\file statement”

  | grep -v “\pagebreak”

  | sort -t: -k2 -n

  | sed -e “s|/home/dash/repos/csci430-os-sims/assg/assg01/||g”

The result of this is two new subdirectories in your current directory named html and latex. You can use a regular browser to browse the html based documentation in the html directory. You will need latex tools installed to build the pdf reference manual in the latex directory.

You can use the make docs to see if you are missing any required function documentation or tags in your documentation. For example, if you remove one of the @param tags from the above function documentation, and run the docs, you would see

$ make docs

doxygen ../../config/Doxyfile 2>&1

  | grep warning

  | grep -v “\file statement”

  | grep -v “\pagebreak”

  | sort -t: -k2 -n

  | sed -e “s|/home/dash/repos/csci430-os-sims/assg/assg01/||g”

HypotheticalMachineSimulator.hpp:88: warning: The following parameter of

HypotheticalMachineSimulator::initializeMemory(int memoryBaseAddress,

    int memoryBoundsAddress) is not documented:

  parameter ‘memoryBoundsAddress’

The documentation generator expects that there is a description, and that all input parameters and return values are documented for all functions, among other things. You can run the documentation generation to see if you are missing any required documentation in you project files.

Needs help with similar assignment?

We are available 24x7 to deliver the best services and assignment ready within 3-4 hours? Order a custom-written, plagiarism-free paper

Get Answer Over WhatsApp Order Paper Now

DQ

After reading chapter 13, analyze the advantages and disadvantages of digital signatures.

Needs help with similar assignment?

We are available 24x7 to deliver the best services and assignment ready within 3-4 hours? Order a custom-written, plagiarism-free paper

Get Answer Over WhatsApp Order Paper Now

4-2 Final Project Milestone Two: Case Analysis and Incident Impacts

 

Instructions

Submit the Case Analysis and Incident Impacts portion of the final project. In this assignment, you will analyze the ethical issues and determine the legal compliance issues within the organization, as well as the social and cultural impacts of these compliance issues. You will be expected to address the impact the incident may have had on the ethical and legal IT regulations at the time. The connection between the industry standards and the standards for informational technology should be determined, as well as the influence of the cultural impact on IT and cyber-communication or commerce.

PLEASE SEE THE ATTACHED RUBRIC

http://www.nytimes.com/library/tech/99/12/biztech/articles/122099outlook-pate.html

Needs help with similar assignment?

We are available 24x7 to deliver the best services and assignment ready within 3-4 hours? Order a custom-written, plagiarism-free paper

Get Answer Over WhatsApp Order Paper Now

Aspect Oriented programming project

 

I need assistance on this Aspect Oriented Programming project. The first requirement for this project is that the programming must use AspectJ on Eclipse java IDE.

The project details description in attached.

This program must run please.

You only need to turn in the actual software by exporting the project from Eclipse. You do not need to turn in any type of design document.

To export a project in Eclipse, follow these steps.

1. Right click on the project and select Export

2. In the General folder select Archive File

3. Click the Browse button

4. Give is a file name with a .zip extension

5. Click the Save button

6. Click the Use Zip button

7. Click the Finish button

Please, this program must run on Eclipse Java IDE.

Needs help with similar assignment?

We are available 24x7 to deliver the best services and assignment ready within 3-4 hours? Order a custom-written, plagiarism-free paper

Get Answer Over WhatsApp Order Paper Now

Computer Geographics

1.     

In this chapter we have looked at the point location problem with pre- processing. We have not looked at the single shot problem, where the subdivision and the query point are given at the same time, and we have no special preprocessing to speed up the searches. In this exercise and some of the following ones, we have a look at such problems. 

Given a simple polygon P with n vertices and a query point q, here is an algorithm to determine whether q lies in P. Consider the ray ρ := {(qx +λ,qy) : λ > 0} (this is the horizontal ray starting in q and going rightwards). Determine for every edge e of P whether it intersects ρ. If the number of intersecting edges is odd, then q ∈ P, otherwise q à∈ P. 

Prove that this algorithm is correct, and explain how to deal with degen- erate cases. (One degenerate case is when ρ intersects an endpoint of an edge. Are there other special cases?) What is the running time of the algorithm? 

2. Suppose you are given an n-vertex simple polygon, P. Describe how to build an efficient data structure for determining in O(log n) time whether a query point, q, is inside of P or not. What is the space and preprocessing time for your data structure?

3. The ray shooting problem occurs in computer graphics (see Chapter 8). A 2-dimensional version can be given as follows: Store a set S of n non-crossing line segments such that one can quickly answer queries of the type: “Given a query ray ρ—a ray is a half-line starting at some point—find the first segment in S intersected by ρ.” (We leave it to you to define the behavior for degenerate cases.) In this exercise, we look at vertical ray shooting, where the query ray must be a vertical ray pointing upwards. Only the starting point need be specified in such a query. Give a data structure for the vertical ray shooting problem for a set S of n non-crossing line segments in general position. Bound the query time and storage requirement of your data structure. What is the preprocessing time?

Needs help with similar assignment?

We are available 24x7 to deliver the best services and assignment ready within 3-4 hours? Order a custom-written, plagiarism-free paper

Get Answer Over WhatsApp Order Paper Now

Benchmark – Framework Findings and Recommendations

This assignment serves to benchmark competency 2.1: Establish a risk management framework using industry standards for compliance.

Based on an executive level report, deliver the findings of the Topic 4 “Demonstrating the Gap” assignment.

Include the following in your report (add sections to the template as needed):

  1. An overview of why the report is being written
  2. A paragraph description of the system
  3. A paragraph outlining the framework governing the enterprise
  4. Major gaps that were found
  5. Remediation that is recommended
  6. A high-level diagram that represents the current state of the system
  7. An equal diagram depicting the proper end state

Refer to the “Security Assessment Report (SAR),” within the required readings. This resource provides detailed explanations of each section that should be included within the assessment report. 

APA style is not required, but solid academic writing is expected.

Refer to the “System Security Assessment Report Template” and the “Framework Findings and Recommendations Scoring Guide,” prior to beginning the assignment to become familiar with the expectations for successful completion.

Needs help with similar assignment?

We are available 24x7 to deliver the best services and assignment ready within 3-4 hours? Order a custom-written, plagiarism-free paper

Get Answer Over WhatsApp Order Paper Now

Mininet and Openflow

   

Problem-1: Create the network topology 

Write a python script to create the topology given in the Fig.1. In this topology H1, H2, H3, and H4 are hosts and S1, S2, S3, and S4 are OpenFlow switches. Specify bandwidth, delay and loss rate for each link of your choice. Assign appropriate port numbers to the switch interfaces and accordingly use in your implementation.

Fig.1

Please refer attached document  for topology(Figure)

Problem-2: Push the flow rules 

Implement a controller which pushes flow rules on switches to satisfy following traffic constraints.

· No traffic should be allowed between H3 and H1.

· The HTTP traffic between H4 and H1 should be routed through Switch S2 and any other traffic between H4 and H1 should be routed through Switch S3.

· The traffic between H3 and H2 should be routed through Switch S3.

· The traffic between remaining nodes should follow shortest path.

  

Problem-3: Link Bandwidth Measurement 

Once the flow rules are pushed, create necessary traffic flows to calculate instantaneous bandwidth for the following:

· Measure and print the instantaneous bandwidth on the links connected to the Switch S2.

Problem-4: Packet loss Count for a specific traffic flow 

· Calculate the packet loss count between the switches S4 and S1 for the HTTP traffic flow

H4 —S4 — S2 — S1 — H1

· Calculate the packet loss count between the switches S4 and S1 for the non-HTTP traffic flow

H4 —S4 — S3 — S1 — H1

Deliverables:

1) Topology implementation file: prob1.py

2) Controller implementation file: prob2.py

3) Controller implementation file: prob3.py

4) Controller implementation file: prob4.py

*******

Needs help with similar assignment?

We are available 24x7 to deliver the best services and assignment ready within 3-4 hours? Order a custom-written, plagiarism-free paper

Get Answer Over WhatsApp Order Paper Now

Creating a search engine in Python language

 

Page 1/8

Goal: Implement a complete search engine. Milestones Overview

Milestone Goal #1 Produce an initial index for the corpus and a basic retrieval component

#2 Complete Search System

Page 2/8

PROJECT: SEARCH ENGINE Corpus: all ICS web pages We will provide you with the crawled data as a zip file (webpages_raw.zip). This contains the downloaded content of the ICS web pages that were crawled by a previous quarter. You are expected to build your search engine index off of this data. Main challenges: Full HTML parsing, File/DB handling, handling user input (either using command line or desktop GUI application or web interface) COMPONENT 1 – INDEX: Create an inverted index for all the corpus given to you. You can either use a database to store your index (MongoDB, Redis, memcached are some examples) or you can store the index in a file. You are free to choose an approach here. The index should store more than just a simple list of documents where the token occurs. At the very least, your index should store the TF-IDF of every term/document. Sample Index:

Note: This is a simplistic example provided for your understanding. Please do not consider this as the expected index format. A good inverted index will store more information than this. Index Structure: token – docId1, tf-idf1 ; docId2, tf-idf2

Example: informatics – doc_1, 5 ; doc_2, 10 ; doc_3, 7 You are encouraged to come up with heuristics that make sense and will help in retrieving relevant search results. For e.g. – words in bold and in heading (h1, h2, h3) could be treated as more important than the other words. These are useful metadata that could be added to your inverted index data. Optional (1 point for each meta data item up to 2 points max):: Extra credit will be given for ideas that improve the quality of the retrieval, so you may add more metadata to your index, if you think it will help improve the quality of the retrieval. For this, instead of storing a simple TF-IDF count for every page, you can store more information related to the page (e.g. position of the words in the page). To store this information, you need to design your index in such a way that it can store and retrieve all this metadata efficiently. Your index lookup during search should not be horribly slow, so pay attention to the structure of your index COMPONENT 2 – SEARCH AND RETRIEVE: Your program should prompt the user for a query. This doesn’t need to be a Web interface, it can be a console prompt. At the time of the query, your program will look up your index, perform some calculations (see ranking below) and give out the ranked list of pages that are relevant for the query.  

COMPONENT 3 – RANKING:

At the very least, your ranking formula should include tf-idf scoring, but you should feel free to add additional components to this formula if you think they improve the retrieval. Optional (1 point for each parameter up to 2 points max): Extra credit will be given if your ranking formula includes parameters to improve ranking other than tf-idf from the techniques discussed in class.

Milestone #1 (15 points) Goal: Build an index and a basic retrieval component By basic retrieval component; we mean that at this point you just need to be able to query your index for links (The query can be as simple as single word at this point). These links do not need to be accurate/ranked. We will cover ranking in the next milestone. At least the following queries should be used to test your retrieval: 1 – Informatics 2 – Mondego 3 – Irvine 4 – artificial intelligence 5 – computer science Note: query 4 and 5 are for milestone #2 Deliverables: Submit a report (pdf) in Canvas with the following content:

1. A table with assorted numbers pertaining to your index. It should have, at least the number of documents, the number of [unique] words, and the total size (in KB) of your index on disk.

2. Number of URLs retrieved for each of the queries above and listing the first 20 URLS for each query

Evaluation criteria:

● Was the report submitted on time?

 ● Are the reported numbers plausible?

 ● Are the reported URLs plausible?

Milestone #2 (45 points and 6 pts Goal: complete search engine Deliverables:

● Submit a zip file containing all the artifacts/programs you wrote for your search ● A live demonstration of your search engine

Evaluation criteria:

– Does your program work as expected of search engines? – How general are the heuristics that you employed to improve the retrieval? – How complete is the UI? (e.g. links to the actual pages, snippets, etc.)

Page 4/8

– Do you demonstrate in-depth knowledge of how your search engine works? Are you able to answer detailed questions pertaining to any aspect of its implementation?

Additional Information: Understanding the data dump: In Assignment-2, crawlers of all the groups collectively crawled 37,497 URLs. We collected these URLS and are providing them to you as ‘webpages_clean.zip’ file. This zip file contains the following:

1. bookkeeping.json 2. bookkeeping.tsv 3. Folders 0 to 74

Folders: The 37,497 URLs are organized into 75 folders, each folder having 500 files. Every file has the extracted HTML source code of a particular URL. Bookeeping files: bookkeeping.json and bookkeeping.tsv are two different formats of the same file. These files maintain a list of all the URLs that have been crawled. Every URL has an identifier associated with it. This identifier helps locate the HTML code of the URL. The identifier is of the format: “folder_number/file_number” For example, consider the entry on line 13 of bookkeeping.json:

“0/108”: “vision.ics.uci.edu/papers/RamananBK_ICCV_2007”

This means that the HTML code extracted for the link “vision.ics.uci.edu/papers/Ramanan BK_ICCV_2007” is located at folder 0, file number 108. Broken HTML: The HTML source code of the URLs may not be well formed. This means that the code may not necessarily have a pair of opening and closing tags. For example, there might be an open <strong> tag but the associated closing tag </strong> might be missing. The HTML parsers that you will use to parse the documents should be able to handle broken HTML. Hence, as mentioned above, while selecting the parser for your project, please ensure that it can handle broken HTML. Use of libraries: It is strictly not allowed to use libraries that perform the entire task of index creation or ranking for you. Hence, libraries such as Lucene or Elastic Search are not allowed. You may use libraries that help you achieve specific tasks. For example, you can use a tokenizer such as NLTK to tokenize your content. The HTML files

• A Zip file that contains crawl-able HTML files which you may parse/process for extracting tokens. • The HTML files have been organized and stored in numbered directories. The file names are

numbers as well. • The bookkeeping.json and bookkeeping.tsv files represent the index of all the HTML files.

Page 5/8

• The key value of the json file is essentially the relative file path of the HTML content. The value is the web URL of the HTML content.

• Do not confuse bookkeeping with the inverted index. It simply provides you a means to access the crawl-able HTMLs programmatically. The key values in

• bookkeeping can also be used to uniquely identify the files. This will be useful when you need to retrieve the web page and the content while displaying your search engine results.

Building the inverted index • Now that you have been provided the HTML files to index. You may build your inverted

index off of them. • As most of you may already know, the inverted index is simply a map with the token as a key

and a list of its corresponding postings. • A posting is nothing but the representation of the token’s occurrence in a document. • The posting would typically (not limited to) contain the following info (you are encouraged

to think of other attributes that you could add to the index) : • The document name/id the token was found in. • The word frequency. • Indices of occurrence within the document • Tf-idf score etc

Inverted Index

• When designing your inverted index, you will think about the structure of your posting first. • You would normally begin by implementing the code to calculate/fetch the elements which

will constitute your posting. • Modularize. For eg:- If you’re using python, use scripts that will perform a function or a set

of closely related functions. This helps in keeping track of your progress, debugging, and also dividing work amongst teammates if you’re in a group.

• You are free to choose any database system to store your inverted index. • Some possible options – Redis, MongoDB, memcached, MySQL etc. • Pro-tip : If you have a hard time choosing between the database systems. Read about their

performance and learning curves of the libraries available with the language of your choice.

Search and Retrieve • Once you have built the inverted index, you are ready to test document retrieval with

queries. • At the very least, the documents retrieved should be returned based on tf-idf scoring. This

can be done using • the cosine similarity method. Feel free to use a library to compute cosine similarity once you

have the term frequencies and inverse document frequencies. • You may add other weighting/scoring mechanisms to help refine the search results.

Needs help with similar assignment?

We are available 24x7 to deliver the best services and assignment ready within 3-4 hours? Order a custom-written, plagiarism-free paper

Get Answer Over WhatsApp Order Paper Now