Linear Algebra: Rank of the Matrix (M1.3)

 Echelon form means that the matrix is in one of two states:

  • Row echelon form.
  • Reduced row echelon form

A matrix is in row echelon form if it meets the following requirements:

  • The first non-zero number from the left (the “leading coefficient“) is always to the right of the first non-zero number in the row above.
  • Rows consisting of all zeros are at the bottom of the matrix.

row echelon form  

REF

https://www.statisticshowto.com/matrices-and-matrix-algebra/reduced-row-echelon-form-2/ 

Linear Algebra: Matrix Inverse (M1.2)

 

 

 


 Kako obrniti matrico 3X3

Linear Algebra: Matrix operations (M1.1)

Matrix operations mainly involve three algebraic operations which are addition of matrices, subtraction of matrices, and multiplication of matrices. Matrix is a rectangular array of numbers or expressions arranged in rows and columns.

As far as linear algebra is concerned, the two most important operations with vectors are vector addition [adding two (or more) vectors] and scalar multiplication (multiplying a vector by a scalar).

Operations

Addition, subtraction and multiplication are the basic operations on the matrix. To add or subtract matrices, these must be of identical order and for multiplication, the number of columns in the first matrix equals the number of rows in the second matrix.

  • Addition of Matrices
  • Subtraction of Matrices
  • Scalar Multiplication of Matrices
  • Multiplication of Matrices

Matrix Addition

If A[aij]mxn and B[bij]mxn are two matrices of the same order then their sum A + B is a matrix, and each element of that matrix is the sum of the corresponding elements. 

i.e. A + B = [aij + bij]mxn

 For the Example:

Properties of Matrix Addition: If a, B and C are matrices of same order, then

(a) Commutative Law: A + B = B + A

(b) Associative Law:  (A + B) + C = A + (B + C)

(c) Identity of the Matrix: A + O =  O + A = A, where O is zero matrix which is additive identity of the matrix,

(d) Additive Inverse: A + (-A) = 0 = (-A) + A, where (-A) is obtained by changing the sign of every element of A which is additive inverse of the matrix,

(e) A+B=A+CB+A=C+A}B=C\left. \begin{matrix} A+B=A+C \\ B+A=C+A \\ \end{matrix} \right\}\Rightarrow B=C

(f) tr(A±B)=tr(A)±tr(B)tr\left( A\pm B \right)=tr\left( A \right)\pm tr\left( B \right)

(g) If A + B = 0 = B + A, then B is called additive inverse of A and also A is called the additive inverse of A.

Subtraction of Matrices

If A and B are two matrices of the same order, then we define AB=A+(B).A-B=A+\left( -B \right).

Scalar Multiplication of Matrices

If A=[aij]m×nA={{\left[ {{a}_{ij}} \right]}_{m\times n}} is a matrix and k any number, then the matrix which is obtained by multiplying the elements of A by k is called the scalar multiplication of A by k and it is denoted by k A thus if A=[aij]m×nA={{\left[ {{a}_{ij}} \right]}_{m\times n}}

Then kAm×n=Am×nk=[kai×j]k{{A}_{m\,\times n}}={{A}_{m\,\times \,n}}k=\left[ k{{a}_{i\times j}} \right]

Properties of Scalar Multiplication: If A, B are matrices of the same order and λ and μ are any two scalars then;

(a) λ(A+B)=λA+λB\lambda \left( A+B \right)=\lambda A+\lambda B

(b) (λ+μ)A=λA+μA\left( \lambda +\mu \right)A=\lambda A+\mu A

(c) λ(μA)=(λμA)=μ(λA)\lambda \left( \mu A \right)=\left( \lambda \,\mu A \right)=\mu \left( \lambda A \right)

(d) (λA)=(λA)=λ(A)\left( -\lambda A \right)=-\left( \lambda A \right)=\lambda \left( -A \right)

(e) tr(kA)=ktr(A)tr\left( kA \right)=k\,\,tr\,\,\left( A \right)

Multiplication of Matrices

If A and B be any two matrices, then their product AB will be defined only when the number of columns in A is equal to the number of rows in B.

The first step in defining matrix multiplication is to recall the definition of the dot product of two vectors. Let r and c be two n‐vectors. Writing r as a 1 x n row matrix and c as an n x 1 column matrix, the dot product of r and c is

