<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="http://so-wiki.wetpaint.com/xsl/rss2html.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://so-wiki.wetpaint.com/scripts/wpcss/wiki/so-wiki/skin/sporty/rss" type="text/css" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>SoWiKi, sistemas operativos - Recently Updated Pages</title><link>http://so-wiki.wetpaint.com/pageSearch/updated</link><description>Recently Updated Pages on http://so-wiki.wetpaint.com</description><language>en-us</language><webMaster>info@wetpaint.com</webMaster><pubDate>Fri, 09 Oct 2009 10:16:25 CDT</pubDate><lastBuildDate>Fri, 09 Oct 2009 10:16:25 CDT</lastBuildDate><generator>wetpaint.com</generator><ttl>60</ttl><image><title>SoWiKi, sistemas operativos</title><url>http://image.wetpaint.com/image/3/5Boj7W4dFeSI7ttdv7EL7A29666</url><link>http://so-wiki.wetpaint.com</link><description>Sistemas operativos, Proyecto Wiki de la materia Arquitectura y SO de la UTN CeMdP</description></image><item><title>SoWiKi, sistemas operativos Home</title><link>http://so-wiki.wetpaint.com/page/SoWiKi%2C+sistemas+operativos+Home</link><author>jercoli</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/SoWiKi%2C+sistemas+operativos+Home</guid><pubDate>Fri, 09 Oct 2009 10:16:25 CDT</pubDate><description>&lt;font color=&quot;#ff0000&quot;&gt;  &lt;table align=&quot;bottom&quot; cellpadding=&quot;3&quot; class=&quot;WPC-edit-border-all&quot; width=&quot;600&quot;&gt;  &lt;tbody&gt;  &lt;tr&gt;  &lt;td width=&quot;100%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  &lt;font color=&quot;#ff0000&quot; size=&quot;4&quot;&gt;&lt;b&gt;Novedades !!&lt;/b&gt;&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;100%&quot;&gt;  &lt;ul&gt;  &lt;li&gt;  Ejercicio tipo &amp;quot;final&amp;quot; en p&amp;aacute;gina de &lt;a href=&quot;http://so-wiki.wetpaint.com/page/Apuntes+y+Trabajos+Pr%C3%A1cticos&quot; target=&quot;_self&quot;&gt;&lt;font color=&quot;#497fb1&quot;&gt;Apuntes y TP&lt;/font&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;100%&quot;&gt;  &lt;ul&gt;  &lt;li&gt;  &lt;a href=&quot;http://so-wiki.wetpaint.com/page/Notas+Parciales&quot; target=&quot;_self&quot;&gt;Notas 1er Parcial - (T.Ma&amp;ntilde;ana y T.Noche  - 2009 - 2do.Cuat.)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/font&gt;&lt;font color=&quot;#ff0000&quot;&gt;&lt;i&gt;Proyecto wiki sobre sistemas operativos.&lt;/i&gt;&lt;/font&gt;&lt;br&gt;Materia de Arquitectura y SO de la Tecnicatura Sup. en Programaci&amp;ograve;n de la &lt;a class=&quot;external&quot; href=&quot;http://so-wiki.wetpaint.comhttp://www.mdp.utn.edu.ar/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;UTN Ctro. de estudios Mar del Plata&lt;/a&gt;&lt;br&gt;&lt;br&gt;Desarrollado por alumnos del cursado 2008 + docente de la c&amp;agrave;tedra como administrador&lt;font face=&quot;Garamond&quot;&gt;&lt;i&gt;(&lt;a class=&quot;external&quot; href=&quot;http://so-wiki.wetpaint.comhttp://metodologiasdesistemas.blogspot.com/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&lt;font face=&quot;Times&quot;&gt;Jorge Ercoli)&lt;/font&gt;&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;&lt;font color=&quot;#ff0000&quot;&gt;Objetivos del Wiki&lt;/font&gt;&lt;/i&gt;&lt;br&gt;&lt;ul&gt;  &lt;li&gt;  Fomentar el trabajo colaborativo del grupo de alumnos, permitiendo mayor interacci&amp;ograve;n con la c&amp;agrave;tedra   &lt;/li&gt;&lt;li&gt;  Centralizar la informaci&amp;ograve;n de la materia en un &amp;ugrave;nico punto   &lt;/li&gt;&lt;li&gt;  Permitir la discusi&amp;ograve;n de los temas de la materia, entre los alumnos y con el docente; fuera del &amp;agrave;mbito del aula.   &lt;/li&gt;&lt;li&gt;  Compilar el material investigado y la b&amp;ugrave;squeda de bibliograf&amp;igrave;a, consensuar el contenido entre alumnos y docente&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;font color=&quot;#ff0000&quot;&gt;&lt;i&gt;Importante:&lt;/i&gt;&lt;/font&gt;&lt;br&gt;&lt;ul&gt;  &lt;li&gt;  Cuando hagamos comentarios que nos parecen &amp;uacute;tiles sobre tecnolog&amp;iacute;a actual que encuadre en temas de S.O., generemos comentarios (threads) en la p&amp;aacute;gina YA CREADA que corresponda   &lt;/li&gt;&lt;li&gt;  Apuntes y TP de la c&amp;aacute;tedra en su propia p&amp;aacute;gina (&lt;a href=&quot;http://so-wiki.wetpaint.com/page/Apuntes+y+Trabajos+Pr%C3%A1cticos&quot; target=&quot;_self&quot;&gt;&lt;font color=&quot;#497fb1&quot;&gt;Apuntes y TP&lt;/font&gt;&lt;/a&gt;).&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;i&gt;&lt;font color=&quot;#ff0000&quot;&gt;Bibliograf&amp;iacute;a recomendada &lt;/font&gt;&lt;/i&gt;&lt;br&gt;&lt;br&gt;&lt;a class=&quot;external&quot; href=&quot;http://so-wiki.wetpaint.comhttp://www.mnlibros.com.ar/DespLibro.asp?Libro=8448130014&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt; &lt;/a&gt; &lt;a class=&quot;external&quot; href=&quot;http://so-wiki.wetpaint.comhttp://www.agapea.com/Sistemas-operativos-modernos-n96503i.htm&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt; &lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;BootLoader para Vista: &lt;a class=&quot;external&quot; href=&quot;http://so-wiki.wetpaint.comhttp://neosmart.net/dl.php?id=1&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;EasyBCD 1.7&lt;/a&gt;&lt;br&gt;&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>Notas Parciales</title><link>http://so-wiki.wetpaint.com/page/Notas+Parciales</link><author>jercoli</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/Notas+Parciales</guid><pubDate>Fri, 09 Oct 2009 10:15:17 CDT</pubDate><description>&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; width=&quot;240&quot;&gt;  &lt;tbody&gt;  &lt;tr&gt;  &lt;td colspan=&quot;2&quot; width=&quot;160&quot;&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;SO - T.Ma&amp;ntilde;ana 2009-C2&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;80&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;1Parcial&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Antunica&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;2&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Baroni&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;8&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Caravajal&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;6&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Dell&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;5&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Diaz&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;7&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Larroque&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;3&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Lopez&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;8&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Oyarzun&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;2&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Pascua&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;2&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Piccolini&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;9&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Ricotti&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;2,5&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Sanz&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;3&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Veiga&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;9&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Vieytes&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;4&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td colspan=&quot;3&quot;&gt;  &lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Recup. 1er. Parcial: jueves 15/10&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;    &lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; width=&quot;320&quot;&gt;  &lt;tbody&gt;  &lt;tr&gt;  &lt;td colspan=&quot;2&quot; width=&quot;160&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;SO - T.Noche (2009 - C2)&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;80&quot;&gt;&lt;br&gt;&lt;/td&gt;  &lt;td width=&quot;80&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;1er.Parcial&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Ghiglione&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;5&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Forte&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;5&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Carballo&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;2&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Oviedo&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;4&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Carrizo&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;5&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Suarez&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;8&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Marquez&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;4&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Bertuzzi&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;5&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Martin&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;5&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td colspan=&quot;2&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Gonzalez, D.&lt;/font&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;5&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Corbo&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;3&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Diaz&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;6&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Santiago&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;5&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Nizzi&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;7&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Tarchini&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;2&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Osorio&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;3&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Drago&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;1&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Escariz&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;2&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Ierace&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;7&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Leiva&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;5&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Labrunee&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;7&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Escalante&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;2&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Escobar&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;4&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Alsina&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;4&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Dematteis&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;9&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Trocoli&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;4&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Seijo&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;4&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Rollhauser&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td align=&quot;right&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;5&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td colspan=&quot;2&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;Recup. Lunes 19/10&lt;/font&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;  &lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;&lt;br&gt;&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>Apuntes y Trabajos Prácticos</title><link>http://so-wiki.wetpaint.com/page/Apuntes+y+Trabajos+Pr%C3%A1cticos</link><author>jercoli</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/Apuntes+y+Trabajos+Pr%C3%A1cticos</guid><pubDate>Fri, 15 May 2009 06:53:13 CDT</pubDate><description>&lt;b&gt;Apuntes&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;a class=&quot;external&quot; href=&quot;http://so-wiki.wetpaint.comhttp://www.freedrive.com/file/269611,utn-so-apunte-principal.pdf&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Apunte general de la c&amp;aacute;tedra&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a class=&quot;external&quot; href=&quot;http://so-wiki.wetpaint.comhttp://www.freedrive.com/file/365364,utn-so-u3-redes.pdf&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Apunte SD-Redes I&lt;/a&gt;&lt;br&gt;&lt;a class=&quot;external&quot; href=&quot;http://so-wiki.wetpaint.comhttp://www.freedrive.com/file/365365,utn-so-u3-redes-anexo.pdf&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Apunte SD-Redes II&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Procesos&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;a class=&quot;external&quot; href=&quot;http://so-wiki.wetpaint.comhttp://www.freedrive.com/file/269475&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Cuestionario 1&lt;/a&gt; (Preguntas sobre procesos en gral.)&lt;br&gt;&lt;a class=&quot;external&quot; href=&quot;http://so-wiki.wetpaint.comhttp://www.freedrive.com/file/269476,utn-so-procesos-cuestionario2.doc&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Cuestionario 2&lt;/a&gt; (TP sobre algoritmos de planificaci&amp;oacute;n)&lt;br&gt;&lt;br&gt;&lt;b&gt;Sist.Distrib.-Redes&lt;/b&gt;&lt;br&gt;&lt;a class=&quot;external&quot; href=&quot;http://so-wiki.wetpaint.comhttp://www.freedrive.com/file/365366,utn-so-u3-cuestionario1.doc&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Cuestionario&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Memoria&lt;/b&gt;&lt;br&gt;&lt;a class=&quot;external&quot; href=&quot;http://so-wiki.wetpaint.comhttp://www.freedrive.com/file/365363&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Cuestionario&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#ff0000&quot;&gt;Ejercicio estilo &amp;quot;Final&amp;quot;, que lo disfuten...&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot; size=&quot;2&quot;&gt;Sea un sistema multitarea con RR y gesti&amp;oacute;n de memoria con segmentaci&amp;oacute;n paginada que posee las sig. caracter&amp;iacute;sticas:&lt;/font&gt; &lt;i&gt;&lt;font face=&quot;Times New Roman&quot; size=&quot;2&quot;&gt;Un total de 8 marcos de p&amp;aacute;g. de 8kb. c/u &amp;ndash; Algoritmo NRU para reemplazo de p&amp;aacute;gs. (swapping) &amp;ndash; Tiempo de lect. &amp;oacute; grabaci&amp;oacute;n de una p&amp;aacute;g. En disco=200ns &amp;ndash; TAM=50ns &amp;ndash; TLB con identif. De proceso con tiempo de b&amp;uacute;sq. de 10 ns y t. de modif.. de 20 ns. (10ns X 2) &amp;ndash; TS (tabla de segmentos) y TP (t.p&amp;aacute;g.) en memoria principal.&lt;/font&gt;&lt;/i&gt; &lt;font face=&quot;Times New Roman&quot; size=&quot;2&quot;&gt;En el sig. turno (qantum) del sistema, un proceso (id:8) emite llamadas a las sig. direcc. L&amp;oacute;gicas para acceder a parte de sus datos: (0,4078) &amp;ndash; (1,18738) y (0,13111) en ese orden.&lt;/font&gt; &lt;font face=&quot;Times New Roman&quot; size=&quot;2&quot;&gt;A continuaci&amp;oacute;n se muestra la asignaci&amp;oacute;n de los 8 marcos al comienzo del turno del proceso 8:&lt;/font&gt;   &lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;&gt;  &lt;tbody&gt;  &lt;tr&gt;  &lt;td&gt;  &lt;div class=&quot;shape&quot;&gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot;&gt;  &lt;tbody&gt;  &lt;tr&gt;  &lt;td width=&quot;61&quot;&gt;  &lt;font face=&quot;Times New Roman&quot; size=&quot;2&quot;&gt;Marco&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;57&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Seg-p&amp;aacute;g.&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;66&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Proc.&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;47&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;R-M&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;61&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;0&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;57&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;0 &amp;ndash; 2&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;66&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;8&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;47&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 &amp;ndash; 1&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;61&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;57&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 &amp;ndash; 2&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;66&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;8&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;47&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;0 &amp;ndash; 1&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;61&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;2&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;57&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 &amp;ndash; 0&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;66&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;8&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;47&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 - 0&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;61&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;3&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;57&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;------&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;66&quot;&gt;&lt;br&gt;&lt;/td&gt;  &lt;td width=&quot;47&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;----&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;61&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;4&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;57&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 &amp;ndash; 1 &lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;66&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;8&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;47&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 &amp;ndash; 1&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;61&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;5&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;57&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 &amp;ndash; 2&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;66&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;19&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;47&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 &amp;ndash; 1&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;61&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;6&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;57&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 &amp;ndash; 0&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;66&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;14&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;47&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 &amp;ndash; 1&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;61&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;7&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;57&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;0 &amp;ndash; 0&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;66&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;19&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;47&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 &amp;ndash; 1&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot; size=&quot;2&quot;&gt;Se solicita:&lt;/font&gt; &lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;&lt;font size=&quot;2&quot;&gt;a)&lt;/font&gt; &lt;font size=&quot;2&quot;&gt;Direcc. F&amp;iacute;sicas a las que hace referencia el proceso 8&lt;/font&gt;&lt;/font&gt; &lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;&lt;font size=&quot;2&quot;&gt;b)&lt;/font&gt; &lt;font size=&quot;2&quot;&gt;Reescriba la asignaci&amp;oacute;n de los marcos luego de finalizado su turno de ejecuci&amp;oacute;n&lt;/font&gt;&lt;/font&gt; &lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;&lt;font size=&quot;2&quot;&gt;c)&lt;/font&gt; &lt;font size=&quot;2&quot;&gt;Sabiendo que, el turno del proceso 8 fue utilizado un 80% para cumplimentar los accesos a las 3 direcc. l&amp;oacute;g. dadas y un 20% a la ejecuci&amp;oacute;n de c&amp;oacute;digo: Calcular el tiempo del turno (qantum) que otorga el planificador del s.o.&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;RTA: &lt;br&gt;&lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;a)&lt;/font&gt;&lt;/font&gt; &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;0,4078 = dl : (0,0,4078) &amp;ndash; df: (3,4078) Asigno el 1er. y &amp;uacute;nico marco libre (asignaci&amp;oacute;n ascendente)&lt;/font&gt;&lt;/font&gt; &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1,18738= dl : (1,2,2354) &amp;ndash; df : (1,2354) Marco 1 ya asignado a seg:1 &amp;ndash; p&amp;aacute;g:2&lt;/font&gt;&lt;/font&gt; &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;0,13111= dl : (0,1,4919) &amp;ndash; df : (2,4919) Las menor clase no vac&amp;iacute;a es la 2 (R=1-M=0), por lo que las p&amp;aacute;gs. a reemplazar pueden ser la &lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;asignada al marco 2 &amp;oacute; al 3; pero como la 1ra. es la del marco 2 por orden se reemplaza.&lt;/font&gt;&lt;/font&gt; &lt;br&gt;&lt;br&gt;&lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;b)&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot;&gt;  &lt;tbody&gt;  &lt;tr&gt;  &lt;td width=&quot;61&quot;&gt;  &lt;font face=&quot;Times New Roman&quot; size=&quot;2&quot;&gt;Marco&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;57&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Seg-p&amp;aacute;g.&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;66&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Proc.&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;47&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;R-M&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;61&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;0&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;57&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;0 &amp;ndash; 2&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;66&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;8&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;47&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 &amp;ndash; 1&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;61&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;57&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 &amp;ndash; 2&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;66&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;8&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;47&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;&lt;b&gt;1&lt;/b&gt; &amp;ndash; 1&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;61&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;2&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;57&quot;&gt;  &lt;b&gt;&lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;0 &amp;ndash; 1&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;  &lt;td width=&quot;66&quot;&gt;  &lt;b&gt;&lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;8&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;  &lt;td width=&quot;47&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;&lt;b&gt;1&lt;/b&gt; - &lt;b&gt;0&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;61&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;3&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;57&quot;&gt;  &lt;b&gt;&lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;0 &amp;ndash; 0&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;  &lt;td width=&quot;66&quot;&gt;  &lt;b&gt;&lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;8&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;  &lt;td width=&quot;47&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;&lt;b&gt;1&lt;/b&gt; &amp;ndash; 0&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;61&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;4&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;57&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 &amp;ndash; 1 &lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;66&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;8&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;47&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 &amp;ndash; 1&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;61&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;5&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;57&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 &amp;ndash; 2&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;66&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;19&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;47&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 &amp;ndash; 1&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;61&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;6&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;57&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 &amp;ndash; 0&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;66&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;14&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;47&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 &amp;ndash; 1&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;61&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;7&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;57&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;0 &amp;ndash; 0&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;66&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;19&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;  &lt;td width=&quot;47&quot;&gt;  &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1 &amp;ndash; 1&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;&lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;c)&lt;/font&gt;&lt;/font&gt; &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Accesos:&lt;/font&gt;&lt;/font&gt; &lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1ra. dl.: 10 (b&amp;uacute;sq. TLB) + 50 (TS) + 50 (TP) + 200 (Swap. de lect.) + 50 (TAM) + 10 (modif. TLB) = 370 ns.&lt;/font&gt;&lt;/font&gt; &lt;br&gt;&lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;2da. dl: 10 (b&amp;uacute;sq. TLB) + 50 (TAM) = 60 ns.&lt;/font&gt;&lt;/font&gt; &lt;br&gt;&lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;3ra. dl.: 10 (b&amp;uacute;sq. TLB) + 50 (TS) + 50 (TP) + 200 (Swap. de lect.) + 50 (TAM) + 10 (modif. TLB) = 370 ns. (**)&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;80% = 800 ns y&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; 20% = (800x20) / 80 : 200 ns (ejec. de c&amp;oacute;digo) entonces:&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; &lt;b&gt;Total del Qantum: 1000 ns&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;br&gt;&lt;br&gt;&lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;(**): &lt;i&gt;Si la p&amp;aacute;g. a reemplazar en el marco 2 hubiera tenido el bit M(modification) en 1 habr&amp;iacute;a que sumar 200 ns m&amp;aacute;s para la grabaci&amp;oacute;n en disco de la p&amp;aacute;g. en cuesti&amp;oacute;n y reci&amp;eacute;n despu&amp;eacute;s leer la nueva de disco.&lt;/i&gt;&lt;/font&gt;&lt;/font&gt; &lt;br&gt;&lt;br&gt;&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>Memoria Virtual</title><link>http://so-wiki.wetpaint.com/page/Memoria+Virtual</link><author>EzequielQ22</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/Memoria+Virtual</guid><pubDate>Fri, 20 Jun 2008 20:01:00 CDT</pubDate><description>&lt;font face=&quot;Times&quot; size=&quot;4&quot;&gt;&lt;u&gt;INTRODUCCION Y DEFINICION:&lt;/u&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;font face=&quot;Times&quot; size=&quot;4&quot;&gt;Es una t&amp;eacute;cnica de gerencia de memoria, usada por un &lt;/font&gt;&lt;a class=&quot;external&quot; href=&quot;http://so-wiki.wetpaint.comhttp://www.alegsa.com.ar/Dic/sistema+operativo.php&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#0000ff&quot; face=&quot;Times&quot; size=&quot;4&quot;&gt;sistema operativo&lt;/font&gt;&lt;/a&gt;&lt;font face=&quot;Times&quot; size=&quot;4&quot;&gt;, donde memoria no contigua es presentada al &lt;/font&gt;&lt;a class=&quot;external&quot; href=&quot;http://so-wiki.wetpaint.comhttp://www.alegsa.com.ar/Dic/software.php&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#0000ff&quot; face=&quot;Times&quot; size=&quot;4&quot;&gt;software&lt;/font&gt;&lt;/a&gt;&lt;font face=&quot;Times&quot; size=&quot;4&quot;&gt; como memoria contigua. Esta memoria contigua es llamada VAS (virtual address space) o espacio de direcci&amp;oacute;n virtual.&lt;br&gt;&lt;br&gt;En t&amp;eacute;rminos t&amp;eacute;cnicos, la memoria virtual permite a un software correr en un espacio de memoria que no necesariamente pertenece a la memoria f&amp;iacute;sica de una computadora. Para esto se debe emular un CPU que trate a toda la memoria (virtual y principal) como un bloque igual, y determinar cu&amp;aacute;ndo se requiere de una memoria u otra.&lt;br&gt;&lt;br&gt;Los programas corriendo en una computadora utilizan esta memoria como si se tratase de completamente de la memoria &lt;/font&gt;&lt;a class=&quot;external&quot; href=&quot;http://so-wiki.wetpaint.comhttp://www.alegsa.com.ar/Dic/ram.php&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#0000ff&quot; face=&quot;Times&quot; size=&quot;4&quot;&gt;RAM&lt;/font&gt;&lt;/a&gt;&lt;font face=&quot;Times&quot; size=&quot;4&quot;&gt;. La memoria virtual se utiliza cuando la memoria principal (RAM) no alcanza, utilizando espacio en &lt;/font&gt;&lt;a class=&quot;external&quot; href=&quot;http://so-wiki.wetpaint.comhttp://www.alegsa.com.ar/Dic/disco+rigido.php&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#0000ff&quot; face=&quot;Times&quot; size=&quot;4&quot;&gt;disco duro&lt;/font&gt;&lt;/a&gt;&lt;font face=&quot;Times&quot; size=&quot;4&quot;&gt; para extenderla. Generalmente el archivo utilizado para guardar la memoria virtual es llamado &amp;quot;&lt;/font&gt;&lt;a class=&quot;external&quot; href=&quot;http://so-wiki.wetpaint.comhttp://www.alegsa.com.ar/Dic/archivo+de+paginacion.php&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#0000ff&quot; face=&quot;Times&quot; size=&quot;4&quot;&gt;archivo de paginaci&amp;oacute;n&lt;/font&gt;&lt;/a&gt;&lt;font face=&quot;Times&quot; size=&quot;4&quot;&gt;&amp;quot;.&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;font face=&quot;Times&quot; size=&quot;4&quot;&gt;&lt;u&gt;Fragmentacion, Paginacion y Segmentacion:&lt;/u&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;font face=&quot;Times&quot; size=&quot;4&quot;&gt;Los m&amp;eacute;todos de administraci&amp;oacute;n de la memoria principal, que no utilizan Memoria Virtual y esquemas de Paginaci&amp;oacute;n y Segmentaci&amp;oacute;n, es decir que llevan a las direcciones directamente al bus de la memoria, tienen un inconveniente: producen lo que se denomina &lt;b&gt;fragmentaci&amp;oacute;n&lt;/b&gt;. La fragmentaci&amp;oacute;n, que son huecos en la memoria que no pueden usarse debido a lo peque&amp;ntilde;o de su espacio, provoca un desperdicio de memoria principal. Una posible soluci&amp;oacute;n para la fragmentaci&amp;oacute;n externa es permitir que espacio de direcciones l&amp;oacute;gicas lleve a cabo un proceso en direcciones no contiguas, as&amp;iacute; permitiendo al proceso ubicarse en cualquier espacio de memoria f&amp;iacute;sica que est&amp;eacute; disponible, aunque est&amp;eacute; dividida. Una forma de implementar esta soluci&amp;oacute;n es a trav&amp;eacute;s del uso de un esquema de paginaci&amp;oacute;n. La paginaci&amp;oacute;n evita el considerable problema de ajustar los pedazos de memoria de tama&amp;ntilde;os variables que han sufrido los esquemas de manejo de memoria anteriores. Dado a sus ventajas sobre los m&amp;eacute;todos previos, la paginaci&amp;oacute;n, en sus diversas formas, es usada en muchos sistemas operativos. Al utilizar la memoria virtual, las direcciones no pasan en forma directa al bus de memoria, sino que van a una unidad administradora de la memoria (MMU &amp;ndash;Memory Management Unit). Estas direcciones generadas por los programas se llaman direcciones virtuales y conforman el hueco de direcciones virtuales. Este hueco se divide en unidades llamadas p&amp;aacute;ginas. Las unidades correspondientes en la memoria f&amp;iacute;sica se llaman marcos para p&amp;aacute;gina o frames. Las p&amp;aacute;ginas y los marcos tienen siempre el mismo tama&amp;ntilde;o. Comparando la paginaci&amp;oacute;n y segmentaci&amp;oacute;n simple por un lado, con la partici&amp;oacute;n est&amp;aacute;tica y din&amp;aacute;mica por el otro, se establecen las bases para un avance fundamental en la gesti&amp;oacute;n de memoria, y es que: Se puede cargar y descargar un proceso de la memoria principal de tal forma que ocupe regiones diferentes de la memoria principal en momentos distintos a lo largo de su ejecuci&amp;oacute;n. Un proceso puede dividirse en varias partes (p&amp;aacute;ginas o segmentos) y no es necesario que estas partes se encuentren contiguas en la memoria principal. Si estas dos caracter&amp;iacute;sticas est&amp;aacute;n presentes, no ser&amp;aacute; necesario que todas las p&amp;aacute;ginas o todos los segmentos de un proceso est&amp;eacute;n en la memoria durante la ejecuci&amp;oacute;n. El t&amp;eacute;rmino fragmento hace referencia tanto a p&amp;aacute;ginas como a segmentos, dependiendo de si se emplea paginaci&amp;oacute;n o segmentaci&amp;oacute;n. Sup&amp;oacute;ngase que se trae un proceso a la memoria en un momento dado, el S.O comienza trayendo s&amp;oacute;lo unos pocos fragmentos, incluido el fragmento que contiene el comienzo del programa. Se llamar&amp;aacute; &lt;b&gt;conjunto residente&lt;/b&gt; del proceso a la parte que est&amp;aacute; realmente en la memoria principal. Si el procesador encuentra una direcci&amp;oacute;n l&amp;oacute;gica que no est&amp;aacute; en la memoria principal, genera una interrupci&amp;oacute;n que indica un fallo de acceso a la memoria. El S.O pone al proceso interrumpido en estado Bloqueado y toma el control. Para que la ejecuci&amp;oacute;n de este proceso siga m&amp;aacute;s tarde, el S.O necesita traer a la memoria principal el fragmento del proceso que contiene la direcci&amp;oacute;n. Para ello se emite una solicitud de Lectura de E/S al disco; luego se expide otro proceso para que se ejecute mientras se realiza la operaci&amp;oacute;n. Una vez que el fragmento deseado se ha tra&amp;iacute;do a la memoria principal y se ha emitido la interrupci&amp;oacute;n de E/S, se devuelve el control al S.O, que coloca el proceso afectado en el estado de Listo.&lt;/font&gt;&lt;br&gt;   La ilusi&amp;oacute;n de la memoria virtual est&amp;aacute; soportada por el mecanismo de traducci&amp;oacute;n de memoria, junto con una gran cantidad de  almacenamiento  r&amp;aacute;pido  en  disco  duro.  As&amp;iacute; en  cualquier  momento  el  espacio  de direcciones virtual hace un seguimiento de tal forma que una peque&amp;ntilde;a parte de &amp;eacute;l, est&amp;aacute; en memoria real y el resto almacenado en el disco, y puede ser referenciado f&amp;aacute;cilmente.&lt;br&gt;&lt;br&gt;   Debido a que s&amp;oacute;lo la parte de memoria virtual que est&amp;aacute; almacenada en la memoria principal, es accesible a la CPU, seg&amp;uacute;n un programa va ejecut&amp;aacute;ndose, la proximidad de referencias a memoria cambia, necesitando que algunas partes de la memoria virtual se traigan a la memoria principal desde el disco, mientras que otras ya ejecutadas, se pueden volver a depositar en el disco (archivos de paginaci&amp;oacute;n).    La memoria virtual ha llegado a ser un componente esencial de la mayor&amp;iacute;a de los S.O actuales. Y como en un instante dado, en la memoria s&amp;oacute;lo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener m&amp;aacute;s procesos en la memoria. Es m&amp;aacute;s, se ahorra tiempo, porque los fragmentos que no se usan no se cargan ni se descargan de la memoria. Sin embargo, el S.O debe saber c&amp;oacute;mo gestionar este esquema.   La memoria virtual tambi&amp;eacute;n simplifica la carga del programa para su ejecuci&amp;oacute;n llamado reubicaci&amp;oacute;n, este procedimiento permite que el mismo programa se ejecute en cualquier posici&amp;oacute;n de la memoria f&amp;iacute;sica.    En un estado estable, pr&amp;aacute;cticamente toda la memoria principal estar&amp;aacute; ocupada con fragmentos de procesos, por lo que el procesador y el S.O tendr&amp;aacute;n acceso directo a la mayor cantidad de procesos posibles, y cuando el S.O traiga a la memoria un fragmento, deber&amp;aacute; expulsar otro. Si expulsa un fragmento justo antes de ser usado, tendr&amp;aacute; que traer de nuevo el fragmento de manera casi inmediata. Demasiados intercambios de fragmentos conducen a lo que se conoce como &lt;b&gt;hiperpaginaci&amp;oacute;n&lt;/b&gt;: donde el procesador consume m&amp;aacute;s tiempo intercambiando fragmentos que ejecutando instrucciones de usuario. Para evitarlo el S.O intenta adivinar, en funci&amp;oacute;n de la historia reciente, qu&amp;eacute; fragmentos se usar&amp;aacute;n con menor probabilidad en un futuro pr&amp;oacute;ximo.  Los argumentos anteriores se basan en el &lt;b&gt;principio de cercan&amp;iacute;a&lt;/b&gt; o &lt;i&gt;principio de localidad&lt;/i&gt; que afirma que las referencias a los datos y el programa dentro de un proceso tienden a agruparse. Por lo tanto, es v&amp;aacute;lida la suposici&amp;oacute;n de que, durante cortos per&amp;iacute;odos de tiempo, se necesitar&amp;aacute;n s&amp;oacute;lo unos pocos fragmentos de un proceso.  Una manera de confirmar el principio de cercan&amp;iacute;a es considerar el rendimiento de un proceso en un entorno de memoria virtual.   El principio de cercan&amp;iacute;a sugiere que los esquemas de memoria virtual pueden funcionar. Para que la memoria virtual sea pr&amp;aacute;ctica y efectiva, se necesitan dos ingredientes. Primero, tiene que existir un soporte de hardware y, en segundo lugar, el S.O debe incluir un software para gestionar el movimiento de p&amp;aacute;ginas o segmentos entre memoria secundaria y memoria principal.         Justo despu&amp;eacute;s de obtener la direcci&amp;oacute;n f&amp;iacute;sica y antes de consultar el dato en memoria principal se busca en memoria-cache, si esta entre los datos recientemente usados la b&amp;uacute;squeda tendr&amp;aacute; &amp;eacute;xito, pero si falla, la &lt;b&gt;memoria virtual&lt;/b&gt; consulta memoria principal , &amp;oacute;,  en el peor de los casos se consulta de disco (swapping).                    &lt;b&gt;&lt;i&gt;&lt;u&gt;Memoria Virtual&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt; = Memoria F&amp;iacute;sica + Area de Swapping en Disco&lt;/i&gt;&lt;/b&gt;  &lt;br&gt;&lt;h3 align=&quot;center&quot;&gt;&lt;/h3&gt;  &lt;h2 align=&quot;center&quot;&gt;&lt;a class=&quot;external&quot; href=&quot;http://so-wiki.wetpaint.comhttp://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/MonogSO/MEMVIR02.htm#_top&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#0000ff&quot;&gt;PAGINACION&lt;/font&gt;&lt;/a&gt;&lt;/h2&gt;     El t&amp;eacute;rmino &lt;i&gt;memoria virtual &lt;/i&gt;se asocia normalmente con sistemas que emplean paginaci&amp;oacute;n, aunque tambi&amp;eacute;n se puede usar memoria virtual basada en la segmentaci&amp;oacute;n. El uso de la paginaci&amp;oacute;n en la memoria virtual fue presentado por primera vez en el computador Atlas.  Cada proceso tiene su propia tabla de p&amp;aacute;ginas y cuando carga todas sus p&amp;aacute;ginas en la memoria principal, se crea y carga en la memoria principal una tabla de p&amp;aacute;ginas. Cada entrada de la tabla de p&amp;aacute;ginas contiene el n&amp;uacute;mero de marco de la p&amp;aacute;gina correspondiente en la memoria principal. Puesto que s&amp;oacute;lo algunas de las p&amp;aacute;ginas de un proceso pueden estar en la memoria principal, se necesita un bit en cada entrada de la tabla para indicar si la p&amp;aacute;gina correspondiente est&amp;aacute; presente (P) en la memoria principal o no. Si el bit indica que la p&amp;aacute;gina est&amp;aacute; en la memoria, la entrada incluye tambi&amp;eacute;n el n&amp;uacute;mero de marco para esa p&amp;aacute;gina.  Otro bit de control necesario en la entrada de la tabla de p&amp;aacute;ginas es el bit de modificaci&amp;oacute;n (M), para indicar si el contenido de la p&amp;aacute;gina correspondiente se ha alterado desde que la p&amp;aacute;gina se carg&amp;oacute; en la memoria principal. Si no ha habido cambios, no es necesario escribir la p&amp;aacute;gina cuando sea sustituida en el marco que ocupa actualmente.      &lt;i&gt;&lt;u&gt;Estructura de la tabla de p&amp;aacute;ginas&lt;/u&gt;&lt;/i&gt;     El mecanismo b&amp;aacute;sico de lectura de una palabra de la memoria supone la traducci&amp;oacute;n por medio de la tabla de p&amp;aacute;ginas de una direcci&amp;oacute;n virtual o l&amp;oacute;gica, formada por un n&amp;uacute;mero de p&amp;aacute;gina y un desplazamiento, a una direcci&amp;oacute;n f&amp;iacute;sica que est&amp;aacute; formada por un n&amp;uacute;mero de marco y un desplazamiento.   Con la memoria virtual, la CPU produce direcciones virtuales que son traducidas por una combinaci&amp;oacute;n de hardware y software a direcciones f&amp;iacute;sicas, pues pueden ser utilizadas para acceder a memoria principal. Este proceso se denomina correspondencia de memoria o traducci&amp;oacute;n de direcciones. Actualmente los dos niveles de la jerarqu&amp;iacute;a de memoria controlados por la memoria virtual son las DRAM y los Discos magn&amp;eacute;ticos.  Puesto que la tabla de p&amp;aacute;ginas es de longitud variable, en funci&amp;oacute;n del tama&amp;ntilde;o del proceso, no es posible suponer que quepa en los registros.                       La figura anterior sugiere una implementaci&amp;oacute;n en hardware de este esquema. Cuando se est&amp;aacute; ejecutando un proceso en particular, la direcci&amp;oacute;n de comienzo de la tabla de p&amp;aacute;ginas para este proceso se mantiene en un registro. El n&amp;uacute;mero de p&amp;aacute;gina de la direcci&amp;oacute;n virtual se emplea como &amp;iacute;ndice en esta tabla para buscar el n&amp;uacute;mero de marco correspondiente. Este se combina con la parte de desplazamiento de la direcci&amp;oacute;n virtual para generar la direcci&amp;oacute;n real deseada.  La mayor&amp;iacute;a de los esquemas de memoria virtual almacenan las tablas de p&amp;aacute;ginas en la memoria virtual en vez de en la memoria real. Esto significa que estas tablas de p&amp;aacute;ginas est&amp;aacute;n tambi&amp;eacute;n sujetas a paginaci&amp;oacute;n, de la misma forma que las otras p&amp;aacute;ginas.          Cuando un proceso se est&amp;aacute; ejecutando, al menos una parte de su tabla de p&amp;aacute;ginas debe estar en la memoria principal, incluyendo la entrada de la tabla de p&amp;aacute;ginas para la p&amp;aacute;gina actualmente en ejecuci&amp;oacute;n. Algunos procesadores usan un esquema de dos niveles para organizar grandes tablas de p&amp;aacute;ginas, donde hay un directorio de p&amp;aacute;ginas en el que cada entrada se&amp;ntilde;ala a una tabla de p&amp;aacute;ginas. As&amp;iacute; pues, si la longitud del directorio de p&amp;aacute;ginas es X, y la longitud m&amp;aacute;xima de una tabla de p&amp;aacute;ginas es Y, un proceso puede estar formado por hasta X x Y p&amp;aacute;ginas. Normalmente, la longitud m&amp;aacute;xima de una tabla de p&amp;aacute;ginas est&amp;aacute; limitada a una p&amp;aacute;gina. Por ejemplo, el procesador Pentium utiliza este m&amp;eacute;todo.  Un enfoque alternativo al uso de tablas de p&amp;aacute;ginas de uno o dos niveles es el uso de una estructura de &lt;b&gt;tabla de p&amp;aacute;ginas invertida&lt;/b&gt;. Con este m&amp;eacute;todo, la parte del n&amp;uacute;mero de p&amp;aacute;gina de una direcci&amp;oacute;n virtual se traduce a una tabla de dispersi&amp;oacute;n por medio de una funci&amp;oacute;n de dispersi&amp;oacute;n simple. La tabla de dispersi&amp;oacute;n contiene un puntero a la tabla de p&amp;aacute;ginas invertida, que contiene a su vez las entradas de la tabla de p&amp;aacute;ginas.   Con esta estructura, hay una entrada en la tabla de dispersi&amp;oacute;n y en la tabla de p&amp;aacute;ginas invertida por cada p&amp;aacute;gina de memoria real en lugar de una por cada p&amp;aacute;gina virtual. As&amp;iacute; pues, se necesita una parte fija de la memoria real para las tablas, sin reparar en el n&amp;uacute;mero de procesos o de p&amp;aacute;ginas virtuales soportados. La t&amp;eacute;cnica de dispersi&amp;oacute;n genera normalmente cadenas cortas, de dos a tres entradas cada una.        &lt;i&gt;&lt;u&gt;Buffer de traducci&amp;oacute;n adelantada &lt;/u&gt;&lt;/i&gt;     Cada referencia a la memoria virtual puede generar dos accesos a la memoria: uno para obtener la entrada  de la tabla de p&amp;aacute;ginas correspondientes y otro para obtener el dato deseado.   Un esquema sencillo de memoria virtual podr&amp;iacute;a tener el efecto de doblar el tiempo de acceso a la memoria. Para solucionar este problema, la mayor&amp;iacute;a de los esquemas de memoria virtual hacen uso de una cache especial para las entradas de la tabla de p&amp;aacute;ginas, llamada generalmente &lt;b&gt;buffer de traducci&amp;oacute;n adelantada&lt;/b&gt; (TLB,Translation Lookaside Buffer) que contiene aquellas entradas de la tabla de p&amp;aacute;ginas usadas hace menos tiempo.   La organizaci&amp;oacute;n de hardware de paginaci&amp;oacute;n resultante se muestra en la figura siguiente.                              &lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>Tabla de Páginas</title><link>http://so-wiki.wetpaint.com/page/Tabla+de+P%C3%A1ginas</link><author>K.Ivan</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/Tabla+de+P%C3%A1ginas</guid><pubDate>Fri, 13 Jun 2008 19:43:41 CDT</pubDate><description>&lt;i&gt;&lt;u&gt;Estructura de la tabla de p&amp;aacute;ginas&lt;/u&gt;&lt;/i&gt;&lt;br&gt;&lt;br&gt;El      mecanismo b&amp;aacute;sico de lectura de una palabra de la memoria supone la traducci&amp;oacute;n      por medio de la tabla de p&amp;aacute;ginas de una direcci&amp;oacute;n virtual o l&amp;oacute;gica, formada      por un n&amp;uacute;mero de p&amp;aacute;gina y un desplazamiento, a una direcci&amp;oacute;n f&amp;iacute;sica que est&amp;aacute;      formada por un n&amp;uacute;mero de marco y un desplazamiento. &lt;br&gt;Con la memoria virtual, la CPU produce direcciones virtuales que son traducidas por una combinaci&amp;oacute;n de hardware y software a direcciones f&amp;iacute;sicas, pues pueden ser utilizadas para acceder a memoria principal. Este proceso se denomina correspondencia de memoria o traducci&amp;oacute;n de direcciones. Actualmente los dos niveles de la jerarqu&amp;iacute;a de memoria controlados por la memoria virtual son las DRAM y los Discos magn&amp;eacute;ticos.  Puesto que la tabla de p&amp;aacute;ginas es de longitud variable, en funci&amp;oacute;n del tama&amp;ntilde;o del proceso, no es posible suponer que quepa en los registros.&lt;br&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;La figura anterior sugiere una implementaci&amp;oacute;n en hardware de este esquema. Cuando se est&amp;aacute; ejecutando un proceso en particular, la direcci&amp;oacute;n de comienzo de la tabla de p&amp;aacute;ginas para este proceso se mantiene en un registro. El n&amp;uacute;mero de p&amp;aacute;gina de la direcci&amp;oacute;n virtual se emplea como &amp;iacute;ndice en esta tabla para buscar el n&amp;uacute;mero de marco correspondiente. Este se combina con la parte de desplazamiento de la direcci&amp;oacute;n virtual para generar la direcci&amp;oacute;n real deseada.&lt;br&gt;&lt;br&gt;La mayor&amp;iacute;a de los esquemas de memoria virtual almacenan las tablas de p&amp;aacute;ginas en la memoria virtual en vez de en la memoria real. Esto significa que estas tablas de p&amp;aacute;ginas est&amp;aacute;n tambi&amp;eacute;n sujetas a paginaci&amp;oacute;n, de la misma forma que las otras p&amp;aacute;ginas.&lt;br&gt; &lt;br&gt; Cuando un proceso se est&amp;aacute; ejecutando, al menos una parte de su tabla de p&amp;aacute;ginas debe estar en la memoria principal, incluyendo la entrada de la tabla de p&amp;aacute;ginas para la p&amp;aacute;gina actualmente en ejecuci&amp;oacute;n. Algunos procesadores usan un esquema de dos niveles para organizar grandes tablas de p&amp;aacute;ginas, donde hay un directorio de p&amp;aacute;ginas en el que cada entrada se&amp;ntilde;ala a una tabla de p&amp;aacute;ginas. As&amp;iacute; pues, si la longitud del directorio de p&amp;aacute;ginas es X, y la longitud m&amp;aacute;xima de una tabla de p&amp;aacute;ginas es Y, un proceso puede estar formado por hasta X x Y p&amp;aacute;ginas. Normalmente, la longitud m&amp;aacute;xima de una tabla de p&amp;aacute;ginas est&amp;aacute; limitada a una p&amp;aacute;gina. Por ejemplo, el procesador Pentium utiliza este m&amp;eacute;todo.&lt;br&gt;&lt;br&gt;Un enfoque alternativo al uso de tablas de p&amp;aacute;ginas de uno o dos niveles es el uso de una estructura de &lt;b&gt;tabla de p&amp;aacute;ginas invertida&lt;/b&gt;. Con este m&amp;eacute;todo, la parte del n&amp;uacute;mero de p&amp;aacute;gina de una direcci&amp;oacute;n virtual se traduce a una tabla de dispersi&amp;oacute;n por medio de una funci&amp;oacute;n de dispersi&amp;oacute;n simple. La tabla de dispersi&amp;oacute;n contiene un puntero a la tabla de p&amp;aacute;ginas invertida, que contiene a su vez las entradas de la tabla de p&amp;aacute;ginas.   Con esta estructura, hay una entrada en la tabla de dispersi&amp;oacute;n y en la tabla de p&amp;aacute;ginas invertida por cada p&amp;aacute;gina de memoria real en lugar de una por cada p&amp;aacute;gina virtual. As&amp;iacute; pues, se necesita una parte fija de la memoria real para las tablas, sin reparar en el n&amp;uacute;mero de procesos o de p&amp;aacute;ginas virtuales soportados. La t&amp;eacute;cnica de dispersi&amp;oacute;n genera normalmente cadenas cortas, de dos a tres entradas cada una.&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>TLB</title><link>http://so-wiki.wetpaint.com/page/TLB</link><author>K.Ivan</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/TLB</guid><pubDate>Fri, 13 Jun 2008 19:34:03 CDT</pubDate><description>&lt;i&gt;&lt;u&gt;Buffer de traducci&amp;oacute;n adelantada &lt;/u&gt;&lt;/i&gt;&lt;br&gt;&lt;br&gt;Cada referencia a la memoria virtual puede      generar dos accesos a la memoria: uno para obtener la entrada de la tabla de p&amp;aacute;ginas correspondientes y otro      para obtener el dato deseado. &lt;br&gt;&lt;br&gt;Un esquema sencillo de memoria virtual podr&amp;iacute;a tener el efecto de doblar el tiempo de acceso a la memoria. Para solucionar este problema, la mayor&amp;iacute;a de los esquemas de memoria virtual hacen uso de una cache especial para las entradas de la tabla de p&amp;aacute;ginas, llamada generalmente &lt;b&gt;buffer de traducci&amp;oacute;n adelantada&lt;/b&gt; (TLB,Translation Lookaside Buffer) que contiene aquellas entradas de la tabla de p&amp;aacute;ginas usadas hace menos tiempo. &lt;br&gt;  La organizaci&amp;oacute;n de hardware de paginaci&amp;oacute;n resultante se muestra en la figura siguiente:&lt;br&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Dada una direcci&amp;oacute;n virtual, el procesador examinar&amp;aacute; primero la TLB. Si la entrada de la tabla de p&amp;aacute;ginas buscada est&amp;aacute; presente se obtiene el n&amp;uacute;mero de marco y se forma la direcci&amp;oacute;n real. Si no se encuentra, el procesador emplea el n&amp;uacute;mero de p&amp;aacute;gina como &amp;iacute;ndice para buscar en la tabla de p&amp;aacute;ginas del proceso y examinar la entrada correspondiente de la tabla de p&amp;aacute;ginas. Si no se encuentra activo el bit de presencia, es que la p&amp;aacute;gina est&amp;aacute; en la memoria principal y el procesador puede obtener el n&amp;uacute;mero de marco de la entrada de la tabla de p&amp;aacute;ginas para formar la direcci&amp;oacute;n real. El procesador, adem&amp;aacute;s, actualiza la TLB para incluir esta nueva entrada de la tabla de p&amp;aacute;ginas. Si el bit de presencia no est&amp;aacute; activo, es que la p&amp;aacute;gina buscada no est&amp;aacute; en la memoria principal y se produce un fallo en el acceso a la memoria, llamado &lt;b&gt;fallo de p&amp;aacute;gina. &lt;/b&gt;&lt;br&gt;&lt;br&gt;Existe una serie de detalles adicionales sobre la organizaci&amp;oacute;n real de la TLB. Puesto que la TLB contiene s&amp;oacute;lo algunas de las entradas de la tabla de p&amp;aacute;ginas completa, no se puede indexar simplemente la TLB por el n&amp;uacute;mero de p&amp;aacute;ginas. Cada entrada debe incluir el n&amp;uacute;mero de p&amp;aacute;gina, adem&amp;aacute;s de la entrada completa a la tabla de p&amp;aacute;ginas. El procesador estar&amp;aacute; equipado con un hardware que permita consultar simult&amp;aacute;neamente varias entradas de la TLB para determinar si hay coincidencia en el n&amp;uacute;mero de p&amp;aacute;gina. Esta t&amp;eacute;cnica se denomina &lt;b&gt;correspondencia asociativa &lt;/b&gt;y contrasta con la correspondencia directa, que se emplea para buscar en la tabla de p&amp;aacute;ginas de la figura de B&amp;uacute;squeda directa y asociativa. El dise&amp;ntilde;ador de la TLB tambi&amp;eacute;n debe considerar la forma en que se organiza las entradas en la TLB y que entrada reemplazar cuando se introduce una nueva.&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>Asignaciòn de Trabajos a Escritores</title><link>http://so-wiki.wetpaint.com/page/Asignaci%C3%B2n+de+Trabajos+a+Escritores</link><author>jercoli</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/Asignaci%C3%B2n+de+Trabajos+a+Escritores</guid><pubDate>Fri, 13 Jun 2008 18:26:55 CDT</pubDate><description>&lt;i&gt;&lt;font color=&quot;#0000ff&quot;&gt;(1 al 3 asignados el 1/4/08 - 4 al 7 asignados el 8/4/08 - 8 al 10 asig. el 11/4/08)&lt;/font&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;font color=&quot;#0000ff&quot;&gt;(11 al 16 asig. el 15/5/08)&lt;/font&gt;&lt;/i&gt; - &lt;font color=&quot;#0000ff&quot;&gt;&lt;i&gt;(17 al 22 asig. el 13/6/08)&lt;/i&gt;&lt;/font&gt;&lt;br&gt; &lt;br&gt;&lt;ol&gt;  &lt;li&gt;  Conceptos B&amp;aacute;sicos (shadowsroy + stroppiana)   &lt;/li&gt;&lt;li&gt;  Clasificaci&amp;oacute;n de SO (fedeta86+lucho_86)   &lt;/li&gt;&lt;li&gt;  Generaciones de SO-Historia (deny88+matcarfer)   &lt;/li&gt;&lt;li&gt;  Procesos-Estados y mod. de 3 y 5 estados (Juan_Azar+daminablanc)   &lt;/li&gt;&lt;li&gt;  Procesos-Reg.Proc.Unix (mtesoriero+vzannoni)   &lt;/li&gt;&lt;li&gt;  Procesos-BCP, cambios modo y contexto, int. (ello_utn+martinorengia)   &lt;/li&gt;&lt;li&gt;  Procesos-Planif.Proc.-obj. y niveles+Aprop. y No aprop. (ggimenez+jcarnero)   &lt;/li&gt;&lt;li&gt;  Procesos-Planif.Proc.-FCFS y SJF (acodesal+bjona)   &lt;/li&gt;&lt;li&gt;  Procesos-Planif.Proc.-Prioridades din&amp;agrave;m. y est&amp;agrave;ticas (henieto+rcampagna)   &lt;/li&gt;&lt;li&gt;  Procesos-Planif.Proc.-Round Robin &amp;ograve; Circular (alejandroml+eze_elmac)   &lt;/li&gt;&lt;li&gt;  &lt;font color=&quot;#ff0000&quot;&gt;Modelo de Hilos (mlucchelli + german_machado)&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font color=&quot;#ff0000&quot;&gt;Concurrencia-Comunicaci&amp;ograve;n de proc.+Sincronizaci&amp;ograve;n (mfernandez + Eldaviddd)&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font color=&quot;#ff0000&quot;&gt;Concurrencia-Exclus. Mutua (ale_levy + FCastellanos)&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font color=&quot;#ff0000&quot;&gt;Concurrencia-Soluc.Soft y Hard (mimarquez + leandroRomero)&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font color=&quot;#ff0000&quot;&gt;Concurrencia-Soluc.SO -Sem&amp;agrave;foros (EFiorello + harroyo)&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font color=&quot;#ff0000&quot;&gt;Concurrencia-Soluc.SO-Mensajes (erosani+MatiasAmas)&lt;/font&gt;  &lt;/li&gt;&lt;li&gt;  &lt;font color=&quot;#410445&quot;&gt;Memoria-Asig.Contigua-Partic. Fijas (jGiordano)&lt;/font&gt;  &lt;/li&gt;&lt;li&gt;  &lt;font color=&quot;#410445&quot;&gt;Memoria-Asig.Contigua-Partic. Variables (MIBarreyra)&lt;/font&gt;  &lt;/li&gt;&lt;li&gt;  &lt;font color=&quot;#410445&quot;&gt;Memoria-Asig.no Cont.-Memoria Virtual (EzequielQ22)&lt;/font&gt;  &lt;/li&gt;&lt;li&gt;  &lt;font color=&quot;#410445&quot;&gt;Memoria-Asig.no Cont.-Paginaci&amp;ograve;n-T.P&amp;agrave;ginas+TLB (jretamozo + K.Ivan)&lt;/font&gt;  &lt;/li&gt;&lt;li&gt;  &lt;font color=&quot;#410445&quot;&gt;Memoria-Asig.no Cont.-Paginaci&amp;ograve;n-Estrat. obtenci&amp;ograve;n y reemplazo (SSancho + hPais)&lt;/font&gt;  &lt;/li&gt;&lt;li&gt;  &lt;font color=&quot;#410445&quot;&gt;Memoria-Asig.no Cont.-Paginaci&amp;ograve;n MultiNivel (G_Scognamillo)&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>Concurrencia - Soluciones Soft y Hard</title><link>http://so-wiki.wetpaint.com/page/Concurrencia+-+Soluciones+Soft+y+Hard</link><author>jercoli</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/Concurrencia+-+Soluciones+Soft+y+Hard</guid><pubDate>Wed, 28 May 2008 20:09:31 CDT</pubDate><description>&lt;b&gt;&lt;font color=&quot;#ff0000&quot;&gt;SOLUCIONES POR SOFTWARE&lt;/font&gt;&lt;/b&gt;&lt;br&gt;Pueden implementarse soluciones de software para los procesos concurrentes que se ejecuten en m&amp;aacute;quinas monoprocesador o multiprocesador con memoria principal compartida.&lt;br&gt;&lt;br&gt;&lt;b&gt;ALGORITMO DE DEKKER&lt;/b&gt;&lt;br&gt;La soluci&amp;oacute;n se desarrolla por etapas. Este m&amp;eacute;todo ilustra la mayor&amp;iacute;a de los errores habituales que se producen en la construcci&amp;oacute;n de programas concurrentes.&lt;br&gt;&lt;br&gt;&lt;b&gt;Primer intento&lt;/b&gt;&lt;br&gt;Cualquier intento de exclusi&amp;oacute;n mutua debe depender de algunos mecanismos b&amp;aacute;sicos de exclusi&amp;oacute;n en el hardware. El m&amp;aacute;s habitual es que s&amp;oacute;lo se puede acceder a una posici&amp;oacute;n de memoria en cada instante, teniendo en cuenta esto se reserva una posici&amp;oacute;n de memoria global llamada &lt;i&gt;turno&lt;/i&gt;. Un proceso que desea ejecutar su secci&amp;oacute;n cr&amp;iacute;tica primero eval&amp;uacute;a el contenido de &lt;i&gt;turno. &lt;/i&gt;Si el valor de &lt;i&gt;turno &lt;/i&gt;es igual al n&amp;uacute;mero del proceso, el proceso puede continuar con su secci&amp;oacute;n cr&amp;iacute;tica. En otro caso el proceso debe esperar. El proceso en espera, lee repetitivamente el valor de &lt;i&gt;turno &lt;/i&gt;hasta que puede entrar en su secci&amp;oacute;n cr&amp;iacute;tica. Este procedimiento se llama espera activa.&lt;br&gt;Despu&amp;eacute;s de que un proceso accede a su secci&amp;oacute;n cr&amp;iacute;tica y termina con ella, debe actualizar el valor de &lt;i&gt;turno &lt;/i&gt;para el otro proceso.&lt;br&gt;&lt;br&gt;&lt;b&gt;Segundo intento:&lt;/b&gt;&lt;i&gt;&lt;u&gt; &lt;/u&gt;&lt;/i&gt;&lt;br&gt;Cada proceso debe tener su propia llave de la secci&amp;oacute;n cr&amp;iacute;tica para que, si uno de ellos falla, pueda seguir accediendo a su secci&amp;oacute;n cr&amp;iacute;tica; para esto se define un vector booleano &lt;i&gt;se&amp;ntilde;al&lt;/i&gt;. Cada proceso puede evaluar el valor de se&amp;ntilde;al del otro, pero no modificarlo. Cuando un proceso desea entrar en su secci&amp;oacute;n cr&amp;iacute;tica, comprueba la variable &lt;i&gt;se&amp;ntilde;al&lt;/i&gt; del otro hasta que tiene el valor falso (indica que el otro proceso no est&amp;aacute; en su secci&amp;oacute;n cr&amp;iacute;tica). Asigna a su propia &lt;i&gt;se&amp;ntilde;al &lt;/i&gt;el valor cierto y entra en su secci&amp;oacute;n cr&amp;iacute;tica. Cuando deja su secci&amp;oacute;n cr&amp;iacute;tica asigna falso a su &lt;i&gt;se&amp;ntilde;al.&lt;/i&gt;&lt;br&gt;Si uno de los procesos falla fuera de la secci&amp;oacute;n cr&amp;iacute;tica, incluso el c&amp;oacute;digo para dar valor a las variables &lt;i&gt;se&amp;ntilde;al, &lt;/i&gt;el otro proceso no se queda bloqueado. El otro proceso puede entrar en su secci&amp;oacute;n cr&amp;iacute;tica tantas veces como quiera, porque la variable &lt;i&gt;se&amp;ntilde;al&lt;/i&gt; del otro proceso est&amp;aacute; siempre en falso. Pero si un proceso falla en su secci&amp;oacute;n cr&amp;iacute;tica o despu&amp;eacute;s de haber asignado &lt;i&gt;cierto&lt;/i&gt; a su &lt;i&gt;se&amp;ntilde;al&lt;/i&gt;, el otro proceso estar&amp;aacute; bloqueado permanentemente.&lt;br&gt;&lt;br&gt;&lt;b&gt;Tercer intento&lt;/b&gt;&lt;br&gt;El segundo intento falla porque un proceso puede cambiar su estado despu&amp;eacute;s de que el otro proceso lo ha comprobado pero antes de que pueda entrar en su secci&amp;oacute;n cr&amp;iacute;tica.&lt;br&gt;Si un proceso falla dentro de su secci&amp;oacute;n cr&amp;iacute;tica, incluso el c&amp;oacute;digo que da valor a la variable &lt;i&gt;se&amp;ntilde;al&lt;/i&gt; que controla el acceso a la secci&amp;oacute;n cr&amp;iacute;tica, el otro proceso se bloquea y si un proceso falla fuera de su secci&amp;oacute;n cr&amp;iacute;tica, el otro proceso no se bloquea.&lt;br&gt;Si ambos procesos ponen sus variables &lt;i&gt;se&amp;ntilde;al &lt;/i&gt;a cierto antes de que ambos hayan ejecutado una sentencia, cada uno pensar&amp;aacute; que el otro ha entrado en su secci&amp;oacute;n cr&amp;iacute;tica, generando as&amp;iacute; un interbloqueo.&lt;br&gt;&lt;br&gt;&lt;b&gt;Cuarto intento&lt;/b&gt;&lt;br&gt;En el tercer intento, un proceso fijaba su estado sin conocer el estado del otro. Se puede arreglar esto haciendo que los procesos activen su &lt;i&gt;se&amp;ntilde;al&lt;/i&gt; para indicar que desean entrar en la secci&amp;oacute;n cr&amp;iacute;tica pero deben estar listos para desactivar la variable se&amp;ntilde;al y ceder la preferencia al otro proceso.&lt;br&gt;Existe una situaci&amp;oacute;n llamada bloqueo vital, esto no es un interbloqueo, porque cualquier cambio en la velocidad relativa de los procesos romper&amp;iacute;a este ciclo y permitir&amp;iacute;a a uno entrar en la secci&amp;oacute;n cr&amp;iacute;tica. Recordando que el interbloqueo se produce cuando un conjunto de procesos desean entrar en sus secciones cr&amp;iacute;ticas, pero ninguno lo consigue. Con el bloqueo vital hay posibles secuencias de ejecuci&amp;oacute;n con &amp;eacute;xito.&lt;br&gt;&lt;br&gt;&lt;b&gt;Una soluci&amp;oacute;n correcta&lt;/b&gt;&lt;br&gt;Hay que observar el estado de ambos procesos, que est&amp;aacute; dado por la variable &lt;i&gt;se&amp;ntilde;al, &lt;/i&gt;pero es necesario imponer orden en la actividad de los procesos para evitar el problema de &amp;quot;cortes&amp;iacute;a mutua&amp;quot;.&lt;i&gt; &lt;/i&gt;La variable &lt;i&gt;turno&lt;/i&gt; del primer intento puede usarse en esta labor, indicando que proceso tiene prioridad para exigir la entrada a su secci&amp;oacute;n cr&amp;iacute;tica.&lt;br&gt;&lt;br&gt;&lt;b&gt;ALGORITMO DE PETERSON&lt;/b&gt;&lt;br&gt;El algoritmo de Deker resuelve el problema de la exclusi&amp;oacute;n mutua pero mediante un programa complejo, dif&amp;iacute;cil de seguir y cuya correcci&amp;oacute;n es dif&amp;iacute;cil de demostrar. Peterson ha desarrollado una soluci&amp;oacute;n simple y elegante. Como antes, la variable global se&amp;ntilde;al indica la posici&amp;oacute;n de cada proceso con respecto a la exclusi&amp;oacute;n mutua y la variable global turno resuelve los conflictos de simultaneidad.&lt;br&gt;Consid&amp;eacute;rese el proceso P0. Una vez que ha puesto se&amp;ntilde;al[0] a cierto, P1 no puede entrar en su secci&amp;oacute;n cr&amp;iacute;tica. Si P1 esta aun en su secci&amp;oacute;n cr&amp;iacute;tica, entonces se&amp;ntilde;al[1] = cierto y P0 est&amp;aacute; bloqueado en su bucle while. Esto significa que se&amp;ntilde;al[1] es cierto y turno = 1. P0 puede entrar en su secci&amp;oacute;n cr&amp;iacute;tica cuando se&amp;ntilde;al[1] se ponga a falso o cuando turno se ponga a 0. Consid&amp;eacute;rense ahora los siguientes casos exhaustivos:&lt;br&gt;&lt;ol&gt;  &lt;li class=&quot;MsoNormal&quot;&gt;  P1 no est&amp;aacute; interesado en entrar en su secci&amp;oacute;n cr&amp;iacute;tica. Este caso es imposible porque implica que se&amp;ntilde;al[1] = falso.   &lt;/li&gt;&lt;li class=&quot;MsoNormal&quot;&gt;  P1 est&amp;aacute; esperando entrar en su secci&amp;oacute;n cr&amp;iacute;tica. Este caso es tambi&amp;eacute;n imposible porque si turno = 1, P1 podr&amp;iacute;a entrar en su secci&amp;oacute;n cr&amp;iacute;tica.   &lt;/li&gt;&lt;li class=&quot;MsoNormal&quot;&gt;  P1 entra en su secci&amp;oacute;n cr&amp;iacute;tica varias veces y monopoliza el acceso a ella. Esto no puede pasar porque P1 est&amp;aacute; obligado a dar a P0 una oportunidad poniendo turno a 0 antes de cada intento de entrar en su secci&amp;oacute;n cr&amp;iacute;tica. &lt;/li&gt;&lt;/ol&gt;As&amp;iacute; pues, se tiene una soluci&amp;oacute;n posible al problema de la exclusi&amp;oacute;n mutua para dos procesos. Es m&amp;aacute;s, el algoritmo de Peterson se puede generalizar f&amp;aacute;cilmente al caso de n procesos.   &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;ALGORITMOS DE DEKKER Y PETERSON&lt;/b&gt; &lt;br&gt;Combinando las filosof&amp;iacute;as de la primera y segunda aproximaciones, &lt;i&gt;Dekker&lt;/i&gt; propuso un algoritmo que garantiza la exclusi&amp;oacute;n mutua sin interbloqueo ni inanici&amp;oacute;n. &lt;br&gt;Peterson, con los mismos criterios, desarroll&amp;oacute; un algoritmo m&amp;aacute;s compacto que el de Dekker, que garantiza lo mismo. Este algoritmo se muestra a continuaci&amp;oacute;n, para dos hilos. &lt;br&gt;turno: entero en el rango 0&lt;b&gt;..&lt;/b&gt;1 con valor inicial cualquiera &lt;br&gt;interesado: arreglo de dos posiciones booleanas, ambas con valor inicial FALSE &lt;br&gt;&lt;div align=&quot;center&quot;&gt;  &lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; width=&quot;70%&quot;&gt;  &lt;tbody&gt;  &lt;tr&gt;  &lt;td&gt;  &lt;b&gt;&lt;i&gt;Hilo 0&lt;/i&gt;&lt;/b&gt; &lt;/td&gt;  &lt;td&gt;  &lt;b&gt;&lt;i&gt;Hilo 1&lt;/i&gt;&lt;/b&gt; &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  yo = 0 ; &lt;/td&gt;  &lt;td&gt;  yo = 1 ; &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  (secci&amp;oacute;n no cr&amp;iacute;tica) &lt;/td&gt;  &lt;td&gt;  (secci&amp;oacute;n no cr&amp;iacute;tica) &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  otro = 1 &amp;ndash; yo ; &lt;/td&gt;  &lt;td&gt;  otro = 1 &amp;ndash; yo ; &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  interesado[yo] = TRUE ; &lt;/td&gt;  &lt;td&gt;  interesado[yo] = TRUE ; &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  turno = yo ; &lt;/td&gt;  &lt;td&gt;  turno = yo ; &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  while &lt;/td&gt;  &lt;td&gt;  while &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  (turno= =yo &amp;amp;&amp;amp; interesado[otro]= =TRUE ) &lt;b&gt;;&lt;/b&gt; &lt;/td&gt;  &lt;td&gt;  (turno= =yo &amp;amp;&amp;amp; interesado[otro]= =TRUE ) &lt;b&gt;;&lt;/b&gt; &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  (secci&amp;oacute;n cr&amp;iacute;tica) &lt;/td&gt;  &lt;td&gt;  (secci&amp;oacute;n cr&amp;iacute;tica) &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  interesado[yo] = FALSE ; &lt;/td&gt;  &lt;td&gt;  interesado[yo] = FALSE ; &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td colspan=&quot;2&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;Existen los algoritmos de Dekker y Peterson para N hilos, donde N toma cualquier valor arbitrario mayor que 2.   &lt;br&gt;&lt;br&gt;&lt;b&gt;ESPERA ACTIVA&lt;/b&gt; &lt;br&gt;Si bien es cierto que con los algoritmos de Dekker y Peterson se consigue la exclusi&amp;oacute;n mutua entre hilos tambi&amp;eacute;n es cierto que estos algoritmos conllevan una &lt;i&gt;espera activa&lt;/i&gt; de los mismos; es decir, cuando un hilo est&amp;aacute; intentando el acceso a un recurso que ya ha sido asignado a otro, contin&amp;uacute;a consumiendo tiempo de procesador en su intento de conseguir el recurso.&lt;br&gt;La espera activa est&amp;aacute; implementada en las figuras anteriores mediante la construcci&amp;oacute;n&lt;br&gt;&lt;b&gt;while (condici&amp;oacute;n) ;&lt;/b&gt;&lt;br&gt;donde, al estar vac&amp;iacute;o el ciclo del while, se contin&amp;uacute;a evaluando la condici&amp;oacute;n hasta que ella cambie.&lt;br&gt;&lt;b&gt;FUENTE: http://bochica.udea.edu.co/~cnorena/guia-estudio/exclu-mutua.html#TURNOS_Y_OTROS&lt;/b&gt; &lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;font color=&quot;#ff0000&quot;&gt;SOLUCIONES POR HARDWARE&lt;/font&gt;&lt;/b&gt;&lt;br&gt;&lt;b&gt;INHABILITACI&amp;Oacute;N (enmascaramiento) DE INTERRUPCIONES &lt;/b&gt;&lt;br&gt;En una m&amp;aacute;quina monoprocesador, la ejecuci&amp;oacute;n de procesos concurrentes no puede superponerse; los procesos solo pueden intercalarse. Es m&amp;aacute;s, un proceso continuar&amp;aacute; ejecut&amp;aacute;ndose hasta que solicite un servicio el sistema operativo o hasta que sea interrumpido. Por lo tanto, para garantizar la exclusi&amp;oacute;n mutua, es suficiente con impedir que un proceso sea interrumpido. Esta capacidad puede ofrecerse en forma de primitivas definidas por el n&amp;uacute;cleo del sistema para habilitar o inhabilitar las interrupciones. Un proceso puede hacer cumplir la exclusi&amp;oacute;n mutua del siguiente modo:&lt;br&gt;While (cierto)&lt;br&gt;{&lt;br&gt;/*inhabilitar interrupciones */;&lt;br&gt;/* secci&amp;oacute;n critica */;&lt;br&gt;/* habilitar interrupciones */;&lt;br&gt;/* resto */;&lt;br&gt;}&lt;br&gt;Puesto que la secci&amp;oacute;n cr&amp;iacute;tica no puede ser interrumpida, la exclusi&amp;oacute;n mutua est&amp;aacute; garantizada. Sin embargo, el precio de esta soluci&amp;oacute;n es alto. La eficiencia de la ejecuci&amp;oacute;n puede verse notablemente degradada debido a que se limita la capacidad del procesador para intercalar programas. Un segundo problema es que est&amp;aacute; t&amp;eacute;cnica no funciona en arquitecturas de multiprocesador. Cuando el sistema tenga m&amp;aacute;s de un procesador, es posible (y habitual) que haya m&amp;aacute;s de un proceso ejecut&amp;aacute;ndose al mismo tiempo. En este caso, inhabilitar las interrupciones no garantiza la exclusi&amp;oacute;n mutua.&lt;br&gt;&lt;br&gt;&lt;b&gt;INSTRUCCIONES ESPECIALES DE MAQUINA &lt;/b&gt;&lt;br&gt;En configuraciones multiprocesador, varios procesadores comparten el acceso a una memoria principal com&amp;uacute;n. En este caso, no hay relaci&amp;oacute;n maestro/esclavo, sino que los procesadores funcionan independientemente en una relaci&amp;oacute;n de igualdad. No hay un mecanismo de interrupciones entre los procesadores en el que se pueda basar la exclusi&amp;oacute;n mutua.&lt;br&gt;A nivel de hardware, como se ha mencionado, los accesos a posiciones de memoria excluyen cualquier otro acceso a la misma posici&amp;oacute;n. Con esta base, los dise&amp;ntilde;adores han propuesto varias instrucciones de m&amp;aacute;quina que realizan dos acciones at&amp;oacute;micamente, tales cono leer y escribir o leer y examinar, sobre una misma posici&amp;oacute;n de memoria en un &amp;uacute;nico ciclo de lectura de instrucci&amp;oacute;n.&lt;br&gt;Puesto que estas acciones se realizan en un &amp;uacute;nico ciclo de instrucci&amp;oacute;n, no est&amp;aacute;n sujetas a injerencias por parte de otras instrucciones.&lt;br&gt;&lt;br&gt;La instrucci&amp;oacute;n COMPARAR Y FIJAR (TAS, Test and Set) puede definirse de la siguiente forma:&lt;br&gt;&lt;br&gt;booleano TS(int i)&lt;br&gt;{&lt;br&gt;if (I==0)&lt;br&gt;{&lt;br&gt;I=1;&lt;br&gt;return cierto;&lt;br&gt;}&lt;br&gt;else&lt;br&gt;{&lt;br&gt;return falso;&lt;br&gt;}&lt;br&gt;}&lt;br&gt;&lt;br&gt;La instrucci&amp;oacute;n examina el valor de su argumento i. Si el valor es 0 , lo cambia por 1 y devuelve cierto. En otro caso, el valor no se modifica y se devuelve falso. La funci&amp;oacute;n Comparar y Fijar se ejecuta at&amp;oacute;micamente en su totalidad, es decir, no esta sujeta a interrupciones. &lt;br&gt;&lt;br&gt;La instrucci&amp;oacute;n INTERCAMBIAR (Swap) se puede definir como sigue:&lt;br&gt;&lt;br&gt;void intercambiar (int registro, int memoria)&lt;br&gt;{&lt;br&gt;int temp;&lt;br&gt;temp = memoria; &lt;br&gt;memoria = registro;&lt;br&gt;registro = temp;&lt;br&gt;}&lt;br&gt;&lt;br&gt;Esta instrucci&amp;oacute;n intercambia el contenido de un registro con el de una posici&amp;oacute;n de memoria. Durante la ejecuci&amp;oacute;n de la instrucci&amp;oacute;n, se bloquea el acceso a la posici&amp;oacute;n de memoria de cualquier otra instrucci&amp;oacute;n que haga referencia a la misma posici&amp;oacute;n.&lt;br&gt;&lt;br&gt;&lt;b&gt;Propiedades de las soluciones con instrucciones de maquina &lt;/b&gt;&lt;br&gt;El uso de instrucciones especiales de la maquina para hacer cumplir la exclusi&amp;oacute;n mutua tiene varias ventajas:&lt;br&gt;&lt;ul&gt;  &lt;li class=&quot;MsoNormal&quot;&gt;  Es aplicable a cualquier n&amp;uacute;mero de procesos en sistemas con memoria compartida, tanto de monoprocesador como de multiprocesador.   &lt;/li&gt;&lt;li class=&quot;MsoNormal&quot;&gt;  Es simple y f&amp;aacute;cil de verificar.   &lt;/li&gt;&lt;li class=&quot;MsoNormal&quot;&gt;  Puede usarse para disponer de varias secciones cr&amp;iacute;ticas; cada secci&amp;oacute;n cr&amp;iacute;tica puede definirse con su propia variable. &lt;/li&gt;&lt;/ul&gt;&lt;br&gt;Algunas desventajas importantes son las siguientes: &lt;br&gt;&lt;br&gt;&lt;ul&gt;  &lt;li class=&quot;MsoNormal&quot;&gt;  SE EMPLEA ESPERA ACTIVA. As&amp;iacute; pues, mientras un proceso est&amp;aacute; esperando para acceder a la secci&amp;oacute;n cr&amp;iacute;tica, contin&amp;uacute;a consumiendo tiempo del procesador.   &lt;/li&gt;&lt;li class=&quot;MsoNormal&quot;&gt;  PUEDE PRODUCIRSE INANICI&amp;Oacute;N. Cuando un proceso abandona la secci&amp;oacute;n cr&amp;iacute;tica y hay m&amp;aacute;s de un proceso esperando, la selecci&amp;oacute;n es arbitraria. As&amp;iacute; pues se podr&amp;iacute;a denegar el acceso a alg&amp;uacute;n proceso indefinidamente.   &lt;/li&gt;&lt;li class=&quot;MsoNormal&quot;&gt;  PUEDE PRODUCIRSE INTERBLOQUEO. Sup&amp;oacute;ngase la siguiente escena en un sistema monoprocesador. El proceso &amp;quot;P1&amp;quot; ejecuta una instrucci&amp;oacute;n especial (sea TS o Intercambiar) y entra su secci&amp;oacute;n cr&amp;iacute;tica. Se interrumpe a &amp;quot;P1&amp;quot; para dar el procesador a &amp;quot;P2&amp;quot;, que tiene mayor prioridad. Si &amp;quot;P2&amp;quot; intenta ahora usar el mismo recurso que &amp;quot;P1&amp;quot;, se le negar&amp;aacute; el acceso por el mecanismo de exclusi&amp;oacute;n mutua. De este modo, &amp;quot;P2&amp;quot; entrar&amp;aacute; en un bucle de espera activa. Sin embargo, &amp;quot;P1&amp;quot; nunca ser&amp;aacute; expedido porque su prioridad es menor que la del proceso listo &amp;quot;p2&amp;quot;.&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;FUENTE: &lt;a class=&quot;external&quot; href=&quot;http://so-wiki.wetpaint.comhttp://bochica.udea.edu.co/~cnorena/guia-estudio/herramientas-hardware.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://bochica.udea.edu.co/~cnorena/guia-estudio/herramientas-hardware.html&lt;/a&gt;&lt;/b&gt; &lt;br&gt;&lt;br&gt;&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>Concurrencia - Exclusiòn Mutua</title><link>http://so-wiki.wetpaint.com/page/Concurrencia+-+Exclusi%C3%B2n+Mutua</link><author>jercoli</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/Concurrencia+-+Exclusi%C3%B2n+Mutua</guid><pubDate>Wed, 28 May 2008 19:56:47 CDT</pubDate><description>&lt;b&gt;PRINCIPIOS GENERALES DE LA CONCURRENCIA&lt;/b&gt;&lt;br&gt;En un sistema multiprogramado con un &amp;uacute;nico procesador, los procesos se intercalan en el tiempo aparentando una ejecuci&amp;oacute;n simult&amp;aacute;nea. Aunque no se logra un procesamiento paralelo y produce una sobrecarga en los intercambios de procesos, la ejecuci&amp;oacute;n intercalada produce beneficios en la eficiencia del procesamiento y en la estructuraci&amp;oacute;n de los programas.&lt;br&gt;La intercalaci&amp;oacute;n y la superposici&amp;oacute;n pueden contemplarse como ejemplos de procesamiento concurrente en un sistema monoprocesador, los problemas son consecuencia de la velocidad de ejecuci&amp;oacute;n de los procesos que no pueden predecirse y depende de las actividades de otros procesos, de la forma en que el sistema operativo trata las interrupciones surgen las siguientes dificultades:&lt;br&gt;&lt;ol&gt;  &lt;li class=&quot;MsoNormal&quot;&gt;  Compartir recursos globales es riesgoso   &lt;/li&gt;&lt;li class=&quot;MsoNormal&quot;&gt;  Para el sistema operativo es dif&amp;iacute;cil gestionar la asignaci&amp;oacute;n &amp;oacute;ptima de recursos. &lt;/li&gt;&lt;/ol&gt;Las dificultades anteriores tambi&amp;eacute;n se presentan en los sistemas multiprocesador.   &lt;br&gt;El hecho de compartir recursos ocasiona problemas, por esto es necesario proteger a dichos recursos.&lt;br&gt;Los problemas de concurrencia se producen incluso cuando hay un &amp;uacute;nico procesado&lt;br&gt;&lt;br&gt;&lt;b&gt;LABORES DEL SISTEMA OPERATIVO &lt;/b&gt;&lt;br&gt;Elementos de gesti&amp;oacute;n y dise&amp;ntilde;o que surgen por causa de la concurrencia:&lt;br&gt;1) El sistema operativo debe seguir a los distintos procesos activos &lt;br&gt;2) El sistema operativo debe asignar y retirar los distintos recursos a cada proceso activo, entre estos se incluyen:&lt;br&gt;_Tiempo de procesador &lt;br&gt;_Memoria&lt;br&gt;_Archivos &lt;br&gt;_Dispositivos de E/S&lt;br&gt;3) El sistema operativo debe proteger los datos y los recursos f&amp;iacute;sicos de cada proceso contra injerencias no intencionadas de otros procesos.&lt;br&gt;4) Los resultados de un proceso deben ser independientes de la velocidad a la que se realiza la ejecuci&amp;oacute;n de otros procesos concurrentes.&lt;br&gt;Para abordar la independencia de la velocidad debemos ver las formas en las que los procesos interact&amp;uacute;an.&lt;br&gt;&lt;br&gt;&lt;b&gt;INTERACCI&amp;Oacute;N ENTRE PROCESOS&lt;/b&gt;&lt;br&gt;Se los puede clasificar en que interact&amp;uacute;an los procesos en funci&amp;oacute;n del nivel de conocimiento que cada proceso tiene de la existencia de los dem&amp;aacute;s. Existen tres niveles de conocimiento:&lt;br&gt;1) Los procesos no tienen conocimiento de los dem&amp;aacute;s: son procesos independientes que no operan juntos. Ej: la multiprogramaci&amp;oacute;n de procesos independientes. Aunque los procesos no trabajen juntos, el sistema operativo se encarga de la &amp;quot;&lt;i&gt;competencia&amp;quot;&lt;/i&gt; por los recursos.&lt;br&gt;2) Los procesos tienen un conocimiento indirecto de los otros: los procesos no conocen a los otros por sus identificadores de proceso, pero muestran cooperaci&amp;oacute;n el objeto com&amp;uacute;n. &lt;br&gt;3) Los procesos tienen conocimiento directo de los otros: los procesos se comunican por el identificador de proceso y pueden trabajar conjuntamente.&lt;br&gt;&lt;br&gt;&lt;b&gt;Competencia entre procesos por los recursos&lt;/b&gt;&lt;br&gt;Los procesos concurrentes entran en conflicto cuando compiten por el uso del mismo recurso; dos o m&amp;aacute;s procesos necesitan acceder a un recurso durante su ejecuci&amp;oacute;n .Cada proceso debe dejar tal y como est&amp;eacute; el estado del recurso que utilice.&lt;br&gt;La ejecuci&amp;oacute;n de un proceso puede influir en el comportamiento de los procesos que compiten. Por Ej. Si dos procesos desean acceder a un recurso, el sistema operativo le asignar&amp;aacute; el recurso a uno y el otro tendr&amp;aacute; que esperar.&lt;br&gt;Cuando hay procesos en competencia, se deben solucionar tres problemas de control: la necesidad de &lt;b&gt;exclusi&amp;oacute;n mutua.&lt;/b&gt; Suponiendo que dos procesos quieren acceder a un recurso no compartible. A estos recursos se les llama &amp;quot;recursos cr&amp;iacute;ticos&amp;quot; y la parte del programa que los utiliza es la &amp;quot;secci&amp;oacute;n cr&amp;iacute;tica&amp;rdquo; del programa. Es importante que s&amp;oacute;lo un programa pueda acceder a su secci&amp;oacute;n cr&amp;iacute;tica en un momento dado.&lt;br&gt;Hacer que se cumpla la exclusi&amp;oacute;n mutua provoca un interbloqueo.&lt;br&gt;Otro problema es la &lt;u&gt;inanici&amp;oacute;n &lt;/u&gt;si tres procesos necesitan acceder a un recurso, P1 posee al recurso, luego lo abandona y le concede el acceso al siguiente proceso P2, P1 solicita acceso de nuevo y el sistema operativo concede el acceso a P1 Y P2 alternativamente, se puede negar indefinidamente a P3 el acceso al recurso.&lt;br&gt;El control de competencia involucra al sistema operativo, porque es el que asigna los recursos.&lt;br&gt;&lt;ul&gt;  &lt;li class=&quot;MsoNormal&quot;&gt;  &lt;u&gt;Cooperaci&amp;oacute;n entre procesos por compartimiento &lt;/u&gt;&lt;/li&gt;&lt;/ul&gt;Comprende los procesos que interact&amp;uacute;an con otros sin tener conocimiento expl&amp;iacute;cito de ellos. Ej. : Varios procesos pueden tener acceso a variables compartidas.   &lt;br&gt;Los procesos deben cooperar para asegurar que los datos que se comparten se gestionan correctamente. Los mecanismos de control deben garantizar la integridad de los datos compartidos.&lt;br&gt;&lt;ul&gt;  &lt;li class=&quot;MsoNormal&quot;&gt;  &lt;u&gt;Cooperaci&amp;oacute;n entre procesos por comunicaci&amp;oacute;n&lt;/u&gt; &lt;/li&gt;&lt;/ul&gt;Los distintos procesos participan en una labor com&amp;uacute;n que une a todos los procesos.   &lt;br&gt;La comunicaci&amp;oacute;n sincroniza o coordina las distintas actividades, est&amp;aacute; formada por mensajes de alg&amp;uacute;n tipo. Las primitivas para enviar y recibir mensajes, vienen dadas como parte del lenguaje de programaci&amp;oacute;n o por el n&amp;uacute;cleo del sistema operativo &lt;br&gt;&lt;br&gt;&lt;b&gt;REQUISITOS PARA LA EXCLUSI&amp;Oacute;N MUTUA &lt;/b&gt;&lt;br&gt;&lt;ol&gt;  &lt;li class=&quot;MsoNormal&quot;&gt;  S&amp;oacute;lo un proceso, de todos los que poseen secciones cr&amp;iacute;ticas por el mismo recurso compartido, debe tener permiso para entrar en ella en un momento dado.   &lt;/li&gt;&lt;li class=&quot;MsoNormal&quot;&gt;  Un proceso que se interrumpe en una secci&amp;oacute;n no cr&amp;iacute;tica debe hacerlo sin interferir con los otros procesos.   &lt;/li&gt;&lt;li class=&quot;MsoNormal&quot;&gt;  Un proceso no debe poder solicitar acceso a una secci&amp;oacute;n cr&amp;iacute;tica para despu&amp;eacute;s ser demorado indefinidamente, no puede permitirse el interbloqueo o la inanici&amp;oacute;n.   &lt;/li&gt;&lt;li class=&quot;MsoNormal&quot;&gt;  Si ning&amp;uacute;n proceso est&amp;aacute; en su secci&amp;oacute;n cr&amp;iacute;tica, cualquier proceso que solicite entrar en la suya debe poder hacerlo sin demora.   &lt;/li&gt;&lt;li class=&quot;MsoNormal&quot;&gt;  No se debe suponer sobre la velocidad relativa de los procesos o el n&amp;uacute;mero de procesadores.   &lt;/li&gt;&lt;li class=&quot;MsoNormal&quot;&gt;  Un proceso permanece en su secci&amp;oacute;n cr&amp;iacute;tica por un tiempo finito.&lt;br&gt;&lt;/li&gt;&lt;/ol&gt;&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>Mensajes</title><link>http://so-wiki.wetpaint.com/page/Mensajes</link><author>MatiasAmas</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/Mensajes</guid><pubDate>Sat, 24 May 2008 23:28:41 CDT</pubDate><description>&lt;b&gt;Paso de mensajes&lt;/b&gt;&lt;br&gt; &lt;br&gt;&lt;b&gt;El paso de mensajes es una t&amp;eacute;cnica empleada en programaci&amp;oacute;n concurrente para aportar sincronizaci&amp;oacute;n entre procesos y permitir la exclusi&amp;oacute;n mutua, de manera similar a como se hace con los sem&amp;aacute;foros, monitores, etc. &lt;/b&gt;&lt;b&gt;Su principal caracter&amp;iacute;stica es que no precisa de memoria compartida, por lo que es muy importante en la programaci&amp;oacute;n para sistemas distribuidos. &lt;/b&gt;&lt;b&gt;Los elementos principales que intervienen en el paso de mensajes son el proceso que env&amp;iacute;a, el que recibe y el mensaje.&lt;/b&gt; &lt;br&gt;&lt;br&gt;1. Permite el intercambio de informaci&amp;oacute;n entre procesos.&lt;br&gt;2. La comunicaci&amp;oacute;n entre mensajes necesita de un proceso emisor, de un proceso receptor y la informaci&amp;oacute;n que debe intercambiarse.&lt;br&gt;3. Las operaciones b&amp;aacute;sicas son: enviar(destino, mensaje) recibir(origen, mensaje) &lt;br&gt;4. La comunicaci&amp;oacute;n por mensajes requiere que se establezca un enlace entre el receptor y el emisor.&lt;br&gt;5. Fuerza la exclusi&amp;oacute;n mutua. &lt;br&gt;&lt;br&gt;&lt;b&gt;Direccionamiento&lt;/b&gt; &lt;br&gt;&lt;br&gt;1. Direccionamiento directo.&lt;br&gt;&lt;br&gt;Se especifican emisor y receptor de forma expl&amp;iacute;cita. &lt;br&gt;P env&amp;iacute;a a Q: &lt;br&gt;- P: send (Q, mensaje)&lt;br&gt;- Q: receive (Q, mensaje) &lt;br&gt;&lt;br&gt;1.1. La operaci&amp;oacute;n enviar() incluye una identificaci&amp;oacute;n del proceso destino&lt;br&gt;1.2. La operaci&amp;oacute;n recibir() puede incluir la identificaci&amp;oacute;n del proceso origen del mensaje. (Procesos cooperantes)&lt;br&gt;1.3. La operaci&amp;oacute;n recibir() tambi&amp;eacute;n puede no saber cu&amp;aacute;l es el proceso origen del mensaje (Como un servicio de impresoras, recibir&amp;aacute; solicitudes de impresi&amp;oacute;n de cualquier proceso). El par&amp;aacute;metro origen se utilizara como respuesta de que el mensaje ha sido recibido.&lt;br&gt;&lt;br&gt;2. Direccionamiento indirecto.&lt;br&gt;&lt;br&gt;2.1. Los mensajes no se env&amp;iacute;an directamente al receptor, sino a una cola para su posterior procesamiento. &lt;br&gt;2.2. Las colas son llamadas buzones (mail box).&lt;br&gt;2.3. Los procesos env&amp;iacute;an mensajes a un buz&amp;oacute;n y es un proceso quien toma los mensajes del buz&amp;oacute;n para su procesamiento. &lt;br&gt;&lt;br&gt;3. Desacoplamiento del direccionamiento indirecto. &lt;br&gt;Permite flexibilidad en el manejo de mensajes. En este tercer caso la relaci&amp;oacute;n puede ser (1-1) (un proceso env&amp;iacute;a a un solo buz&amp;oacute;n). Tambi&amp;eacute;n puede haber (n-1) donde varios procesos env&amp;iacute;an mensajes a un solo buz&amp;oacute;n o (1-n) donde un proceso env&amp;iacute;a mensajes a muchos buzones. &lt;br&gt;&lt;br&gt;3.1. Un emisor y un receptor. Es un enlace privado de comunicaci&amp;oacute;n entre dos procesos. &lt;br&gt;3.2. Muchos emisores y un receptor. Un proceso ofrece un servicio a muchos procesos. En este caso el buz&amp;oacute;n se llama puerto. (programas cliente / servidor) &lt;br&gt;3.3. Un emisor y muchos receptores. Un mensaje se difunde a un conjunto de procesos receptores. (Upgrade de programas por internet). &lt;br&gt;3.4. Muchos emisores y muchos receptores. (env&amp;iacute;o de e-mails). &lt;br&gt; &lt;br&gt;&lt;b&gt;Sincronizaci&amp;oacute;n&lt;/b&gt; &lt;br&gt;&lt;br&gt;1. Emisor con bloqueo y Receptor con bloqueo. Emisor S&amp;iacute;ncrono &lt;br&gt;1.1. Ambos, tanto receptor como emisor son bloqueados hasta que el mensaje sea entregado. &lt;br&gt;1.2. Se llama &lt;b&gt;&lt;i&gt;rendezvous.&lt;/i&gt;&lt;/b&gt; &lt;br&gt;1.3. Permite una sincronizaci&amp;oacute;n fuerte de procesos. &lt;br&gt;1.4. Ejemplo: Procesos cooperantes. &lt;br&gt;&lt;br&gt;2. Emisor sin bloqueo y Receptor con bloqueo. Emisor As&amp;iacute;ncrono &lt;br&gt;2.1. El emisor continua su procesamiento, enviando mensajes tan r&amp;aacute;pido como sea posible. &lt;br&gt;2.2. El receptor se bloqueo hasta que llegue el mensaje solicitado. &lt;br&gt;2.3. Es la combinaci&amp;oacute;n m&amp;aacute;s &amp;uacute;til de sincronizaci&amp;oacute;n. &lt;br&gt;2.4. Ejemplo: Connect desde un programa Oracle (cliente) hacia un Listener Oracle (servidor ). &lt;br&gt;&lt;br&gt;3. Emisor sin bloqueo y Receptor sin bloqueo. &lt;br&gt;3.1. Nadie debe esperar. &lt;br&gt;3.2. Ejemplo: El MS-Word continua su proceso mientras el servicio de impresi&amp;oacute;n de diversos procesos contin&amp;uacute;an. &lt;br&gt;&lt;br&gt;&lt;b&gt;Partes de un mensaje&lt;/b&gt; &lt;br&gt;1. Cabecera &lt;br&gt;1.1. Tipo de mensaje &lt;br&gt;1.2. Proceso Destino (buz&amp;oacute;n, puerto) &lt;br&gt;1.3. Proceso Origen (cliente) &lt;br&gt;1.4. Longitud del mensaje &lt;br&gt;1.5. Informaci&amp;oacute;n de control (prioridad, siguiente mensaje, contador de secuencia) &lt;br&gt;2. Cuerpo &lt;br&gt;&lt;br&gt;&lt;b&gt;Exclusi&amp;oacute;n Mutua&lt;/b&gt; &lt;br&gt;1. Env&amp;iacute;o sin bloqueo, Recepci&amp;oacute;n con bloqueo &lt;br&gt;2. Un conjunto de procesos comparten un buz&amp;oacute;n llamado &lt;b&gt;mutex.&lt;/b&gt; &lt;br&gt;3. El buz&amp;oacute;n al inicio contiene un mensaje de contenido arbitrario. &lt;br&gt;4. Un proceso que desea usar la secci&amp;oacute;n cr&amp;iacute;tica, recibe ese mensaje (quit&amp;aacute;ndose del buz&amp;oacute;n) &lt;br&gt;5. Puesto que la recepci&amp;oacute;n es con bloqueo, ning&amp;uacute;n otro proceso podr&amp;aacute; ingresar a la secci&amp;oacute;n cr&amp;iacute;tica (Ya que no existe mensajes en el buz&amp;oacute;n). &lt;br&gt;6. Una vez que ha usado la secci&amp;oacute;n cr&amp;iacute;tica, devuelve el mensaje al buz&amp;oacute;n. &lt;br&gt;7. As&amp;iacute; el mensaje sirve como posta entre un mensaje y otro para usar la secci&amp;oacute;n cr&amp;iacute;tica. &lt;br&gt;&lt;br&gt;/* programa exclusion mutua*/ &lt;br&gt;const int n = /*numero procesos*/ &lt;br&gt;void P(int i) &lt;br&gt;{&lt;br&gt;message msg; &lt;br&gt;while (true) &lt;br&gt;{ &lt;br&gt;recibir(mutex,msg); &lt;br&gt;/*seccion critica*/ &lt;br&gt;enviar(mutex,msg);&lt;br&gt; /*el resto de codigo*/ &lt;br&gt;} &lt;br&gt;} &lt;br&gt;void main() &lt;br&gt;{ &lt;br&gt;crear_mailbox(mutex);&lt;br&gt;enviar(mutex,null); &lt;br&gt;parbegin(P(1),P(2) ... P(n));&lt;br&gt; }&lt;br&gt;&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>Concurrencia</title><link>http://so-wiki.wetpaint.com/page/Concurrencia</link><author>jercoli</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/Concurrencia</guid><pubDate>Thu, 15 May 2008 14:11:43 CDT</pubDate><description>&lt;br&gt;&lt;b&gt;&lt;a href=&quot;http://so-wiki.wetpaint.com/page/Comunicaci%C3%B2n+de+procesos&quot; target=&quot;_self&quot;&gt;Comunicaci&amp;ograve;n de Procesos&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;a href=&quot;http://so-wiki.wetpaint.com/page/Sincronizaci%C3%B2n+de+procesos&quot; target=&quot;_self&quot;&gt;Sincronizaci&amp;ograve;n de Procesos&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;a href=&quot;http://so-wiki.wetpaint.com/page/Concurrencia+-+Exclusi%C3%B2n+Mutua&quot; target=&quot;_self&quot;&gt;Programaci&amp;ograve;n Concurrente&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;b&gt;&lt;a href=&quot;http://so-wiki.wetpaint.com/page/Concurrencia+-+Exclusi%C3%B2n+Mutua&quot; target=&quot;_self&quot;&gt;Exclusi&amp;ograve;n mutua&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;a href=&quot;http://so-wiki.wetpaint.com/page/Concurrencia+-+Soluciones+Soft+y+Hard&quot; target=&quot;_self&quot;&gt;Soluciones software&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;b&gt;&lt;a href=&quot;http://so-wiki.wetpaint.com/page/Concurrencia+-+Soluciones+Soft+y+Hard&quot; target=&quot;_self&quot;&gt;Soluciones hardware&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;Soluciones del SO: &lt;/i&gt;&lt;br&gt;&lt;br&gt;&lt;ul&gt;  &lt;li&gt;  &lt;b&gt;&lt;a href=&quot;http://so-wiki.wetpaint.com/page/Sem%C3%A0foros&quot; target=&quot;_self&quot;&gt;Sem&amp;agrave;foros&lt;/a&gt;&lt;/b&gt;   &lt;/li&gt;&lt;li&gt;  &lt;b&gt;&lt;a href=&quot;http://so-wiki.wetpaint.com/page/Mensajes&quot; target=&quot;_self&quot;&gt;Mensajes&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>FCFS y SJF</title><link>http://so-wiki.wetpaint.com/page/FCFS+y+SJF</link><author>acodesal</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/FCFS+y+SJF</guid><pubDate>Thu, 08 May 2008 00:05:56 CDT</pubDate><description> &lt;br&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;4&quot;&gt;&lt;b&gt;FCFS (First Come, First Served)&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/b&gt;&lt;/font&gt;&lt;font size=&quot;3&quot;&gt;La pol&amp;iacute;tica m&amp;aacute;s simple de planificaci&amp;oacute;n es la &lt;i&gt;FCFS&lt;/i&gt;. A medida que un proceso pasa al estado listo, este es agregado a la cola de listos. Cuando el proceso que actualmente est&amp;aacute; ejecutando cesa su ejecuci&amp;oacute;n entonces el proceso m&amp;aacute;s viejo en la cola es seleccionado para correr. La implementaci&amp;oacute;n de esta pol&amp;iacute;tica es a trav&amp;eacute;s de colas &lt;i&gt;FIFO &lt;/i&gt;(&lt;i&gt;First-In, First-Out&lt;/i&gt;). Cuando el CPU est&amp;aacute; libre, &amp;eacute;ste es asignado al proceso que est&amp;aacute; en la cabeza de la cola.&lt;/font&gt; &lt;font size=&quot;3&quot;&gt;&lt;i&gt;FCFS &lt;/i&gt;es un algoritmo &lt;i&gt;nonpreemptive &amp;oacute; &amp;quot;no apropiativo&lt;/i&gt;&amp;quot;, pues una vez que el CPU es asignado a un proceso, este lo mantiene hasta que espont&amp;aacute;neamente lo suelta, ya sea porque el proceso finaliz&amp;oacute; o por alg&amp;uacute;n requerimiento de E/S.&lt;/font&gt; &lt;font size=&quot;3&quot;&gt;El tiempo de espera bajo esta pol&amp;iacute;tica tiende a ser alto. Adem&amp;aacute;s , tiende a favorecer aquellos procesos que requieren m&amp;aacute;s tiempo de CPU (&lt;i&gt;CPU-bound&lt;/i&gt;). Consideren el caso donde tenemos una colecci&amp;oacute;n de procesos. Uno de ellos utiliza m&amp;aacute;s CPU que los otros, y el resto de los procesos requieren m&amp;aacute;s trabajo de E/S (&lt;i&gt;I/O-bound&lt;/i&gt;). Cuando el proceso &lt;i&gt;CPU-bound&lt;/i&gt; ejecuta, los otros procesos esperan. Algunos de estos estar&amp;aacute;n en las colas de los dispositivos de E/S pero eventualmente en alg&amp;uacute;n instante pasar&amp;aacute;n a la cola de procesos listos. En este momento, muchos de los dispositivos de E/S estar&amp;aacute;n ociosos. Cuando el proceso en ejecuci&amp;oacute;n deje el estado &lt;i&gt;Running&lt;/i&gt;, los procesos &lt;i&gt;I/O-bound&lt;/i&gt; pasar&amp;aacute;n a ejecutar y r&amp;aacute;pidamente volver&amp;aacute;n a bloquearse en espera de E/S. Si el proceso &lt;i&gt;CPU-bound&lt;/i&gt; se encuentra bloqueado, entonces el procesador estar&amp;aacute; ocioso. Por lo tanto, &lt;i&gt;FCFS&lt;/i&gt; puede ocasionar un uso indeficiente tanto del procesador como de los dispositivos de E/S.&lt;/font&gt;&lt;br&gt;&lt;font size=&quot;3&quot;&gt; &lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;font size=&quot;3&quot;&gt;  &lt;table align=&quot;bottom&quot; cellpadding=&quot;3&quot; class=&quot;wp-border-all&quot; width=&quot;100%&quot;&gt;  &lt;tbody&gt;  &lt;tr&gt;  &lt;td bgcolor=&quot;#f0f0ff&quot; width=&quot;14%&quot;&gt;  &lt;b&gt;Proceso&lt;br&gt;&lt;/b&gt;&lt;/td&gt;  &lt;td bgcolor=&quot;#f0f0ff&quot; width=&quot;14%&quot;&gt;  &lt;b&gt;Tiempo de Llegada&lt;br&gt;&lt;/b&gt;&lt;/td&gt;  &lt;td bgcolor=&quot;#f0f0ff&quot; width=&quot;14%&quot;&gt;  &lt;b&gt;Tiempo de Servicio&lt;br&gt;&lt;/b&gt;&lt;/td&gt;  &lt;td bgcolor=&quot;#f0f0ff&quot; width=&quot;14%&quot;&gt;  &lt;b&gt;Tiempo de Comienzo&lt;br&gt;&lt;/b&gt;&lt;/td&gt;  &lt;td bgcolor=&quot;#f0f0ff&quot; width=&quot;14%&quot;&gt;  &lt;b&gt;Tiempo de Finalizaci&amp;oacute;n&lt;br&gt;&lt;/b&gt;&lt;/td&gt;  &lt;td bgcolor=&quot;#f0f0ff&quot; width=&quot;14%&quot;&gt;  &lt;b&gt;Turnaround&lt;br&gt;&lt;/b&gt;&lt;/td&gt;  &lt;td bgcolor=&quot;#f0f0ff&quot; width=&quot;14%&quot;&gt;  &lt;b&gt;Tiempo de Espera&lt;br&gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;14%&quot;&gt;&lt;br&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  0&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  1&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  0&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  1&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  1&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  0&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;14%&quot;&gt;&lt;br&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  1&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  100&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  1&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  101&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  100&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  0&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;14%&quot;&gt;&lt;br&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  2&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  1&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  101&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  102&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  100&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  101-2=99&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td width=&quot;14%&quot;&gt;&lt;br&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  3&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  100&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  102&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  202&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  199&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  102-3=99&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td bgcolor=&quot;#f0f0ff&quot; width=&quot;14%&quot;&gt;  &lt;b&gt;Promedio&lt;br&gt;&lt;/b&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;&lt;br&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;&lt;br&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;&lt;br&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;&lt;br&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  100&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  49.50&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  &lt;font face=&quot;Times New Roman&quot;&gt;&lt;b&gt;&lt;font size=&quot;6&quot;&gt;&lt;u&gt;Planificaci&amp;oacute;n en SJF&lt;/u&gt;&lt;/font&gt;&lt;/b&gt;&lt;/font&gt;&lt;br&gt; &lt;/div&gt;  &lt;div align=&quot;center&quot;&gt;  &lt;/div&gt;  &lt;div align=&quot;center&quot;&gt;  &lt;font face=&quot;Times New Roman&quot;&gt;&lt;/font&gt;&lt;/div&gt;  &lt;font size=&quot;4&quot;&gt;El algoritmo &amp;ldquo;primero el trabajo m&amp;aacute;s corto&amp;rdquo;&lt;i&gt; (shortest &amp;ndash; job - first). &lt;/i&gt;Establece para la planificaci&amp;oacute;n una relaci&amp;oacute;n entre proceso y r&amp;aacute;faga de la CPU. Es decir, al liberarse la cpu ingresar&amp;aacute; el proceso con la menor r&amp;aacute;faga de tiempo, el m&amp;aacute;s peque&amp;ntilde;o primero, y si existiera m&amp;aacute;s de un proceso con igual valor, pues se aplicar&amp;iacute;a dentro de este el algoritmo anterior (FCFS).&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;font size=&quot;4&quot;&gt;Este algoritmo presenta una gran ventaja, pues el tiempo de espera ser&amp;aacute; mucho menor, pues mientras los procesos de tiempo inferior terminan y ocupan tiempo en operaciones de E/S, el cpu se ocupa de resolver el proceso con mayor tiempo, un algoritmo muy &amp;oacute;ptimo.&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Arial&quot; size=&quot;4&quot;&gt; &lt;/font&gt;&lt;br&gt;&lt;font size=&quot;4&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;El problema est&amp;aacute; en conocer la duraci&amp;oacute;n del pr&amp;oacute;ximo requerimiento de CPU para cada proceso. pero podemos predecirlos usando la informaci&amp;oacute;n de los ciclos anteriores ejecutados.&lt;/font&gt;&lt;/font&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;table align=&quot;bottom&quot; cellpadding=&quot;3&quot; class=&quot;wp-border-all&quot; width=&quot;100%&quot;&gt;  &lt;tbody&gt;  &lt;tr&gt;  &lt;td class=&quot; wp-borderTop-solid2px wp-borderLeft-solid2px wp-borderRight-solid2px wp-borderBottom-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  Proceso&lt;/div&gt;&lt;/td&gt;  &lt;td class=&quot; wp-borderTop-solid2px wp-borderLeft-solid2px wp-borderRight-solid2px wp-borderBottom-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  Tiempo de llegada&lt;/div&gt;&lt;/td&gt;  &lt;td class=&quot; wp-borderTop-solid2px wp-borderLeft-solid2px wp-borderRight-solid2px wp-borderBottom-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  Tiemppo de Servicio&lt;/div&gt;&lt;/td&gt;  &lt;td class=&quot; wp-borderTop-solid2px wp-borderLeft-solid2px wp-borderRight-solid2px wp-borderBottom-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  Tiempo de Comienzo&lt;/div&gt;&lt;/td&gt;  &lt;td class=&quot; wp-borderTop-solid2px wp-borderLeft-solid2px wp-borderRight-solid2px wp-borderBottom-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  Tiempo de Finalizaci&amp;oacute;n&lt;/div&gt;&lt;/td&gt;  &lt;td class=&quot; wp-borderTop-solid2px wp-borderLeft-solid2px wp-borderRight-solid2px wp-borderBottom-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  Turnaround&lt;/div&gt;&lt;/td&gt;  &lt;td class=&quot; wp-borderTop-solid2px wp-borderLeft-solid2px wp-borderRight-solid2px wp-borderBottom-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  Tiempo de Espera&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td class=&quot; wp-borderTop-solid2px wp-borderLeft-solid2px wp-borderRight-solid2px wp-borderBottom-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  A&lt;/div&gt;&lt;/td&gt;  &lt;td class=&quot; wp-borderTop-solid2px wp-borderLeft-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  0&lt;/div&gt;&lt;/td&gt;  &lt;td class=&quot; wp-borderTop-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  8&lt;/div&gt;&lt;/td&gt;  &lt;td class=&quot; wp-borderTop-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  0&lt;/div&gt;&lt;/td&gt;  &lt;td class=&quot; wp-borderTop-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  8&lt;/div&gt;&lt;/td&gt;  &lt;td class=&quot; wp-borderTop-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  8&lt;/div&gt;&lt;/td&gt;  &lt;td class=&quot; wp-borderTop-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  0&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td class=&quot; wp-borderTop-solid2px wp-borderLeft-solid2px wp-borderRight-solid2px wp-borderBottom-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  B&lt;/div&gt;&lt;/td&gt;  &lt;td class=&quot; wp-borderLeft-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  1&lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  4&lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  8&lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  12&lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  12-1=11&lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  8-1=7&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td class=&quot; wp-borderTop-solid2px wp-borderLeft-solid2px wp-borderRight-solid2px wp-borderBottom-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  C&lt;/div&gt;&lt;/td&gt;  &lt;td class=&quot; wp-borderLeft-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  2&lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  9&lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  17&lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  26&lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  26-2=24&lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  17-2=15&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td class=&quot; wp-borderTop-solid2px wp-borderLeft-solid2px wp-borderRight-solid2px wp-borderBottom-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  D&lt;/div&gt;&lt;/td&gt;  &lt;td class=&quot; wp-borderLeft-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  3&lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  5&lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  12&lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  1&lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  17-3=14&lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  12-3=9&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;  &lt;td class=&quot; wp-borderTop-solid2px wp-borderLeft-solid2px wp-borderRight-solid2px wp-borderBottom-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  Promedio&lt;/div&gt;&lt;/td&gt;  &lt;td class=&quot; wp-borderLeft-solid2px&quot; width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  &lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  &lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  &lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  &lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  14.25&lt;/div&gt;&lt;/td&gt;  &lt;td width=&quot;14%&quot;&gt;  &lt;div align=&quot;center&quot;&gt;  10.33&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;&lt;div align=&quot;center&quot;&gt;  &lt;/div&gt;&lt;br&gt;&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>Round Robin</title><link>http://so-wiki.wetpaint.com/page/Round+Robin</link><author>damianblanc</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/Round+Robin</guid><pubDate>Fri, 02 May 2008 10:58:44 CDT</pubDate><description> 			Una manera r&amp;aacute;pida de reducir la penalizaci&amp;oacute;n que los procesos cortos sufren con FCFS es usar expropiaci&amp;oacute;n basada en un reloj.Una interrupci&amp;oacute;n de reloj es generada a intervalos peri&amp;oacute;dicos. Cuando ocurre la interrupci&amp;oacute;n, el proceso en ejecuci&amp;oacute;n es colocado en la cola de procesos listos y el pr&amp;oacute;ximo trabajo es seleccionado basado en el esquema FCFS.Cada proceso tiene asignado un intervalo de tiempo de ejecuci&amp;oacute;n, llamado quantum o cuanto. &lt;br&gt;&lt;br&gt;La principal decisi&amp;oacute;n de dise&amp;ntilde;o que surge con Round Robin es el tama&amp;ntilde;oquantum. Si es muy corto, entonces los procesos se mover&amp;aacute;n a trav&amp;eacute;s del sistema r&amp;aacute;pidamente. Por otro lado, hay un cierto overhead o desperdicio de tiempo envuelto con el manejo de la interrupci&amp;oacute;n de reloj y las funciones de planificaci&amp;oacute;n y despacho. Por lo tanto quantums muy peque&amp;ntilde;os deber&amp;iacute;an evitarse. Una alternativa es usar un quantum de tiempo que sea un poco m&amp;aacute;s grande que el tiempo promedio requerido para una interacci&amp;oacute;n t&amp;iacute;pica.&lt;br&gt;&lt;br&gt;Round Robin es particularmente efectivo para sistemas generales de tiempo compartido. Se implementa con una cola FIFO de procesos. Nuevos procesos son agregados al final de la cola, y toma el proceso que se encuentra en la cabeza de la cola. Actualiza el timer para que interrumpa despu&amp;eacute;s del quantum de tiempo.&lt;br&gt;&lt;br&gt;El desempe&amp;ntilde;o de este algoritmo depender&amp;aacute; del tama&amp;ntilde;o del quantum. Si el quantum es infinito entonces degenera en FCFS. Si el quantum es muy peque&amp;ntilde;o entonces Round Robin es llamado compartici&amp;oacute;n de CPU y en teor&amp;iacute;a pareciera que cada proceso tiene su propio procesador corriendo a 1/n la velocidad del procesador real.&lt;br&gt;&lt;br&gt;Bajo este esquema es importante considerar el efecto del cambio de contexto.&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>Generaciones de SO - Historia</title><link>http://so-wiki.wetpaint.com/page/Generaciones+de+SO+-+Historia</link><author>deny88</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/Generaciones+de+SO+-+Historia</guid><comments>historia Unix</comments><pubDate>Tue, 29 Apr 2008 22:03:01 CDT</pubDate><description>&lt;font size=&quot;2&quot;&gt;Los S. O. han estado relacionados hist&amp;oacute;ricamente con la arquitectura de las computadoras en las cuales se ejecutan, raz&amp;oacute;n por la cual su historia puede analizarse seg&amp;uacute;n las siguientes generaciones y sus principales caracter&amp;iacute;sticas. (&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;dcr10&quot;&gt;H. M. Deitel&lt;/font&gt;)&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;br&gt;&lt;/font&gt;  &lt;blockquote&gt;  &lt;ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Generaci&amp;oacute;n Cero (d&amp;eacute;cada de 1940):&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;  &lt;ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Carencia total de S. O.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Completo acceso al lenguaje de m&amp;aacute;quina.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Primera generaci&amp;oacute;n (1945-1955): bulbos y conexiones:&lt;/font&gt;   &lt;ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Carencia de S. O.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;En los a&amp;ntilde;os cincuenta comienzan como transici&amp;oacute;n entre trabajos, haciendo la misma m&amp;aacute;s simple.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Segunda generaci&amp;oacute;n (1955-1965): transistores y sistemas de procesamiento por lotes (batch):&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;  &lt;ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;En los a&amp;ntilde;os sesenta aparecen los S. O. para sistemas compartidos con:&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;  &lt;ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Multiprogramaci&amp;oacute;n: varios programas de usuarios se encuentran al mismo tiempo en el almacenamiento principal, cambiando el procesador r&amp;aacute;pidamente de un trabajo a otro.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Multiprocesamiento: varios procesadores se utilizan en un mismo sistema para incrementar el poder de procesamiento.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Posteriormente aparece la independencia de dispositivo:&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;  &lt;ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;El programa del usuario especifica las caracter&amp;iacute;sticas de los dispositivos que requieren los archivos.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;El S. O. asigna los dispositivos correspondientes seg&amp;uacute;n los requerimientos y las disponibilidades.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Tercera generaci&amp;oacute;n (1965-1980): circuitos integrados y multiprogramaci&amp;oacute;n:&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;  &lt;ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Difusi&amp;oacute;n de la multiprogramaci&amp;oacute;n:&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;  &lt;ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Partici&amp;oacute;n de la memoria en porciones, con trabajos distintos en cada una de ellas.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Aprovechamiento del tiempo de espera consecuencia de operaciones de e / s, para utilizar la CPU para otros procesos.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Protecci&amp;oacute;n por hardware del contenido de cada partici&amp;oacute;n de memoria.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Aparici&amp;oacute;n de t&amp;eacute;cnicas de spooling:&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;  &lt;ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Simultaneous Peripheral Operation On Line: operaci&amp;oacute;n simult&amp;aacute;nea y en l&amp;iacute;nea de perif&amp;eacute;ricos.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Almacenamiento de trabajos de entrada y de salida en dispositivos transitorios r&amp;aacute;pidos (discos), para disminuir el impacto de los perif&amp;eacute;ricos mas lentos.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Son sistemas de modos m&amp;uacute;ltiples, es decir que deben soportar sistemas de prop&amp;oacute;sitos generales; son grandes y complejos pero muy poderosos.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Interponen una capa de software entre el usuario y el hardware.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Aparecen los lenguajes de control de trabajos, necesarios para especificar el trabajo y los recursos requeridos.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Soportan timesharing (tiempo compartido), variante de la multiprogramaci&amp;oacute;n con usuarios conectados mediante terminales en l&amp;iacute;nea, permitiendo la operaci&amp;oacute;n en modo interactivo o conversacional.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Aparecen los sistemas de tiempo real, que requieren tiempos de respuesta muy exigentes, especialmente para usos industriales o militares.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Se difunden las computadoras de rango medio.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Cuarta generaci&amp;oacute;n (1980-1990): computadoras personales:&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;  &lt;ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Aparici&amp;oacute;n de software amigable con el usuario, destinado a usuarios no profesionales y con una interfase gr&amp;aacute;fica muy desarrollada.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Desarrollo de sistemas operativos de red y sistemas operativos distribuidos.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Sistemas operativos de red:&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;  &lt;ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Los usuarios est&amp;aacute;n conscientes de la existencia de varias computadoras conectadas.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Cada m&amp;aacute;quina ejecuta su propio S. O. local.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Son similares a los S. O. de un solo procesador pero con el agregado de:&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;  &lt;ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Controlador de interfaz de la red y su software de bajo nivel.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Software para conexi&amp;oacute;n y acceso a archivos remotos, etc.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Sistemas operativos distribuidos:&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;  &lt;ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Aparece ante los usuarios como un S. O. de un solo procesador, a&amp;uacute;n cuando de soporte a varios procesadores.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Los usuarios no son conscientes del lugar donde se ejecutan sus programas o donde se encuentran sus archivos, ya que lo debe administrar el S. O. autom&amp;aacute;ticamente.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Deben permitir que un programa se ejecute mediante varios procesadores a la vez, maximizando el paralelismo.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Aparici&amp;oacute;n de emuladores de terminal para el acceso a equipos remotos desde computadoras personales (PC).&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Gran &amp;eacute;nfasis en la seguridad, en especial por el desarrollo de los sistemas de comunicaciones de datos.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;El S. O. crea un ambiente de trabajo seg&amp;uacute;n el concepto de m&amp;aacute;quina virtual, que lo a&amp;iacute;sla del funcionamiento interno de la m&amp;aacute;quina.&lt;/font&gt;   &lt;/li&gt;&lt;li&gt;  &lt;font size=&quot;2&quot;&gt;Proliferaci&amp;oacute;n de sistemas de bases de datos, accesibles mediante redes de comunicaci&amp;oacute;n.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;font size=&quot;2&quot;&gt;  &lt;br&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;dcr10&quot;&gt;Bibliograf&amp;igrave;a: H. M. Deitel. &lt;/font&gt;&lt;font face=&quot;dcti10&quot;&gt;Introducci&amp;oacute;n a los Sistemas Operativos&lt;/font&gt;&lt;font face=&quot;dcr10&quot;&gt;. Addison-Wesley Iberoamericana, M&amp;eacute;xico, 1987.&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;dcr10&quot;&gt;&lt;font size=&quot;3&quot;&gt;UNIX.&lt;br&gt;&lt;br&gt;La historia de UNIX se remonta desde los a&amp;ntilde;os 60. Este sistema operativo estuvo desarrolado originalmente para mejorar las m&amp;aacute;quinas de aquel tiempo. Fue desarrolado por investigadores del MIT (Masachusets Institute of Tecnologi), creando el primer sistema operativo de tiempo compartido, es decir, varios programas ya eran capaces de ejecutarse al mismo tiempo. El primer sistema operativo de este tipo fue el CTSS (Compatible Time Sharing System).&lt;br&gt;&lt;br&gt;El mismo MIT cre&amp;oacute;, despu&amp;eacute;s, el sistema operativo MULTICS, el cual ya pose&amp;iacute;a las caracter&amp;iacute;sticas de multifunci&amp;oacute;n y multiusuario. Este sistema operativo poseia:&lt;br&gt;&lt;br&gt;-Sistema de ficheros arborescente.&lt;br&gt;-Interprete de comandos (Shell).&lt;br&gt;&lt;br&gt;Hacia 1969, Ken Thompon trabaj&amp;oacute; en un programa para simular la posici&amp;oacute;n de los planetas del sistema solar y encarg&amp;oacute; un programa para poder pasar un programa de una m&amp;aacute;quina &amp;quot;grande&amp;quot; a una &amp;quot;peque&amp;ntilde;a&amp;quot; (la DEC PDP-7). Este trabajo fue encargado a Denis Richie (inventor del leguage C). Esta migraci&amp;oacute;n fue realizada en lenguage ensamblador.&lt;br&gt;&lt;br&gt;En los laboratorios Bell Labs, tambi&amp;eacute;n trabaj&amp;oacute; Brian W. Kenigham el cual se uni&amp;oacute; a los otros dos investigadores mencionados anteriormente para crear en 1971 un lenguage basado en el sistema operativo MULTICS, pero este lenguage se construy&amp;oacute; m&amp;aacute;s peque&amp;ntilde;o y m&amp;aacute;s potente que el anterior. As&amp;iacute; naci&amp;oacute; UNIX, el cual fue programado integramente en lenguaje C, siendo un sistema operativo de alto nivel. Por otra parte, este sistema operativo se puso a disposici&amp;oacute;n de la comunidad universitaria que fue mejorando poco a poco UNIX hasta que lleg&amp;oacute; a la universidad de Berkeley. A partir de ese momento UNIX se dividi&amp;oacute; en varias ramas:&lt;br&gt;&lt;br&gt;-AT &amp;amp; T (Bell Labs).&lt;br&gt;-BSD (Berkely Software Develoment) en 1977.&lt;br&gt;-UNIX System V en 1983.&lt;br&gt;&lt;br&gt;Con la versi&amp;oacute;n UNIX System V, comenz&amp;oacute; la comercializaci&amp;oacute;n del sistema operativo modific&amp;aacute;ndose este para que tuviese mayor portabilidad.&lt;br&gt;&lt;br&gt;En 1984, Sun Microsystems le a&amp;ntilde;adi&amp;oacute; el paquete RPC (Remote Procedure Call), que fue el primer sistema de comunicaci&amp;oacute;n entre ordenadores. Po r esas fechas, tambi&amp;eacute;n fue incorpoprado el paquete NFS (Netware File System).&lt;br&gt;&lt;br&gt;En la actualidad, existen las siguientes versiones de UNIX:&lt;br&gt;&lt;br&gt;- HP-UX (Hewlett-Packard).&lt;br&gt;-ULTIX (DEC).&lt;br&gt;-AIX (IBM).&lt;br&gt;-SINIX (Siemens).&lt;br&gt;-SENIX (Microsoft).&lt;br&gt;-SUNOX (Sun).&lt;br&gt;-SOLARIS (Sun).&lt;br&gt;&lt;br&gt;CARACTER&amp;Iacute;STICAS DE UNIX.&lt;br&gt;&lt;br&gt;-Sistema operativo multiusuario.&lt;br&gt;-Multitarea.&lt;br&gt;-Esquema gerarquico de privilegio de ejecuci&amp;oacute;n.&lt;br&gt;-Sistema modular (en capas).&lt;br&gt;-Sistema de protecci&amp;oacute;n de memoria.&lt;br&gt;-Sistema en tiempo compartido.&lt;br&gt;-Tiene numerosas sells.&lt;br&gt;-Unix posee dos interfaces: Sell y API&lt;br&gt;-En UNIX los comandos de la Shell son cr&amp;iacute;pticos.&lt;br&gt;-Al ser UNIX un sistema operativo de tiempo compartido no lo es de tiempo &lt;br&gt;real.&lt;br&gt;&lt;br&gt;CARACTER&amp;Iacute;STICAS DE GNU / LINUX.&lt;br&gt;&lt;br&gt;Linux es un sistema operativo creado por Linus Torvalds a comienzos de los a&amp;ntilde;os 90. Torvals era, en aquel tiempo, alumno de Andrew Tannembanm (creador del sistema operativo MINIX). A partir de MINIX, Torvals cre&amp;oacute; en 1991 el n&amp;uacute;cleo de Linux. &lt;br&gt;&lt;br&gt;Antes, en 1983, Richard Stallman fund&amp;oacute; (junto a un grupo de colaboradores a los cuales no les gustaba que el software estuviese ligado a una patente), el FSF (Free Software Fundation) para crear una versi&amp;oacute;n de UNIX para usuarios de Pc&amp;#39;s, sin embargo, no consiguieron desarrollar el n&amp;uacute;cleo de UNIX. Cuando en 1991, Torwals dispuso de un n&amp;uacute;cleo UNIX gr&amp;aacute;cias a Linux, Stallman le propuso que se uniese al proyecto FSF. As&amp;iacute; naci&amp;oacute; GNU / Linux.&lt;br&gt;&lt;br&gt;Gracias a que Linus Torwals &amp;quot;colg&amp;oacute;&amp;quot; el c&amp;oacute;digo fuente de Linux en internet la comunidad internauta empez&amp;oacute; a mejorarlo, saliendo a la luz las diferentes versiones de Linux que existen hoy en d&amp;iacute;a haciendo que Linux sea una de las mejores opciones que existen en la actualidad a otros sistemas operativos como Windows.&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>Planificación de Procesos</title><link>http://so-wiki.wetpaint.com/page/Planificaci%C3%B3n+de+Procesos</link><author>alejandroml</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/Planificaci%C3%B3n+de+Procesos</guid><pubDate>Mon, 28 Apr 2008 13:56:43 CDT</pubDate><description> 			Que tiempo de procesador es asignado a cada proceso en un sistema multiprogramado?&lt;br&gt;Lo determina el &lt;b&gt;PLANIFICADOR &lt;/b&gt;a trav&amp;egrave;s del uso de algoritmos espec&amp;igrave;ficos.&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;a href=&quot;http://so-wiki.wetpaint.com/page/Objetivos+y+niveles&quot; target=&quot;_self&quot;&gt;Objetivos de la planificaci&amp;oacute;n&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;b&gt;&lt;a href=&quot;http://so-wiki.wetpaint.com/page/Objetivos+y+niveles&quot; target=&quot;_self&quot;&gt;Niveles de planificaci&amp;oacute;n (largo, mediano y corto plazo)&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;&lt;font color=&quot;#ff0000&quot;&gt;&lt;b&gt;Tipo de algoritmos&lt;/b&gt;:&lt;/font&gt;&lt;/i&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;a href=&quot;http://so-wiki.wetpaint.com/page/Apropiativos+y+No+Apropiativos&quot; target=&quot;_self&quot;&gt;Apropiativos y No Apropiativos&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;a href=&quot;http://so-wiki.wetpaint.com/page/FCFS+y+SJF&quot; target=&quot;_self&quot;&gt;FCFS (first come first served)&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;b&gt;&lt;a href=&quot;http://so-wiki.wetpaint.com/page/FCFS+y+SJF&quot; target=&quot;_self&quot;&gt;SJF&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;a href=&quot;http://so-wiki.wetpaint.com/page/Prioridades&quot; target=&quot;_self&quot;&gt;Prioridades&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;a href=&quot;http://so-wiki.wetpaint.com/page/Round+Robin&quot; target=&quot;_self&quot;&gt;Circular o RR (Round Robin)&lt;/a&gt;&lt;br&gt;&lt;/b&gt;&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>Objetivos y niveles</title><link>http://so-wiki.wetpaint.com/page/Objetivos+y+niveles</link><author>jcarnero</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/Objetivos+y+niveles</guid><pubDate>Wed, 23 Apr 2008 20:59:28 CDT</pubDate><description> 			&lt;font face=&quot;Helvetica&quot; size=&quot;4&quot;&gt;Necesidad de la planificaci&amp;oacute;n&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt; En &amp;eacute;pocas pasadas de los sistemas de procesamiento por lotes (batch), la idea que exist&amp;iacute;a sobre la planificaci&amp;oacute;n era bastante simple y consist&amp;iacute;a en aplicar un algoritmo secuencial. Esto produc&amp;iacute;a un desaprovechamiento muy importante de las capacidades del procesador ya que la ejecuci&amp;oacute;n de un proceso alternaba entre dos estados de ejecuci&amp;oacute;n: utilizando la CPU o esperando a que se realice una operaci&amp;oacute;n de E/S, por lo que mientras se trabajaba con un dispositivo, el procesador se encontraba inactivo.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt; M&amp;aacute;s tarde, surgieron los sistemas multiprogramados, en donde se intent&amp;oacute; maximizar la utilizaci&amp;oacute;n de la CPU. Esto se pudo conseguir manteniendo varios procesos en la memoria, y cuando un proceso ten&amp;iacute;a que esperar, el sistema operativo le quitaba la CPU y se lo asignaba a otro proceso que se encontraba en dicha memoria. Por lo tanto, la tarea de la planificaci&amp;oacute;n cobr&amp;oacute; gran importancia por su incidencia directa sobre el rendimiento del sistema, ya que el sistema operativo deb&amp;iacute;a decidir qu&amp;eacute; proceso esperar&amp;iacute;a y qu&amp;eacute; proceso continuar&amp;iacute;a.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;4&quot;&gt;Definici&amp;oacute;n&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt; Podemos definir a la planificaci&amp;oacute;n como un conjunto de pol&amp;iacute;ticas y mecanismos incorporados al sistema operativo, a trav&amp;eacute;s de un m&amp;oacute;dulo denominado &lt;b&gt;planificador&lt;/b&gt;, que debe decidir cu&amp;aacute;l de los procesos en condiciones de ser ejecutado conviene ser despachado primero y qu&amp;eacute; orden de ejecuci&amp;oacute;n debe seguirse. Esto debe realizarse sin perder de vista su principal objetivo que consiste en el m&amp;aacute;ximo aprovechamiento del sistema, lo que implica proveer un buen servicio a los procesos existentes en un momento dado. Un&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;&amp;quot;buen&amp;quot; servicio podr&amp;iacute;a traducirse en tiempo de respuesta aceptable, productividad y eficiencia del procesador.&lt;br&gt;&lt;br&gt;&lt;font size=&quot;4&quot;&gt;Objetivos de la Planificaci&amp;oacute;n&lt;/font&gt;&lt;br&gt;&lt;/font&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt; Los objetivos de la planificaci&amp;oacute;n del procesador son los siguientes:&lt;br&gt; &lt;/font&gt;&lt;ul&gt;&lt;li&gt; &lt;u&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt;&lt;i&gt;Ser justa:&lt;/i&gt;&lt;/font&gt;&lt;/u&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt; Todos los procesos son tratados de igual manera.&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt; Ning&amp;uacute;n proceso es postergado indefinidamente.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt; &lt;i&gt;&lt;u&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt;Maximizar la capacidad de ejecuci&amp;oacute;n:&lt;/font&gt;&lt;/u&gt;&lt;/i&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt; Maximizar el n&amp;uacute;mero de procesos servidos por unidad de tiempo.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt; &lt;u&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt;&lt;i&gt;Maximizar el n&amp;uacute;mero de usuarios interactivos que reciban unos tiempos de respuesta aceptables:&lt;/i&gt;&lt;/font&gt;&lt;/u&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt; En un m&amp;aacute;ximo de unos segundos.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt; &lt;u&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt;&lt;i&gt;Ser predecible:&lt;/i&gt;&lt;/font&gt;&lt;/u&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt; Un trabajo dado debe ejecutarse aproximadamente en la misma cantidad de tiempo independientemente de la carga del sistema.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt; &lt;u&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt;&lt;i&gt;Minimizar la sobrecarga:&lt;/i&gt;&lt;/font&gt;&lt;/u&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt; No suele considerarse un objetivo muy importante.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt; &lt;u&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt;&lt;i&gt;Equilibrar el uso de recursos:&lt;/i&gt;&lt;/font&gt;&lt;/u&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt; Favorecer a los procesos que utilizar&amp;aacute;n recursos infrautilizados.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt; &lt;u&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt;&lt;i&gt;Equilibrar respuesta y utilizaci&amp;oacute;n:&lt;/i&gt;&lt;/font&gt;&lt;/u&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt; La mejor manera de garantizar buenos tiempos de respuesta es disponer de los recursos suficientes cuando se necesitan, pero la utilizaci&amp;oacute;n total de recursos podr&amp;aacute; ser pobre.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt; &lt;u&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt;&lt;i&gt;Evitar la postergaci&amp;oacute;n indefinida:&lt;/i&gt;&lt;/font&gt;&lt;/u&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt; Se utiliza la estrategia del &amp;ldquo;envejecimiento&amp;rdquo; .&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt; Mientras un proceso espera por un recurso su prioridad debe aumentar, as&amp;iacute; la prioridad llegar&amp;aacute; a ser tan alta que el proceso recibir&amp;aacute; el recurso esperado.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt; &lt;u&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt;&lt;i&gt;Asegurar la prioridad:&lt;/i&gt;&lt;/font&gt;&lt;/u&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt; Los mecanismos de planificaci&amp;oacute;n deben favorecer a los procesos con prioridades m&amp;aacute;s altas.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt; &lt;u&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt;&lt;i&gt;Dar preferencia a los procesos que mantienen recursos claves:&lt;/i&gt;&lt;/font&gt;&lt;/u&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt; Un proceso de baja prioridad podr&amp;iacute;a mantener un recurso clave, que puede ser requerido por un proceso de m&amp;aacute;s alta prioridad.&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt; Si el recurso es no apropiativo, el mecanismo de planificaci&amp;oacute;n debe otorgar al proceso un tratamiento mejor del que le corresponder&amp;iacute;a normalmente, puesto que es necesario liberar r&amp;aacute;pidamente el recurso clave.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt; &lt;u&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt;&lt;i&gt;Dar mejor tratamiento a los procesos que muestren un &amp;ldquo;comportamiento deseable&amp;rdquo;:&lt;/i&gt;&lt;/font&gt;&lt;/u&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt; Un ejemplo de comportamiento deseable es una tasa baja de paginaci&amp;oacute;n.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt; &lt;u&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt;&lt;i&gt;Degradarse suavemente con cargas pesadas:&lt;/i&gt;&lt;/font&gt;&lt;/u&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt; Un mecanismo de planificaci&amp;oacute;n no debe colapsar con el peso de una exigente carga del sistema.&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt; Se debe evitar una carga excesiva mediante las siguientes acciones:&lt;/font&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;3&quot;&gt; No permitiendo que se creen nuevos procesos cuando la carga ya es pesada.&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; Dando servicio a la carga m&amp;aacute;s pesada al proporcionar un nivel moderadamente reducido de servicio a todos los procesos.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;  &lt;br&gt;&lt;font size=&quot;4&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;4&quot;&gt;Niveles de planificaci&amp;oacute;n&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt; La planificaci&amp;oacute;n se hace en cuatro instantes de tiempo. De estas cuatro, una no la realiza el sistema operativo, sino q&lt;/font&gt;&lt;font face=&quot;Helvetica&quot;&gt; &lt;/font&gt;&lt;font face=&quot;Helvetica&quot;&gt;ue es externa al procesamiento, pero tiene una influencia enorme sobre la definici&amp;oacute;n del procesamiento, dado que el sistema operativo queda determinado por las decisiones que se toman en este nivel. A esta instancia le daremos el nombre de &amp;quot;extra largo plazo&amp;quot; por ser en la escala de tiempo del ser humano.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt; En la administraci&amp;oacute;n del procesador podemos distinguir tres niveles de planificaci&amp;oacute;n de acuerdo a la escala de tiempo en que se realiza la misma. El &lt;/font&gt;&lt;font color=&quot;#ff0000&quot; face=&quot;Helvetica&quot;&gt;&lt;i&gt;largo plazo&lt;/i&gt;&lt;/font&gt;&lt;font face=&quot;Helvetica&quot;&gt; en segundos, &lt;/font&gt;&lt;font color=&quot;#ff0000&quot; face=&quot;Helvetica&quot;&gt;&lt;i&gt;mediano plazo&lt;/i&gt;&lt;/font&gt;&lt;font face=&quot;Helvetica&quot;&gt; en milisegundos y el &lt;/font&gt;&lt;font color=&quot;#ff0000&quot; face=&quot;Helvetica&quot;&gt;&lt;i&gt;corto plazo&lt;/i&gt;&lt;/font&gt;&lt;font face=&quot;Helvetica&quot;&gt; en nanosegundos o&lt;br&gt;microsegundos.&lt;/font&gt;&lt;div align=&quot;center&quot;&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;4&quot;&gt;Planificaci&amp;oacute;n a largo plazo&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt; El planificador a &lt;b&gt;largo plazo, scheduler o planificador de trabajos&lt;/b&gt;, es un administrador que se encarga de organizar la ejecuci&amp;oacute;n con un adecuado planeamiento de recursos para que el trabajo se ejecute ordenadamente y eficientemente seg&amp;uacute;n la modalidad de procesamiento.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt; El sheduler se ejecuta con poca frecuencia, s&amp;oacute;lo cuando se necesita crear un nuevo proceso en el sistema, cuando termina un proceso, o ingresa un usuario en el sistema, por lo que tiene prioridad m&amp;aacute;xima para ejecutar. Es el responsable de controlar el nivel de multiprogramaci&amp;oacute;n del sistema y el balance de carga del sistema. Esto &amp;uacute;ltimo implica la selecci&amp;oacute;n cuidadosa de trabajos para mantener un adecuado balance de carga de procesos que hacen uso de E/S intensivo (I/O bound) o uso de CPU intensivo (CPU bound).&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt; Procedamos a describir un poco su accionar ante un nuevo trabajo. Un software del sistema operativo, llamado monitor, recibe al nuevo trabajo y lo carga en la memoria central. Despu&amp;eacute;s de haber sido recibido el trabajo, el sheduler se encarga de preparar y crear procesos con sus respectivos bloques de control del proceso (BCP) para poder ejecutarlos. Si los recursos que solicita estuvieran disponibles, se le asignan y se lo ingresa a la cola de listos para ejecutar.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;  Existen diferentes filosof&amp;iacute;as en el procesamiento de un trabajo. Todas ellas responden a ciertos criterios de planificaci&amp;oacute;n que se vuelcan en los respectivos algoritmos de planificaci&amp;oacute;n. Esto se conoce como la modalidad de ejecuci&amp;oacute;n o procesamiento. Los m&amp;aacute;s importantes son:&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;     &lt;i&gt;&lt;u&gt;Batch:&lt;/u&gt; &lt;/i&gt;Apunta estrictamente al exhaustivo uso del procesador en detrimento del usuario. Sus principales caracter&amp;iacute;siticas son: &lt;/font&gt;&lt;br&gt;  &lt;blockquote&gt;&lt;ol&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt;  La CPU es monoprogramada.&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; No existe diferencia entre trabajo y proceso.&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; El scheduler elige el trabajo, crea el proceso y lo ejecuta.&lt;br&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; Pr&amp;aacute;cticamente hay un solo nivel de planificaci&amp;oacute;n. &lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/blockquote&gt;    &lt;font face=&quot;Helvetica&quot;&gt; &lt;/font&gt; &lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;   &lt;i&gt;&lt;u&gt;Interactivo:&lt;/u&gt;&lt;/i&gt; Apunta al servicio del usuario en detrimento de la performance del procesador. Es multiprogramado pues se multiplexa la CPU     entre varios programas.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;  &lt;i&gt; &lt;u&gt;Multiprocesado:&lt;/u&gt;&lt;/i&gt; Es un ambiente en el que existen varios procesadores para servir a los procesos en ejecuci&amp;oacute;n.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;  &lt;i&gt; &lt;u&gt;Procesamiento distribuido o en red:&lt;/u&gt;&lt;/i&gt; Es una forma de procesamiento en que se le presenta al usuario una m&amp;aacute;quina virtual y en que el        procesamiento se realiza en distintas m&amp;aacute;quinas diseminadas geogr&amp;aacute;ficamente y conectadas por una red.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;En conclusi&amp;oacute;n y siendo un poco m&amp;aacute;s precisos, podr&amp;iacute;amos decir que las tareas que involucra este nivel de planificaci&amp;oacute;n son:&lt;/font&gt;&lt;br&gt;  &lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; Mantener un registro de estado de todos los trabajos en el sistema (JBC).&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; Establecer una estrategia para el pasaje entre las colas de suspendidos y la de listos.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; Asignar recursos (memoria central, dispositivos, procesadores, etc.) a cada trabajo.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; Pedir (recuperar) los recursos cuando los trabajos se han completado.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; Detectar y prevenir los conflictos de abrazo mortal o deadlock.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; Dar entrada a nuevos trabajos.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; Asignar prioridades a los procesos. Esto genera el orden de ejecuci&amp;oacute;n y viene determinado b&amp;aacute;sicamente por el orden de procesos en la cola de listos, o sea, el orden en el que el dispatcher los seleccionar&amp;aacute; de esta cola para ponerlos en ejecuci&amp;oacute;n (generalmente el primero de la cola).&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; Implementar las pol&amp;iacute;ticas de asignaci&amp;oacute;n de recursos, raz&amp;oacute;n por la que se le otorga la m&amp;aacute;xima prioridad en el sistema para que el dispatcher lo seleccione primero si est&amp;aacute; libre el procesador y se ejecuta cuando:&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;                                1. Se pide o libera un recurso.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;                                2. Cuando termina un proceso.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;                                3. Cuando llega un nuevo trabajo al pool de procesos   &lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;                               4. Cuando llega un nuevo usuario al sistema.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;4&quot;&gt;Planificaci&amp;oacute;n a mediano plazo&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt; Es el que decide sacar de memoria central y llevar a disco (&lt;/font&gt;&lt;font color=&quot;#ff0000&quot; face=&quot;Helvetica&quot;&gt;swap&lt;/font&gt;&lt;font face=&quot;Helvetica&quot;&gt;-out) a aquellos procesos inactivos o a los activos cuyos estados sean bloqueado moment&amp;aacute;neamente o temporalmente o los suspendidos y luego, cuando desaparezcan las causas de sus bloqueos, traerlos nuevamente a memoria (swap-in) para continuar su ejecuci&amp;oacute;n. Este tipo de planificador se encuentra solo en algunos sistemas especialmente en los de tiempo compartido, ya que permite mantener un equilibrio entre los procesos activos e inactivos.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt; Este planificador puede ser invocado cuando quede espacio libre de memoria por efecto de la terminaci&amp;oacute;n de un proceso o cuando el suministro de procesos caiga por debajo de un l&amp;iacute;mite especificado.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;  En algunos casos suplanta al planificador de largo plazo y otros lo complementa: Por ejemplo en sistemas de tiempo compartido, el long-term scheduler puede admitir m&amp;aacute;s usuarios de los que pueden caber realmente en memoria. Sin embargo, como los trabajos de estos sistemas est&amp;aacute;n caracterizados por ciclos de actividad y ciclos de ociosidad, mientras el usuario piensa algunos procesos pueden ser almacenados y al recibir respuesta vueltos a poner en la cola de listos.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt; Este tipo de planificaci&amp;oacute;n solo es usado en sistemas con mucha carga de procesos, ya que el procedimiento de swapping produce mucho overhead, haciendo bajar considerablemente el desempe&amp;ntilde;o general.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot; size=&quot;4&quot;&gt;Planificaci&amp;oacute;n a corto plazo&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;   Tambi&amp;eacute;n llamado &lt;b&gt;short-term scheduler o low scheduler&lt;/b&gt;, es el responsable de decidir qui&amp;eacute;n, cu&amp;aacute;ndo, c&amp;oacute;mo y por cu&amp;aacute;nto tiempo recibe el procesador un proceso que est&amp;aacute; preparado (ready queue) para ejecutar (los recursos a esta altura ya deben estar todos disponibles para este trabajo). Adem&amp;aacute;s en sistemas operativos con esquemas expropiativos (se quita el recurso procesador al proceso) verifica las interrupciones.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt; El planificador a corto plazo es invocado cada vez que un suceso (interno o externo) hace que se modifique el estado global del sistema. Por ejemplo:&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;    &amp;middot; Tics de reloj (interrupciones basadas en el tiempo).&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;    &amp;middot; Interrupciones y terminaciones de E/S.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;    &amp;middot; La mayor&amp;iacute;a de las llamadas operacionales al sistema operativo (en oposici&amp;oacute;n a las llamadas de consulta).&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;      &amp;middot; El env&amp;iacute;o y recepci&amp;oacute;n de se&amp;ntilde;ales.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;    &amp;middot; La activaci&amp;oacute;n de programas interactivos.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;font face=&quot;Helvetica&quot;&gt; El &lt;i&gt;&lt;b&gt;low scheduler&lt;/b&gt;&lt;/i&gt; debe ser r&amp;aacute;pido y con poca carga para el procesador para que se mantenga el rendimiento, ya que se le debe sumar adem&amp;aacute;s el tiempo que toma el cambio de contexto. El cambio de contexto o context switch consiste en la conmutaci&amp;oacute;n de la CPU entre un proceso y otro y es overhead puro, por lo tanto debe ser lo m&amp;aacute;s r&amp;aacute;pido posible. Algunos valores t&amp;iacute;picos oscilan entre 1 y 100 m seg que se conoce como dispatch latency.&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;font face=&quot;Helvetica&quot;&gt; El &lt;b&gt;&lt;i&gt;context switch&lt;/i&gt;&lt;/b&gt; involucra:&lt;/font&gt;  &lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; Preservar el estado del viejo proceso (guardar en el stack su PCB).&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; Recuperar el estado del nuevo proceso (recuperar su PCB).&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; Bifurcar a la direcci&amp;oacute;n donde hab&amp;iacute;a sido suspendido el nuevo proceso.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>Apropiativos y No Apropiativos</title><link>http://so-wiki.wetpaint.com/page/Apropiativos+y+No+Apropiativos</link><author>jcarnero</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/Apropiativos+y+No+Apropiativos</guid><comments>No está terminado</comments><pubDate>Wed, 23 Apr 2008 20:55:45 CDT</pubDate><description> 			&lt;font&gt; &lt;font face=&quot;Helvetica&quot;&gt; El &lt;b&gt;planificador&lt;/b&gt; es el m&amp;oacute;dulo del sistema operativo que decide qu&amp;eacute; proceso se debe ejecutar, para ello usa un algoritmo de planificaci&amp;oacute;n que debe cumplir con los siguientes objetivos:&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;br&gt; &lt;/font&gt;&lt;ol&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;li&gt;Imparcialidad.&lt;/li&gt;&lt;li&gt;Pol&amp;iacute;tica justa.&lt;/li&gt;&lt;li&gt;Eficiencia: mantener la CPU ocupada en lo posible el mayor tiempo con procesos de usuario.&lt;/li&gt;&lt;li&gt;Minimizar el tiempo de espera de usuarios.&lt;/li&gt;&lt;li&gt;Maximizar el n&amp;uacute;mero de procesos ejecutados. (Rendimiento: trabajos que se procesan por hora).&lt;/li&gt;&lt;li&gt;Tiempo de respuesta excelente (por ejemplo: minimizar el tiempo de respuesta para los usuarios interactivos).&lt;/li&gt;&lt;li&gt;Predecibilidad en la ejecuci&amp;oacute;n.&lt;/li&gt;&lt;li&gt;Equilibrio en el uso de los recursos.&lt;/li&gt;&lt;/font&gt;&lt;/ol&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;br&gt;  Antes de comenzar a describir los respectivos algoritmos de planificaci&amp;oacute;n, es importante conocer dos conceptos relacionados. Uno de ellos es la funci&amp;oacute;n de selecci&amp;oacute;n que determina qu&amp;eacute; proceso, de entre los listos, se elige para ejecutar a continuaci&amp;oacute;n. El otro es el modo de decisi&amp;oacute;n o esquema de planificaci&amp;oacute;n, que especifica los instantes de tiempo en que se aplica la funci&amp;oacute;n de selecci&amp;oacute;n. Hay dos categor&amp;iacute;as generales:&lt;br&gt;&lt;font&gt;&lt;font size=&quot;4&quot;&gt;&lt;br&gt;No Apropiativo&lt;/font&gt; (&lt;/font&gt;Una vez que se le ha otorgado la cpu a un proceso, no le puede ser retirada)&lt;font&gt;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;font&gt;  Tambi&amp;eacute;n conocido como cooperative multitasking. Una vez que el proceso pasa al estado de ejecuci&amp;oacute;n, contin&amp;uacute;a ejecutando hasta que termina, se bloquean en espera de una E/S o al solicitar alg&amp;uacute;n servicio del sistema. Esta pol&amp;iacute;tica de ejecuci&amp;oacute;n para terminaci&amp;oacute;n fue implementada en los primeros sistemas de lote (batch).&lt;/font&gt;&lt;font&gt; &lt;/font&gt;&lt;br&gt;&lt;/font&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;font&gt;&lt;i&gt;&lt;u&gt;&lt;br&gt;&lt;/u&gt;&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;blockquote&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;font&gt;&lt;i&gt;&lt;u&gt;Caracter&amp;iacute;sticas&lt;/u&gt;&lt;/i&gt;&lt;/font&gt;&lt;font&gt; &lt;/font&gt;&lt;br&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;font&gt;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; Significa que los trabajos &amp;ldquo;largos&amp;rdquo; hacen esperar a los trabajos &amp;ldquo;cortos&amp;rdquo;.&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; Logra m&amp;aacute;s equidad en el tratamiento de los procesos.&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; Logra hacer m&amp;aacute;s predecibles los tiempos de respuesta puesto que los trabajos nuevos de prioridad alta no pueden desplazar a los trabajos en espera.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;br&gt;&lt;font&gt;&lt;font size=&quot;4&quot;&gt;Apropiativo&lt;/font&gt; (&lt;/font&gt;Una vez que se le ha otorgado la cpu a un proceso, le puede ser retirada) &lt;font&gt;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;font&gt;   Generalmente conocida como pol&amp;iacute;tica de planificaci&amp;oacute;n por torneo. El proceso que se est&amp;aacute; ejecutando actualmente puede ser interrumpido y pasado al estado de listos por el sistema operativo. La decisi&amp;oacute;n de sustituirlos por otro proceso puede llevarse a cabo cuando llega un nuevo proceso, cuando se produce una interrupci&amp;oacute;n que lleva a un proceso bloqueado al estado listo o peri&amp;oacute;dicamente, en funci&amp;oacute;n de una interrupci&amp;oacute;n del reloj.&lt;/font&gt; &lt;br&gt;&lt;/font&gt;&lt;blockquote&gt;&lt;font face=&quot;Helvetica&quot;&gt;&lt;u&gt;&lt;i&gt;&lt;br&gt;Caracter&amp;iacute;sticas&lt;/i&gt;&lt;/u&gt; &lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; Es &amp;uacute;til cuando los procesos de alta prioridad requieren atenci&amp;oacute;n r&amp;aacute;pida.&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; Es importante para garantizar buenos tiempos de respuesta en sistemas interactivos de tiempo compartido.&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Helvetica&quot;&gt; Tiene su costo en recursos, ya que el intercambio de contexto implica sobrecarga y adem&amp;aacute;s requiere mantener muchos procesos en el almacenamiento principal, en espera de la cpu, lo que tambi&amp;eacute;n implica sobrecarga.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;font&gt;&lt;br&gt;&lt;/font&gt;&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>Prioridades</title><link>http://so-wiki.wetpaint.com/page/Prioridades</link><author>jercoli</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/Prioridades</guid><comments>agregado por &quot;henieto&quot;, pasado a la pág. por estar mal subido.</comments><pubDate>Tue, 22 Apr 2008 15:50:31 CDT</pubDate><description>&lt;font color=&quot;#0000ff&quot; size=&quot;4&quot;&gt;&lt;b&gt;&lt;u&gt;Prioridades est&amp;aacute;ticas:&lt;/u&gt;&lt;/b&gt;&lt;/font&gt;&lt;br&gt;&lt;ul&gt;  &lt;li&gt;  Se asigna una prioridad al proceso para toda su ``vida&amp;#39;&amp;#39;.&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;ul&gt;  &lt;li&gt;  &lt;b&gt;Por ejemplo&lt;/b&gt;, puede reflejar distintos ``status&amp;#39;&amp;#39; de los usuarios.&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;4&quot;&gt;&lt;b&gt;&lt;u&gt;Prioridades din&amp;aacute;micas:&lt;/u&gt;&lt;/b&gt;&lt;/font&gt;&lt;br&gt;&lt;ul&gt;  &lt;li&gt;  La prioridad de un proceso cambia durante su vida.&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;  &lt;li&gt;  El cambio de prioridad puede reflejar informaci&amp;oacute;n nueva que se tiene sobre el comportamiento&lt;/li&gt;&lt;/ul&gt;  de un proceso. &lt;br&gt;&lt;br&gt;&lt;ul&gt;  &lt;li&gt;  &lt;b&gt;Ejemplo:&lt;/b&gt; favorecimiento de procesos con mucha entrada/salida.&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;  &lt;li&gt;  Pueden usarse clases de prioridad, cada clase ordenada mediante una cola. Para gestionar cada&lt;/li&gt;&lt;/ul&gt;  cola, puede usarse round-robin. &lt;br&gt;&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>BCP, Cambios e Interrupciones</title><link>http://so-wiki.wetpaint.com/page/BCP%2C+Cambios+e+Interrupciones</link><author>martinorengia</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/BCP%2C+Cambios+e+Interrupciones</guid><pubDate>Fri, 18 Apr 2008 13:07:32 CDT</pubDate><description>&lt;b&gt;&lt;font face=&quot;Times New Roman&quot; size=&quot;6&quot;&gt;Bloque de control del proceso&lt;/font&gt;&lt;/b&gt; &lt;br&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;El &lt;b&gt;Bloque de control del proceso&lt;/b&gt; &amp;oacute; &lt;b&gt;BCP&lt;/b&gt; o en &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;ingl&amp;eacute;s&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; &lt;b&gt;PCB&lt;/b&gt; (&lt;b&gt;Process Control Block&lt;/b&gt;) es un registro especial donde el &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;sistema operativo&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; agrupa toda la informaci&amp;oacute;n que necesita conocer respecto a un &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;proceso&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; particular. Cada vez que se crea un proceso el sistema operativo crea el BCP correspondiente para que sirva como descripci&amp;oacute;n en tiempo de ejecuci&amp;oacute;n durante toda la vida del proceso.&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Cuando el proceso termina, su BCP es borrado y el registro puede ser utilizado para otros procesos. Un proceso resulta conocido para el &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;sistema operativo&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; y por tanto elegible para competir por los recursos del sistema s&amp;oacute;lo cuando existe un BCP activo asociado a &amp;eacute;l. El bloque de control de proceso es una &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;estructura de datos&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; con campos para registrar los diferentes aspectos de la ejecuci&amp;oacute;n del proceso y de la utilizaci&amp;oacute;n de recursos. La informaci&amp;oacute;n almacenada en un BCP incluye t&amp;iacute;picamente algunos o todos los campos siguientes:&lt;/font&gt; &lt;br&gt;&lt;br&gt;&amp;middot; &lt;font face=&quot;Times New Roman&quot;&gt;Identificador del proceso (&lt;i&gt;Process Identificator&lt;/i&gt; -PID-, de sus siglas en Ingl&amp;eacute;s). &lt;/font&gt;&lt;br&gt;&amp;middot; &lt;font face=&quot;Times New Roman&quot;&gt;Estado del proceso. Por ej. listo, en espera, bloqueado. &lt;/font&gt;&lt;br&gt;&amp;middot; &lt;font face=&quot;Times New Roman&quot;&gt;Contador de Programa: Direcci&amp;oacute;n de la pr&amp;oacute;xima instrucci&amp;oacute;n a ejecutar. &lt;/font&gt;&lt;br&gt;&amp;middot; &lt;font face=&quot;Times New Roman&quot;&gt;Valores de registro de &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;CPU&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;. Se utilizan tambi&amp;eacute;n en el &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;cambio de contexto&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;. &lt;/font&gt;&lt;br&gt;&amp;middot; &lt;font face=&quot;Times New Roman&quot;&gt;Espacio de direcciones de memoria. &lt;/font&gt;&lt;br&gt;&amp;middot; &lt;font face=&quot;Times New Roman&quot;&gt;Prioridad en caso de utilizarse dicho algoritmo para planificaci&amp;oacute;n de CPU. &lt;/font&gt;&lt;br&gt;&amp;middot; &lt;font face=&quot;Times New Roman&quot;&gt;Lista de recursos asignados (incluyendo descriptores de archivos y sockets abiertos). &lt;/font&gt;&lt;br&gt;&amp;middot; &lt;font face=&quot;Times New Roman&quot;&gt;Estad&amp;iacute;sticas del proceso. &lt;/font&gt;&lt;br&gt;&amp;middot; &lt;font face=&quot;Times New Roman&quot;&gt;Datos del propietario (owner). &lt;/font&gt;&lt;br&gt;&amp;middot; &lt;font face=&quot;Times New Roman&quot;&gt;Permisos asignados. &lt;/font&gt;&lt;br&gt;&amp;middot; &lt;font face=&quot;Times New Roman&quot;&gt;Signals pendientes de ser servidos. (Almacenados en un mapa de bits) &lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Esta lista es simplemente indicativa, cada sistema operativo tiene su propio dise&amp;ntilde;o de BCP, con el conjunto de &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;metadatos&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; necesarios para la administraci&amp;oacute;n. Puede medir desde 32 &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;bits&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; a 1024. Su denominaci&amp;oacute;n cambia seg&amp;uacute;n el sistema operativo, por ej. en &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;IBM&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; se designa &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;PSW&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; por palabra de estado de proceso. Difiere significativamente entre los sistemas de &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;procesamiento por lotes&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; (BATCH) y los sistemas interactivos.&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Algunos sistemas de &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;multiprogramaci&amp;oacute;n&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; incluyen informaci&amp;oacute;n de mantenimiento con el prop&amp;oacute;sito de facturar a los usuarios individuales el tiempo de procesador, el almacenamiento, las operaciones de E/S y otras utilizaciones de recursos.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Una vez creado, el BCP se rellena con los atributos definidos como par&amp;aacute;metros que se hallan en la plantilla del proceso o que son especificados como par&amp;aacute;metros de la llamada al sistema operativo crear_proceso. En ese momento el sistema operativo suele asignar valores a otros campos. Por ejemplo, cuando se crea un proceso, los registros e indicadores &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;hardware&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; se fijan a los valores proporcionados por el cargador/enlazador. Cada vez que un proceso queda suspendido, el contenido de los registros del procesador es generalmente guardado en la &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;pila&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;, y el &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;puntero&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; al marco de la pila en cuesti&amp;oacute;n se almacena en el BCP. De este modo los valores de los registros son restaurados cuando el proceso es seleccionado para ejecutarse nuevamente. &lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Listas de procesos&lt;/font&gt;&lt;/i&gt; &lt;br&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;El Sistema Operativo mantiene listas de Bloque de Control de procesos para cada uno de los estados del sistema.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Cada proceso pertenece a una &amp;uacute;nica lista. Posee una lista de procesos prepara dos, una lista de los bloquea dos y en el caso de sistemas multiprocesador es una lista de procesos activos.&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;div&gt;  &lt;/div&gt;&lt;br&gt;&lt;b&gt;&lt;font face=&quot;Times New Roman&quot; size=&quot;6&quot;&gt;Cambio de contexto&lt;/font&gt;&lt;/b&gt; &lt;br&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Un &lt;b&gt;cambio de contexto&lt;/b&gt; consiste en la ejecuci&amp;oacute;n de una &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;rutina&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; perteneciente al n&amp;uacute;cleo del &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;sistema operativo&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;multitarea&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; de una &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;computadora&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;, cuyo prop&amp;oacute;sito es parar la ejecuci&amp;oacute;n de un &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;hilo&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; (o &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;proceso&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;) para dar paso a la ejecuci&amp;oacute;n de otro distinto.&lt;/font&gt;&lt;br&gt;&lt;h2&gt;  &lt;b&gt;&lt;font size=&quot;5&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Motivaci&amp;oacute;n &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/h2&gt;&lt;font face=&quot;Times New Roman&quot;&gt;En principio, una computadora que dispone de un &amp;uacute;nico &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;microprocesador&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; solamente puede ejecutar un &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;programa&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; al mismo tiempo. No es posible ejecutar otro programa hasta que ha finalizado el anterior.&lt;/font&gt;   &lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;No obstante, ser&amp;iacute;a posible &lt;i&gt;simular&lt;/i&gt; la ejecuci&amp;oacute;n simult&amp;aacute;nea de dos o m&amp;aacute;s programas si fuera posible detener un programa en cualquier momento y renaudarlo posteriormente sin p&amp;eacute;rdida de informaci&amp;oacute;n. Los programas alternar&amp;iacute;an su ejecuci&amp;oacute;n durante cortos periodo de tiempo aparentando que se ejecutan todos a la vez. Esto se denomina &lt;b&gt;ejecuci&amp;oacute;n concurrente&lt;/b&gt;.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Adem&amp;aacute;s, durante la ejecuci&amp;oacute;n de un programa existen muchos tiempos muertos donde no es necesario el uso del microprocesador. Se trata de los momentos en los que el programa est&amp;aacute; esperando a que finalice una operaci&amp;oacute;n de &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;entrada/salida&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;, por ejemplo, una lectura desde el &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;disco duro&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;. Estos tiempos muertos podr&amp;iacute;an aprovecharse para ejecutar otro programa.&lt;/font&gt;&lt;br&gt;&lt;h2&gt;  &lt;b&gt;&lt;font color=&quot;#000000&quot; face=&quot;Times New Roman&quot; size=&quot;5&quot;&gt;C&amp;oacute;mo funciona&lt;/font&gt;&lt;/b&gt;&lt;/h2&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Para hacer realidad la ejecuci&amp;oacute;n concurrente en primer lugar es necesario que el programa en ejecuci&amp;oacute;n se detenga voluntariamente. Puesto que esto no va a ocurrir nunca, es imprescindible la intervenci&amp;oacute;n del &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;hardware&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;. Gracias a las &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;interrupciones&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; generadas por el propio ordenador, es posible expulsar el programa en ejecuci&amp;oacute;n para dar paso al sistema operativo.&lt;/font&gt;   &lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Cuando esto ocurre, el sistema operativo ejecuta inmediatamente la rutina de &lt;b&gt;cambio de contexto&lt;/b&gt;. Esta rutina realiza las siguientes operaciones en el orden indicado:&lt;/font&gt; &lt;br&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;1. &lt;b&gt;Salvar el estado del programa que se estaba ejecutando&lt;/b&gt;. El estado, tambi&amp;eacute;n denominado &lt;i&gt;contexto&lt;/i&gt;, consiste en los valores de todos los &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;registros del microprocesador&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;. Se copian en la &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;memoria principal&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;. &lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;2. &lt;b&gt;Seleccionar otro programa para ejecutar&lt;/b&gt;. Entre todos los programas que est&amp;eacute;n preparados para ejecutarse, la rutina selecciona uno de ellos siguiendo alg&amp;uacute;n &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;algoritmo&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; equitativo.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;3. &lt;b&gt;Restaurar el estado del programa seleccionado&lt;/b&gt;. Para ello, se toma el estado previamente copiado en la memoria principal y se vuelca en los registros del microprocesador. &lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;4. &lt;b&gt;Ejecutar el programa seleccionado&lt;/b&gt;. La rutina termina su ejecuci&amp;oacute;n saltando a la instrucci&amp;oacute;n que estaba pendiente de ejecutar en el programa seleccionado. &lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Este ciclo se repite bien cada vez que ocurre un evento de entrada/salida, bien cuando vence un temporizador programado en el hardware. Dicho temporizador hace saltar una interrupci&amp;oacute;n cada 150 milisegundos aproximadamente (seg&amp;uacute;n sistema operativo).&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;font color=&quot;blue&quot; face=&quot;Times New Roman&quot; size=&quot;3&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;Se denomina &lt;i&gt;conmutaci&amp;oacute;n de contexto&lt;/i&gt; al mecanismo mediante el cual el sistema almacena la informaci&amp;oacute;n del proceso que se est&amp;aacute; ejecutando y recupera la informaci&amp;oacute;n del proceso que ejecutar&amp;aacute; enseguida. A continuaci&amp;oacute;n se presenta un esquema explicativo de este mecanismo:&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;div align=&quot;center&quot;&gt;   &lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;div&gt;  &lt;font face=&quot;Times New Roman&quot;&gt;La ejecuci&amp;oacute;n concurrente tambi&amp;eacute;n es aplicable a computadoras &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Multiprocesador&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;. En este caso, se llevan a cabo cambios de contexto en cada microprocesador de manera independiente.&lt;/font&gt; &lt;font face=&quot;Times New Roman&quot;&gt;Un cambio de contexto siempre se ejecuta ante una interrupci&amp;oacute;n ya sea de software o hardware. Un cambio de contexto no necesariamente implica un cambio de proceso. &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Cuando ocurre una interrupci&amp;oacute;n que s&amp;oacute;lo genera un cambio de contexto m&amp;aacute;s no un cambio de proceso, todo lo que se debe hacer es salvar la informaci&amp;oacute;n de estado del procesador cuando se produzca la interrupci&amp;oacute;n y restaurar dicha informaci&amp;oacute;n cuando el control vuelva al programa que estaba en ejecuci&amp;oacute;n. Las funciones de salvar y restaurar suelen llevarse acabo en el hardware.&lt;/font&gt; &lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;b&gt;&lt;font face=&quot;Times New Roman&quot; size=&quot;6&quot;&gt;Cambio de Modo&lt;/font&gt;&lt;/b&gt;   &lt;br&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Las aplicaciones no deben poder usar todas las instrucciones de la CPU. No obstante el SO, tiene que poder utilizar todo el juego de instrucciones del CPU. Por ello, una CPU debe tener (al menos) dos modos de operaci&amp;oacute;n diferentes:&lt;/font&gt; &lt;br&gt;&lt;br&gt;&amp;middot; &lt;font face=&quot;Times New Roman&quot;&gt;Modo usuario: el CPU podr&amp;aacute; ejecutar s&amp;oacute;lo las instrucciones del juego restringido de las aplicaciones. &lt;/font&gt;&lt;br&gt;&amp;middot; &lt;font face=&quot;Times New Roman&quot;&gt;Modo supervisor: la CPU debe poder ejecutar el juego completo de instrucciones. &lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;div&gt;  &lt;/div&gt;&lt;b&gt;&lt;font face=&quot;Times New Roman&quot; size=&quot;6&quot;&gt;Interrupciones y excepciones&lt;/font&gt;&lt;/b&gt;   &lt;br&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;El SO ocupa una posici&amp;oacute;n intermedia entre los programas de aplicaci&amp;oacute;n y el hardware. No se limita a utilizar el hardware a petici&amp;oacute;n de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que se ejecute c&amp;oacute;digo del SO. En tales situaciones el hardware debe poder llamar al sistema, pudiendo deberse estas llamadas a dos condiciones:&lt;/font&gt; &lt;br&gt;&amp;middot; &lt;font face=&quot;Times New Roman&quot;&gt;Alg&amp;uacute;n dispositivo de E/S necesita atenci&amp;oacute;n. &lt;/font&gt;&lt;br&gt;&amp;middot; &lt;font face=&quot;Times New Roman&quot;&gt;Se ha producido una situaci&amp;oacute;n de error al intentar ejecutar una instrucci&amp;oacute;n del programa (normalmente de la aplicaci&amp;oacute;n). &lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;En ambos casos, la acci&amp;oacute;n realizada no est&amp;aacute; ordenada por el programa de aplicaci&amp;oacute;n, es decir, no figura en el programa.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Seg&amp;uacute;n los dos casos anteriores tenemos las &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;interrupciones&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; y la &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;excepciones&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;:&lt;/font&gt; &lt;br&gt;&lt;br&gt;&amp;middot; &lt;font face=&quot;Times New Roman&quot;&gt;Interrupci&amp;oacute;n: se&amp;ntilde;al que env&amp;iacute;a un dispositivo de E/S a la CPU para indicar que la operaci&amp;oacute;n de la que se estaba ocupando, ya ha terminado. &lt;/font&gt;&lt;br&gt;&amp;middot; &lt;font face=&quot;Times New Roman&quot;&gt;Excepci&amp;oacute;n: una situaci&amp;oacute;n de error detectada por la CPU mientras ejecutaba una instrucci&amp;oacute;n, que requiere tratamiento por parte del SO. &lt;/font&gt;&lt;br&gt; &lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Al interrumpirse la ejecuci&amp;oacute;n de un proceso se salva su estado en el BCP, como se puede observar en la siguiente imagen:&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;div align=&quot;center&quot;&gt; &lt;/div&gt;   &lt;br&gt;&lt;br&gt;&lt;h2&gt;  &lt;b&gt;&lt;font color=&quot;#000000&quot; face=&quot;Times New Roman&quot; size=&quot;5&quot;&gt;Tratamiento de las interrupciones&lt;/font&gt;&lt;/b&gt;&lt;/h2&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Una interrupci&amp;oacute;n se trata en todo caso, despu&amp;eacute;s de terminar la ejecuci&amp;oacute;n de la instrucci&amp;oacute;n en curso.&lt;/font&gt;   &lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;El tratamiento depende de cu&amp;aacute;l sea el dispositivo de E/S que ha causado la interrupci&amp;oacute;n, ante la cual debe poder identificar el dispositivo que la ha causado.&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;  &lt;b&gt;&lt;font color=&quot;#000000&quot; face=&quot;Times New Roman&quot; size=&quot;5&quot;&gt;Importancia de las interrupciones&lt;/font&gt;&lt;/b&gt;&lt;/h2&gt;&lt;font face=&quot;Times New Roman&quot;&gt;El mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio de una aplicaci&amp;oacute;n, mientras otra permanece a la espera de que concluya una operaci&amp;oacute;n en un dispositivo de E/S.&lt;/font&gt;   &lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;El hardware se encarga de avisar al SO cuando el dispositivo de E/S ha terminado y el SO puede intervenir entonces, si es conveniente, para hacer que el programa que estaba esperando por el dispositivo, se contin&amp;uacute;e ejecutando.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;En ciertos intervalos de tiempo puede convenir no aceptar se&amp;ntilde;ales de interrupci&amp;oacute;n. Por ello las interrupciones pueden inhibirse por programa (aunque esto no deben poder hacerlo las mismas).&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;  &lt;b&gt;&lt;font color=&quot;#000000&quot; face=&quot;Times New Roman&quot; size=&quot;5&quot;&gt;Excepciones&lt;/font&gt;&lt;/b&gt;&lt;/h2&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Cuando la &lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt;CPU&lt;/font&gt;&lt;font face=&quot;Times New Roman&quot;&gt; intenta ejecutar una instrucci&amp;oacute;n incorrectamente construida, la unidad de control lanza una excepci&amp;oacute;n para permitir al SO ejecutar el tratamiento adecuado. Al contrario que en una interrupci&amp;oacute;n, la instrucci&amp;oacute;n en curso es abortada. Las excepciones al igual que las interrupciones deben estar identificadas.&lt;/font&gt;   &lt;br&gt;&lt;h3&gt;  &lt;b&gt;&lt;font color=&quot;#000000&quot; face=&quot;Times New Roman&quot; size=&quot;4&quot;&gt;Clases de excepciones&lt;/font&gt;&lt;/b&gt;&lt;/h3&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Las instrucciones de un programa pueden estar mal construidas por diversas razones:&lt;/font&gt;   &lt;br&gt;&lt;ul&gt;  &lt;li class=&quot;MsoNormal&quot;&gt;  El c&amp;oacute;digo de operaci&amp;oacute;n puede ser incorrecto.   &lt;/li&gt;&lt;li class=&quot;MsoNormal&quot;&gt;  Se intenta realizar alguna operaci&amp;oacute;n no definida, como dividir por cero.   &lt;/li&gt;&lt;li class=&quot;MsoNormal&quot;&gt;  La instrucci&amp;oacute;n puede no estar permitida en el modo de ejecuci&amp;oacute;n actual.   &lt;/li&gt;&lt;li class=&quot;MsoNormal&quot;&gt;  La direcci&amp;oacute;n de alg&amp;uacute;n operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso. &lt;/li&gt;&lt;/ul&gt;  &lt;h3&gt;  &lt;b&gt;&lt;font color=&quot;#000000&quot; face=&quot;Times New Roman&quot; size=&quot;4&quot;&gt;Importancia de las excepciones&lt;/font&gt;&lt;/b&gt;&lt;/h3&gt;&lt;font face=&quot;Times New Roman&quot;&gt;El mecanismo de tratamiento de las excepciones es esencial para impedir, junto a los modos de ejecuci&amp;oacute;n de la CPU y los mecanismos de protecci&amp;oacute;n de la memoria, que las aplicaciones realicen operaciones que no les est&amp;aacute;n permitidas. En cualquier caso, el tratamiento espec&amp;iacute;fico de una excepci&amp;oacute;n lo realiza el SO.&lt;/font&gt;   &lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Como en el caso de las interrupciones, el hardware se limita a dejar el control al SO, y &amp;eacute;ste es el que trata la situaci&amp;oacute;n como convenga.&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;Es bastante frecuente que el tratamiento de una excepci&amp;oacute;n no retorne al programa que se estaba ejecutando cuando se produjo la excepci&amp;oacute;n, sino que el SO aborte la ejecuci&amp;oacute;n de ese programa. Este factor depende de la pericia del programador para controlar la excepci&amp;oacute;n adecuadamente.&lt;/font&gt;&lt;br&gt;&lt;div&gt;  &lt;/div&gt;&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>Regiones proceso Unix</title><link>http://so-wiki.wetpaint.com/page/Regiones+proceso+Unix</link><author>jercoli</author><guid isPermaLink="false">http://so-wiki.wetpaint.com/page/Regiones+proceso+Unix</guid><pubDate>Fri, 18 Apr 2008 07:52:06 CDT</pubDate><description>&lt;font color=&quot;#292727&quot; face=&quot;Times New Roman&quot; size=&quot;4&quot;&gt;&lt;b&gt;UNIX divide (desde el punto de vista l&amp;oacute;gico) el espacio&lt;/b&gt;&lt;/font&gt; &lt;font color=&quot;#292727&quot; face=&quot;Times New Roman&quot; size=&quot;4&quot;&gt;&lt;b&gt;de direcciones virtuales de un proceso en zonas denominadas:&lt;/b&gt;&lt;/font&gt; &lt;br&gt;&lt;font color=&quot;#ff0000&quot;&gt;&lt;font face=&quot;Times&quot;&gt;&lt;b&gt;Regiones&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; &lt;br&gt;&lt;b&gt;- &lt;i&gt;Son &amp;aacute;reas contiguas del espacio de direcciones. &lt;/i&gt;&lt;/b&gt;&lt;br&gt;&lt;i&gt;&lt;b&gt;&lt;font face=&quot;Times New Roman&quot;&gt;- &lt;/font&gt;Pueden ser compartidas y/o protegidas&lt;/b&gt; &lt;b&gt;- Son independientes de la pol&amp;iacute;tica de gesti&amp;oacute;n de memoria.&lt;/b&gt;&lt;/i&gt; &lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;font face=&quot;Times New Roman&quot;&gt;*&lt;/font&gt;&lt;/b&gt;&lt;b&gt;Regiones t&amp;iacute;picas&lt;/b&gt; &lt;br&gt;&lt;b&gt;&lt;i&gt;-Texto (&lt;/i&gt;&lt;font face=&quot;CMSS10&quot;&gt;&lt;i&gt;Contiene el c&amp;oacute;digo de las funciones del programa. Es de solo lectura)&lt;/i&gt;&lt;br&gt;&lt;/font&gt;&lt;/b&gt;&lt;i&gt;&lt;b&gt;-&lt;/b&gt; &lt;b&gt;Datos (&lt;font face=&quot;CMSS10&quot;&gt;Contiene los datos, variables globales, tanto inicializadas como sin inicializaci&amp;oacute;n explicita del proceso. El &lt;/font&gt;&lt;font face=&quot;CMSSI10&quot;&gt;heap &lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;suele ser parte de esta regi&amp;oacute;n&lt;/font&gt;)&lt;/b&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;b&gt;-&lt;/b&gt; &lt;b&gt;Pila &lt;font face=&quot;CMSS10&quot;&gt;(o &lt;/font&gt;&lt;font face=&quot;CMSSI10&quot;&gt;stack, u&lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;sado para pasar los par&amp;aacute;metros a las funciones y por &amp;eacute;stas para sus variables locales)&lt;/font&gt;&lt;/b&gt; &lt;/i&gt;&lt;br&gt;&lt;br&gt;&lt;font face=&quot;Times New Roman&quot;&gt;&lt;b&gt;&lt;font color=&quot;#ff0000&quot;&gt;Descripci&amp;oacute;n de regiones:&lt;/font&gt;&lt;/b&gt;&lt;/font&gt; &lt;br&gt;&lt;b&gt;&lt;font face=&quot;Times New Roman&quot;&gt;* &lt;/font&gt;&lt;/b&gt;&lt;b&gt;Una tabla de regiones global.&lt;/b&gt; &lt;br&gt;&lt;i&gt;&lt;b&gt;&lt;font face=&quot;Times New Roman&quot;&gt;* &lt;/font&gt;&lt;/b&gt;&lt;b&gt;Contiene una entrada (fila) por cada regi&amp;oacute;n activa en el sistema.&lt;/b&gt; &lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;b&gt;-&lt;/b&gt; &lt;b&gt;Informaci&amp;oacute;n necesaria para localizar la regi&amp;oacute;n en memoria f&lt;/b&gt;&lt;b&gt;&amp;iacute;sica.&lt;/b&gt; &lt;/i&gt;&lt;br&gt;&lt;b&gt;&lt;i&gt;- Tama&amp;ntilde;o de la regi&amp;oacute;n.&lt;/i&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;font face=&quot;Times New Roman&quot;&gt;* &lt;/font&gt;&lt;/b&gt;&lt;b&gt;Una tabla de regiones por proceso (pregi&amp;oacute;n).&lt;/b&gt; &lt;br&gt;&lt;i&gt;&lt;b&gt;&lt;font face=&quot;Times New Roman&quot;&gt;*&lt;/font&gt;&lt;/b&gt;&lt;b&gt;&lt;font face=&quot;Times New Roman&quot;&gt; &lt;/font&gt;&lt;/b&gt;&lt;b&gt;Apuntada desde la tabla de procesos.&lt;/b&gt; &lt;/i&gt;&lt;br&gt;&lt;i&gt;&lt;b&gt;&lt;font face=&quot;Times New Roman&quot;&gt;* &lt;/font&gt;&lt;/b&gt;&lt;b&gt;Cada entrada en esta tabla:&lt;/b&gt; &lt;/i&gt;&lt;br&gt;&lt;i&gt;- &lt;b&gt;Apunta a una entrada en la tabla de regiones global.&lt;/b&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;- &lt;b&gt;Direcci&amp;oacute;n virtual de comienzo de la regi&amp;oacute;n.&lt;/b&gt;&lt;/i&gt;&lt;br&gt;&lt;i&gt;- &lt;b&gt;Tipo de acceso permitido a la regi&amp;oacute;n.&lt;/b&gt; &lt;/i&gt;&lt;br&gt;&lt;br&gt;*&lt;b&gt;La conjunci&amp;oacute;n de ambos tipos de tablas permite &lt;/b&gt;&lt;b&gt;compartir regiones en distintas direcciones&lt;/b&gt; &lt;b&gt;virtuales.&lt;/b&gt; &lt;br&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;&lt;font size=&quot;2&quot;&gt;&lt;b&gt;&lt;font face=&quot;Times New Roman&quot;&gt;(*&lt;/font&gt;&lt;/b&gt;&lt;b&gt;Si la arquitectura para la gesti&amp;oacute;n de memoria est&amp;aacute; basada&lt;/b&gt; &lt;b&gt;en p&amp;aacute;ginas,&lt;/b&gt; &lt;b&gt;cada entrada en la tabla de regiones apunta a una tabla de&lt;/b&gt; &lt;b&gt;P&amp;aacute;ginas.)&lt;/b&gt;&lt;/font&gt; &lt;/i&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;font color=&quot;#ff0000&quot;&gt;Operaciones sobre regiones&lt;/font&gt;&lt;/b&gt;&lt;br&gt; &lt;br&gt;&lt;font face=&quot;CMSS10&quot;&gt;&lt;b&gt;Las operaciones sobre regiones que hace el kernel son&lt;/b&gt; :&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;&lt;font color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;CMSSBX10&quot;&gt;&lt;b&gt;  &lt;/b&gt;&lt;font color=&quot;#000000&quot;&gt;asignar una regi&amp;oacute;n &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font face=&quot;CMSS10&quot;&gt;(&lt;/font&gt;&lt;font face=&quot;CMSSI10&quot;&gt;fork(), exec(), shmget()&lt;/font&gt;&lt;/font&gt;&lt;/i&gt;&lt;font color=&quot;#000000&quot; face=&quot;CMSS10&quot;&gt;&lt;i&gt;)&lt;/i&gt;&lt;/font&gt;&lt;br&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;i&gt;&lt;font face=&quot;CMSSBX10&quot;&gt;  encadenar una regi&amp;oacute;n a un proceso &lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;(&lt;/font&gt;&lt;font face=&quot;CMSSI10&quot;&gt;fork(), exec(), shmat()&lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;)&lt;/font&gt;&lt;/i&gt;&lt;font face=&quot;MSAM7&quot;&gt;&lt;i&gt; &lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;i&gt;&lt;font face=&quot;CMSSBX10&quot;&gt;  cambiar el tama&amp;ntilde;o de una regi&amp;oacute;n &lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;( &lt;/font&gt;&lt;font face=&quot;CMSSI10&quot;&gt;brk(), sbrk(), malloc() &lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;)&lt;/font&gt;&lt;/i&gt;&lt;font face=&quot;MSAM7&quot;&gt;&lt;i&gt; &lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;i&gt;&lt;font face=&quot;CMSSBX10&quot;&gt;  cargar una regi&amp;oacute;n &lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;(&lt;/font&gt;&lt;font face=&quot;CMSSI10&quot;&gt;exec()&lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;)&lt;/font&gt;&lt;/i&gt;&lt;font face=&quot;MSAM7&quot;&gt;&lt;i&gt; &lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;i&gt;&lt;font face=&quot;CMSSBX10&quot;&gt;  desasignar una regi&amp;oacute;n &lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;(&lt;/font&gt;&lt;font face=&quot;CMSSI10&quot;&gt;exec(), exit(), shmctl(IPC RMID, )&lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;)&lt;/font&gt;&lt;/i&gt;&lt;font face=&quot;MSAM7&quot;&gt;&lt;i&gt; &lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;i&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font face=&quot;CMSSBX10&quot;&gt;  desencadenar una regi&amp;oacute;n del espacio de direcciones de un proceso &lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;(&lt;/font&gt;&lt;font face=&quot;CMSSI10&quot;&gt;exec(), exit(), shmdt()&lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;)&lt;/font&gt;&lt;/font&gt;&lt;/i&gt;&lt;font face=&quot;MSAM7&quot;&gt;&lt;i&gt;&lt;font color=&quot;#000000&quot;&gt; &lt;/font&gt;&lt;/i&gt;    &lt;/font&gt;&lt;i&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font face=&quot;CMSSBX10&quot;&gt;  duplicar una regi&amp;oacute;n &lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;(&lt;/font&gt;&lt;font face=&quot;CMSSI10&quot;&gt;fork()&lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;)&lt;/font&gt;&lt;/font&gt;&lt;/i&gt;&lt;font face=&quot;CMSS10&quot;&gt;&lt;i&gt; &lt;/i&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;&lt;b&gt;&lt;font face=&quot;CMSS10&quot;&gt;El espacio de direcciones de un proceso se almacena como una lista enlazada de sus segmentos (c&amp;oacute;digo, datos, pila . . . ). E&lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;n la &lt;i&gt;&lt;font color=&quot;#0000ff&quot;&gt;estructura &lt;/font&gt;&lt;/i&gt;&lt;/font&gt;&lt;font face=&quot;CMSSI10&quot;&gt;&lt;i&gt;&lt;font color=&quot;#0000ff&quot;&gt;proc&lt;/font&gt; &lt;/i&gt;&lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;hay una referencia a una &lt;i&gt;&lt;font color=&quot;#0000ff&quot;&gt;estructura &lt;/font&gt;&lt;/i&gt;&lt;/font&gt;&lt;font face=&quot;CMTT10&quot;&gt;&lt;i&gt;&lt;font color=&quot;#0000ff&quot;&gt;as&lt;/font&gt; &lt;/i&gt;&lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;(&lt;/font&gt;&lt;font face=&quot;CMSSI10&quot;&gt;address space&lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;). L&lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;a &lt;font color=&quot;#0000ff&quot;&gt;&lt;i&gt;estructura &lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;CMSSI10&quot;&gt;&lt;font color=&quot;#0000ff&quot;&gt;&lt;i&gt;as&lt;/i&gt;&lt;/font&gt; &lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;contiene la referencia a la primera de las estructuras de la lista que describe los segmentos que constituyen el espacio de direcciones.&lt;/font&gt;&lt;font color=&quot;#3333b3&quot; face=&quot;MSAM7&quot;&gt; C&lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;ada segmento esta descrito por una &lt;i&gt;&lt;font color=&quot;#0000ff&quot;&gt;estructura &lt;/font&gt;&lt;/i&gt;&lt;/font&gt;&lt;font face=&quot;CMSSI10&quot;&gt;&lt;i&gt;&lt;font color=&quot;#0000ff&quot;&gt;seg&lt;/font&gt;&lt;/i&gt; &lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;que contiene una referencia a una &lt;i&gt;&lt;font color=&quot;#0000ff&quot;&gt;estructura &lt;/font&gt;&lt;/i&gt;&lt;/font&gt;&lt;font color=&quot;#0000ff&quot; face=&quot;CMSSI10&quot;&gt;&lt;i&gt;segvn_data&lt;/i&gt;&lt;/font&gt;&lt;font face=&quot;CMSS10&quot;&gt;.&lt;/font&gt;&lt;/b&gt;&lt;/font&gt; &lt;font color=&quot;#3333b3&quot; face=&quot;MSAM7&quot;&gt;  &lt;li&gt;  &lt;/li&gt;&lt;/font&gt;     &lt;br&gt;&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item></channel></rss>