<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ravi Sankar</title>
    <description>The latest articles on DEV Community by Ravi Sankar (@ravi_sankar).</description>
    <link>https://dev.to/ravi_sankar</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F891772%2F48789901-271b-4023-b3d6-1fd0137dcc55.jpg</url>
      <title>DEV Community: Ravi Sankar</title>
      <link>https://dev.to/ravi_sankar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ravi_sankar"/>
    <language>en</language>
    <item>
      <title>Process Management</title>
      <dc:creator>Ravi Sankar</dc:creator>
      <pubDate>Sun, 14 Aug 2022 20:13:09 +0000</pubDate>
      <link>https://dev.to/ravi_sankar/process-management-3gca</link>
      <guid>https://dev.to/ravi_sankar/process-management-3gca</guid>
      <description>&lt;p&gt;&lt;strong&gt;A process&lt;/strong&gt; is an instance of a program that is currently being executed by the processor.While a program is a set of instructions for an Operating System to execute. So basically when we run a program,a new process is started.&lt;/p&gt;

&lt;p&gt;  So there would be lots of processes running at the same time.This will include both system processes and user application processes.There must be a proper system for managing all these processes.A process requires adequate amount of resources of running. It is the job of the Operating System to allocate the necessary resources and rights for execution of the process. So process management involves various tasks like creation,scheduling,allocating resources and termination of processes. &lt;/p&gt;

&lt;p&gt;  When a process executes it passes through different states,they are:&lt;/p&gt;

&lt;p&gt;     1:New&lt;br&gt;
              This is the state when a process is first created.&lt;/p&gt;

&lt;p&gt;     2:Ready&lt;br&gt;
                 This is the state of the process when it is ready to be executed. It is waiting in a  queue ready to be executed.When the OS allocates the processor to the process   it starts running.&lt;/p&gt;

&lt;p&gt;     3:Running&lt;br&gt;
                 When the process is assigned to a processor for executing its state is set to running. In this stage the process starts executing its instruction.&lt;br&gt;
      4:Waiting&lt;br&gt;
                 A process moves to waiting stage when it needs to wait for another process to complete execution or when it is waiting for a some resource.&lt;/p&gt;

&lt;p&gt;      5:Terminated &lt;br&gt;
                 This is the state of the process when it has completed its execution.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--r00JhALr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zozuceu3g0i520ujpm6s.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--r00JhALr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zozuceu3g0i520ujpm6s.jpg" alt="Image description" width="604" height="487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;     The Operating System has to maintain all the necessary details regarding a process.For this purpose it uses constructs a data structure.This is called Process Control Block. It contains details like process ID,process state,priority and other essential data.Once the process is terminated the data structure is deleted.The OS also maintains different queues for each of the process states.These include Job Queue,Ready Queue and Waiting Queue.The Job Queue stores all the processes in the OS.Ready Queue contains all the processes which are ready to be executed and finally waiting queue contains all the processes in waiting state.These are processes waiting for some I/O operations in order to complete its execution.&lt;/p&gt;

&lt;p&gt;      There may be many processes waiting to run so the OS has to choose which process to execute.This selection of process for executing is called process scheduling.This is very important because different processes have different priorities and may need different resources to run. So every process must need appropriate amount of resource and CPU for execution. So if not managed correctly there are chances of dead lock.Dead lock is a situation in which more than one process is blocked because it is holding some resource that is needed by some other process. So an OS must have good algorithms in order to schedule the processes correctly.There are six popular process scheduling algorithms which are as follows:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nLw-mnIM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rlvjgfuoylwxnwshhjup.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nLw-mnIM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rlvjgfuoylwxnwshhjup.png" alt="Image description" width="279" height="180"&gt;&lt;/a&gt;&lt;br&gt;
 1) FIRST COME FIRST SERVE(FCFS)&lt;br&gt;
    Processes are executed in first come first serve basis.That is the simplest algorithm to implement.The process which is first in the queue gets executed first.This is not an effective algorithm because it does not consider the priority of the processes while executing.&lt;/p&gt;

&lt;p&gt;2) SHORTEST JOB FIRST(SJF)&lt;br&gt;
The process which requires the shortest amount of time to complete its execution is executed first.The time is milliseconds needed for a process to execute is called burst time. So the lesser the burst time the sooner the process would get executed.This is not practically feasible as it is not possible to predict the burst time of the processes.       &lt;/p&gt;