Properties of matrix multiplication

(a) Matrix multiplication is not commutative in general, i.e. in general ABBA.AB\ne BA.

(b) Matrix multiplication is associative, i.e. (AB)C = A(BC).

(c) Matrix multiplication is distributive over matrix addition, i.e. A.(B + C) = A.B + A.C and (A + B)C = AC + BC.

(d) If A is an m × n matrix, then ImA=A=AIn.{{I}_{m}}A=A=A{{I}_{n}}.

(e) The product of two matrices can be a null matrix while neither of them is null, i.e. if AB = 0, it is not necessary that either A = 0 or B = 0.

(f) If A is an m × n matrix and O is a null matrix then Am×n.On×p=Om×p.{{A}_{m\,\times n}}.{{O}_{n\,\times p}}={{O}_{m\,\times p}}. i.e. the product of the matrix with a null matrix is always a null matrix.

(g) If AB = 0 (It does not mean that A = 0 or B = 0, again the product of two non-zero matrices may be a zero matrix).

(h) If AB = AC , B ≠ C (Cancellation Law is not applicable).

(i) tr(AB)=tr(BA).tr\left( AB \right)=tr\left( BA \right).

j) There exist a multiplicative identity for every square matrix such AI = IA = A

Matrix Transpose

If A is m × n, the transpose of A is the n × m matrix, denoted by A^T , whose columns are formed from the corresponding rows of A.

  

A square matrix has the same number of rows and columns. An identity matrix is a square matrix with ones on the diagonal from upper left to lower right and zeros elsewhere. For example:

   I = 
       1 0 0 
       0 1 0
       0 0 1

Such a matrix is often denoted I.

 

REF

https://www.cliffsnotes.com/study-guides/algebra/linear-algebra/matrix-algebra/operations-with-matrices 

https://byjus.com/jee/matrix-operations/ 

Big Data Mining

Big Data Mining: Data Mining with Big Data, Issues, Case Study, Clustering on Big Data, Limitations of Mapreduce Framework, Case Study-Graph Algorithms on Mapreduce

Hierarchical Clustering

 Hierarchical Methods 
This method creates a hierarchical decomposition of the given set of data objects.
In data mining and statistics, hierarchical clustering (also called hierarchical cluster analysis or HCA) is a method of cluster analysis which seeks to build a hierarchy of clusters. Strategies for hierarchical clustering generally fall into two types:

  • Agglomerative: This is a "bottom-up" approach: each observation starts in its own cluster, and pairs of clusters are merged as one moves up the hierarchy.  
  • Divisive: This is a "top-down" approach: all observations start in one cluster, and splits are performed recursively as one moves down the hierarchy.

In general, the merges and splits are determined in a greedy manner. The results of hierarchical clustering are usually presented in a dendrogram (A Dendrogram is a type of tree diagram showing hierarchical relationships between different sets of data).

Agglomerative Hierarchical Clustering

The Agglomerative Hierarchical Clustering is the most common type of hierarchical clustering used to group objects in clusters based on their similarity. It’s also known as AGNES (Agglomerative Nesting). It's a “bottom-up” approach: each observation starts in its own cluster, and pairs of clusters are merged as one moves up the hierarchy.

How does it work?

  1. Make each data point a single-point cluster → forms N clusters
  2. Take the two closest data points and make them one cluster → forms N-1 clusters
  3. Take the two closest clusters and make them one cluster → Forms N-2 clusters.
  4. Repeat step-3 until you are left with only one cluster.

Pseudo Code Steps:

  1. Begin with n clusters, each containing one object and we will number the clusters 1 through n.
  2. Compute the between-cluster distance D(r, s) as the between-object distance of the two objects in r and s respectively, r, s =1, 2, ..., n. Let the square matrix D = (D(r, s)). If the objects are represented by quantitative vectors we can use Euclidean distance.
  3. Next, find the most similar pair of clusters r and s, such that the distance, D(r, s), is minimum among all the pairwise distances.
  4. Merge r and s to a new cluster t and compute the between-cluster distance D(t, k) for any existing cluster kr, s . Once the distances are obtained,  delete the rows and columns corresponding to the old cluster r and s in the D matrix, because r and s do not exist anymore. Then add a new row and column in D corresponding to cluster t.
  5. Repeat Step 3 a total of n − 1 times until there is only one cluster left.

 

