<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4613824166768441241</id><updated>2011-04-21T11:48:26.297-07:00</updated><title type='text'>IT 222 Operating System</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://apriljohnolaveja.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4613824166768441241/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://apriljohnolaveja.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>April John Olaveja</name><uri>http://www.blogger.com/profile/05792408985406241639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://th134.photobucket.com/albums/q108/marj69/GIF%20Images/Flame/th_flame-3.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4613824166768441241.post-565752129823958590</id><published>2008-03-09T05:37:00.000-07:00</published><updated>2008-03-09T06:02:27.292-07:00</updated><title type='text'>Quiz 1 - IT 222</title><content type='html'>&lt;p style="color: rgb(255, 255, 255);"&gt;1. Contact the network expert at your school or place of work. Find out which topology, communication links, and configuration are used in the network. IS it a LAN, MAN, or WAN?&lt;/p&gt;&lt;p style="color: rgb(255, 255, 255);"&gt;-LAN or Local Area Networks is the type of topology communication links and  configuration  is used in our school. Because LAN covers only small geographical  areas like in our school. &lt;/p&gt;&lt;p style="color: rgb(255, 255, 255);"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="color: rgb(255, 255, 255);"&gt;  &lt;/p&gt;&lt;p style="color: rgb(255, 255, 255);"&gt;2. Discuss the primary difference between a bridge and a gateway and give real life example that uses each one?&lt;/p&gt;&lt;div style="color: rgb(255, 255, 255);" align="justify"&gt;     - A &lt;u&gt;bridge&lt;/u&gt; connects multiple &lt;a title="Network segment" href="http://en.wikipedia.org/wiki/Network_segment"&gt;network segments&lt;/a&gt; at the &lt;a title="Data link layer" href="http://en.wikipedia.org/wiki/Data_link_layer"&gt;data link layer&lt;/a&gt; (layer 2) of the &lt;a title="OSI model" href="http://en.wikipedia.org/wiki/OSI_model"&gt;OSI model&lt;/a&gt;, and the term layer 2 switch is often used interchangeably with bridge. Bridges are similar to &lt;a title="Repeater" href="http://en.wikipedia.org/wiki/Repeater"&gt;repeaters&lt;/a&gt; or &lt;a title="Network hub" href="http://en.wikipedia.org/wiki/Network_hub"&gt;network hubs&lt;/a&gt;, devices that connect network segments at the &lt;a title="Physical layer" href="http://en.wikipedia.org/wiki/Physical_layer"&gt;physical layer&lt;/a&gt;, however a bridge works by using &lt;a title="Bridging (networking)" href="http://en.wikipedia.org/wiki/Bridging_%28networking%29"&gt;bridging&lt;/a&gt; where traffic from one network is managed rather than simply rebroadcast to adjacent network segments. In Ethernet networks, the term "bridge" formally means a device that behaves according to the &lt;a title="IEEE 802.1D" href="http://en.wikipedia.org/wiki/IEEE_802.1D"&gt;IEEE 802.1D&lt;/a&gt; standard—this is most often referred to as a &lt;a title="Network switch" href="http://en.wikipedia.org/wiki/Network_switch"&gt;network switch&lt;/a&gt; in marketing literature. A &lt;u&gt;gateway&lt;/u&gt; may contain devices such as &lt;a title="Communications protocol" href="http://en.wikipedia.org/wiki/Communications_protocol"&gt;protocol&lt;/a&gt; translators, &lt;a title="Impedance matching" href="http://en.wikipedia.org/wiki/Impedance_matching"&gt;impedance matching&lt;/a&gt; devices, rate converters, &lt;a title="Fault (technology)" href="http://en.wikipedia.org/wiki/Fault_%28technology%29"&gt;fault&lt;/a&gt; isolators, or &lt;a class="mw-redirect" title="Signalling (telecommunication)" href="http://en.wikipedia.org/wiki/Signalling_%28telecommunication%29"&gt;signal&lt;/a&gt; translators as necessary to provide &lt;a title="System" href="http://en.wikipedia.org/wiki/System"&gt;system&lt;/a&gt; &lt;a title="Interoperability" href="http://en.wikipedia.org/wiki/Interoperability"&gt;interoperability&lt;/a&gt;. It also requires the establishment of mutually acceptable administrative procedures between both networks. &lt;/div&gt;&lt;div style="color: rgb(255, 255, 255);" align="justify"&gt;  *Example of bridge in real life is use in &lt;a title="Packet switching" href="http://en.wikipedia.org/wiki/Packet_switching"&gt;packet-switched&lt;/a&gt; &lt;a title="Computer network" href="http://en.wikipedia.org/wiki/Computer_network"&gt;computer networks&lt;/a&gt; and for gateway is use for connecting a &lt;a class="mw-redirect" title="Local Area Network" href="http://en.wikipedia.org/wiki/Local_Area_Network"&gt;Local Area Network&lt;/a&gt; or &lt;a title="Wireless LAN" href="http://en.wikipedia.org/wiki/Wireless_LAN"&gt;Wireless LAN&lt;/a&gt; to the &lt;a title="Internet" href="http://en.wikipedia.org/wiki/Internet"&gt;Internet&lt;/a&gt; or other &lt;a class="mw-redirect" title="Wide Area Network" href="http://en.wikipedia.org/wiki/Wide_Area_Network"&gt;Wide Area Network&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong style="font-weight: normal;"&gt;3. Name three commercially-available operating systems for LANs and their vendor names. Explain the topology that each designed to manage and describe the access protocol it uses.&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;div align="justify"&gt; - Three commercially-available operating systems for LANs are the Windows 98, XP and Vista. This operating systems are created by the Microsoft Windows Corporation.&lt;/div&gt;&lt;div align="justify"&gt;     - Windows 98 was the first operating system to use the &lt;a title="Windows Driver Model" href="http://en.wikipedia.org/wiki/Windows_Driver_Model"&gt;Windows Driver Model&lt;/a&gt; (WDM). This fact was not well published when Windows 98 was released and most hardware producers continued to develop drivers for the older driver standard, &lt;a title="VxD" href="http://en.wikipedia.org/wiki/VxD"&gt;VxD&lt;/a&gt;. Windows Vista networking stack supports the dual &lt;a title="Internet Protocol" href="http://en.wikipedia.org/wiki/Internet_Protocol"&gt;Internet Protocol&lt;/a&gt; (IP) layer architecture in which the &lt;a title="IPv4" href="http://en.wikipedia.org/wiki/IPv4"&gt;IPv4&lt;/a&gt; and &lt;a title="IPv6" href="http://en.wikipedia.org/wiki/IPv6"&gt;IPv6&lt;/a&gt; implementations share common &lt;a title="Transport layer" href="http://en.wikipedia.org/wiki/Transport_layer"&gt;Transport&lt;/a&gt; and &lt;a title="Data link layer" href="http://en.wikipedia.org/wiki/Data_link_layer"&gt;Framing&lt;/a&gt; layers. Windows Vista provides a &lt;a title="Graphical user interface" href="http://en.wikipedia.org/wiki/Graphical_user_interface"&gt;GUI&lt;/a&gt; for configuration of both IPv4 and IPv6 properties. &lt;a title="IPv6" href="http://en.wikipedia.org/wiki/IPv6"&gt;IPv6&lt;/a&gt; is now supported by all networking components and services.&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p style="color: rgb(255, 255, 255);"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p style="color: rgb(255, 255, 255);"&gt;&lt;/p&gt;  &lt;p style="color: rgb(255, 255, 255);"&gt; 4. Explain the similarities and differences between a file infecter virus and a macro virus, including the types of files each infects.&lt;/p&gt;  &lt;h1 style="color: rgb(255, 255, 255);"&gt;&lt;span style="font-size:100%;"&gt;File infector virus&lt;/span&gt;&lt;/h1&gt;&lt;h1 style="color: rgb(255, 255, 255);"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;span style="font-weight: normal;font-size:100%;" &gt;Virus that infects other files on a system or network&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;    &lt;p style="color: rgb(255, 255, 255);" class="section"&gt;&lt;paragraph&gt;File infector viruses are the 'classic' form of &lt;a href="http://www.virusbtn.com/resources/glossary/virus.xml" title="Virus: Program that infects other files"&gt;virus&lt;/a&gt;, those to which the term is most commonly and, along with &lt;a href="http://www.virusbtn.com/resources/glossary/boot_sector_virus.xml" title="Boot sector virus: Virus spreading on disks"&gt;boot sector viruses&lt;/a&gt;, most appropriately applied. &lt;/paragraph&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p style="color: rgb(255, 255, 255);" class="section"&gt;&lt;paragraph&gt;When an infectious file is executed on a system, the infection routine will seek out other files and insert its code into them, generally at the beginning or end of the existing file (prepending or appending viruses), but also occasionally in the middle of the file (mid-infector) or spreading itself across gaps in the file structure. The entry point of the file is redirected to the start of the virus code to ensure that it is run when the file is executed, and control may or may not be passed on to the original program in turn.&lt;/paragraph&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p style="color: rgb(255, 255, 255);" class="section"&gt;&lt;paragraph&gt;File infector viruses often misinfect, either leaving the file completely non-functional or simply failing to run the viral code at all. More sophisticted forms of file infector virus, which try to hide their presence by changing aspects of their code with each infection, are known as &lt;a href="http://www.virusbtn.com/resources/glossary/polymorphic_virus.xml" title="Polymorphic virus: Virus that re-encrypts itself with each infection"&gt;polymorphic&lt;/a&gt; or &lt;a href="http://www.virusbtn.com/resources/glossary/metamorphic_virus.xml" title="Metamorphic virus: Virus that changes its own code with each infection"&gt;metamorphic viruses&lt;/a&gt;&lt;/paragraph&gt;&lt;/p&gt;  &lt;h1 style="color: rgb(255, 255, 255);"&gt;&lt;span style="font-size:100%;"&gt;Macro virus (computing)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;  &lt;p style="color: rgb(0, 0, 0);"&gt;&lt;!-- start content --&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;I&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;n &lt;/span&gt;&lt;a style="color: rgb(255, 255, 255);" href="http://en.wikipedia.org/wiki/Computing" title="Computing"&gt;computing&lt;/a&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; terminology, a &lt;/span&gt;&lt;b style="color: rgb(255, 255, 255);"&gt;macro virus&lt;/b&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; is a &lt;/span&gt;&lt;a style="color: rgb(255, 255, 255);" href="http://en.wikipedia.org/wiki/Computer_virus" title="Computer virus"&gt;virus&lt;/a&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; that is written in a &lt;/span&gt;&lt;a style="color: rgb(255, 255, 255);" href="http://en.wikipedia.org/wiki/Macro_%28computer_science%29" title="Macro (computer science)"&gt;macro&lt;/a&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; &lt;/span&gt;&lt;a style="color: rgb(255, 255, 255);" href="http://en.wikipedia.org/wiki/Programming_language" title="Programming language"&gt;language&lt;/a&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;: that is to say, a language built into a software application such as a word processor. Since some applications (notably, but not exclusively, the parts of &lt;/span&gt;&lt;a style="color: rgb(255, 255, 255);" href="http://en.wikipedia.org/wiki/Microsoft_Office" title="Microsoft Office"&gt;Microsoft Office&lt;/a&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;) allow macro programs to be embedded in documents, so that the programs may be run automatically when the document is opened, this provides a distinct mechanism by which viruses can be spread. This is why it may be dangerous to open unexpected &lt;/span&gt;&lt;a style="color: rgb(255, 255, 255);" href="http://en.wikipedia.org/wiki/E-mail_attachment" title="E-mail attachment"&gt;attachments&lt;/a&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; in &lt;/span&gt;&lt;a style="color: rgb(255, 255, 255);" href="http://en.wikipedia.org/wiki/E-mail" title="E-mail"&gt;e-mails&lt;/a&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;. Modern &lt;/span&gt;&lt;a style="color: rgb(255, 255, 255);" href="http://en.wikipedia.org/wiki/Antivirus_software" title="Antivirus software"&gt;antivirus software&lt;/a&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; detects macro viruses as well as other types.&lt;/span&gt;&lt;/p&gt;  &lt;p style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;5&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;. Give three examples of inadequate passwords and explain why each would be a poor choice to protect a system from unauthorized users.&lt;/span&gt;&lt;o:p style="color: rgb(255, 255, 255);"&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;  - Example of this is the &lt;/span&gt;&lt;a style="color: rgb(255, 255, 255);" title="Export of cryptography" href="http://en.wikipedia.org/wiki/Export_of_cryptography"&gt;restrictions on the export of cryptography&lt;/a&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; that uses short or weak keys or passwords. The weak key is fed through an algorithm that takes a known constant time to apply.&lt;/span&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p style="color: rgb(0, 0, 0);" class="section"&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4613824166768441241-565752129823958590?l=apriljohnolaveja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apriljohnolaveja.blogspot.com/feeds/565752129823958590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4613824166768441241&amp;postID=565752129823958590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4613824166768441241/posts/default/565752129823958590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4613824166768441241/posts/default/565752129823958590'/><link rel='alternate' type='text/html' href='http://apriljohnolaveja.blogspot.com/2008/03/quiz-1-it-222.html' title='Quiz 1 - IT 222'/><author><name>April John Olaveja</name><uri>http://www.blogger.com/profile/05792408985406241639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://th134.photobucket.com/albums/q108/marj69/GIF%20Images/Flame/th_flame-3.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4613824166768441241.post-2922860341472033030</id><published>2008-01-15T04:46:00.000-08:00</published><updated>2008-01-15T05:44:19.353-08:00</updated><title type='text'>EXERCISE (1-2)</title><content type='html'>1.&lt;br /&gt; Deadlock a problem occuring when the resources needed by some jobs to finish execution are held by other jobs , which, in turn, are waiting for other resources to become available. Also called deadly embrace. Starvation the result of conservative allocation of resources in which a single job is prevented from execution because it's kept waiting for resources that never become available. Race a synchronization problem between two processes vying for the same resource.&lt;br /&gt;&lt;br /&gt;2.&lt;br /&gt;*Deadlock example - a traffic cituation of vehicles in a highway.&lt;br /&gt;&lt;br /&gt;*Starvation example - a cituation in a dining table with one food served to 5 people using 5 utensils only but 2 utensils each. This results to the starvation of some people.&lt;br /&gt;&lt;br /&gt;*Race example - a cituation that has a competition between 2 persons for only one source of food.&lt;br /&gt;&lt;br /&gt;3.&lt;br /&gt; Four Necessary Conditions for Deadlock: The presence of deadlock in a systems is characterized by these four necessary conditions. The term necessary means that if there is deadlock then all four must be present.a. Mutual exclusive resource access - A resource acquired is held exclusively, i.e., it is not shared by other processes.b. No preemption - A process' resources cannot be taken away from it. Only the process can give up its resources.c. Hold and Wait - A process has some resources and is blocked requesting more.d. Circularity - This means that there is a circular chain of two or more processes in which the resources needed by one process are held by the next process.&lt;br /&gt;&lt;br /&gt;4.&lt;br /&gt;Algorithm for prevention of deadlock and starvation:&lt;br /&gt;&lt;br /&gt;public boolean tryAcquire( int n0, int n1, ... ) { if ( for all i: ni ≤ availi ) { // successful acquisition availi -= ni for all i; return true; // indicate success } else return false; // indicate failure}init) Semaphore s = new Semaphore(1,1);Thread A Thread B-------- --------s.acquire(1,0); s.acquire(0,1);s.acquire(0,1); s.acquire(1,0);Thread B--------while(true) {s.acquire(0,1);if ( s.tryAcquire(1,0) ) // if second acquisition succeedsbreak; // leave the loopelse {s.release(0,1); // release what is heldsleep( SOME_AMOUNT); // pause a bit before trying again}}run action s.value--- ------ -------(1,1)A s.acquire(1,0) (0,1)B s.acquire(0,1) (0,0)A s.acquire(0,1) A blocks on secondB s.tryAcquire(1,0) =&gt; falseB s.release(0,1) (0,1)A s.acquire(0,1) (0,0) A succeeds on second&lt;br /&gt;&lt;br /&gt;5.&lt;br /&gt;a. Deadlock can be occurred. When the bridge is destroyed.&lt;br /&gt;b. When there are no traffic lights.&lt;br /&gt;c. To prevent deadlock make all the road to be one-way.&lt;br /&gt;&lt;br /&gt;6.&lt;br /&gt;a. This is not a deadlocked.&lt;br /&gt;b. There is no blocked processes.&lt;br /&gt;c. P2 can freely request on R1 and R2.&lt;br /&gt;d. P1 can freely request on R1 and R2.e. Both P1 and P2 have requested R2.1. P1 will wait after the request of P2.2. P2 will wait after the request of P1.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4613824166768441241-2922860341472033030?l=apriljohnolaveja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apriljohnolaveja.blogspot.com/feeds/2922860341472033030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4613824166768441241&amp;postID=2922860341472033030' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4613824166768441241/posts/default/2922860341472033030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4613824166768441241/posts/default/2922860341472033030'/><link rel='alternate' type='text/html' href='http://apriljohnolaveja.blogspot.com/2008/01/1.html' title='EXERCISE (1-2)'/><author><name>April John Olaveja</name><uri>http://www.blogger.com/profile/05792408985406241639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://th134.photobucket.com/albums/q108/marj69/GIF%20Images/Flame/th_flame-3.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4613824166768441241.post-3971336279422384909</id><published>2007-12-13T04:38:00.000-08:00</published><updated>2007-12-13T04:55:37.358-08:00</updated><title type='text'>Case Project Chapter 3:  Memory Management In Linux</title><content type='html'>&lt;p style="text-align: justify; color: rgb(255, 255, 255);"&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Linux&lt;/span&gt; kernel is a &lt;a href="http://en.wikipedia.org/wiki/Unix-like" title="Unix-like"&gt;Unix-like&lt;/a&gt; operating system &lt;a href="http://en.wikipedia.org/wiki/Kernel_%28computer_science%29" title="Kernel (computer science)"&gt;kernel&lt;/a&gt;. It is the namesake of the &lt;a href="http://en.wikipedia.org/wiki/Linux" title="Linux"&gt;Linux&lt;/a&gt; family of operating systems. Released under the &lt;a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" title="GNU General Public License"&gt;GNU General Public License&lt;/a&gt; (GPL) and developed by contributors worldwide, Linux is one of the most prominent examples of &lt;a href="http://en.wikipedia.org/wiki/Free_software" title="Free software"&gt;free software&lt;/a&gt; / &lt;a href="http://en.wikipedia.org/wiki/Open-source_software" title="Open-source software"&gt;open source&lt;/a&gt;.&lt;sup id="_ref-2" class="reference"&gt;&lt;a href="http://en.wikipedia.org/wiki/Linux_kernel#_note-2" title=""&gt;[3]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&lt;div style="text-align: justify; color: rgb(255, 255, 255);"&gt; &lt;/div&gt;&lt;p style="text-align: justify; color: rgb(255, 255, 255);"&gt;The Linux Kernel was initially conceived and assembled by &lt;a href="http://en.wikipedia.org/wiki/Linus_Torvalds" title="Linus Torvalds"&gt;Linus Torvalds&lt;/a&gt; in 1991. Early on, the &lt;a href="http://en.wikipedia.org/wiki/Minix" title="Minix"&gt;Minix&lt;/a&gt; community contributed code and ideas to the Linux kernel. At the time, the &lt;a href="http://en.wikipedia.org/wiki/GNU_Project" title="GNU Project"&gt;GNU Project&lt;/a&gt; had created many of the components required for a &lt;a href="http://en.wikipedia.org/wiki/Free_software" title="Free software"&gt;free software&lt;/a&gt; operating system, but its own kernel, &lt;a href="http://en.wikipedia.org/wiki/GNU_Hurd" title="GNU Hurd"&gt;GNU Hurd&lt;/a&gt;, was incomplete and unavailable. The &lt;a href="http://en.wikipedia.org/wiki/Berkeley_Software_Distribution" title="Berkeley Software Distribution"&gt;BSD&lt;/a&gt; operating system had not yet freed itself from legal encumbrances. This meant that despite the limited functionality of the early versions, Linux rapidly accumulated developers and users who adopted code from those projects for use with the new operating system.&lt;sup id="_ref-3" class="reference"&gt;&lt;a href="http://en.wikipedia.org/wiki/Linux_kernel#_note-3" title=""&gt;[4]&lt;/a&gt;&lt;/sup&gt; Today the Linux kernel has received contributions from thousands of programmers.&lt;/p&gt;&lt;h3 style="color: rgb(255, 255, 255); text-align: justify;"&gt;Linux Memory Management&lt;/h3&gt;&lt;div style="color: rgb(255, 255, 255); text-align: justify;"&gt;  &lt;/div&gt;&lt;p style="color: rgb(255, 255, 255); text-align: justify;"&gt;The Linux memory manager implements demand paging with a copy-on-write strategy relying on the 386's paging support. A process acquires its page tables from its parent (during a &lt;tt&gt;fork()&lt;/tt&gt;) with the entries marked as read-only or swapped. Then, if the process tries to write to that memory space, and the page is a copy-on-write page, it is copied, and the page is marked read-write. An &lt;tt&gt;exec()&lt;/tt&gt; results in the reading in of a page or so from the executable.  The process then faults in any other pages it needs.  &lt;/p&gt;&lt;p style="color: rgb(255, 255, 255); text-align: justify;"&gt;Each process has a page directory which means it can access 1 KB of page tables pointing to 1 MB of 4 KB pages which is 4 GB of memory. A process' page directory is initialized during a fork by &lt;tt&gt;copy_page_tables()&lt;/tt&gt;.  The idle process has its page directory initialized during the initialization sequence.  &lt;/p&gt;&lt;p style="color: rgb(255, 255, 255); text-align: justify;"&gt;Each user process has a local descriptor table that contains a code segment and data-stack segment. These user segments extend from 0 to 3 GB (0xc0000000). In user space, linear addresses and logical addresses are identical. &lt;/p&gt;&lt;p style="color: rgb(255, 255, 255); text-align: justify;"&gt;On the 80386, linear address run from 0GB to 4GB. A linear address points to a particular memory location within this space. A linear address is &lt;b&gt;not&lt;/b&gt; a physical address--it is a virtual address. A logical address consists of a selector and an offset. The selector points to a segment and the offset tells how far into that segment the address is located) &lt;/p&gt;&lt;p style="color: rgb(255, 255, 255); text-align: justify;"&gt;The kernel code and data segments are privileged segments defined in the global descriptor table and extend from 3 GB to 4 GB. The swapper page directory (&lt;tt&gt;swapper_page_dir&lt;/tt&gt; is set up so that logical addresses and physical addresses are identical in kernel space.  &lt;/p&gt;&lt;p style="color: rgb(255, 255, 255); text-align: justify;"&gt;The space above 3 GB appears in a process' page directory as pointers to kernel page tables. This space is invisible to the process in user mode but the mapping becomes relevant when privileged mode is entered, for example, to handle a system call. Supervisor mode is entered within the context of the current process so address translation occurs with respect to the process' page directory but using kernel segments. This is identically the mapping produced by using the &lt;tt&gt;swapper_pg_dir&lt;/tt&gt; and kernel segments as both page directories use the same page tables in this space. Only &lt;tt&gt;task[0]&lt;/tt&gt; (the idle task, sometimes called the swapper task for historical reasons, even though it has nothing to do with swapping in the Linux implementation) uses the &lt;tt&gt;swapper_pg_dir&lt;/tt&gt; directly. &lt;/p&gt;&lt;ul style="color: rgb(255, 255, 255); text-align: justify;"&gt;&lt;li&gt;The user process' &lt;tt&gt;segment_base&lt;/tt&gt; = 0x00, &lt;tt&gt;page_dir&lt;/tt&gt; private to the process.  &lt;/li&gt;&lt;li&gt;user process makes a system call: &lt;tt&gt;segment_base&lt;/tt&gt;=0xc0000000 &lt;tt&gt;page_dir&lt;/tt&gt; = same user &lt;tt&gt;page_dir&lt;/tt&gt;. &lt;/li&gt;&lt;li&gt;&lt;tt&gt;swapper_pg_dir&lt;/tt&gt; contains a mapping for all physical pages from 0xc0000000 to 0xc0000000 + &lt;tt&gt;end_mem&lt;/tt&gt;, so the first 768 entries in &lt;tt&gt;swapper_pg_dir&lt;/tt&gt; are 0's, and then there are 4 or more that point to kernel page tables. &lt;/li&gt;&lt;li&gt;The user page directories have the same entries as &lt;tt&gt;swapper_pg_dir&lt;/tt&gt; above 768. The first 768 entries map the user space. &lt;/li&gt;&lt;/ul&gt;&lt;div style="color: rgb(255, 255, 255); text-align: justify;"&gt; The upshot is that whenever the linear address is above 0xc0000000 everything uses the same kernel page tables.  &lt;/div&gt;&lt;p style="color: rgb(255, 255, 255); text-align: justify;"&gt;The user stack sits at the top of the user data segment and grows down. The kernel stack is not a pretty data structure or segment that I can point to with a ``yon lies the kernel stack.'' A &lt;tt&gt;kernel_stack_frame&lt;/tt&gt; (a page) is associated with each newly created process and is used whenever the kernel operates within the context of that process. Bad things would happen if the kernel stack were to grow below its current stack frame. &lt;/p&gt;&lt;p style="color: rgb(255, 255, 255); text-align: justify;"&gt;User pages can be stolen or swapped. A user page is one that is mapped below 3 GB in a user page table. This region does not contain page directories or page tables. Only dirty pages are swapped. &lt;/p&gt;&lt;p style="color: rgb(255, 255, 255); text-align: justify;"&gt;Minor alterations are needed in some places (tests for process memory limits comes to mind) to provide support for programmer defined segments. &lt;/p&gt;&lt;div style="color: rgb(255, 255, 255); text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4613824166768441241-3971336279422384909?l=apriljohnolaveja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apriljohnolaveja.blogspot.com/feeds/3971336279422384909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4613824166768441241&amp;postID=3971336279422384909' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4613824166768441241/posts/default/3971336279422384909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4613824166768441241/posts/default/3971336279422384909'/><link rel='alternate' type='text/html' href='http://apriljohnolaveja.blogspot.com/2007/12/case-project-chapter-3-memory.html' title='Case Project Chapter 3:  Memory Management In Linux'/><author><name>April John Olaveja</name><uri>http://www.blogger.com/profile/05792408985406241639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://th134.photobucket.com/albums/q108/marj69/GIF%20Images/Flame/th_flame-3.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4613824166768441241.post-7592899313524980213</id><published>2007-11-27T21:19:00.000-08:00</published><updated>2007-11-27T21:51:29.134-08:00</updated><title type='text'>Research Topic #2</title><content type='html'>&lt;div align="center"&gt;&lt;span style="font-size:180%;"&gt;Virtual memory in UNIX&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Virtual memory is an internal “trick” that relies on the fact that not every executing task is always referencing it’s RAM memory region. Since all RAM regions are not constantly in-use, UNIX has developed a paging algorithm that move RAM memory pages to the swap disk when it appears that they will not be needed in the immediate future &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;As memory regions are created, UNIX will not refuse a new task whose RAM requests exceeds the amount of RAM. Rather, UNIX will page out the least recently referenced RAM memory page to the swap disk to make room for the incoming request. When the physical limit of the RAM is exceeded UNIX can wipe-out RAM regions because they have already been written to the swap disk. &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;When the RAM region is been removed to swap, any subsequent references by the originating program require UNIX copy page in the RAM region to make the memory accessible. UNIX page in operations involve disk I/O and are a source of slow performance. Hence, avoiding UNIX page in operations is an important concern for the Oracle DBA.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-size:180%;"&gt;Virtual Memory in Windows XP&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;A program instruction on an Intel 386 or later CPU can address up to 4GB of memory, using its full 32 bits. This is normally far more than the RAM of the machine. (The 32nd exponent of 2 is exactly 4,294,967,296, or 4 GB. 32 binary digits allow the representation of 4,294,967,296 numbers — counting 0.) So the hardware provides for programs to operate in terms of as much as they wish of this full 4GB space as Virtual Memory, those parts of the program and data which are currently active being loaded into Physical Random Access Memory (RAM). The processor itself then translates (‘maps’) the virtual addresses from an instruction into the correct physical equivalents, doing this on the fly as the instruction is executed. The processor manages the mapping in terms of pages of 4 Kilobytes each - a size that has implications for managing virtual memory by the system.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:130%;"&gt;What are Page Faults?&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Only those parts of the program and data that are currently in active use need to be held in physical RAM. Other parts are then held in a swap file (as it’s called in Windows 95/98/ME: Win386.swp) or page file (in Windows NT versions including Windows 2000 and XP: pagefile.sys). When a program tries to access some address that is not currently in physical RAM, it generates an interrupt, called a Page Fault. This asks the system to retrieve the 4 KB page containing the address from the page file (or in the case of code possibly from the original program file). This — a valid page fault — normally happens quite invisibly. Sometimes, through program or hardware error, the page is not there either. The system then has an ‘Invalid Page Fault’ error. This will be a fatal error if detected in a program: if it is seen within the system itself (perhaps because a program sent it a bad request to do something), it may manifest itself as a ‘blue screen’ failure with a STOP code: consult the page on &lt;a href="http://www.aumha.org/win5/kbestop.htm" target="_blank"&gt;STOP Messages&lt;/a&gt; on this site.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4613824166768441241-7592899313524980213?l=apriljohnolaveja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apriljohnolaveja.blogspot.com/feeds/7592899313524980213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4613824166768441241&amp;postID=7592899313524980213' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4613824166768441241/posts/default/7592899313524980213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4613824166768441241/posts/default/7592899313524980213'/><link rel='alternate' type='text/html' href='http://apriljohnolaveja.blogspot.com/2007/11/research-topic-2_27.html' title='Research Topic #2'/><author><name>April John Olaveja</name><uri>http://www.blogger.com/profile/05792408985406241639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://th134.photobucket.com/albums/q108/marj69/GIF%20Images/Flame/th_flame-3.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4613824166768441241.post-6377092212336498909</id><published>2007-11-21T22:28:00.000-08:00</published><updated>2007-11-27T21:15:13.138-08:00</updated><title type='text'>Research Topic #1</title><content type='html'>Two reason why a regional bank might decide to buy six server computers instead of one supercomputer:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;to have a backup computers for thier files when the other computer will damage or other computer get trouble&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;they can divide the six computer so that other computers serve as for saving files only while the other for their transactions only&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4613824166768441241-6377092212336498909?l=apriljohnolaveja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apriljohnolaveja.blogspot.com/feeds/6377092212336498909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4613824166768441241&amp;postID=6377092212336498909' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4613824166768441241/posts/default/6377092212336498909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4613824166768441241/posts/default/6377092212336498909'/><link rel='alternate' type='text/html' href='http://apriljohnolaveja.blogspot.com/2007/11/research-topic-2.html' title='Research Topic #1'/><author><name>April John Olaveja</name><uri>http://www.blogger.com/profile/05792408985406241639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://th134.photobucket.com/albums/q108/marj69/GIF%20Images/Flame/th_flame-3.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4613824166768441241.post-3502269300540869060</id><published>2007-11-21T21:39:00.000-08:00</published><updated>2007-12-13T04:50:02.935-08:00</updated><title type='text'>Research Topic #1</title><content type='html'>&lt;div align="center"&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;div align="center"&gt;&lt;span style="font-size:180%;"&gt;OPERATING SYSTEM&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt; &lt;/div&gt;&lt;div align="justify"&gt;      An operatingsystem (OS) is the software that manages the sharing of the &lt;a title="Resource (computer science)" href="http://en.wikipedia.org/wiki/Resource_%28computer_science%29"&gt;resources&lt;/a&gt; of a &lt;a title="Computer" href="http://en.wikipedia.org/wiki/Computer"&gt;computer&lt;/a&gt; and provides &lt;a title="Programmers" href="http://en.wikipedia.org/wiki/Programmers"&gt;programmers&lt;/a&gt; with an interface used to access those resources. An operating system processes system data and user input, and responds by allocating and managing tasks and internal system resources as a service to users and programs of the system. At the foundation of all system software, an operating system performs basic tasks such as controlling and allocating &lt;a title="Memory (computers)" href="http://en.wikipedia.org/wiki/Memory_%28computers%29"&gt;memory&lt;/a&gt;, prioritizing system requests, controlling input and output devices, facilitating &lt;a title="Computer networking" href="http://en.wikipedia.org/wiki/Computer_networking"&gt;networking&lt;/a&gt; and managing &lt;a title="File system" href="http://en.wikipedia.org/wiki/File_system"&gt;file systems&lt;/a&gt;. Most operating systems come with an application that provides a &lt;a title="User interface" href="http://en.wikipedia.org/wiki/User_interface"&gt;user interface&lt;/a&gt; for managing the operating system, such as a &lt;a title="Command line interpreter" href="http://en.wikipedia.org/wiki/Command_line_interpreter"&gt;command line interpreter&lt;/a&gt; or &lt;a title="Graphical user interface" href="http://en.wikipedia.org/wiki/Graphical_user_interface"&gt;graphical user interface&lt;/a&gt;. The operating system forms a &lt;a title="Platform (computing)" href="http://en.wikipedia.org/wiki/Platform_%28computing%29"&gt;platform&lt;/a&gt; for other &lt;a title="System software" href="http://en.wikipedia.org/wiki/System_software"&gt;system software&lt;/a&gt; and for &lt;a title="Application software" href="http://en.wikipedia.org/wiki/Application_software"&gt;application software&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;      The most commonly-used contemporary desktop OS is &lt;a title="Microsoft Windows" href="http://en.wikipedia.org/wiki/Microsoft_Windows"&gt;Microsoft Windows&lt;/a&gt;, with &lt;a title="Mac OS X" href="http://en.wikipedia.org/wiki/Mac_OS_X"&gt;Mac OS X&lt;/a&gt; also being well-known. &lt;a title="Linux" href="http://en.wikipedia.org/wiki/Linux"&gt;Linux&lt;/a&gt; and the &lt;a title="BSD" href="http://en.wikipedia.org/wiki/BSD"&gt;BSD&lt;/a&gt; are popular &lt;a title="Unix-like" href="http://en.wikipedia.org/wiki/Unix-like"&gt;Unix-like&lt;/a&gt; systems.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Services&lt;br /&gt;Main article: &lt;a title="Kernel (computer science)" href="http://en.wikipedia.org/wiki/Kernel_%28computer_science%29"&gt;Kernel (computer science)&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-size:180%;"&gt;Process management&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;div align="justify"&gt;&lt;br /&gt;    Every program running on a computer, be it a service or an application, is a &lt;a title="Process (computing)" href="http://en.wikipedia.org/wiki/Process_%28computing%29"&gt;process&lt;/a&gt;. As long as a &lt;a title="Von Neumann architecture" href="http://en.wikipedia.org/wiki/Von_Neumann_architecture"&gt;von Neumann architecture&lt;/a&gt; is used to build computers, only one process per &lt;a title="Central processing unit" href="http://en.wikipedia.org/wiki/Central_processing_unit"&gt;CPU&lt;/a&gt; can be run at a time. Older microcomputer OSes such as &lt;a title="MS-DOS" href="http://en.wikipedia.org/wiki/MS-DOS"&gt;MS-DOS&lt;/a&gt; did not attempt to bypass this limit, with the exception of &lt;a title="Interrupt" href="http://en.wikipedia.org/wiki/Interrupt"&gt;interrupt&lt;/a&gt; processing, and only one process could be run under them (although DOS itself featured &lt;a title="Terminate and Stay Resident" href="http://en.wikipedia.org/wiki/Terminate_and_Stay_Resident"&gt;TSR&lt;/a&gt; as a very partial and not too easy to use solution). Mainframe operating systems have had &lt;a title="Computer multitasking" href="http://en.wikipedia.org/wiki/Computer_multitasking"&gt;multitasking&lt;/a&gt; capabilities since the early 1960s. Modern operating systems enable concurrent execution of many processes at once via &lt;a title="Multitasking" href="http://en.wikipedia.org/wiki/Multitasking"&gt;multitasking&lt;/a&gt; even with one CPU. Process management is an operating system's way of dealing with running multiple processes. On the most fundamental of computers (those containing one &lt;a title="Central processing unit" href="http://en.wikipedia.org/wiki/Central_processing_unit"&gt;processor&lt;/a&gt; with one &lt;a title="Multi-core (computing)" href="http://en.wikipedia.org/wiki/Multi-core_%28computing%29"&gt;core&lt;/a&gt;) multitasking is done by simply switching processes quickly. Depending on the operating system, as more processes run, either each time slice will become smaller or there will be a longer delay before each process is given a chance to run. Process management involves computing and distributing CPU time as well as other resources. Most operating systems allow a process to be assigned a priority which affects its allocation of CPU time. Interactive operating systems also employ some level of feedback in which the task with which the user is working receives higher priority. Interrupt driven processes will normally run at a very high priority. In many systems there is a background process, such as the &lt;a title="System Idle Process" href="http://en.wikipedia.org/wiki/System_Idle_Process"&gt;System Idle Process&lt;/a&gt; in Windows, which will run when no other process is waiting for the CPU. &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-size:180%;"&gt;Memory management&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;div align="justify"&gt;&lt;br /&gt;    Current computer architectures arrange the computer's memory in a &lt;a title="Hierarchical" href="http://en.wikipedia.org/wiki/Hierarchical"&gt;hierarchical&lt;/a&gt; manner, starting from the fastest &lt;a title="Processor registers" href="http://en.wikipedia.org/wiki/Processor_registers"&gt;registers&lt;/a&gt;, &lt;a title="CPU cache" href="http://en.wikipedia.org/wiki/CPU_cache"&gt;CPU cache&lt;/a&gt;, &lt;a title="Random access memory" href="http://en.wikipedia.org/wiki/Random_access_memory"&gt;random access memory&lt;/a&gt; and &lt;a title="Disk storage" href="http://en.wikipedia.org/wiki/Disk_storage"&gt;disk storage&lt;/a&gt;. An operating system's memory manager coordinates the use of these various types of memory by tracking which one is available, which is to be allocated or deallocated and how to move data between them. This activity, usually referred to as &lt;a title="Virtual memory" href="http://en.wikipedia.org/wiki/Virtual_memory"&gt;virtual memory&lt;/a&gt; management, increases the amount of memory available for each process by making the disk storage seem like main memory. There is a speed penalty associated with using disks or other slower storage as memory – if running processes require significantly more RAM than is available, the system may start &lt;a title="Thrash (computer science)" href="http://en.wikipedia.org/wiki/Thrash_%28computer_science%29"&gt;thrashing&lt;/a&gt;. This can happen either because one process requires a large amount of RAM or because two or more processes compete for a larger amount of memory than is available. This then leads to constant transfer of each process's data to slower storage.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;      Another important part of memory management is managing virtual addresses. If multiple processes are in memory at once, they must be prevented from interfering with each other's memory (unless there is an explicit request to utilise &lt;a title="Shared memory" href="http://en.wikipedia.org/wiki/Shared_memory"&gt;shared memory&lt;/a&gt;). This is achieved by having separate address spaces. Each process sees the whole virtual address space, typically from address 0 up to the maximum size of virtual memory, as uniquely assigned to it. The operating system maintains a &lt;a title="Page table" href="http://en.wikipedia.org/wiki/Page_table"&gt;page table&lt;/a&gt; that match virtual addresses to physical addresses. These memory allocations are tracked so that when a process terminates, all memory used by that process can be made available for other processes.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;      The operating system can also write inactive memory pages to secondary storage. This process is called "paging" or "swapping" – the terminology varies between operating systems.&lt;br /&gt;It is also typical for operating systems to employ otherwise unused physical memory as a &lt;a title="Page cache" href="http://en.wikipedia.org/wiki/Page_cache"&gt;page cache&lt;/a&gt;; requests for data from a slower device can be retained in memory to improve performance. The operating system can also pre-load the in-memory cache with data that may be requested by the user in the near future; &lt;a title="Windows Vista I/O technologies" href="http://en.wikipedia.org/wiki/Windows_Vista_I/O_technologies#SuperFetch"&gt;SuperFetch&lt;/a&gt; is an example of this&lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-size:180%;"&gt;Disk and file systems&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;      All operating systems include support for a variety of file systems.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;      Modern file systems comprise a hierarchy of directories. While the idea is conceptually similar across all general-purpose file systems, some differences in implementation exist. Two noticeable examples of this are the character used to separate directories, and case sensitivity.&lt;br /&gt;Unix demarcates its &lt;a title="Path (computing)" href="http://en.wikipedia.org/wiki/Path_%28computing%29"&gt;path&lt;/a&gt; components with a slash (/), a convention followed by operating systems that emulated it or at least its concept of hierarchical directories, such as &lt;a title="Linux" href="http://en.wikipedia.org/wiki/Linux"&gt;Linux&lt;/a&gt;, Amiga OS and Mac OS X. MS-DOS also emulated this feature, but had already also adopted the CP/M convention of using slashes for additional options to commands, so instead used the backslash (\) as its component separator. Microsoft Windows continues with this convention; Japanese editions of Windows use ¥, and Korean editions use ₩.&lt;a title="" href="http://en.wikipedia.org/wiki/Operating_system#_note-0"&gt;[1]&lt;/a&gt; Versions of Mac OS prior to OS X use a &lt;a title="Colon (punctuation)" href="http://en.wikipedia.org/wiki/Colon_%28punctuation%29"&gt;colon&lt;/a&gt; (:) for a path separator. &lt;a title="RISC OS" href="http://en.wikipedia.org/wiki/RISC_OS"&gt;RISC OS&lt;/a&gt; uses a period (.). &lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;     Unix and &lt;a title="Unix-like" href="http://en.wikipedia.org/wiki/Unix-like"&gt;Unix-like&lt;/a&gt; operating systems allow for any character in file names other than the slash and NUL characters (including &lt;a title="Newline" href="http://en.wikipedia.org/wiki/Newline"&gt;line feed (LF)&lt;/a&gt; and other control characters). Unix file names are case sensitive, which allows multiple files to be created with names that differ only in case. By contrast, Microsoft Windows file names are not case sensitive by default. Windows also has a larger set of punctuation characters that are not allowed in file names. &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;    File systems may provide &lt;a title="Journaling file system" href="http://en.wikipedia.org/wiki/Journaling_file_system"&gt;journaling&lt;/a&gt;, which provides safe recovery in the event of a system crash. A journaled file system writes information twice: first to the journal, which is a log of file system operations, then to its proper place in the ordinary file system. In the event of a crash, the system can recover to a consistent state by replaying a portion of the journal. In contrast, non-journaled file systems typically need to be examined in their entirety by a utility such as &lt;a title="Fsck" href="http://en.wikipedia.org/wiki/Fsck"&gt;fsck&lt;/a&gt; or &lt;a title="Chkdsk" href="http://en.wikipedia.org/wiki/Chkdsk"&gt;chkdsk&lt;/a&gt;. &lt;a title="Soft updates" href="http://en.wikipedia.org/wiki/Soft_updates"&gt;Soft updates&lt;/a&gt; is an alternative to journalling that avoids the redundant writes by carefully ordering the update operations. Log-structured file systems and &lt;a title="ZFS" href="http://en.wikipedia.org/wiki/ZFS"&gt;ZFS&lt;/a&gt; also differ from traditional journaled file systems in that they avoid inconsistencies by always writing new copies of the data, eschewing in-place updates.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;      Many Linux distributions support some or all of &lt;a title="Ext2" href="http://en.wikipedia.org/wiki/Ext2"&gt;ext2&lt;/a&gt;, &lt;a title="Ext3" href="http://en.wikipedia.org/wiki/Ext3"&gt;ext3&lt;/a&gt;, &lt;a title="ReiserFS" href="http://en.wikipedia.org/wiki/ReiserFS"&gt;ReiserFS&lt;/a&gt;, &lt;a title="Reiser4" href="http://en.wikipedia.org/wiki/Reiser4"&gt;Reiser4&lt;/a&gt;, &lt;a title="Global File System" href="http://en.wikipedia.org/wiki/Global_File_System"&gt;GFS&lt;/a&gt;, &lt;a title="Global File System" href="http://en.wikipedia.org/wiki/Global_File_System"&gt;GFS2&lt;/a&gt;, &lt;a title="OCFS" href="http://en.wikipedia.org/wiki/OCFS"&gt;OCFS&lt;/a&gt;, &lt;a title="OCFS2" href="http://en.wikipedia.org/wiki/OCFS2"&gt;OCFS2&lt;/a&gt;, and &lt;a title="NILFS" href="http://en.wikipedia.org/wiki/NILFS"&gt;NILFS&lt;/a&gt;. Linux also has full support for &lt;a title="XFS" href="http://en.wikipedia.org/wiki/XFS"&gt;XFS&lt;/a&gt; and &lt;a title="IBM Journaled File System 2 (JFS2)" href="http://en.wikipedia.org/wiki/IBM_Journaled_File_System_2_%28JFS2%29"&gt;JFS&lt;/a&gt;, along with the &lt;a title="File Allocation Table" href="http://en.wikipedia.org/wiki/File_Allocation_Table"&gt;FAT&lt;/a&gt; file systems, and &lt;a title="NTFS" href="http://en.wikipedia.org/wiki/NTFS"&gt;NTFS&lt;/a&gt;.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;    Microsoft Windows includes support for FAT12, FAT16, FAT32, and NTFS. The NTFS file system is the most efficient and reliable of the four Windows file systems, and as of &lt;a title="Windows Vista" href="http://en.wikipedia.org/wiki/Windows_Vista"&gt;Windows Vista&lt;/a&gt;, is the only file system which the operating system can be installed on. &lt;a title="Windows Embedded CE 6.0" href="http://en.wikipedia.org/wiki/Windows_Embedded_CE_6.0"&gt;Windows Embedded CE 6.0&lt;/a&gt; introduced &lt;a title="ExFAT" href="http://en.wikipedia.org/wiki/ExFAT"&gt;ExFAT&lt;/a&gt;, a file system suitable for &lt;a title="Flash drive" href="http://en.wikipedia.org/wiki/Flash_drive"&gt;flash drives&lt;/a&gt;.&lt;br /&gt;&lt;a title="Mac OS X" href="http://en.wikipedia.org/wiki/Mac_OS_X"&gt;Mac OS X&lt;/a&gt; supports &lt;a title="HFS Plus" href="http://en.wikipedia.org/wiki/HFS_Plus"&gt;HFS+&lt;/a&gt; as its primary file system, and it supports several other file systems as well, including FAT16, FAT32, NTFS and ZFS. &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;      Common to all these (and other) operating systems is support for file systems typically found on removable media. FAT12 is the file system most commonly found on &lt;a title="Floppy disc" href="http://en.wikipedia.org/wiki/Floppy_disc"&gt;floppy discs&lt;/a&gt;. &lt;a title="ISO 9660" href="http://en.wikipedia.org/wiki/ISO_9660"&gt;ISO 9660&lt;/a&gt; and &lt;a title="Universal Disk Format" href="http://en.wikipedia.org/wiki/Universal_Disk_Format"&gt;Universal Disk Format&lt;/a&gt; are two common formats that target &lt;a title="Compact Disc" href="http://en.wikipedia.org/wiki/Compact_Disc"&gt;Compact Discs&lt;/a&gt; and &lt;a title="DVD" href="http://en.wikipedia.org/wiki/DVD"&gt;DVDs&lt;/a&gt;, respectively. &lt;a title="Mount Rainier (packet writing)" href="http://en.wikipedia.org/wiki/Mount_Rainier_%28packet_writing%29"&gt;Mount Rainier&lt;/a&gt; is a newer extension to UDF supported by Linux 2.6 kernels and Windows Vista that facilitates rewriting to DVDs in the same fashion as what has been possible with floppy disks.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div style="font-weight: bold;" align="center"&gt;&lt;span style="font-size:130%;"&gt;Networking&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:180%;"&gt;&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;     Most current operating systems are capable of using the &lt;a title="TCP/IP" href="http://en.wikipedia.org/wiki/TCP/IP"&gt;TCP/IP&lt;/a&gt; networking protocols. This means that computers running dissimilar operating systems can participate in a common &lt;a title="Computer network" href="http://en.wikipedia.org/wiki/Computer_network"&gt;network&lt;/a&gt; for sharing resources such as &lt;a title="Remote procedure call" href="http://en.wikipedia.org/wiki/Remote_procedure_call"&gt;computing&lt;/a&gt;, files, printers, and scanners using either wired or wireless connections.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;    Many operating systems also support one or more vendor-specific legacy networking protocols as well, for example, &lt;a title="Systems Network Architecture" href="http://en.wikipedia.org/wiki/Systems_Network_Architecture"&gt;SNA&lt;/a&gt; on &lt;a title="IBM" href="http://en.wikipedia.org/wiki/IBM"&gt;IBM&lt;/a&gt; systems, &lt;a title="DECnet" href="http://en.wikipedia.org/wiki/DECnet"&gt;DECnet&lt;/a&gt; on systems from &lt;a title="Digital Equipment Corporation" href="http://en.wikipedia.org/wiki/Digital_Equipment_Corporation"&gt;Digital Equipment Corporation&lt;/a&gt;, and Microsoft-specific protocols on Windows. Specific protocols for specific tasks may also be supported such as &lt;a title="Network File System (protocol)" href="http://en.wikipedia.org/wiki/Network_File_System_%28protocol%29"&gt;NFS&lt;/a&gt; for file access.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4613824166768441241-3502269300540869060?l=apriljohnolaveja.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apriljohnolaveja.blogspot.com/feeds/3502269300540869060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4613824166768441241&amp;postID=3502269300540869060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4613824166768441241/posts/default/3502269300540869060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4613824166768441241/posts/default/3502269300540869060'/><link rel='alternate' type='text/html' href='http://apriljohnolaveja.blogspot.com/2007/11/operating-system.html' title='Research Topic #1'/><author><name>April John Olaveja</name><uri>http://www.blogger.com/profile/05792408985406241639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://th134.photobucket.com/albums/q108/marj69/GIF%20Images/Flame/th_flame-3.gif'/></author><thr:total>0</thr:total></entry></feed>
