<?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-7466418088187779220</id><updated>2011-08-01T15:06:32.139-07:00</updated><category term='OS_03'/><category term='OS_08'/><category term='OS_09'/><category term='OS_06'/><category term='OS02'/><category term='quiz'/><category term='OS_05'/><category term='OS_04'/><title type='text'>Operating System</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-1757346638325012691</id><published>2009-09-17T03:23:00.000-07:00</published><updated>2009-09-17T04:19:18.457-07:00</updated><title type='text'></title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_fS3EzCj5Vac/SrIS3egZu_I/AAAAAAAAAOs/8sKsrFfDAtI/s1600-h/2.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;Install Windows XP&lt;/h1&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="date"&gt;Published: September 7, 2006&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="HEIGHT: 18px"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Most new computers come with Windows XP installed, so many people never have to install it. However, you may need to install Windows XP if:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;You replaced your hard disk drive with a new hard disk drive that does not have Windows XP installed.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;You are reinstalling Windows XP on a computer because you want to clean off your hard drive and remove any unwanted programs, such as spyware.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;You purchased a computer without an operating system.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Fortunately, you do not need to be a computer expert to install Windows XP. Installing Windows XP is a straightforward process that takes between one to two hours. Of that time, you need to be present for only about 30 minutes.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.microsoft.com/windowsxp/using/setup/winxp/install.mspx#preinstall"&gt;Pre-installation checklist&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.microsoft.com/windowsxp/using/setup/winxp/install.mspx#install"&gt;Install Windows XP&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; If you have a computer with an older operating system, such as Windows 98, Windows ME, or Windows 2000, you should &lt;a href="http://www.microsoft.com/windowsxp/using/setup/winxp/upgrade.mspx"&gt;upgrade to Windows XP&lt;/a&gt; instead of performing a clean installation. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="preinstall"&gt;&lt;a name="EQB"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Pre-installation checklist&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Before you begin the installation process, use this checklist to make sure that you are prepared:&lt;/p&gt;&lt;img class="nearGraphic" title="Check" border="0" alt="Check" align="left" src="http://img.microsoft.com/library/media/1033/windowsxp/images/using/setup/winxp/check.jpg" width="18" height="18" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;You have the Windows XP CD.&lt;/p&gt;&lt;img class="nearGraphic" title="Check" border="0" alt="Check" align="left" src="http://img.microsoft.com/library/media/1033/windowsxp/images/using/setup/winxp/check.jpg" width="18" height="18" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;You have the product key available. The product key is located on your Windows XP CD case and is required to install and activate Windows XP.&lt;/p&gt;&lt;img class="nearGraphic" title="Check" border="0" alt="Check" align="left" src="http://img.microsoft.com/library/media/1033/windowsxp/images/using/setup/winxp/check.jpg" width="18" height="18" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Your computer hardware is set up. At a minimum, you should connect your keyboard, mouse, monitor, and CD drive. If available, you should &lt;a href="http://www.microsoft.com/windowsxp/using/setup/winxp/network.mspx"&gt;connect your computer to a wired network&lt;/a&gt;.&lt;/p&gt;&lt;img class="nearGraphic" title="Check" border="0" alt="Check" align="left" src="http://img.microsoft.com/library/media/1033/windowsxp/images/using/setup/winxp/check.jpg" width="18" height="18" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;You have Windows XP drivers available. Drivers are software that Windows XP uses to communicate with your computer’s hardware. Most new computers include a CD containing drivers. If you do not have drivers available, Windows XP may already include drivers for your hardware. If not, you should be able to download them from your hardware manufacturer’s Web site after you set up Windows XP.&lt;/p&gt;&lt;img class="nearGraphic" title="Check" border="0" alt="Check" align="left" src="http://img.microsoft.com/library/media/1033/windowsxp/images/using/setup/winxp/check.jpg" width="18" height="18" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;If you are reinstalling Windows XP on an existing computer, you need a backup copy of your files and settings. The installation process will delete all of your files. You can use the &lt;a href="http://www.microsoft.com/windowsxp/using/setup/winxp/migrate.mspx"&gt;File and Settings Transfer Wizard&lt;/a&gt; to store your files and settings on removable media and then restore them after installation is complete. &lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="MARGIN-TOP: 3px; MARGIN-BOTTOM: 10px"&gt;&lt;a href="http://www.microsoft.com/windowsxp/using/setup/winxp/install.mspx#top"&gt;&lt;img border="0" alt="Top of page" src="http://www.microsoft.com/business/templates/MNP2.Common/images/arrow_px_up.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/windowsxp/using/setup/winxp/install.mspx#top"&gt;Top of page&lt;/a&gt;&lt;/div&gt;&lt;a name="EVC"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Installation process&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Installing Windows XP can take up to two hours. To make the process more manageable, it has been broken up into several sections. When you are ready, install Windows XP:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.microsoft.com/windowsxp/using/setup/winxp/install.mspx#begin"&gt;Part 1: Begin the installation&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.microsoft.com/windowsxp/using/setup/winxp/install.mspx#continue"&gt;Part 2: Continue the installation&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.microsoft.com/windowsxp/using/setup/winxp/install.mspx#complete"&gt;Part 3: Complete the installation&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 247px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5382390614217865330" border="0" alt="" src="http://2.bp.blogspot.com/_fS3EzCj5Vac/SrIXvxraOHI/AAAAAAAAAPM/vVjw3SZ2FPc/s400/4.jpg" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Part 1: Begin the installation&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td class="listNumber" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Insert the Windows XP CD into your computer and restart your computer. &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td class="listNumber" align="right"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;If prompted to start from the CD, press SPACEBAR. If you miss the prompt (it only appears for a few seconds), restart your computer to try again.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 250px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5382385767813502850" border="0" alt="" src="http://3.bp.blogspot.com/_fS3EzCj5Vac/SrITVrakV4I/AAAAAAAAAO0/BvElHkCr70A/s400/1.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;3. Windows XP Setup begins. During this portion of setup, your mouse will not work, so you must use the keyboard. On the &lt;b&gt;Welcome to Setup&lt;/b&gt; page, press ENTER.&lt;br /&gt;&lt;/div&gt; &lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 247px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5382386816371640418" border="0" alt="" src="http://2.bp.blogspot.com/_fS3EzCj5Vac/SrIUStmTyGI/AAAAAAAAAO8/JE4IpVoqgq4/s400/2.jpg" /&gt;&lt;br /&gt;4. On the &lt;b&gt;Windows XP Licensing Agreement&lt;/b&gt; page, read the licensing agreement. Press the PAGE DOWN key to scroll to the bottom of the agreement. Then press F8.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 247px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5382391792332051138" border="0" alt="" src="http://4.bp.blogspot.com/_fS3EzCj5Vac/SrIY0WfuEsI/AAAAAAAAAPU/4eig0E3pJ_w/s400/3.jpg" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-1757346638325012691?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/1757346638325012691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=1757346638325012691' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/1757346638325012691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/1757346638325012691'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/09/install-windows-xp-published-september.html' title=''/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fS3EzCj5Vac/SrIXvxraOHI/AAAAAAAAAPM/vVjw3SZ2FPc/s72-c/4.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-4110152499556414593</id><published>2009-09-17T02:42:00.000-07:00</published><updated>2009-09-17T02:44:46.774-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS_09'/><title type='text'>Installation Process of  Linux</title><content type='html'>&lt;h1 class="title"&gt;Linux Installation, Step by Step&lt;/h1&gt;&lt;p&gt;If you have come directly to this page hoping to install Linux without doing any more reading, I suggest that you reconsider. Without the proper knowledge and preparation, attempting to install any operating system (whether Linux or any other) can be a disaster. So before I launch into the resources for your step by step Linux installation, here are some things you should already have read: &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogger.com/lx-before.html"&gt;Before You Begin&lt;/a&gt;... I have created a backgrounder for new users in the form of several brief articles that cover the bare necessities of technical skills required to install Linux. You should read through the articles before you install, and make sure you understand all the concepts involved. The articles also cover in detail the several preparatory steps required before you install, which are often missing from other documentation. &lt;/p&gt;&lt;p&gt;Each Linux installation has its own setup utility, every one vastly different from all the others. This makes it very difficult if not impossible to write a step by step Linux installation manual. The closest thing in existence is the &lt;a href="http://tldp.org/LDP/gs/gs.html"&gt;Linux Installation and Getting Started Guide&lt;/a&gt;, which should be included in HTML format with every Linux distribution, and is available online thanks to the &lt;a href="http://tldp.org/"&gt;Linux Documentation Project&lt;/a&gt;. This book contains a fairly good comparison of the major distributions and an outline of the installation process for each one. It also covers the basic technical concepts you need to understand during installation, and covers some issues of usability following your install. I highly recommend that new users at least skim through this book, and preferably absorb every word. &lt;/p&gt;&lt;p&gt;Also well worth the time it takes to read it is the &lt;a href="http://tldp.org/HOWTO/Installation-HOWTO/index.html"&gt;Linux Installation HOW-TO&lt;/a&gt;. This document will give you some invaluable background knowledge about what is involved in the installation process.&lt;/p&gt;&lt;p&gt;Now that you are armed with the knowledge you need, it is time to present you with your map to Linux. Below are links to the official installation documentation for the various Linux distributions. I had originally intended to add my own reviews, comments and tips to this documentation, but with each vendor releasing two new versions every year, I just can't keep up. &lt;/p&gt;&lt;h2&gt;Ubuntu Linux&lt;/h2&gt;&lt;p&gt;&lt;a href="http://www.ubuntu.com/support/documentation"&gt;Ubuntu Documentation page&lt;/a&gt; &lt;/p&gt;&lt;h2&gt;Debian GNU/Linux&lt;/h2&gt;&lt;p&gt;&lt;a href="http://www.debian.org/releases/stable/#new-inst"&gt;Installation Manual&lt;/a&gt; - Also the &lt;a href="http://www.debian.org/support"&gt;Online Support Page&lt;/a&gt; lists mailing lists and chat channels. &lt;/p&gt;&lt;h2&gt;Mandriva Linux&lt;/h2&gt;&lt;dl&gt;&lt;dd&gt;&lt;a href="http://www.mandriva.com/en/community/resources/documentation"&gt;Mandriva Documentation Page&lt;/a&gt; gives access to install guides for all recent versions of Mandriva in multiple languages. Wow!&lt;/dd&gt;&lt;/dl&gt;&lt;h2&gt;Red Hat Linux&lt;/h2&gt;&lt;dl&gt;&lt;dd&gt;&lt;a href="http://www.redhat.com/docs/manuals/linux/"&gt;Red Hat Linux Manuals Page&lt;/a&gt; includes install guides for all recent versions of Red Hat Linux.&lt;/dd&gt;&lt;/dl&gt;&lt;h2&gt;Slackware Linux&lt;/h2&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-4110152499556414593?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/4110152499556414593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=4110152499556414593' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/4110152499556414593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/4110152499556414593'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/09/installation-process-of-linux.html' title='Installation Process of  Linux'/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-4445432652708387904</id><published>2009-08-28T02:14:00.000-07:00</published><updated>2009-08-28T02:27:01.320-07:00</updated><title type='text'></title><content type='html'>&lt;div style="text-align: center;"&gt;Resource-Allocation Graph&lt;br /&gt;&lt;/div&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;Process&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fS3EzCj5Vac/SpehqAucQqI/AAAAAAAAAOE/ufO53uPmeOk/s1600-h/1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 55px; height: 55px;" src="http://2.bp.blogspot.com/_fS3EzCj5Vac/SpehqAucQqI/AAAAAAAAAOE/ufO53uPmeOk/s320/1.jpg" alt="" id="BLOGGER_PHOTO_ID_5374942423411344034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;Resource Type w/ 4 inst&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fS3EzCj5Vac/Spehm20vuaI/AAAAAAAAAN8/InQSmbjOJMQ/s1600-h/2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 55px; height: 55px;" src="http://4.bp.blogspot.com/_fS3EzCj5Vac/Spehm20vuaI/AAAAAAAAAN8/InQSmbjOJMQ/s320/2.jpg" alt="" id="BLOGGER_PHOTO_ID_5374942369213823394" border="0" /&gt;&lt;/a&gt;ances&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;Pi requests instance of Rj&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fS3EzCj5Vac/SpehhwgqA5I/AAAAAAAAAN0/1__81QLX8e4/s1600-h/3.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 136px; height: 55px;" src="http://3.bp.blogspot.com/_fS3EzCj5Vac/SpehhwgqA5I/AAAAAAAAAN0/1__81QLX8e4/s320/3.jpg" alt="" id="BLOGGER_PHOTO_ID_5374942281619604370" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;Pi is holding an instance of Rj&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fS3EzCj5Vac/Spehd_Sdz4I/AAAAAAAAANs/3Cvrm_o8bKo/s1600-h/4.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 132px; height: 55px;" src="http://2.bp.blogspot.com/_fS3EzCj5Vac/Spehd_Sdz4I/AAAAAAAAANs/3Cvrm_o8bKo/s320/4.jpg" alt="" id="BLOGGER_PHOTO_ID_5374942216867139458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color:violet;"&gt;&lt;span style="color:yellow;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;QUESTION&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul style="color: rgb(51, 204, 0);"&gt;&lt;li&gt;How would you know if there's a DEADLOCK based on the resource allocation graph?&lt;/li&gt;&lt;/ul&gt;&lt;span style="color:violet;"&gt;&lt;br /&gt;&lt;span style="color:yellow;"&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;ANSWER&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;If graph contains no cycles &lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);" &gt;=&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);" &gt;no deadlock&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;If graph contains a cycle &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul style="color: rgb(51, 204, 0);"&gt;&lt;li&gt;if only one instance per resource type, then deadlock (meaning if the cycle goes on a single path, it will result to a DEALOCK).&lt;/li&gt;&lt;/ul&gt;&lt;ul style="color: rgb(51, 204, 0);"&gt;&lt;li&gt;if several instances per resource type, possibility of deadlock (meaning if the resource allocation graph has several cycles it has a POSSIBILITY for DEADLOCK).&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-4445432652708387904?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/4445432652708387904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=4445432652708387904' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/4445432652708387904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/4445432652708387904'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/08/resource-allocation-graph-process.html' title=''/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fS3EzCj5Vac/SpehqAucQqI/AAAAAAAAAOE/ufO53uPmeOk/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-4206152319750211445</id><published>2009-08-27T02:16:00.000-07:00</published><updated>2009-08-28T02:13:46.808-07:00</updated><title type='text'></title><content type='html'>&lt;div align="center"&gt;&lt;strong&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;Unsafe State in Resource-Allocation Graph&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;div style="text-align: left;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5374600639394523874" style="margin: 0px auto 10px; display: block; width: 320px; height: 319px; text-align: center;" alt="" src="http://1.bp.blogspot.com/_fS3EzCj5Vac/SpZqzkCyquI/AAAAAAAAAM8/5eoF2KAt42U/s320/Picture5.png" border="0" /&gt;· The RAG above is compose of 2 resources and 2 processes&lt;br /&gt;· P1 holds an instance of R1&lt;br /&gt;· P2 is requesting an instance of R1&lt;br /&gt;· P2 holds an instance of R2&lt;br /&gt;· P1 may request an instance of R2&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;strong&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;Resource-Allocation Graph For Deadlock Avoidance&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;strong&gt;&lt;/strong&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://2.bp.blogspot.com/_fS3EzCj5Vac/SpZmnGhNePI/AAAAAAAAAM0/h6x48F1WT-0/s1600-h/Picture4.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5374596027264104690" style="margin: 0px auto 10px; display: block; width: 320px; height: 318px; text-align: center;" alt="" src="http://2.bp.blogspot.com/_fS3EzCj5Vac/SpZmnGhNePI/AAAAAAAAAM0/h6x48F1WT-0/s320/Picture4.png" border="0" /&gt;&lt;/a&gt;· The Resource Allocation Graph (RAG) above is composed of 2 processes and 2 resources.&lt;br /&gt;· P1 holds an instance of R1&lt;br /&gt;· P2 requests an instance of R1&lt;br /&gt;· P1 and P2 may request an instance of R2&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;strong&gt;Resource-Allocation&lt;/strong&gt; &lt;strong&gt;Graph With A Cycle But No Deadlock &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;img id="BLOGGER_PHOTO_ID_5374589837238965378" style="margin: 0px auto 10px; display: block; width: 252px; height: 320px; text-align: center;" alt="" src="http://1.bp.blogspot.com/_fS3EzCj5Vac/SpZg-y4NlII/AAAAAAAAAMs/t4779dSAInc/s320/Picture3.png" border="0" /&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="left"&gt;P1 is holding an instance of R2 and requests instance of R1.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="left"&gt;P2 is holding an instance of of R1.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="left"&gt;P3 is holding an instance of R1 and requests instance of R2.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="left"&gt;P4 is holding instance of R2. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;strong&gt;Resource-Allocation Graph With A Deadlock &lt;/strong&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_fS3EzCj5Vac/Spee6AjfPnI/AAAAAAAAANE/vgDqHvS4_p4/s1600-h/Picture2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 221px; height: 320px;" src="http://1.bp.blogspot.com/_fS3EzCj5Vac/Spee6AjfPnI/AAAAAAAAANE/vgDqHvS4_p4/s320/Picture2.png" alt="" id="BLOGGER_PHOTO_ID_5374939399708425842" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;P1 is holding an instance of R2 and requests instance of R2 and requests instance of R1&lt;/li&gt;&lt;li&gt;P2 is holding an instance of R1 and R2 then requests of instance of R3&lt;/li&gt;&lt;li&gt;P3 is holding an instance of R3 and requests an instance of R2&lt;/li&gt;&lt;li&gt;&lt;span style="color:violet;"&gt; &lt;span style="color: rgb(51, 51, 51);"&gt;R1 or resource 1 is composed of only one instance&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(51, 51, 51);"&gt; R2 has 2 instances&lt;br /&gt;&lt;/li&gt;&lt;li style="color: rgb(51, 51, 51);"&gt; R3 has one instance&lt;br /&gt;&lt;/li&gt;&lt;li style="color: rgb(51, 51, 51);"&gt; R4 has 3 instances&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;strong&gt;Example of Resource-Allocation Graph&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5374573911637470018" style="margin: 0px auto 10px; display: block; width: 222px; height: 320px; text-align: center;" alt="" src="http://3.bp.blogspot.com/_fS3EzCj5Vac/SpZSfzY7q0I/AAAAAAAAAMU/AM-BCElokB4/s320/Picture1.png" border="0" /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;P1 is holding an instance of R2 and requests instance of R1.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;P2 is holdng an instsnce of R1 and R2 ang requests of instance of R3.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;P3 is holding an instance of R3.&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/7466418088187779220-4206152319750211445?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/4206152319750211445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=4206152319750211445' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/4206152319750211445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/4206152319750211445'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/08/resource-allocation-graph-p1-is-holding.html' title=''/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_fS3EzCj5Vac/SpZqzkCyquI/AAAAAAAAAM8/5eoF2KAt42U/s72-c/Picture5.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-3686117695847256578</id><published>2009-08-20T04:16:00.000-07:00</published><updated>2009-08-28T01:46:40.018-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS_08'/><title type='text'></title><content type='html'>&lt;span style="font-weight: bold;"&gt;Recovery or Deadlock Recovery&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fS3EzCj5Vac/SpIkTEvdkNI/AAAAAAAAAME/RquP6i55vSk/s1600-h/image004.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 195px;" src="http://2.bp.blogspot.com/_fS3EzCj5Vac/SpIkTEvdkNI/AAAAAAAAAME/RquP6i55vSk/s400/image004.jpg" alt="" id="BLOGGER_PHOTO_ID_5373397215515349202" border="0" /&gt;&lt;/a&gt;&lt;h1&gt;&lt;a name="SECTION00070000000000000000"&gt;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt; &lt;b&gt;Abort all deadlock processes&lt;/b&gt; and release resource - &lt;i&gt;too drastic&lt;/i&gt; - will lead to loss of work &lt;/li&gt;&lt;li&gt; &lt;b&gt;Abort one process at a time&lt;/b&gt; - releasing resources until no deadlock&lt;br /&gt;How do we determine which process to abort first ? - &lt;i&gt;priority ordering&lt;/i&gt;,  &lt;i&gt;process which has done least work&lt;/i&gt; &lt;/li&gt;&lt;li&gt; &lt;b&gt;Selectively restart&lt;/b&gt; processes from a previous &lt;i&gt;checkpoint&lt;/i&gt; i.e. before it claimed any resources&lt;br /&gt;difficult to achieve - sometimes impossible &lt;/li&gt;&lt;li&gt; &lt;b&gt;Successively withdraw resources&lt;/b&gt; from a process and give to another process  until deadlock is broken. How to choose which processes and which resources ? &lt;/li&gt;&lt;/ul&gt; &lt;p&gt; &lt;/p&gt;&lt;ol&gt;&lt;li&gt; Complex decisions due to the large number of processes present within a system &lt;/li&gt;&lt;li&gt; Difficult to automate &lt;/li&gt;&lt;li&gt; Use Operator to resolve conflicts - BUT this requires the operator to have skill and understanding of what processes are actually doing &lt;/li&gt;&lt;/ol&gt;&lt;b&gt;Process Termination:&lt;/b&gt;&lt;div&gt; · Abort all deadlocked processes.&lt;/div&gt;&lt;div&gt; · Abort one process at a time until the deadlock cycle is eliminated.&lt;/div&gt;&lt;div&gt; · In which order should we choose to abort?&lt;/div&gt;&lt;div&gt;   - Priority of the process.&lt;/div&gt;&lt;div&gt;  - How long process has computed, and how much longer to completion.&lt;/div&gt;&lt;div&gt;  - Resources the process has used.&lt;/div&gt;&lt;div&gt;  - Resources process needs to complete.&lt;/div&gt;&lt;div&gt;  - How many processes will need to be terminated. &lt;/div&gt;&lt;div&gt;  - Is process interactive or batch?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt; Resource Preemption &lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt; · Selecting a victim – minimize cost.&lt;/div&gt;&lt;div&gt; · Rollback – return to some safe state, restart process for that state.&lt;/div&gt;&lt;div&gt; · Starvation – same process may always be picked as victim, include &lt;/div&gt;&lt;div&gt;number of rollback in cost factor.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-3686117695847256578?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/3686117695847256578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=3686117695847256578' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/3686117695847256578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/3686117695847256578'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/08/recovery-or-deadlock-recovery.html' title=''/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fS3EzCj5Vac/SpIkTEvdkNI/AAAAAAAAAME/RquP6i55vSk/s72-c/image004.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-4556931805875351061</id><published>2009-08-20T04:15:00.000-07:00</published><updated>2009-08-23T22:31:00.939-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS_08'/><title type='text'></title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Deadlock Detection&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt; In Operating Systems a special resource-allocation graph algorithm can be used to detect whether there is any deadlock in the system. A resource-allocation graph is a directed graph consisting of two different types of nodes &lt;!-- MATH  $P = P_1,P_2, \dots ,P_n$  --&gt; &lt;span class="MATH"&gt;&lt;i&gt;P&lt;/i&gt; = &lt;i&gt;P&lt;/i&gt;&lt;sub&gt;1&lt;/sub&gt;, &lt;i&gt;P&lt;/i&gt;&lt;sub&gt;2&lt;/sub&gt;,..., &lt;i&gt;P&lt;/i&gt;&lt;sub&gt;n&lt;/sub&gt;&lt;/span&gt;, the set consisting of all active processes in the system, and &lt;!-- MATH  $R = R_1,R_2, \dots,R_m$  --&gt; &lt;span class="MATH"&gt;&lt;i&gt;R&lt;/i&gt; = &lt;i&gt;R&lt;/i&gt;&lt;sub&gt;1&lt;/sub&gt;, &lt;i&gt;R&lt;/i&gt;&lt;sub&gt;2&lt;/sub&gt;,..., &lt;i&gt;R&lt;/i&gt;&lt;sub&gt;m&lt;/sub&gt;&lt;/span&gt;, the set consisting of all resource types in the system. &lt;/p&gt;&lt;p&gt; A directed edge from process &lt;span class="MATH"&gt;&lt;i&gt;P&lt;/i&gt;&lt;sub&gt;i&lt;/sub&gt;&lt;/span&gt; to resource &lt;span class="MATH"&gt;&lt;i&gt;R&lt;/i&gt;&lt;sub&gt;j&lt;/sub&gt;&lt;/span&gt; is denoted by &lt;!-- MATH  $P_i \longrightarrow R_j$  --&gt; &lt;span class="MATH"&gt;&lt;i&gt;P&lt;/i&gt;&lt;sub&gt;i&lt;/sub&gt; &lt;img src="http://acm.uva.es/problemset/v8/840img1.png" alt="$ \longrightarrow$" align="bottom" border="0" width="33" height="16" /&gt; &lt;i&gt;R&lt;/i&gt;&lt;sub&gt;j&lt;/sub&gt;&lt;/span&gt; and means that process &lt;span class="MATH"&gt;&lt;i&gt;P&lt;/i&gt;&lt;sub&gt;i&lt;/sub&gt;&lt;/span&gt; requested an instance resource type &lt;span class="MATH"&gt;&lt;i&gt;R&lt;/i&gt;&lt;sub&gt;j&lt;/sub&gt;&lt;/span&gt;, and is currently waiting for that resource. A directed edge from resource type &lt;span class="MATH"&gt;&lt;i&gt;R&lt;/i&gt;&lt;sub&gt;j&lt;/sub&gt;&lt;/span&gt; to process &lt;span class="MATH"&gt;&lt;i&gt;P&lt;/i&gt;&lt;sub&gt;i&lt;/sub&gt;&lt;/span&gt;, is denoted by &lt;!-- MATH  $R_j \longrightarrow P_i$  --&gt; &lt;span class="MATH"&gt;&lt;i&gt;R&lt;/i&gt;&lt;sub&gt;j&lt;/sub&gt; &lt;img src="http://acm.uva.es/problemset/v8/840img1.png" alt="$ \longrightarrow$" align="bottom" border="0" width="33" height="16" /&gt; &lt;i&gt;P&lt;/i&gt;&lt;sub&gt;i&lt;/sub&gt;&lt;/span&gt; and means that an instance of resource type &lt;span class="MATH"&gt;&lt;i&gt;R&lt;/i&gt;&lt;sub&gt;j&lt;/sub&gt;&lt;/span&gt; has been allocated to process &lt;span class="MATH"&gt;&lt;i&gt;P&lt;/i&gt;&lt;sub&gt;i&lt;/sub&gt;&lt;/span&gt;.  &lt;/p&gt;&lt;p&gt; The following figure illustrates a resource-allocation graph where processes are denoted by circles and resources by squares. Notice that if there is a circular wait among the processes, then it implies that a deadlock has occurred.  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fS3EzCj5Vac/SpIlQH3bvKI/AAAAAAAAAMM/q2TFqQLaDsA/s1600-h/p840.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 232px;" src="http://4.bp.blogspot.com/_fS3EzCj5Vac/SpIlQH3bvKI/AAAAAAAAAMM/q2TFqQLaDsA/s400/p840.jpg" alt="" id="BLOGGER_PHOTO_ID_5373398264326110370" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt; Given a resource allocation graph in which each resource type has exactly one instance, your job is to determine whether there is a deadlock in the system. In case a deadlock exists, you must also show the sequence of processes and resources involved.  &lt;/p&gt;&lt;p&gt;  &lt;/p&gt;&lt;h2&gt;&lt;span style="color:#0070e8;"&gt;&lt;a name="SECTION0001001000000000000000"&gt; Input&lt;/a&gt; &lt;/span&gt; &lt;/h2&gt; &lt;b&gt;The input begins with a single positive integer on a line by itself indicating the number of the cases following, each of them as described below. This line is followed by a blank line, and there is also a blank line between two consecutive inputs. &lt;/b&gt;  &lt;p&gt;  &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt; We will assume that processes are named by capital letters and resources by small letters, so we limit to 26 the number of processes and/or resources. Therefore, the first line of input consists of three numbers &lt;span class="MATH"&gt;&lt;i&gt;N&lt;/i&gt;&lt;/span&gt;, &lt;span class="MATH"&gt;&lt;i&gt;M&lt;/i&gt;&lt;/span&gt; and &lt;span class="MATH"&gt;&lt;i&gt;E&lt;/i&gt;&lt;/span&gt;, respectively, the number of processes, the number of resources and the number of edges. The edges are given in the following lines as pairs of letters linked by a `&lt;tt&gt;-&lt;/tt&gt;' character. Edges are separated by spaces or newlines.  &lt;/p&gt;&lt;p&gt;  &lt;/p&gt;&lt;h2&gt;&lt;span style="color:#0070e8;"&gt;&lt;a name="SECTION0001002000000000000000"&gt; Output&lt;/a&gt; &lt;/span&gt; &lt;/h2&gt; &lt;b&gt;For each test case, the output must follow the description below. The outputs of two consecutive cases will be separated by a blank line. &lt;/b&gt;  &lt;p&gt;  &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt; The output must be `&lt;tt&gt;NO&lt;/tt&gt;' if no deadlock is detected. In case a deadlock is detected, the output must be `&lt;tt&gt;YES&lt;/tt&gt;' followed by the sequence or sequences of circular waits detected, one per line. If more then one sequence is found, they should all be output in increasing order of their length.  &lt;/p&gt;&lt;p&gt;  &lt;/p&gt;&lt;h2&gt;&lt;span style="color:#0070e8;"&gt;&lt;a name="SECTION0001003000000000000000"&gt; Sample Input&lt;/a&gt; &lt;/span&gt; &lt;/h2&gt; &lt;pre&gt;1&lt;br /&gt;&lt;br /&gt;2 2 4&lt;br /&gt;A-b B-a&lt;br /&gt;a-A b-B&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;  &lt;/p&gt;&lt;h2&gt;&lt;span style="color:#0070e8;"&gt;&lt;a name="SECTION0001004000000000000000"&gt; Sample Output&lt;/a&gt; &lt;/span&gt; &lt;/h2&gt; &lt;pre&gt;YES&lt;br /&gt;A-b-B-a-A&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-4556931805875351061?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/4556931805875351061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=4556931805875351061' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/4556931805875351061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/4556931805875351061'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/08/deadlock-detection.html' title=''/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_fS3EzCj5Vac/SpIlQH3bvKI/AAAAAAAAAMM/q2TFqQLaDsA/s72-c/p840.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-1865830571331585208</id><published>2009-08-20T04:04:00.000-07:00</published><updated>2009-08-20T04:15:18.765-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS_08'/><title type='text'></title><content type='html'>&lt;strong&gt;Deadlock Prevention&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;No Preemption –&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If a process that is holding some resources requests another resource that cannot be immediately allocated to it, then all resources currently being held are released.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Preempted resources are added to the list of resources for which the process is waiting.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Process will be restarted only when it can regain its old resources, as well as the new ones that it is requesting.&lt;br /&gt;Circular Wait – impose a total ordering of all resource types, and require that each process requests resources in an increasing order of enumeration. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;Circular Wait – impose a total ordering of all resource types, and require that each process requests resources in an increasing order of enumeration.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Deadlock prevention - low device utilization and reduced system throughput.&lt;br /&gt;Deadlock avoidance&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Given the complete sequence of requests and releases for each process, we can decide for each request whether or not the process should wait.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For every request, the system&lt;br /&gt;tconsiders the resources currently available, the resources currently allocated, and the future requests and releases of each process, and&lt;br /&gt;decides whether the current request can be satisfied or must wait to avoid a possible future deadlock. &lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;&lt;br /&gt;considers the resources currently available, the resources currently allocated, and the future requests and releases of each process, and &lt;/li&gt;&lt;li&gt;&lt;br /&gt;decides whether the current avoid a possible future deadlock.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-1865830571331585208?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/1865830571331585208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=1865830571331585208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/1865830571331585208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/1865830571331585208'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/08/deadlock-prevention-no-preemption-if.html' title=''/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-355287008843086519</id><published>2009-08-20T03:57:00.000-07:00</published><updated>2009-08-20T04:18:30.821-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS_08'/><title type='text'></title><content type='html'>&lt;strong&gt;Methods for handling Deadlocks&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Deadlock Prevention.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Disallow one of the four necessary conditions for deadlock. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Deadlock Avoidance.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Do not grant a resource request if this allocation have the potential to lead to a deadlock. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Deadlock Detection.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Always grant resource request when possible. Periodically check for deadlocks. If a deadlock exists, recover from it. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Ignore the problem...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Makes sense if the likelihood is very low.&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/7466418088187779220-355287008843086519?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/355287008843086519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=355287008843086519' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/355287008843086519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/355287008843086519'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/08/methods-for-handling-deadlocks-deadlock.html' title=''/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-8401290351732138889</id><published>2009-08-20T03:38:00.000-07:00</published><updated>2009-08-20T04:19:01.594-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS_08'/><title type='text'></title><content type='html'>&lt;strong&gt;Deadlock Characterization&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;• All four conditions must existsimultaneously for deadlock to occur.&lt;br /&gt;• If we can prevent any one of theconditions, we prevent deadlock&lt;br /&gt;&lt;br /&gt;1. Mutual exclusion: only one process at a time can use a resource.&lt;br /&gt;&lt;br /&gt;2. Hold and wait: a process holding at least one resource is waiting to acquire additional resources held by other processes.&lt;br /&gt;&lt;br /&gt;3. No preemption: a resource can be released only voluntarily by the process holding it, after that process has Completed its task.&lt;br /&gt;&lt;br /&gt;4. Circular wait: there exists a set {P0, P1, …, P0} of waiting processes such that P0 is waiting for a resource that is held by P1, P1 is waiting for a resource that is held by P2, …, Pn–1 waiting for a resource that is held by Pn, and P0 is waiting for a resource that is held by P0.Deadlock can arise if four conditions hold simultaneously&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-8401290351732138889?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/8401290351732138889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=8401290351732138889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/8401290351732138889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/8401290351732138889'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/08/deadlock-characterization-all-four.html' title=''/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-4731075852856015149</id><published>2009-08-15T00:01:00.000-07:00</published><updated>2009-08-15T00:23:25.718-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS_06'/><title type='text'></title><content type='html'>&lt;span style="font-weight: bold;"&gt;Multiprocessor Scheduling&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fS3EzCj5Vac/SoZe0na0nWI/AAAAAAAAAK8/V7q66Nikcyo/s1600-h/mutiprocess.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 253px;" src="http://3.bp.blogspot.com/_fS3EzCj5Vac/SoZe0na0nWI/AAAAAAAAAK8/V7q66Nikcyo/s320/mutiprocess.gif" alt="" id="BLOGGER_PHOTO_ID_5370083863713586530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;In &lt;a href="http://en.wikipedia.org/wiki/Computer_science" title="Computer science"&gt;computer science&lt;/a&gt;, &lt;b&gt;multiprocessor sch&lt;/b&gt;&lt;b&gt;eduling&lt;/b&gt; is an &lt;a href="http://en.wikipedia.org/wiki/NP-Complete" title="NP-Complete" class="mw-redirect"&gt;NP-Complete&lt;/a&gt; optimization problem. The problem statement is: "Given a set &lt;i&gt;J&lt;/i&gt; of jobs where job &lt;i&gt;j&lt;sub&gt;i&lt;/sub&gt;&lt;/i&gt; has length &lt;i&gt;l&lt;sub&gt;i&lt;/sub&gt;&lt;/i&gt; and a number of processors &lt;i&gt;m&lt;sub&gt;i&lt;/sub&gt;&lt;/i&gt;, what is the minimum possible time required to schedule all jobs in &lt;i&gt;J&lt;/i&gt; on &lt;i&gt;m&lt;/i&gt; processors such that none overlap?" The applications of this problem are numerous, but are, as suggested by the name of the problem, most strongly associated with the &lt;a href="http://en.wikipedia.org/wiki/Scheduling" title="Scheduling"&gt;scheduling&lt;/a&gt; of computational tasks in a &lt;a href="http://en.wikipedia.org/wiki/Multiprocessor" title="Multiprocessor" class="mw-redirect"&gt;multiprocessor&lt;/a&gt; environment.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Will consider only shared memory multiprocessor&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fS3EzCj5Vac/SoZdyX2YKTI/AAAAAAAAAK0/s0c1Gz3xsSI/s1600-h/Picture1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 129px;" src="http://2.bp.blogspot.com/_fS3EzCj5Vac/SoZdyX2YKTI/AAAAAAAAAK0/s0c1Gz3xsSI/s320/Picture1.png" alt="" id="BLOGGER_PHOTO_ID_5370082725662828850" border="0" /&gt;&lt;/a&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/7466418088187779220-4731075852856015149?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/4731075852856015149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=4731075852856015149' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/4731075852856015149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/4731075852856015149'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/08/multiprocessor-scheduling-in-computer.html' title=''/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fS3EzCj5Vac/SoZe0na0nWI/AAAAAAAAAK8/V7q66Nikcyo/s72-c/mutiprocess.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-6120373879377359490</id><published>2009-08-13T04:16:00.000-07:00</published><updated>2009-08-15T00:25:22.497-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS_06'/><title type='text'></title><content type='html'>&lt;p&gt;&lt;strong&gt;Real Time Scheduling&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="Real-time computing" href="http://en.wikipedia.org/wiki/Real-time_computing"&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fS3EzCj5Vac/SoZiqYvEdYI/AAAAAAAAALE/asGSIUJFtlA/s1600-h/cases04.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 241px;" src="http://2.bp.blogspot.com/_fS3EzCj5Vac/SoZiqYvEdYI/AAAAAAAAALE/asGSIUJFtlA/s320/cases04.jpg" alt="" id="BLOGGER_PHOTO_ID_5370088086019798402" border="0" /&gt;&lt;/a&gt;&lt;a title="Real-time computing" href="http://en.wikipedia.org/wiki/Real-time_computing"&gt;A &lt;/a&gt;&lt;a title="Computer multitasking" href="http://en.wikipedia.org/wiki/Computer_multitasking"&gt;multitasking&lt;/a&gt; &lt;a title="Operating system" href="http://en.wikipedia.org/wiki/Operating_system"&gt;operating system&lt;/a&gt; intended for &lt;a title="Real-time computing" href="http://en.wikipedia.org/wiki/Real-time_computing"&gt;real&lt;/a&gt;&lt;a title="Real-time computing" href="http://en.wikipedia.org/wiki/Real-time_computing"&gt;-time&lt;/a&gt; applications. Such applications include &lt;a title="Embedded system" href="http://en.wikipedia.org/wiki/Embedded_system"&gt;embedded systems&lt;/a&gt; (programmable thermostats, household appliance controllers), industrial &lt;a title="Robot" href="http://en.wikipedia.org/wiki/Robot"&gt;robots&lt;/a&gt;, spacecraft, industrial control (see &lt;a title="SCADA" href="http://en.wikipedia.org/wiki/SCADA"&gt;SCADA&lt;/a&gt;), and scientific research equipment.&lt;br /&gt;A RTOS facilitates the creation of a real-time system, but does not guarantee the final result will be real-time; this requires correct development of the software. An RTOS does not necessarily have high &lt;a title="Throughput" href="http://en.wikipedia.org/wiki/Throughput"&gt;throughput&lt;/a&gt;; rather, an RTOS provides facilities which, if used properly, guarantee deadlines can be met generally or deterministically (known as &lt;a title="Real-time computing" href="http://en.wikipedia.org/wiki/Real-time_computing#Hard_and_soft_real-time_systems"&gt;soft or hard real-time&lt;/a&gt;, respectively). An RTOS will typically use specialized scheduling algorithms in order to provide the real-time developer with the tools necessary to produce deterministic behavior in the final system. An RTOS is valued more for how quickly and/or predictably it can respond to a particular event than for the amount of work it can perform over a given period of time. Key factors in an RTOS are therefore a minimal &lt;a title="Interrupt latency" href="http://en.wikipedia.org/wiki/Interrupt_latency"&gt;interrupt latency&lt;/a&gt; and a minimal &lt;a title="Thread switching latency" href="http://en.wikipedia.org/wiki/Thread_switching_latency"&gt;thread switching latency&lt;/a&gt;.&lt;br /&gt;An early example of a large-scale real-time operating system was &lt;a title="Transaction Processing Facility" href="http://en.wikipedia.org/wiki/Transaction_Processing_Facility"&gt;Transaction Processing Facility&lt;/a&gt; developed by &lt;a title="American Airlines" href="http://en.wikipedia.org/wiki/American_Airlines"&gt;American Airlines&lt;/a&gt; and &lt;a class="mw-redirect" title="International Business Machines" href="http://en.wikipedia.org/wiki/International_Business_Machines"&gt;IBM&lt;/a&gt; for the &lt;a title="Sabre (computer system)" href="http://en.wikipedia.org/wiki/Sabre_%28computer_system%29"&gt;Sabre Airline Reservations System&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;em&gt;Real-Time Review&lt;br /&gt;&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Real time is not just “real fast”&lt;br /&gt;Real time means that correctness of result depends on both functional correctness and time that the result is delivered&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Soft real time&lt;br /&gt;Utility degrades with distance from deadline&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Hard real time&lt;br /&gt;System fails if deadline window is missed&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Firm real time&lt;br /&gt;Result has no utility outside deadline window, but system can withstand a few missed results&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;em&gt;Type of Real-Time Scheduling&lt;/em&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Dynamic vs. Static&lt;br /&gt;Dynamic schedule computed at run-time based on tasks really executing&lt;br /&gt;Static schedule done at compile time for all possible tasks&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Preemptive permits one task to preempt another one of lower priority&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/7466418088187779220-6120373879377359490?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/6120373879377359490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=6120373879377359490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/6120373879377359490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/6120373879377359490'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/08/real-time-scheduling-multitasking.html' title=''/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fS3EzCj5Vac/SoZiqYvEdYI/AAAAAAAAALE/asGSIUJFtlA/s72-c/cases04.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-7122515403348286838</id><published>2009-08-13T04:02:00.000-07:00</published><updated>2009-08-15T00:29:31.047-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS_06'/><title type='text'></title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Thread Scheduling&lt;/strong&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZjLTVuuWI/AAAAAAAAALM/thEG0W_ILZY/s1600-h/06.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 245px;" src="http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZjLTVuuWI/AAAAAAAAALM/thEG0W_ILZY/s320/06.JPG" alt="" id="BLOGGER_PHOTO_ID_5370088651507022178" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The thread of a parent process forks a child process. The child process inherits the scheduling policy and priority of the parent process. As with the parent thread, it is the child thread whose scheduling policy and priority will be used. &lt;/p&gt;&lt;p&gt;     The following figure illustates the flow of creation.&lt;br /&gt;&lt;a name="d0e6333"&gt;&lt;/a&gt;&lt;br /&gt;   Figure 1-35 Inheritance of Scheduling policy and priority&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Each thread in a process is independently scheduled.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Each thread contains its own scheduling policy and priority&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Thread scheduling policies and priorities may be assigned before a thread is created (in the threads attributes object) or set dynamically while a thread is running.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Each thread may be bound directly to a CPU.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Each thread may be suspended (and later resumed) by any thread within the process.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The following scheduling attributes may be set in the threads attribute object. The newly created thread will contain these scheduling attributes:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;contentionscope&lt;br /&gt;PTHREAD_SCOPE_SYSTEM specifies a bound (1 x 1, kernel-spacel) thread. When a bound thread is created, both a user thread and a kernel-scheduled entity are created.&lt;br /&gt;PTHREAD_SCOPE_PROCESS will specify an unbound (M x N, combination user- and kernel-space) thread. (Note, HP-UX release 10.30 does not support unbound threads.)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;inheritsched&lt;br /&gt;PTHREAD_INHERIT_SCHED specifies that the created thread will inherit its scheduling values from the creating thread, instead of from the threads attribute object.&lt;br /&gt;PTHREAD_EXPLICIT_SCHED specifies that the created thread will get its scheduling values from the threads attribute object.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;schedpolicy&lt;br /&gt;The scheduling policy of the newly created thread&lt;br /&gt;&lt;/li&gt;&lt;li&gt;schedparam&lt;br /&gt;The scheduling parameter (priority) of the newly created thread.&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/7466418088187779220-7122515403348286838?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/7122515403348286838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=7122515403348286838' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/7122515403348286838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/7122515403348286838'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/08/thread-scheduling-thread-of-parent.html' title=''/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZjLTVuuWI/AAAAAAAAALM/thEG0W_ILZY/s72-c/06.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-1174292515981614964</id><published>2009-08-10T21:02:00.000-07:00</published><updated>2009-08-11T01:14:59.738-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS_06'/><title type='text'></title><content type='html'>&lt;h3&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Different CPU Scheduling Algorithms&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Treats ready queue as FIFO.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Simple, but typically long/varying waiting time.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Shortest Job First (SJF)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Give CPU to the process with the shortest next burst&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;If equal, use FCFS&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Better name: shortest next cpu burst first&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;?xml:namespace prefix = o /&gt;&lt;o:shapelayout style="FONT-WEIGHT: bold" ext="edit"&gt;&lt;/o:shapelayout&gt;&lt;o:idmap style="FONT-WEIGHT: bold" ext="edit" data="1"&gt;&lt;/o:idmap&gt;&lt;/span&gt;&lt;style&gt; v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} p\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} v\:textbox {display:none;} &lt;/style&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="FONT-WEIGHT: bold;font-size:130%;" &gt;Round-Robin (RR)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;FCFS with Preemption&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Time quantum (or time slice)&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Ready Queue treated as circular queue&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Shortest Remaining Time (SRT)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Preemptive version of shortest process next policy&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Must estimate processing time &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/7466418088187779220-1174292515981614964?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/1174292515981614964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=1174292515981614964' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/1174292515981614964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/1174292515981614964'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/08/windows-xp-thread-implements-one-to-one.html' title=''/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-5341545657140443061</id><published>2009-07-30T03:43:00.001-07:00</published><updated>2009-08-09T01:49:00.062-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS_05'/><title type='text'></title><content type='html'>&lt;span style="font-weight: bold;"&gt;Single Threaded Process&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fS3EzCj5Vac/Sn6NS_2bq_I/AAAAAAAAAKs/QfELyIEyFvg/s1600-h/Picture3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 186px;" src="http://3.bp.blogspot.com/_fS3EzCj5Vac/Sn6NS_2bq_I/AAAAAAAAAKs/QfELyIEyFvg/s320/Picture3.png" alt="" id="BLOGGER_PHOTO_ID_5367883163389111282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Multi-Threaded Process&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Benefits of Multi-threaded Programming&lt;/li&gt;&lt;/ul&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;Responsiveness - Parts of a program can continue running even if parts of it are blocked. &lt;/em&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;Book points out that a multi-threaded web &lt;/em&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;browser could still allow user interaction in one thread while downloading a gif in another thread…&lt;br /&gt;*Resource Sharing – pros and cons here. By sharing memory or other resources (files, etc.) the threads share the same address space. (there are issues here…)&lt;br /&gt;*Economy – since threads share resources, it is easier to co&lt;/em&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;ntext-switch threads than context-switching processes. This should be clear.&lt;br /&gt;*Utilization of MP Architectures – there will be significant increases in performance in a multiprocessor system, where different threads may be runnin&lt;/em&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;g simultan&lt;/em&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;eously (in parallel) on multiple processors.&lt;/em&gt;&lt;br /&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;*Of course, there’s never ‘a free lunch,’ as we will see later. (There’s always a cost…;  nothing this good comes free.&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;User Thread&lt;/li&gt;&lt;/ul&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;..Thread management done by user-level threads library&lt;br /&gt;..Three primary thread libraries:&lt;br /&gt;-POSIX Pthreads&lt;br /&gt;&lt;/em&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;-Win32 threads&lt;/em&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;Kernel Thread&lt;/li&gt;&lt;/ul&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;*Supported by the Kernel&lt;br /&gt;*Examples&lt;/em&gt;&lt;br /&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;-Windows XP/2000&lt;/em&gt;&lt;br /&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;-Solaris&lt;/em&gt;&lt;br /&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;-Linux&lt;/em&gt;&lt;br /&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;-Tru64 UNIX&lt;br /&gt;-Mac OS X&lt;/em&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;Thread Library&lt;/li&gt;&lt;/ul&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;Programmers need help and receive developme&lt;/em&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;nt help via thread libraries germane to specific development APIs..&lt;br /&gt;*A thread library provides an API for creating and managing threads. Java has an extensive API for thread creation and management.&lt;br /&gt;-There are two primary ways to implement thread libraries:&lt;br /&gt;1.  Provide  thread library entirely in user space – no kern&lt;/em&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;el support&lt;/em&gt;&lt;br /&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;-All code and data structures for the library exist in user space.&lt;br /&gt;-And, invoking a local function call to the library in user space is NOT a system call, but rather a local function call. (this is good). &lt;/em&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;&lt;em&gt;2.  Implement a kernel-level library supported by the OS.&lt;br /&gt;-Here, code and data structures exist in kernel space.&lt;br /&gt;-Unfortunately, in invoking a function call to the library, there is a system call to the kernel for support.&lt;/em&gt;&lt;/div&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;Multi Models&lt;/li&gt;&lt;/ul&gt;&lt;p style="font-weight: bold;"&gt;Many-to-one Model&lt;/p&gt;&lt;p&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;Each user thread maps to one kernel thread&lt;/em&gt;&lt;br /&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;•Is this implementation good (concurrency vs. efficiency)?&lt;br /&gt;–Good concurrency, why? (blocking syscall does not affect other threads)&lt;br /&gt;–Expensive, why? (user-thread creation -&gt; kernel-thread creation)&lt;br /&gt;•How to have both &lt;/em&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;good concurrency and efficiency?&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em style="color: rgb(0, 0, 0);"&gt; &lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;One-to-one Model&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;em&gt;*Each user-level t&lt;/em&gt;&lt;em&gt;hread maps &lt;/em&gt;&lt;em&gt;to kernel thread&lt;br /&gt;*Examples&lt;br /&gt;-Windows NT/XP/2000&lt;br /&gt;-Linux&lt;/em&gt;&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;em&gt;-Solaris 9 and later &lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fS3EzCj5Vac/Sn6MYhRph5I/AAAAAAAAAKk/VRFqvPYLCXY/s1600-h/Picture4.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 122px;" src="http://4.bp.blogspot.com/_fS3EzCj5Vac/Sn6MYhRph5I/AAAAAAAAAKk/VRFqvPYLCXY/s320/Picture4.png" alt="" id="BLOGGER_PHOTO_ID_5367882158749353874" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;Many-to-Many model&lt;/p&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;em&gt;Many user threads are mapped to a smaller or equal number of kernel threads. –Why is this better than Many-to-one? (concurrency &amp;amp; multi-processor) –Why is this better than one-to-one? (efficiency) •Like one-to-one concurrency? –Two-level model.&lt;/em&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-5341545657140443061?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/5341545657140443061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=5341545657140443061' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/5341545657140443061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/5341545657140443061'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/07/single-threaded-process-multi-threaded.html' title=''/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fS3EzCj5Vac/Sn6NS_2bq_I/AAAAAAAAAKs/QfELyIEyFvg/s72-c/Picture3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-135574934767201030</id><published>2009-07-30T02:06:00.000-07:00</published><updated>2009-08-09T01:52:30.475-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS_04'/><title type='text'></title><content type='html'>&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Interprocess Communication&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;Inter-process communication (IPC) is a set of techniques for the exchange of data among multiple &lt;a title="Thread (computer science)" href="http://en.wikipedia.org/wiki/Thread_%28computer_science%29"&gt;threads&lt;/a&gt; in one or more &lt;a title="Process (computing)" href="http://en.wikipedia.org/wiki/Process_%28computing%29"&gt;processes&lt;/a&gt;. Processes may be running on one or more computers connected by a &lt;a title="Computer network" href="http://en.wikipedia.org/wiki/Computer_network"&gt;network&lt;/a&gt;. IPC techniques are divided into methods for &lt;a title="Message passing" href="http://en.wikipedia.org/wiki/Message_passing"&gt;message passing&lt;/a&gt;, &lt;a title="Synchronization (computer science)" href="http://en.wikipedia.org/wiki/Synchronization_%28computer_science%29"&gt;synchronization&lt;/a&gt;, &lt;a title="Shared memory" href="http://en.wikipedia.org/wiki/Shared_memory"&gt;shared memory&lt;/a&gt;, and &lt;a title="Remote procedure call" href="http://en.wikipedia.org/wiki/Remote_procedure_call"&gt;remote procedure calls&lt;/a&gt; (RPC). The method of IPC used may vary based on the bandwidth and latency of communication between the threads, and the type of data being communicated.&lt;br /&gt;There are several reasons for providing an environment that allows process cooperation:&lt;br /&gt;Information sharing&lt;br /&gt;Computation speedup&lt;br /&gt;Modularity&lt;br /&gt;Convenience&lt;br /&gt;IPC may also be referred to as inter-thread communication and inter-application communication.&lt;br /&gt;IPC, on par with the &lt;a title="Address space" href="http://en.wikipedia.org/wiki/Address_space"&gt;address space&lt;/a&gt; concept, is the foundation for address space independence/isolation&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Direct Communication&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Processes must name each other explicitly:&lt;/p&gt;&lt;p&gt;send (P, message) – send a message to process P receive(Q, message) – receive a message from process Q Properties of communication link-Links are established automatically A link is associated with exactly one pair of communicating processes-Between each pair there exists exactly one link-The link may be unidirectional, but is usually bi-directional&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Indirect Communication&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;•messages sent to and received from mailboxes (or ports)&lt;br /&gt;–mailboxes can be viewed as objects into which messages placed by processes and from which messages can be removed by other processes&lt;br /&gt;–each mailbox has a unique ID&lt;br /&gt;–two processes can communicate only if they have a shared mailbox&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Synchronization&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;"Synchrony" redirects here. For linguistic synchrony, see &lt;a class="mw-redirect" title="Synchronic analysis (linguistics)" href="http://en.wikipedia.org/wiki/Synchronic_analysis_%28linguistics%29"&gt;Synchronic analysis (linguistics)&lt;/a&gt;. For the X-Files episode, see &lt;a class="mw-redirect" title="Synchrony (The X-Files)" href="http://en.wikipedia.org/wiki/Synchrony_%28The_X-Files%29"&gt;Synchrony (The X-Files)&lt;/a&gt;.&lt;br /&gt;For similarly named concepts, see &lt;a title="Synchronicity (disambiguation)" href="http://en.wikipedia.org/wiki/Synchronicity_%28disambiguation%29"&gt;Synchronicity (disambiguation)&lt;/a&gt;.&lt;br /&gt;Not to be confused with &lt;a title="Data synchronization" href="http://en.wikipedia.org/wiki/Data_synchronization"&gt;data synchronization&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Synchronization or synchronisation is &lt;a class="mw-redirect" title="Timekeeping" href="http://en.wikipedia.org/wiki/Timekeeping"&gt;timekeeping&lt;/a&gt; which requires the coordination of events to operate a &lt;a title="System" href="http://en.wikipedia.org/wiki/System"&gt;system&lt;/a&gt; in unison. The familiar &lt;a title="Conducting" href="http://en.wikipedia.org/wiki/Conducting"&gt;conductor&lt;/a&gt; of an orchestra serves to keep the orchestra in time. Systems operating with all their parts in synchrony are said to be synchronous or in sync. Some systems may be only approximately synchronized, or &lt;a title="Plesiochronous" href="http://en.wikipedia.org/wiki/Plesiochronous"&gt;plesiochronous&lt;/a&gt;. For some applications relative offsets between events need to be determined, for others only the order of the event is important.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Blocking Send&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;A blocking send can be used with a non-blocking receive, and vice-versa, e.g.,&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Nonblocking Send&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;can use any mode - synchronous, buffered, standard or ready &lt;p&gt;returns as soon as possible, that is, as soon as it has posted the send. The buffer might not be free for reuse. &lt;/p&gt;&lt;p&gt;-Non-blocking send has the sender send the message and continue.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Blocking Receive&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Blocking receive has the receiver block until a message is available&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Nonblocking Receive&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Non-blocking receive has the receiver receive a valid message or null.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Buffering&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;•the number of messages that can reside in a link temporarily&lt;br /&gt;–Zero capacity - queue length 0&lt;br /&gt;»sender must wait until receiver ready to take the message&lt;br /&gt;–Bounded capacity - finite length queue&lt;br /&gt;»messages can be queued as long as queue not full&lt;br /&gt;»otherwise sender will have to wait&lt;br /&gt;–Unbounded capacity&lt;br /&gt;»any number of messages can be queued - in virtual space?&lt;br /&gt;»sender never delayed&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Zero Capacity&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;0 messagesSender must wait for receiver (rendezvous)&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Bounded capacity&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;finite length of n messagesSender must wait if link full.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Unbounded Capacity&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;infinite length Sender never waits&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Procedure-Consumer Example&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Procedure&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;a person who produces.&lt;br /&gt;»get a message block from mayproduce&lt;br /&gt;»put data item in block&lt;br /&gt;»send message to mayconsume&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Consumer&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;a person or thing that consumes.&lt;br /&gt;»get a message from mayconsume&lt;br /&gt;»consume data in block&lt;br /&gt;»return empty message block to mayproduce mailbox&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-135574934767201030?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/135574934767201030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=135574934767201030' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/135574934767201030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/135574934767201030'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/07/interprocess-communication-inter.html' title=''/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-7471422523023294186</id><published>2009-07-16T03:22:00.000-07:00</published><updated>2009-07-16T03:43:21.622-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS_04'/><title type='text'></title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#ff99ff;"&gt;Cooperating Processes&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Independent process cannot affect or be affected by the execution of another process.-Cooperating process can affect or be affected by the execution of another process-Advantages of process cooperation-Information sharing-Computation speed-up-Modularity-Convenience &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#ff99ff;"&gt;Interprocess Communication&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Inter-process communication (IPC) is a set of techniques for the exchange of data among multiple &lt;a title="Thread (computer science)" href="http://en.wikipedia.org/wiki/Thread_(computer_science)"&gt;threads&lt;/a&gt; in one or more &lt;a title="Process (computing)" href="http://en.wikipedia.org/wiki/Process_(computing)"&gt;processes&lt;/a&gt;. Processes may be running on one or more computers connected by a &lt;a title="Computer network" href="http://en.wikipedia.org/wiki/Computer_network"&gt;network&lt;/a&gt;. IPC techniques are divided into methods for &lt;a title="Message passing" href="http://en.wikipedia.org/wiki/Message_passing"&gt;message passing&lt;/a&gt;, &lt;a title="Synchronization (computer science)" href="http://en.wikipedia.org/wiki/Synchronization_(computer_science)"&gt;synchronization&lt;/a&gt;, &lt;a title="Shared memory" href="http://en.wikipedia.org/wiki/Shared_memory"&gt;shared memory&lt;/a&gt;, and &lt;a title="Remote procedure call" href="http://en.wikipedia.org/wiki/Remote_procedure_call"&gt;remote procedure calls&lt;/a&gt; (RPC). The method of IPC used may vary based on the bandwidth and latency of communication between the threads, and the type of data being communicated.&lt;br /&gt;There are several reasons for providing an environment that allows process cooperation:&lt;br /&gt;Information sharing&lt;br /&gt;Computation speedup&lt;br /&gt;Modularity&lt;br /&gt;Convenience&lt;br /&gt;IPC may also be referred to as inter-thread communication and inter-application communication.&lt;br /&gt;IPC, on par with the &lt;a title="Address space" href="http://en.wikipedia.org/wiki/Address_space"&gt;address space&lt;/a&gt; concept, is the foundation for address space independence/isolation.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#ff99ff;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-7471422523023294186?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/7471422523023294186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=7471422523023294186' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/7471422523023294186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/7471422523023294186'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/07/cooperating-processes-independent.html' title=''/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-8079546239140094306</id><published>2009-07-16T02:35:00.000-07:00</published><updated>2009-07-16T03:12:29.563-07:00</updated><title type='text'>The Concept of Process</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_fS3EzCj5Vac/Sl72SNQuQZI/AAAAAAAAAJU/__pREWdATrI/s1600-h/_27383_figure30.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5358991399275348370" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 217px" alt="" src="http://3.bp.blogspot.com/_fS3EzCj5Vac/Sl72SNQuQZI/AAAAAAAAAJU/__pREWdATrI/s400/_27383_figure30.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Processes are among the most useful abstractions in operating systems (OS) theory and design, since they offer a unified framework to describe all the various activities of a computer as they are managed by the OS. The term process was (allegedly) first used by the designers of Multics in the '60s, to mean something more general than a job in a multiprogramming environment. Similar ideas, however, were at the heart of many independent system design efforts at the time, so it's rather difficult to point at one particular person or team as the originator of the concept.&lt;br /&gt;As is common for concepts discovered and re-discovered many times on the field before being put on theory books, several definitions have been proposed for the term process, including picturesque ones like ``the animated spirit of a program''. We'd rather draw upon the very general ideas of system theory instead, and regard a process as a representation of the state of an instance of a program in execution.&lt;br /&gt;In this definition, the word instance (also ``image'', ``activation'') refers to the fact that in a multiprogramming environment several copies of the same program (or of a piece of executable common to different programs) may be concurrently executed by different users or applications. Instead of mantaining in main memory several copies of the executable code of the program, it is often possible to store in memory just one copy of it, and mantain a description of the current status (program counter position, values of the variables, etc.) of each executing activation of it. Main memory usage is in this way maximized. This tecnique is called code reentrance, and its implementation requires both careful crafting of the reentrant routines&lt;a href="http://www.cim.mcgill.ca/~franco/OpSys-304-427/lecture-notes/footnode.html#24" name="tex2html4"&gt;&lt;/a&gt;, whose instructions constitute the permanent part of the activation, and provisions in the OS in order to mantain an activation record of the temporary part relative to each activation, such as program counter value, variable values, a pointer back to the calling routine and to its activation record&lt;a href="http://www.cim.mcgill.ca/~franco/OpSys-304-427/lecture-notes/footnode.html#26" name="tex2html5"&gt;&lt;/a&gt;,etc.&lt;br /&gt;Similarly to the way in which activation records allow distinguishing between different activations of the same piece of executable code, by mantaining information about their status, a process description allow an OS to manage, without ensuing chaos, the concurrent execution of different programs all sharing the same resources in terms of processors, memory, peripherals. Again, the keyword here is state i.e., in system theory parlance, all the information that, along with the knowledge of the current and future input values, allows predicting the evolution of a deterministic system like a program.&lt;br /&gt;What information is this? Obviously the program's executable code&lt;a href="http://www.cim.mcgill.ca/~franco/OpSys-304-427/lecture-notes/footnode.html#28" name="tex2html6"&gt;&lt;/a&gt; is a part of it, as is the associated data needed by the program (variables, I/O buffers, etc.), but this is not enough. The OS needs also to know about the execution context of the program, which includes -at the very least- the content of the processor registers and the work space in main memory, and often additional information like a priority value, whether the process is running or waiting for the completion of an I/O event, etc.&lt;br /&gt;Consider the scheme in Fig. &lt;a href="http://www.cim.mcgill.ca/~franco/OpSys-304-427/lecture-notes/node4.html#fig2processes"&gt;1&lt;/a&gt;, which depicts a simple process implementation scheme. There are two processes, A and B, each with its own instructions, data and context, stored in main memory. The OS maintains, also in memory, a list of pointers to the above processes, and perhaps some additional information for each of them. The content of a ``current process'' location identifies which process is currently being executed. The processor registers then contain data relevant to that particular process. Among them are the base and top adrresses of the area in memory reserved to the process: an error condition would be trapped if the program being executed tried to write in a memory word whose address is outside those bounds. This allows process protectin and prevents unwanted interferences. When the OS decides, according to a predefined policy, that time has come to suspend the current process, the whole process registers content would be saved in the process's context area, and the registers would be restored with the context of another process. Since the program counter register of the latter process would be restored too, execution would restart automatically from the previous suspension point. &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#ff0000;"&gt;Process State&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The process state consist of everything necessary to resume the process execution if it is somehow put aside temporarily. The process state consists of at least following:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Code for the program.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Program's static data.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Program's dynamic data.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Program's procedure call stack.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Contents of general purpose registers.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Contents of program counter (PC)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Contents of program status word (PSW).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Operating Systems resource in use. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#ff0000;"&gt;Process Control Block&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;A Process Control Block (PCB, also called Task Control Block or Task Struct) is a data structure in the &lt;a title="Operating system" href="http://en.wikipedia.org/wiki/Operating_system"&gt;operating system&lt;/a&gt; &lt;a class="mw-redirect" title="Kernel (computer science)" href="http://en.wikipedia.org/wiki/Kernel_(computer_science)"&gt;kernel&lt;/a&gt; containing the information needed to manage a particular process. The PCB is "the manifestation of a process in an operating system".&lt;a href="http://en.wikipedia.org/wiki/Process_control_block#cite_note-0"&gt;[1]&lt;/a&gt;&lt;br /&gt;&lt;a id="Included_information" name="Included_information"&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Included information&lt;/strong&gt;&lt;br /&gt;Implementations differ, but in general a PCB will include, directly or indirectly:&lt;br /&gt;The identifier of the process (a &lt;a title="Process identifier" href="http://en.wikipedia.org/wiki/Process_identifier"&gt;process identifier&lt;/a&gt;, or PID)&lt;br /&gt;&lt;a title="Processor register" href="http://en.wikipedia.org/wiki/Processor_register"&gt;Register&lt;/a&gt; values for the process including, notably,&lt;br /&gt;the &lt;a class="mw-redirect" title="Program Counter" href="http://en.wikipedia.org/wiki/Program_Counter"&gt;Program Counter&lt;/a&gt; value for the process&lt;br /&gt;The &lt;a title="Address space" href="http://en.wikipedia.org/wiki/Address_space"&gt;address space&lt;/a&gt; for the process&lt;br /&gt;Priority (in which higher priority process gets first preference. eg., nice value on Unix operating systems)&lt;br /&gt;Process accounting information, such as when the process was last run, how much &lt;a title="Central processing unit" href="http://en.wikipedia.org/wiki/Central_processing_unit"&gt;CPU&lt;/a&gt; time it has accumulated, etc.&lt;br /&gt;Pointer to the next PCB i.e. pointer to the PCB of the next process to run&lt;br /&gt;I/O Information (i.e. I/O devices allocated to this process, list of opened files, etc)&lt;br /&gt;During a &lt;a title="Context switch" href="http://en.wikipedia.org/wiki/Context_switch"&gt;context switch&lt;/a&gt;, the running process is stopped and another process is given a chance to run. The kernel must stop the execution of the running process, copy out the values in hardware registers to its PCB, and update the hardware registers with the values from the PCB of the new process.&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#ff0000;"&gt;Threads&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;For the form of code consisting entirely of &lt;a title="Subroutine" href="http://en.wikipedia.org/wiki/Subroutine"&gt;subroutine&lt;/a&gt; calls, see &lt;a title="Threaded code" href="http://en.wikipedia.org/wiki/Threaded_code"&gt;Threaded code&lt;/a&gt;. For the collection of posts, see &lt;a title="Internet forum" href="http://en.wikipedia.org/wiki/Internet_forum#Thread"&gt;Internet forum#Thread&lt;/a&gt;.&lt;br /&gt;&lt;a class="image" title="A process with two threads of execution." href="http://en.wikipedia.org/wiki/File:Multithreaded_process.svg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a class="internal" title="Enlarge" href="http://en.wikipedia.org/wiki/File:Multithreaded_process.svg"&gt;&lt;/a&gt;A process with two threads of execution.&lt;br /&gt;In &lt;a title="Computer science" href="http://en.wikipedia.org/wiki/Computer_science"&gt;computer science&lt;/a&gt;, a thread of execution results from a &lt;a title="Fork (operating system)" href="http://en.wikipedia.org/wiki/Fork_(operating_system)"&gt;fork&lt;/a&gt; of a &lt;a title="Computer program" href="http://en.wikipedia.org/wiki/Computer_program"&gt;computer program&lt;/a&gt; into two or more &lt;a title="Concurrency (computer science)" href="http://en.wikipedia.org/wiki/Concurrency_(computer_science)"&gt;concurrently&lt;/a&gt; running &lt;a class="mw-redirect" title="Task (computers)" href="http://en.wikipedia.org/wiki/Task_(computers)"&gt;tasks&lt;/a&gt;. The implementation of threads and &lt;a title="Process (computing)" href="http://en.wikipedia.org/wiki/Process_(computing)"&gt;processes&lt;/a&gt; differs from one &lt;a title="Operating system" href="http://en.wikipedia.org/wiki/Operating_system"&gt;operating system&lt;/a&gt; to another, but in most cases, a thread is contained inside a process. Multiple threads can exist within the same process and share resources such as &lt;a title="Shared memory" href="http://en.wikipedia.org/wiki/Shared_memory"&gt;memory&lt;/a&gt;, while different &lt;a title="Process (computing)" href="http://en.wikipedia.org/wiki/Process_(computing)"&gt;processes&lt;/a&gt; do not share these resources.&lt;br /&gt;On a single processor, multithreading generally occurs by &lt;a title="Time-division multiplexing" href="http://en.wikipedia.org/wiki/Time-division_multiplexing"&gt;time-division multiplexing&lt;/a&gt; (as in &lt;a title="Computer multitasking" href="http://en.wikipedia.org/wiki/Computer_multitasking"&gt;multitasking&lt;/a&gt;): the &lt;a title="Central processing unit" href="http://en.wikipedia.org/wiki/Central_processing_unit"&gt;processor&lt;/a&gt; switches between different threads. This &lt;a title="Context switch" href="http://en.wikipedia.org/wiki/Context_switch"&gt;context switching&lt;/a&gt; generally happens frequently enough that the user perceives the threads or tasks as running at the same time. On a &lt;a class="mw-redirect" title="Multiprocessor" href="http://en.wikipedia.org/wiki/Multiprocessor"&gt;multiprocessor&lt;/a&gt; or &lt;a title="Multi-core" href="http://en.wikipedia.org/wiki/Multi-core"&gt;multi-core&lt;/a&gt; system, the threads or tasks will generally run at the same time, with each processor or core running a particular thread or task. Support for threads in programming languages varies: a number of languages simply do not support having more than one execution context inside the same program executing at the same time. Examples of such languages include &lt;a title="Python (programming language)" href="http://en.wikipedia.org/wiki/Python_(programming_language)"&gt;Python&lt;/a&gt;, and &lt;a class="mw-redirect" title="OCaml" href="http://en.wikipedia.org/wiki/OCaml"&gt;OCaml&lt;/a&gt;, because the parallel support of their runtime support is limited by the use of a central lock, called "Global Interpreter Lock" in Python, "master lock" in Ocaml. Other languages may be limited because they use threads that are user threads, which are not visible to the kernel, and thus cannot be scheduled to run concurrently. On the other hand, kernel threads, which are visible to the kernel, can run concurrently.&lt;br /&gt;Many modern &lt;a title="Operating system" href="http://en.wikipedia.org/wiki/Operating_system"&gt;operating systems&lt;/a&gt; directly support both time-sliced and multiprocessor threading with a process &lt;a title="Scheduling (computing)" href="http://en.wikipedia.org/wiki/Scheduling_(computing)"&gt;scheduler&lt;/a&gt;. The &lt;a class="mw-redirect" title="Kernel (computer science)" href="http://en.wikipedia.org/wiki/Kernel_(computer_science)"&gt;kernel&lt;/a&gt; of an operating system allows programmers to manipulate threads via the &lt;a title="System call" href="http://en.wikipedia.org/wiki/System_call"&gt;system call&lt;/a&gt; interface. Some implementations are called a kernel thread, whereas a &lt;a title="Light-weight process" href="http://en.wikipedia.org/wiki/Light-weight_process"&gt;lightweight process&lt;/a&gt; (LWP) is a specific type of kernel thread that shares the same state and information.&lt;br /&gt;Programs can have user-space threads when threading with timers, signals, or other methods to interrupt their own execution, performing a sort of &lt;a class="mw-redirect" title="Ad-hoc" href="http://en.wikipedia.org/wiki/Ad-hoc"&gt;ad-hoc&lt;/a&gt; &lt;a class="mw-redirect" title="Time-slicing" href="http://en.wikipedia.org/wiki/Time-slicing"&gt;time-slicing&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_fS3EzCj5Vac/Sl74RyvZ_pI/AAAAAAAAAJk/aPtZZjomP4o/s1600-h/22222.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5358993591179542162" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 256px; CURSOR: hand; HEIGHT: 218px" alt="" src="http://1.bp.blogspot.com/_fS3EzCj5Vac/Sl74RyvZ_pI/AAAAAAAAAJk/aPtZZjomP4o/s320/22222.png" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-8079546239140094306?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/8079546239140094306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=8079546239140094306' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/8079546239140094306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/8079546239140094306'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/07/concept-of-process.html' title='The Concept of Process'/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fS3EzCj5Vac/Sl72SNQuQZI/AAAAAAAAAJU/__pREWdATrI/s72-c/_27383_figure30.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-4829615249110767524</id><published>2009-07-16T01:59:00.000-07:00</published><updated>2009-07-16T03:21:06.025-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS_04'/><title type='text'>Process Scheduling</title><content type='html'>&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#3366ff;"&gt;Scheduling Queues&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Job queue&lt;/strong&gt; – set of all processes in the system.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Ready queue&lt;/strong&gt; – set of all processes residing in main memory, ready and waiting to execute. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Device queues&lt;/strong&gt; – set of processes waiting for an I/O device. Process migration between the various queues. Representation of Process Scheduling &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#3366ff;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#3366ff;"&gt;Schedulers&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Scheduling is a key concept in &lt;a title="Computer multitasking" href="http://en.wikipedia.org/wiki/Computer_multitasking"&gt;computer multitasking&lt;/a&gt; and &lt;a title="Multiprocessing" href="http://en.wikipedia.org/wiki/Multiprocessing"&gt;multiprocessing&lt;/a&gt; &lt;a title="Operating system" href="http://en.wikipedia.org/wiki/Operating_system"&gt;operating system&lt;/a&gt; design, and in &lt;a title="Real-time operating system" href="http://en.wikipedia.org/wiki/Real-time_operating_system"&gt;real-time operating system&lt;/a&gt; design. In modern operating systems, there are typically many more processes running than there are &lt;a class="mw-redirect" title="CPU" href="http://en.wikipedia.org/wiki/CPU"&gt;CPUs&lt;/a&gt; available to run them. Scheduling refers to the way &lt;a title="Process (computing)" href="http://en.wikipedia.org/wiki/Process_(computing)"&gt;processes&lt;/a&gt; are assigned to run on the available &lt;a class="mw-redirect" title="CPU" href="http://en.wikipedia.org/wiki/CPU"&gt;CPUs&lt;/a&gt;. This assignment is carried out by software known as a scheduler.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;The scheduler is concerned mainly with:&lt;/span&gt;&lt;br /&gt;&lt;a class="mw-redirect" title="CPU" href="http://en.wikipedia.org/wiki/CPU"&gt;CPU&lt;/a&gt; utilization - to keep the CPU as busy as possible.&lt;br /&gt;&lt;a title="Throughput" href="http://en.wikipedia.org/wiki/Throughput"&gt;Throughput&lt;/a&gt; - number of process that complete their execution per time unit.&lt;br /&gt;&lt;a title="Turnaround" href="http://en.wikipedia.org/wiki/Turnaround"&gt;Turnaround&lt;/a&gt; - amount of time to execute a particular process.&lt;br /&gt;Waiting time - amount of time a process has been waiting in the &lt;a class="mw-redirect" title="Ready queue" href="http://en.wikipedia.org/wiki/Ready_queue"&gt;ready queue&lt;/a&gt;.&lt;br /&gt;&lt;a title="Response time" href="http://en.wikipedia.org/wiki/Response_time"&gt;Response time&lt;/a&gt; - amount of time it takes from when a request was submitted until the first response is produced.&lt;br /&gt;Fairness - Equal CPU time to each thread.&lt;br /&gt;In &lt;a title="Real-time computing" href="http://en.wikipedia.org/wiki/Real-time_computing"&gt;real-time&lt;/a&gt; environments, such as &lt;a title="Mobile device" href="http://en.wikipedia.org/wiki/Mobile_device"&gt;mobile devices&lt;/a&gt; for &lt;a title="Automatic control" href="http://en.wikipedia.org/wiki/Automatic_control"&gt;automatic control&lt;/a&gt; in industry (for example &lt;a title="Robotics" href="http://en.wikipedia.org/wiki/Robotics"&gt;robotics&lt;/a&gt;), the scheduler also must ensure that processes can meet &lt;a title="Deadline" href="http://en.wikipedia.org/wiki/Deadline"&gt;deadlines&lt;/a&gt;; this is crucial for keeping the system stable. Scheduled tasks are sent to mobile devices and &lt;a title="Device Management" href="http://en.wikipedia.org/wiki/Device_Management"&gt;managed&lt;/a&gt; through an administrative back end.&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#3366ff;"&gt;Context Switch&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;For other uses, see &lt;a title="Switch (disambiguation)" href="http://en.wikipedia.org/wiki/Switch_(disambiguation)"&gt;Switch (disambiguation)&lt;/a&gt;.&lt;br /&gt;A context switch is the &lt;a title="Computing" href="http://en.wikipedia.org/wiki/Computing"&gt;computing&lt;/a&gt; process of storing and restoring the &lt;a title="State (computer science)" href="http://en.wikipedia.org/wiki/State_(computer_science)"&gt;state&lt;/a&gt; (&lt;a title="Context (computing)" href="http://en.wikipedia.org/wiki/Context_(computing)"&gt;context&lt;/a&gt;) of a &lt;a title="Central processing unit" href="http://en.wikipedia.org/wiki/Central_processing_unit"&gt;CPU&lt;/a&gt; such that multiple &lt;a title="Process (computing)" href="http://en.wikipedia.org/wiki/Process_(computing)"&gt;processes&lt;/a&gt; can share a single CPU resource. The context switch is an essential feature of a &lt;a title="Computer multitasking" href="http://en.wikipedia.org/wiki/Computer_multitasking"&gt;multitasking&lt;/a&gt; &lt;a title="Operating system" href="http://en.wikipedia.org/wiki/Operating_system"&gt;operating system&lt;/a&gt;. Context switches are usually computationally intensive and much of the design of &lt;a title="Operating system" href="http://en.wikipedia.org/wiki/Operating_system"&gt;operating systems&lt;/a&gt; is to optimize the use of context switches. A context switch can mean a &lt;a title="Processor register" href="http://en.wikipedia.org/wiki/Processor_register"&gt;register&lt;/a&gt; context switch, a task context switch, a &lt;a title="Thread (computer science)" href="http://en.wikipedia.org/wiki/Thread_(computer_science)"&gt;thread&lt;/a&gt; context switch, or a process context switch. What constitutes the context is determined by the processor and the operating system.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Contents&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Context_switch#When_to_switch.3F"&gt;1 When to switch?&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Context_switch#Multitasking"&gt;1.1 Multitasking&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Context_switch#Interrupt_handling"&gt;1.2 Interrupt handling&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Context_switch#User_and_kernel_mode_switching"&gt;1.3 User and kernel mode switching&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Context_switch#Context_switch:_steps"&gt;2 Context switch: steps&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Context_switch#Software_vs_hardware_context_switching"&gt;3 Software vs hardware context switching&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Context_switch#External_links"&gt;4 External links&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-4829615249110767524?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/4829615249110767524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=4829615249110767524' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/4829615249110767524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/4829615249110767524'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/07/process-scheduling_16.html' title='Process Scheduling'/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-5065201064900708546</id><published>2009-07-16T01:46:00.000-07:00</published><updated>2009-07-16T01:58:52.703-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS_04'/><title type='text'>Operation on Processes</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#990000;"&gt;Process Creation&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Nachos processes are formed by creating an address space, allocating physical memory for the address space, loading the contents of the executable into physical memory, initializing registers and address translation tables, and then invoking machine::Run() to start execution. Run() simply ``turns on'' the simulated MIPS machine, having it enter an infinite loop that executes instructions one at a time).&lt;br /&gt;Stock Nachos assumes that only a single user program exists at a given time. Thus, when an address space is created, Nachos assumes that no one else is using physical memory and simply zeros out all of physical memory (e.g., the mainMemory character array). Nachos then reads the binary into physical memory starting at location mainMemory and initializes the translation tables to do a one-to-one mapping between virtual and physical addresses (e.g., so that any virtual address N maps directly into the physical address N). Initialization of registers consists of zeroing them all out, setting PCReg and NextPCReg to 0 and 4 respectively, and setting the stackpointer to the largest virtual address of the process (the stack grows downward towards the heap and text). Nachos assumes that execution of user-programs begins at the first instruction in the text segment (e.g., virtual address 0).&lt;br /&gt;When support for multiple user processes has been added, two other Nachos routines are necessary for process switching. Whenever the current processes is suspended (e.g., preempted or put to sleep), the scheduler invokes the routine AddrSpace::SaveUserState(), in order to properly save address-space related state that the low-level thread switching routines do not know about. This becomes necessary when using virtual memory; when switching from one process to another, a new set of address translation tables needs to be loaded. The Nachos scheduler calls SaveUserState() whenever it is about to preempt one thread and switch to another. Likewise, before switching to a new thread, the Nachos scheduler invokes AddrSpace::RestoreUserState. RestoreUserState() insures that the proper address translation tables are loaded before execution resumes. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#990000;"&gt;Process Termination&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;When a process finishes executing, HP-UX terminates it using the exit system call.&lt;br /&gt;Circumstances might require a process to synchronize its execution with a child process. This is done with the wait system call, which has several related routines.&lt;br /&gt;During the exit system call, a process enters the zombie state and must dispose of child processes. Releasing process and thread structures no longer needed by the exiting process or thread is handled by three routines -- freeproc(), freethread(), and kissofdeath().&lt;br /&gt;This section will describe each process-termination routine in turn.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-5065201064900708546?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/5065201064900708546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=5065201064900708546' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/5065201064900708546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/5065201064900708546'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/07/operation-on-processes.html' title='Operation on Processes'/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-5004991743501097559</id><published>2009-07-09T03:57:00.000-07:00</published><updated>2009-07-09T04:29:55.836-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quiz'/><title type='text'>Quiz #3</title><content type='html'>&lt;p&gt;&lt;span style="color:#000000;"&gt;What are the major activities of an Operating System with regards to process management?&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Process  creation and deletion&lt;/li&gt;&lt;li&gt;Process suspension and resumption&lt;/li&gt;&lt;li&gt;Prevision of mechanism for:&lt;/li&gt;&lt;li&gt;process synchronization&lt;/li&gt;&lt;li&gt;process communication&lt;/li&gt;&lt;li&gt;deadlock handling&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;What are the major activities of an Operating System with regards to memory management?&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Keep track of which parts of memory rae currently being used by whom&lt;/li&gt;&lt;li&gt;Decide which processes to load when memory space become available&lt;/li&gt;&lt;li&gt;Allocate and Deallocate memory space as needed&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;What are the major activities of an Operating System with regards to secondary storage management&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Free Space Management&lt;/li&gt;&lt;li&gt;Storage Allocation&lt;/li&gt;&lt;li&gt;Disk Scheduling&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;What are the major activities of an Operating System with regards to file management?&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;File creation and deletion&lt;/li&gt;&lt;li&gt;Directory creation and deletion&lt;/li&gt;&lt;li&gt;Support of primitives for manipulating files and directories&lt;/li&gt;&lt;li&gt;Mapping files onto secondary storage&lt;/li&gt;&lt;li&gt;File backup on the stable(nonvolatile storage)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;What is the purpose of the command interpreter?&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;It serves as the interface between the user and the Operating System.&lt;/li&gt;&lt;li&gt;User friendly, mouse based windows environment in the Macintosh and Microsoft windows.&lt;/li&gt;&lt;li&gt;In MS-DOS and UNIX, command are typed on a keyboard and displayed on a screen or printing terminal with the Enter or Return key indicating that a command is complete and ready to be executed.&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/7466418088187779220-5004991743501097559?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/5004991743501097559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=5004991743501097559' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/5004991743501097559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/5004991743501097559'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/07/quiz-3.html' title='Quiz #3'/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-2009981064510253733</id><published>2009-07-07T03:29:00.000-07:00</published><updated>2009-07-07T04:02:39.123-07:00</updated><title type='text'>System Generation</title><content type='html'>&lt;ul&gt;&lt;li&gt;(SYStem GENeration) The installation of a new or revised operating system. It includes selecting the appropriate utility programs and identifying the peripheral devices and storage capacities of the system the operating system will be controlling.&lt;/li&gt;&lt;li&gt;&lt;/li&gt;&lt;li&gt;A group of interdependent items that interact regularly to perform a task.&lt;/li&gt;&lt;li&gt;An established or organized procedure; or a method. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-2009981064510253733?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/2009981064510253733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=2009981064510253733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/2009981064510253733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/2009981064510253733'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/07/system-generation.html' title='System Generation'/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-4549104874987098456</id><published>2009-07-07T03:21:00.000-07:00</published><updated>2009-07-07T03:35:31.546-07:00</updated><title type='text'>System Boot</title><content type='html'>The typical computer system &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/boot.html"&gt;boots&lt;/a&gt; over and over again with no problems, starting the computer's &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/operating_system.html"&gt;operating system&lt;/a&gt; (OS) and identifying its &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/hardware.html"&gt;hardware&lt;/a&gt; and &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/software.html"&gt;software&lt;/a&gt; components that all work together to provide the user with the complete computing experience. But what happens between the time that the user powers up the computer and when the &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/Graphical_USer_Interface_GUI.html"&gt;GUI&lt;/a&gt; &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/icon.html"&gt;icons&lt;/a&gt; appear on the &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/desktop.html"&gt;desktop&lt;/a&gt;?&lt;br /&gt;In order for a computer to successfully boot, its &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/BIOS.html"&gt;BIOS&lt;/a&gt;, operating system and hardware components must all be working properly; failure of any one of these three elements will likely result in a failed boot sequence.&lt;br /&gt;When the computer's power is first turned on, the &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/CPU.html"&gt;CPU&lt;/a&gt; initializes itself, which is triggered by a series of &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/clock_tick.html"&gt;clock ticks&lt;/a&gt; generated by the system clock. Part of the CPU's initialization is to look to the system's &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/ROM.html"&gt;ROM&lt;/a&gt; BIOS for its first instruction in the startup program. The ROM BIOS stores the first instruction, which is the instruction to run the &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/power_on_self_test.html"&gt;power-on self test&lt;/a&gt; (POST), in a predetermined &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/memory_address.html"&gt;memory address&lt;/a&gt;. POST begins by checking the BIOS chip and then tests &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/CMOS.html"&gt;CMOS&lt;/a&gt; &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/RAM.html"&gt;RAM&lt;/a&gt;. If the POST does not detect a battery failure, it then continues to initialize the CPU, checking the inventoried hardware devices (such as the video card), secondary storage devices, such as &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/hard_disk_drive.html"&gt;hard drives&lt;/a&gt; and &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/floppy_drive.html"&gt;floppy drives&lt;/a&gt;, &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/port.html"&gt;ports&lt;/a&gt; and other hardware devices, such as the &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/keyboard.html"&gt;keyboard&lt;/a&gt; and &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/mouse.html"&gt;mouse&lt;/a&gt;, to ensure they are functioning properly.&lt;br /&gt;Once the POST has determined that all components are functioning properly and the CPU has successfully initialized, the BIOS looks for an OS to load.&lt;br /&gt;The BIOS typically looks to the CMOS chip to tell it where to find the OS, and in most PCs, the OS loads from the C drive on the hard drive even though the BIOS has the capability to load the OS from a floppy disk, CD or &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/Zip_drive.html"&gt;ZIP drive&lt;/a&gt;. The order of drives that the CMOS looks to in order to locate the OS is called the &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/boot_sequence.html"&gt;boot sequence&lt;/a&gt;, which can be changed by altering the CMOS setup. Looking to the appropriate boot drive, the BIOS will first encounter the boot record, which tells it where to find the beginning of the OS and the subsequent program file that will initialize the OS.&lt;br /&gt;Once the OS initializes, the BIOS copies its files into memory and the OS basically takes over control of the boot process. Now in control, the OS performs another inventory of the system's memory and memory availability (which the BIOS already checked) and loads the device &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/driver.html"&gt;drivers&lt;/a&gt; that it needs to control the &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/peripheral_device.html"&gt;peripheral devices&lt;/a&gt;, such as a &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/printer.html"&gt;printer&lt;/a&gt;, &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/optical_scanner.html"&gt;scanner&lt;/a&gt;, optical drive, mouse and keyboard. This is the final stage in the boot process, after which the user can access the system’s &lt;a href="http://www.webopedia.com/DidYouKnow/Hardware_Software/2004/application.html"&gt;applications&lt;/a&gt; to perform tasks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-4549104874987098456?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/4549104874987098456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=4549104874987098456' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/4549104874987098456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/4549104874987098456'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/07/system-boot.html' title='System Boot'/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-3920493921797911545</id><published>2009-07-07T03:02:00.000-07:00</published><updated>2009-07-07T04:06:35.078-07:00</updated><title type='text'>Virtual Machine</title><content type='html'>&lt;p&gt;In &lt;a title="Computer science" href="http://en.wikipedia.org/wiki/Computer_science"&gt;computer science&lt;/a&gt;, a virtual machine (VM) is a &lt;a class="mw-redirect" title="Software" href="http://en.wikipedia.org/wiki/Software"&gt;software&lt;/a&gt; implementation of a machine (computer) that executes programs like a real machine.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;A virtual machine is a type of &lt;a href="http://www.wisegeek.com/what-is-a-computer.htm"&gt;computer&lt;/a&gt; application used to create a virtual environment, which is referred to as virtualization. Virtualization allows the user to see the infrastructure of a network through a process of aggregation. Virtualization may also be used to run multiple operating systems at the same time. Through the help of a virtual machine, the user can operate software located on the computer platform.&lt;br /&gt;There are several different types of virtual machines. Most commonly, the term is used to refer to hardware virtual machine software, also known as a hypervisor or virtual machine monitor. This type of virtual machine software makes it possible to perform multiple identical executions on one computer. In turn, each of these executions runs an &lt;a href="http://www.wisegeek.com/what-is-an-operating-system.htm"&gt;operating system&lt;/a&gt;. This allows multiple applications to be run on different operating systems, even those they were not originally intended for.&lt;br /&gt;Through the use of the hardware virtual machine software, the user has a seemingly private machine with fully functional hardware that is separate from other users. Hardware virtual machine software also makes it possible for users to boot and restart their machines quickly, since tasks such as hardware initialization are not necessary.&lt;br /&gt;Virtual machine can also refer to application virtual machine software. With this software, the application is isolated from the computer being used. This software is intended to be used on a number of computer platforms. This makes it unnecessary to create separate versions of the same software for different operating systems and computers. Java Virtual Machine is a very well known example of an application virtual machine.&lt;br /&gt;A virtual machine can also be a virtual environment, which is also known as a virtual private server. A virtual environment is used for running programs at the user level. Therefore, it is used solely for applications and not for drivers or operating system kernels.&lt;br /&gt;A virtual machine may also be a group of computers that work together to create a more powerful machine. In this type of virtual machine, the software makes it possible for one environment to be formed throughout several computers. This makes it appear to the end user as if he or she is using a single computer, when there are actually numerous computers at work.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#660000;"&gt;Implementation&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Virtual machine implementation and dynamic languages&lt;br /&gt;I'm looking for references to virtual machine implementations and dynamic languages.&lt;br /&gt;I seem to recall something recently about what the Java VM lacks wrt dynamic languages and what other implementations (Parrot?) do that enable dynamic languages.&lt;br /&gt;What would a Universal VM look like? Is such a thing possible?&lt;br /&gt;I'm not googling the right keywords, I'm not finding what I'm looking for.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#660000;"&gt;Benefits&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;Designed for virtual machines running on Windows Server 2008 and Microsoft Hyper-V ServerHyper-V is the next-generation hypervisor-based virtualization platform from Microsoft, which is designed to offer high performance, enhanced security, high availability, scalability, and many other improvements. VMM is designed to take full advantage of these foundational benefits through a powerful yet easy-to-use console that streamlines many of the tasks necessary to manage virtualized infrastructure. Even better, administrators can manage their traditional physical servers right alongside their virtual resources through one unified console. &lt;/li&gt;&lt;li&gt;Support for Microsoft Virtual Server and VMware ESXWith this release, VMM now manages VMware ESX virtualized infrastructure in conjunction with the Virtual Center product. Now administrators running multiple virtualization platforms can rely on one tool to manage virtually everything. With its compatibility with VMware VI3 (through Virtual Center), VMM now supports features such as VMotion and can also provide VMM-specific features like Intelligent Placement to VMware servers. &lt;/li&gt;&lt;li&gt;Performance and Resource Optimization (PRO) Performance and Resource Optimization (PRO) enables the dynamic management of virtual resources though Management Packs that are PRO enabled. Utilizing the deep monitoring capabilities of System Center Operations Manager 2007, PRO enables administrators to establish remedial actions for VMM to execute if poor performance or pending hardware failures are identified in hardware, operating systems, or applications. As an open and extensible platform, PRO encourages partners to design custom management packs that promote compatibility of their products and solutions with PRO’s powerful management capabilities. &lt;/li&gt;&lt;li&gt;Maximize datacenter resources through consolidation A typical physical server in the datacenter operates at only 5 to 15 percent CPU capacity. VMM can assess and then consolidate suitable server workloads onto virtual machine host infrastructure, thus freeing up physical resources for repurposing or hardware retirement. Through physical server consolidation, continued datacenter growth is less constrained by space, electrical, and cooling requirements.&lt;/li&gt;&lt;li&gt;Machine conversions are a snap! Converting a physical machine to a virtual one can be a daunting undertaking—slow, problematic, and typically requiring you to halt the physical server. But thanks to the enhanced P2V conversion in VMM, P2V conversions will become routine. Similarly, VMM also provides a straightforward wizard that can convert VMware virtual machines to VHDs through an easy and speedy Virtual-to-Virtual (V2V) transfer process. &lt;/li&gt;&lt;li&gt;Quick provisioning of new machines In response to new server requests, a truly agile IT department delivers new servers to its business clients anywhere in the network infrastructure with a very quick turnaround. VMM enables this agility by providing IT administrators with the ability to deploy virtual machines in a fraction of the time it would take to deploy a physical server. Through one console, VMM allows administrators to manage and monitor virtual machines and hosts to ensure they are meeting the needs of the corresponding business groups.Quick provisioning of new machines In response to new server requests, a truly agile IT department delivers new servers to its business clients anywhere in the network infrastructure with a very quick turnaround. VMM enables this agility by providing IT administrators with the ability to deploy virtual machines in a fraction of the time it would take to deploy a physical server. Through one console, VMM allows administrators to manage and monitor virtual machines and hosts to ensure they are meeting the needs of the corresponding business groups.&lt;br /&gt;Quick provisioning of new machines In response to new server requests, a truly agile IT department delivers new servers to its business clients anywhere in the network infrastructure with a very quick turnaround. VMM enables this agility by providing IT administrators with the ability to deploy virtual machines in a fraction of the time it would take to deploy a physical server. Through one console, VMM allows administrators to manage and monitor virtual machines and hosts to ensure they are meeting the needs of the corresponding business groups.vQuick provisioning of new machines In response to new server requests, a truly agile IT department delivers new servers to its business clients anywhere in the network infrastructure with a very quick turnaround. VMM enables this agility by providing IT administrators with the ability to deploy virtual machines in a fraction of the time it would take to deploy a physical server. Through one console, VMM allows administrators to manage and monitor virtual machines and hosts to ensure they are meeting the needs of the corresponding business groups.&lt;br /&gt;Quick provisioning of new machines In response to new server requests, a truly agile IT department delivers new servers to its business clients anywhere in the network infrastructure with a very quick turnaround. VMM enables this agility by providing IT administrators with the ability to deploy virtual machines in a fraction of the time it would take to deploy a physical server. Through one console, VMM allows administrators to manage and monitor virtual machines and hosts to ensure they are meeting the needs of the corresponding business groups.&lt;/li&gt;&lt;li&gt;Intelligent Placement minimizes virtual machine guesswork in deployment VMM does extensive data analysis on a number of factors before recommending which physical server should host a given virtual workload. This is especially critical when administrators are determining how to place several virtual workloads on the same host machine. With access to historical data—provided by Operations Manager 2007—the Intelligent Placement process is able to factor in past performance characteristics to ensure the best possible match between the virtual machine and its host hardware.&lt;/li&gt;&lt;li&gt;Delegated virtual machine management for Development and Test Virtual infrastructures are commonly used in Test and Development environments, where there is constant provisioning and tear down of virtual machines for testing purposes. This latest version of VMM features a thoroughly reworked and improved self-service Web portal, through which administrators can delegate this provisioning role to authorized users while maintaining precise control over the management of virtual machines.&lt;/li&gt;&lt;li&gt;The library helps keep virtual machine components organized To keep a data center’s virtual house in order, VMM provides a centralized library to store various virtual machine “building blocks”—off-line machines and other virtualization components. With the library’s easy-to-use structured format, IT administrators can quickly find and reuse specific components, thus remaining highly productive and responsive to new server requests and modifications.&lt;/li&gt;&lt;li&gt;Windows PowerShell provides rich management and scripting environment The entire VMM application is built on the command-line and scripting environment, Windows PowerShell. This version of VMM adds additional PowerShell commandlets and “view script” controls, which allow administrators to exploit customizing or automating operations at an unprecedented level. &lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#660000;"&gt;Examples&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Zones are not virtual machines, but an example of "&lt;a title="Operating system-level virtualization" href="http://en.wikipedia.org/wiki/Operating_system-level_virtualization"&gt;operating-system virtualization&lt;/a&gt;". This includes other "virtual environments" (also called "virtual servers") such as &lt;a class="mw-redirect" title="Virtuozzo" href="http://en.wikipedia.org/wiki/Virtuozzo"&gt;Virtuozzo&lt;/a&gt;, &lt;a class="mw-redirect" title="FreeBSD Jail" href="http://en.wikipedia.org/wiki/FreeBSD_Jail"&gt;FreeBSD Jails&lt;/a&gt;, &lt;a title="Linux-VServer" href="http://en.wikipedia.org/wiki/Linux-VServer"&gt;Linux-VServer&lt;/a&gt;, &lt;a class="mw-redirect" title="Chroot jail" href="http://en.wikipedia.org/wiki/Chroot_jail"&gt;chroot jail&lt;/a&gt;, and &lt;a title="OpenVZ" href="http://en.wikipedia.org/wiki/OpenVZ"&gt;OpenVZ&lt;/a&gt;. These provide some form of encapsulation of processes within an operating system. These technologies have the advantages of being more resource-efficient than full virtualization and having better observability into multiple guests simultaneously; the disadvantage is that, generally, they can only run a single operating system and a single version/patch level of that operating system - so, for example, they cannot be used to run two applications, one of which only supports a newer OS version and the other only supporting an older OS version on the same hardware. However, Sun Microsystems has enhanced Solaris Zones to allow some zones to behave like Solaris 8 or Solaris 9 systems by adding a system call translator.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-3920493921797911545?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/3920493921797911545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=3920493921797911545' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/3920493921797911545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/3920493921797911545'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/07/virtual-machine.html' title='Virtual Machine'/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-3630294691683159</id><published>2009-07-02T04:17:00.000-07:00</published><updated>2009-07-05T21:22:19.336-07:00</updated><title type='text'>SYSTEM STRUCTURE</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color: rgb(0, 153, 0);font-size:130%;" &gt;Simple Structure&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;These are structures with low degree of departmentalisation and a wide span of control. The authority is largely centralised in a single person with very little formalisation. It is also called 'flat structure'.&lt;br /&gt;It usually has only two or three vertical levels, a flexible set of employees, and generally one person in whom the power of decision-making is invested. This simple structure is most widely practiced in small business settings where manager and owner happens to be the same person. Its advantage lies in its simplicity. This makes it responsive, fast, accountable and easy to maintain. However, it becomes grossly inadequate as and when the organisation grows in size. Such a simple structure is becoming popular becauseof its flexibility, responsiveness and high degree of adaptability to change. Simple Structure: These are structures with low degree of departmentalisation and a wide span of control. The authority is largely centralised in a single person with very little formalisation. It is also called 'flat structure'.&lt;br /&gt;It usually has only two or three vertical levels, a flexible set of employees, and generally one person in whom the power of decision-making is invested. This simple structure is most widely practiced in small business settings where manager and owner happens to be the same person. Its advantage lies in its simplicity. This makes it responsive, fast, accountable and easy to maintain. However, it becomes grossly inadequate as and when the organisation grows in size. Such a simple structure is becoming popular becauseof its flexibility, responsiveness and high degree of adaptability to change.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color: rgb(0, 153, 0);font-size:130%;" &gt;Layered Approach&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Yesterday, in passing, I mentioned that I’d like to see Windows evolve into an operating system where the &lt;a target="_blank" href="http://blogs.zdnet.com/hardware/?p=2425"&gt;OS, installed applications and user data&lt;/a&gt; were each contained in separate layers. I didn’t go into any detail on this because, a) I thought I’d already covered it, and b) I didn’t have the space to go into it. Since several of you have asked me what I meant by that let me take a few minutes to explain what I mean by this layered approach.&lt;/p&gt; &lt;p&gt;The way that Windows currently works in terms of user data and installed applications is a mess. It’s not a deliberate mess but more a natural result of opting to provide ongoing support for outdated ideas. Windows Vista is a modern OS that still clings desperately onto Windows 95 paradigms that belong to an era where users had a lot less data than they do now.&lt;/p&gt; &lt;p&gt;So what’s the problem? Well, the main problem with Windows Vista stems from the fact that it still assumes that a PC is fitted with a single hard drive, and as a result of this flawed thinking wants to cram everything onto that single drive. This is valid Windows 95 thinking, when we measured drive capacities in MB and buying a hard drive really gave your credit card a &lt;span id="more-2426"&gt;&lt;/span&gt;punching. Times have changed, capacities have increased unbelievably, a dollar can buy you over 7GB of storage and you can pick up 500GB of storage for around $65. The reason that most PCs are still sold with a single drive is simply because Windows still makes it difficult for the average user to effectively make use of that second drive. In my experience this single drive approach is responsible for more, and more catastrophic, data loss than any bit of malware. Another flawed aspect of this Windows 95 thinking is that we are still interacting with the PC via a file system structure, and this has now become mindbogglingly complex where mistakes happen quickly and easily.&lt;/p&gt; &lt;p&gt;OK, so what’s different about the layered approach? Well, under my system you’d see three distinct layers.&lt;/p&gt; &lt;ul&gt;&lt;li&gt;OS layer&lt;/li&gt;&lt;li&gt;Application layer&lt;/li&gt;&lt;li&gt;Data layer&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Under this regime the &lt;strong&gt;OS layer&lt;/strong&gt; would be at the core of the system and ideally applications and user data should not interfere or tamper with this. In the real world I’m certain that security applications would need access to this layer but on the whole tampering with this layer should be frowned upon. This layer should be self contained in that it can be backed up, repaired or wiped and reinstalled totally separate to the other two layers. Barring activation hurdles it should be easy to transfer this OS layer from one system to another, be that a physical one or a virtual one.&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Under this layers model any installed drivers would form part of a sub-set of the OS layer.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;The &lt;strong&gt;application layer&lt;/strong&gt; would house the apps that the user installs. This layer should again be self contained in that it can be backed up, wiped or restored totally separate to the other two layers. All applications and data relating to applications would be stored within this layer, with each app compartmentalized. Uninstalling an application should remove all traces of that application (apart from user data). Again, other than for activation/license management, it should be possible to take this entire layer and move it to another physical or virtual PC.&lt;/p&gt; &lt;p&gt;Then there’s the &lt;strong&gt;data layer&lt;/strong&gt;. By now you’re getting the idea behind this layers business. The data layer would contain user data. I can think of several different approaches that this would take but ideally it should be flexible enough to accommodate different kinds of users - users who want to store data based on the app used to generate it, based on project, chronologically … etc. Ideally this data layer should be easy to back up and restore and should ideally be stored on a drive separate to that the OS and apps is on. It might also be possible for the data to be mirrored between two drives to provide redundancy. After all, hard drives are large enough to cater for this level of redundancy for most users, and if you had three drives fitted, you could have redundancy between two data drives.&lt;/p&gt; &lt;p&gt;The core idea behind the layered approach is that apart from some products being subject to activation or some other license management, neither the OS, apps or data should be tied together or tied to a single system. Also, each layer is isolated from each other. I’m not suggesting that direct access to the file system shouldn’t be available, it’s just that is shouldn’t be necessary to have to delve directly into the file system for simple file-related operations, especially those related to user data.&lt;/p&gt; &lt;p&gt;Now, like I said yesterday, this is blue-sky thinking and I don’t expect this to happen any time soon. We’re certainly not going to see any such radical changes in Windows 7.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-3630294691683159?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/3630294691683159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=3630294691683159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/3630294691683159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/3630294691683159'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/07/system-structure.html' title='SYSTEM STRUCTURE'/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-3631769342990235162</id><published>2009-07-02T03:57:00.000-07:00</published><updated>2009-07-05T21:47:34.609-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS_03'/><title type='text'>SYSTEM CALLS</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color: rgb(102, 0, 204);font-size:130%;" &gt;Process Control&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Process control is a &lt;a title="Statistics" href="http://en.wikipedia.org/wiki/Statistics"&gt;statistics&lt;/a&gt; and &lt;a title="Engineering" href="http://en.wikipedia.org/wiki/Engineering"&gt;engineering&lt;/a&gt; discipline that deals with &lt;a title="Architecture" href="http://en.wikipedia.org/wiki/Architecture"&gt;architectures&lt;/a&gt;, &lt;a title="Mechanism (technology)" href="http://en.wikipedia.org/wiki/Mechanism_%28technology%29"&gt;mechanisms&lt;/a&gt;, and &lt;a title="Algorithm" href="http://en.wikipedia.org/wiki/Algorithm"&gt;algorithms&lt;/a&gt; for controlling the output of a specific &lt;a title="Process" href="http://en.wikipedia.org/wiki/Process"&gt;process&lt;/a&gt;. See also &lt;a title="Control theory" href="http://en.wikipedia.org/wiki/Control_theory"&gt;control theory&lt;/a&gt;.&lt;br /&gt;For example, heating up the temperature in a room is a process that has the specific, desired outcome to reach and maintain a defined &lt;a title="Temperature" href="http://en.wikipedia.org/wiki/Temperature"&gt;temperature&lt;/a&gt; (e.g. 20°C), kept constant over time. Here, the temperature is the controlled variable. At the same time, it is the input variable since it is measured by a thermometer and used to decide whether to heat or not to heat. The desired temperature (20°C) is the setpoint. The state of the heater (e.g. the setting of the valve allowing hot water to flow through it) is called the manipulated variable since it is subject to control actions.&lt;br /&gt;A commonly used control device called a &lt;a title="Programmable logic controller" href="http://en.wikipedia.org/wiki/Programmable_logic_controller"&gt;programmable logic controller&lt;/a&gt;, or a PLC, is used to read a set of digital and analog inputs, apply a set of logic statements, and generate a set of analog and digital outputs. Using the example in the previous paragraph, the room temperature would be an input to the PLC. The logical statements would compare the setpoint to the input temperature and determine whether more or less heating was necessary to keep the temperature constant. A PLC output would then either open or close the hot water valve, an incremental amount, depending on whether more or less hot water was needed. Larger more complex systems can be controlled by a &lt;a class="mw-redirect" title="Distributed Control System" href="http://en.wikipedia.org/wiki/Distributed_Control_System"&gt;Distributed Control System&lt;/a&gt; (DCS) or &lt;a title="SCADA" href="http://en.wikipedia.org/wiki/SCADA"&gt;SCADA&lt;/a&gt; system.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;In practice, process control systems can be characterized as one or more of the following forms:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Discrete – Found in many manufacturing, motion and packaging applications. Robotic assembly, such as that found in automotive production, can be characterized as discrete process control. Most discrete manufacturing involves the production of discrete pieces of product, such as metal stamping. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;Batch – Some applications require that specific quantities of raw materials be combined in specific ways for particular durations to produce an intermediate or end result. One example is the production of adhesives and glues, which normally require the mixing of raw materials in a heated vessel for a period of time to form a quantity of end product. Other important examples are the production of food, beverages and medicine. Batch processes are generally used to produce a relatively low to intermediate quantity of product per year (a few pounds to millions of pounds). &lt;/p&gt;&lt;p&gt;&lt;br /&gt;Continuous – Often, a physical system is represented though variables that are smooth and uninterrupted in time. The control of the water temperature in a heating jacket, for example, is an example of continuous process control. Some important continuous processes are the production of fuels, chemicals and plastics. Continuous processes, in manufacturing, are used to produce very large quantities of product per year(millions to billions of pounds).&lt;br /&gt;Applications having elements of discrete, batch and continuous process control are often called hybrid applications.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color: rgb(102, 0, 204);font-size:130%;" &gt;File Management&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;File management is a necessary evil associated with computers. It's really not all that much different than rummaging through a heap of papers on your desk except you don't get paper cuts. In either situation, a bit of organization and using the tools available can make the task easier.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color: rgb(102, 0, 204);font-size:130%;" &gt;Device Management&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Device Management is a set of technologies, protocols and standards used to allow the remote management of &lt;a title="Mobile device" href="http://en.wikipedia.org/wiki/Mobile_device"&gt;mobile devices&lt;/a&gt;, often involving updates of &lt;a title="FOTA (technology)" href="http://en.wikipedia.org/wiki/FOTA_%28technology%29"&gt;firmware over the air&lt;/a&gt; (FOTA). The &lt;a title="Mobile network operator" href="http://en.wikipedia.org/wiki/Mobile_network_operator"&gt;network operator&lt;/a&gt;, handset &lt;a title="Original equipment manufacturer" href="http://en.wikipedia.org/wiki/Original_equipment_manufacturer"&gt;OEM&lt;/a&gt; or in some cases even the end-user (usually via a web portal) can use Device Management, also known as Mobile Device Management, or MDM, to update the handset firmware/&lt;a title="Operating system" href="http://en.wikipedia.org/wiki/Operating_system"&gt;OS&lt;/a&gt;, install applications and fix bugs, all over the air. Thus, large numbers of devices can be managed with single commands and the end-user is freed from the requirement to take the phone to a shop or service center to refresh or update.&lt;br /&gt;For companies, a Device Management system means better control and safety as well as increased efficiency, decreasing the possibility for device downtime. As the number of smart devices increases in many companies today, there is a demand for managing, controlling and updating these devices in an effective way. As mobile devices have become true computers over the years, they also force organizations to manage them properly. Without proper management and security policies, mobile devices pose threat to security: they contain lots of information, while they may easily get into wrong hands. Normally an employee would need to visit the IT / Telecom department in order to do an update on the device. With a Device Management system, that is no longer the issue. Updates can easily be done "over the air". The content on a lost or stolen device can also easily be removed by "wipe" operations. In that way sensitive documents on a lost or a stolen device do not arrive in the hands of others.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color: rgb(102, 0, 204);font-size:130%;" &gt;Information Maintenance&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-3631769342990235162?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/3631769342990235162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=3631769342990235162' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/3631769342990235162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/3631769342990235162'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/07/system-calls.html' title='SYSTEM CALLS'/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-8131042298954010419</id><published>2009-07-02T03:47:00.000-07:00</published><updated>2009-07-06T18:06:33.903-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS_03'/><title type='text'>OPERATING SYSTEM SERVICES</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-size: 130%;"&gt;Program execution – system capability to load a program into memory and to run it.&lt;br /&gt;&lt;br /&gt;I/O operations – since user programs cannot execute I/O operations directly, the operating system must provide some means to perform I/O.&lt;br /&gt;&lt;br /&gt;File-system manipulation – program capability to read, write, create, and delete files.&lt;br /&gt;&lt;br /&gt;Communications – exchange of information between processes executing either on the same computer or on different systems tied together by a network. Implemented via shared memory or message passing.&lt;br /&gt;&lt;br /&gt;Error detection – ensure correct computing by detecting errors in the CPU and memory hardware, in I/O devices, or in user programs.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Additional functions exist not for helping the user, but rather for ensuring efficient system operations.&lt;br /&gt;•Resource allocation – allocating resources to multiple users or multiple jobs running at the same time.&lt;br /&gt;•Preemptable, nonpreemptable resources&lt;br /&gt;•Deadlock prevention and detection models&lt;br /&gt;•Accounting – keep track of and record which users use how much and what kinds of computer resources for account billing or for accumulating usage statistics.&lt;br /&gt;•Protection – ensuring that all access to system resources is controlled.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-8131042298954010419?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/8131042298954010419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=8131042298954010419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/8131042298954010419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/8131042298954010419'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/07/operating-system-services.html' title='OPERATING SYSTEM SERVICES'/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-3921788265343331858</id><published>2009-07-02T03:14:00.000-07:00</published><updated>2009-07-02T04:16:07.921-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS_03'/><title type='text'>SOFTWARE COMPONENTS</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#ff6666;"&gt;Operating System Process Management&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;is an integral part of any modern day &lt;a title="Operating system" href="http://en.wikipedia.org/wiki/Operating_system"&gt;operating system&lt;/a&gt; (OS). The OS must allocate resources to &lt;a title="Process (computing)" href="http://en.wikipedia.org/wiki/Process_(computing)"&gt;processes&lt;/a&gt;, enable processes to share and exchange information, protect the resources of each process from other processes and enable synchronisation among processes. To meet these requirements, the OS must maintain a &lt;a title="Data structure" href="http://en.wikipedia.org/wiki/Data_structure"&gt;data structure&lt;/a&gt; for each process, which describes the state and resource ownership of that process, and which enables the OS to exert control over each process.&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#ff6666;"&gt;Main Memory Management&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Memory management is the act of managing &lt;a title="Computer memory" href="http://en.wikipedia.org/wiki/Computer_memory"&gt;computer memory&lt;/a&gt;. In its simpler forms, this involves providing ways to allocate portions of memory to programs at their request, and freeing it for reuse when no longer needed. The management of main memory is critical to the computer system.&lt;br /&gt;&lt;a title="Virtual memory" href="http://en.wikipedia.org/wiki/Virtual_memory"&gt;Virtual memory&lt;/a&gt; systems separate the memory addresses used by a process from actual physical addresses, allowing separation of processes and increasing the effectively available amount of RAM using &lt;a title="Virtual memory" href="http://en.wikipedia.org/wiki/Virtual_memory"&gt;disk swapping&lt;/a&gt;. The quality of the virtual memory manager can have a big impact on overall system performance.&lt;br /&gt;&lt;a title="Garbage collection (computer science)" href="http://en.wikipedia.org/wiki/Garbage_collection_(computer_science)"&gt;Garbage collection&lt;/a&gt; is the automated allocation, and deallocation of computer memory resources for a program. This is generally implemented at the programming language level and is in opposition to &lt;a title="Manual memory management" href="http://en.wikipedia.org/wiki/Manual_memory_management"&gt;manual memory management&lt;/a&gt;, the explicit allocation and deallocation of computer memory resources.&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#ff6666;"&gt;File Management&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;A file manager or file browser is a &lt;a title="Computer program" href="http://en.wikipedia.org/wiki/Computer_program"&gt;computer program&lt;/a&gt; that provides a &lt;a title="User interface" href="http://en.wikipedia.org/wiki/User_interface"&gt;user interface&lt;/a&gt; to work with &lt;a title="File system" href="http://en.wikipedia.org/wiki/File_system"&gt;file systems&lt;/a&gt;. The most common operations used are create, open, edit, &lt;a title="File viewer" href="http://en.wikipedia.org/wiki/File_viewer"&gt;view&lt;/a&gt;, &lt;a class="mw-redirect" title="Computer printer" href="http://en.wikipedia.org/wiki/Computer_printer"&gt;print&lt;/a&gt;, &lt;a title="Streaming media" href="http://en.wikipedia.org/wiki/Streaming_media"&gt;play&lt;/a&gt;, rename, move, &lt;a title="File copying" href="http://en.wikipedia.org/wiki/File_copying"&gt;copy&lt;/a&gt;, &lt;a title="File deletion" href="http://en.wikipedia.org/wiki/File_deletion"&gt;delete&lt;/a&gt;, attributes, properties, search/find, and permissions. Files are typically displayed in a &lt;a title="Hierarchy" href="http://en.wikipedia.org/wiki/Hierarchy"&gt;hierarchy&lt;/a&gt;. Some file managers contain features inspired by &lt;a title="Web browser" href="http://en.wikipedia.org/wiki/Web_browser"&gt;web browsers&lt;/a&gt;, including forward and back navigational buttons.&lt;br /&gt;Some file managers provide &lt;a title="Computer network" href="http://en.wikipedia.org/wiki/Computer_network"&gt;network&lt;/a&gt; connectivity such as &lt;a class="mw-redirect" title="File transfer protocol" href="http://en.wikipedia.org/wiki/File_transfer_protocol"&gt;FTP&lt;/a&gt;, &lt;a title="Network File System (protocol)" href="http://en.wikipedia.org/wiki/Network_File_System_(protocol)"&gt;NFS&lt;/a&gt;, &lt;a title="Server Message Block" href="http://en.wikipedia.org/wiki/Server_Message_Block"&gt;SMB&lt;/a&gt; or &lt;a title="WebDAV" href="http://en.wikipedia.org/wiki/WebDAV"&gt;WebDAV&lt;/a&gt;. This is achieved either by allowing the user to browse for a &lt;a title="Server" href="http://en.wikipedia.org/wiki/Server"&gt;server&lt;/a&gt;, connect to it and access the server's file system like a local file system, or by providing its own full client implementations for file server protocols.&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#ff6666;"&gt;I/O System Management&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Input/output device information management system for multi-computer system&lt;br /&gt;United States Patent 6526441&lt;br /&gt;&lt;br /&gt;In a multi-computer system having a plurality of computers, an input/output device configuration definition table and an input/output device configuration reference table are adapted to be collectively managed. A configuration management program manages the configuration definition of all input/output devices of a plurality of computers by using the input/output device configuration definition table, and generates a changed data file when an input/output device configuration is changed. Dynamic system alteration is effected by changing the contents of the input/output device configuration reference table stored in a shared memory, in accordance with the changed data file. The input/output device configuration definition table and the input/output device configuration reference table each have an input/output device information part and an input/output device connection information part arranged in a matrix form to allow addition/deletion of an input/output device and a computer.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#ff6666;"&gt;Secondary Storage Management&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Secondary storage management is a classical feature of database management systems. It is usually supported through a set of mechanisms. These include index management, data clustering, data buffering, access path selection and query optimization.&lt;br /&gt;None of these is visible to the user: they are simply performance features. However, they are so critical in terms of performance that their absence will keep the system from performing some tasks (simply because they take too much time). The important point is that they be invisible. The application programmer should not have to write code to maintain indices, to allocate disk storage, or to move data between disk and main memory. Thus, there should be a clear independence between the logical and the physical level of the system.&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#ff6666;"&gt;Protection System&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;With the new series of ThinkPads IBM introduced the Active Protection System (APS) in 2003. The APS is a protection system for the ThinkPad's internal harddrive. A sensor inside the ThinkPad recognizes when the notebook is accelerated. A software applet then is triggered to park the harddisk. This way the risk of data loss in case of when the notebook is dropped is significantly reduced since the read/write head of the harddrive is parked and hence can't crash onto the platter when the notebook drops onto the floor.&lt;br /&gt;The hardware sensor is capable of not only recognizing acceleration of the notebook, but also (to a certain degree) of its whole orientation in space, relative to gravity's axis. Furthermore, having the actual control put into software, its functionality is extendable and it gives chance to implement features like the "ignore minor shocks" feature which is present in the Windows based control applet. (This feature prevents the harddrive from parking in case of minor regular shocks such as occur when in a train or car.)&lt;br /&gt;The measurements are physically performed by an &lt;a title="Analog Devices ADXL320 accelerometer" href="http://www.thinkwiki.org/wiki/Analog_Devices_ADXL320_accelerometer"&gt;Analog Devices ADXL320 accelerometer&lt;/a&gt; chip, managed by the &lt;a title="Embedded Controller Chips" href="http://www.thinkwiki.org/wiki/Embedded_Controller_Chips"&gt;embedded controller&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#ff6666;"&gt;Command-Interpreter System&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;Command interpreter system in an I/O controller&lt;br /&gt;United States Patent 5931920&lt;br /&gt;&lt;br /&gt;A hardware accelerated I/O data processing engine to execute a minimum number of types of I/O data processing commands in response to a stimulus from a host computer. The data processing engine, referred to as a command interpreter includes a command queue, a logic unit, a multiple purpose interface, at least one memory, and a controlling state machine, that each operate in concert with each other and without software control. The types of commands executed by the command interpreter can include, but are not limited to, an Initialize, Copy, DMA Read, DMA Write, Cumulative Exclusive OR, Verify, Compare, and ECC Check. The execution of commands that specify a source data location and a destination data location are characterized by a plurality of reads to an internal cache from the source data location for each bulk write from the internal cache to the destination data location. The locations of the data operated on by the command interpreter include a local I/O controller memory and a non-local I/O controller memory accessible to the command interpreter by way of an I/O bus.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-3921788265343331858?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/3921788265343331858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=3921788265343331858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/3921788265343331858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/3921788265343331858'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/07/software-components.html' title='SOFTWARE COMPONENTS'/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-2175463729970024497</id><published>2009-06-23T03:35:00.000-07:00</published><updated>2009-06-25T03:16:16.110-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS02'/><title type='text'>RESEARCH_02</title><content type='html'>&lt;span style="color:#33cc00;"&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;&lt;em&gt;Bootstrap Program&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;In computing, bootstrapping (from an old expression "&lt;a class="extiw" title="wikt:pull oneself up by one's bootstraps" href="http://en.wiktionary.org/wiki/pull_oneself_up_by_one"&gt;to pull oneself up by one's bootstraps&lt;/a&gt;") is a technique by which a simple computer program activates a more complicated system of programs. In the start up process of a &lt;a class="mw-redirect" title="Computer system" href="http://en.wikipedia.org/wiki/Computer_system"&gt;computer system&lt;/a&gt;, a small program such as &lt;a title="BIOS" href="http://en.wikipedia.org/wiki/BIOS"&gt;BIOS&lt;/a&gt;, initializes and tests that &lt;a class="mw-redirect" title="Computer hardware" href="http://en.wikipedia.org/wiki/Computer_hardware"&gt;hardware&lt;/a&gt;, &lt;a class="mw-redirect" title="Peripherals" href="http://en.wikipedia.org/wiki/Peripherals"&gt;peripherals&lt;/a&gt; and &lt;a class="mw-redirect" title="External memory" href="http://en.wikipedia.org/wiki/External_memory"&gt;external memory&lt;/a&gt; devices are connected, then loads a program from one of them and passes control to it, thus allowing loading of larger programs, such as an &lt;a title="Operating system" href="http://en.wikipedia.org/wiki/Operating_system"&gt;operating system&lt;/a&gt;.&lt;br /&gt;A different use of the term bootstrapping is to use a &lt;a title="Compiler" href="http://en.wikipedia.org/wiki/Compiler"&gt;compiler&lt;/a&gt; to compile itself, by first writing a small part of a compiler of a new &lt;a title="Programming language" href="http://en.wikipedia.org/wiki/Programming_language"&gt;programming language&lt;/a&gt; in an existing language to compile more programs of the new compiler written in the new language. This solves the "&lt;a class="mw-redirect" title="Chicken and egg" href="http://en.wikipedia.org/wiki/Chicken_and_egg"&gt;chicken and egg&lt;/a&gt;" causality dilemma.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;&lt;strong&gt;&lt;em&gt;Difference of interrupt and trap and their use.&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;An interrupt is generally initiated by an I/O device, and causes the CPU to stop what it's doing, save its context, jump to the appropriate interrupt service routine, complete it, restore the context, and continue execution. For example, a serial device may assert the interrupt line and then place an interrupt vector number on the data bus. The CPU uses this to get the serial device interrupt service routine, which it then executes as above.&lt;br /&gt;A trap is usually initiated by the CPU hardware. When ever the trap condition occurs (on arithmetic overflow, for example), the CPU stops what it's doing, saves the context, jumps to the appropriate trap routine, completes it, restores the context, and continues execution. For example, if overflow traps are enabled, adding two very large integers would cause the overflow bit to be set AND the overflow trap service routine to be initiated.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;&lt;strong&gt;&lt;em&gt;Monitor Mode.&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;Monitor mode, or RFMON (Radio Frequency Monitor) mode, allows a computer with a &lt;a title="Wireless network interface card" href="http://en.wikipedia.org/wiki/Wireless_network_interface_card"&gt;wireless network interface card&lt;/a&gt; (NIC) to monitor all traffic received from the wireless network. Unlike &lt;a title="Promiscuous mode" href="http://en.wikipedia.org/wiki/Promiscuous_mode"&gt;promiscuous mode&lt;/a&gt;, which is also used for &lt;a class="mw-redirect" title="Packet sniffer" href="http://en.wikipedia.org/wiki/Packet_sniffer"&gt;packet sniffing&lt;/a&gt;, monitor mode allows packets to be captured without having to associate with an &lt;a class="mw-redirect" title="Access point" href="http://en.wikipedia.org/wiki/Access_point"&gt;access point&lt;/a&gt; or &lt;a class="mw-redirect" title="Ad-hoc network" href="http://en.wikipedia.org/wiki/Ad-hoc_network"&gt;ad-hoc network&lt;/a&gt; first. Monitor mode only applies to wireless networks, while promiscuous mode can be used on both wired and wireless networks. Monitor mode is one of the six modes that &lt;a class="mw-redirect" title="802.11" href="http://en.wikipedia.org/wiki/802.11"&gt;802.11&lt;/a&gt; wireless cards can operate in: Master (acting as an access point), Managed (client, also known as station), Ad-hoc, Mesh, Repeater, and Monitor mode&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;&lt;strong&gt;&lt;em&gt;User Mode&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;.&lt;br /&gt;User-mode Linux (UML) enables multiple virtual &lt;a title="Linux" href="http://en.wikipedia.org/wiki/Linux"&gt;Linux&lt;/a&gt; systems (known as guests) to run as an application within a normal Linux system (known as the host). As each guest is just a normal application running as a process in &lt;a title="User space" href="http://en.wikipedia.org/wiki/User_space"&gt;user space&lt;/a&gt;, this approach provides the user with a way of running multiple virtual Linux machines on a single piece of hardware, offering excellent security and safety without affecting the host environment's configuration or stability.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;Device Status Table.&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;There is a Device Status table that shows important device status at a glance. The number of events grouped by severity can be found on the left side of this table. You can click on the 'Event Rainbow' to view the list of events for the device.&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;Direct Memory Access (DMA).&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;Direct memory access (DMA) is a feature of modern &lt;a title="Computer" href="http://en.wikipedia.org/wiki/Computer"&gt;computers&lt;/a&gt; and &lt;a title="Microprocessor" href="http://en.wikipedia.org/wiki/Microprocessor"&gt;microprocessors&lt;/a&gt; that allows certain hardware subsystems within the computer to access system &lt;a class="mw-redirect" title="Computer storage" href="http://en.wikipedia.org/wiki/Computer_storage"&gt;memory&lt;/a&gt; for reading and/or writing independently of the &lt;a title="Central processing unit" href="http://en.wikipedia.org/wiki/Central_processing_unit"&gt;central processing unit&lt;/a&gt;. Many hardware systems use DMA including &lt;a class="mw-redirect" title="Disk drive" href="http://en.wikipedia.org/wiki/Disk_drive"&gt;disk drive&lt;/a&gt; controllers, &lt;a class="mw-redirect" title="Graphics card" href="http://en.wikipedia.org/wiki/Graphics_card"&gt;graphics cards&lt;/a&gt;, &lt;a title="Network card" href="http://en.wikipedia.org/wiki/Network_card"&gt;network cards&lt;/a&gt; and &lt;a title="Sound card" href="http://en.wikipedia.org/wiki/Sound_card"&gt;sound cards&lt;/a&gt;. DMA is also used for intra-chip data transfer in &lt;a title="Multi-core" href="http://en.wikipedia.org/wiki/Multi-core"&gt;multi-core processors&lt;/a&gt;, especially in &lt;a title="MPSoC" href="http://en.wikipedia.org/wiki/MPSoC"&gt;multiprocessor system-on-chips&lt;/a&gt;, where its processing element is equipped with a local memory (often called &lt;a title="Scratchpad RAM" href="http://en.wikipedia.org/wiki/Scratchpad_RAM"&gt;scratchpad memory&lt;/a&gt;) and DMA is used for transferring data between the local memory and the main memory. Computers that have DMA channels can transfer data to and from devices with much less &lt;a title="Central processing unit" href="http://en.wikipedia.org/wiki/Central_processing_unit"&gt;CPU&lt;/a&gt; overhead than computers without a DMA channel. Similarly a processing element inside a multi-core processor can transfer data to and from its local memory without occupying its processor time and allowing computation and data transfer concurrency.&lt;br /&gt;Without DMA, using &lt;a title="Programmed input/output" href="http://en.wikipedia.org/wiki/Programmed_input/output"&gt;programmed input/output&lt;/a&gt; (PIO) mode for communication with peripheral devices, or load/store instructions in the case of multicore chips, the CPU is typically fully occupied for the entire duration of the read or write operation, and is thus unavailable to perform other work. With DMA, the CPU would initiate the transfer, do other operations while the transfer is in progress, and receive an interrupt from the DMA controller once the operation has been done. This is especially useful in &lt;a title="Real-time computing" href="http://en.wikipedia.org/wiki/Real-time_computing"&gt;real-time computing&lt;/a&gt; applications where not stalling behind concurrent operations is critical. Another and related application area is various forms of &lt;a title="Stream processing" href="http://en.wikipedia.org/wiki/Stream_processing"&gt;stream processing&lt;/a&gt; where it is essential to have data processing and transfer in parallel, in order to achieve sufficient throughput.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;Difference of RAM and DRAM.&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;Dynamic RAM is a type of RAM that only holds its data if it is continuously accessed by special logic called a refresh circuit. Many hundreds of times each second, this circuitry reads the contents of each memory cell, whether the memory cell is being used at that time by the computer or not. Due to the way in which the cells are constructed, the reading action itself refreshes the contents of the memory. If this is not done regularly, then the DRAM will lose its contents, even if it continues to have power supplied to it. This refreshing action is why the memory is called dynamic.&lt;br /&gt;All PCs use DRAM for their main system memory, instead of SRAM, even though DRAMs are slower than SRAMs and require the overhead of the refresh circuitry. It may seem weird to want to make the computer's memory out of something that can only hold a value for a fraction of a second. In fact, DRAMs are both more complicated and slower than SRAMs.&lt;br /&gt;The reason that DRAMs are used is simple: they are much cheaper and take up much less space, typically 1/4 the silicon area of SRAMs or less. To build a 64 MB core memory from SRAMs would be very expensive. The overhead of the refresh circuit is tolerated in order to allow the use of large amounts of inexpensive, compact memory. The refresh circuitry itself is almost never a problem; many years of using DRAM has caused the design of these circuits to be all but perfected.&lt;br /&gt;DRAMs are smaller and less expensive than SRAMs because SRAMs are made from four to six transistors (or more) per bit, DRAMs use only one, plus a capacitor. The capacitor, when energized, holds an electrical charge if the bit contains a "1" or no charge if it contains a "0". The transistor is used to read the contents of the capacitor. The problem with capacitors is that they only hold a charge for a short period of time, and then it fades away. These capacitors are tiny, so their charges fade particularly quickly. This is why the refresh circuitry is needed: to read the contents of every cell and refresh them with a fresh "charge" before the contents fade away and are lost. Refreshing is done by reading every "row" in the memory chip one row at a time; the process of reading the contents of each capacitor re-establishes the charge. For an explanation of how these "rows" are read, and thus how refresh is accomplished, refer to &lt;a href="http://www.pcguide.com/ref/ram/timing_Access.htm"&gt;this section describing memory access&lt;/a&gt;.&lt;br /&gt;DRAM is manufactured using a similar process to how processors are: a silicon substrate is etched with the patterns that make the transistors and capacitors (and support structures) that comprise each bit. DRAM costs much less than a processor because it is a series of simple, repeated structures, so there isn't the complexity of making a single chip with several million individually-located transistors. &lt;a href="http://www.pcguide.com/ref/cpu/char/mfg.htm"&gt;See here for details on how processors are manufactured&lt;/a&gt;; the principles for DRAM manufacture are similar.&lt;br /&gt;There are many different kinds of specific DRAM technologies and speeds that they are available in. These have evolved over many years of using DRAM for system memory, and are discussed in more detail in other sections&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:180%;color:#993399;"&gt;STORAGE STRUCTURE&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Storage Structures Inc. hereby warrants the buildings constructed at Job against defective workmanship and weathertightness for a period of 5 years from the date of substantial completion( ), Storage Structures warrants to the Building Owner the following : that the roof panels, flashing, and related items, used to fasten the roof panels and flashing to the roof structure will not allow intrusion of water from the exterior of the roof system into the building envelope, when exposed to ordinary weather conditions and ordinary wear and usage.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#33cc00;"&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;&lt;em&gt;Main Memory&lt;br /&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;how many programs can be executed at one time and how much data can be readily available to a prograRefers to &lt;a href="http://www.webopedia.com/TERM/M/physical.html"&gt;physical&lt;/a&gt; &lt;a href="http://www.webopedia.com/TERM/M/memory.html"&gt;memory&lt;/a&gt; that is internal to the &lt;a href="http://www.webopedia.com/TERM/M/computer.html"&gt;computer&lt;/a&gt;. The word main is used to distinguish it from external &lt;a href="http://www.webopedia.com/TERM/M/mass_storage.html"&gt;mass storage&lt;/a&gt; &lt;a href="http://www.webopedia.com/TERM/M/device.html"&gt;devices&lt;/a&gt; such as &lt;a href="http://www.webopedia.com/TERM/M/disk_drive.html"&gt;disk drives&lt;/a&gt;. Another term for main memory is &lt;a href="http://www.webopedia.com/TERM/M/RAM.html"&gt;RAM&lt;/a&gt;. The computer can manipulate only &lt;a href="http://www.webopedia.com/TERM/M/data.html"&gt;data&lt;/a&gt; that is in main memory. Therefore, every &lt;a href="http://www.webopedia.com/TERM/M/program.html"&gt;program&lt;/a&gt; you &lt;a href="http://www.webopedia.com/TERM/M/execute.html"&gt;execute&lt;/a&gt; and every &lt;a href="http://www.webopedia.com/TERM/M/file.html"&gt;file&lt;/a&gt; you &lt;a href="http://www.webopedia.com/TERM/M/access.html"&gt;access&lt;/a&gt; must be &lt;a href="http://www.webopedia.com/TERM/M/copy.html"&gt;copied&lt;/a&gt; from a &lt;a href="http://www.webopedia.com/TERM/M/storage_device.html"&gt;storage device&lt;/a&gt; into main memory. The amount of main memory on a computer is crucial because it determines m. Because computers often have too little main memory to hold all the data they need, computer engineers invented a technique called &lt;a href="http://www.webopedia.com/TERM/M/swap.html"&gt;swapping&lt;/a&gt;, in which portions of data are copied into main memory as they are needed. Swapping occurs when there is no room in memory for needed data. When one portion of data is copied into memory, an equal-sized portion is copied (swapped) out to make room. Now, most &lt;a href="http://www.webopedia.com/TERM/M/PC.html"&gt;PCs&lt;/a&gt; come with a minimum of 32 &lt;a href="http://www.webopedia.com/TERM/M/megabyte.html"&gt;megabytes&lt;/a&gt; of main memory. You can usually increase the amount of memory by inserting extra memory in the form of &lt;a href="http://www.webopedia.com/TERM/M/chip.html"&gt;chips&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;Magnetic Disk.&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;Magnetic storage and magnetic recording are terms from &lt;a title="Engineering" href="http://en.wikipedia.org/wiki/Engineering"&gt;engineering&lt;/a&gt; referring to the storage of &lt;a title="Data" href="http://en.wikipedia.org/wiki/Data"&gt;data&lt;/a&gt; on a &lt;a title="Magnet" href="http://en.wikipedia.org/wiki/Magnet"&gt;magnetized&lt;/a&gt; medium. Magnetic storage uses different patterns of &lt;a title="Magnetization" href="http://en.wikipedia.org/wiki/Magnetization"&gt;magnetization&lt;/a&gt; in a magnetizable material to store data and is a form of &lt;a title="Non-volatile memory" href="http://en.wikipedia.org/wiki/Non-volatile_memory"&gt;non-volatile memory&lt;/a&gt;. The information is accessed using one or more &lt;a title="Disk read-and-write head" href="http://en.wikipedia.org/wiki/Disk_read-and-write_head"&gt;read/write heads&lt;/a&gt;. As of 2009, magnetic storage media, primarily &lt;a class="mw-redirect" title="Hard disk" href="http://en.wikipedia.org/wiki/Hard_disk"&gt;hard disks&lt;/a&gt;, are widely used to store &lt;a class="mw-redirect" title="Computer data" href="http://en.wikipedia.org/wiki/Computer_data"&gt;computer data&lt;/a&gt; as well as &lt;a title="Sound" href="http://en.wikipedia.org/wiki/Sound"&gt;audio&lt;/a&gt; and &lt;a title="Video" href="http://en.wikipedia.org/wiki/Video"&gt;video&lt;/a&gt; signals. In the field of computing, the term magnetic storage is preferred and in the field of audio and video production, the term magnetic recording is more commonly used. The distinction is less technical and more a matter of preference&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;Moving Head Disk mechanism&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;The invention relates to a head mechanism control apparatus for magnetic recording device which ensures that the transducer head has been unloaded in a head unloading operation. A head slider having a transducer head is mounted on a head arm and is unloaded from the disk by the swinging of the head arm. The retract position is at the limit portion of the swingable range of the head arm. When the head slider is successfully unloaded to the retract position, a drive force applied to the head arm in the unload direction causes little movement of the head arm. After an unloading is performed, a position check drive force is applied to the head arm and the moving speed of the head slider is detected. Based on the moving speed, it is judged whether the head slider has been unloaded to the retract position. If the head slider has not been unloaded to the retract position, re-unloading is performed for moving the head slider to the retract position.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_fS3EzCj5Vac/SkNCdI7KbbI/AAAAAAAAAIs/WOa8c5KeZ-A/s1600-h/Picture1.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5351193850625551794" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 232px" alt="" src="http://4.bp.blogspot.com/_fS3EzCj5Vac/SkNCdI7KbbI/AAAAAAAAAIs/WOa8c5KeZ-A/s320/Picture1.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color:#33cc00;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color:#33cc00;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color:#33cc00;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;Magnetic Tapes&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;is a medium for &lt;a class="mw-redirect" title="Magnetic recording" href="http://en.wikipedia.org/wiki/Magnetic_recording"&gt;magnetic recording&lt;/a&gt; generally consisting of a thin magnetizable coating on a long and narrow strip of &lt;a title="Plastic" href="http://en.wikipedia.org/wiki/Plastic"&gt;plastic&lt;/a&gt;. Nearly all recording tape is of this type, whether used for recording &lt;a title="Audio frequency" href="http://en.wikipedia.org/wiki/Audio_frequency"&gt;audio&lt;/a&gt; or &lt;a title="Video" href="http://en.wikipedia.org/wiki/Video"&gt;video&lt;/a&gt; or for &lt;a title="Computer data storage" href="http://en.wikipedia.org/wiki/Computer_data_storage"&gt;computer data storage&lt;/a&gt;. It was originally developed in Germany, based on the concept of &lt;a title="Wire recording" href="http://en.wikipedia.org/wiki/Wire_recording"&gt;magnetic wire recording&lt;/a&gt;. Devices that record and playback audio and video using magnetic tape are generally called &lt;a title="Tape recorder" href="http://en.wikipedia.org/wiki/Tape_recorder"&gt;tape recorders&lt;/a&gt; and &lt;a title="Video tape recorder" href="http://en.wikipedia.org/wiki/Video_tape_recorder"&gt;video tape recorders&lt;/a&gt; respectively. A device that stores computer data on magnetic tape can be called a &lt;a title="Tape drive" href="http://en.wikipedia.org/wiki/Tape_drive"&gt;tape drive&lt;/a&gt;, a tape unit, or a streamer.&lt;br /&gt;Magnetic tape revolutionized the broadcast and recording industries. In an age when all &lt;a title="Radio" href="http://en.wikipedia.org/wiki/Radio"&gt;radio&lt;/a&gt; (and later &lt;a title="Television" href="http://en.wikipedia.org/wiki/Television"&gt;television&lt;/a&gt;) was live, it allowed programming to be prerecorded. In a time when &lt;a title="Gramophone record" href="http://en.wikipedia.org/wiki/Gramophone_record"&gt;gramophone records&lt;/a&gt; were recorded in one take, it allowed recordings to be created in multiple stages and easily mixed and edited with a minimal loss in quality between generations. It is also one of the key enabling technologies in the development of modern &lt;a title="Computer" href="http://en.wikipedia.org/wiki/Computer"&gt;computers&lt;/a&gt;. Magnetic tape allowed massive amounts of data to be stored in computers for long periods of time and rapidly accessed when needed.&lt;br /&gt;Today, many other technologies exist that can perform the functions of magnetic tape. In many cases these technologies are replacing tape. Despite this, innovation in the technology continues and tape is still widely used.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_fS3EzCj5Vac/SkNEVbz29HI/AAAAAAAAAI0/tA8PYWGNds8/s1600-h/180px-Magtape1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5351195917279491186" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 180px; CURSOR: hand; HEIGHT: 220px" alt="" src="http://1.bp.blogspot.com/_fS3EzCj5Vac/SkNEVbz29HI/AAAAAAAAAI0/tA8PYWGNds8/s320/180px-Magtape1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;color:#cc33cc;"&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:180%;color:#cc33cc;"&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:180%;color:#cc33cc;"&gt;&lt;strong&gt;&lt;em&gt;STORAGE HEIRARCHY&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;To clarify the ``guarantees'' provided at different settings of the persistence spectrum without binding the application to a specific environment or set of storage devices, MBFS implements the continuum, in part, with a logical storage hierarchy. The hierarchy is defined by N levels:&lt;br /&gt;&lt;br /&gt;1.&lt;br /&gt;LM (Local Memory storage): very high-speed volatile storage located on the machine creating the file.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.&lt;br /&gt;LCM (Loosely Coupled Memory storage): high-speed volatile storage consisting of the idle memory space available across the system.&lt;br /&gt;&lt;br /&gt;3.&lt;br /&gt;-N DA (Distributed Archival storage): slower speed stable storage space located across the system. Logically, decreasing levels of the hierarchy are characterized by stronger persistence, larger storage capacity, and slower access times. The LM level is simply locally addressable memory (whether on or off CPU). The LCM level combines the idle memory of machines throughout the system into a loosely coupled, and constantly changing, storage space. The DA level may actually consist of any number of sub-levels (denoted DA1, DA2, ..., DAn) each of increasing persistence (or capacity) and decreasing performance. LM data will be lost if the current machine crashes or loses power. LCM data has the potential to be lost if one or more machines crash or lose power. DA data is guaranteed to survive power outages and machine crashes. Replication and error correction are provided at the LCM and DA levels to improve the persistence offered by those levels.&lt;br /&gt;Each level of the logical MBFS hierarchy is ultimately implemented by a physical storage device. LM is implemented using standard RAM on the local machine and LCM using the idle memory of workstations throughout the network. The DA sub-levels must be mapped to some organization of the available archival storage devices in the system. The system administrator is expected to define the mapping via a system configuration file. For example, DA-1 might be mapped to the distributed disk system while DA-2 is mapped to the distributed tape system.&lt;br /&gt;Because applications are written using the logical hierarchy, they can be run in any environment, regardless of the mapping. The persistence guarantees provided by the three main levels of the hierarchy (LM, LCM, DA1) are well defined. In general, applications can use the other layers of the DA to achieve higher persistence guarantees, without knowing the exact details of the persistence guaranteed; only that it is better. For applications that want to change their storage behavior based on the characteristics of the current environment, the details of each DA's persistence guarantees, such as the expected mean-time-till-failure, can be obtained via a stat() call to the file system. Thus, MBFS makes the layering abstraction explicit while hiding the details of the devices used to implement it. Applications can control persistence with or without exact knowledge of the characteristics of the hardware used to implement it.&lt;br /&gt;Once the desired persistence level has been selected, MBFS's loosely coupled memory system uses an addressing algorithm to distribute data to idle machines and employs a migration algorithm to move data off machines that change from idle to active. The details of the addressing and migration algorithms can be found in [&lt;a href="http://www.usenix.org/event/usenix99/full_papers/anderson/anderson_html/node24.html#derby-ride96"&gt;15&lt;/a&gt;,&lt;a href="http://www.usenix.org/event/usenix99/full_papers/anderson/anderson_html/node24.html#mbfs-ride97"&gt;14&lt;/a&gt;] and are also used by the archival storage levels. Finally, MBFS provides whole-file consistency via callbacks similar to Andrew[&lt;a href="http://www.usenix.org/event/usenix99/full_papers/anderson/anderson_html/node24.html#afs"&gt;19&lt;/a&gt;] and a Unix security and protection model.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;Caching&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;In &lt;a title="Computer science" href="http://en.wikipedia.org/wiki/Computer_science"&gt;computer science&lt;/a&gt;, a cache (pronounced &lt;a title="Wikipedia:IPA for English" href="http://en.wikipedia.org/wiki/Wikipedia:IPA_for_English"&gt;/kæʃ/&lt;/a&gt;) is a collection of data duplicating original values stored elsewhere or computed earlier, where the original data is expensive to fetch (owing to longer &lt;a title="Access time" href="http://en.wikipedia.org/wiki/Access_time"&gt;access time&lt;/a&gt;) or to compute, compared to the cost of reading the cache. In other words, a cache is a temporary storage area where frequently accessed data can be stored for rapid access. Once the data is stored in the cache, it can be used in the future by accessing the cached copy rather than re-fetching or recomputing the original data.&lt;br /&gt;A cache has proven to be extremely effective in many areas of computing because access patterns in typical &lt;a title="Application software" href="http://en.wikipedia.org/wiki/Application_software"&gt;computer applications&lt;/a&gt; have &lt;a title="Locality of reference" href="http://en.wikipedia.org/wiki/Locality_of_reference"&gt;locality of reference&lt;/a&gt;. There are several kinds of locality, but this article primarily deals with data that are accessed close together in time (&lt;a class="mw-redirect" title="Memory locality" href="http://en.wikipedia.org/wiki/Memory_locality"&gt;temporal locality&lt;/a&gt;). The data might or might not be located physically close to each other (&lt;a class="mw-redirect" title="Spatial locality" href="http://en.wikipedia.org/wiki/Spatial_locality"&gt;spatial locality&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;Coherency and Consistency&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;Transactional Coherence and Consistency (TCC) offers a way to simplify parallel programming by executing all code in transactions. In TCC systems, transactions serve as the fundamental unit of parallel work, communication and coherence. As each transaction completes, it writes all of its newly produced state to shared memory atomically, while restarting other processors that have speculatively read from modified data. With this mechanism, a TCC-based system automatically handles data synchronization correctly, without programmer intervention. To gain the benefits of TCC, programs must be decomposed into transactions. Decomposing a program into transactions is largely a matter of performance tuning rather than correctness, and that a few basic transaction programming optimization techniques are sufficient to obtain good performance over a wide range of applications with little programmer effort.&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:180%;color:#cc33cc;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:180%;color:#cc33cc;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:180%;color:#cc33cc;"&gt;HARDWARE PROTECTION&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;Hardware protection can accomplish various things, including: write protection for hard disk drives, memory protection, monitoring and trapping unauthorized system calls, etc. Again, no single tool will be foolproof and the "stronger" hardware-based protection is, the more likely it will interfere with the "normal" operation of your computer. The popular idea of write-protection (see D3) may stop viruses *spreading* to the disk that is protected, but doesn't, in itself, prevent a virus from *running*. Also, some existing hardware protection schemes can be easily bypassed, fooled, or disconnected, if the virus writer knows them well and designs a virus that is aware of the particular defense. The big problem with hardware protection is that there are few (if any) operations that a general-purpose computer can perform that are used by viruses *only*. Therefore, making a hardware protection system for such a computer typically involves deciding on some (small) set of operations that are "valid but not normally performed except by viruses", and designing the system to prevent these operations. Unfortunately, this means either designing limitations into the level of protection the hardware system provides or adding limitations to the computer's functionality by installing the hardware protection system. Much can be achieved, however, by making the hardware "smarter". This is double- edged: while it provides more security, it usually means adding a program in an EPROM to control it. This allows a virus to locate the program and to call it directly after the point that allows access. It is still possible to implement this correctly though--if this program is not in the address space of the main CPU, has its own CPU and is connected directly to the hard disk and the keyboard. As an example, there is a PC-based product called ExVira which does this and seems fairly secure, but it is a whole computer on an add-on board and is quite expensive.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;Dual Mode Operation&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;An automatic transmission for an automotive vehicle includes a continually variable drive mechanism having one sheave assembly fixed to an intermediate shaft and the input sheave assembly supported on an input shaft, gearset driveably connected to the input shaft and an output shaft, a fixed ratio drive mechanism in the form of a chain drive providing a torque delivery path between the intermediate shaft and the carrier of the gearset, a transfer clutch for connecting and releasing the first sheave of the variable drive mechanism and input shaft, a low brake, and a reverse brake.&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;Input/Output Protection&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;input/output protection circuit, since the drain of an input protection MOS transistor is directly connected to the cathode of input protection diode and the source and gate of the input protection MOS transistor and the anode of the input protection diode are respectively grounded, an excessive voltage supplied from an external electrode is received by the cathode of the input protection diode and the drain of the input protection MOS transistor before it reaches the internal circuit of a semiconductor device, so that the input/output protection circuit is free from the increase of junction capacitance due to the pattern of the input protection diode. Moreover, when an excessive voltage is input to the device, the input protection diode breaks down prior thereto so as to reduce the voltage at which the input protection MOS transistor starts to conduct. As a result, a high-speed and certain input protection is realized. Furthermore, since the input electrode can be directly connected to the drain of the input protection MOS transistor, the input protection circuit in FIG. 1 is applicable to an output protection circuit so as to certainly protect the internal output circuit by applying the input protection circuit to an output MOS transistor&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;Memory Protection&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;Memory protection is a way to control memory access rights on a computer, and is a part of nearly every modern &lt;a title="Operating system" href="http://en.wikipedia.org/wiki/Operating_system"&gt;operating system&lt;/a&gt;. The main purpose of memory protection is to prevent a &lt;a title="Process (computing)" href="http://en.wikipedia.org/wiki/Process_(computing)"&gt;process&lt;/a&gt; from accessing memory that has not been allocated to it. This prevents a bug within a process from affecting other processes, or the operating system itself. Memory protection also makes a &lt;a title="Rootkit" href="http://en.wikipedia.org/wiki/Rootkit"&gt;Rootkit&lt;/a&gt; more difficult to implement. Memory protection is a behavior that is distinct from &lt;a class="mw-redirect" title="ASLR" href="http://en.wikipedia.org/wiki/ASLR"&gt;ASLR&lt;/a&gt; and the &lt;a title="NX bit" href="http://en.wikipedia.org/wiki/NX_bit"&gt;NX bit&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;CPU Protection&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;The CPU protection feature enhances the efficiency of an HP device’s CPU and Content Addressable Memory (CAM). Some denial of service attacks make use of spoofed IP addresses. If the device must create CAM entries for a large number of spoofed IP addresses over a short period of time, it requires excessive CAM utilization. Similarly, if an improperly configured host on the network sends out a large number of packets that are normally processed by the CPU (for example, DNS requests), it requires excessive CPU utilization. The CPU protection feature allows you to configure the HP device to automatically take actions when thresholds related to high CPU or CAM usage are exceeded.&lt;br /&gt;&lt;br /&gt;NOTE: The CPU protection feature is supported on the following devices, starting with software release 07.7.00: • 9300 series Routing Switches with Standard or EP management modules The CPU protection feature is disabled by default.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-2175463729970024497?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/2175463729970024497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=2175463729970024497' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/2175463729970024497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/2175463729970024497'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/06/research02.html' title='RESEARCH_02'/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_fS3EzCj5Vac/SkNCdI7KbbI/AAAAAAAAAIs/WOa8c5KeZ-A/s72-c/Picture1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7466418088187779220.post-7178242070045791141</id><published>2009-06-18T02:22:00.000-07:00</published><updated>2009-06-23T03:35:01.283-07:00</updated><title type='text'>RESEARCH_01</title><content type='html'>&lt;span style="font-size:130%;color:#3333ff;"&gt;&lt;strong&gt;Defferentiate Client Server System and Peer to Peer System&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;color:#3333ff;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="color:#993399;"&gt;Client/server describes the relationship between two computer programs in which one program , the client, makes a service request from another system, the server, which fulfills the request. In a network, the client/server model provides a convenient way to efficiently interconnect programs that are distributed across different locations&lt;br /&gt;Another structure for a distributes system is the peer - to peer (P2P)system model. In this model, clients and servers are not distinguished from one another; instead, all nodes within the system may act as either client or a server, depending on whether it is requesting or prividing a service.&lt;br /&gt;In client server system , the server is a bottle neck; but in a peer-to peer system, services can be provided by several nodes throughout the network.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="FONT-WEIGHT: bold; FONT-SIZE: 11px; RIGHT: 40px; CURSOR: pointer; COLOR: #003399; BOTTOM: 0px; LINE-HEIGHT: 14px; POSITION: absolute" href="http://services.google.com/feedback/abg?url=http://wiki.answers.com/Q/What_is_the_difference_between_a_client-server_network_and_a_peer-to-peer_network&amp;amp;hl=en&amp;amp;client=ca-gurunet_wikianswers_js&amp;amp;adU=www.cormant.com&amp;amp;adT=Network+Asset+Management&amp;amp;adU=AcademicEarth.org/Law&amp;amp;adT=Peer-to-Peer+File+Sharing&amp;amp;adU=www.cisco.com/PH&amp;amp;adT=Cisco+eNow+for+SMBs&amp;amp;done=1" target="_blank"&gt;&lt;/a&gt;&lt;span style="font-size:130%;color:#3333ff;"&gt;&lt;strong&gt;Defferentiate Symmetric Multiprocessing and Asymmetric Multiprocessing&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;color:#3333ff;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="color:#993399;"&gt;In asymmetric multiprocessing (ASMP), the operating system typically sets aside one or more processors for its exclusive use. The remainder of the processors run user applications. As a result, the single processor running the operating system can fall behind the processors running user applications. This forces the applications to wait while the operating system catches up, which reduces the overall throughput of the system. In the ASMP model, if the processor that fails is an operating system processor, the whole computer can go down. &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#993399;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#993399;"&gt;Symmetric multiprocessing (SMP) technology is used to get higher levels of performance. In symmetric multiprocessing, any processor can run any type of thread. The processors communicate with each other through shared memory. &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#993399;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#993399;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Goals/Purpose of Operating System&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#993399;"&gt;An operating system provides an environment for the execution of programsby providing services needed by those programs.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;The services programs request fall into ﬁve categories&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;1. Process Control&lt;br /&gt;2. File System Management&lt;br /&gt;3. I/O Operation&lt;br /&gt;4. Interprocess Communication&lt;br /&gt;5. Information Maintenance&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;The operating system must try to satisfy these requests in a multi-user, multi-processenvironment while managing&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;• Resource allocation&lt;br /&gt;• Error Detection&lt;br /&gt;• Protection&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Advantages of a Parallel System&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#993399;"&gt;In terms of disproportionality, Parallel systems usually give results which fall somewhere between pure plurality/majority and pure PR systems. One advantage is that, when there are enough PR seats, small minority parties which have been unsuccessful in the plurality/majority elections can still be rewarded for their votes by winning seats in the proportional allocation. In addition, a Parallel system should, in theory, fragment the party system less than a pure PR electoral system&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7466418088187779220-7178242070045791141?l=hazellabog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazellabog.blogspot.com/feeds/7178242070045791141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7466418088187779220&amp;postID=7178242070045791141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/7178242070045791141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7466418088187779220/posts/default/7178242070045791141'/><link rel='alternate' type='text/html' href='http://hazellabog.blogspot.com/2009/06/research.html' title='RESEARCH_01'/><author><name>hazellabog</name><uri>http://www.blogger.com/profile/05757684203261781220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_fS3EzCj5Vac/SoZkJbw-BBI/AAAAAAAAALU/9g8CQAgC4bM/S220/haze0340.jpg'/></author><thr:total>0</thr:total></entry></feed>