There are several ways to measure the distance between clusters in order to decide the rules for clustering, and they are often called Linkage Methods. Some of the common linkage methods are:

  • Complete-linkage: the distance between two clusters is defined as the longest distance between two points in each cluster.
  • Single-linkage: the distance between two clusters is defined as the shortest distance between two points in each cluster. This linkage may be used to detect high values in your dataset which may be outliers as they will be merged at the end.
  • Average-linkage: the distance between two clusters is defined as the average distance between each point in one cluster to every point in the other cluster.
  • Centroid-linkage: finds the centroid of cluster 1 and centroid of cluster 2, and then calculates the distance between the two before merging.

Divisive Hierarchical Clustering

In Divisive or DIANA(DIvisive ANAlysis Clustering) is a top-down clustering method where we assign all of the observations to a single cluster and then partition the cluster to two least similar clusters. Finally, we proceed recursively on each cluster until there is one cluster for each observation. So this clustering approach is exactly opposite to Agglomerative clustering.

There is evidence that divisive algorithms produce more accurate hierarchies than agglomerative algorithms in some circumstances but is conceptually more complex.

In both agglomerative and divisive hierarchical clustering, users need to specify the desired number of clusters as a termination condition(when to stop merging).

 

https://en.wikipedia.org/wiki/Hierarchical_clustering

https://www.kdnuggets.com/2019/09/hierarchical-clustering.html 

Solving 8-Queens Problem by Using Genetic Algorithms (M1.3)

8 Queens Problem 

The N-queens problem is an effort to find a placement of N queens on an N by N chess board so that no two queens attack each other

At an initial state some queens may be attacking each other (i.e no 2 queens are on the same row, column, and diagonal).

GOAL: To evolve such a state using GA to find a state in which no 2 queens are attacking each other.

 

 

Genetic Algorithm

GA is one of the most popular meta-heuristic algorithms, its represent the space solution by population of chromosome and each chromosome work as a solution for the problem.  

GA give the optimal solution depending on fitness function and also depending on the structure of algorithm. The algorithm repeats the crossover of chromosome and the mutation operations until reaching the optimal solution (stop condition). 

 Algorithm

Input: Initial random solutions. 

Output: All possible solutions for eight queens problem. 

Step1: Generate 100 random solutions. This was done by initializing 100 vectors (with length of 64), the values in each vector are either one for the queen or zero for the empty square. Thus each vector will have eight queens distributed randomly. This is the initial population for GA with size equal 100 chromosomes.  

Step2: Evaluate the fitness of each chromosome (solution).  

Step3: Rank the chromosomes depending on their fitness’s values (small fitness values first).  

Step4: The 50 solutions that have the best fitness values are selected as parents and retained for the next generation. Those parents are then used to create another 50 offspring using single point crossover.  

Step5: The new solutions are mutated. 

Step6: Repeat steps 2-5 until a new solution to the 8-queens problem is found. 

Virtualization

Virtualization is being used by a growing number of organizations and  the concept of virtualization can simplify the operations in the IT sector and allows these organizations to respond faster to changing demands. 

What you mean by Virtualization ???

Virtualization is the process of creating a virtual environment on an existing server to run your desired program, without interfering with any of the other services provided by the server or host platform to other users. 

In computing, Virtualization refers to the process of creating a “virtual” version of something – such as an operating system (OS), a server, network resources or a storage device.

So, What does the Virtualization Do  ?? 

It allows you to run multiple applications and operating systems on the same server, (making use of one server & this server is being shared among multiple machines) which provides efficient resource utilization and helps in reducing costs.

A Roadmap Overview and Update by Rich Uhlig, Senior Principal Engineer, Corporate Technology GroupSession IVTS001 c2006 Intel Corporation

In other words, Virtualization is a technique, which allows to share a single physical instance of a resource or an application among multiple customers and organizations. It does by assigning a logical name to a physical storage and providing a pointer to that physical resource when demanded. 

Virtualization plays a very important role in the cloud computing technology, normally in the cloud computing, users share the data present in the clouds like application etc, but actually with the help of virtualization users shares the Infrastructure.