&lt;p&gt;3) SHORTEST REMAINING TIME FIRST&lt;br&gt;
  This is an another version of shortest job first. In this the OS schedules the job according to the remaining time of the execution.&lt;/p&gt;

&lt;p&gt;4) PRIORITY BASED SCHEDULING&lt;br&gt;
 In this algorithm the priority will be assigned to every process.The higher the priority,the sooner the process would get executed.If the priority of two processes are same then the process would be scheduled according to its arrival time.&lt;/p&gt;

&lt;p&gt;5)  ROUND ROBIN SCHEDULING&lt;br&gt;
 In round robin each process if given a fixed time to execute. It is referred to as a quantum.Once the given time is finished other process starts executing in the same manner.The state of each process is saved using context switching.&lt;/p&gt;

&lt;p&gt;6) MULTIPLE LEVEL QUEUES SCHEDULING&lt;br&gt;
This is not an independent scheduling algorithm.They use other existing algorithms to group and schedule jobs with common characteristics.&lt;/p&gt;

&lt;p&gt;This was brief overview of the process management system used by the OS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sources:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@akhandmishra/operating-system-process-and-process-management-108d83e8ce60"&gt;https://medium.com/@akhandmishra/operating-system-process-and-process-management-108d83e8ce60&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.javatpoint.com/process-management-in-os#:%7E:text=%E2%86%92%20%E2%86%90%20prev-,Process%20Management%20in%20OS,resource%20at%20the%20same%20time"&gt;https://www.javatpoint.com/process-management-in-os#:~:text=%E2%86%92%20%E2%86%90%20prev-,Process%20Management%20in%20OS,resource%20at%20the%20same%20time&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.tutorialspoint.com/operating_system/os_processes.htm"&gt;https://www.tutorialspoint.com/operating_system/os_processes.htm&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>HTTPS</title>
      <dc:creator>Ravi Sankar</dc:creator>
      <pubDate>Sun, 17 Jul 2022 12:32:38 +0000</pubDate>
      <link>https://dev.to/ravi_sankar/https-1en2</link>
      <guid>https://dev.to/ravi_sankar/https-1en2</guid>
      <description>&lt;p&gt;HTTPS stands for hyper text transfer protocol secure.It is a protocol used by the application layer in TCP/IP model.&lt;br&gt;
Before getting to know more about https let's quickly get know what is http.&lt;br&gt;
Http too is a protocol which is used to transfer hypertext over the web.For example when we load our browser and searches something a GET request is sent by the browser to the server. Then the server responds to this request and the client sees the result. The problem with this is that the request is sent in plain text format.So the communication channel is not secure.Due to this reason https was made secure and the secure version is called https .It is the secure version of http.&lt;br&gt;
  Its uses protocols such us SSL/TLS to encrypt the data that is being sent.So even if someone interrupts the data they wouldn't be able to see any sensitive data.&lt;br&gt;
 They could only see the encrypt text.&lt;/p&gt;

&lt;p&gt;Https uses both symmetric and asymmetric encryption for data communication.&lt;br&gt;
This system uses two keys to encrypt data communication between 2 parties&lt;br&gt;
The first key is called public key and is known by both the browser and the web server.This key is used to encrypt the data that is being sent.The public key is shared between the server and the browser when a new session is created.For decrypting this data we need the the second key or the private key.Unlike the public key the private key is only known by the web server.This key is used by the sever to decrypt the message.In this way the data is well secured and without the knowledge of the private key the data couldn't be decrypted.Thus a secure communications is established.Https is not a seperate protocol from http.It simply uses TLS encryption over the http network.The process of TLS involves a process called TLS handshake.&lt;br&gt;
It involves a series of message passing between the browser and the server.&lt;br&gt;
This is done in order to verify the server's licence and also to agree upon the session key which is needed for communication.&lt;/p&gt;

&lt;p&gt;The first step involves the client browser sending a "client hello" message to the browser.&lt;br&gt;
The message contains the TLS version supported by the client,the cipher suits supported by the client and also the compression algorithms supported by the client.&lt;/p&gt;

&lt;p&gt;The server then responds back with the "server hello" message.It contains the cipher suit preferred by the server and other bytes of data.The server also sends its digital certificate &lt;/p&gt;

&lt;p&gt;Then the client verifies the certificate sent by the the server .The certificate also contains the public key.Then a pre-master key is sent by the client.It is encrypted using the public key.The pre-master key contains details on generating the session key that is to be used for communication.&lt;/p&gt;

