<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>csfundas</title>
	<atom:link href="http://csfundas.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://csfundas.wordpress.com</link>
	<description>Computer Science Concepts</description>
	<lastBuildDate>Wed, 13 May 2009 20:04:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='csfundas.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/6eff74526ae72fe8ef9e1df3105a1fb0?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>csfundas</title>
		<link>http://csfundas.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://csfundas.wordpress.com/osd.xml" title="csfundas" />
	<atom:link rel='hub' href='http://csfundas.wordpress.com/?pushpress=hub'/>
		<item>
		<title>linux</title>
		<link>http://csfundas.wordpress.com/2009/05/13/linux/</link>
		<comments>http://csfundas.wordpress.com/2009/05/13/linux/#comments</comments>
		<pubDate>Wed, 13 May 2009 19:01:29 +0000</pubDate>
		<dc:creator>memex</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://csfundas.wordpress.com/?p=113</guid>
		<description><![CDATA[http://www.makelinux.net/kernel_map http://www.yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html http://www.cs.albany.edu/~sdc/Linux/ http://www.linuxjournal.com/article/4048 Networking http://www.yolinux.com/TUTORIALS/LinuxTutorialNetworking.html Links and materials used in making this presentation: • Linux for Embedded and Real-time applications; Doug Abbot (Newnes) • Understanding Linux Kernel: Bovet and Cesati (O’Reilly) • The Linux documentation project: http://www.tldp.org/ • Tigran Aivazian, Linux kernel internals: http://www.faqs.org/docs/kernel_2_4/lki.html • Process management: http://www.linux.com/guides/lki-2.shtml • Memory management: • Paul Wilson’s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=csfundas.wordpress.com&amp;blog=5258523&amp;post=113&amp;subd=csfundas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>http://www.makelinux.net/kernel_map</p>
<p>http://www.yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html</p>
<p>http://www.cs.albany.edu/~sdc/Linux/</p>
<p>http://www.linuxjournal.com/article/4048</p>
<p>Networking</p>
<p>http://www.yolinux.com/TUTORIALS/LinuxTutorialNetworking.html</p>
<p>Links and materials used in making this presentation:<br />
• Linux for Embedded and Real-time applications; Doug Abbot (Newnes)<br />
• Understanding Linux Kernel: Bovet and Cesati (O’Reilly)<br />
• The Linux documentation project: http://www.tldp.org/<br />
• Tigran Aivazian, Linux kernel internals: http://www.faqs.org/docs/kernel_2_4/lki.html<br />
• Process management: http://www.linux.com/guides/lki-2.shtml<br />
• Memory management:<br />
• Paul Wilson’s VM overview: home.earthlink.net/~jknapka/linux-mm/vm_paulwilson.html<br />
• Linux Memory management: http://linux-mm.org<br />
• Programming IPC: Dave Marshall’s course notes: http://www.cs.cf.ac.uk/Dave/C/<br />
• A tour of Linux VFS: http://www.tldp.org/LDP/khg/HyperNews/get/fs/vfstour.html<br />
• Linux device drivers; Rubini and Corbet (O’Reilly)<br />
online at http://www.oreilly.com/catalog/linuxdrive2/index.htm</p>
<br />Posted in Uncategorized  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/csfundas.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/csfundas.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/csfundas.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/csfundas.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/csfundas.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/csfundas.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/csfundas.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/csfundas.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/csfundas.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/csfundas.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/csfundas.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/csfundas.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/csfundas.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/csfundas.wordpress.com/113/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=csfundas.wordpress.com&amp;blog=5258523&amp;post=113&amp;subd=csfundas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://csfundas.wordpress.com/2009/05/13/linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c8e79f65d98c371c177aa514e5cbf8a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">memex</media:title>
		</media:content>
	</item>
		<item>
		<title>python</title>
		<link>http://csfundas.wordpress.com/2009/04/14/python/</link>
		<comments>http://csfundas.wordpress.com/2009/04/14/python/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 08:20:38 +0000</pubDate>
		<dc:creator>memex</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://csfundas.wordpress.com/2009/04/14/python/</guid>
		<description><![CDATA[&#160; Python&#160; &#8211; To get the list of paths that are searched by python interpreter import sys print sys.path &#160; Ran the chilkat web crawler by adding the following files to search directory chilkat( Compiled python file) _chilkat (PYD file) Posted in Uncategorized<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=csfundas.wordpress.com&amp;blog=5258523&amp;post=81&amp;subd=csfundas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<blockquote><p>&#160;</p>
</blockquote>
<p>Python&#160; &#8211; To get the list of paths that are searched by python interpreter</p>
<p>import sys</p>
<p>print sys.path </p>
<p>&#160;</p>
<p>Ran the chilkat web crawler by adding the following files to search directory</p>
<p>chilkat( Compiled python file)</p>
<p>_chilkat (PYD file)</p>
<br />Posted in Uncategorized  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/csfundas.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/csfundas.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/csfundas.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/csfundas.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/csfundas.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/csfundas.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/csfundas.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/csfundas.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/csfundas.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/csfundas.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/csfundas.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/csfundas.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/csfundas.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/csfundas.wordpress.com/81/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=csfundas.wordpress.com&amp;blog=5258523&amp;post=81&amp;subd=csfundas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://csfundas.wordpress.com/2009/04/14/python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c8e79f65d98c371c177aa514e5cbf8a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">memex</media:title>
		</media:content>
	</item>
		<item>
		<title>Functional Programming</title>
		<link>http://csfundas.wordpress.com/2009/04/08/functional-programming/</link>
		<comments>http://csfundas.wordpress.com/2009/04/08/functional-programming/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 04:32:56 +0000</pubDate>
		<dc:creator>memex</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://csfundas.wordpress.com/2009/04/08/functional-programming/</guid>
		<description><![CDATA[http://www.defmacro.org/ramblings/fp.html In this article, Functional Programming For The Rest of Us, the author gives a bit of history about Lambda calculus. Church formalized the lambda calculus and later it was found that it was equivalent in computing power to Turing Machines In the&#160; section on ‘Benefits of FP’, the author gives examples like debugging. However [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=csfundas.wordpress.com&amp;blog=5258523&amp;post=79&amp;subd=csfundas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3><a title="http://www.defmacro.org/ramblings/fp.html" href="http://www.defmacro.org/ramblings/fp.html">http://www.defmacro.org/ramblings/fp.html</a></h3>
<p>In this article, Functional Programming For The Rest of Us, the author gives a bit of history about Lambda calculus. Church formalized the lambda calculus and later it was found that it was equivalent in computing power to Turing Machines</p>
<p>In the&#160; section on ‘Benefits of FP’, the author gives examples like debugging. However I have read elsewhere that composing programs is the greatest advantage. That paper was ‘Why Functional Programming matters’ by Hughes</p>
<p>Other sections are </p>
<p>Higher Order Functions –</p>
<p>Currying</p>
<p>Lazy Evaluation – In this ‘infinite streams’ are discussed. Can be read in conjunction with SICP</p>
<p>Continuation – Web continuations are discussed.&#160; It seems to be related to work by Shriram Krishnamurthi at Brown University </p>
<p>Closures</p>
<p>&#160;</p>
<p><a title="http://worrydream.com/AlligatorEggs/" href="http://worrydream.com/AlligatorEggs/">http://worrydream.com/AlligatorEggs/</a>&#160; gives a fun introduction to the subject </p>
<p>&#160;</p>
<p>SICP discusses&#160; Metalinguistic abstraction&#160; ( tackle complexity by building suitable language )</p>
<br />Posted in Uncategorized  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/csfundas.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/csfundas.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/csfundas.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/csfundas.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/csfundas.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/csfundas.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/csfundas.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/csfundas.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/csfundas.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/csfundas.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/csfundas.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/csfundas.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/csfundas.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/csfundas.wordpress.com/79/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=csfundas.wordpress.com&amp;blog=5258523&amp;post=79&amp;subd=csfundas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://csfundas.wordpress.com/2009/04/08/functional-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c8e79f65d98c371c177aa514e5cbf8a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">memex</media:title>
		</media:content>
	</item>
		<item>
		<title>Courses in Computer Science</title>
		<link>http://csfundas.wordpress.com/2009/04/06/courses-in-computer-science/</link>
		<comments>http://csfundas.wordpress.com/2009/04/06/courses-in-computer-science/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 23:58:37 +0000</pubDate>
		<dc:creator>memex</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://csfundas.wordpress.com/2009/04/06/courses-in-computer-science/</guid>
		<description><![CDATA[&#34;Reading the classics&#34;&#160; course&#160; by&#160; Papadimitriou some classic papers are discussed in this course Euler&#8217;s paper on the Konigsberg bridges; do you know of a translation?&#160; (or Latin?) On computable numbers, with an application to the Entscheidungsproblem. Alan Turing 1936 As We May Think. Vannevar Bush, 1945 First Draft of the Report on EDVAC. John [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=csfundas.wordpress.com&amp;blog=5258523&amp;post=75&amp;subd=csfundas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.cs.berkeley.edu/%7Echristos">&quot;Reading the classics&quot;&#160; course&#160; by&#160; Papadimitriou</a></p>
<p>some classic papers are discussed in this course</p>
<li><a href="http://math.dartmouth.edu/%7Eeuler/docs/originals/E053.pdf">Euler&#8217;s paper on the Konigsberg bridges</a>; do you know of a translation?&#160; (or Latin?) </li>
<li><a href="http://www.abelard.org/turpap2/tp2-ie.asp">On computable numbers, with an application to the Entscheidungsproblem. Alan Turing 1936</a> </li>
<li><a href="http://www.press.umich.edu/jep/works/vbush/vbush.txt">As We May Think. Vannevar Bush, 1945</a> </li>
<li><a href="http://qss.stanford.edu/%7Egodfrey/vonNeumann/vnedvac.pdf">First Draft of the Report on EDVAC. John von Neumann 1946</a> </li>
<li><a href="http://cm.bell-labs.com/cm/ms/what/shannonday/paper.html">A Mathematical Theory of Communication. Claude E. Shannon 1948</a> </li>
<li><a href="http://www.abelard.org/turpap/turpap.htm">The Turing Test paper</a>, Alan Turing 1950 </li>
<li><a href="http://www.jstor.org/view/0003486x/di961724/96p0127a/0?currentResult=0003486x%2bdi961724%2b96p0127a%2b1%2cAB06%2b19510900%2b9984%2b80489099&amp;searchID=8dd5533b.10938242780&amp;frame=noframe&amp;sortOrder=SCORE&amp;userID=8020a850@berkeley.edu/018dd5533b0050140a255&amp;viewContent=Article&amp;config=jstor">Non-Cooperative Games.&#160; John Nash, 1951</a>
<p>&#160;</p>
<p><a href="http://www.cs.mu.oz.au/%7Eschachte/lpanalysis.html">Abstractions in Computer Science</a><b>        <br /></b></p>
<p>Abstraction<b> </b>lies at the heart of much of computer science. When we write loops, we are abstracting what is repeated in a sequence of operations. When we write subroutines, we are abstracting what is common in sequences of operations in different places in a program, and the subroutine&#8217;s parameters allow each invocation to be somewhat different. When we define types, we are abstracting what is common among all instances of the type, while the type&#8217;s member data define what differentiates individual instances. Many of the more recent innovations in computer programming, including classes and inheritance, templates and type classes, and functional and logic programming, are also just more sophisticated abstractions. As users expect increasing sophistication in program behavior, and as programs accordingly become more complex, the need for improved abstractions will continue to grow. </p>
</li>
<p><a title="http://www.seas.upenn.edu/~andre/general/computer_science.html" href="http://www.seas.upenn.edu/~andre/general/computer_science.html">http://www.seas.upenn.edu/~andre/general/computer_science.html</a></p>
<p><a href="http://www.ics.uci.edu/~eppstein/teach.html">http://www.ics.uci.edu/~eppstein/teach.html</a>     </p>
<p><a href="http://www.cs.cmu.edu/~guyb/realworld.html">http://www.cs.cmu.edu/~guyb/realworld.html </a></p>
<li><a href="http://www.cs.cmu.edu/afs/cs/project/pscico-guyb/realworld/www/compress.html">Data Compression</a> </li>
<li><a href="http://www.cs.cmu.edu/afs/cs/project/pscico-guyb/realworld/www/crypto.html">Cryptography</a> </li>
<li><a href="http://www.cs.cmu.edu/afs/cs/project/pscico-guyb/realworld/www/linear.html">Linear Programming</a> </li>
<li><a href="http://www.cs.cmu.edu/afs/cs/project/pscico-guyb/realworld/www/integer.html">Integer Programming</a> </li>
<li><a href="http://www.cs.cmu.edu/afs/cs/project/pscico-guyb/realworld/www/triang.html">Triangulation and Meshing</a> </li>
<li><a href="http://www.cs.cmu.edu/afs/cs/project/pscico-guyb/realworld/www/nbody.html">The N-body Problem</a> </li>
<li><a href="http://www.cs.cmu.edu/afs/cs/project/pscico-guyb/realworld/www/vlsi.html">VLSI Layout</a> </li>
<li><a href="http://www.cs.cmu.edu/afs/cs/project/pscico-guyb/realworld/www/matching.html">Pattern Matching in Computational Biology</a> </li>
<li><a href="http://www.cs.cmu.edu/afs/cs/project/pscico-guyb/realworld/www/indexing.html">Indexing and Search Engines</a> </li>
<br />Posted in Uncategorized  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/csfundas.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/csfundas.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/csfundas.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/csfundas.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/csfundas.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/csfundas.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/csfundas.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/csfundas.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/csfundas.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/csfundas.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/csfundas.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/csfundas.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/csfundas.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/csfundas.wordpress.com/75/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=csfundas.wordpress.com&amp;blog=5258523&amp;post=75&amp;subd=csfundas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://csfundas.wordpress.com/2009/04/06/courses-in-computer-science/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c8e79f65d98c371c177aa514e5cbf8a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">memex</media:title>
		</media:content>
	</item>
		<item>
		<title>Operating Systems</title>
		<link>http://csfundas.wordpress.com/2009/02/02/operating-systems-2/</link>
		<comments>http://csfundas.wordpress.com/2009/02/02/operating-systems-2/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 20:31:47 +0000</pubDate>
		<dc:creator>memex</dc:creator>
				<category><![CDATA[systems]]></category>

		<guid isPermaLink="false">http://csfundas.wordpress.com/?p=42</guid>
		<description><![CDATA[Functions of OS scheduler (time allocation to programs) , memory manager (space allocation to programs) synchronizer ( avoid conflicts for a resource at the same time) protection (avoid conflicts for memory) Scheduling Algo basically utilize IO time by scheduling another task SJF is provably optimal problems with scheduling based on priority &#8211; Priority inversion Switching [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=csfundas.wordpress.com&amp;blog=5258523&amp;post=42&amp;subd=csfundas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="postentry">
<div class="snap_preview">
<p><strong>Functions of OS</strong></p>
<p>scheduler (time allocation to programs) ,<br />
memory manager (space allocation to programs)<br />
synchronizer ( avoid conflicts for a resource at the same time)<br />
protection (avoid conflicts for memory)</p>
<p><strong>Scheduling Algo</strong></p>
<p>basically utilize IO time by scheduling another task</p>
<p>SJF is provably optimal</p>
<p>problems with scheduling based on priority &#8211; Priority inversion</p>
<p>Switching from one thread to another (A –&gt; B ) can occur when<br />
a) A is complete<br />
b) A is blocked on IO<br />
c) Timer interrupt forcefully preempts A</p>
<p><strong>Synchronization</strong></p>
<p>Synchronization is  needed as  process need to exchange information using a shared region in memory. However, this shared region cannot be accessed in any manner. They needed to be accessed in correct<br />
sequence. Imagine bank balance being updated by two different process. So need to coordinate access among threads</p>
<p>The part of the program where shared memory is accessed is called critical region. Critical regions should be accessed in mutual exclusion<br />
1) No two process may be simultaneously in the same critical region<br />
2) No process running outside the critical region should block another process<br />
3) No process should forever wait in CS<br />
4) No assumptions can be made about speed/number of CPUs</p>
<p>These are called Mutual Exclusion, Progress, Bounded Waiting, Speed Independence</p>
<p><strong>Approaches to Mutual Exclusion</strong></p>
<p>some approaches<br />
a) Disable interrupts in Critical Section<br />
b) Lock Variables<br />
c) Strict Alteration</p>
<p>All these are not satisfactory ..due to busy waiting</p>
<p>so use sleep and wake mechanism. The process instead of busy waiting is put on a queue. This leads to the concept of semaphores</p>
<p><strong> Solving Producer Consumer problem using Semaphore</strong></p>
<p>Producer consumer problems occur for example in Networks (sending and receiving packets), CPU and IO</p>
<p>down(empty_slot)<br />
put item in buffer<br />
up(full_slot)</p>
<p>The above solution works for a single producer consumer<br />
When multiple producers and consumers are present , then a race condition can happen resulting in writing to the same slot by two different producers<br />
To overcome this problem, we need to make sure that only one producer is executing “put item in buffer”. So we need to execute mutual exclusion within a critical section</p>
<p>down(empty_slot)<br />
down(mutex)<br />
put item in buffer<br />
up(mutex)<br />
up(full_slot)</p>
<p><strong>Memory Management</strong></p>
<p>One dimensional addressing becomes cumbersome if different portions of the program have to grow or shrin</p>
<p>So provide several independent address spaces called segments . Now sharing of code/data is easy . Protection is possible</p>
<p>Provides illusion of large memory using Virtual memory concept.</p>
<p>While <span style="color:#0000ff;">segmentation </span>is good in the sense that it gives flexibility to load programs anywhere in memory. However, still it suffers from external fragmentation.<br />
i.e, there many be holes in memory that are not large enough to be allocated to any process</p>
<p>To avoid this, <span style="color:#0000ff;">Paging</span> is introduced. With paging , the entire memory is divided into fixed size pages. Though there is no wastage due to external fragmentation, there may be wastage within a page.  This is called internal fragmentation</p>
<p>In principle it is similar to (fully associative) <span style="color:#0000ff;">caching</span>.  The pages that are referenced are loaded into RAM, others are kept on disk ( <span style="color:#0000ff;">Demand Paging</span> )</p>
<p>Now what happens, when there is no space on RAM, one of the pages has to be evicted. This leads to the concept of Page Replacement Algorithms</p>
<p>The easiest method is to used <span style="color:#0000ff;">FIFO</span>. The page that was loaded earliest is evicted. But what happens if that page is the frequently accessed one. This policy is not good.  <span style="color:#0000ff;">Belady </span>showed in FIFO, increasing memory-size doesn’t lead necessarily to reduced page faults. Though this happens in the rare cases, we cannot increase memory and expect page faults to reduce  (Belady’s anamoly doesn’t occur in LIFO algorithms )</p>
<p>The<span style="color:#0000ff;"> optimal method</span> is to look which page won’t be referenced for a long time and replace that one. This is the OPTIMAL policy. But it cannot be implemented as we have to look into the future. So the future is approximated by the past behaviour.  Temporal locality says that the pages that are accessed in the near past would be accessed in the near future. Conversely, the pages that  weren’t accessed in the past wouldnot be accessed in future. So replace those pages that are least recently used.</p>
<p><span style="color:#0000ff;">LRU </span>is difficult to implement in hardware.  address translations are required for every instruction , so a software implementation would be too slow.  So NRU (not recently used ) policy is used</p>
<p><span style="color:#0000ff;">LRU Clock Algorithm</span> or Second chance algorithm is the one used on most operating systems</p>
<p>Each page has a reference bit that is set on use. Replace that page whose reference bit is not set.<br />
However it is of no use, if every page’s reference bit is set. We do not know which to replace.<br />
So the reference bit is periodically cleared by the OS<br />
The algorithm is a combination of FIFO + reference bit.<br />
The pages are kept in circular list. Scan the pages, if the reference bit is one, set to zero and proceed. If the bit is zero , evict</p></div>
</div>
<br />Posted in systems  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/csfundas.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/csfundas.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/csfundas.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/csfundas.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/csfundas.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/csfundas.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/csfundas.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/csfundas.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/csfundas.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/csfundas.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/csfundas.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/csfundas.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/csfundas.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/csfundas.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=csfundas.wordpress.com&amp;blog=5258523&amp;post=42&amp;subd=csfundas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://csfundas.wordpress.com/2009/02/02/operating-systems-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c8e79f65d98c371c177aa514e5cbf8a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">memex</media:title>
		</media:content>
	</item>
		<item>
		<title>Decidability of Programs</title>
		<link>http://csfundas.wordpress.com/2008/10/22/programs-their-limitations/</link>
		<comments>http://csfundas.wordpress.com/2008/10/22/programs-their-limitations/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 10:05:05 +0000</pubDate>
		<dc:creator>memex</dc:creator>
				<category><![CDATA[theory]]></category>

		<guid isPermaLink="false">http://csfundas.wordpress.com/?p=12</guid>
		<description><![CDATA[This post describes why some problems are not solvable by programs (computers). Terms such as decidable,  recursively enumerable are introduced in context of programs.   The basic idea is that there are more problems than programs that can be constructed &#8211; Countability of sets is used to show that Section 1 .  Problems and programs [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=csfundas.wordpress.com&amp;blog=5258523&amp;post=12&amp;subd=csfundas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This post describes why some problems are not solvable by programs (computers). Terms such as decidable,  recursively enumerable are introduced in context of programs.   The basic idea is that there are more problems than programs that can be constructed &#8211; Countability of sets is used to show that Section 1 .  Problems and programs can be encoded as strings  as we see in Section 2.  The limitations of programs is discussed in Section 3</p>
<p><strong>1)  Sets &#8211; Countability</strong></p>
<p>Countable  Sets  &#8211; are either finite or infinite.   {1,2,3} is a finite set. The set of integers is infinite.</p>
<p>Odd numbers, Fibonacci numbers  are countable  though infinite . The criteria for countability is that there must be one to one correspondance with integers.  the mapping function N=&gt; N*2 + 1 establishes the correspondance between integers and odd numbers.</p>
<p>Uncountable Sets &#8211; These are the sets that cannot be put in one to one correspondance with integers. If you show a mapping function (from integers to this set) , then I can show a member of the set that doesn&#8217;t gets mapped to. Thus this set has larger than the set of integers</p>
<p>The power-set of a countably infinite  is uncountable.</p>
<p>Now countable and uncountable sets are used to show many things, for example<br />
a)  the set of real numbers is larger than integers/rationals (the former is uncountable, the latter is countably infinite)<br />
b)  there are more languages than programs ( the former is uncountable, the latter is countably infinite)<br />
(read the section strings and languages)</p>
<p><strong>2)  Strings and languages</strong></p>
<p>Strings such as  SS = { a,b, aa,ab, ba, bb&#8230;..}  (called sigma-star) are also countable infinite as they can be put in correspondance with integers (they are just numbers in base-26)</p>
<p>A Language is a subset of strings (such as those containing equal number of a&#8217;s and b&#8217;s) .  the string  {0,0,0,1,1,0&#8230;.} tells that only {ab,ba} are in EQUAL language. The number of languages is the number of binary strings possible . Binary strings define powerset . Thus languages are powerset of sigma-star .</p>
<p>Now sigma-star is countably infinite and its powerset is uncountable. Thus languages are uncountable</p>
<p>Now consider all possible programs. They can be encoded as strings. The set of programs is countably infinite</p>
<p><strong>3)  Programs &#8211; Deciding and Recognizing :</strong></p>
<p>consider the set E , the set of even numbers . We can write a program to  say whether a number/string is member of the set<br />
or we can say if it is not  a member.  The membership of a number in the set is decidable.  The program that decides the membership will say<br />
YES or NO and in both case it will HALT.  Consider the strings accepted by the program</p>
<p>f(int n)<br />
{<br />
if (n%2==0 ) return<br />
else loop<br />
}</p>
<p>These set of strings accepted is E and we can write a program check membership in E</p>
<p>Now consider a general program g</p>
<p>g(int n)<br />
{<br />
&#8230;some complex conditions and calculations&#8230;.<br />
}</p>
<p>say the set of strings accepted by g is G . Now how can I write a program to find whether a string is a member of G.<br />
You can run g() on the input, When run with member of G ,  it accepts (say YES)<br />
What happens if you give a non-member it may say NO or it may run forever/ doesn&#8217;t halt</p>
<p>sets such as E are called DECIDABLE ( both members and non-members are identified)<br />
sets such as G are RECOGNIZABLE (  members can be identified , but non-members cannot be)<br />
Note that if  a set and its complement are both RECOGNIZABLE , then the set is DECIDABLE</p>
<p>There are some sets which are NOT-RECOGNIZABLE ( even members cannot be identified) .<br />
The set of strings accepted by g() is recognizable&#8230;but the set of strings not accepted by g() is not-recognizable. We cannot say if the program will halt on specific inputs..</p>
<p>Now suppose instead of checking whether a particular string is a member of G , we want to enumerate all members of G. One way to do is generate all strings in a sequence..{ a, b, aa,ab,ba, bb&#8230;. } Then run them in parallel by dovetailing  (you can think of it as time-slicing in OS ) and those that are accepted can be enumerated as members of G. Thus those that are RECOGNIZABLE can be made ENUMERABLE.<br />
In mathematical function theory, RECOGNIZABLE languages are called RECURSIVELY ENUMERABLE and DECIDABLE LANGUAGES are called RECURSIVE</p>
<p>Set of strings define languages&#8230;Why are some languages not-recognizable .. This basic limitation comes because there are more languages than programs (related to uncountable/countably infinite) and thus some languages cannot be recognized. This means whatever we do , there are limitations on programs and some problems (abstractly checking membership on a language) are just unsolvable.</p>
<br />Posted in theory  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/csfundas.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/csfundas.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/csfundas.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/csfundas.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/csfundas.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/csfundas.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/csfundas.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/csfundas.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/csfundas.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/csfundas.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/csfundas.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/csfundas.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/csfundas.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/csfundas.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=csfundas.wordpress.com&amp;blog=5258523&amp;post=12&amp;subd=csfundas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://csfundas.wordpress.com/2008/10/22/programs-their-limitations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c8e79f65d98c371c177aa514e5cbf8a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">memex</media:title>
		</media:content>
	</item>
	</channel>
</rss>