The Virtual environment can be a single instance or a combination of many such as operating systems, Network or Application servers, computing environments, storage devices, and other such environments

The machine on which the virtual machine is going to create is known as Host Machine and that virtual machine is referred as a Guest Machine.

This virtual machine is managed by a software or firmware, which is known as hypervisor.

Hypervisor acts as a link between the hardware and the virtual environment and distributes the hardware resources such as CPU usage, memory allotment between the different virtual environments.


Working Of Virtualization 

With virtualization, an application, a guest OS or data storage is separated from the underlying software or hardware. A thin software layer, known as a hypervisor, which partitions, or more specifically, abstracting and isolating these different OS and applications from the underlying computer hardware. Therefore, it wouldn’t be incorrect to say that virtualization is enabled by the functions of the hypervisor.

 

After virtualization, different user applications managed by their own operating systems (guest OS) can run on the same hardware, independent of the host OS. This is often done by adding additional software, called a virtualization layer. This virtualization layer is known as hypervisor or virtual machine monitor (VMM). The VMs are shown in the upper boxes, where applications run with their own guest OS over the virtualized CPU, memory, and I/O resources.

What this means is that the underlying hardware (which is known as the host machine) can independently operate and run one or more virtual machines (known as guest machines). The hypervisor also helps manage these independent Virtual Machines by distributing hardware resources such as memory allotment, CPU usage network bandwidth and more amongst them. It does this by creating pools of abstracted hardware resources, which it then allocates to Virtual Machines. It also can stop and start virtual machines, when requested by the user.

Another key component of hypervisors is ensuring that all the Virtual Machines stay isolated from others – so when a problem occurs in one Virtual Machine, the others remain unaffected. Finally, the hypervisor also handles the communication amongst Virtual Machines over virtual networks – enabling VMs to connect with one another. 

 The most common form is known as Type 1, where the layer sits on the hardware and virtualizes the hardware platform so that multiple virtual machines can utilize it. A type 2 hypervisor, on the other hand, uses a host operating system to create isolated guest virtual machines.

Each virtual server mimics the functionalities of a dedicated server – on one server. Each server is then designated an individual and separate OS, software and rebooting provisions, via root access. In a virtual server environment, website admins and ISPs can have separate and different domain names, IP addresses, analytics, logs, file directories email administration and more. Security systems and passwords also function separately, as it would in a dedicated server environment. 

Numerous benefits are provided by virtualization which includes, reduction in costs, efficient utilization of resources, better accessibility, and minimization of risk among others. 

Features

  1. Partitioning: Multiple virtual servers can run on a physical server at the same time.
  2. Encapsulation of data: All data on the virtual server, including boot disks, is encapsulated in a file format.
  3. Isolation: The Virtual server running on the physical server is safely separated and don't affect each other.
  4. Hardware Independence: When the virtual server runs, it can migrate to a different hardware platform.

Advantages

  • The number of servers gets reduced by the use of the virtualization concept.
  • Improve the ability of technology.
  • The business continuity was also raised due to the use of virtualization.
  • It creates a mixed virtual environment.
  • Increase efficiency for the development and test environment.
  • Lowers Total Cost of Ownership (TCO).

Cloud V/S Virtualization

  1. Essentially there is a gap between these two terms, though cloud technology requires the concept of virtualization. Virtualization is a technology - it can also be treated as software that can manipulate hardware. At the same time, cloud computing is a service that is the result of manipulation.
  2. Virtualization is the foundation element of cloud computing, whereas Cloud technology is the delivery of shared resources as a service-on-demand via the internet.
  3. Cloud is essentially made-up of the concept of virtualization.

Types of Virtualization

  1. Hardware Virtualization
  2. Software Virtualization 
  3. OS Virtualization
  4. Server Virtualization
  5. Storage Virtualization

#Hardware Virtualization

Virtualization means abstraction. Hardware virtualization is accomplished by abstracting the physical hardware layer by use of a hypervisor or VMM (Virtual Machine Monitor).

When the virtual machine software or virtual machine manager (VMM) or hypervisor software is directly installed on the hardware system is known as hardware virtualization.

The primary task of the hypervisor is to process monitoring, memory & hardware controlling. After hardware virtualization is done, different operating systems can be installed, and various applications can run on it. 