&lt;p&gt;Upon receiving the message the server uses the private key to decrypt the pre-master key.Then both the client and server  generates the session key using this pre-master key.Then onwards this session key is used for communication till the session ends.&lt;/p&gt;

&lt;p&gt;After generating the session key the client sends a "finished" message that is encrypted using this session key.&lt;/p&gt;

&lt;p&gt;Then the server sends a "finished" message encrypted with the session key.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K9NnFqY---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5z0cr7ftudmgaoxg7dfe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K9NnFqY---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5z0cr7ftudmgaoxg7dfe.png" alt="Image description" width="880" height="1147"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By this the TLS handshake procedure is completed and both the client and server uses this key for communication until the session is terminated.&lt;/p&gt;

&lt;p&gt;This is how the messages that we sent through https are encrypted and secure.&lt;br&gt;
This makes HTTPS highly secure and can be used to communicate highly confidential data such as credit card information,bank details etc..&lt;/p&gt;

&lt;p&gt;So why do we need https...?&lt;br&gt;
Because HTTPS ensures encryption,authorization and data integrity between the client and the server.In the current era information and data is very much valuable.Confidential data is being sent through the internet.So it is essential to ensure that this data is sent securely and it is not lost.Also the data sent by the client should reach the correct destination.&lt;br&gt;
Https ensures all this.&lt;/p&gt;

&lt;p&gt;More links to learn:&lt;br&gt;
&lt;a href="https://youtu.be/iD2fgC74ZtA"&gt;https://youtu.be/iD2fgC74ZtA&lt;/a&gt;&lt;br&gt;
&lt;a href="https://youtu.be/T4Df5_cojAs"&gt;https://youtu.be/T4Df5_cojAs&lt;/a&gt;&lt;/p&gt;

</description>
      <category>http</category>
      <category>network</category>
      <category>security</category>
      <category>knowledge</category>
    </item>
    <item>
      <title>6 reasons why you should use linux for Programming</title>
      <dc:creator>Ravi Sankar</dc:creator>
      <pubDate>Thu, 14 Jul 2022 16:21:04 +0000</pubDate>
      <link>https://dev.to/ravi_sankar/5-reasons-why-should-use-linux-for-programming-4nbh</link>
      <guid>https://dev.to/ravi_sankar/5-reasons-why-should-use-linux-for-programming-4nbh</guid>
      <description>&lt;p&gt;&lt;strong&gt;Is Linux necessary for programming?&lt;/strong&gt;&lt;br&gt;
In short no, but it is very popular among programmers for various reasons.But there are some distinct advantages of Linux over other OSs.&lt;/p&gt;

&lt;p&gt;Some advantages of Linux over competitor operating systems are as follows: &lt;/p&gt;

&lt;p&gt;1.. Linux tends to come with most of the compilers and interpreters you'll need to get the job done. Other operating systems, like Windows, usually do not.&lt;/p&gt;

&lt;p&gt;2.. Linux is versatile, powerful, secure, and fast.&lt;/p&gt;

&lt;p&gt;3.. Linux has a massive community to help you out if you get stuck for any reason.&lt;/p&gt;

&lt;p&gt;4.. The operating system also comes with a handy, built-in package manager.&lt;/p&gt;

&lt;p&gt;5.. Error messages on other operating systems, like Windows or macOS, for example, tend to be less than helpful. On Linux, you can usually find the solution from someone else who has solved it. If not, just ask the community support staff.&lt;/p&gt;

&lt;p&gt;6.. Another great thing about Linux is that you can often automate many repetitive tasks using simple lines of code.  &lt;/p&gt;

</description>
    </item>
    <item>
      <title>5 VS Code Extensions for Web Designers</title>
      <dc:creator>Ravi Sankar</dc:creator>
      <pubDate>Thu, 14 Jul 2022 16:07:35 +0000</pubDate>
      <link>https://dev.to/ravi_sankar/5-vs-code-extensions-for-web-designers-59hp</link>
      <guid>https://dev.to/ravi_sankar/5-vs-code-extensions-for-web-designers-59hp</guid>
      <description>&lt;p&gt;1.. &lt;a href="https://marketplace.visualstudio.com/items?itemName=xabikos.JavaScriptSnippets"&gt;JavaScript (ES6) Code Snippets&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This extension contains code snippets for JavaScript in ES6 syntax for Vs Code editor. It supports both JavaScript and TypeScript.&lt;/p&gt;