Hardware virtualization, when done for server platforms, is also called server virtualization. Hardware virtualization is mainly done for the server platforms, because controlling virtual machines is much easier than controlling a physical server. 

Hardware virtualization is of three kinds.

  1. Full Virtualization: Here, the hardware architecture is completely simulated. Guest software doesn't need any modification to run any applications.
  2. Emulation Virtualization: Here, the virtual machine simulates the hardware & is independent. Furthermore, the guest OS doesn't require any modification.
  3. Para-Virtualization: Here, the hardware is not simulated; instead, the guest software runs its isolated system.

Advantages 

  • Lower Cost: Because of server consolidation, the cost decreases; now, multiple OS can exist together in a single hardware. This minimizes the quantity of rack space, reduces the number of servers, and eventually drops the power consumption.
  • Efficient resource utilization: Physical resources can be shared among virtual machines. Another virtual machine can use the unused resources allocated by one virtual machine in case of any need.
  • Increase IT flexibility: The quick development of hardware resources became possible using virtualization, and the resources can be managed consistently also.
  • Advanced Hardware Virtualization features: With the advancement of modern hypervisors, highly complex operations maximize the abstraction of hardware & ensure maximum uptime. This technique helps to migrate an ongoing virtual machine from one host to another host dynamically.

 #Software Virtualization

It is also called application virtualization is the practice of running software from a remote server. 

Software virtualization is similar to that of virtualization except that it is capable to abstract the software installation procedure and create virtual software installation. 

Many applications & their distributions became typical tasks for IT firms and departments. The mechanism for installing an application differs. So virtualized software is introduced which is an application that will be installed into its self-contained unit and provide software virtualization. 

Some of the examples are Virtual Box, VMware, etc.


The DLL (Data Link Layer) redirect the entire virtualized program's calls to the file system of the server. When the software is run from the server in this procedure, no changes are required to be made on the local system. 

Types

  • Operating System Virtualization – hosting multiple OS on the native OS
  • Application Virtualization – hosting individual applications in a virtual environment separate from the native OS
  • Service Virtualization – hosting specific processes and services related to a particular application

Advantages

  1. Ease of Client Deployment: Virtual software makes it easy to link a file in a network or file copying to the workstation.
  2. Software Migration: Before the concept of virtualization, shifting from one software platform to another was time-consuming; and has a significant impact on the end-system user. The software virtualization environment makes migration easier.
  3. Easy to Manage: Application updates become a simple task.

#Server Virtualization

It is the division of physical server into several virtual servers and this division is mainly done to improvise the utility of server resource. 

In other word it is the masking of resources that are located in server which includes the number & identity of processors, physical servers & the operating system. This division of one physical server into multiple isolated virtual servers is done by server administrator using software. 

The virtual environment is sometimes called the virtual private-servers.   

In this process, the server resources are kept hidden from the user. This partitioning of physical server into several virtual environments; result in the dedication of one server to perform a single application or task. 

For Server Virtualization, there are three popular approaches.

  • Virtual Machine model
  • Para-virtual Machine model
  • Operating System (OS) layer Virtualization

Server virtualization can be viewed as a part of overall virtualization trend in the IT companies that include network virtualization, storage virtualization & management of workload. This trend brings development in automatic computing. Server virtualization can also used to eliminate server sprawl (Server sprawl is a situation in which many under-utilized servers utilize more space or consume more resources than can be justified by their workload) & uses server resources efficiently.

  1. Virtual Machine model: are based on host-guest paradigm, where each guest runs on a virtual replica of hardware layer. This technique of virtualization provide guest OS to run without modification. However it requires real computing resources from the host and for this a hypervisor or VM is required to coordinate instructions to CPU.
  2. Para-Virtual Machine model: is also based on host-guest paradigm & uses virtual machine monitor too. In this model the VMM modifies the guest operating system's code which is called 'porting'. Like that of virtual machine, similarly the Para-virtual machine is also capable of executing multiple operating systems. The Para-virtual model is used by both Xen & UML.
  3. Operating System Layer Virtualization: Virtualization at OS level functions in a different way and is not based on host-guest paradigm. In this model the host runs a single operating system kernel as its main/core and transfers its functionality to each of the guests. The guest must use the same operating system as the host. This distributed nature of architecture eliminated system calls between layers and hence reduces overhead of CPU usage. It is also a must that each partition remains strictly isolated from its neighbors because any failure or security breach of one partition won't be able to affect the other partitions. OS-Level Virtualization never uses a hypervisor.
Advantages
  • Cost Reduction: Server virtualization reduces cost because less hardware is required.
  • Independent Restart: Each server can be rebooted independently and that reboot won't affect the working of other virtual servers.
  • Disaster Recovery: Disaster Recovery is one of the best advantages of Server Virtualization. In Server Virtualization, data can easily and quickly move from one server to another and these data can be stored and retrieved from anywhere.   
  • Faster deployment of resources: Server virtualization allows us to deploy our resources in a simpler and faster way. 
  • Security: It allows uses to store their sensitive data inside the data centers.

    Disadvantages of Server Virtualization

    There are the following disadvantages of Server Virtualization -

  • The biggest disadvantage of server virtualization is that when the server goes offline, all the websites that are hosted by the server will also go down.
  • There is no way to measure the performance of virtualized environments.
  • It requires a huge amount of RAM consumption.
  • It is difficult to set up and maintain.
  • Some core applications and databases are not supported virtualization.
  • It requires extra hardware resources.

Uses of Server Virtualization

A list of uses of server virtualization is given below -

  • Server Virtualization is used in the testing and development environment.
  • It improves the availability of servers.
  • It allows organizations to make efficient use of resources.
  • It reduces redundancy without purchasing additional hardware components.

 #Storage Virtualization

It pools the physical storage from different network storage devices and makes it appear to be a single storage unit that is handled from a single console. As we all know there has been a strong bond between physical host & locally installed storage device; and with the change in paradigm, local storage is no longer needed. More advanced storage has come to the market with an increase in functionality. Storage virtualization is the significant component of storage servers & facilitates management and monitoring of storage in a virtualized environment. 

Storage virtualization helps the storage administrator to backup, archive and recovery data more efficiently, in less amount of time by masking the actual complexity of SAN (Storage Area Network). Through the use of software hybrid appliances, the storage administrator can implement virtualization. 

Storage virtualization is becoming more and more important in different forms such as:

  • Storage Tiering: Using the storage technique as a bridge or as a stepping stone, this technique analyzes and select out the most commonly used data & place it on its highest performing storage pool and the least used data in the weakest performance storage pool.
  • WAN Environment: Instead of sending multiple copies of the same data over WAN, WAN accelerator is used to locally cache the data and present it in a LAN speed, and not impacting the WAN performance.
  • SAN Storage: SAN technology present the storage as block-level storage & the storage is presented over the Ethernet network of OS.
  • File Server: OS writes the data to a remote server location to keep it separate and secure from local users.
Benefits
  • Data is stored in a very convenient location. This is because if the host failure data don't get compromised necessarily.
  • By using storage level abstraction, it becomes flexible how storage is provided, protected, partitioned and used.
  • Storage Devices are capable of performing advanced functions such as disaster recovery, duplication, replication of data & re-duplication of data 
 
Desktop virtualization 

Desktop virtualization is technology that lets users simulate a workstation load to access a desktop from a connected device remotely or locally. This separates the desktop environment and its applications from the physical client device used to access it. Desktop virtualization is a key element of digital workspace and depends on application virtualization.

How does desktop virtualization work?

Desktop virtualization can be achieved in a variety of ways, but the most important two types of desktop virtualization are based on whether the operating system instance is local or remote.

Local Desktop Virtualization

Local desktop virtualization means the operating system runs on a client device using hardware virtualization, and all processing and workloads occur on local hardware. This type of desktop virtualization works well when users do not need a continuous network connection and can meet application computing requirements with local system resources. However, because this requires processing to be done locally you cannot use local desktop virtualization to share VMs or resources across a network to thin clients or mobile devices.

Remote Desktop Virtualization

Remote desktop virtualization is a common use of virtualization that operates in a client/server computing environment. This allows users to run operating systems and applications from a server inside a data center while all user interactions take place on a client device. This client device could be a laptop, thin client device, or a smartphone. The result is IT departments have more centralized control over applications and desktops, and can maximize the organization’s investment in IT hardware through remote access to shared computing resources.