&lt;p&gt;2.. &lt;a href="https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-close-tag"&gt;Auto Close Tag&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After opening a tag in HTML and XML it’s a hectic job to close it. So here is a nice solution.This extension closes the HTML and XML tag automatically.&lt;/p&gt;

&lt;p&gt;3.. &lt;a href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode"&gt;Prettier — Code formatter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This extension will help us to format the JavaScript, HTML, CSS code. We can configure it as per our need.&lt;/p&gt;

&lt;p&gt;4.. &lt;a href="https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag"&gt;Auto Rename Tag&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This extension renames html tags automatically. So we can keep our code consistent and easy to maintain, even when working on bigger projects with lots of elements deep in the HTML structure.&lt;/p&gt;

&lt;p&gt;5.. &lt;a href="https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer"&gt;Live Server&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At the last the one extension every web designer/developer must use.This extension helps us in launching a local development server with live reload feature for both static &amp;amp; dynamic pages.So the next time you guys don't have to refresh the page again to see the output.&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>extensions</category>
    </item>
    <item>
      <title>TCP/IP</title>
      <dc:creator>Ravi Sankar</dc:creator>
      <pubDate>Thu, 14 Jul 2022 15:41:28 +0000</pubDate>
      <link>https://dev.to/ravi_sankar/tcpip-ond</link>
      <guid>https://dev.to/ravi_sankar/tcpip-ond</guid>
      <description>&lt;p&gt;&lt;strong&gt;TCP/IP&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;TCP&lt;/strong&gt; stands for transmission control protocol and &lt;strong&gt;IP&lt;/strong&gt; stands for Internet Protocol.&lt;br&gt;
A protocol is a set of rules that define how data is transferred between 2 devices connected in a computer network.One such a popular protocol is TCP/IP.&lt;br&gt;
There are 5 layers in &lt;strong&gt;TCP/IP&lt;/strong&gt; model:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Application layer&lt;/li&gt;
&lt;li&gt;Transport layer&lt;/li&gt;
&lt;li&gt;Network layer&lt;/li&gt;
&lt;li&gt;Data-link layer&lt;/li&gt;
&lt;li&gt;Physical layer&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;1. Application layer&lt;/strong&gt;&lt;br&gt;
It is the top most layer of TCP/IP protocol.It acts as an interface between the user and the model.It is the only layer which interacts with the user.The protocols defined in the layer are HTTPS,FTP,SMTP.The user applications work on these protocols.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Transport layer&lt;/strong&gt;&lt;br&gt;
The protocols in this layer are TCP and UDP.It provides an end to end connection between 2 devices. TCP is a connection oriented protocol while UDP is a connectionless protocol.UDP is fast but not secure, while TCP is secure but slower.&lt;br&gt;
The transport layer converts the data into smaller layers called segments for easier transfer of data .&lt;br&gt;
Also in TCP there is an acknowledgement process to check whether the data transfer is completed or not.If the transfer is not completed the data is sent again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Network layer&lt;/strong&gt;&lt;br&gt;
The protocols in the network layer are IP and ARP.&lt;br&gt;
IP stands for Internet Protocol.Each device has an unique IP address by which it is found on the network.It is responsible for delivering packets from the sender to the receiver’s end.Packets refers to small fragments of data that is to be transferred.&lt;br&gt;
The data is converted to packets for easier transfer of data.&lt;br&gt;
The network protocol is also responsible for assigning routing protocols .&lt;br&gt;
Also it determines the paths through the network for these packets to travel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Data-link layer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The data link layer is responsible for encapsulating the packets with MAC address of the nearest router and also a header link which contains a checksum for error detection.&lt;br&gt;
It ensures that data transfer has occurred completely without any errors.&lt;br&gt;
If any errors have occurred it tries to resolve it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Physical Layer&lt;/strong&gt;&lt;br&gt;
It is the lowest layer in the TCP/IP model.It is responsible for handling host to host connection between the sender and the receiver.&lt;br&gt;
Also it is responsible for converting packets into bits.It also oversees whether the communication occurs through wireless medium or through a wired medium.&lt;/p&gt;

&lt;p&gt;TCP/IP is the backbone of the internet .All the data that we send and receive are governed by the TCP/IP protocols .&lt;/p&gt;

</description>
      <category>internet</category>
      <category>tcpip</category>
      <category>dev</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