What is virtual desktop infrastructure?

A popular type of desktop virtualization is virtual desktop infrastructure (VDI). VDI is a variant of the client-server model of desktop virtualization which uses host-based VMs to deliver persistent and nonpersistent virtual desktops to all kinds of connected devices. With a persistent virtual desktop, each user has a unique desktop image that they can customize with apps and data, knowing it will be saved for future use. A nonpersistent virtual desktop infrastructure allows users to access a virtual desktop from an identical pool when they need it; once the user logs out of a nonpersistent VDI, it reverts to its unaltered state. Some of the advantages of virtual desktop infrastructure are improved security and centralized desktop management across an organization.

What are the benefits of desktop virtualization?

  1. Resource Management:
    Desktop virtualization helps IT departments get the most out of their hardware investments by consolidating most of their computing in a data center. Desktop virtualization then allows organizations to issue lower-cost computers and devices to end users because most of the intensive computing work takes place in the data center. By minimizing how much computing is needed at the endpoint devices for end users, IT departments can save money by buying less costly machines.
  2. Remote work:
    Desktop virtualization helps IT admins support remote workers by giving IT central control over how desktops are virtually deployed across an organization’s devices. Rather than manually setting up a new desktop for each user, desktop virtualization allows IT to simply deploy a ready-to-go virtual desktop to that user’s device. Now the user can interact with the operating system and applications on that desktop from any location and the employee experience will be the same as if they were working locally. Once the user is finished using this virtual desktop, they can log off and return that desktop image to the shared pool.
  3. Security:
    Desktop virtualization software provides IT admins centralized security control over which users can access which data and which applications. If a user’s permissions change because they leave the company, desktop virtualization makes it easy for IT to quickly remove that user’s access to their persistent virtual desktop and all its data—instead of having to manually uninstall everything from that user’s devices. And because all company data lives inside the data center rather than on each machine, a lost or stolen device does not post the same data risk. If someone steals a laptop using desktop virtualization, there is no company data on the actual machine and hence less risk of a breach.
 
 Server Virtualization

What is Server Virtualization?

Server virtualization is used to mask server resources from server users. This can include the number and identity of operating systems, processors, and individual physical servers.

Server Virtualization Definition

Server virtualization is the process of dividing a physical server into multiple unique and isolated virtual servers by means of a software application. Each virtual server can run its own operating systems independently.

Key Benefits of Server Virtualization:

  • Higher server ability
  • Cheaper operating costs
  • Eliminate server complexity
  • Increased application performance
  • Deploy workload quicker

Three Kinds of Server Virtualization:

  1. Full Virtualization: Full virtualization uses a hypervisor, a type of software that directly communicates with a physical server's disk space and CPU. The hypervisor monitors the physical server's resources and keeps each virtual server independent and unaware of the other virtual servers. It also relays resources from the physical server to the correct virtual server as it runs applications. The biggest limitation of using full virtualization is that a hypervisor has its own processing needs. This can slow down applications and impact server performance.
  2. Para-Virtualization: Unlike full virtualization, para-virtualization involves the entire network working together as a cohesive unit. Since each operating system on the virtual servers is aware of one another in para-virtualization, the hypervisor does not need to use as much processing power to manage the operating systems.
  3. OS-Level Virtualization: Unlike full and para-virtualization, OS-level visualization does not use a hypervisor. Instead, the virtualization capability, which is part of the physical server operating system, performs all the tasks of a hypervisor. However, all the virtual servers must run that same operating system in this server virtualization method.

Why Server Virtualization?

Server virtualization is a cost-effective way to provide web hosting services and effectively utilize existing resources in IT infrastructure. Without server virtualization, servers only use a small part of their processing power. This results in servers sitting idle because the workload is distributed to only a portion of the network’s servers. Data centers become overcrowded with underutilized servers, causing a waste of resources and power.

By having each physical server divided into multiple virtual servers, server virtualization allows each virtual server to act as a unique physical device. Each virtual server can run its own applications and operating system. This process increases the utilization of resources by making each virtual server act as a physical server and increases the capacity of each physical machine.



 
 

Monk and Inversions

using System; public class Solution { public static void Main () { int T = Convert . ToInt32 ( Console . ReadLine...