Você está na página 1de 65

Sistemas Operativos

www.monografias.com

Samuel Alexander Escoto

Sistemas operativos
1. 2. 3. 4. 5. 6. ". $. '. 1+. 11. 12. 13. Introduccin Conceptos arquitectnicos de las computadoras Introduccin a los sistemas operativos Procesos Gestin de Memoria Comunicacin sincroni!acin de procesos Inter#loqueos %ntrada&Salida Gestin de (rc)ivos *irectorios %studio de casos, linu-. %studio de casos, .indo/s 01. (ne-os Conclusiones.

Introduccin A travs de la historia d la computacin se han conocido muchos sistemas operativos y cada vez se ha deseado automatizar ms los sistemas operativos y generarlos con ms confiabilidad, seguridad y proteccin para los registros de los usuarios. Los sistemas operativos se han convertido en una herramienta eficaz dentro del mundo de los negocios y usuario con maquinas personales, los sistemas operativos con la ayuda de un buen soporte de hardware puede ser un patrn importante para el control de sus registros. La importancia de los sistemas operativos nace histricamente desde los !"s, cuando se hizo evidente que el operar una computadora por medio de tableros enchufables en la primera generacin y luego por medio del traba#o en lote en la segunda generacin se pod$a me#orar notoriamente, pues el operador realizaba siempre una secuencia de pasos repetitivos, lo cual es una de las caracter$sticas contempladas en la definicin de lo que es un programa. %s decir, se comenz a ver que las tareas mismas del operador pod$an plasmarse en un programa, el cual a travs del tiempo y por su enorme comple#idad se le llam &'istema (perativo&. As$, tenemos entre los primeros sistemas operativos al )ortran *onitor 'ystem + )*' , e -.'/' 01an234. 5osteriormente, en la tercera generacin de computadoras nace uno de los primeros sistemas operativos con la filosof$a de administrar una familia de computadoras6 el ('789! de -.*. )ue este un proyecto tan novedoso y ambicioso que enfrent por primera vez una serie de problemas conflictivos debido a que anteriormente las computadoras eran creadas para dos propsitos en general6 el comercial y el cient$fico. As$, al tratar de crear un solo sistema operativo para computadoras que pod$an dedicarse a un propsito, al otro o ambos, puso en evidencia la problemtica del traba#o en equipos de anlisis, dise:o e implantacin de sistemas grandes. %l resultado fue un sistema del cual uno de sus mismos dise:adores patentiz su opinin en la portada de un libro6 una horda de bestias prehistricas atascadas en un foso de brea. 'urge tambin en la tercera generacin de computadoras el concepto de la multiprogramacin, porque debido al alto costo de las computadoras era necesario idear un esquema de traba#o que mantuviese a la unidad central de procesamiento ms tiempo ocupada, as$ como el encolado +spooling , de traba#os para su lectura hacia los lugares libres de memoria o la escritura de resultados. 'in embargo, se puede afirmar que los sistemas durante la tercera generacin siguieron siendo bsicamente sistemas de lote. %n la cuarta generacin la electrnica avanza hacia la integracin a gran escala, pudiendo crear circuitos con miles de transistores en un cent$metro cuadrado de silicn y ya es posible hablar de las computadoras personales y las estaciones de traba#o. 'urgen los conceptos de interfaces amigables intentando as$ atraer al p;blico en general al uso de las computadoras como herramientas cotidianas. 'e hacen populares el *'<=(' y >?-@ en estas mquinas. 1ambin

Sistemas Operativos

Samuel Alexander Escoto

es com;n encontrar clones de computadoras personales y una multitud de empresas peque:as ensamblndolas por todo el mundo. 5ara mediados de los A!"s, comienza el auge de las redes de computadoras y la necesidad de sistemas operativos en red y sistemas operativos distribuidos. La red mundial -nternet se va haciendo accesible a toda clase de instituciones y se comienzan a dar muchas soluciones + y problemas , al querer hacer convivir recursos residentes en computadoras con sistemas operativos diferentes. 5ara los 2!"s el paradigma de la programacin orientada a ob#etos cobra auge, as$ como el mane#o de ob#etos desde los sistemas operativos. Las aplicaciones intentan crearse para ser e#ecutadas en una plataforma espec$fica y poder ver sus resultados en la pantalla o monitor de otra diferente +por e#emplo, e#ecutar una simulacin en una mquina con >?-@ y ver los resultados en otra con =(' ,. Los niveles de interaccin se van haciendo cada vez ms profundos. Capitulo 1 Conceptos arquitectnicos de las computadoras %structura 2uncionamiento de la Computadora La Bomputadora es una mquina destinada a procesar datos. %ste procesamiento involucra dos flu#os de informacin6 el de datos y el de instrucciones. 'e parte del flu#o de datos que han de ser procesados. %ste flu#o de datos es tratado mediante un flu#o de instrucciones de mquina, generado por la e#ecucin de un programa, y produce el flu#o de datos resultado. La memoria principal se construye con memoria CA* y memoria C(*. %n ella han de residir los datos a procesar, el programa mquina a e#ecutar y los resultados. 'e denomina programa mquina +o cdigo, al con#unto de instrucciones mquina que tiene por ob#eto que la computadora realice una determinada funcin. Los programas escritos en cualquiera de los lengua#es de programacin han de convertirse en programa mquina para poder ser e#ecutados por la computadora. 3a unidad aritm4tica permite realizar una serie de operaciones aritmticas y lgicas sobre uno o dos operndos. 3a unidad de control es la que se encarga de hacer funcionar al con#unto, para lo cual realiza las siguientes funciones6 Lee de memoria las instrucciones mquina que forman el programa. -nterpreta cada instruccin le$da. Lee los datos de memoria referenciados por cada instruccin %#ecuta cada instruccin Almacena el resultado de cada instruccin. Modelo de pro5ramacin de la computadora. %l modelo de programacin a ba#o nivel de una computadora se caracteriza por los siguientes aspectos6 %lementos de almacenamiento. en esta seccin se consideran aquellos elementos de almacenamiento de la computadora que son visibles a las instrucciones mquina. %n esta categor$a estn incluidos los registros generales, el contador de programa, el puntero de pila, el registro de estado, la memoria principal y el mapa de %7'. 6ue5o de instrucciones. Bon sus correspondientes modos de direccionamiento. %l #ugo de instrucciones mquina define las operaciones que es capaz de hacer la computadora. Los modos de direccionamiento determinan la forma en que se especifica la identidad de los elementos de almacenamiento que invierten en las instrucciones maquina. Secuencia de 7uncionamiento. =efine el modo en que se van e#ecutando las instrucciones mquina. 0iveles de e8ecucin La mayor$a de las computadoras actuales presenta dos o ms niveles de e#ecucin. %n el nivel menos permisivo, generalmente llamado nivel de usuario, la computadora e#ecuta solamente un subcon#unto de las instrucciones mquina, quedando prohibidas las dems. Adems, el acceso a determinados registros, o a partes de esos registros, y a determinadas zonas del mapa de memoria y de %7' tambin queda prohibido. %n el nivel ms permisivo,

Sistemas Operativos

Samuel Alexander Escoto

denominado nivel de n;cleo, la computadora e#ecuta todas sus instrucciones sin ninguna restriccin y permite el acceso a todos los registros y mapas de direcciones. Secuencia de 7uncionamiento de la computadora. La unidad de control de la computadora es la que establece el funcionamiento del mismo. %ste funcionamiento est basado en una secuencia sencilla, que se repite a alta velocidad %sta secuencia consiste en tres pasos6 a, Lectura de memoria principal de la instruccin mquina apuntada por el contador del programa. b, -ncremento del contador de programa para que apunte a la siguiente instruccin mquina. c, %#ecucin de la instruccin. 9e5istros de control estado. Bomo se ha indicado anteriormente, la unidad de control tiene asociada una serie de registros que denominamos de control y estado. %stos registros dependen de la arquitectura de la computadora y muchos de ellos se refieren a aspectos que se analizarn a lo largo del teDto, por lo que no se intentar eDplicar aqu$ su funcin. Interrupciones. A nivel f$sico, una interrupcin se solicita activando una se:al que llega a la unidad de control. %l agente generador o solicitante de la interrupcin ha de activar la mencionada se:al cuando necesite que se le atienda, es decir, que se e#ecute un programa que le atienda. Ante la solicitud de una interrupcin, siempre y cuando est habilitado ese tipo de interrupcin, la unidad de control realiza un ciclo de aceptacin de interrupcin. %ste ciclo se lleva a cabo en cuanto termina la e#ecucin de la instruccin mquina que se est e#ecutando y consiste en las siguientes operaciones6 'alva algunos registros del procesador, como son el de estado y el contador de programa. %leva el nivel de e#ecucin del procesador, pasndolo a n;cleo. Barga un nuevo valor en el contador de programa, por lo que pasa a e#ecutar otro programa. %l relo8. %l trmino reloj se aplica a las computadoras con tres acepciones diferentes, estas tres acepciones son las siguientes6 'e:al que gobierna el ritmo de e#ecucin de las instrucciones mquina. Eenerador de interrupciones peridicas. Bontador de fecha y hora. 6erarqu:a de memoria. A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los sistemas, se hizo necesaria una mayor organizacin del software, del sistema operativo, donde una parte del sistema conten$a subpartes y esto organizado en forma de niveles. 'e dividi el sistema operativo en peque:as partes, de tal forma que cada una de ellas estuviera perfectamente definida y con un claro interface con el resto de elementos. 'e constituy una estructura #errquica o de niveles en los sistemas operativos, el primero de los cuales fue denominado 1F% +1echnische Fogeschool, %indhoven,, de =i#Gstra, que se utiliz con fines didcticos +Her )ig. 8,. 'e puede pensar tambin en estos sistemas como si fueran Imulticapa". *ultics y >niD caen en esa categor$a. 0)eld284.

Sistemas Operativos

Samuel Alexander Escoto

%n la estructura anterior se basan prcticamente la mayor$a de los sistemas operativos actuales. (tra forma de ver este tipo de sistema es la denominada de anillos concntricos o &rings& +Her )ig. J,.

%n el sistema de anillos, cada uno tiene una apertura, conocida como puerta o trampa +trap,, por donde pueden entrar las llamadas de las capas inferiores. =e esta forma, las zonas ms internas del sistema operativo o n;cleo del sistema estarn ms protegidas de accesos indeseados desde las capas ms eDternas. Las capas ms internas sern, por tanto, ms privilegiadas que las eDternas. M;quina <irtual. 'e trata de un tipo de sistemas operativos que presentan una interface a cada proceso, mostrando una mquina que parece idntica a la mquina real subyacente. %stos sistemas operativos separan dos conceptos que suelen estar unidos en el resto de sistemas6 la multiprogramacin y la mquina eDtendida. %l ob#etivo de los sistemas operativos de mquina virtual es el de integrar distintos sistemas operativos dando la sensacin de ser varias mquinas diferentes. %l n;cleo de estos sistemas operativos se denomina monitor virtual y tiene como misin llevar a cabo la multiprogramacin, presentando a los niveles superiores tantas mquinas virtuales como se soliciten. %stas mquinas virtuales no son mquinas eDtendidas, sino una rplica de la mquina real, de manera que en cada una de ellas se pueda e#ecutar un sistema operativo diferente, que ser el que ofrezca la mquina eDtendida al usuario +Her )ig. ,.

Sistemas Operativos

Samuel Alexander Escoto

Cliente=servidor >Micro?ernel@ %l tipo ms reciente de sistemas operativos es el denominado Bliente<servidor, que puede ser e#ecutado en la mayor$a de las computadoras, ya sean grandes o peque:as. %ste sistema sirve para toda clase de aplicaciones por tanto, es de propsito general y cumple con las mismas actividades que los sistemas operativos convencionales. %l n;cleo tiene como misin establecer la comunicacin entre los clientes y los servidores. Los procesos pueden ser tanto servidores como clientes. 5or e#emplo, un programa de aplicacin normal es un cliente que llama al servidor correspondiente para acceder a un archivo o realizar una operacin de entrada7salida sobre un dispositivo concreto. A su vez, un proceso cliente puede actuar como servidor para otro.& 0Alcal234. %ste paradigma ofrece gran fleDibilidad en cuanto a los servicios posibles en el sistema final, ya que el n;cleo provee solamente funciones muy bsicas de memoria, entrada7salida, archivos y procesos, de#ando a los servidores proveer la mayor$a que el usuario final o programador puede usar. %stos servidores deben tener mecanismos de seguridad y proteccin que, a su vez, sern filtrados por el n;cleo que controla el hardware. Actualmente se est traba#ando en una versin de >?-@ que contempla en su dise:o este paradigma. Capitulo 2 Introduccin a los sistemas operativos 2.1. ABu4 es un sistema operativoC >n sistema operativo es un programa que tiene encontradas una serie de funciones diferentes cuyo ob#etivo es simplificar el mane#o y la utilizacin de la computadora, hacindolo seguro y eficiente. Maquina desnuda %l trmino de mquina desnuda se aplica a una computadora carente de sistema operativo, el trmino es interesante porque resalta el hecho de que una computadora en si misma no hace nada y para realizar una determinada funcin es necesario que contenga un sistema operativo. 2unciones del sistema operativo Las funciones clsicas del sistema operativo se pueden agrupar en las tres categor$as siguientes6 Eestin de los recursos de la computadora. %#ecucin de servicios para los programas. %#ecucin de los mandatos de los usuarios. %l sistema operativo como 5estor de recursos %n una computadora actual suelen coeDistir varios programas, del mismo o de varios usuarios, e#ecutndose simultneamente. %stos programas compiten por los recursos de la computadora,

Sistemas Operativos

Samuel Alexander Escoto

siendo el sistema operativo el encargado de arbitrar su asignacin y uso. Bomo complemento a la gestin de recursos, el sistema operativo ha de garantizar la proteccin de unos programas frente a otros y ha de suministrar informacin sobre el uso que se hace de los recursos. %l sistema operativo como m;quina e-tendida. %l sistema operativo ofrece a los programas un con#unto de servicios, o llamadas al sistema, que pueden solicitar cuando lo necesiten, proporcionando a los programas una visin de mquina eDtendida. Los servicios se pueden agrupar en las cuatro clases siguientes6 %#ecucin de programas (peraciones de %7' (peraciones sobre archivos =eteccin de tratamiento de errores. Concepto de usuario de 5rupo de usuario >n usuario es una persona autorizada para utilizar un sistema informtico. %l usuario se autentica mediante su nombre de cuenta y su contrase:a o password. 2.2. (rranque de la computadora %l arranque de una computadora actual tiene dos fases6 Arranque hardware Arranque software Kue por el arranque )ard/are se entiende que es la parte dura es decir el inicio o encendido de todos los componentes de la 5B Ahora el arranque so7t/are es el inicio del sistema operativo en una computadora 2.3. Componentes estructura del sistema operativo %l sistema operativo est formado por una serie de componentes especializados en determinadas funciones. Bada sistema operativo estructura estos componentes de forma distinta. %n esta seccin se describen en primer lugar los distintos componentes que conforman un sistema operativo. Componentes del sistema operativo >n sistema operativo est formado por tres capas6 %l n;cleo Los servicios y el intrprete de mandatos o shell. %l n;cleo es la parte del sistema operativo que interacciona directamente con el hardware de la mquina. Las funciones bsicas de manipulacin de menmoria. %structura del sistema operativo -nternamente los sistemas operativos estructuralmente de se clasifican seg;n como se hayan organizado internamente en su dise:o, por esto la clasificacin ms com;n de los sistemas operativos son6 Sistemas monol:ticos %n estos sistemas operativos se escriben como un con#unto de procedimientos, cada uno de los cuales puede llamar a cualquiera de los otros siempre que lo necesite. Buando se emplea esta tcnica, cada procedimiento del sistema tiene una interfaz bien definida en trminos de parmetros y resultados, y cada una tiene la libertad de llamar a cualquiera otra, si la ;ltima ofrece alg;n clculo ;til que la primera necesite. 5ara construir el programa ob#eto real del sistema operativo cuando se usa este mtodo, se compilan todos los procedimientos individuales a archivos que contienen los procedimientos y despus se combinan todos en un solo archivo ob#eto con el enlazador. %n trminos de ocultamiento de informacin, esencialmente no eDiste ningunoL todo procedimiento es visible para todos +al contrario de una estructura que contiene mdulos o paquetes, en los cuales mucha informacin es local a un mdulo y slo pueden llamar puntos de registro designados oficialmente del eDterior del mdulo, Sistemas operativos estructurados A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los sistemas, se hizo necesaria una mayor organizacin del software, del sistema operativo, donde una parte del sistema conten$a subpartes y esto organizado en forma de niveles. 'e dividi el sistema operativo en peque:as partes, de tal forma que cada una de ellas estuviera perfectamente definida y con un claro interfase con el resto de elementos

Sistemas Operativos

Samuel Alexander Escoto

Cliente=servidor %l tipo ms reciente de sistemas operativos es el denominado Bliente<servidor, que puede ser e#ecutado en la mayor$a de las computadoras, ya sean grandes o peque:as. %ste sistema sirve para toda clase de aplicaciones por tanto, es de propsito general y cumple con las mismas actividades que los sistemas operativos convencionales. %l n;cleo tiene como misin establecer la comunicacin entre los clientes y los servidores. Los procesos pueden ser tanto servidores como clientes. 5or e#emplo, un programa de aplicacin normal es un cliente que llama al servidor correspondiente para acceder a un archivo o realizar una operacin de entrada7salida sobre un dispositivo concreto. A su vez, un proceso cliente puede actuar como servidor para otro. 2.4. Gestin de procesos >no de los mdulos ms importantes de un sistema operativo es la de administrar los procesos y tareas del sistema de cmputo. %n esta seccin se revisarn dos temas que componen o conciernen a este mdulo6 la planificacin del procesador y los problemas de concurrencia. Plani7icacin del procesador La planificacin del procesador se refiere a la manera o tcnicas que se usan para decidir cunto tiempo de e#ecucin y cuando se le asignan a cada proceso del sistema. (bviamente, si el sistema es monousuario y monotarea no hay mucho que decidir, pero en el resto de los sistemas esto es crucial para el buen funcionamiento del sistema. 0iveles de plani7icacin %n los sistemas de planificacin generalmente se identifican tres niveles6 el alto, el medio y el ba#o. %l nivel alto decide que traba#os +con#unto de procesos, son candidatos a convertirse en procesos compitiendo por los recursos del sistemaL el nivel intermedio decide que procesos se suspenden o reanudan para lograr ciertas metas de rendimiento mientras que el planificador de ba#o nivel es el que decide que proceso, de los que ya estn listos +y que en alg;n momento paso por los otros dos planificadores, es al que le toca ahora estar e#ecutndose en la unidad central de procesamiento. %n este traba#o se revisaran principalmente los planificadores de ba#o nivel porque son los que finalmente eligen al proceso en e#ecucin. 2.5. Gestin de memoria %l gestor de memoria es uno de los componentes principales del sistema operativo. 'u actividad se centra fundamentalmente en la categor$a de gestin de recursos, puesto que tiene por ob#etivo casi eDclusivo la gestin del recurso memoria, en este sentido se encarga de6 Asignar memoria a los procesos para crear su imagen de memoria. 5roporcionar memoria a los procesos cuando la soliciten y liberarla cuando as$ lo requieran. 1ratar los posibles errores de acceso a memoria, evitando que unos procesos interfieran en la memoria de otros. 5ermitir que los procesos puedan compartir memoria entre ellos. =e esta forma los procesos podrn comunicarse entre ellos. Eestionar la #erarqu$a de memoria y tratar los fallos de pgina en los sistemas con memoria virtual. Servicios %l gestor de memoria ofrece una serie de servicios a los procesos. %stos son6 'olicitar memoria Liberar memoria Bompartir memoria. 2.6. Comunicacin sincroni!acin entre procesos Los procesos son entes independientes y aislados, puesto que, por razones de seguridad, no deben interferir unos con otros. 'in embargo, cuando se divide un traba#o comple#o en varios procesos que cooperan entre s$ para realizar ese traba#o, es necesario que se comuniquen para transmitirse datos y ordenes y se sincronicen en la e#ecucin de sus acciones. 5or tanto, el sistema operativo debe incluir servicios de comunicacin y sincronizacin entre procesos que, sin romper los esquemas de seguridad, han de permitir la cooperacin entre ellos. Servicios de comunicacin sincroni!acin.

Sistemas Operativos

Samuel Alexander Escoto

Bomo se ha visto anteriormente, eDisten distintos mecanismos de comunicacin y sincronizacin, cada uno de los cuales se puede utilizar a travs de un con#unto de servicios propios. %stos mecanismos son entidades vivas, cuya vida presenta las siguientes fases6 Breacin del mecanismo. >tilizacin del mecanismo. =estruccin del mecanismo. =e acuerdo con esto, los servicios bsicos de comunicacin, que incluyen todos los mecanismos, son los siguientes6 Brear. 5ermite que el proceso solicite la creacin del mecanismo. %nviar o escribir. 5ermite que el proceso emisor env$e informacin a otro. Cecibir o leer. 5ermite que el proceso receptor reciba informacin de otro. =estruir. 5ermite que el proceso solicite la creacin o destruccin del mecanismo. 2.". Gestin de la %&S >na de las principales funciones de un sistema operativo es la gestin de los recursos de la computadora y, en concreto, de los dispositivos perifricos. %l gestor de %7' debe controlar el funcionamiento de todos los dispositivos de %7' para alcanzar los siguientes ob#etivos6 )acilitar el mane#o de los dispositivos perifricos. 5ara ello ofrecer una interfaz sencilla, uniforme y fcil de utilizar entre los dispositivos, y gestionar los errores que se pueden producir en el acceso a los mismos. (frecer mecanismos de proteccin que impidan a los usuarios acceder sin control a los dispositivos perifricos. %l cdigo destinado a mane#ar la entrada y salida de los diferentes perifricos en un sistema operativo es de una eDtensin considerable y sumamente comple#o. Cesuelve las necesidades de sincronizar, atrapar interrupciones y ofrecer llamadas al sistema para los programadores. %n esta seccin se repasarn los principios ms importantes a tomar en cuenta en este mdulo del sistema operativo. Los dispositivos de entrada salida se dividen, en general, en dos tipos6 dispositivos orientados a bloques y dispositivos orientados a caracteres. Los dispositivos orientados a bloques tienen la propiedad de que se pueden direccionar, esto es, el programador puede escribir o leer cualquier bloque del dispositivo realizando primero una operacin de posicionamiento sobre el dispositivo. Los dispositivos ms comunes orientados a bloques son los discos duros, la memoria, discos compactos y, posiblemente, unidades de cinta. 5or otro lado, los dispositivos orientados a caracteres son aquellos que traba#an con secuencias de bytes sin importar su longitud ni ninguna agrupacin en especial. ?o son dispositivos direccionables. %#emplos de estos dispositivos son el teclado, la pantalla o display y las impresoras. La clasificacin anterior no es perfecta, porque eDisten varios dispositivos que generan entrada o salida que no pueden englobarse en esas categor$as. 5or e#emplo, un relo# que genera pulsos. 'in embargo, aunque eDistan algunos perifricos que no se puedan categorizar, todos estn administrados por el sistema operativo por medio de una parte electrnica < mecnica y una parte de software. Controladores de *ispositivos >1erminales *iscos *uros@ Los controladores de dispositivos +tambin llamados adaptadores de dispositivos, son la parte electrnica de los perifricos, el cual puede tener la forma de una tar#eta o un circuito impreso integrado a la tar#eta maestra de la computadora. 5or e#emplo, eDisten controladores de discos que se venden por separado y que se insertan en una ranura de la computadora, o eDisten fabricantes de computadoras que integran esa funcionalidad en la misma tar#eta en que viene la unidad central de procesamiento +tar#eta maestra,. Los controladores de dispositivos generalmente traba#an con volta#es de y M3 volts con el dispositivo propiamente, y con la computadora a travs de interrupciones. %stas interrupciones via#an por el "bus" de la computadora y son recibidos por el B5> el cual a su vez pondr en e#ecucin alg;n programa que sabr qu hacer con esa se:al. A ese programa se le llama "mane#ador de disposito" +device driver,. Algunas veces el mismo controlador contiene un peque:o programa en una memoria de solo lectura o en memoria de acceso aleatoria no voltil y re<escribible que interact;a con el correspondiente mane#ador en la computadora. %n la figura 9.M se muestra un esquema simple de dispositivos orientados a bloques y otros a caracteres.

Sistemas Operativos

Samuel Alexander Escoto

5or e#emplo, la terminal +BC1, tiene un "chip" que se encarga de enviar cadenas de bits por medio de un cable serial que a su vez son recibidos por un controlador de puerto serial en la computadora. %ste "chip" tambin se encarga de leer secuencias de bits que agrupa para su despiegue en la pantalla o para e#ecutar algunas funciones de control. Lo importante en todos estos dispositivos es que se debe e#ercer un mecanismo para sincronizar el env$o y llegada de datos de manera concurrente. 2.$. Gestin de (rc)ivos directorios. %l servidor de archivos es la parte del sistema operativo que cubre una de las cuatro clases de funciones que tiene este en su faceta de mquina eDtendida. Los (b#etivos fundamentales del servidor de archivos son los dos siguientes6 )acilitar el mane#ote los dispositivos perifricos. 5ara ello ofrece una visin lgica simplificada de los mismos en forma de archivos. 5roteger a los usuarios, poniendo limitaciones a los archivos que es capaz de manipular cada usuario. Los servicios que se engloban en el servidor de archivos son de dos tipos6 Los servicios dirigidos al mane#o de datos, o archivos. Los dirigidos al mane#o de los nombres o directorios. >n sistema de archivos + file system , es una estructura de directorios con alg;n tipo de organizacin el cual nos permite almacenar, crear y borrar archivos en diferenctes formatos. %n esta seccin se revisarn conceptos importantes relacionados a los sistemas de archivos. (lmacenamiento 2:sico de *atos %n un sistema de cmputo es evidente que eDiste la necesidad por parte de los usuarios y aplicaciones de almacenar datos en alg;n medio, a veces por periodos largos y a veces por instantes. cada aplicacin y cada usuario debe tener ciertos derechos con sus datos, como son el poder crearlos y borrarlos, o cambialos de lugarL as$ como tener privacidad contra otros usuarios o aplicaciones. %l subsistema de archivos del sistema operativo se debe encargar de estos detalles, adems de establecer el formato f$sico en el cual almacenar los datos en discos duros, cintas o discos fleDibles. =ebe ser conocido por todos que tradicionalmente la informacin en los sistemas modernos se almacena en discos duros, fleDibles y unidades de disco ptico, y en todos ellos se comparten algunos esquemas bsicos para darles formato f$sico6 las superficies de almacenamiento son divididas en c$rculos concntricos llamados &pistas& y cada pista se divide en &sectores&. A la unin lgica de varias pistas a travs de varias superficies &paralelas& de almacenamiento se les llama &cilindros&, los cuales son inspeccionados al momento de lectura o escritura de datos por las respectivas unidades fisicas llamadas &cabezas&. Las superficies de almacenamiento reciben el nombre de &platos& y generalmente estn en movimiento rotatorio para que las cabezas accesen a las pistas que los componen. Los datos se escriben a travs de los sectores en las pistas y cilindros modificando las superficies por medio de las cabezas. %l tiempo que una cabeza se tarda en ir de una pista a otra se le llama &tiempo de b;squeda& y depender de la distancia entre la posicin actual y la distancia a la pista buscada. %l tiempo que tarda una cabeza en ir del sector actual al sector deseado se le llama tiempo de latencia y depende de la distancia entre sectores y la velocidad de rotacin del disco. %l impacto que tiene las lecturas y escrituras sobre el sistema est determinado por la tecnolog$a usada en los platos y cabezas y por la forma de resolver las peticiones de lectura y escritura, es decir, los algoritmos de planificacin. (l5oritmos de plani7icacin de peticiones Los algoritmos de planificacin de peticiones de lectura y escritura a discos se encargan de registrar dichas peticiones y de responderlas en un tiempo razonable. Los algoritmos ms comunes para esta tarea son6 5rimero en llegar, primero en ser servido + )-)( ,6 Las peticiones son encoladas de acuerdo al orden en que llegaron y de esa misma forma se van leyendo o escribiendo las mismas. La venta#a de este algoritmo es su simplicidad y no causa sobrecarga, su desventa#a principal es que no aprovecha para nada ninguna caracter$stica de las peticiones, de manera que es muy factible que el brazo del disco se mueva muy ineficientemente, ya que las peticiones pueden tener direcciones en el disco unas muy ale#adas de otras. 5or e#emplo, si se estn

Sistemas Operativos

Samuel Alexander Escoto

haciendo peticiones a los sectores 9,M!,A,3M y J, las mismas sern resueltas en el mismo orden. N 5rimero el ms cercano a la posicin actual6 %n este algoritmo las peticiones se ordenan de acuerdo a la posicin actual de la cabeza lectora, sirviendo primero a aquellas peticiones ms cercanas y reduciendo, as$, el movimiento del brazo, lo cual constituye la venta#a principal de este algoritmo. 'u desventa#a consiste en que puede haber solicitudes que se queden esperando para siempre, en el infortunado caso de que eDistan peticiones muy ale#adas y en todo momento estn entrando peticiones que estn ms cercanas. 5ara las peticiones 9,M!,A,3M y J, las mismas sern resueltas en el orden J,9,A,M! y 3M. 5or eDploracin + algoritmo del elevador ,6 %n este algoritmo el brazo se estar moviendo en todo momento desde el per$metro del disco hacia su centro y viceversa, resolviendo las peticiones que eDistan en la direccin que tenga en turno. %n este caso las peticiones 9,M!,A,3M y J sern resueltas en el orden 9,M!,3M,A y JL es decir, la posicin actual es 9 y como va hacia los sectores de mayor numeracin +hacia el centro, por e#emplo,, en el camino sigue el sector M!, luego el 3M y ese fue el ms central, as$ que ahora el brazo resolver las peticiones en su camino hacia afuera y la primera que se encuentra es la del sector A y luego la J. La venta#a de este algoritmo es que el brazo se mover mucho menos que en )-)( y evita la espera indefinidaL su desventa#a es que no es #usto, ya que no sirve las peticiones en el orden en que llegaron, adems de que las peticiones en los eDtremos interior y eDterior tendrn un tiempo de respuesta un poco mayor. 5or eDploracin circular6 %s una variacin del algoritmo anterior, con la ;nica diferencia que al llegar a la parte central, el brazo regresa al eDterior sin resolver ninguna peticin, lo cual proveer un tiempo de respuesta ms cercana al promedio para todas las peticiones, sin importar si estn cercas del centro o del eDterior. Asignacin del espacio de almacenamiento %l subsistema de archivos se debe encargar de localizar espacio libre en los medios de almacenamiento para guardar archivos y para despus borrarlos, renombrarlos o agrandarlos. 5ara ello se vale de localidades especiales que contienen la lista de archivos creados y por cada archivo una serie de direcciones que contienen los datos de los mismos. %sas localidades especiales se llaman directorios. 5ara asignarle espacio a los archivos eDisten tres criterios generales que se describen enseguida. Asignacin contigua6 Bada directorio contiene la los nombres de archivos y la direccin del bloque inicial de cada archivo, as$ como el tama:o total de los mismos. 5or e#emplo, si un archivo comienza en el sector MO y mide M! bloques, cuando el archivo sea accesado, el brazo se mover inicialmente al bloque MO y de ah$ hasta el 3O. 'i el archivo es borrado y luego creado otro ms peque:o, quedarn huecos in;tiles entre archivos ;tiles, lo cual se llama fragmentacin eDterna. Asignacin encadenada6 Bon este criterio los directorios contienen los nombres de archivos y por cada uno de ellos la direccin del bloque inicial que compone al archivo. Buando un archivo es le$do, el brazo va a esa direccin inicial y encuentra los datos iniciales #unto con la direccin del siguiente bloque y as$ sucesivamente. Bon este criterio no es necesario que los bloques estn contiguos y no eDiste la fragmentacin eDterna, pero en cada &eslabn& de la cadena se desperdicia espacio con las direcciones mismas. %n otras palabras, lo que se crea en el disco es una lista ligada. Asignacin con $ndices + indeDada ,6 %n este esquema se guarda en el directorio un bloque de $ndices para cada archivo, con apuntadores hacia todos sus bloques constituyentes, de manera que el acceso directo se agiliza notablemente, a cambio de sacrificar varios bloques para almacenar dichos apuntadores. Buando se quiere leer un archivo o cualquiera de sus partes, se hacen dos accesos6 uno al bloque de $ndices y otro a la direccin deseada. %ste es un esquema eDcelente para archivos grandes pero no para peque:os, porque la relacin entre bloques destinados para $ndices respecto a los asignados para datos es incosteable. M4todos de acceso en los sistemas de arc)ivos. Los mtodos de acceso se refieren a las capacidades que el subsistema de archivos provee para accesar datos dentro de los directorios y medios de almacenamiento en general. 'e ubican tres formas generales6 acceso secuencial, acceso directo y acceso directo indeDado.

10

Sistemas Operativos

Samuel Alexander Escoto

Acceso secuencial6 %s el mtodo ms lento y consiste en recorrer los componentes de un archivo uno en uno hasta llegar al registro deseado. 'e necesita que el orden lgico de los registros sea igual al orden f$sico en el medio de almacenamiento. %ste tipo de acceso se usa com;nmente en cintas y cartuchos. Acceso directo6 5ermite accesar cualquier sector o registro inmediatamente, por medio de llamadas al sistema como la de seeG. %ste tipo de acceso es rpido y se usa com;nmente en discos duros y discos o archivos mane#ados en memoria de acceso aleatorio. N Acceso directo indeDado6 %ste tipo de acceso es ;til para grandes vol;menes de informacin o datos. Bonsiste en que cada archivo tiene una tabla de apuntadores, donde cada apuntador va a la direccin de un bloque de $ndices, lo cual permite que el archivo se eDpanda a travs de un espacio enorme. Bonsume una cantidad importante de recursos en las tablas de $ndices pero es muy rpido. Dperaciones soportadas por el su#sistema de arc)ivos -ndependientemente de los algoritmos de asignacin de espacio, de los mtodos de acceso y de la forma de resolver las peticiones de lectura y escritura, el subsistema de archivos debe proveer un con#unto de llamadas al sistema para operar con los datos y de proveer mecanismos de proteccin y seguridad. Las operaciones bsicas que la mayor$a de los sistemas de archivos soportan son6 Brear + create , 6 5ermite crear un archivo sin datos, con el propsito de indicar que ese nombre ya est usado y se deben crear las estructuras bsicas para soportarlo. .orrar + delete ,6 %liminar el archivo y liberar los bloques para su uso posterior. Abrir + open ,6 Antes de usar un archivo se debe abrir para que el sistema conozca sus atributos, tales como el due:o, la fecha de modificacin, etc. N Berrar + close ,6 =espus de realizar todas las operaciones deseadas, el archivo debe cerrarse para asegurar su integridad y para liberar recursos de su control en la memoria. Leer o %scribir + read, write ,6 A:adir informacin al archivo o leer el caracter o una cadena de caracteres a partir de la posicin actual. N Boncatenar + append ,6 %s una forma restringida de la llamada Iwrite", en la cual slo se permite a:adir informacin al final del archivo. N Localizar + seeG ,6 5ara los archivos de acceso directo se permite posicionar el apuntador de lectura o escritura en un registro aleatorio, a veces a partir del inicio o final del archivo. Leer atributos6 5ermite obtener una estructura con todos los atributos del archivo especificado, tales como permisos de escritura, de borrado, e#ecucin, etc. 5oner atributos6 5ermite cambiar los atributos de un archivo, por e#emplo en >?-@, donde todos los dispositivos se mane#an como si fueran archivos, es posible cambiar el comportamiento de una terminal con una de estas llamadas. Cenombrar + rename ,6 5ermite cambiarle el nombre e incluso a veces la posicin en la organizacin de directorios del archivo especificado. Los subsistemas de archivos tambin proveen un con#unto de llamadas para operar sobre directorios, las ms comunes son crear, borrar, abrir, cerrar, renombrar y leer. 'us funcionalidades son obvias, pero eDisten tambin otras dos operaciones no tan comunes que son la de Icrear una liga" y la de Idestruir la liga". La operacin de crear una liga sirve para que desde diferentes puntos de la organizacin de directorios se pueda accesar un mismo directorio sin necesidad de copiarlo o duplicarlo. La llamada a Idestruir la liga" lo que hace es eliminar esas referencias, siendo su efecto la de eliminar las ligas y no el directorio real. %l directorio real es eliminado hasta que la llamada a Idestruir liga" se realiza sobre l. (l5unas 7acilidades e-tras de los sistemas de arc)ivos Algunos sistemas de archivos proveen herramientas al administrador del sistema para facilitarle la vida. Las ms notables es la facilidad de compartir archivos y los sistemas de Icotas". La facilidad de compartir archivos se refiere a la posibilidad de que los permisos de los archivos o directorios de#en que un grupo de usuarios puedan accesarlos para diferentes operaciones& leer, escribir, borrar, crear, etc. %l due:o verdadero es quien decide qu permisos se aplicarn al grupo e, incluso, a otros usuarios que no formen parte de su grupo. La facilidad de Icotas" se refiere a que el sistema de archivos es capaz de llevar un control para que cada usuario pueda usar un mDimo de espacio en disco duro. Buando el usuario eDcede ese l$mite, el sistema le env$a un mensa#e y le niega el permiso de seguir escribiendo, obligndolo a borrar algunos

11

Sistemas Operativos

Samuel Alexander Escoto

archivos si es que quiere almacenar otros o que crezcan. La versin de >?-@ 'un(' contiene esa facilidad. Sistemas de (rc)ivos (islados Los sistemas de archivos aislados son aquellos que residen en una sola computadora y no eDiste la posibilidad de que, a;n estando en una red, otros sistemas puedan usar sus directorios y archivos. 5or e#emplo, los archivos en discos duros en el sistema *'<=(' clsico se puede ver en esta categor$a. Sistemas de (rc)ivos Compartidos o de 9ed %stos sistemas de archivos es factible accesarlos y usarlos desde otros nodos en una red. Eeneralmente eDiste un Iservidor" que es la computadora en donde reside el sistema de archivos f$sicamente, y por otro lado estn los Iclientes", que se valen del servidor para ver sus archivos y directorios de manera como si estuvieran localmente en el cliente. Algunos autores les llaman a estos sistemas de archivos Isistemas de archivos distribuidos" lo cual no se va a discutir en este traba#o. Los sistemas de archivos compartidos en red ms populares son los provistos por ?etware, el Cemote )ilGe 'haring + C)' en >?-@ ,, ?etworG )ile 'ystem + ?)' de 'un *icrosystems , y el Andrew )ile 'ystem + A)' ,. %n general, lo que proveen los servidores es un medio de que los clientes, localmente, realicen peticiones de operaciones sobre archivos los cuales con Iatrapadas" por un Idriver" o un Imdulo" en el n;cleo del sistema operativo, el cual se comunica con el servidor a travs de la red y la operacin se e#ecuta en el servidor. %Disten servidores de tipo &stateless y no<stateless&. >n servidor &stateless& no registra el estado de las operaciones sobre los archivos, de manera que el cliente se encarga de todo ese traba#o. La venta#a de este esquema es que si el servidor falla, el cliente no perder informacin ya que sta se guarda en memoria localmente, de manera que cuando el servidor reanude su servicio el cliente proseguir como si nada hubiese sucedido. Bon un servidor &no<stateless&, esto no es posible. La proteccin sobre las operaciones se lleva a cabo tanto el los clientes como en el servidor6 si el usuario quiere e#ecutar una operacin indebida sobre un archivo, recibir un mensa#e de error y posiblemente se env$e un registro al subsistema de Iseguridad" para informar al administrador del sistema de dicho intento de violacin. %n la prctica, el con#unto de permisos que cada usuario tiene sobre el total de archivos se almacena en estructuras llamadas Ilistas de acceso" + access lists ,. 1endencias actuales Bon el gran auge de las redes de comunicaciones y su incremento en el ancho de banda, la proliferacin de paquetes que ofrecen la comparicin de archivos es com;n. Los esquemas ms solicitados en la industria es el poder accesar los grandes vol;menes de informacin que residen en grandes servidores desde las computadoras personales y desde otros servidores tambin. %s una realidad que la solucin ms socorrida en las empresas peque:as es usar ?ovell ?etware en un servidor JA9 o superior y accesar los archivos desde mquinas similares. A veces se requieren soluciones ms comple#as con ambientes heterogneos6 diferentes sistemas operativos y diferentes arquitecturas. >no de los sistemas de archivos ms eDpandidos en estaciones de traba#o es el ?)', y prcticamente todas las versiones de >?-@ traen instalado un cliente y hasta un servidor de este servicio. %s posible as$ que una gran cantidad de computadoras personales +de M! a A! , accesen grandes vol;menes de informacin o paqueter$a +desde M a A Eiga bites , desde una sola estacin de traba#o, e incluso tener la fleDibilidad de usar al mismo tiempo servidores de ?ovell y ?)'. 'oluciones similares se dan con algunos otros paquetes comerciales, pero basta ya de Igoles". Lo importante aqu$ es observar que el mundo se va moviendo poco a poco hacia soluciones distribuidas, y hacia la estandarizacin que, muchas veces, es Ide facto". 2.'. Se5uridad proteccin La seguridad reviste dos aspectos, uno es garantizar la identidad de los usuarios y otro es definir lo que puede hacer cada uno de ellos. %l primer aspecto se trata ba#o el trmino de autenticacin, mientras que el segundo se hace mediante los privilegios. La seguridad es una de las funciones del sistema operativo que, para llevarla a cabo, se ha de basar en los mecanismos de proteccin que le proporciona el hardware. (utenticacin.

12

Sistemas Operativos

Samuel Alexander Escoto

%l ob#etivo de la autenticacin es determinar que un usuario+ persona, servicio o computadora, es quien dice ser. Privile5ios. Los privilegios especifican los recursos que puede acceder cada usuario. 5ara simplificar la informacin de privilegi2os es corriente organizar a los usuarios en grupos, asignando determinados privilegios a cada grupo. 2.1+. (ctivacin del sistema operativo. >na vez presentadas las funciones y principales componentes del sistema operativo, es importante describir cules son las acciones que activan la e#ecucin del mismo, el sistema operativo es un servidor que est a la espera de que se encargue traba#o. 2.11. Inter7a! del pro5ramador. 2.13. Eistoria de los sistemas operativos Los 'istemas (perativos, al igual que el Fardware de los computadores, han sufrido una serie de cambios revolucionarios llamados generaciones. %n el caso del Fardware, las generaciones han sido marcadas por grandes avances en los componentes utilizados, pasando de vlvulas + primera generacin , a transistores + segunda generacin ,, a circuitos integrados + tercera generacin,, a circuitos integrados de gran y muy gran escala +cuarta generacin,. Bada generacin 'ucesiva de hardware ha ido acompa:ada de reducciones substanciales en los costos, tama:o, emisin de calor y consumo de energ$a, y por incrementos notables en velocidad y capacidad. Generacin Cero >d4cada de 1'4+@ Los primeros sistemas computacionales no pose$an sistemas operativos. Los usuarios ten$an completo acceso al lengua#e de la maquina. 1odas las instrucciones eran codificadas a mano. Primera Generacin >d4cada de 1'5+@ Los sistemas operativos de los a:os cincuenta fueron dise:ados para hacer mas fluida la transicin entre traba#os. Antes de que los sistemas fueran dise:ados, se perd$a un tiempo considerable entre la terminacin de un traba#o y el inicio del siguiente. %ste fue el comienzo de los sistemas de procesamiento por lotes, donde los traba#os se reun$an por grupos o lotes. Buando el traba#o estaba en e#ecucin, este tenia control total de la maquina. Al terminar cada traba#o, el control era devuelto al sistema operativo, el cual limpiaba y le$a e iniciaba el traba#o siguiente. Al inicio de los !"s esto hab$a me#orado un poco con la introduccin de tar#etas perforadas +las cuales serv$an para introducir los programas de lengua#es de mquina,, puesto que ya no hab$a necesidad de utilizar los tableros enchufables. Adems el laboratorio de investigacin Eeneral *otors implement el primer sistema operativo para la -.* O!M. Los sistemas de los !"s generalmente e#ecutaban una sola tarea, y la transicin entre tareas se suavizaba para lograr la mDima utilizacin del sistema. %sto se conoce como sistemas de procesamiento por lotes de un slo flu#o, ya que los programas y los datos eran sometidos en grupos o lotes. La introduccin del transistor a mediados de los !"s cambi la imagen radicalmente. 'e crearon mquinas suficientemente confiables las cuales se instalaban en lugares especialmente acondicionados, aunque slo las grandes universidades y las grandes corporaciones o bien las oficinas del gobierno se pod$an dar el lu#o de tenerlas. 5ara poder correr un traba#o +programa,, ten$an que escribirlo en papel +en )ortran o en lengua#e ensamblador, y despus se perforar$a en tar#etas. %nseguida se llevar$a la pila de tar#etas al cuarto de introduccin al sistema y la entregar$a a uno de los operadores. Buando la computadora terminara el traba#o, un operador se dirigir$a a la impresora y desprender$a la salida y la llevar$a al cuarto de salida, para que la recogiera el programador. Se5unda Generacin >a mitad de la d4cada de 1'6+@ La caracter$stica de los sistemas operativos fue el desarrollo de los sistemas compartidos con multiprogramacin, y los principios del multiprocesamiento. %n los sistemas de multiprogramacin, varios programas de usuario se encuentran al mismo tiempo en el almacenamiento principal, y el procesador se cambia rpidamente de un traba#o a otro. %n los sistemas de multiprocesamiento se utilizan varios procesadores en un solo sistema computacional, con la finalidad de incrementar el poder de procesamiento de la maquina.

13

Sistemas Operativos

Samuel Alexander Escoto

La independencia de dispositivos aparece despus. >n usuario que desea escribir datos en una cinta en sistemas de la primera generacin tenia que hacer referencia especifica a una unidad de cinta particular. %n la segunda generacin, el programa del usuario especificaba tan solo que un archivo iba a ser escrito en una unidad de cinta con cierto n;mero de pistas y cierta densidad. 'e desarrollo sistemas compartidos, en la que los usuarios pod$an acoplarse directamente con el computador a travs de terminales. 'urgieron sistemas de tiempo real, en que los computadores fueron utilizados en el control de procesos industriales. Los sistemas de tiempo real se caracterizan por proveer una respuesta inmediata. 1ercera Generacin >mitad de d4cada 1'6+ a mitad d4cada de 1'"+@ 'e inicia en M29J, con la introduccin de la familia de computadores 'istema789! de -.*. Los computadores de esta generacin fueron dise:ados como sistemas para usos generales . Basi siempre eran sistemas grandes, voluminosos, con el propsito de serlo todo para toda la gente. %ran sistemas de modos m;ltiples, algunos de ellos soportaban simultneamente procesos por lotes, tiempo compartido, procesamiento de tiempo real y multiprocesamiento. %ran grandes y costosos, nunca antes se hab$a construido algo similar, y muchos de los esfuerzos de desarrollo terminaron muy por arriba del presupuesto y mucho despus de lo que el planificador marcaba como fecha de terminacin. %stos sistemas introdu#eron mayor comple#idad a los ambientes computacionalesL una comple#idad a la cual, en un principio, no estaban acostumbrados los usuarios. Cuarta Generacin >mitad de d4cada de 1'"+ en adelante@ Los sistemas de la cuarta generacin constituyen el estado actual de la tecnolog$a. *uchos dise:adores y usuarios se sienten aun incmodos, despus de sus eDperiencias con los sistemas operativos de la tercera generacin. Bon la ampliacin del uso de redes de computadores y del procesamiento en l$nea los usuarios obtienen acceso a computadores ale#ados geogrficamente a travs de varios tipos de terminales. Los sistemas de seguridad se ha incrementado mucho ahora que la informacin pasa a travs de varios tipos vulnerables de l$neas de comunicacin. La clave de cifrado esta recibiendo mucha atencinL han sido necesario codificar los datos personales o de gran intimidad para queL aun si los datos son eDpuestos, no sean de utilidad a nadie mas que a los receptores adecuados. %l porcenta#e de la poblacin que tiene acceso a un computador en la dcada de los ochenta es mucho mayor que nunca y aumenta rpidamente. %l concepto de maquinas virtuales es utilizado. %l usuario ya no se encuentra interesado en los detalles f$sicos deL sistema de computacin que esta siendo accedida. %n su lugar, el usuario ve un panorama llamado maquina virtual creado por el sistema operativo. Los sistemas de bases de datos han adquirido gran importancia. ?uestro mundo es una sociedad orientada hacia la informacin, y el traba#o de las bases de datos es hacer que esta informacin sea conveniente accesible de una manera controlada para aquellos que tienen derechos de acceso. Capitulo 3 Procesos >no de los mdulos ms importantes de un sistema operativo es la de administrar los procesos y tareas del sistema de cmputo. %n esta seccin se revisarn dos temas que componen o conciernen a este mdulo6 la planificacin del procesador y los problemas de concurrencia. Plani7icacin del procesador La planificacin del procesador se refiere a la manera o tcnicas que se usan para decidir cunto tiempo de e#ecucin y cuando se le asignan a cada proceso del sistema. (bviamente, si el sistema es monousuario y monotarea no hay mucho que decidir, pero en el resto de los sistemas esto es crucial para el buen funcionamiento del sistema. 0iveles de plani7icacin %n los sistemas de planificacin generalmente se identifican tres niveles6 el alto, em medio y el ba#o. %l nivel alto decide que traba#os +con#unto de procesos, son candidatos a convertirse en procesos compitiendo por los recursos del sistemaL el nivel intermedio decide que procesos se suspenden o reanudan para lograr ciertas metas de rendimiento mientras que el planificador de

14

Sistemas Operativos

Samuel Alexander Escoto

ba#o nivel es el que decide que proceso, de los que ya estn listos +y que en alg;n momento paso por los otros dos planificadores, es al que le toca ahora estar e#ecutndose en la unidad central de procesamiento. %n este traba#o se revisaran principalmente los planificadores de ba#o nivel porque son los que finalmente eligen al proceso en e#ecucin. D#8etivos de la plani7icacin >na estrategia de planificacin debe buscar que los procesos obtengan sus turnos de e#ecucin apropiadamente, con#untamente con un buen rendimiento y minimizacin de la sobrecarga +overhead, del planificador mismo. %n general, se buscan cinco ob#etivos principales6 6usticia o Imparcialidad6 1odos los procesos son tratados de la misma forma, y en alg;n momento obtienen su turno de e#ecucin o intervalos de tiempo de e#ecucin hasta su terminacin eDitosa. Ma-imi!ar la Produccin6 %l sistema debe de finalizar el mayor numero de procesos en por unidad de tiempo. Ma-imi!ar el 1iempo de 9espuesta6 Bada usuario o proceso debe observar que el sistema les responde consistentemente a sus requerimientos. %vitar el apla!amiento inde7inido6 Los procesos deben terminar en un plazo finito de tiempo. %l sistema de#e ser predeci#le6 Ante cargas de traba#o ligeras el sistema debe responder rpido y con cargas pesadas debe ir degradndose paulatinamente. (tro punto de vista de esto es que si se e#ecuta el mismo proceso en cargas similares de todo el sistema, la respuesta en todos los casos debe ser similar. Caracter:sticas a considerar de los procesos ?o todos los equipos de cmputo procesan el mismo tipo de traba#os, y un algoritmo de planificacin que en un sistema funciona eDcelente puede dar un rendimiento psimo en otro cuyos procesos tienen caracter$sticas diferentes. %stas caracter$sticas pueden ser6 Bantidad de %ntrada7'alida6 %Disten procesos que realizan una gran cantidad de operaciones de entrada y salida +aplicaciones de bases de datos, por e#emplo,. Bantidad de >so de B5>6 %Disten procesos que no realizan muchas operaciones de entrada y salida, sino que usan intensivamente la unidad central de procesamiento. 5or e#emplo, operaciones con matrices. 5rocesos de Lote o -nteractivos6 >n proceso de lote es ms eficiente en cuanto a la lectura de datos, ya que generalmente lo hace de archivos, mientras que un programa interactivo espera mucho tiempo +no es lo mismo el tiempo de lectura de un archivo que la velocidad en que una persona teclea datos, por las respuestas de los usuarios. 5rocesos en 1iempo Ceal6 'i los procesos deben dar respuesta en tiempo real se requiere que tengan prioridad para los turnos de e#ecucin. Longevidad de los 5rocesos6 %Disten procesos que tipicamente requeriran varias horas para finalizar su labor, mientras que eDisten otros que solonecesitan algunos segundos. Plani7icacin apropiativa o no apropiativa >preemptive or not preemptive@ La planificacin apropiativa es aquella en la cual, una vez que a un proceso le toca su turno de e#ecucin ya no puede ser suspendido, ya no se le puede arrebatar la unidad central de procesamiento. %ste esquema puede ser peligroso, ya que si el proceso contiene accidental o deliberadamente ciclos infinitos, el resto de los procesos pueden quedar aplazados indefinidamente. >na planificacin no apropiativa es aquella en que eDiste un relo# que lanza interrupciones periodicas en las cuales el planificador toma el control y se decide si el mismo proceso seguir e#ecutndose o se le da su turno a otro proceso. %ste mismo relo# puede servir para lanzar procesos mane#ados por el relo# del sistema. 5or e#emplo en los sistemas >?-@ eDisten los "cron#obs" y "at#obs", los cuales se programan en base a la hora, minuto, d$a del mes, d$a de la semana y d$a del a:o. %n una planificacin no apropiativa, un traba#o muy grande aplaza mucho a uno peque:o, y si entra un proceso de alta prioridad est tambin debe esperar a que termine el proceso actual en e#ecucin. (si5nacin del turno de e8ecucin Los algoritmos de la capa ba#a para asignar el turno de e#ecucin se describen a continuacin6

15

Sistemas Operativos

Samuel Alexander Escoto

5or prioridad6 Los procesos de mayor prioridad se e#ecutan primero. 'i eDisten varios procesos de mayor prioridad que otros, pero entre ellos con la misma prioridad, pueden e#ecutarse estos de acuerdo a su orden de llegada o por "round robin". La venta#a de este algoritmo es que es fleDible en cuanto a permitir que ciertos procesos se e#ecuten primero e, incluso, por ms tiempo. 'u desventa#a es que puede provocar aplazamiento indefinido en los procesos de ba#a prioridad. 5or e#emplo, suponga que eDisten procesos de prioridad 3! y procesos de prioridad M!. 'i durante todo el d$a terminan procesos de prioridad 3! al mismo ritmo que entran otros con esa prioridad, el efecto es que los de prioridad M! estarn esperando por siempre. 1ambin provoca que el sistema sea impredecible para los procesos de ba#a prioridad. %l traba#o ms corto primero6 %s dificil de llevar a cabo porque se requiere saber o tener una estimacin de cunto tiempo necesita el proceso para terminar. 5ero si se sabe, se e#ecutan primero aquellos traba#os que necesitan menos tiempo y de esta manera se obtiene el me#or tiempo de respuesta promedio para todos los procesos. 5or e#emplo, si llegan procesos A,.,B,= y % cuyos tiempos de B5> son 39, MA, 3J, M3 y J unidades de tiempo, se observa que el orden de e#ecucin ser %,=,.,B y A +J,M3,MA, 3J y 39 unidades de tiempo respectivamente,. %n la tabla siguiente se muestra en que unidad de tiempo comienza a e#ecutarse cada proceso y como todos comenzaron a esperar desde la unidad cero, se obtiene el tiempo promedio de espera. 5roceso %spera desde 1ermina 1iempo de %spera A ! J J . ! M9 M9 B ! 8J 8J = ! A A % ! AJ AJ 1iempo promedio P +J Q M9 Q 8J Q A Q AJ ,7 P 82 unidades. %l primero en llegar, primero en e#ecutarse6 %s muy simple, los procesos reciben su turno conforme llegan. La venta#a de este algoritmo es que es #usto y no provoca aplazamiento indefinido. La desventa#a es que no aprovecha ninguna caracter$stica de los procesos y puede no servir para unproceso de tiempo real. 5or e#emplo, el tiempo promedio de respuesta puede ser muy malo comparado con el logrado por el del traba#o ms corto primero. Cetomando el mismo e#emplo que en el algoritmo anterior, obtenemos un tiempo de respuesta promedio +39QJJQ9AQA!QAJ,7 P 9! unidades, el cual es muy superior a las 82 unidades que es el me#or tiempo posible. Cound Cobin6 1ambin llamada por turno, consiste en darle a cada proceso un intervalo de tiempo de e#ecucin +llamado time slice,, y cada vez que se vence ese intervalo se copia el conteDto del proceso a un lugar seguro y se le da su turno a otro proceso. Los procesos estn ordenados en una cola circular. 5or e#emplo, si eDisten tres procesos, el A,. y B, dos repasadas del planificador dar$an sus turnos a los procesos en el orden A,.,B,A,.,B. La venta#a de este algoritmo es su simplicidad, es #usto y no provoca aplazamiento indefinido. %l tiempo restante ms corto6 %s parecido al del traba#o ms corto primero, pero aqui$ se est calculando en todo momento cunto tiempo le resta para terminar a todos los procesos, incluyendo los nuevos, y aquel que le quede menos tiempo para finalizar es escogido para e#ecutarse. La venta#a es que es muy ;til para sistemas de tiempo compartido porque se acerca mucho al me#or tiempo de respuesta, adems de responder dinmicamente a la longevidad de los procesosL su desventa#a es que provoca ms sobrecarga porque el algoritmo es ms comple#o. La tasa de respuesta ms alta6 %ste algoritmo concede el truno de e#ecucin al proceso que produzca el valor mayor de la siguiente formula6 tiempo que ha esperado Q tiempo total para terminar valor P NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN tiempo total para terminar. %s decir, que dinmicamente el valor se va modificando y me#ora un poco las deficiciencias del algoritmo del traba#o ms corto primero.

16

Sistemas Operativos

Samuel Alexander Escoto

5or politica6 >na forma de asignar el turno de e#ecucin es por politica, en la cual se establece alg;n reglamento espec$fico que el planificador debe obedecer. 5or e#emplo, una politica podr$a ser que todos los procesos reciban el mismo tiempo de uso de B5> en cualquier momento. %sto sig< nifica, por e#emplo, que si eDisten 3 procesos y han recibido 3! unidades de tiempo cada uno +tiempo acumulado en time slices de unidades, y en este momento entra un tercer proceso, el planificador le dara inmediatamente el turno de e#ecucin por 3! unidades de tiempo. >na vez que todos los procesos estn "pare#os" en uso de B5>, se les aplica "round robin".

Capitulo 4 Gestin de Memoria La memoria es uno de los principales recursos de la computadora, la cual debe de administrarse con mucho cuidado. Aunque actualmente la mayor$a de los sistemas de cmputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones actuales tienen tambin altos requerimientos de memoria, lo que sigue generando escasez de memoria en los sistemas multitarea y7o multiusuario. La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste en llevar un registro de las partes de memoria que se estn utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando stos la necesiten y liberndola cuando terminen, as$ como administrar el intercambio entre la memoria principal y el disco en los casos en los que la memoria principal no le pueda dar capacidad a todos los procesos que tienen necesidad de ella. Los sistemas de administracin de memoria se pueden clasificar en dos tipos6 los que desplazan los procesos de la memoria principal al disco y viceversa durante la e#ecucin y los que no. %l propsito principal de una computadora es el de e#ecutar programas, estos programas, #unto con la informacin que accesan deben de estar en la memoria principal +al menos parcialmente, durante la e#ecucin. 5ara optimizar el uso del B5> y de la memoria, el sistema operativo debe de tener varios procesos a la vez en la memoria principal, para lo cual dispone de varias opciones de administracin tanto del procesador como de la memoria. La seleccin de uno de ellos depende principalmente del dise:o del hardware para el sistema. A continuacin se observarn los puntos correspondientes a la administracin de la memoria. Memoria real La memoria real o principal es en donde son e#ecutados los programas y procesos de una computadora y es el espacio real que eDiste en memoria para que se e#ecuten los procesos. 5or lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la informacin contenida en ella es de ms rpido acceso. 'olo la memoria cache es ms rpida que la principal, pero su costo es a su vez mayor. Sin intercam#io Monopro5ramacin sin intercam#io o pa5inacin Buando solo se tiene un proceso que ocupe la memoria a la vez, el esquema de la administracin de la memoria es el ms sencillo que hay. 'in embargo, ste mtodo ya no tiene aplicacin en la actualidad, ya que era visto en las computadoras con sistemas operativos de un solo usuario y una sola tarea. %l usuario introduc$a su disco a la computadora +por lo general, la mquina no contaba con disco duro, y e#ecutaba su aplicacin, la cual acaparaba toda la mquina. Sistema operativo en "O#

ro!rama del usuario

ro!rama del usuario

$ontroladores de dispositivos en "O# ro!rama del usuario Sistema operativo en "A#

17

Sistemas Operativos
Sistema operativo en "A#
+a,

Samuel Alexander Escoto

+b

+c, )ig.M. %#emplos de distribucin de la memoria principal con un sistema operativo y un solo proceso de usuario La figura M muestra la organizacin de la memoria usando este sistema. La memoria se divide entre el sistema operativo y el proceso de un solo usuario. La ms conocida es la que muestra el inciso c, que es la usada por las 5BR de -.*. Los controladores de dispositivo los almacena en memoria C(*, en un bloque de AS de la parte superior del espacio de direcciones de M*. %l e#emplo ms claro de este esquema es el que podemos ver en el sistema operativo *'<=(', en que el usuario escribe un comando al sistema y al e#ecutarse el sistema operativo lo carga a memoria desde el disco y realiza sus funciones. Buando el proceso termina la memoria es liberada y le muestra al usuario el indicador de comandos + prompt, en la pantalla. Multipro5ramacin uso de memoria %sta organizacin facilita la programacin de una aplicacin al dividirla en dos o ms procesos. Adems ofrece la capacidad de tener ms de un proceso a la vez en memoria as$ puede ofrecer servicios a varios usuarios a la vez. %l esquema de multiprogramacin incrementa el aprovechamiento del B5>, dado que a diferencia de la monoprogramacin en donde solo un proceso reside en memoria a la vez limitando el uso del procesador a las llamadas que requiera dicho proceso, desperdiciando un promedio del A!T del tiempo del procesador. %n cambio la multiprogramacin, al tener varios procesos en la memoria principal y dividindose el tiempo de uso del procesador, logra reducir drsticamente el desperdicio del procesador. Multipro5ramacin con particiones 7i8as 5ara poder implementar la multiprogramacin, se puede hacer uso de particiones fi#as o variables en la memoria. %n el caso de las particiones fi#as, la memoria se puede organizar dividindose en diversas partes, las cuales pueden variar en tama:o. %sta particin la puede hacer el usuario en forma manual, al iniciar una sesin con la mquina. >na vez implementada la particin, hay dos maneras de asignar los procesos a ella. La primera es mediante el uso de una cola ;nica +figura 3a, que asigna los procesos a los espacios disponibles de la memoria conforme se vayan desocupando. %l tama:o del hueco de memoria disponible es usado para localizar en la cola el primer proceso que quepa en l. (tra forma de asignacin es buscar en la cola el proceso de tama:o mayor que se a#uste al hueco, sin embargo hay que tomar en cuenta que tal mtodo discrimina a los procesos ms peque:os. =icho problema podr$a tener solucin si se asigna una particin peque:a en la memoria al momento de hacer la particin inicial, el cual ser$a eDclusivo para procesos peque:os. artici%n 3

700 & artici%n 3 artici%n 2 400 & artici%n 1 Sistema 100 & Operativo

700 &

artici%n 2 400 & artici%n 1

18

Sistema Operativo

100 & 0

Sistemas Operativos

Samuel Alexander Escoto

+b,

)ig. 3. +a, 5articiones fi#as en memoria con una cola ;nica de entrada. +b, 5articiones fi#as en memoria con colas eDclusivas para cada tama:o diferente de la particin. %l espacio asignado a la particin 3 est en desuso. %sta idea nos lleva a la implementacin de otro mtodo para particiones fi#as, que es el uso de diferentes colas independientes +figura 3b, eDclusivas para cierto rango en el tama:o de los procesos. =e esta manera al llegar un proceso, ste ser$a asignado a la cola de tama:o ms peque:o que la pueda aceptar. La desventa#a en esta organizacin es que si una de las colas tiene una larga lista de procesos en espera, mientras otra cola esta vac$a, el sector de memoria asignado para ese tama:o de procesos estar$a desperdicindose. Con intercam#io Multipro5ramacin con particiones varia#les %ste esquema fue originalmente usado por el sistema operativo -.* ('789! +llamado *)1,, el cual ya no est en uso. %l sistema operativo lleva una tabla indicando cules partes de la memoria estn disponibles y cules estn ocupadas. -nicialmente, toda la memoria est disponible para los procesos de usuario y es considerado como un gran bloque o hueco ;nico de memoria. Buando llega un proceso que necesita memoria, buscamos un hueco lo suficientemente grande para el proceso. 'i encontramos uno, se asigna ;nicamente el espacio requerido, manteniendo el resto disponible para futuros procesos que requieran de espacio. Bonsideremos el e#emplo de la figura 8, en donde se cuenta un espacio reservado para el sistema operativo en la memoria ba#a de J!!S y un espacio disponible para procesos de usuario de 3M9!S, siendo un total de memoria del sistema de 3 9!S. =ada la secuencia de procesos de la figura y usando un algoritmo de First Come First Served +FCFS, se puede asignar de inmediato memoria a los procesos 5M, 53 y 58, creando el mapa de memoria de la figura J+a, en el cual queda un hueco de 39!S que ya no puede ser utilizado por el siguiente proceso dado que no es suficiente para abarcarlo. 0 2560& rocesos 1 2160& 2560&
2 3 4 5

Sistema Operativo 'ista de tra(a)os 600& 10 #emoria *iempo 1000& 5 300& 20 700& 8 500& 15

)ig. 8. %#emplo de una divisin inicial de memoria y una lista de traba#os.


0 400&

Sistema Operativo
1

Sistema Operativo
1

Sistema Operativo
1

Sistema Operativo +ueco

Sistema Operativo

400&

400&

400&

400& 900&

19
1000& 2000& 2300& 2560& 1000& 2000& 2300& 2560& 1000& 2000& 2300& 2560& 2000& 2300& 2560&

Sistemas Operativos
1000&

Samuel Alexander Escoto


+ueco
4

1000&

*ermina
2

Asi!nar +ueco

*ermina

Asi!nar

2000& 2000& 2300& 2560&


3 3

+ueco
3

1700&

+ueco
3

1700&

+ueco
3

+ueco

+a,

+ueco

+b,

+ueco

+c,

+ueco

+d,

+ueco

+e, )ig. J. %#emplo de asignacin de procesos en la memoria principal. >sando un proceso de asignacin Round-Robin con un quantum de M unidad de tiempo, el proceso 53 terminar$a en la unidad de tiempo MJ, liberando esa cantidad de memoria, como se muestra en la figura J+b,. %ntonces el sistema operativo checa la lista de traba#os y asigna el siguiente proceso que quepa en el espacio de memoria liberado. %l proceso 5 J produce el mapa de memoria que se muestra en la figura J+c,. %l proceso 5 M terminar en la unidad de tiempo 3A para producir el mapa de la figura J+d, y entonces se asigna el proceso 5 generando el mapa de la figura J+e,. Buando a un proceso se le asigna un espacio y es cargado a la memoria principal, puede entonces competir para el uso del B5>. Compactacin de memoria Buando un proceso llega y necesita memoria, el sistema operativo busca en la tabla de huecos alguno lo suficientemente grande para el proceso. 'i el hueco es muy grande, lo parte en dos. >na parte es asignada al proceso y la otra se identifica como hueco. Buando el proceso termina y la memoria es liberada, el espacio es identificado como un hueco ms en la tabla y si el nuevo hueco es adyacente con otro, ambos huecos se unen formando un solo hueco ms grande. %n ese momento se debe de checar si no eDisten procesos a los que este nuevo hueco pueda darles cabida.
Sistema Operativo
400& 400&

Sistema Operativo

900& 1000&

100&

900&

4 4

$ompactaci%n
1600&

1700&
3

300&
2000&
3

1900&

660&

2300&

260&
2560& 2560&

+a, +b, )ig. . %#emplo de compactacin de huecos no adyacentes.

20

Sistemas Operativos

Samuel Alexander Escoto

%n la figura se muestra como se modifica el mapa de la memoria despus de compactar huecos no adyacentes generados despus de intercambios realizados en el e#emplo de la figura J. (si5nacin din;mica %l proceso de compactacin del punto anterior es una instancia particular del problema de asignacin de memoria dinmica, el cual es el cmo satisfacer una necesidad de tama:o n con una lista de huecos libres. %Disten muchas soluciones para el problema. %l con#unto de huecos es analizado para determinar cul hueco es el ms indicado para asignarse. Las estrategias ms comunes para asignar alg;n hueco de la tabla son6 5rimer a#uste6 Bonsiste en asignar el primer hueco con capacidad suficiente. La b;squeda puede iniciar ya sea al inicio o al final del con#unto de huecos o en donde termin la ;ltima b;squeda. La b;squeda termina al encontrar un hueco lo suficientemente grande. *e#or a#uste6 .usca asignar el espacio ms peque:o de los espacios con capacidad suficiente. La b;squeda se debe de realizar en toda la tabla, a menos que la tabla est ordenada por tama:o. %sta estrategia produce el menor desperdicio de memoria posible. 5eor a#uste6 Asigna el hueco ms grande. >na vez ms, se debe de buscar en toda la tabla de huecos a menos que est organizada por tama:o. %sta estrategia produce los huecos de sobra ms grandes, los cuales pudieran ser de ms uso si llegan procesos de tama:o mediano que quepan en ellos. 'e ha demostrado mediante simulacros que tanto el primer y el me#or a#uste son me#ores que el peor a#uste en cuanto a minimizar tanto el tiempo del almacenamiento. ?i el primer o el me#or a#uste es claramente el me#or en trminos de uso de espacio, pero por lo general el primer a#uste es ms rpido. (dministracin de la memoria con mapas de #its %ste tipo de administracin divide la memoria en unidades de asignacin, las cuales pueden ser tan peque:as como unas cuantas palabras o tan grandes como varios Gilobytes. A cada unidad de asignacin le corresponde un bit en el mapa de bits, el cual toma el valor de ! si la unidad est libre y M si est ocupada +o viceversa,. La figura 9 muestra una parte de la memoria y su correspondiente mapa de bits. A 0 11111000 11111111 11001111 11111000 8 , $ 16 24 E

)ig. 9. %#emplo de un mapa de bits para la administracin de la memoria. >n mapa de bits es una forma sencilla para llevar un registro de las palabras de la memoria en una cantidad fi#a de memoria, puesto que el tama:o del mapa slo depende del tama:o de la memoria y el tama:o de la unidad de asignacin. (dministracin de la memoria con listas li5adas (tra forma de mantener un registro de la memoria es mediante una lista ligada de los segmentos de memoria asignados o libres, en donde un segmento puede ser un proceso o un hueco entre dos procesos. La memoria de la figura O+a, est mostrada como una lista ligada de segmentos en la figura O+b,. Bada entrada de la lista especifica un hueco +F, o un proceso +5,, la direccin donde comienza, su longitud y un apuntador a la siguiente entrada. A 0 8 , $ 16 24 E

21

Sistemas Operativos

Samuel Alexander Escoto

14

18

20

26

29

)ig. O. %#emplo de listas ligadas. %n este e#emplo, la lista de segmentos est ordenada por direcciones, lo que da la venta#a de que al terminar o intercambiar un proceso, la actualizacin de la lista es directa. (si5nacin del )ueco de intercam#io %n algunos sistemas, cuando el proceso se encuentra en la memoria, no hay un hueco en el disco asignado a l. Buando deba intercambiarse, se deber asignar un hueco para l en el rea de intercambio del disco. Los algoritmos para la administracin del hueco de intercambio son los mismos que se utilizan para la administracin de la memoria principal. %n otros sistemas, al caerse un proceso, se le asigna un hueco de intercambio en el disco. Buando el proceso sea intercambiado, siempre pasar al hueco asignado, en vez de ir a otro lugar cada vez. Buando el proceso concluya, se libera el hueco de intercambio. La ;nica diferencia es que el hueco en disco necesario para un proceso debe representarse como un n;mero entero de bloques del disco. 5or e#emplo, un proceso de M8. S debe utilizar MJS +usando bloques de MS,. 2ra5mentacin La fragmentacin es la memoria que queda desperdiciada al usar los mtodos de gestin de memoria que se vieron en los mtodos anteriores. 1anto el primer a#uste, como el me#or y el peor producen fragmentacin eDterna. La fragmentacin es generada cuando durante el reemplazo de procesos quedan huecos entre dos o ms procesos de manera no contigua y cada hueco no es capaz de soportar ning;n proceso de la lista de espera. 1al vez en con#unto si sea espacio suficiente, pero se requerir$a de un proceso de defragmentacin de memoria o compactacin para lograrlo. %sta fragmentacin se denomina fragmentacin eDterna. %Diste otro tipo de fragmentacin conocida como fragmentacin interna, la cual es generada cuando se reserva ms memoria de la que el proceso va realmente a usar. 'in embargo a diferencia de la eDterna, estos huecos no se pueden compactar para ser utilizados. 'e debe de esperar a la finalizacin del proceso para que se libere el bloque completo de la memoria. Memoria virtual Pa5inacin Fasta ahora, los mtodos que hemos visto de la administracin de la memoria principal, nos han de#ado con un problema6 fragmentacin, +huecos en la memoria que no pueden usarse debido a lo peque:o de su espacio, lo que nos provoca un desperdicio de memoria principal. >na posible solucin para la fragmentacin eDterna es permitir que espacio de direcciones lgicas lleve a cabo un proceso en direcciones no contiguas, as$ permitiendo al proceso ubicarse en cualquier espacio de memoria f$sica que est disponible, aunque est dividida. >na forma de implementar esta solucin es a travs del uso de un esquema de paginacin. La paginacin evita el considerable problema de a#ustar los pedazos de memoria de tama:os variables que han sufrido los esquemas de mane#o de memoria anteriores. =ado a sus venta#as sobre los mtodos previos, la paginacin, 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 +**> U*emory *anagement >nit,. %stas direcciones generadas por los programas se llaman direcciones virtuales y conforman el hueco de direcciones virtuales. %ste hueco se divide en unidades llamadas pginas. Las

22

Sistemas Operativos

Samuel Alexander Escoto

unidades correspondientes en la memoria f$sica se llaman marcos para pgina o frames. Las pginas y los frames tienen siempre el mismo tama:o. 1a#las de p;5inas Bada pgina tiene un n;mero que se utiliza como $ndice en la tabla de pginas, lo que da por resultado el n;mero del marco correspondiente a esa pgina virtual. 'i el bit presente 7 ausente es !, se provoca un se:alamiento + trap, hacia el sistema operativo. 'i el bit es M, el n;mero de marco que aparece en la tabla de pginas se copia en los bits de mayor orden del registro de salida, #unto con el a#uste + offset, de M3 bits, el cual se copia sin modificaciones de la direccin virtual de entrada. Vuntos forman una direccin f$sica de M bits. %l registro de salida se coloca entonces en el bus de la memoria como la direccin en la memoria f$sica. %n teor$a, la asociacin de las direcciones virtuales con las f$sicas se efect;a seg;n lo descrito. %l n;mero de pgina virtual se divide en un n;mero de pgina virtual +los bits superiores,y un a#uste +los bits inferiores,. %l n;mero de pgina virtual se utiliza como un $ndice en la tabla de pginas para encontrar la entrada de esa pgina virtual. %l n;mero de marco +si eDiste, se determina a partir de la tabla de pginas. %l n;mero de marco se asocia al eDtremo superior del a#uste y reemplaza al n;mero de pgina virtual para formar una direccin f$sica que se puede enviar a la memoria. La finalidad de la tabla de pginas es asociar las pginas virtuales con los marcos. %n trminos matemticos, la tabla de pginas es una funcin, cuyo argumento es el n;mero de pgina virtual y como resultado el n;mero del marco f$sico. *ediante el resultado de esta funcin, se puede reemplazar el campo de la pgina virtual de una direccin virtual por un campo de marco, lo que produce una direccin en la memoria f$sica. 'in embargo hay que enfrentar dos aspectos fundamentales6 M. La tabla de pginas puede ser demasiado grande. 3. La asociacin debe ser rpida. %l primer punto proviene del hecho de que las computadoras modernas utilizan direcciones virtuales de al menos 83 bits. 5or e#emplo, si el tama:o de pgina es de JS, un hueco de direcciones de 83 bits tiene un milln de pginasL en el caso de un hueco de direcciones de 9J bits, se tendr$a ms informacin de la que uno quisiera contemplar. %l segundo punto es consecuencia del hecho de que la asociacin virtual U f$sica debe hacerse en cada referencia a la memoria. >na instruccin com;n tiene una palabra de instruccin y tambin un operando de memoria. %ntonces es necesario hacer una, dos o ms referencias a la tabla de pginas por cada instruccin. (l5oritmos de reempla!o de p;5inas Bon el uso del mtodo de paginacin se puede llegar a saturar la memoria si se incrementa demasiado el nivel de multiprogramacin. 5or e#emplo, si se corren seis procesos, cada uno con un tama:o de diez pginas de las cuales en realidad slo utiliza cinco, se tiene un mayor uso del B5> y con marcos de sobra. 5ero pudiera suceder que cada uno de esos procesos quiera usar las diez pginas resultando en una necesidad de 9! marcos, cuando solo hay J! disponibles. %sto provoca sobre<asignacin y mientras un proceso de usuario se est e#ecutando, ocurre un fallo de pgina. %l hardware se bloquea con el sistema operativo, el cual checa en sus tablas internas y se da cuenta que es un fallo de pgina y no un acceso ilegal de memoria. %l sistema operativo determina si la pgina est residiendo en disco, pero tambin determina que no hay marcos de memoria disponibles en la lista de marcos libres. Al ocurrir el fallo de pgina, el sistema operativo debe elegir una pgina para retirarla de la memoria y usar el espacio para la pgina que se necesita para desbloquear el sistema y que el hardware pueda seguir traba#ando. 'i la pgina por eliminar de la memoria fue modificada, se debe volver a escribir al disco para mantener la informacin actualizadaL de lo contrario, si la pgina no fue modificada no es necesario rescribir la informacin a disco y la pgina que se carga simplemente se escribe sobre la pgina a borrar en memoria. La figura A muestra grficamente un intercambio de pginas entre la memoria principal y el disco +memoria secundaria,.

.!ina 23 a eliminar #arco ele!ido para intercam(io de p.!ina .!ina a car!ar

Sistemas Operativos

Samuel Alexander Escoto

*emoria 5rincipal *emoria 'ecundaria )ig. A. 'e elimina de la memoria principal una pgina que no est en uso y se reemplaza por una pgina de la cual el sistema operativo tiene necesidad de uso. (l5oritmo aleatorio %ste algoritmo consiste simplemente en reemplazar aleatoriamente cualquier pgina de la memoria principal, sin hacer ning;n esfuerzo de prediccin. %s el algoritmo ms sencillo dado que no requiere tener ninguna informacin, sin embargo, por no hacer uso de dicha informacin sobre el comportamiento del proceso, no puede lograr un buen desempe:o. (l5oritmo de reempla!o de p;5inas ptimo %ste algoritmo debe de tener el menor $ndice de fallos de pgina de todos los algoritmos. %n teor$a, este algoritmo debe de reemplazar la pgina que no va a ser usada por el periodo ms largo de tiempo. =esafortunadamente, el algoritmo de reemplazo ptimo es fcil en teor$a, pero prcticamente imposible de implementar, dado que requiere conocer a futuro las necesidades del sistema. 1al algoritmo eDiste y ha sido llamado (51 o *-?, pero se usa ;nicamente para estudios de comparaciones. 5or e#emplo, puede resultar muy ;til saber que aunque alg;n nuevo algoritmo no sea ptimo, est entre el M3.8T del ptimo y entre el J.OT en promedio. (l5oritmo de reempla!o de p;5inas se5Fn el uso no tan reciente %ste algoritmo hace uso de los dos bits de estado que estn asociados a cada pgina. %stos bits son6 C, el cual se activa cuando se hace referencia +lectura 7 escritura, a la pgina asociadaL y *, que se activa cuando la pgina asociada es modificada +escritura,. %stos bits deben de ser actualizado cada vez que se haga referencia a la memoria, por esto es de suma importancia que sean activados por el hardware. >na vez activado el bit, permanece en ese estado hasta que el sistema operativo, mediante software, modifica su estado. %stos bits pueden ser utilizados para desarrollar un algoritmo de reemplazo que cuando inicie el proceso, el sistema operativo asigne un valor de ! a ambos bits en todas las pginas. %n cada interrupcin de relo#, limpie el bit C para distinguir cules pginas tuvieron referencia y cules no. Buando ocurre un fallo de pgina, el sistema operativo revisa ambos bits en todas las pginas y las clasifica de la siguiente manera6 Blase !6 La pgina no ha sido referenciada, ni modificada. Blase M6 La pgina no ha sido referenciada, pero ha sido modificada. Blase 36 La pgina ha sido referenciada, pero no ha sido modificada. Blase 86 La pgina ha sido referenciada y tambin modificada. >na vez obtenida la clasificacin, elimina una pgina de manera aleatoria de la primera clase no vac$a con el n;mero ms peque:o. %sto porque para el algoritmo es me#or eliminar una

24

Sistemas Operativos

Samuel Alexander Escoto

pgina modificada sin referencias en al menos un intervalo de relo#, que una pgina en blanco de uso frecuente. A pesar de que este algoritmo no es el ptimo, es fcil de implementar y de comprender y con mucha frecuencia es el ms adecuado. (l5oritmo de reempla!o GPrimero en entrarH primero en salirI >2I2D@ %l algoritmo ms sencillo para remplazo de pginas es el )-)( +)irst -n U )irst (ut,. %ste algoritmo asocia a cada pgina el momento en que sta fue tra$da a memoria. Buando una pgina debe ser reemplazada se selecciona a la ms antigua. ?o es estrictamente necesario registrar el momento de entrada de la pgina a memoria, sino que se puede crear una cola en la que se van agregando las pginas conforme van llegando a la memoria. Buando se debe eliminar una pgina, se selecciona la que est al frente de la lista +o sea, la ms antigua de la lista,. Buando llega una pgina nueva, se inserta en la parte trasera de la cola. %n la figura 2 se representa el funcionamiento de ste algoritmo. .!ina m.s reciente

.!ina m.s anti!ua

)ig. 2. Ceemplazo de pginas mediante el algoritmo )-)(. Al igual que el algoritmo aleatorio, este algoritmo es fcil de comprender y de programar. 'in embargo, su desempe:o no siempre es del todo bueno. La pgina reemplazada puede ser un mdulo de inicializacin que fue usado hace mucho tiempo y ya no se tiene necesidad de l. 5or otro lado, puede contener una variable de uso muy frecuente que fue inicializada de manera temprana y est en uso constante. (l5oritmo de reempla!o de p;5inas de la se5unda oportunidad %ste algoritmo es una modificacin del )-)(. %l algoritmo hace uso del bit de referencia de la pgina. Buando una pgina ha sido seleccionada para reemplazo, se revisa el bit de referencia. 'i tiene valor de !, se procede a reemplazar la pgina. 'i por el contrario, el bit de referencia es M se le da a la pgina una segunda oportunidad. .!ina m.s reciente .!ina m.s anti!ua .!ina seleccionada para reempla0o con (it 1 .!ina m.s anti!ua

.!ina m.s reciente

El (it se cam(ia a 0 1 se actuali0a el tiempo de lle!ada de la p.!ina

)ig. M!. Algoritmo de la segunda oportunidad. Buando esto sucede, se le cambia el bit de referencia a ! y se actualiza su tiempo de llegada al tiempo actual para que la pgina se colocada al final de la cola. =e esta manera, la pgina espera todo un ciclo completo de pginas para ser entonces reemplazada. 'i la pgina tiene un uso muy frecuente, el bit de referencia se mantendr$a constantemente en M y la pgina no ser$a reemplazada. %n la figura M! se puede apreciar el funcionamiento del algoritmo. (l5oritmo de reempla!o de p;5inas del relo8 *odificando el algoritmo de la segunda oportunidad +que a su vez es una modificacin de )-)(, obtenemos el algoritmo aumentado de la segunda oportunidad o algoritmo del relo#. >samos la misma clasificacin vista en el algoritmo de uso no tan reciente +seccin 3.M.3.8.,. %ste algoritmo organiza las pginas en una lista circular como se muestra en la figura MM y se usa un apuntador +o manecilla, que se:ala a la pgina ms antigua. & 2 '

25

Sistemas Operativos

Samuel Alexander Escoto

3 + 4 / E -

A , $

)ig. MM. Algoritmo de relo#. Buando se presenta un fallo de pgina, el algoritmo revisa la pgina a la que est apuntando la manecilla. 'i el bit de referencia es !, la pgina es reemplazada con la nueva y la manecilla avanza una posicin. 'i el bit es M, entonces se limpia +cambia a !, y la manecilla avanza a la siguiente pgina y as$ sucesivamente hasta encontrar una con bit !. (l5oritmo de reempla!o de p;5inas Gla de menor uso recienteI >39J@ %ste algoritmo es una buena aproDimacin al ptimo y se basa en al observacin de que las pginas de uso frecuente en las ;ltimas instrucciones se utilizan con cierta probabilidad en las siguientes. =e la misma manera, es probable que las pginas que no hayan sido utilizadas durante mucho tiempo permanezcan sin uso por bastante tiempo. -mplementando el algoritmo con esta base, al ocurrir un fallo de pgina, se elimina la pgina que no haya sido utilizada durante el tiempo ms grande. =e ah$ su denominacin6 menor uso reciente +LC> < Least Cecent >se,. A diferencia de los algoritmos anteriores, el LC> tiene un me#or rendimiento en cuanto al tiempo de aprovechamiento del B5> y del uso de la memoria. 'in embargo, el problema con este algoritmo es que su implementacin es muy cara, ya que requiere de una asistencia considerable de hardware. (tro problema es el de determinar un orden para los marcos definido por el tiempo de menor uso. 5ara ste ;ltimo hay dos posibles implementaciones6 Bontadores6 %n el caso ms sencillo, se asocia cada entrada tabla<pgina un campo de tiempo<de<uso y se le agrega al B5> un relo# lgico o contador. %ste relo# es incrementado en cada referencia de memoria. 'iempre que se hace referencia a una pgina, el contenido del registro del relo# es copiado al campo de tiempo<de<uso en la tabla de pginas para esa pgina. =e esta forma, siempre se dispone del WtiempoX de la ;ltima referencia a cada pgina. La pgina que se reemplaza es la del menor valor de tiempo. %ste esquema requiere de una b;squeda en toda la tabla de pginas para encontrar la pgina LC>, y una escritura en memoria al campo de tiempo<de<uso en la tabla de pginas por cada acceso a memoria. Los tiempos tambin se deben de mantener cuando las tablas de pginas son alteradas +debido a organizacin del B5>,. 'e debe considerar la posibilidad de sobrecarga en el relo#. 5ilas6 (tra aproDimacin para implementar el reemplazo LC> es la de tener una pila con los n;meros de pginas. 'iempre que se hace referencia a una pgina, se quita de la pila y se pone en la parte superior. =e esta manera, la parte superior de la pila es la pgina de uso ms reciente y la de aba#o es la LC>, tal como se muestra en la figura M3. A E E $ , A )ig. M3. >so de pilas en el algoritmo LC> $ ,

26

Sistemas Operativos

Samuel Alexander Escoto

Se5mentacin (tra opcin para el mane#o de la memoria es usar una forma de liberar al programador de la tarea del control de las tablas en eDpansin y contraccin, de la misma forma que la memoria virtual elimina la preocupacin por organizar el programa en una serie de proyectos. %sto se puede lograr dotando a la mquina de varios espacios independientes de direcciones llamados segmentos. Bada segmento tiene una serie lineal de direcciones, desde ! hasta cierto mDimo. La longitud de cada segmento puede variar de ! hasta un mDimo permitido. Los distintos segmentos pueden tener y de hecho tienen por lo general, longitudes distintas. Adems, la longitud de un segmento puede variar durante la e#ecucin. La longitud de un segmento de la pila puede crecer si algo entra a la pila y decrecer si algo sale de ella. 5uesto que cada segmento constituye un espacio independiente de direcciones, los distintos segmentos pueden crecer o reducirse en forma independiente sin afectar a los dems. %n la figura M8 podemos ver una lista de comparacin entre la paginacin y la segmentacin. La segmentacin tambin facilita el uso de procedimientos o datos compartidos entre varios procesos. >n e#emplo com;n son las bibliotecas compartidas + Shared DLLs,. %s frecuente que las estaciones de traba#o modernas que e#ecutan sistemas avanzados, con ventanas, tengan bibliotecas grficas de tama:o muy grande que se compilan casi en todos los programas. %n un sistema segmentado, la biblioteca grfica se puede colocar en un segmento y compartirse entre varios procesos, sin necesidad de tenerla en el espacio de direcciones de cada proceso. Aunque tambin es posible tener bibliotecas compartidas sin los sistemas con paginacin pura, es mucho ms comple#o. =e hecho, estos sistemas simulan la segmentacin. Se5mentacin pura La implantacin de la segmentacin difiere del caso de la paginacin en un sentido esencial6 las pginas tienen un tama:o fi#o y los segmentos no. La figura MJ muestra un e#emplo de memoria f$sica que contiene al principio segmentos. Bonsideremos que el segmento M se elimina y su lugar se ocupa por el segmento O, que es menor. %l rea que queda entre el segmento O y el 3 es un hueco. Luego, el segmento J se reemplaza por el segmento y el segmento 8 es reemplazado por el segmento 9. =espus de que el sistema est en e#ecucin durante cierto tiempo, la memoria quedar dividida en varios bloques, algunos con segmentos y otros con huecos. Bonsiderando Y?ecesita saber el programador si est utilizando esta tcnicaZ YBuntos espacios lineales de direcciones eDistenZ Y5uede el espacio total de direcciones eDceder el tama:o de la memoria f$sicaZ Y5ueden distinguirse los procedimientos y los datos, adems de protegerse en forma independienteZ Y5ueden adecuarse con facilidad las tablas con tama:os fluctuantesZ Y'e facilita el uso de procedimientos compartidos entre los usuariosZ Y5ara qu se invent esta 5aginacin ?o 'egmentacin '$

M '$

*uchos '$

?o

'$

?o

'$

?o

'$

5ara

obtener

un

5ara

permitir

que

los

27

Sistemas Operativos
tcnicaZ gran espacio lineal de direcciones sin tener que adquirir ms memoria f$sica

Samuel Alexander Escoto


programas y datos fueran separados en espacios independientes de direcciones y poder proporcionar la proteccin y uso de ob#etos compartidos

)ig. M8. Bomparacin de paginacin y segmentacin. %ste fenmeno de fragmentacin eDterna o chec boardin!, desperdicia la memoria correspondiente a los huecos, pero es fcilmente corregido mediante el uso de la compactacin. =e esta forma los huecos son unificados, generando as$ un hueco de tama:o suficiente para albergar alg;n otro segmento ms.
Se!mento 0 54&6 Se!mento 1 58&6 Se!mento 2 55&6 Se!mento 3 58&6 Se!mento 4 57&6 Se!mento 0 54&6 Se!mento 7 55&6 +ueco 53&6 Se!mento 2 55&6 Se!mento 0 54&6 Se!mento 7 55&6 +ueco 53&6 Se!mento 2 55&6 Se!mento 0 54&6 Se!mento 7 55&6 +ueco 53&6 Se!mento 2 55&6 Se!mento 6 54&6 +ueco 54&6 Se!mento 5 +ueco 53&6 54&6 Se!mento 0 54&6 Se!mento 7 55&6 Se!mento 2 55&6 Se!mento 6 54&6 Se!mento 5 54&6 +ueco 510&6

Se!mento 3 58&6

Se!mento 3 Se!mento 58&6 5 +ueco 53&6 54&6

+a,

+b,
Se!mento 4 57&6

+c,

+d,

+e,

)ig. MJ. =esarrollo de fragmentacin eDterna y su correccin mediante compactacin. Se5mentacin con pa5inacin, MJ31ICS %n el sistema *>L1-B', una direccin lgica est formada por un n;mero de segmento de MA<bit y un offset de M9 bit. Aunque este esquema crea un espacio de direccin de 8J<bit, la sobrecarga en la tabla de segmentos es tolerableL solo se requiere de las suficientes localidades en la tabla de segmentos como haya segmentos, puesto que no debe haber localidades vac$as. 'in embargo, con segmentos de palabras de 9JS, es donde cada una consiste de 89 bits, el tama:o promedio de segmento puede ser grande y se podr$a presentar un problema de fragmentacin eDterna. Aunque no lo fuera, el tiempo de b;squeda para ubicar un segmento, usando primer a#uste o me#or a#uste, puede ser prolongado. Lo que puede causar desperdicio de memoria debido a la fragmentacin eDterna, o desperdicio de tiempo por las largas b;squedas o ambas. La solucin al problema es paginar los segmentos. La paginacin elimina la fragmentacin eDterna y convierte el problema de ubicacin en algo trivial6 cualquier frame desocupado puede ser usado para una pgina deseada. %n *>L1-B', cada pgina consiste de palabras de MS. %n consecuencia, el offset del segmento +M9 bits, es dividido en un n;mero de pgina de 9 bit y un offset de pgina de M! bit. %l n;mero de pgina se indeDa en la tabla de pginas para obtener el n;mero de frame. )inalmente, el n;mero de frame es combinado con el offset de pgina para formar una direccin f$sica. %l esquema de esto se muestra en la figura M .

28

Sistemas Operativos
-irecci%n l%!ica s d S;

Samuel Alexander Escoto

:
S*,"

=
'ar!o del ,ase de p.!ina7 se!mento ta(la *a(la de se!mentos p *rampa <o

d d8

d8

#emoria

-irecci%n 9;sica

*a(la de p.!inas para el se!mento s

)ig. M . 'egmentacin paginada en el E% 9J +*>L1-B', Ahora se debe de tener una tabla de pginas individual para cada segmento. 'in embargo, dado que cada segmento est limitado en tama:o por su ubicacin en la tabla de segmentos, la tabla de pginas no tiene que ser de tama:o completo, solo requiere de los espacios que son realmente necesarios. Al igual que en la paginacin, la ;ltima pgina de cada segmento, por lo general no estar totalmente llena. %n consecuencia, se tiene, en promedio, una fragmentacin interna de media pgina por segmento. Se5mentacin con pa5inacin, Intel 3$6 %l sistema operativo -.* ('73 de 83 bits es un sistema operativo que corre con las arquitecturas del procesador -ntel 8A9 y JA9. %l 8A9 una la segmentacin con paginacin para su mane#o de memoria. %l n;mero mDimo de segmentos por proceso es de M9S y cada segmento puede llegar a ser de hasta J gigabytes. %l tama:o de pgina es de JS.
-irecci%n l%!ica 16 selector *a(la descriptora 32
-escriptor de se!mento

o99set 0

:
directorio p.!ina o99set

-irecci%n lineal

#arco de p.!ina

-irecci%n 9;sica
-irectorio de p.!inas "e!istro de directorio *a(la de p.!inas

"e!istro de ta(la de p.!ina

"e!istro de se!mento

29

Sistemas Operativos

Samuel Alexander Escoto

)ig. M9. 1raduccin de direccin en el -ntel A!8A9 %l espacio de direcciones lgicas est dividido en dos particiones. La primera particin consiste en segmentos de hasta AS los cuales son privados para ese proceso. La segunda particin tambin consiste en segmentos de hasta AS, los cuales son compartidos entre todos los procesos. La informacin de la primera particin es guardada en la tabla descriptora local +L=1 U Local =escriptor 1able,, y la de la segunda particin es guardada en la tabla descriptora global +E=1 U Elobal =escriptor 1able,. Bada registro de las tablas L=1 y E=1 consiste de A bytes con informacin detallada sobre un segmento en particular incluyendo la ubicacin base y longitud del segmento. Bada segmento es paginado, y cada pgina es de JS. >na tabla de pginas puede entonces consistir de hasta un milln de registros. =ado que cada registro consiste de J bytes, cada proceso puede llegar a necesitar hasta J megabytes de espacio de direcciones f$sica para la tabla de pginas ;nicamente. Blaro est que no ser$a conveniente alo#ar la tabla de pginas contigua en la memoria principal. La solucin que es implementada en el esquema para el 8A9, es usar un esquema de paginacin de dos niveles. La direccin lineal es dividida en un n;mero de pgina consistente de 3! bits y un offset de pgina de M3 bits. 'iendo que se pagina a la tabla de pginas, el n;mero de pginas es a su vez dividido en un apuntador para el directorio de pginas de M! bit y en un apuntador para la tabla de pginas de M! bit. La transicin de la direccin se puede apreciar en ms detalle en la figura M9. Capitulo 5 Comunicacin sincroni!acin de procesos >no de los mdulos ms importantes de un sistema operativo es la de administrar los procesos y tareas del sistema de cmputo. %n esta seccin se revisarn dos temas que componen o conciernen a este mdulo6 la planificacin del procesador y los problemas de concurrencia. Plani7icacin del procesador La planificacin del procesador se refiere a la manera o tcnicas que se usan para decidir cunto tiempo de e#ecucin y cuando se le asignan a cada proceso del sistema. (bviamente, si el sistema es monousuario y monotarea nohay mucho que decidir, pero en el resto de los sistemas esto es crucial para el buen funcionamiento del sistema. 0iveles de plani7icacin %n los sistemas de planificacin generalmente se identifican tres niveles6 el alto, em medio y el ba#o. %l nivel alto decide que traba#os +con#unto de procesos, son candidatos a convertirse en procesos compitiendo por los recursos del sistemaL el nivel intermedio decide que procesos se suspenden o reanudan para lograr ciertas metas de rendimiento mientras que el planificador de ba#o nivel es el que decide que proceso, de los que ya estn listos +y que en alg;n momento paso por los otros dos planificadores, es al que le toca ahora estar e#ecutndose en la unidad central de procesamiento. %n este traba#o se revisaran principalmente los planificadores de ba#o nivel porque son los que finalmente eligen al proceso en e#ecucin. D#8etivos de la plani7icacin >na estrategia de planificacin debe buscar que los procesos obtengan sus turnos de e#ecucin apropiadamente, con#untamente con un buen rendimiento y minimizacin de la sobrecarga +overhead, del planificador mismo. %n general, se buscan cinco ob#etivos principales6 Vusticia o -mparcialidad6 1odos los procesos son tratados de la misma forma, y en alg;n momento obtienen su turno de e#ecucin o intervalos de tiempo de e#ecucin hasta su terminacin eDitosa. *aDimizar la 5roduccin6 %l sistema debe de finalizar el mayor numero de procesos en por unidad de tiempo. *aDimizar el 1iempo de Cespuesta6 Bada usuario o proceso debe observar que el sistema les responde consistentemente a sus requerimientos. %vitar el aplazamiento indefinido6 Los procesos deben terminar en un plazo finito de tiempo.

30

Sistemas Operativos

Samuel Alexander Escoto

%l sistema debe ser predecible6 Ante cargas de traba#o ligeras el sistema debe responder rpido y con cargas pesadas debe ir degradndose paulatinamente. (tro punto de vista de esto es que si se e#ecuta el mismo proceso en cargas similares de todo el sistema, la respuesta en todos los casos debe ser similar. Caracter:sticas a considerar de los procesos ?o todos los equipos de cmputo procesan el mismo tipo de traba#os, y un algoritmo de planificacin que en un sistema funciona eDcelente puede dar un rendimiento psimo en otro cuyos procesos tienen caracter$sticas diferentes. %stas caracter$sticas pueden ser6 Bantidad de %ntrada7'alida6 %Disten procesos que realizan una gran cantidad de operaciones de entrada y salida +aplicaciones de bases de datos, por e#emplo,. Bantidad de >so de B5>6 %Disten procesos que no realizan muchas operaciones de entrada y salida, sino que usan intensivamente la unidad central de procesamiento. 5or e#emplo, operaciones con matrices. 5rocesos de Lote o -nteractivos6 >n proceso de lote es ms eficiente en cuanto a la lectura de datos, ya que generalmente lo hace de archivos, mientras que un programa interactivo espera mucho tiempo +no es lo mismo el tiempo de lectura de un archivo que la velocidad en que una persona teclea datos, por las respuestas de los usuarios. 5rocesos en 1iempo Ceal6 'i los procesos deben dar respuesta en tiempo real se requiere que tengan prioridad para los turnos de e#ecucin. Longevidad de los 5rocesos6 %Disten procesos que t$picamente requerirn varias horas para finalizar su labor, mientras que eDisten otros que solo necesitan algunos segundos. Plani7icacin apropiativa o no apropiativa >preemptive or not preemptive@ La planificacin apropiativa es aquella en la cual, una vez que a un proceso le toca su turno de e#ecucin ya no puede ser suspendido, ya no se le puede arrebatar la unidad central de procesamiento. %ste esquema puede ser peligroso, ya que si el proceso contiene accidental o deliberadamente ciclos infinitos, el resto de los procesos pueden quedar aplazados indefinidamente. >na planificacin no apropiativa es aquella en que eDiste un relo# que lanza interrupciones periodicas en las cuales el planificador toma el control y se decide si el mismo proceso seguir e#ecutndose o se le da su turno a otro proceso. %ste mismo relo# puede servir para lanzar procesos mane#ados por el relo# del sistema. 5or e#emplo en los sistemas >?-@ eDisten los "cron#obs" y "at#obs", los cuales se programan en base a la hora, minuto, d$a del mes, d$a de la semana y d$a del a:o. %n una planificacin no apropiativa, un traba#o muy grande aplaza mucho a uno peque:o, y si entra un proceso de alta prioridad est tambin debe esperar a que termine el proceso actual en e#ecucin. (si5nacin del turno de e8ecucin Los algoritmos de la capa ba#a para asignar el turno de e#ecucin se describen a continuacin6 5or prioridad6 Los procesos de mayor prioridad se e#ecutan primero. 'i eDisten varios procesos de mayor prioridad que otros, pero entre ellos con la misma prioridad, pueden e#ecutarse estos de acuerdo a su orden de llegada o por "round robin". La venta#a de este algoritmo es que es fleDible en cuanto a permitir que ciertos procesos se e#ecuten primero e, incluso, por ms tiempo. 'u desventa#a es que puede provocar aplazamiento indefinido en los procesos de ba#a prioridad. 5or e#emplo, suponga que eDisten procesos de prioridad 3! y procesos de prioridad M!. 'i durante todo el d$a terminan procesos de prioridad 3! al mismo ritmo que entran otros con esa prioridad, el efecto es que los de prioridad M! estarn esperando por siempre. 1ambin provoca que el sistema sea impredecible para los procesos de ba#a prioridad. %l traba#o ms corto primero6 %s dificil de llevar a cabo porque se requiere saber o tener una estimacin de cunto tiempo necesita el proceso para terminar. 5ero si se sabe, se e#ecutan primero aquellos traba#os que necesitan menos tiempo y de esta manera se obtiene el me#or tiempo de respuesta promedio para todos los procesos. 5or e#emplo, si llegan procesos A,.,B,= y % cuyos tiempos de B5> son 39, MA, 3J, M3 y J unidades de tiempo, se observa que el orden de e#ecucin ser %,=,.,B y A +J,M3,MA, 3J y 39 unidades de tiempo respectivamente,.

31

Sistemas Operativos

Samuel Alexander Escoto

%n la tabla siguiente se muestra en que unidad de tiempo comienza a e#ecutarse cada proceso y como todos comenzaron a esperar desde la unidad cero, se obtiene el tiempo promedio de espera. 5roceso %spera desde 1ermina 1iempo de %spera A ! J J . ! M9 M9 B ! 8J 8J = ! A A % ! AJ AJ 1iempo promedio P +J Q M9 Q 8J Q A Q AJ ,7 P 82 unidades. %l primero en llegar, primero en e#ecutarse6 %s muy simple, los procesos reciben su turno conforme llegan. La venta#a de este algoritmo es que es #usto y no provoca aplazamiento indefinido. La desventa#a es que no aprovecha ninguna caracter$stica de los procesos y puede no servir para unproceso de tiempo real. 5or e#emplo, el tiempo promedio de respuesta puede ser muy malo comparado con el logrado por el del traba#o ms corto primero. Cetomando el mismo e#emplo que en el algoritmo anterior, obtenemos un tiempo de respuesta promedio +39QJJQ9AQA!QAJ,7 P 9! unidades, el cual es muy superior a las 82 unidades que es el me#or tiempo posible. Cound Cobin6 1ambin llamada por turno, consiste en darle a cada proceso un intervalo de tiempo de e#ecucin +llamado time slice,, y cada vez que se vence ese intervalo se copia el conteDto del proceso a un lugar seguro y se le da su turno a otro proceso. Los procesos estn ordenados en una cola circular. 5or e#emplo, si eDisten tres procesos, el A,. y B, dos repasadas del planificador dar$an sus turnos a los procesos en el orden A,.,B,A,.,B. La venta#a de este algoritmo es su simplicidad, es #usto y no provoca aplazamiento indefinido. %l tiempo restante ms corto6 %s parecido al del traba#o ms corto primero, pero aqui$ se est calculando en todo momento cunto tiempo le resta para terminar a todos los procesos, incluyendo los nuevos, y aquel que le quede menos tiempo para finalizar es escogido para e#ecutarse. La venta#a es que es muy ;til para sistemas de tiempo compartido porque se acerca mucho al me#or tiempo de respuesta, adems de responder dinmicamente a la longevidad de los procesosL su desventa#a es que provoca ms sobrecarga porque el algoritmo es ms comple#o. La tasa de respuesta ms alta6 %ste algoritmo concede el truno de e#ecucin al proceso que produzca el valor mayor de la siguiente formula6 tiempo que ha esperado Q tiempo total para terminar valor P NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN tiempo total para terminar. %s decir, que dinmicamente el valor se va modificando y me#ora un poco las deficiciencias del algoritmo del traba#o ms corto primero. 5or pol$tica6 >na forma de asignar el turno de e#ecucin es por politica, en la cual se establece alg;n reglamento espec$fico que el planificador debe obedecer. 5or e#emplo, una politica podr$a ser que todos los procesos reciban el mismo tiempo de uso de B5> en cualquier momento. %sto sig< nifica, por e#emplo, que si eDisten 3 procesos y han recibido 3! unidades de tiempo cada uno +tiempo acumulado en time slices de unidades, y en este momento entra un tercer proceso, el planificador le dara inmediatamente el turno de e#ecucin por 3! unidades de tiempo. >na vez que todos los procesos estn "pare#os" en uso de B5>, se les aplica "round robin". Pro#lemas de Concurrencia %n los sistemas de tiempo compartido +aquellos con varios usuarios, procesos, tareas, traba#os que reparten el uso de B5> entre estos, se presentan muchos problemas debido a que los procesos compiten por los recursos del sistema. -magine que un proceso est escribiendo en la

32

Sistemas Operativos

Samuel Alexander Escoto

unidad de cinta y se le termina su turno de e#ecucin e inmediatamente despus el proceso elegido para e#ecutarse comienza a escribir sobre la misma cinta. %l resultado es una cinta cuyo contenido es un desastre de datos mezclados. As$ como la cinta, eDisten una multitud de recursos cuyo acceso debe der controlado para evitar los problemas de la concurrencia. %l sistema operativo debe ofrecer mecanismos para sincronizar la e#ecucin de procesos6 semforos, env$o de mensa#es, "pipes", etc. Los semforos son rutinas de software +que en su nivel ms interno se auDilian del hardware, para lograr eDclusin mutua en el uso de recursos. 5ara entender este y otros mecanismos es importante entender los problemas generales de concurrencia, los cuales se describen enseguida. Bondiciones de Barrera o Bompetencia6 La condicin de carrera +race condition, ocurre cuando dos o ms procesos accesan un recurso compartido sin control, de manera que el resultado combinado de este acceso depende del orden de llegada. 'uponga, por e#emplo, que dos clientes de un banco realizan cada uno una operacin en ca#eros diferentes al mismo tiempo. %l usuario A quiere hacer un depsito. %l . un retiro. %l usuario A comienza la transaccin y lee su saldo que es M!!!. %n ese momento pierde su turno de e#ecucin +y su saldo queda como M!!!, y el usuario . inicia el retiro6 lee el saldo que es M!!!, retira 3!! y almacena el nuevo saldo que es A!! y termina. %l turno de e#ecucin regresa al usuario A el cual hace su depsito de M!!, quedando saldo P saldo Q M!! P M!!! Q M!! P MM!!. Bomo se ve, el retiro se perdi y eso le encanta al usuario A y ., pero al banquero no le convino esta transaccin. %l error pudo ser al revs, quedando el saldo final en A!!. 5ostergacin o Aplazamiento -ndefinido+a,6 %sto se mencion en el apartado anterior y consiste en el hecho de que uno o varios procesos nunca reciban el suficiente tiempo de e#ecucin para terminar su tarea. 5or e#emplo, que un proceso ocupe un recurso y lo marque como "ocupado" y que termine sin marcarlo como "desocupado". 'i alg;n otro proceso pide ese recurso, lo ver "ocupado" y esperar indefinidamente a que se "desocupe". Bondicin de %spera Bircular6 %sto ocurre cuando dos o ms procesos forman una cadena de espera que los involucra a todos. 5or e#emplo, suponga que el proceso A tiene asignado el recurso "cinta" y el proceso . tiene asignado el recurso "disco". %n ese momento al proceso A se le ocurre pedir el recurso "disco" y al proceso . el recurso "cinta". Ahi se forma una espera circular entre esos dos procesos que se puede evitar quitndole a la fuerza un recurso a cualquiera de los dos procesos. Bondicin de ?o Apropiacin6 %sta condicin no resulta precisamente de la concurrencia, pero #uega un papel importante en este ambiente. %sta condicin especifica que si un proceso tiene asignado un recurso, dicho recurso no puede arrebatrsele por ning;n motivo, y estar disponible hasta que el proceso lo "suelte" por su voluntad. Bondicin de %spera (cupada6 %sta condicin consiste en que un proceso pide un recurso que ya est asignado a otro proceso y la condicin de no apropiacin se debe cumplir. %ntonces el proceso estar gastando el resto de su time slice checando si el recurso fue liberado. %s decir, desperdicia su tiempo de e#ecucin en esperar. La solucin ms com;n a este problema consiste en que el sistema operativo se d cuenta de esta situacin y mande a una cola de espera al proceso, otorgndole inmediatamente el turno de e#ecucin a otro proceso. Bondicin de %Dclusin *utua6 Buando un proceso usa un recurso del sistema realiza una serie de operaciones sobre el recurso y despus lo de#a de usar. A la seccin de cdigo que usa ese recurso se le llama "regin cr$tica". La condicin de eDclusin mutua establece que solamente se permite a un proceso estar dentro de la misma regin cr$tica. %sto es, que en cualquier momento solamente un proceso puede usar un recurso a la vez. 5ara lograr la eDclusin mutua se ideo tambin el concepto de "regin cr$tica". 5ara logar la eDclusin mutua generalmente se usan algunas tcnicas para lograr entrar a la regin cr$tica6 semforos, monitores, el algoritmo de =eGGer y 5eterson, los "candados". 5ara ver una descripcin de estos algoritmos consulte Bondicin de (cupar y %sperar un Cecurso6 Bonsiste en que un proceso pide un recurso y se le asigna. Antes de soltarlo, pide otro recurso que otro proceso ya tiene asignado.

33

Sistemas Operativos

Samuel Alexander Escoto

Los problemas descritos son todos importantes para el sistema operativo, ya que debe ser capaz de prevenir o corregirlos. 1al vez el problema ms serio que se puede presentar en un ambiente de concurrencia es el "abrazo mortal", tambin llamado "trabazn" y en ingls deadlocG. %l deadlocG es una condicin que ning;n sistema o con#unto de procesos quisiera eDhibir, ya que consiste en que se presentan al mismo tiempo cuatro condiciones necesarias6 La condicin de no apropiacin, la condicin de espera circular, la condicin de eDclusin mutua y la condicin de ocupar y esperar un recurso. Ante esto, si el deadlocG involucra a todos los procesos del sistema, el sistema ya no podr hacer algo productivo. 'i el deadlocG involucra algunos procesos, stos quedarn congelados para siempre. %n el rea de la informtica, el problema del deadlocG ha provocado y producido una serie de estudios y tcnicas muy ;tiles, ya que ste puede surgir en una sola mquina o como consecuencia de compartir recursos en una red. %n el rea de las bases de datos y sistemas distribuidos han surgido tcnicas como el "two phase locGing" y el "two phase commit" que van ms all de este traba#o. 'in embargo, el inters principal sobre este problema se centra en generar tcnicas para detectar, prevenir o corregir el deadlocG. Las tcnicas para prevenir el deadlocG consisten en proveer mecanismos para evitar que se presente una o varias de las cuatro condiciones necesarias del deadlocG. Algunas de ellas son6 Asignar recursos en orden lineal6 %sto significa que todos los recursos estn etiquetados con un valor diferente y los procesos solo pueden hacer peticiones de recursos "hacia adelante". %sto es, que si un proceso tiene el recurso con etiqueta " " no puede pedir recursos cuya etiqueta sea menor que " ". Bon esto se evita la condicin de ocupar y esperar un recurso. Asignar todo o nada6 %ste mecanismo consiste en que el proceso pida todos los recursos que va a necesitar de una vez y el sistema se los da solamente si puede drselos todos, si no, no le da nada y lo bloquea. Algoritmo del banquero6 %ste algoritmo usa una tabla de recursos para saber cuntos recursos tiene de todo tipo. 1ambin requiere que los procesos informen del mDimo de recursos que va a usar de cada tipo. Buando un proceso pide un recurso, el algoritmo verifica si asignndole ese recurso todav$a le quedan otros del mismo tipo para que alguno de los procesos en el sistema todav$a se le pueda dar hasta su mDimo. 'i la respuesta es afirmativa, el sistema se dice que est en "estado seguro" y se otorga el recurso. 'i la respuesta es negativa, se dice que el sistema est en estado inseguro y se hace esperar a ese proceso. 5ara detectar un deadlocG, se puede usar el mismo algoritmo del banquero, que aunque no dice que hay un deadlocG, s$ dice cundo se est en estado inseguro que es la antesala del deadlocG. 'in embargo, para detectar el deadlocG se pueden usar las "grficas de recursos". %n ellas se pueden usar cuadrados para indicar procesos y c$rculos para los recursos, y flechas para indicar si un recurso ya est asignado a un proceso o si un proceso est esperando un recurso. %l deadlocG es detectado cuando se puede hacer un via#e de ida y vuelta desde un proceso o recurso. 5or e#emplo, suponga los siguientes eventos6 evento M6 5roceso A pide recurso M y se le asigna. evento 36 5roceso A termina su time slice. evento 86 5roceso . pide recurso 3 y se le asigna. evento J6 5roceso . termina su time slice. evento 6 5roceso B pide recurso 8 y se le asigna. evento 96 5roceso B pide recurso M y como lo est ocupando el proceso A, espera. evento O6 5roceso . pide recurso 8 y se bloquea porque lo ocupa el proceso B. evento A6 5roceso A pide recurso 3 y se bloquea porque lo ocupa el proceso .. %n la figura .M se observa como el "resource graph" fue evolucionando hasta que se present el deadlocG, el cual significa que se puede via#ar por las flechas desde un proceso o recurso hasta regresar al punto de partida. %n el deadlocG estn involucrados los procesos A,. y B. >na vez que un deadlocG se detecta, es obvio que el sistema est en problemas y lo ;nico que resta por hacer es una de dos cosas6 tener alg;n mecanismo de suspensin o reanudacin 0=eitel284 que permita copiar todo el conteDto de un proceso incluyendo valores de memoria y

34

Sistemas Operativos

Samuel Alexander Escoto

aspecto de los perifricos que est usando para reanudarlo otro d$a, o simplemente eliminar un proceso o arrebatarle el recurso, causando para ese proceso la prdida de datos y tiempo.

35

Sistemas Operativos

Samuel Alexander Escoto

Capitulo 6 Inter#loqueos 6.1. 3os inter#loqueos, Jna )istoria #asada en )ec)os reales. %l problema de los interbloqueos no se circunscribe ;nicamente al mundo de la informtica, sino que aparece en muchos otros mbitos incluyendo el de la vida cotidiana. =e hecho, algunos de los e#emplos utilizados por los investigadores en este tema estn inspirados en situaciones cotidianas. %l interbloqueo surge debido a que se produce un conflicto entre las necesidades de los dos veh$culos6 el recurso que necesita cada veh$culo lo posee el otro. Fay que resaltar que otros veh$culos que intentarn cruzar el puente en ese momento en cualquiera de los dos sentidos se quedar$an detenidos detrs de ellos vindose, por tanto, implicados tambin en el interbloqueo. Las posibles estrategias para tratar el problema de los interbloqueos son6 *eteccin recuperacin. >na vez detectada la situacin de interbloqueo uno de los veh$culos debe liberar el recurso que posee para de#ar que el otro lo utilice. >na posible recuperacin de esta situacin consistir$a en seleccionar uno de los sentidos de circulacin y hacer que el veh$culo o veh$culos detenidos en ese sentido dieran marcha atrs hasta el principio del puente, liberando as$ el paso en el otro sentido +se est suponiendo que un veh$culo tiene capacidad para avanzar marcha atrs, sino fuera as$, habr$a que tomar una accin ms drstica como tirarlo al r$o que pasa por deba#o del puente,. =eber$a eDistir una pol$tica para determinar qu veh$culo debe retroceder. Prevencin o prediccin. >n punto importante a resaltar en este e#emplo y, en general, sobre los interbloqueos es que, antes de producirse el interbloqueo propiamente dicho +los veh$culos detenidos frente a frente,, eDiste un [[punto de retorno\\ a partir del cual el interbloqueo es inevitable. Capitulo " %ntrada&Salida %l cdigo destinado a mane#ar la entrada y salida de los diferentes perifricos en un sistema operativo es de una eDtensin considerable y sumamente comple#o. Cesuelve las necesidades de sincronizar, atrapar interrupciones y ofrecer llamadas al sistema para los programadores. %n esta seccin se repasarn los principios ms importantes a tomar en cuenta en este mdulo del sistema operativo. *ispositivos de %ntrada = Salida Los dispositivos de entrada salida se dividen, en general, en dos tipos6 dispositivos orientados a bloques y dispositivos orientados a caracteres. Los dispositivos orientados a bloques tienen la propiedad de que se pueden direccionar, esto es, el programador puede escribir o leer cualquier bloque del dispositivo realizando primero una operacin de posicionamiento sobre el dispositivo. Los dispositivos ms comunes orientados a bloques son los discos duros, la memoria, discos compactos y, posiblemente, unidades de cinta. 5or otro lado, los dispositivos orientados a caracteres son aquellos que traba#an con secuencias de byes sin importar su longitud ni ning;na agrupacin en especial. ?o son dispositivos direccionables. %#emplos de estos dispositivos son el teclado, la pantalla o display y las impresoras. La clasificacin anterior no es perfecta, porque eDisten varios dispositivos que generan entrada o salida que no pueden englobarse en esas categor$as. 5or e#emplo, un relo# que genera pulsos. 'in embargo, aunque eDistan algunos perifricos que no se puedan categorizar, todos estn administrados por el sistema operativo por medio de una parte electrnica < mecnica y una parte de software. 01an234. Controladores de *ispositivos >1erminales *iscos *uros@ Los controladores de dispositivos +tambin llamados adaptadores de dispositivos, son la parte electrnica de los perifricos, el cual puede tener la forma de una tar#eta o un circuito impreso integrado a la tar#eta maestra de la computadora. 5or e#emplo, eDisten controladores de discos que se venden por separado y que se insertan en una ranura de la computadora, o eDisten fabricantes de computadoras que integran esa funcionalidad en la misma tar#eta en que viene la unidad central de procesamiento +tar#eta maestra,. Los controladores de dispositivos generalmente traba#an con volta#es de y M3 volts con el dispositivo propiamente, y con la computadora a travs de interrupciones. %stas interrupciones

36

Sistemas Operativos

Samuel Alexander Escoto

via#an por el "bus" de la computadora y son recibidos por el B5> el cual a su vez pondr en e#ecucin alg;n programa que sabr qu hacer con esa se:al. A ese programa se le llama "mane#ador de disposito" +device driver,. Algunas veces el mismo controlador contiene un peque:o programa en una memoria de solo lectura o en memoria de acceso aleatoria no voltil y re< escribible que interact;a con el correspondiente mane#ador en la computadora. %n la figura 9.M se muestra un esquema simple de dispositivos orientados a bloques y otros a caracteres.

5or e#emplo, la terminal +BC1, tiene un "chip" que se encarga de enviar cadenas de bits por medio de un cable serial que a su vez son recibidos por un controlador de puerto serial en la computadora. %ste "chip" tambin se encarga de leer secuencias de bits que agrupa para su despiegue en la pantalla o para e#ecutar algunas funciones de control. Lo importante en todos estos dispositivos es que se debe e#ercer un mecanismo para sincronizar el env$o y llegada de datos de manera concurrente. 5ara intercambiar datos o se:ales entre la computadora y los controladores, muchas veces se usan registros o secciones predefinidas de la memoria de la computadora. A este esquema se le llama "mane#o de entrada < salida mapeado por memoria" +memory mapped -7(,. 5or e#mplo, para una -.* 5B se muestran los vectores de interrupcin y las direcciones para la entrada <salida en la tabla 9.M. Bontrolador =ireccin+FeD, Hector de -nterrupcin A 2 M8 M < < MJ

Celo# !J! < !J8 1eclado !9! < !98 =isco =uro 83! < 83) -mpresora 8OA < 8O) *onitor *ono 8A! < 8.) *onitor Bolor 8=! < 8=) =isco )leDible 8)! < 8)O 1abla 9.M =irecciones de *apeo de %ntrada < 'alida

(cceso *irecto a Memoria >*M(@ %l acceso directo a memoria se invent con el propsito de liberar al B5> de la carga de atender a algunos controladores de dispositivos. 5ara comprender su funcionamiento vale la pena revisar cmo traba#a un controlador sin =*A. Buando un proceso requiere algunos bloques de un dispositivo, se envia una se:al al controlador con la direccin del bloque deseado. %l controlador lo recibe a travs del "bus" y el proceso puede estar esperando la respuesta +traba#o s$ncrono, o puede estar haciendo otra cosa +traba#o as$ncrono,. %l controlador recibe la se:al y lee la direccin del bus. %nv$a a su vez una o varias se:ales al dispositivo mecnico +si es que lo hay, y espera los datos. Buando los recibe los escribe en un buffer local y env$a una se:al al B5> indicndole que los datos estn listos. %l B5> recibe esta interrupcin y comienza a leer byte por byte o palabra por palabra los datos del buffer del controlador +a travs del device driver, hasta terminar la operacin. Bomo se ve, el B5> gasta varios ciclos en leer los datos deseados. %l =*A soluciona ese problema de la manera siguiente. Buando un proceso requiere uno o varios bloques de datos, el B5> env$a al controlador la peticin #unto con el n;mero de bytes deseados y la direccin de en dnde quiere que se almacenen de regreso. %l =*A actuar como un "cpu secundario" 0'tal234 en

37

Sistemas Operativos

Samuel Alexander Escoto

cuanto a que tiene el poder de tomar el control del "bus" e indicarle al verdadero B5> que espere. Buando el controlador tiene listos los datos, el =*A "escucha" si el "bus" est libre aprovechando esos ciclos para ir leyendo los datos del buffer del controlador e ir escribindolos en el rea de memoria que el B5> le indic. Buando todos los datos fueron escritos, se le env$a una interrupcin al B5> para que use los datos. %l ahorro con el =*A es que el B5> ya no es interrumpido +aunque s$ puede ser retardado por el =*A, salvando as$ el "cambio de conteDto" y adems el =*A aprovechar aquellos ciclos en que el "bus" no fue usado por el B5>. %l hecho de que los controladores necesiten buffers internos se debe a que conforme ellos reciban datos de los dispositivos que controlan, los deben poder almacenar temporalmente, ya que el B5> no est listo en todo momento para leerlos. Principios en el So7t/are de %ntrada = Salida Los principios de software en la entrada < salida se resumen en cuatro puntos6 el software debe ofrecer mane#adores de interrupciones, mane#adores de dispositivos, software que sea independiente de los dispositivos y software para usuarios. Mane8adores de interrupciones %l primer ob#etivo referente a los mane#adores de interrupciones consiste en que el programador o el usuario no debe darse cuenta de los mane#os de ba#o nivel para los casos en que el dispositivo est ocupado y se debe suspender el proceso o sincronizar algunas tareas. =esde el punto de vista del proceso o usuario, el sistema simplemente se tard ms o menos en responder a su peticin. Mane8adores de disposisitivos %l sistema debe proveer los mane#adores de dispositivos necesarios para los perifricos, as$ como ocultar las peculiaridades del mane#o interno de cada uno de ellos, tales como el formato de la informacin, los medios mecnicos, los niveles de volta#e y otros. 5or e#emplo, si el sistema tiene varios tipos diferentes de discos duros, para el usuario o programador las diferencias tcnicas entre ellos no le deben importar, y los mane#adores le deben ofrecer el mismo con#unto de rutinas para leer y escribir datos. So7t/are independiente del dispositivo %ste es un nivel superior de independencia que el ofrecido por los mane#adores de dispositivos. Aqu$ el sistema operativo debe ser capaz, en lo ms posible, de ofrecer un con#unto de utiler$as para accesar perifricos o programarlos de una manera consistente. 5or e#emplo, que para todos los dispositivos orientados a bloques se tenga una llamada para decidir si se desea usar "buffers" o no, o para posicionarse en ellos. So7t/are para usuarios La mayor$a de las rutinas de entrada < salida traba#an en modo privilegiado, o son llamadas al sistema que se ligan a los programas del usuario formando parte de sus aplicaciones y que no le de#an ninguna fleDibilidad al usuario en cuanto a la apariencia de los datos. %Disten otras librer$as en donde el usuario si tiene poder de decisin +por e#emplo la llamada a &printf& en el lengua#e &B&,. (tra facilidad ofrecida son las reas de traba#os encolados +spooling areas,, tales como las de impresin y correo electrnico. 9elo8es Los relo#es son esenciales para el buen funcionamiento de cualquier sistema porque #uegan un papel decisivo en la sincronizacin de procesos, en la calendarizacin de traba#os por lote y para la asignacin de turnos de e#ecucin entre otras tareas relevantes. Eeneralmente se cuenta con dos relo#es en el sistema6 uno que lleva la hora y fecha del sistema y que oscila entre ! y 9! veces por segundo y el relo# que oscila entre y M!! millones de veces por segundo y que se encarga de enviar interrupciones al B5> de manera peridica. %l relo# de mayor frecuencia sirve para controlar el tiempo de e#ecucin de los procesos, para despertar los procesos que estn "durmiendo" y para lanzar o iniciar procesos que fueron calendarizados. 5ara mantener la hora y fecha del sistema generalmente se usa un registro alimentado por una pila de alta duracin que almacena estos datos y que se programan de fbrica por primera vez. As$, aunque se suspenda la energ$a la fecha permanece. 5ara lanzar procesos +chequeo de tiempo ocioso de un dispositivo, terminacin del time slice de un proceso, etc,, se almacena un valor en un registro +valor K>A?1>*, el cual se decrementa con cada ciclo del relo#, y cuando llega a cero se dispara un proceso que e#ecutar las operaciones necesarias +escoger un nuevo proceso en

38

Sistemas Operativos

Samuel Alexander Escoto

e#ecucin, verificar el funcionamiento del motor del disco fleDible, hacer eco de un caracter del teclado, etc,. Capitulo $ Gestin de (rc)ivos *irectorios >n sistema de archivos + file system , es una estructura de directorios con alg;n tipo de organizacin el cual nos permite almacenar, crear y borrar archivos en diferentes formatos. %n esta seccin se revisarn conceptos importantes relacionados a los sistemas de archivos. (lmacenamiento 2:sico de *atos %n un sistema de cmputo es evidente que eDiste la necesidad por parte de los usuarios y aplicaciones de almacenar datos en alg;n medio, a veces por periodos largos y a veces por instantes. cada aplicacin y cada usuario debe tener ciertos derechos con sus datos, como son el poder crearlos y borrarlos, o cambialos de lugarL as$ como tener privacidad contra otros usuarios o aplicaciones. %l subsistema de archivos del sistema operativo se debe encargar de estos detalles, adems de establecer el formato f$sico en el cual almacenar los datos en discos duros, cintas o discos fleDibles. =ebe ser conocido por todos que tradicionalmente la informacin en los sistemas modernos se almacena en discos duros, fleDibles y unidades de disco ptico, y en todos ellos se comparten algunos esquemas bsicos para darles formato f$sico6 las superficies de almacenamiento son divididas en c$rculos concntricos llamados &pistas& y cada pista se divide en &sectores&. A la unin lgica de varias pistas a travs de varias superficies &paralelas& de almacenamiento se les llama &cilindros&, los cuales son inspeccionados al momento de lectura o escritura de datos por las respectivas unidades fisicas llamadas &cabezas&. Las superficies de almacenamiento reciben el nombre de &platos& y generalmente estn en movimiento rotatorio para que las cabezas accesen a las pistas que los componen. Los datos se escriben a travs de los sectores en las pistas y cilindros modificando las superficies por medio de las cabezas. %l tiempo que una cabeza se tarda en ir de una pista a otra se le llama &tiempo de b;squeda& y depender de la distancia entre la posicin actual y la distancia a la pista buscada. %l tiempo que tarda una cabeza en ir del sector actual al sector deseado se le llama tiempo de latencia y depende de la distancia entre sectores y la velocidad de rotacin del disco. %l impacto que tiene las lecturas y escrituras sobre el sistema est determinado por la tecnolog$a usada en los platos y cabezas y por la forma de resolver las peticiones de lectura y escritura, es decir, los algoritmos de planificacin. (l5oritmos de plani7icacin de peticiones Los algoritmos de planificacin de peticiones de lectura y escritura a discos se encargan de registrar dichas peticiones y de responderlas en un tiempo razonable. Los algoritmos ms comunes para esta tarea son6 5rimero en llegar, primero en ser servido + )-)( ,6 Las peticiones son encoladas de acuerdo al orden en que llegaron y de esa misma forma se van leyendo o escribiendo las mismas. La venta#a de este algoritmo es su simplicidad y no causa sobrecarga, su desventa#a principal es que no aprovecha para nada ninguna caracter$stica de las peticiones, de manera que es muy factible que el brazo del disco se mueva muy ineficientemente, ya que las peticiones pueden tener direcciones en el disco unas muy ale#adas de otras. 5or e#emplo, si se estn haciendo peticiones a los sectores 9,M!,A,3M y J, las mismas sern resueltas en el mismo orden. N 5rimero el ms cercano a la posicin actual6 %n este algoritmo las peticiones se ordenan de acuerdo a la posicin actual de la cabeza lectora, sirviendo primero a aquellas peticiones ms cercanas y reduciendo, as$, el movimiento del brazo, lo cual constituye la venta#a principal de este algoritmo. 'u desventa#a consiste en que puede haber solicitudes que se queden esperando para siempre, en el infortunado caso de que eDistan peticiones muy ale#adas y en todo momento estn entrando peticiones que estn ms cercanas. 5ara las peticiones 9,M!,A,3M y J, las mismas sern resueltas en el orden J,9,A,M! y 3M. 5or eDploracin + algoritmo del elevador ,6 %n este algoritmo el brazo se estar moviendo en todo momento desde el per$metro del disco hacia su centro y viceversa, resolviendo las peticiones que eDistan en la direccin que tenga en turno. %n este caso las peticiones 9,M!,A,3M y J sern resueltas en el orden 9,M!,3M,A y JL es decir, la posicin actual es 9 y como va hacia los sectores de mayor numeracin +hacia el centro, por e#emplo,, en el

39

Sistemas Operativos

Samuel Alexander Escoto

camino sigue el sector M!, luego el 3M y ese fue el ms central, as$ que ahora el brazo resolver las peticiones en su camino hacia afuera y la primera que se encuentra es la del sector A y luego la J. La venta#a de este algoritmo es que el brazo se mover mucho menos que en )-)( y evita la espera indefinidaL su desventa#a es que no es #usto, ya que no sirve las peticiones en el orden en que llegaron, adems de que las peticiones en los eDtremos interior y eDterior tendrn un tiempo de respuesta un poco mayor. 5or eDploracin circular6 %s una variacin del algoritmo anterior, con la ;nica diferencia que al llegar a la parte central, el brazo regresa al eDterior sin resolver ninguna peticin, lo cual proveer un tiempo de respuesta ms cercana al promedio para todas las peticiones, sin importar si estn cercas del centro o del eDterior. (si5nacin del espacio de almacenamiento %l subsistema de archivos se debe encargar de localizar espacio libre en los medios de almacenamiento para guardar archivos y para despus borrarlos, renombrarlos o agrandarlos. 5ara ello se vale de localidades especiales que contienen la lista de archivos creados y por cada archivo una serie de direcciones que contienen los datos de los mismos. %sas localidades especiales se llaman directorios. 5ara asignarle espacio a los archivos eDisten tres criterios generales que se describen enseguida. Asignacin contigua6 Bada directorio contiene la los nombres de archivos y la direccin del bloque inicial de cada archivo, as$ como el tama:o total de los mismos. 5or e#emplo, si un archivo comienza en el sector MO y mide M! bloques, cuando el archivo sea accesado, el brazo se mover inicialmente al bloque MO y de ah$ hasta el 3O. 'i el archivo es borrado y luego creado otro ms peque:o, quedarn huecos in;tiles entre archivos ;tiles, lo cual se llama fragmentacin eDterna. Asignacin encadenada6 Bon este criterio los directorios contienen los nombres de archivos y por cada uno de ellos la direccin del bloque inicial que compone al archivo. Buando un archivo es le$do, el brazo va a esa direccin inicial y encuentra los datos iniciales #unto con la direccin del siguiente bloque y as$ sucesivamente. Bon este criterio no es necesario que los bloques estn contiguos y no eDiste la fragmentacin eDterna, pero en cada &eslabn& de la cadena se desperdicia espacio con las direcciones mismas. %n otras palabras, lo que se crea en el disco es una lista ligada. Asignacin con $ndices + indeDada ,6 %n este esquema se guarda en el directorio un bloque de $ndices para cada archivo, con apuntadores hacia todos sus bloques constituyentes, de mabnera que el acceso directo se agiliza notablemente, a cambio de sacrificar varios bloques para almacenar dichos apuntadores. Buando se quiere leer un archivo o cualquiera de sus partes, se hacen dos accesos6 uno al bloque de $ndices y otro a la direccin deseada. %ste es un esquema eDcelente para archivos grandes pero no para peque:os, porque la relacin entre bloques destinados para $ndices respecto a los asignados para datos es incosteable.. M4todos de acceso en los sistemas de arc)ivos Los mtodos de acceso se refiere a las capacidades que el subsistema de archivos provee para accesar datos dentro de los directorios y medios de almacenamiento en general. 'e ubican tres formas generales6 acceso secuencial, acceso directo y acceso directo indeDado. Acceso secuencial6 %s el mtodo ms lento y consiste en recorrer los componentes de un archivo uno en uno hasta llegar al registro deseado. 'e necesita que el orden lgico de los registros sea igual al orden f$sico en el medio de almacenamiento. %ste tipo de acceso se usa comunmente en cintas y cartuchos. Acceso directo6 5ermite accesar cualquier sector o registro inmediatamente, por medio de llamadas al sistema como la de seeG. %ste tipo de acceso es rpido y se usa com;nmente en discos duros y discos o archivos mane#ados en memoria de acceso aleatorio. N Acceso directo indeDado6 %ste tipo de acceso es ;til para grandes vol;menes de informacin o datos. Bonsiste en que cada arcivo tiene una tabla de apuntadores, donde cada apuntador va a la direccin de un bloque de $ndices, lo cual permite que el archivo se eDpanda a travs de un espacio enorme. Bonsume una cantidad importante de recursos en las tablas de $ndices pero es muy rpido. Dperaciones soportadas por el su#sistema de arc)ivos

40

Sistemas Operativos

Samuel Alexander Escoto

-ndependientemente de los algoritmos de asignacin de espacio, de los mtodos de acceso y de la forma de resolver las peticiones de lectura y escritura, el subsistema de archivos debe proveer un con#unto de llamadas al sistema para operar con los datos y de proveer mecanismos de proteccin y seguridad. Las operaciones bsicas que la mayor$a de los sistemas de archivos soportan son6 Brear + create , 6 5ermite crear un archivo sin datos, con el propsito de indicar que ese nombre ya est usado y se deben crear las estructuras bsicas para soportarlo. .orrar + delete ,6 %liminar el archivo y liberar los bloques para su uso posterior. Abrir + open ,6 Antes de usar un archivo se debe abrir para que el sistema conozca sus atributos, tales como el due:o, la fecha de modificacin, etc. N Berrar + close ,6 =espus de realizar todas las operaciones deseadas, el archivo debe cerrarse para asegurar su integridad y para liberar recursos de su control en la memoria. Leer o %scribir + read, write ,6 A:adir informacin al archivo o leer el caracter o una cadena de caracteres a partir de la posicin actual. N Boncatenar + append ,6 %s una forma restringida de la llamada Iwrite", en la cual slo se permite a:adir informacin al final del archivo. N Localizar + seeG ,6 5ara los archivos de acceso directo se permite posicionar el apuntador de lectura o escritura en un registro aleatorio, a veces a partir del inicio o final del archivo. Leer atributos6 5ermite obtener una estructura con todos los atributos del archivo especificado, tales como permisos de escritura, de borrado, e#ecucin, etc. 5oner atributos6 5ermite cambiar los atributos de un archivo, por e#emplo en >?-@, donde todos los dispositivos se mane#an como si fueran archivos, es posible cambiar el comportamiento de una terminal con una de estas llamadas. Cenombrar + rename ,6 5ermite cambiarle el nombre e incluso a veces la posicin en la organizacin de directorios del archivo especificado. Los subsistemas de archivos tambin proveen un con#unto de llamadas para operar sobre directorios, las ms comunies son crear, borrar, abrir, cerrar, renombrar y leer. 'us funcionalidades son obvias, pero eDisten tambin otras dos operaciones no tan comunes que son la de Icrear una liga" y la de Idestruir la liga". La operacin de crear una liga sirve para que desde diferentes puntos de la organizacin de directorios se pueda accesar un mismo directorio sin necesidad de copiarlo o duplicarlo. La llamada a Idestruir nla liga" lo que hace es eliminar esas referencias, siendo su efecto la de eliminar las ligas y no el directorio real. %l directorio real es eliminado hasta que la llmada a Idestruir liga" se realiza sobre l. (l5unas 7acilidades e-tras de los sistemas de arc)ivos Algunos sistemas de archivos proveen herramientas al administrador del sistema para facilitarle la vida. Las ms notables es la facilidad de compartir archivos y los sistemas de Icotas". La facilidad de compartir archivos se refiere a la posibilidad de que los permisos de los archivos o directorios de#en que un grupo de usuarios puedan accesarlos para diferentes operaciones& leer, escribir, borrar, crear, etc. %l due:o verdadero es quien decide qu permisos se aplicarn al grupo e, incluso, a otros usuarios que no formen parte de su grupo. La facilidad de Icotas" se refiere a que el sistema de archivos es capaz de llevar un control para que cada usuario pueda usar un mDimo de espacio en disco duro. Buando el usuario eDcede ese l$mite, el sistema le env$a un mensa#e y le niega el permiso de seguir escribiendo, obligndolo a borrar algunos archivos si es que quiere almacenar otros o que crezcan. La versin de >?-@ 'un(' contiene esa facilidad. Sistemas de (rc)ivos (islados Los sistemas de archivos aislados son aquellos que residen en una sola computadora y no eDiste la posibilidad de que, a;n estando en una red, otros sistemas puedan usar sus directorios y archivos. 5or e#emplo, los archivos en discos duros en el sistema *'<=(' clsico se puede ver en esta categor$a. Sistemas de (rc)ivos Compartidos o de 9ed %stos sistemas de archivos es factible accesarlos y usarlos desde otros nodos en una red. Eeneralmente eDiste un Iservidor" que es la computadora en donde reside el sistema de archivos f$sicamente, y por otro lado estn los Iclientes", que se valen del servidor para ver sus archivos y directorios de manera como si estuvieran localmente en el cliente. Algunos autores les llaman a estos sistemas de archivos Isistemas de archivos distribu$dos" lo cual no se va a discutir en este traba#o.

41

Sistemas Operativos

Samuel Alexander Escoto

Los sistemas de archivos compartidos en red ms populares son los provistos por ?etware, el Cemote )ilGe 'haring + C)' en >?-@ ,, ?etworG )ile 'ystem + ?)' de 'un *icrosystems , y el Andrew )ile 'ystem + A)' ,. %n general, lo que proveen los servidores es un medio de que los clientes, localmente, realicen peticiones de operaciones sobre archivos los cuales con Iatrapadas" por un Idriver" o un Imdulo" en el n;cleo del sistema operativo, el cual se comunica con el servidor a travs de la red y la operacin se e#ecuta en el servidor. %Disten servidores de tipo &stateless y no<stateless&. >n servidor &stateless& no registra el estado de las operaciones sobre los archivos, de manera que el cliente se encarga de todo ese traba#o. La venta#a de este esquema es que si el servidor falla, el cliente no perder informacin ya que sta se guarda en memoria localmente, de manera que cuando el servidor reanude su servicio el cliente proseguir como si nada hubiese sucedido. Bon un servidor &no<stateless&, esto no es posible. La proteccin sobre las operaciones se lleva a cabo tanto el los clientes como en el servidor6 si el usuario quiere e#ecutar una operacin indebida sobre un archivo, recibir un mensa#e de error y posiblemente se env$e un registro al subsistema de Iseguridad" para informar al administrador del sistema de dicho intento de violacin. %n la prctica, el con#unto de permisos que cada usuario tiene sobre el total de archivos se almacena en estructuras llamadas Ilistas de acceso" + access lists ,. 1endencias actuales Bon el gran auge de las redes de comunicaciones y su incremento en el ancho de banda, la proliferacin de paquetes que ofrecen la comparticin de archivos es com;n. Los esquemas ms solicitados en la industria es el poder accesar los grandes vol;menes de informacin que residen en grandes servidores desde las computadoras personales y desde otros servidores tambin. %s una realidad que la solucin ms socorrida en las empresas peque:as es usar ?ovell ?etware en un servidor JA9 o superior y accesar los archivos desde mquinas similares. A veces se requieren soluciones ms comple#as con ambientes heterogneos6 diferentes sistemas operativos y diferentes arquitecturas. >no de los sistemas de archivos ms eDpandidos en estaciones de traba#o es el ?)', y prcticamente todas las versiones de >?-@ traen instalado un cliente y hasta un servidor de este servicio. %s posible as$ que una gran cantidad de computadoras personales +de M! a A! , accesen grandes vol;menes de informacin o paqueter$a +desde M a A Eygabytes , desde una sola estacin de traba#o, e incluso tener la fleDibilidad de usar al mismo tiempo servidores de ?ovell y ?)'. 'oluciones similares se dan con algunos otros paquetes comerciales, pero basta ya de Igoles". Lo importante aqu$ es observar que el mundo se va moviendo poco a poco hacia soluciones distribu$das, y hacia la estandarizacin que, muchas veces, es Ide facto". Capitulo 11. %studio de casos, linu-. 11.1 )istoria de linu-. %l origen de L-?>@ esta en *-?-@ que es un 'istema (perativo de carcter pedaggico basado en un microGernel. )ue desarrollado por Andrew '. 1anenbaum. Bon el ob#etivo principal de que sirviera de apoyo para la ense:anza de sistemas operativos. Andrew, intentaba demostrar al crear *-?-@ que se pod$a construir un sistema operativo mas sencillo y fiable pero a la vez muy eficiente. *-?-@ presentaba las siguientes caracter$sticas6 (frec$a una interfaz basada en la de >?-@ versin O. 1en$a un tama:o relativamente peque:o, constaba aproDimadamente de M3,!!! l$neas de cdigo. 5od$a traba#ar en equipos que dispon$an de unos recursos hardware muy limitados, de hecho, incluso pod$a utilizarse en maquinas que no dispon$an de disco duro. *-?-@ presenta algunas deficiencias y limitaciones. La gestin de memoria era muy primitiva, no hab$a ni memoria virtual ni intercambio. 5or simplicidad, algunas partes del sistema operativo, como por e#emplo el sistema de archivos, no eran concurrentes, lo que limitaba considerablemente en rendimiento del sistema.

42

Sistemas Operativos

Samuel Alexander Escoto

%n M22! un estudiante )inlands llamado L-?>' 1(CHAL=', con ganas de ampliar sus conocimientos env$o un mensa#e a un grupo de noticias comp.os.miniD, comentando que estaba desarrollando un nuevo sistema operativo tomando como base *-?-@. 'e estaba produciendo el humilde nacimiento de L-?>@, cuya primera versin+numerada como !.!M, vio la luz a mediados del a:o de M22M. L-?>@ tomaba prestadas numerosas caracter$sticas de *-?-@ por e#emplo el sistema de archivos. =e hecho L-?>@ se desarrollo usando como plataforma de traba#o *-?-@ y las primeras versiones de L-?>@ no eran autnomas sino que ten$an que arrancarse desde *-?-@. *-?-@ y L-?>@ son radicalmente diferentes. 5or un lado L-?>@ solventa muchas de las deficiencias de *-?-@ como la carencia de memoria virtual. %stas me#oras permiten que se trate de un sistema adecuado para traba#ar de memoria profesional, no limitndose su uso a un entorno acadmico , pero la diferencia la diferencia mas importante entre ellos esta en su organizacin interna. *ientras que *-?-@ tiene una estructura moderna basada en un *icroGernel, L-?>@ posee una estructura monol$tica mas clsica. =esde su lanzamiento publico en M22M, L-?>@ ha ido evolucionando e incorporando nuevas caracter$sticas. Adems se transportado a otros procesadores como '5ACB, AL5FA / *-5'. %n la actualidad es un sistema con unas caracter$sticas y prestaciones comparables a las de cualquier sistema operativo comercial. 11.2 Caracter:sticas estructura de 3I0JK.= L-?>@ es un sistema de tipo >?-@ y, por tanto, posee las caracter$sticas t$picas de los sistemas >?-@, L-?>@ se trata de un sistema multiusuarios y multitarea de propsito general. Baracter$sticas especificas de L-?>@. 5roporciona una interfaz 5('-@. 1iene un cdigo independiente del procesador en la medida de lo posible. 5uede adaptarse en maquinas de muy diversas caracter$sticas. 5ermite incluir de forma dinmica nuevas funcionalidades al n;cleo del sistema operativo gracias al mecanismo de los mdulos. 5roporciona soportes para una gran variedad de tipos de sistemas de archivos, entre ellos los utilizados en ]indows. 1ambin es capaz de mane#ar distintos formatos de archivos e#ecutables. 5roporciona soportes para los multiprocesadores utilizando un esquema de multiprocesos simtrico. 5ara aprovechar al mDimo el paralelismo del hardware, se ha ido modificando progresivamente el n;cleo con el ob#etivo de aumentar su concurrencia interna. %n cuanto a la estructura de L-?>@, como se coment previamente, tiene una organizacin monol$tica al igual que ocurre con la mayor$a de las implementaciones de >?^'. A pesar de este carcter monol$tico, el n;cleo no es algo esttico y cerrado sino que se pueden a:adir y quitar mdulos de cdigo en tiempo de e#ecucin. 'e trata de un mecanismo similar al de las bibliotecas dinmicas pero aplicado al propio sistema operativo. 'e pueden a:adir mdulos que correspondan con nuevos tipos de sistemas de archivos, nuevos mane#adores de dispositivos o gestores de nuevos formatos de e#ecutables. >n sistema L-?>@ completo no slo est formado por el n;cleo monol$tico sino tambin incluye programas del sistema +como, por e#emplo, demonios, y bibliotecas del sistema. =ebido a las dificultades que hay para instalar y configurar el sistema, eDisten diversas distribuciones de L-?>@ que incluyen el n;cleo, los programas y bibliotecas del sistema, as$ como un con#unto de herramientas de instalacin y configuracin que facilitan considerablemente esta ardua labor. Fay distribuciones tanto de carcter comercial como gratuitas. Algunas de las distribuciones ms populares son 'lacGware, =ebian, suse y Ced Fat. 11.3 5estin de procesos. La gestin de procesos en L-?>@ es bsicamente igual en cualquier otra variedad de >?^'. >n aspecto original de L-?>@ es el servicio clone que es una eDtensin del clsico forG. %ste nuevo servicio permite crear un proceso que comparta con el padre su mapa de memoria, sus rutinas de mane#o de se:ales y sus descriptores de archivos. Aunque L-?>@ no implementa threads en el n;cleo, se pueden construir bibliotecas de threads usando este nuevo servicio. %n cuanto a la sincronizacin dentro del n;cleo, siguiendo la tradicin de >?^', L-?>@ no permite que haya llamadas concurrentes activas dentro del sistema operativo. As$ se produce un evento que causa un cambio de proceso mientras se est e#ecutando una llamada al sistema

43

Sistemas Operativos

Samuel Alexander Escoto

+por e#emplo, una interrupcin de relo#,, el cambio se difiere hasta que la llamada termina o se bloquea. 5ara evitar las condiciones de carrera entre la e#ecucin de una llamada y el tratamiento de una interrupcin, se proh$ben las interrupciones en peque:as zonas del cdigo del sistema. 5uesto que el cdigo del rutina de interrupcin e#ecuta con una prioridad lata bloqueando el tratamiento de las interrupciones, es importante que estas rutinas sean muy cortas. 5ara ayudar a lograr este ob#etivo, L-?>@ ofrece un mecanismo que permite dividir las operaciones asociadas a una interrupcin en dos partes6 Las operaciones de carcter ms urgente se e#ecutan en el entorno de la rutina de interrupcin, denominada mitad superior en la nomenclatura de L-?>@. Las operaciones menos urgentes las e#ecuta una rutina del n;cleo que tiene una prioridad inferior a la de los dispositivos. %sta rutina se denomina en L-?>@ mitad inferior y durante su e#ecucin no estarn bloqueadas las interrupciones de otros dispositivos. La propia mitad superior se encarga de fi#ar un determinado valor en una estructura de datos para indicar que la mitad inferior est activada. Vusto antes de retornar a modo usuario, el sistema operativo comprueba dicha estructura, y si encuentra que hay alguna mitad inferior activada, la e#ecutar. %n cuanto a la planificacin, L-?>@ soporta tres clases de planificacin6 un algoritmo de tiempo compartido y dos algoritmos de planificacin de tiempo real que se corresponden con los definitivos por 5('-@.

#itades superiores 5prio>max>6 'lamadas al sistema #itades in9eriores rocesos de usuarios 5prio>min>6
)igura MM.M. ?iveles de prioridad dentro del n;cleo de L-?>@. %l servicio schedNsetscheduler permite definir la clase de planificacin del proceso que la invoca. %sta llamada slo puede hacerla un proceso privilegiado. Bada de tiempo real tiene asociada una prioridad y un tipo de planificacin que puede ser )-)( o Cound<Cobin. %l planificador selecciona en cada momento el proceso listo para e#ecutar que tenga mayor prioridad. 'i el proceso de este tipo )-)(, seguir e#ecutando hasta que bloquee. 'i es de tipo Cound<Cobin, cuando termine su roda#a, el proceso pasar al final de la cola de procesos listos para e#ecutar de su misma prioridad. 1odo proceso tiene asociada una prioridad base. -nicialmente la prioridad del proceso es igual a su prioridad base. Bada vez que se produce una interrupcin de relo# se resta una unidad a la prioridad del proceso que estaba e#ecutando. %l algoritmo de planificacin est basado en la prioridad del proceso y tiene carcter eDclusivo6 el planificador elige el proceso listo para e#ecutar que tenga mayor prioridad. Gestion de memoria. L-?>@ tiene un sistema de memoria que incluye todas las caracter$sticas habituales en los sistemas modernos. %stas caracter$sticas ya fueron discutidas en el cap$tulo dedicado a este tema, por lo que en esta seccin se presentan aquellos aspectos espec$ficos de L-?>@6 'e utiliza un modelo de memoria independiente del procesador. >tiliza un esquema de paginacin de 8 niveles. %Diste una capa de software de ba#o nivel que se encarga de adaptar este modelo abstracto al hardware de gestin de memoria real. 5ermite utilizar tantos dispositivos como archivos para soporte de la memoria secundaria.

11.4

44

Sistemas Operativos

Samuel Alexander Escoto

'e utiliza una versin modificada del algoritmo del relo# como algoritmo de reemplazo. Eestiona la memoria dinmica del propio sistema operativo usando un algoritmo inspirado en el sistema buddy. 11.5 entrada&salida. La entrada7salida en L-?>@ es muy similar a la de cualquier otro sistema >?-@. 'e distinguen, por tanto, 3 tipos de dispositivos6 dispositivos de bloques y dispositivos de caracteres. Bomo el resto de sistemas >?-@, se utiliza una cach com;n 5ara todos los dispositivos de bloques. %l tama:o de la cach es dinmico y crece de acuerdo a las necesidades de memoria del resto de sistema. 5ara gestionarla se usa bsicamente una pol$tica de reemplazo LC>. %n las ;ltimas versiones esta cach traba#a coordinadamente con la utilizada por el gestor de memoria. %n cuanto al acceso a los discos, se utiliza el algoritmo del ascensor con un ;nico sentido d servicio. 'iguiendo el modelo de >?-@, en L-?>@ los usuarios ven los dispositivos como archivos y utilizan los servicios destinados a traba#ar con archivos para acceder a los dispositivos. La red, sin embargo, es un dispositivo que tiene un tratamiento un poco diferente. %l usuario no puede acceder a este dispositivo de la misma manera que a un archivo. La parte del sistema operativo que trata la red est dividida en tres niveles6 %n el nivel inferior est el mane#ador del dispositivo al que el usuario no puede acceder directamente. %n el nivel intermedio est el software que implementa la pila de protocolos + por e#emplo, 1B5 e -5,. %n el nivel superior est la interfaz del programador que corresponde con la de los socGets definidos en el >?-@ .'=. 11.6. Sistema de arc)ivos. L-?>@ da soporte a una gran variedad de tipos de sistemas de archivos en los que se incluyen los distintos sistemas de archivos de windows y de otros sistemas >?-@. Adems, cualquier usuario puede programar un mane#ador de un nuevo tipo de sistema de archivos e incluirlo en el sistema como un mdulo. %sta coeDistencia de distintos tipos de sistemas de archivos la posibilita el H)' +virtual file system, sistema virtual de archivos,. Aunque admite muy diferentes tipos de sistemas de archivos, L-?>@ tiene sus propio sistema de archivos que se denomina eDt3fs. %ste sistema evolucion desde el sistema de archivos de *-?-@. 'e le fueron a:adiendo nuevas caracter$sticas al sistema de archivos de *-?-@ hasta llegar al sistema eDtfs. 5osteriormente se redise: dando lugar al eDt3fs actual. 'e trata de un sistema basado en el ))' +fast file system, sistema de archivos rpidos, del >?-@ .'=. *erece mencin aparte un tipo de sistema de archivos muy especial6 el sistema de archivos proc. %ste sistema de archivos no tiene soporte en ning;n dispositivo. 'u ob#etivo es poner a disposicin del usuario datos del estado del sistema en la forma d archivos. %sta idea no es original de L-?>@ ya que casi todos los sistemas >?-@ la incluyen. 'in embargo, L-?>@ se caracteriza por ofrecer ms informacin del sistema que el resto de variedades de >?-@. %n este sistema de archivos se puede acceder a informacin general sobre caracter$sticas y estad$sticas del sistema, as$ como informacin sobre los distintos procesos eDistentes.

roceso de usuario ?/S Ext2 v9at n9s @p9s >>> proc

$ac@e de (loAues #ane)adores de dispositivos 45

Sistemas Operativos

Samuel Alexander Escoto

)igura MM.3. ?iveles del sistema de archivos. Capitulo 12. %studio de casos, .indo/s 01. 12.1. Introduccin. ]indows ?1 es un sistema operativo multitarea, basado en 83 bits, cuyas caracter$sticas principales son su dise:o orientado a ob#etos, el subsistema de seguridad y los servicios de entrada y salida. La historia de este sistema operativo empez en M2A2, cuando *icrosoft decidi dise:ar un nuevo sistema que sustituyera a ]indows 8.D y que incluyera las caracter$sticas adecuadas para ser usadas en mquinas multiprocesos de grandes dimensiones, para lo que versiones anteriores de ]indows no eran vlidas. 5ara ello contrat a eDpertos en dise:o de sistemas operativos, como =ave Butler de =%B, que aportaron al dise:o de ]indows ?1 muchas de las ideas eDistentes en otros sistemas operativos. 12.2. Principio de diseLo de .indo/s 01. ]indows ?1 tiene un dise:o moderno de tipo micro n;cleo, con una peque:a capa de n;cleo que da soporte a las restantes funciones del e#ecutivo del sistema operativo. =entro del e#ecutivo destaca la integracin del modelo de seguridad +nivel B3,, de la gestin de red, de la eDistencia de sistemas d archivos robustos y de aplicacin eDhaustiva del modelo orientado a ob#etos. Los principios de dise:o fundamentales se parecen mucho a los de otros sistemas operativos6 Bompatibilidad. 1anto con los sistemas anteriores +interfaz grfico y sistemas de archivos )A1 de ]indows 8.D, como con otros sistemas operativos +('73, 5('-@, etc., y con distintos entornos de red. La compatibilidad se logra mediante el uso de subsistemas que emulan los servicios de los distintos sistemas operativos. Los emuladores son similares a las mquinas virtuales de *H'. 1ransportabilidad. ]indows ?1 se dise: para tener amplia difusin comercial, por lo que se pens desde el principio en la posibilidad de transportarlo a distintos tipos de computadoras con procesadores B-'B +-ntel, y C-'B + *-5', =igital Alpha, etc.,. 5ara facilitar el transporte, ]indows ?1 se ha construido sobre una peque:a capa de abstraccin de hardware +FAL, Fardware Abstraction Layer, que proporciona toda la funcionalidad dependiente del hardware al n;cleo del sistema. %scabilidad. ]indows ?1 se dise: de forma modular sobre la base de un micron;cleo. %sta arquitectura permite repartir elementos del sistema sobre distintos procesadores de forma sencilla y eDtender el sistema con nuevos componentes. Actualmente el sistema operativo se puede e#ecutar en computadoras con 83 procesadores, lo que permite integrar entornos de estaciones de traba#o y servidores. 'eguridad. >no de los requisitos fundamentales de dise:o de ]indows ?1 fue proporcionar un nivel de seguridad B3 de acuerdo a la clasificacin del =o=. 5ara ello se dise: una arquitectura de seguridad, basada en un monitor de seguridad, que proporciona servicios de seguridad a todos los componentes del sistema operativo y a las aplicaciones eDternas al mismo. )iabilidad y Cobustez. Los dise:adores de ]indows ?1 han incluido servicios para dar ms robustez al sistema tanto en el mbito de procesos como en el de sistemas de archivos. %#emplos son los sistemas de archivos con puntos de recuperacin, la informacin redundantes con tcnicas de paridad, las tcnicas d gestin de memoria o la eDistencia de depuradores internos al n;cleo. 5rocesamiento =istribuido. Al contrario que otros micron;cleos, ]indows ?1 incluye las utilidades de gestin de redes como parte del n;cleo del sistema, proporcionando m;ltiples protocolos de transporte, C5B, 'ocGet, colas de mensa#es, etc. %ficiencia. Los dise:adores de ]indows ?1 se plantearon dise:ar un sistema muy eficiente, tanto en monoprocesadores como en multiprocesadores. 5or ello construyeron un modelo de proceso basado en procesos ligeros y un sistema de entrada y salida muy compacto en el que todos sus componentes se usan como mane#adores de dispositivos.

46

Sistemas Operativos

Samuel Alexander Escoto

12.3. (rquitectura de .indo/s 01. ]indows ?1 tiene una por capas muy modular, en la que cada capa est compuesta de varios mdulos relativamente simples y con una funcionalidad muy espec$fica. %l sistema operativo est compuesta por las siguientes capas6 Bapa de abstraccin del hardware. 5roporciona una interfaz virtual del hardware, escondiendo las particularidades de cada entorno de e#ecucin del sistema operativo. -ncluye la funcionalidad del hardware que necesita el resto del sistema y es el ;nico mdulo que es necesario transportar cuando se cambia a otra plataforma hardware. ?;cleo. 5roporciona servicios y funcionalidades bsicas del sistema operativo tales como gestin de eDcepciones hardware, control de procesos ligeros, sincronizacin, etc. 'olo incluye mecanismos, nunca pol$ticas, aunque toma las decisiones para eDpulsar procesos de memoria. %#ecutivo. -ncluye los mdulos que proporcionan los servicios de sistema operativo para los distintos subsistemas de e#ecucin. 1iene dise:o orientado a ob#etos. 5or ello entre sus componentes incluye un gestor de ob#etos, adems de gestores para los sistemas de seguridad, procesos, memoria virtual, etc. 'u interfaz define capa de servicios que el sistema operativo eDporta a los subsistemas eDternos al n;cleo. %stos servicios son las interfases entre los subsistemas, que se e#ecutan en modo usuario, y el n;cleo. 'ubsistemas de entorno de e#ecucin. 5roporcionan las llamadas al sistema operativo que usan las aplicaciones de usuario, eDistiendo subsistemas compatibles con distintos sistemas operativos +*'<=(', ('73, 5('-@ M, etc.,. A diferencia de las capas anteriores, sus componentes se e#ecutan en modo usuario. 'us servicios se pueden acceder a travs de las bibliotecas de los compiladores. 12.4. %l nFcleo de .indo/s 01. %l n;cleo es la base de ]indows ?1 ya que planifica las actividades, denominadas threads, de los procesadores de la computadora. Al igual que en >?-@, el n;cleo de ]indows ?1 se e#ecuta siempre en modo seguro +modo n;cleo, y no usa la memoria virtual +no paginable,. %l software del n;cleo no se puede eDpulsar de la >B5 y, por tanto, no hay cambios de conteDto durante su e#ecucin. %n caso en que se e#ecute en un multiprocesador se puede e#ecutar simultneamente en todos los procesadores. %l n;cleo proporciona las siguientes funciones al resto del sistema6 *odelos de ob#eto, denominados ob#etos del n;cleo. %#ecucin ordenada de los threads seg;n un modelo de prioridad con 83 niveles. 'incronizacin de la e#ecucin de distintos procesadores si es necesario. Eestin de eDcepciones hardware. Eestin de interrupciones y traps. )uncionalidad espec$fica para mane#ar el hardware. *ecanismos eficientes de comunicacin y sincronizacin. %l modelo de ob#etos est en la base de funcionamiento del n;cleo, que proporciona dos tipos de de ob#etos bsicos6 (b#etos de planificacin. 5ermiten controlar la e#ecucin y sincronizacin de operaciones del sistema mediante una se:al de estado. Los eventos, mutantes, muteD, semforos, threads y temporizadores pertenecen a este tipo de ob#etos. Los mutantes son el equivalente a los muteD, pero a nivel de usuario y concepto de propiedad. Los muteD solo estn disponibles en el modo n;cleo. (b#etos de control. 5ermiten controlar las operaciones del n;cleo, pero no la planificacin. =entro de este tipo de ob#eto se agrupan las interrupciones, las llamadas as$ncronas a procedimiento, los procesos y los perfiles de e#ecucin. >n ob#eto contiene un nombre, un mane#ador, un descriptor de seguridad, una lista de mane#adores de ob#etos abiertos, una descripcin del tipo de ob#eto que almacena y un cuerpo que incluye informacin espec$fica del ob#eto. 5ara almacenar la informacin acerca de los ob#etos y sus atributos, el n;cleo gestiona las siguientes estructuras de datos6

47

Sistemas Operativos

Samuel Alexander Escoto

1abla de interrupciones +-=1, -nterrupt =ispatch 1able,. Asocia las interrupciones con las rutinas que las gestionan. 1abla de descriptores de proceso + 5B., 5rocess Bontrol .locGs,. -ncluye apuntadores a los mane#adores de ob#etos de tipo proceso. Fay una tabla por cada procesador del sistema. Asociada a ellas ayuna tabla de control de regiones de memoria, cuyas entradas apuntan a las regiones de memoria donde estn las otras tablas con informacin relativa al proceso. Bola de temporizadores. Lista global de temporizadores activos de todo el sistema, se mantiene en el n;cleo. Adems de estas estructuras se mantienen otras como las colas de dispositivos, las peticin de procesadores y recursos, etc. 12.5 el e8ecutivo de .indo/s 01. La capa mas comple#a del sistema operativo es el e#ecutivo, un con#unto de servicios comunes que pueden ser usados por todos los subsistemas de entorno de e#ecucin eDistentes en ]indows ?1 a travs de la capa de servicios del sistema. Bada grupo de servicios es mane#ado por uno de los siguientes componentes6 Eestor de ob#etos. Eestor de procesos. Eestor de memoria virtual. *onitor de seguridad. >tilidad para llamadas a procedimientos locales. Eestor de entrada y salida. 12.5. Gestor de o#8etos. %l gestor de ob#etos es el componente del e#ecutivo de ]indows ?1 que se encarga de proporcionar servicios para todos los aspectos de los ob#etos, incluyendo reglas para nombres y seguridad. 1odo el funcionamiento del sistema operativo se basa en los ob#etos, que son instancias en tiempo de e#ecucin de un tipo ob#eto particular que pueden ser manipuladas por alg;n componente del sistema operativo. >n tipo ob#eto est compuesto por un tipo de datos estructurado definido por el sistema y las operaciones que se pueden hacer sobre este tipo de datos y con#unto de atributos de datos para dichas operaciones. (0%KDS L$nea del 1iempo de LinuD 1''1 1''2 1''3 1''4 1''5 1''6 1''" 1''$ 1''' %l padre de LinuD es Linus 1orvalds, un programador finlands de 3M a:os que inicialmente no ten$a ms pretensin que "divertirse" creando un sistema operativo para su uso personal. 1orvalds coloc LinuD en -nternet para que cualquiera lo ba#ara gratis, en M22M, y desde entonces participan en su desarrollo cientos de voluntarios. Foy LinuD se difunde ms rpido que cualquier otro sistema operativo, es venerado por una comunidad de diez millones de usuarios y comienza a verse como una alternativa real a ]indows. %sta es su historia. 1''1 < %n abril, Linus 1orvalds comenz a crear un programa que varios meses despus se convertir$a en LinuD, un sistema operativo >niD para 5B +>niD es un sistema operativo usado en estaciones de traba#o y otros computadores de alto rendimientoL hay muchas versiones de >niD,. LinuD naci como un pasatiempo de 1orvalds, que en esa poca ten$a 3M a:os y estudiaba segundo a:o de ciencias de los computadores en la >niversidad de FelsinGi +)inlandia,L su intencin inicial no era crear un sistema operativo, sino eDperimentar creando software para

48

Sistemas Operativos

Samuel Alexander Escoto

mane#ar ciertas funciones bsicas del 5B que hab$a comprado cuatro meses antes +un sistema operativo es el programa que controla el funcionamiento de un computador,. La inquietud surgi porque el sistema operativo que usaba en su 5B, llamado *iniD, era una versin de >niD limitada, y l necesitaba algo me#orL 1orvalds no usaba =(' o ]indows porque le parec$an Ua;n hoyU sistemas pobres y poco confiables +*iniD es un sistema operativo >niD eDperimental, creado por un profesor holands para ense:ar a los estudiantes el funcionamiento de los sistemas operativos,. < A mediados del a:o, el programa estaba avanzado y 1rovalds comenz a pensar seriamente en que podr$a crear el Gernel de un nuevo sistema operativo, similar a *iniD pero me#or +el Gernel es el corazn de un sistema operativo,. 1rovalds no ten$a grandes pretensionesL l dice que no pens en crear LinuD para que fuera un sistema operativo profesional, sino que lo dise: para su uso personal. 'in embargo, poco a poco su pasatiempo se fue convirtiendo en un proyecto ms serio. < %l de octubre, 1rovalds public en un grupo de noticias sobre *iniD, en -nternet, un mensa#e en el que anunci la creacin de LinuD, un sistema operativo para 5B basados en procesadores -ntel 8A9. %l mensa#e dec$a que el sistema +LinuD versin !.!3, estaba todav$a en desarrollo, pero ya funcionaba, y lo ofrec$a gratis a cualquiera que deseara ba#arlo. 1ambin invit a los programadores interesados en sistemas operativos a usarlo, y enviarle correcciones y me#oras para incluirlas en la prDima versin. %se fue un suceso clave en la historia de LinuDL gracias a -nternet, LinuD pronto se convertir$a en un fenmeno mundial. 1''2 < %n enero, LinuD ten$a cerca de M!! usuarios, y varios de ellos ya participaban en el desarrollo de LinuD con me#oras y correcciones que enviaban a 1orvalds por -nternet. _l lanz ese mes la versin !.M3 de LinuDL esa fue la primera versin que incluy partes desarrolladas por otros programadores y la primera que realmente se desempe:aba me#or que *iniD en ciertos aspectos. = Microso7t lan! .indo/s 3.1. < %l n;mero de usuarios de LinuD comenz a crecer rpidamente, y no era eDtra:o que tuviera gran acogida. Al igual que 1orvalds, muchos estudiantes de sistemas y gomosos de la computacin amaban los sistemas operativos >niD por su estabilidad y potencia, pero estos eran inalcanzables porque una versin comercial de >niD costaba en esa poca J.!!! o .!!! dlares, y casi todas funcionaban eDclusivamente en estaciones de traba#o de M!.!!! o ms dlares +no en 5B,. LinuD, en cambio, era un sistema >niD gratuito, y funcionaba en 5B basados en procesadores -ntel +8A9, JA9, etc.,. < A medida que creci el n;mero de usuarios, tambin aumentaron los programadores voluntarios que se involucraron en el desarrollo de LinuD. 1orvalds distribuy LinuD ba#o un tipo de licencia llamada E5L, que permite a cualquier persona ba#ar, usar, modificar e incluso vender LinuD, sin pagar un pesoL la ;nica condicin es que los cambios o me#oras que una persona o compa:$a realicen en LinuD tambin deben ser p;blicos. %s gener un fenmeno de colaboracin mundial sin precedentes. 5rogramadores de todo el planeta enviaron a 1orvalds me#oras para el Gernel, reportaron errores y comenzaron a crear controladores de dispositivos para LinuD. 'e calcula que al final de M223 LinuD ten$a aproDimadamente M.!!! usuarios. 1''3 < 'e estima que este a:o LinuD complet 3!.!!! usuarios en el mundo, y ms de M!! programadores contribuyeron en su desarrollo. 5ara poder mane#ar esas colaboraciones, 1orvalds deleg las labores de revisin del cdigo de programacin de LinuD a cinco personas, que se convirtieron en sus `oficialesR principales. A diferencia de los programas comerciales, que se actualizan cada dos o tres a:os, en el mundo LinuD aparecen actualizaciones y me#oras menores cada pocas semanasL eso ha permitido que LinuD evolucione rpidamente. < *icrosoft lanz ]indows ?1, una versin de ]indows para servidores y estaciones de traba#o +es, por ello, rival de los sistemas operativos >niD,. 1''4 < %n marzo se lanz la primera versin "completa" del sistema operativo de 1orvalds6 LinuD M.!. %sta versin ofreci soporte a redes de computadores, e incluy docenas de utilidades, programas de desarrollo de aplicaciones y otras herramientas.

49

Sistemas Operativos

Samuel Alexander Escoto

< 'e fund Ced Fat 'oftware, una empresa que hoy es el principal distribuidor de LinuD. Aunque LinuD se puede ba#ar gratis de -nternet, hay docenas de empresas Ucomo Ced Fat 'oftware y BalderaU que elaboran sus propias versiones, y las venden en B=<C(*, #unto con manuales, soporte tcnico y programas adicionales +esto es lo que se conoce en el mundo de LinuD como una distribucin,. %stas distribuciones cuestan entre M! y O! dlares, dependiendo de la empresa. < %ste a:o LinuD complet aproDimadamente M!!.!!! usuarios. 1''5 < %n agosto, *icrosoft lanz ]indows 2 . < A finales de este a:o LinuD ten$a aproDimadamente !!.!!! usuarios. 1''6 < %l 2 de #unio se lanz la versin 3.! de LinuD. >na de las principales novedades fue el soporte a multiprocesamiento simtrico +el sistema aprovechaba el poder de computadores con ms de un procesador,. Adems, LinuD 3.! no solo traba#aba en 5B con procesadores -ntel DA9 +como el 8A9, JA9 y 5entium,, sino tambin en estaciones de traba#o con procesadores Alpha. < 'e calcula que este a:o LinuD complet M, millones de usuarios. 1''" < Linus 1orvalds se fue a vivir a 'anta Blara +Balifornia, %stados >nidos,, debido a que fue contratado por una compa:$a llamada 1ransmeta +es una empresa de chips, que no est relacionada con LinuD,. 'in embargo, 1orvalds continu encabezando el equipo de gente que se encarga del desarrollo del Gernel de LinuD. < La firma de investigaciones =atapro di#o que LinuD era el segundo sistema operativo ms popular en los servidores web de -nternet, despus de 'olaris +un sistema >niD de 'un *icrosystems,. < 'e estima que LinuD complet 8, millones de usuarios. %ste a:o se lanz la versin 3.M. 1''$ < Harios de los principales fabricantes de programas para el mercado corporativo, como (racle, -nformiD, Bomputer Associates +BA, y ?etscape, anunciaron que lanzarn versiones para LinuD de sus productos. %l respaldo de estas empresas ha sido clave para la consolidacin de LinuD en las empresas. < %n #unio, *icrosoft lanz ]indows 2A. < %n septiembre, -ntel Borporation y ?etscape anunciaron una inversin de capital en la empresa Ced Fat 'oftware. %ste hecho fue muy importante para aumentar la credibilidad de LinuD, debido a que -ntel y ?etscape son dos de los l$deres de la industria de los computadores. < %n diciembre, Borel Borporation lanz una versin para LinuD de su procesador de palabra ]ord5erfect A. %l programa se coloc en -nternet para que los usuarios lo pudieran probar gratis durante 2! d$as, y en los primeros seis meses lo ba#aron un milln de personas. < A finales de M22A, LinuD dominaba cerca del MO por ciento del mercado de sistemas operativos para redes, seg;n la empresa de investigacin de mercados -nternational =ata Borporation +-=B,. < 'e calcula que LinuD complet O, millones de usuarios. / el n;mero de programadores que participan en el desarrollo y pruebas del programa creci a M!.!!!. 1''' < %n enero se lanz la versin 3.3 de LinuD, que ofreci un me#or rendimiento y soporte para procesadores 'parc, *otorola 9A!!!, 5ower5B y *-5'. %sta versin, al igual que la 3.!, soporta computadores con A procesadores, pero el multiprocesamiento es mucho ms eficiente en la versin 3.3. < Borel Borporation anunci que antes de terminar este a:o lanzar Borel LinuD, una distribucin de LinuD dirigida a usuarios de 5B. Aunque hay muchas empresas que ofrecen versiones comerciales de LinuD, esta tiene gran relevancia por estar dirigida a usuarios comunes y por ser producida por uno de los ms grandes fabricantes de software del mundo. Borel tambin di#o que en el a:o 3!!! lanzar una versin para LinuD del programa grfico ms importante del mundo ]indows, Borel=raw, lo mismo que una versin de su paquete de

50

Sistemas Operativos

Samuel Alexander Escoto

programas Borel ]ord5erfect 'uite. < Linus 1orvalds di#o que a finales de M222 se lanzar la versin 3.J del Gernel de LinuD. La versin 3.J +la actual es la 3.3.MM, me#orar el soporte a multiprocesamiento simtrico, y soportar tecnolog$as como >niversal 'erial .us +>'., y 5B*B-A +actualmente tienen soporte, pero por medio de programas adicionales,. < Actualmente, LinuD tiene gran acogida y un futuro prometedor. 'e calcula que cuenta con ms de diez millones de usuarios. Adems, traba#a en los principales tipos de procesadores6 -ntel DA9, *otorola 9A!D!, *-5', 5ower5B +los que usan los *acintosh,, Alpha y 'parc +estos dos ;ltimos son procesadores de 9J bits, ms potentes que los chips -ntel DA9,. -ncluso, hay una versin que funciona en el computador de mano 5alm5ilot. =e otro lado, varios de los principales fabricantes de computadores, como =ell Bomputer, Bompaq y Fewlett< 5acGard, venden equipos que traen LinuD preinstalado. (0%KD II %studio so#re virus in7orm;ticos %l nuevo escenario in7orm;tico. >no de los cambios ms sorprendentes del mundo de hoy es la rapidez de las comunicaciones. *odernos sistemas permiten que el flu#o de conocimientos sea independiente del lugar f$sico en que nos encontremos. /a no nos sorprende la transferencia de informacin en tiempo real o instantneo. 'e dice que el conocimiento es poderL para adquirirlo, las empresas se han unido en grandes redes internacionales para transferir datos, sonidos e imgenes, y realizan el comercio en forma electrnica, para ser ms eficientes. 5ero al unirse en forma p;blica, se han vuelto vulnerables, pues cada sistema de computadoras involucrado en la red es un blanco potencial y apetecible para obtener informacin. %l escenario electrnico actual es que las organizaciones estn uniendo sus redes internas a la -nternet, la que crece a razn de ms de un M!T mensual. Al unir una red a la -nternet se tiene acceso a las redes de otras organizaciones tambin unidas. =e la misma forma en que accedemos la oficina del frente de nuestra empresa, se puede recibir informacin de un servidor en Australia, conectarnos a una supercomputadora en ]ashington o revisar la literatura disponible desde Alemania. =el universo de varias decenas de millones de computadoras interconectadas, no es dif$cil pensar que puede haber ms de una persona con perversas intenciones respecto de una organizacin. 5or eso, se debe tener la red protegida adecuadamente. Bada vez es ms frecuente encontrar noticias referentes a que redes de importantes organizaciones han sido violadas por criminales informticos desconocidos. A pesar de que la prensa ha publicitado que tales intrusiones son solamente obra de adolescentes con propsitos de entretenerse o de #ugar, ya no se trata de un incidente aislado de una desafortunada institucin. A diario se reciben reportes los ataques a redes informticas, los que se han vuelto cada vez ms siniestros6 los archivos son alterados subrepticiamente, las computadoras se vuelven inoperativas, se ha copiado informacin confidencial sin autorizacin, se ha reemplazado el software para agregar &puertas traseras& de entrada, y miles de contrase:as han sido capturadas a usuarios inocentes. Los administradores de sistemas deben gastar horas y a veces d$as enteros volviendo a cargar o reconfigurando sistemas comprometidos, con el ob#eto de recuperar la confianza en la integridad del sistema. ?o hay manera de saber los motivos que tuvo el intruso, y debe suponerse que sus intenciones son lo peor. Aquella gente que irrumpe en los sistemas sin autorizacin, aunque sea solamente para mirar su estructura, causa mucho da:o, incluso sin que hubieran le$do la correspondencia confidencial y sin borrar ning;n archivo. >no de los cambios ms sorprendentes del mundo de hoy es la rapidez de las comunicaciones. *odernos sistemas permiten que el flu#o de conocimientos sea independiente del lugar f$sico en que nos encontremos. /a no nos sorprende la transferencia de informacin en tiempo real o instantneo. 'e dice que el conocimiento es poderL para adquirirlo, las empresas se han unido en grandes redes internacionales para transferir datos, sonidos e imgenes, y realizan el comercio en forma electrnica, para ser ms eficientes. 5ero al unirse en forma p;blica, se han

51

Sistemas Operativos

Samuel Alexander Escoto

vuelto vulnerables, pues cada sistema de computadoras involucrado en la red es un blanco potencial y apetecible para obtener informacin. %l escenario electrnico actual es que las organizaciones estn uniendo sus redes internas a la -nternet, la que crece a razn de ms de un M!T mensual. Al unir una red a la -nternet se tiene acceso a las redes de otras organizaciones tambin unidas. =e la misma forma en que accedemos la oficina del frente de nuestra empresa, se puede recibir informacin de un servidor en Australia, conectarnos a una supercomputadora en ]ashington o revisar la literatura disponible desde Alemania. =el universo de varias decenas de millones de computadoras interconectadas, no es dif$cil pensar que puede haber ms de una persona con perversas intenciones respecto de una organizacin. 5or eso, se debe tener nuestra red protegida adecuadamente. Bada vez es ms frecuente encontrar noticias referentes a que redes de importantes organizaciones han sido violadas por criminales informticos desconocidos. A pesar de que la prensa ha publicitado que tales intrusiones son solamente obra de adolescentes con propsitos de entretenerse o de #ugar, ya no se trata de un incidente aislado de una desafortunada institucin. A diario se reciben reportes los ataques a redes informticas, los que se han vuelto cada vez ms siniestros6 los archivos son alterados subrepticiamente, las computadoras se vuelven inoperativas, se ha copiado informacin confidencial sin autorizacin, se ha reemplazado el software para agregar &puertas traseras& de entrada, y miles de contrase:as han sido capturadas a usuarios inocentes. Los administradores de sistemas deben gastar horas y a veces d$as enteros volviendo a cargar o reconfigurando sistemas comprometidos, con el ob#eto de recuperar la confianza en la integridad del sistema. ?o hay manera de saber los motivos que tuvo el intruso, y debe suponerse que sus intenciones son lo peor. Aquella gente que irrumpe en los sistemas sin autorizacin, aunque sea solamente para mirar su estructura, causa mucho da:o, incluso sin que hubieran le$do la correspondencia confidencial y sin borrar ning;n archivo. =e acuerdo a un estudio de la Bonsultora W%rnst and /oungX abarcando ms de mil empresas, un 3!T reporta prdidas financieras como consecuencia de intrusiones en sus computadoras +1echnology Ceview, Abril 2 , pg.88,. /a pasaron los tiempos en que la seguridad de las computadoras era slo un #uego o diversin. Acmo nacieron los virusC. Facia finales de los a:os 9!, =ouglas *c-lory, Hictor HysottsGy y Cobert *orris idearon un #uego al que llamaron Core War +Euerra en lo Bentral, aludiendo a la memoria de la computadora,, que se convirti en el pasatiempo de algunos de los programadores de los laboratorios .ell de A1a1. %l #uego consist$a en que dos #ugadores escribieran cada uno un programa llamado or!anismo, cuyo hbitat fuera la memoria de la computadora. A partir de una se:al, cada programa intentaba forzar al otro a efectuar una instruccin invlida, ganando el primero que lo consiguiera. Al trmino del #uego, se borraba de la memoria todo rastro de la batalla, ya que estas actividades eran severamente sancionadas por los #efes por ser un gran riesgo de#ar un or!anismo suelto que pudiera acabar con las aplicaciones del d$a siguiente. =e esta manera surgieron los programas destinados a daLar en la escena de la computacin. >no de los primeros registros que se tienen de una infeccin data del a:o M2AO, cuando en la >niversidad estadounidense de =elaware notaron que ten$an un virus porque comenzaron a ver &b .rain& como etiqueta de los disquetes. La causa de ello era .rain Bomputer 'ervices, una casa de computacin paquistan$ que, desde M2A9, vend$a copias ilegales de software comercial infectadas para, seg;n los responsables de la firma, dar una leccin a los piratas. %llos hab$an notado que el sector de booteo de un disquete conten$a cdigo e#ecutable, y que dicho cdigo se e#ecutaba cada vez que la mquina se inicializaba desde un disquete. Lograron reemplazar ese cdigo por su propio programa, residente, y que este instalara una rplica de s$ mismo en cada disquete que fuera utilizado de ah$ en ms. 1ambin en M2A9, un programador llamado Calf .urger se dio cuenta de que un archivo pod$a ser creado para copiarse a s$ mismo, adosando una copia de l a otros archivos. %scribi una

52

Sistemas Operativos

Samuel Alexander Escoto

demostracin de este efecto a la que llam H-C=%*, que pod$a infectar cualquier archivo con eDtensin .CDM. %sto atra#o tanto inters que se le pidi que escribiera un libro, pero, puesto que l desconoc$a lo que estaba ocurriendo en 5aquistn, no mencion a los virus de sector de arranque +boot sector,. 5ara ese entonces, ya se hab$a empezado a diseminar el virus Hienna. Actualmente, los virus son producidos en cantidades eDtraordinarias por muchisima gente alrededor del planeta. Algunos de ellos dicen hacerlo por divertimento, otros quizs para probar sus habilidades. =e cualquier manera, hasta se ha llegado a notar un cierto grado de competitividad entre los autores de estos programas. Bon relacin a la motivacin de los autores de virus para llevar a cabo su obra, eDiste en -nternet un documento escrito por un escritor freelance *arGus 'alo, en el cual, entre otros, se eDponen los siguientes conceptos6 Algunos de los programadores de virus, especialmente los me#ores, sostienen que su inters por el tema es puramente cient$fico, que desean averiguar todo lo que se pueda sobre virus y sus usos. A diferencia de las compa:$as de software, que son organizaciones relativamente aisladas unas de otras +todas tienen secretos que no querr$an que sus competidores averiguaran, y cuentan entre sus filas con mayor$a de estudiantes graduados, las agrupaciones de programadores de virus estn abiertas a cualquiera que se interese en ellas, ofrecen conse#os, camarader$a y pocas limitaciones. Adems, son libres de seguir cualquier ob#etivo que les parezca, sin temer por la prdida de respaldo econmico. %l hecho de escribir programas v$rales da al programador cierta fuerza coercitiva, lo pone fuera de las reglas convencionales de comportamiento. %ste factor es uno de los ms importantes, pues el sentimiento de pertenencia es algo necesario para todo ser humano, y es probado que dicho sentimiento pareciera verse reforzado en situaciones marginales. 5or otro lado, ciertos programadores parecen intentar legalizar sus actos poniendo sus creaciones al alcance de mucha gente, +v$a -nternet, ..' especializadas, etc., haciendo la salvedad de que el material es peligroso, por lo cual el usuario deber$a tomar las precauciones del caso. %Disten programadores, de los cuales, generalmente, provienen los virus ms destructivos, que alegan que sus programas son creados para hacer notoria la falta de proteccin de que sufren la mayor$a de los usuarios de computadoras. La gran mayor$a de estos individuos son del mismo tipo de gente que es reclutada por los grupos terroristas6 hombres, adolescentes, inteligentes. %n definitiva, sea cual fuere el motivo por el cual se siguen produciendo virus, se debe destacar que su eDistencia no ha sido slo per#uicios6 gracias a ellos, mucha gente a tomado conciencia de qu es lo que tiene y cmo protegerlo. ABu4 es un virusC. %s un peque:o programa escrito intencionalmente para instalarse en la computadora de un usuario sin el conocimiento o el permiso de este. =ecimos que es un programa parsito porque el programa ataca a los archivos o sector es de &booteo& y se replica a s$ mismo para continuar su esparcimiento. Algunos se limitan solamente a replicarse, mientras que otros pueden producir serios da:os que pueden afectar a los sistemas. 'e ha llegado a un punto tal, que un nuevo virus llamado ]2 7B-F<M!DD. o tambin como B-F.'pacefiller +puede aparecer el 39 de cada mes, especialmente 39 de Vunio y 39 de Abril, ataca al .-(' de la 5B husped y cambiar su configuracin de tal forma que se requiere cambiarlo. ?unca se puede asumir que un virus es inofensivo y de#arlo &flotando& en el sistema. %Disten ciertas analog$as entre los virus biolgicos y los informticos6 mientras los primeros son agentes eDternos que invaden clulas para alterar su informacin gentica y reproducirse, los segundos son programas<rutinas, en un sentido ms estricto, capaces de infectar archivos de computadoras, reproducindose una y otra vez cuando se accede a dichos archivos, da:ando la informacin eDistente en la memoria o alguno de los dispositivos de almacenamiento del ordenador.

53

Sistemas Operativos

Samuel Alexander Escoto

1ienen diferentes finalidades6 Algunos slo "infectan", otros alteran datos, otros los eliminan, algunos slo muestran mensa#es. 5ero el fin ;ltimo de todos ellos es el mismo6 P9DP(G(9S%. %s importante destacar que el potencial de daLo de un virus in7orm;tico no depende de su comple8idad sino del entorno donde actFa. La definicin ms simple y completa que hay de los virus corresponde al modelo =. A. '., y se fundamenta en tres caracter$sticas, que se refuerzan y dependen mutuamente. 'eg;n ella, un virus es un programa que cumple las siguientes pautas6 %s da:ino %s autorreproductor %s subrepticio %l hecho de que la definicin imponga que los virus son programas no admite ning;n tipo de observacinL est eDtremadamente claro que son programas, realizados por personas. Adems de ser programas tienen el fin ineludible de causar da:o en cualquiera de sus formas. Asimismo, se pueden distinguir tres mdulos principales de un virus informtico6 *dulo de Ceproduccin *dulo de Ataque *dulo de =efensa %l mdulo de reproduccin se encarga de mane#ar las rutinas de &parasitacin& de entidades e#ecutables +o archivos de datos, en el caso de los virus macro, a fin de que el virus pueda e#ecutarse subrepticiamente. 5udiendo, de esta manera, tomar control del sistema e infectar otras entidades permitiendo se traslade de una computadora a otra a travs de algunos de estos archivos. %l mdulo de ataque es optativo. %n caso de estar presente es el encargado de mane#ar las rutinas de da:o adicional del virus. 5or e#emplo, el conocido virus Mic)elan5elo, adems de producir los da:os que se detallarn ms adelante, tiene un mdulo de ataque que se activa cuando el relo# de la computadora indica 9 de *arzo. %n estas condiciones la rutina act;a sobre la informacin del disco r$gido volvindola inutilizable. %l mdulo de de7ensa tiene, obviamente, la misin de proteger al virus y, como el de ataque, puede estar o no presente en la estructura. 'us rutinas apuntan a evitar todo aquello que provoque la remocin del virus y retardar, en todo lo posible, su deteccin. 1ipos de virus. Los virus se clasifican por el modo en que act;an infectando la computadora6 5rograma6 -nfectan archivos e#ecutables tales como .com 7 .eDe 7 .ovl 7 .drv 7 .sys 7 .bin .oot6 -nfectan los sectores .oot Cecord, *aster .oot, )A1 y la 1abla de 5articin. *;ltiples6 -nfectan programas y sectores de &booteo&. .ios6 Atacan al .ios para desde all$ reescribir los discos duros. FoaD6 'e distribuyen por e<mail y la ;nica forma de eliminarlos es el uso del sentido com;n. Al respecto, se trata de virus que no eDiste y que se utiliza para aterrar a los novatos especialmente en la -nternet a pesar que los rumores lo muestran como algo muy serio y a veces la informacin es tomada por la prensa especializada. 5or lo general, como ya se eDpres, la difusin se hace por cadenas de e<mail con terribles e inopinadas advertencias. %n realidad el ;nico virus es el mensa#e. A continuacin se dan una serie de supuestos &virus&, por lo que es aconse#able ignorar los mensa#es que aparecen y no ayudar a replicarlos continuando con la cadena6 8b 1ro#an +alias 5Sc-5 Hirus,. A(LJ)ree Hirus FoaD. .aby ?ew /ear Hirus FoaD. .>==/L'1.c-5 .>='AH%C.%@% .udweiser FoaD =eath92 =eeyenda %<)lu )atBat Hirus FoaD

54

Sistemas Operativos

Samuel Alexander Escoto

)ree *oney Eet *ore *oney FoaD Ehost Eood 1imes FacGy .irthday Hirus FoaD Fairy 5alms Hirus FoaD -rina Voin the Brew Londhouse Hirus FoaD *icrosoft Hirus FoaD *illenium 1ime .omb 5enpal Ereetings Ced Alert Ceturned or >nable to =eliver 1eletubbies 1ime .omb Hery Bool ]in a Foliday ]orld =omination FoaD /ellow 1eletubbies A.-.=.'. hoaD email virus AltaHista virus scare A(L riot hoaD email A'5 virus hoaD .acG (rifice 1ro#an horse .ill Eates hoaD .loat, see *5%E virus hoaD .udweiser frogs screen<saver scare Eood 1imes hoaD email virus -rina hoaD virus Vava virus scare Voin the Brew hoaD email virus "*illennium" virus misunderstanding *5%E virus hoaD "*y clocG says 3!2O73!2A" virus misunderstanding ?ew virus debug device hoaD email virus with attached 1ro#an horse (pen6 Hery Bool, see A.-.=.'. hoaD email virus 5enpal Ereetings, see Eood 1imes hoaD email virus 5Sc8!! 1ro#an virus scare Ceturned or >nable to =eliver hoaD email virus ]alt =isney greeting, see .ill Eates hoaD ]in a Foliday hoaD email virus ]indows R2A *' ]arning. 5or ;ltimo, cabe destacar que los F(A@ estn dise:ados ;nicamente para asustar a los novatos +y a los que no lo son tanto,. (tros como el mensa#e del carcinoma cerebral de 6essicaH 6essica M de?, (na#elle, (na, Mill y otros persona#es imaginarios tampoco son reales como tampoco lo es la direccin (CSNaol.com, ya que fueron creados para producir congestionamiento en la -nternet. Caracter:sticas de los virus. %l virus es un peque:o software +cuanto ms peque:o ms fcil de esparcir y ms dif$cil de detectar,, que permanece inactivo hasta que un hecho eDterno hace que el programa sea e#ecutado o el sector de &booteo& sea le$do. =e esa forma el programa del virus es activado y se

55

Sistemas Operativos

Samuel Alexander Escoto

a, b, c, d, e,

carga en la memoria de la computadora, desde donde puede esperar un evento que dispare su sistema de destruccin o se replique a s$ mismo. Los ms comunes son los residentes en la memoria que pueden replicarse fcilmente en los programas del sector de &booteo&, menos comunes son los no<residentes que no permanecen en la memoria despus que el programa<huesped es cerrado. Los virus pueden llegar a &camuflarse& y esconderse para evitar la deteccin y reparacin. Bomo lo hacen6 %l virus re<orienta la lectura del disco para evitar ser detectadoL Los datos sobre el tama:o del directorio infectado son modificados en la )A1, para evitar que se descubran bytes eDtra que aporta el virusL encriptamiento6 el virus se encripta en s$mbolos sin sentido para no ser detectado, pero para destruir o replicarse *%M% desencriptarse siendo entonces detectableL polimorfismo6 mutan cambiando segmentos del cdigo para parecer distintos en cada &nueva generacin&, lo que los hace muy dif$ciles de detectar y destruirL Eatillables6 se relaciona con un evento que puede ser el cambio de fecha, una determinada combinacin de tecleoL un macro o la apertura de un programa asociado al virus +1royanos,. Los virus se transportan a travs de programas tomados de ..' +.ulletin .oards, o copias de software no original, infectadas a propsito o accidentalmente. 1ambin cualquier archivo que contenga &e#ecutables& o &macros& puede ser portador de un virus6 downloads de programas de lugares insegurosL e<mail con &attachments&, archivos de *'<]ord y *'<%Dcel con macros. -nclusive ya eDisten virus que se distribuyen con *'<5ower 5oint. Los archivos de datos, teDto o Ftml 0D PJ%*%0 contener virus, aunque pueden ser da:ados por estos. Los virus de sectores de &booteo& se instalan en esos sectores y desde all$ van saltando a los sectores equivalentes de cada uno de los drivers de la 5B. 5ueden da:ar el sector o sobreescribirlo. Lamentablemente obligan al formateo del disco del drive infectado. -ncluyendo discos de 8. & y todos los tipos de cip de -omega, 'ony y 8*. +?o crean vamos a caer en el chiste fcil de decir que el ms eDtendido de los virus de este tipo se llama *' ]indows 2A,. %n cambio los virus de programa, se manifiestan cuando la aplicacin infectada es e#ecutada, el virus se activa y se carga en la memoria, infectando a cualquier programa que se e#ecute a continuacin. 5uede solaparse infecciones de diversos virus que pueden ser destructivos o permanecer inactivos por largos periodos de tiempo. *aLos de los virus. =efiniremos daLo como accin una indeseada, y los clasificaremos seg;n la cantidad de tiempo necesaria para reparar dichos da:os. %Disten seis categor$as de da:os hechos por los virus, de acuerdo a la gravedad. a@ *(ODS 19I<I(3%S. 'irva como e#emplo la forma de traba#o del virus 2D9M +el ms com;n,6 %n el d$a MA de cada mes cualquier tecla que presionemos hace sonar el beep. =eshacerse del virus implica, generalmente, segundos o minutos. #@ *(ODS M%0D9%S. >n buen e#emplo de este tipo de da:o es el 6%9JS(3%M. %ste virus borra, los viernes M8, todos los programas que uno trate de usar despus de que el virus haya infectado la memoria residente. %n el peor de los casos, tendremos que reinstalar los programas perdidos. %sto nos llevar alrededor de 8! minutos. c@ *(ODS MD*%9(*DS. Buando un virus formatea el disco r$gido, mezcla los componentes de la 2(1 +)ile Allocation 1able, 1abla de >bicacin de Archivos,, o sobreescribe el disco r$gido. %n este caso, sabremos inmediatamente qu es lo que est sucediendo, y podremos reinstalar el sistema operativo y utilizar el ;ltimo bacGup. %sto quizs nos lleve una hora. d@ *(ODS M(PD9%S. Algunos virus, dada su lenta velocidad de infeccin y su alta capacidad de pasar desapercibidos, pueden lograr que ni a;n restaurando un bacGup volvamos al ;ltimo estado de los datos. >n e#emplo de esto es el virus *(9Q (<%0G%9, que infecta archivos y acumula la cantidad de

56

Sistemas Operativos

Samuel Alexander Escoto

infecciones que realiz. Buando este contador llega a M9, elige un sector del disco al azar y en l escribe la frase6 &%ddie lives R some/)ere in time& +%ddie vive d en alg;n lugar del tiempo,. %sto puede haber estado pasando por un largo tiempo sin que lo notemos, pero el d$a en que detectemos la presencia del virus y queramos restaurar el ;ltimo bacGup notaremos que tambin l contiene sectores con la frase, y tambin los bacGups anteriores a ese. 5uede que lleguemos a encontrar un bacGup limpio, pero ser tan vie#o que muy probablemente hayamos perdido una gran cantidad de archivos que fueron creados con posterioridad a ese bacGup. e@ *(ODS S%<%9DS. Los da:os severos son hechos cuando un virus realiza cambios m$nimos, graduales y progresivos. ?o sabemos cundo los datos son correctos o han cambiado, pues no hay pistas obvias como en el caso del *(9Q (<%0G%9 +es decir, no podemos buscar la frase %ddie lives ...,. 7@ *(ODS I3IMI1(*DS. Algunos programas como CE%%M(, <(CSI0(.44.3DGI0 y GP1 entre otros, obtienen la clave del administrador del sistema y la pasan a un tercero. Babe aclarar que estos no son virus sino troyanos. %n el caso de CE%%M(, crea un nuevo usuario con los privilegios mDimos, fi#ando el nombre del usuario y la clave. %l da:o es entonces realizado por la tercera persona, quien ingresar al sistema y har$a lo que quisiera. S:ntomas t:picos de una in7eccin. %l sistema operativo o un programa toma mucho tiempo en cargar sin razn aparente. %l tama:o del programa cambia sin razn aparente. %l disco duro se queda sin espacio o reporta falta de espacio sin que esto sea necesariamente as$. 'i se corre el BFS='S no muestra &9 89! bytes available&. %n ]indows aparece &83 bit error&. La luz del disco duro en la B5> continua parpadeando aunque no se este traba#ando ni haya protectores de pantalla activados. +'e debe tomar este s$ntoma con mucho cuidado, porque no siempre es as$,. ?o se puede &bootear& desde el =rive A, ni siquiera con los discos de rescate. Aparecen archivos de la nada o con nombres y eDtensiones eDtra:as. 'uena &clicGs& en el teclado +este sonido es particularmente aterrador para quien no esta advertido,. Los caracteres de teDto se caen literalmente a la parte inferior de la pantalla +especialmente en =(',. %n la pantalla del monitor pueden aparecen mensa#es absurdos tales como S1en5o )am#re. Introduce un Mi5 Mac en el *rive (S. %n el monitor aparece una pantalla con un fondo de cielo celeste, unas nubes blancas difuminadas, una ventana de vidrios repartidos de colores y una leyenda en negro que dice ]indows R2A +?o puedo evitarlo, es mas fuerte que yo...ee,. >na infeccin se soluciona con las llamadas &vacunas& +que impiden la infeccin, o con los remedios que desactivan y eliminan, +o tratan de hacerlo, a los virus de los archivos infectados. Fay cierto tipo de virus que no son desactivables ni removibles, por lo que se debe destruir el archivo infectado. <irus in7orm;ticos ar5entinos. Al igual que todos los pa$ses informatizados, la Argentina cuenta con una produccin local de virus informticos. 'i bien estos no son de los ms comple#os +en su mayor$a, buenas copias y variaciones de virus conocidos, representan un problema, ya que muchos de ellos no estn incluidos en las bases de datos de los programas antivirus. Heamos algunos e#emplos6 PI0G PD0G, %ste virus fue el primero en hacer eDplosin en Argentina. )ue descubierto en marzo de M2AA y en poco tiempo estuvo en nuestro pa$s, en donde se convirti rpidamente en epidemia.

57

Sistemas Operativos

Samuel Alexander Escoto

La falta de conocimiento sobre los virus ayud a que se diseminara ampliamente y fuera incontrolable en un principio. %n centros universitarios como la )acultad de Biencias %Dactas de la >.A o la )acultad de -nformtica de la >niversidad de *orn era dif$cil encontrar un disco sin infectar. %se mismo desconocimiento llev a que pasara bastante tiempo hasta que se empezaran a tomar medidas. 'lo despus de algunos meses, en revistas especializadas en informtica, empezaron a publicarse formas de desinfectar los discos, y como consecuencia de ello se aplicaron pol$ticas de seguridad en las universidades. Lo positivo de esto fue que la gente comenzara a conocer el =.(.'. ms profundamente, por e#emplo el boot sector6 qu es y para qu sirve, ya que las mquinas eran utilizadas pero pocos sab$an cmo funcionaban realmente. Bomo ten$a un s$ntoma muy evidente +una pelotita que rebotaba,, se pens que todos los virus deb$an ser visibles, pero los siguientes fueron ms subrepticios, y se limitaban a reproducirse o destruir sin avisar al usuario. %l 5ing 5ong original no pod$a infectar discos r$gidos, pero la versin que se populariz en el pa$s fue la ., que s$ pod$a hacerlo. 'e cre una variante en Argentina, que probablemente fue la primera variante de virus originada en el pa$s, el 5ing 5ong B, que no mostraba la pelotita en la pantalla. %ste virus est eDtinto en este momento ya que slo pod$a funcionar en mquinas con procesador A!AA A!A9, porque e#ecutaba una instruccin no documentada en estos e incorrecta en los modelos siguientes. (<ISP(, %scrito en ?oviembre de M228 que en muy poco tiempo se convirti en epidemia. -nfecta archivos .%@% Al e#ecutarse, si no se encontraba ya residente en memoria, intenta infectar los archivos @B(5/, *%*, '%1H%C y %**8A9 para maDimizar sus posibilidades de reproduccin, ya que estos archivos son de los ms frecuentemente utilizados. %ste virus est encriptado siempre con una clave distinta +polimrfico,, para dificultar su deteccin por medio de antivirus heur$sticos. M%0%M 1DCD1D, %sta adaptacin del virus *ichelangelo apareci en M22J. %n los disquetes se alo#a en el boot sector, y en los discos r$gidos en la tabla de particiones. %s eDtremadamente sencillo y, por ende, fcil de detectar. C(MDJ23(G% II, Aparecido por primera vez en M228. -nfecta el boot sector de los disquetes ubicados en la unidad A y la tabla de particin de los discos r$gidos. %s bastante simple y fcil de ser detectado. 3%P9DSD, Breado en M228, en Cosario, provincia de 'anta ). 'e activa el d$a M3 de %nero +cumplea:os del autor,, y hace aparecer un mensa#e que dice6 S2elicitacionesH su m;quina est; in7ectada por el virus leproso creado por 6. P.. Eo es mi cumpleaLos lo vo a 7este8ar 7ormateando su r:5ido. M e... ><amos 0e/ellTs que con *ie5o somos campeones@.S PI0*D0G(, Hirus polimrfico residente en memoria que se activa los d$as 3 de febrero, 3M de marzo, 3O de agosto y M9 de septiembre, cuando ataca, borra toda la informacin contenida en el disco r$gido. 1%*P, %s el primer virus argentino interactivo. Apareci hace poco tiempo. -nfecta archivos con eDtensin .%@%, y se caracteriza por hacer una serie de preguntas al usuario. >na vez activado, una pantalla muestra6 U1%*PH el primer virus interactivo de la computacinV 9esponda el si5uiente cuestionario, 1. A3os pro5ramas que Jd. utili!a son ori5inalesC >s&n@ 2. A3os de Microso7t son unos ladronesC >s&n@ Si se responde a7irmativamente a la primer pre5untaH el virus contestar;, 5 arc)ivos menos por mentiroso %n caso contrario, 2 arc)ivos menos por ladrn %n cuanto a la se5unda pre5untaH el Fnico mensa8e que se )a visto es,

58

Sistemas Operativos

Samuel Alexander Escoto

1e do otra oportunidad para responder #ien. Bon este virus, los archivos infectados aumentan su tama:o en J8M! bytes. ABu4 no es un virusC. %Disten algunos programas que, sin llegar a ser virus, ocasionan problemas al usuario. %stos no=virus carecen de por lo menos una de las tres caracter$sticas identificatorias de un virus +da:ino, autorreproductor y subrepticio,. Heamos un e#emplo de estos no < virus6 &Face algunos a:os, la red de -. .. *., encargada de conectar ms de M8! pa$ses, fue virtualmente paralizada por haberse saturado con un correo electrnico que conten$a un mensa#e de salutacin navide:a que, una vez le$do por el destinatario, se enviaba a s$ mismo a cada integrante de las listas de distribucin de correo del usuario. Al cabo de un tiempo, fueron tantos los mensa#es que esperaban ser le$dos por sus destinatarios que el trfico se volvi demasiado alto, lo que ocasion la ca$da de la red&. Asimismo, es necesario aclarar que no todo lo que altere el normal funcionamiento de una computadora es necesariamente un virus. 5or ello, dar algunas de las pautas principales para diferenciar entre qu debe preocuparnos y qu no6 MJGS >%rrores en pro5ramas@. Los bugs no son virus, y los virus no son bugs. 1odos usamos programas que tienen graves errores +bugs,. 'i se traba#a por un tiempo largo con un archivo muy eDtenso, eventualmente algo puede comenzar a ir mal dentro del programa, y este a negarse a grabar el archivo en el disco. 'e pierde entonces todo lo hecho desde la ;ltima grabacin. %sto, en muchos casos, se debe a %CC(C%' del programa. 1odos los programas lo suficientemente comple#os tienen bugs. 2alsa alarma. Algunas veces tenemos problemas con nuestro hardware o software y, luego de una serie de verificaciones, llegamos a la conclusin de que se trata de un virus, pero nos encontramos con una )AL'A ALAC*A luego de correr nuestro programa antivirus. =esafortunadamente no hay una regla estricta por la cual guiarse, pero contestarse las siguientes preguntas puede ser de ayuda6 Y%s slo un archivo el que reporta la falsa alarma +o quizs varios, pero copias del mismo,Z. Y'olamente un producto antivirus reporta la alarmaZ +(tros productos dicen que el sistema est limpio,. Y'e indica una falsa alarma despus de correr m;ltiples productos, pero no despus de bootear, sin e#ecutar ning;n programaZ. 'i al menos una de nuestras respuestas fue afirmativa, es muy factible que efectivamente se trate de una falsa alarma. Pro5ramas corruptos. A veces algunos archivos son accidentalmente da:ados, quizs por problemas de hardware. %sto quiere decir que no siempre que encontremos da:os en archivos deberemos estar seguros de estar infectados. ABu4 es un antivirusC. ?o para toda enfermedad eDiste cura, como tampoco eDiste una forma de erradicar todos y cada uno de los virus eDistentes. %s importante aclarar que todo antivirus es un programa y que, como todo programa, slo funcionar correctamente si es adecuado y est bien configurado. Adems, un antivirus es una herramienta para el usuario y no slo no ser; e7ica! para el 1++W de los casos , sino que nunca ser; una proteccin total ni de7initiva. La funcin de un programa antivirus es detectar, de alguna manera, la presencia o el accionar de un virus informtico en una computadora. %ste es el aspecto ms importante de un antivirus, independientemente de las prestaciones adicionales que pueda ofrecer, puesto que el hecho de detectar la posible presencia de un virus informtico, detener el traba#o y tomar las medidas necesarias, es suficiente para acotar un buen porcenta#e de los da:os posibles. Adicionalmente, un antivirus puede dar la opcin de erradicar un virus informtico de una entidad infectada. %l modelo ms primario de las funciones de un programa antivirus es la deteccin de su presencia y, en lo posible, su identificacin. La primera tcnica que se populariz para la

59

Sistemas Operativos

Samuel Alexander Escoto

deteccin de virus informticos, y que todav$a se sigue utilizando +aunque cada vez con menos eficiencia,, es la tcnica de scannin5. %sta tcnica consiste en revisar el cdigo de todos los archivos contenidos en la unidad de almacenamiento <fundamentalmente los archivos e#ecutables< en busca de peque:as porciones de cdigo que puedan pertenecer a un virus informtico. %ste procedimiento, denominado escaneo, se realiza a partir de una base de datos que contiene trozos de cdigo representativos de cada virus conocido, agregando el empleo de determinados algoritmos que agilizan los procesos de b;squeda. La tcnica de scannin5 fue bastante eficaz en los primeros tiempos de los virus informticos, cuando hab$a pocos y su produccin era peque:a. %ste relativamente peque:o volumen de virus informticos permit$a que los desarrolladores de antivirus escaneadores tuvieran tiempo de analizar el virus, eDtraer el peque:o trozo de cdigo que lo iba a identificar y agregarlo a la base de datos del programa para lanzar una nueva versin. 'in embargo, la obsolescencia de este mecanismo de identificacin como una solucin antivirus completa se encontr en su mismo modelo. %l primer punto grave de este sistema radica en que siempre brinda una solucin a posteriori6 es necesario que un virus informtico alcance un grado de dispersin considerable para que sea enviado +por usuarios capacitados, especialistas o distribuidores del producto, a los desarrolladores de antivirus. %stos lo analizarn, eDtraern el trozo de cdigo que lo identificar, y lo incluirn en la prDima versin de su programa antivirus. %ste proceso puede demorar meses a partir del momento en que el virus comienza a tener una dispersin considerable, lapso en el cual puede causar graves da:os sin que pueda ser identificado. Adems, este modelo consiste en una sucesin in7inita de soluciones parciales moment;neas >cu a sumatoria 8am;s constituir; una solucin de7initiva@ , que deben actualizarse peridicamente debido a la aparicin de nuevos virus. %n s$ntesis, la tcnica de scanning es altamente ineficiente, pero se sigue utilizando debido a que permite identificar rpidamente la presencia de los virus ms conocidos y, como son estos los de mayor dispersin, permite una importante gama de posibilidades. >n e#emplo t$pico de un antivirus de esta clase es el <iruscan de Mc(7ee, que se ver ms adelante. %n virtud del pronto agotamiento tcnico de la tcnica de scanning, los desarrolladores de programas antivirus han dotado a sus creaciones de mtodos para b;squedas de virus informticos +y de sus actividades,, que no identifican espec$ficamente al virus sino a algunas de sus caracter$sticas generales y comportamientos universalizados. %ste tipo de mtodo rastrea rutinas de alteracin de informacin que no puedan ser controladas por el usuario, modificacin de sectores cr$ticos de las unidades de almacenamiento +master boot record, boot sector, )A1, entre otras,, etc. >n e#emplo de este tipo de mtodos es el que utiliza algoritmos )eur:sticos. =e hecho, esta naturaleza de procedimientos busca, de manera bastante eficiente, cdigos de instrucciones potencialmente pertenecientes a un virus informtico. Cesulta eficaz para la deteccin de virus conocidos y es una de las soluciones utilizadas por los antivirus para la deteccin de nuevos virus. %l inconveniente que presenta este tipo de algoritmo radica en que puede lle5ar a sospec)arse de muc)isimas cosas que no son virus . %sto hace necesario que el usuario que lo utiliza conozca un poco acerca de la estructura del sistema operativo, a fin de poseer herramientas que le faciliten una discriminacin de cualquier falsa alarma generada por un mtodo heur$stico. Algunos de los antivirus de esta clase son )<5rot, ?orton Anti Hirus y =r. 'olomon"s 1oolGit. Ahora bien, otra forma de detectar la presencia de un virus informtico en un sistema consiste en monitorear las actividades de la 5B se:alando si alg;n proceso intenta modificar los sectores cr$ticos de los dispositivos de almacenamiento o los archivos e#ecutables. Los programas que realizan esta tarea se denominan c)equeadores de inte5ridad. 'obre la base de estas consideraciones, podemos consignar que un #uen sistema antivirus debe estar compuesto por un pro5rama detector de virus <que siempre est residente en memoria< y un pro5rama que veri7ique la inte5ridad de los sectores cr$ticos del disco r$gido y sus archivos e#ecutables. %Disten productos antivirus que cubren los dos aspectos, o bien pueden combinarse productos diferentes configurados de forma que no se produzcan conflictos entre ellos.

60

Sistemas Operativos

Samuel Alexander Escoto

Modelo antivirus, La estructura de un programa antivirus, est compuesta por dos mdulos principales6 el primero denominado de control y el segundo denominado de respuesta. A su vez, cada uno de ellos se divide en varias partes6 M, Mdulo de control, posee la tcnica veri7icacin de inte5ridad que posibilita el registro de cambios en los archivos e#ecutables y las zonas cr$ticas de un disco r$gido. 'e trata, en definitiva, de una herramienta preventiva para mantener y controlar los componentes de informacin de un disco r$gido que no son modificados a menos que el usuario lo requiera. (tra opcin dentro de este mdulo es la identi7icacin de virus, que incluye diversas tcnicas para la deteccin de virus informticos. Las formas ms comunes de deteccin son el scanning y los algoritmos, como por e#emplo, los heur$sticos. Asimismo, la identi7icacin de cdi5o daLino es otra de las herramientas de deteccin que, en este caso, busca instrucciones peligrosas incluidas en programas, para la integridad de la informacin del disco r$gido. %sto implica descompilar +o desensamblar, en forma automtica los archivos almacenados y ubicar sentencias o grupos de instrucciones peligrosas. )inalmente, el mdulo de control tambin posee una administracin de recursos para efectuar un monitoreo de las rutinas a travs de las cuales se accede al hardware de la computadora +acceso a disco, etc.,. =e esta manera puede limitarse la accin de un programa restringindole el uso de estos recursos, como por e#emplo impedir el acceso a la escritura de zonas cr$ticas del disco o evitar que se e#ecuten funciones de formato del mismo. 3, Mdulo de respuesta, la funcin alarma se encuentra incluida en todos los programas antivirus y consiste en detener la accin del sistema ante la sospecha de la presencia de un virus informtico, e informar la situacin a travs de un aviso en pantalla. Algunos programas antivirus ofrecen, una vez detectado un virus informtico, la posibilidad de erradicarlo. 5or consiguiente, la funcin reparar se utiliza como una solucin momentnea para mantener la operatividad del sistema hasta que pueda instrumentarse una solucin adecuada. 5or otra parte, eDisten dos t4cnicas para evitar el conta5io de entidades e8ecuta#les 6 evitar que se contagie todo el programa o prevenir que la infeccin se eDpanda ms all de un mbito fi#o. Aunque la primera opcin es la ms adecuada, plantea grandes problemas de implementacin. *eteccin prevencin. =ebido a que los virus informticos son cada vez ms sofisticados, hoy en d$a es dif$cil sospechar su presencia a travs de s$ntomas como la prdida de performance. =e todas maneras la siguiente es una lista de s$ntomas que pueden observarse en una computadora de la que se sospeche est infectada por alguno de los virus ms comunes6 (peraciones de procesamiento ms lentas. Los programas tardan ms tiempo en cargarse. Los programas comienzan a acceder por momentos a las disqueteras y7o al disco r$gido. =isminucin no #ustificada del espacio disponible en el disco r$gido y de la memoria CA* disponible, en forma constante o repentina. Aparicin de programas residentes en memoria desconocidos. La primera medida de prevencin a ser tenida en cuenta es, como se di#o anteriormente, contar con un sistema antivirus y utilizarlo correctamente. 5or lo tanto, la ;nica forma de que se constituya un bloqueo eficaz para un virus es que se utilice con determinadas normas y procedimientos. %stas normas tienden a controlar la entrada de archivos al disco r$gido de la computadora, lo cual se logra revisando con el antivirus todos los disquetes o medios de almacenamiento en general y, por supuesto, disminuyendo al m$nimo posible todo tipo de trfico. Adems de utilizar un sistema antivirus y controlar el trfico de archivos al disco r$gido, una forma bastante eficaz de prote5er los arc)ivos e8ecuta#les es utilizar un programa c)equeador de inte5ridad que verifique que estos archivos no sean modificados, es decir, que mantengan su estructura. =e esta manera, antes que puedan ser parasitados por un virus convencional, se impedir$a su accionar. 5ara prevenir la infeccin con un virus de sector de arranque , lo ms indicado es no de#ar disquetes olvidados en la disquetera de arranque y contar con un antivirus. 5ero, adems,

61

Sistemas Operativos

Samuel Alexander Escoto

puede aprovecharse una caracter$stica que incorpora el setup de las computadoras ms modernas6 variar la secuencia de arranque de la 5B a & primero disco r:5ido lue5o disquetera& +B, A,. =e esta manera, la computadora no intentar leer la disquetera en el arranque aunque tenga cargado un disquete. Algunos distribuidores o representantes de programas antivirus env$an muestras de los nuevos virus argentinos a los desarrolladores del producto para que los estudien o incluyan en sus nuevas versiones o upgrades, con la demora que esto implica. %n consecuencia, la deteccin alternativa a la de scanning y las de chequeo de actividad e integridad resultan importantes, ya que pueden detectar la presencia de un virus informtico sin la necesidad de identificarlo. / esta es la ;nica forma disponible para el usuario de detectar virus nuevos, sean nacionales o eDtran#eros. =e todas maneras, e-iste una 7orma de actuali!ar la t4cnica de scannin5 . La misma consiste en incorporarle al antivirus un archivo conteniendo cadenas de caracteres A'B-- que sean trozos de cdigo +strings, significativos del sector vital de cada nuevo virus que todav$a no est incorporado en la base de datos del programa. =e todas formas, esta solucin ser parcial6 la nueva cadena introducida slo identificar" al virus, pero no ser capaz de erradicarlo. %s muy importante que los &strings& que se vayan a incorporar al antivirus provengan de una fuente confiable ya que, de lo contrario, pueden producirse falsas alarmas o ser ineficaces. Algunos de los antivirus que soportan esta cualidad de a!re!ar strings son Hiruscan, )<5rot y 1hunderbyte. La ?B'A +?ational Bomputer 'ecurity Association, Asociacin ?acional de 'eguridad de Bomputadoras, es la encargada de certificar productor antivirus. 5ara obtener dicha certificacin los productos deben pasar una serie de rigurosas pruebas dise:adas para asegurar la adecuada proteccin del usuario. Antiguamente el esquema de certificacin requer$a que se detectara +incluyendo el n;mero de versin, el 2! T de la librer$a de virus del ?B'A, y fue dise:ado para asegurar ptimas capacidades de deteccin. 5ero esta metodolog$a no era completamente eficiente. Actualmente, el esquema de certificacin enfoca la amenaza a las computadoras empresariales. 5ara ser certificado, el producto debe pasar las siguientes pruebas6 a, =ebe detectar el M!!T de los virus encontrados com;nmente. La lista de virus comunes es actualizada peridicamente, a medida que nuevos virus son descubiertos. b, =eben detectar, como m$nimo, el 2!T de la librer$a de virus del ?B'A +ms de 9.!!! virus, %stas pruebas son realizadas con el producto e#ecutndose con su configuracin &por defecto&. >na vez que un producto ha sido certificado, la ?B'A tratar de recertificar el producto un m$nimo de cuatro veces. Bada intento es realizado sin previo aviso al desarrollador del programa. %sta es una buena manera de asegurar que el producto satisface el criterio de certificacin. 'i un producto no pasa la primera o segunda prueba, su distribuidor tendr siete d$as para proveer de la correccin. 'i este l$mite de tiempo es eDcedido, el producto ser eliminado de la lista de productos certificados. >na vez que se ha retirado la certificacin a un producto la ;nica forma de recuperarla es que el distribuidor env$e una nueva versin completa y certificable +no se aceptar slo una reparacin de la falla. Acerca de la lista de virus de la ?B'A, aclaremos que ning;n desarrollador de antivirus puede obtener una copia. Buando un antivirus falla en la deteccin de alg;n virus incluido en la lista, una cadena identificatoria del virus le es enviada al productor del antivirus para su inclusin en futuras versiones. %n el caso de los virus polimrficos, se incluyen m;ltiples copias del virus para asegurar que el producto testeado lo detecta perfectamente. 5ara pasar esta prueba el antivirus debe detectar cada mutacin del virus. La A. H. 5. =. +Antivirus 5roduct =evelopers, =esarrolladores de 5roductos Antivirus, es una asociacin formada por las principales empresas informticas del sector, entre las que se cuentan6 Bheyenne 'oftware -. .. *.

62

Sistemas Operativos
11. -ntel *cAfee Associates (? 1ecnology 'tiller Cesearch -nc. 'a' -nternational 'ymantec Borp. 1hunder.yte

Samuel Alexander Escoto

(3GJ0DS (01I<I9JS. *9. SD3DMD0TS (01I<I9JS 1DD3QI1. Bertificado por la ?B'A. =etecta ms de 9. !! virus gracias a su propio lengua#e de deteccin llamado <ir1ran, con una velocidad de deteccin entre 8 y veces mayor que los antivirus tradicionales. >no de los ;ltimos desarrollos de 'a' es la tecnolog$a E. =. %. +Eeneric =ecription %ngine, *otor de =esencriptacin Eenrica, que permite detectar virus polimrficos sin importar el algoritmo de encriptacin utilizado. 5ermite detectar modificaciones producidas tanto en archivos como en la tabla de particin del disco r$gido. 5ara ello utiliza BhecGsumms Briptogrficos lo cual, sumado a una clave personal de cada usuario, hace casi imposible que el virus pueda descubrir la clave de encriptacin. %limina virus en archivos en forma sencilla y efectiva con pocas falsas alarmas, y en sectores de buteo y tablas de particin la proteccin es genrica, es decir, independiente del virus encontrado. (tras caracter$sticas que presenta este antivirus, son6 (cupa 2S de memoria eDtendida o eDpandida. =ocumentacin amplia y detallada en espa:ol y una enciclopedia sobre los virus ms importantes. Actualizaciones mensuales o trimestrales de software y manuales. 1raba#a como residente ba#o ]indows. A. F. A. +Advanced Feuristic Analysis, Anlisis Feur$stico Avanzado,. 0D91D0 (01I<I9JS. Bertificado por la ?B'A. 5osee una proteccin automtica en segundo plano. =etiene prcticamente todos los virus conocidos y desconocidos +a travs de una tecnolog$a propia denominada 0D<I, que implica control de las actividades t$picas de un virus, protegiendo la integridad del sistema,, antes de que causen alg;n da:o o prdida de informacin, con una amplia l$nea de defensa, que combina b;squeda, deteccin de virus e inoculacin +se denomina "inoculacin" al mtodo por el cual este antivirus toma las caracter$sticas principales de los sectores de booteo y archivos para luego chequear su integridad. Bada vez que se detecta un cambio en dichas reas, ?AH avisa al usuario y provee las opciones de Ceparar < Holver a usar la imagen guardada < Bontinuar < ?o realiza cambios < -nocular < Actualizar la imagen. >tiliza diagnsticos propios para prevenir infecciones de sus propios archivos y de archivos comprimidos. %l escaneo puede ser lanzado manualmente o automticamente a travs de la planificacin de fecha y hora. 1ambin permite reparar los archivos infectados por virus desconocidos. -ncluye informacin sobre muchos de los virus que detecta y permite establecer una contrase:a para aumentar as$ la seguridad. La lista de virus conocidos puede ser actualizada peridicamente +sin cargo, a travs de servicios en l$nea como -nternet, Amrica (n Line, Bompuserve, 1he *icrosoft ?etworG o el ..' propio de 'ymantec, entre otros. <I9JSSC(0. %ste antivirus de Mc(7ee (ssociates es uno de los ms famosos. 1raba#a por el sistema de scanning descripto anteriormente, y es el me#or en su estilo. 5ara escanear, hace uso de dos tcnicas propias6 B*' +Bode *atriD 'canning, %scaneo de *atriz de Bdigo, y B1' +Bode 1race 'canning, %scaneo de 'eguimiento de Bdigo,.

63

Sistemas Operativos

Samuel Alexander Escoto

>na de las principales venta#as de este antivirus es que la actualizacin de los archivos de bases de datos de strings es muy fcil de realizar, lo cual, sumado a su condicin de programa shareware, lo pone al alcance de cualquier usuario. %s bastante fleDible en cuanto a la configuracin de cmo detectar, reportar y eliminar virus. 12. CD0C3JSID0%S. %n razn de lo eDpresado pueden eDtraerse algunos conceptos que pueden considerarse necesarios para tener en cuenta en materia de virus informticos6 ?o todo lo que afecte el normal funcionamiento de una computadora es un virus. 1D*D virus es un programa y, como tal, debe ser e#ecutado para activarse. %s imprescindible contar con herramientas de deteccin y desinfeccin. 0I0GX0 sistema de seguridad es M!!T seguro. 5or eso todo usuario de computadoras deber$a tratar de implementar estrategias de seguridad antivirus, no slo para proteger su propia informacin sino para no convertirse en un agente de dispersin de algo que puede producir da:os graves e indiscriminados. 5ara implementar tales estrategias deber$an tenerse a mano los siguientes elementos6 J0 *ISCD *% SIS1%M( P9D1%GI*D CD019( %SC9I1J9( P 3IM9% *% <I9JS, >n disco que contenga el sistema operativo e#ecutable +es decir, que la mquina pueda ser arrancada desde este disco, con proteccin contra escritura y que contenga, por lo menos, los siguientes comandos6 )(C*A1, )=-'S, *%* y BFS='S +o 'BA?=-'S en versiones recientes del *'< =(',. PD9 3D M%0DS J0 P9DG9(M( (01I<I9JS (C1J(3IY(*D, 'e puede considerar actualizado a un antivirus que no tiene ms de tres meses desde su fecha de creacin +o de actualizacin del archivo de strings,. %s muy recomendable tener por lo menos dos antivirus. J0( 2J%01% *% I02D9M(CIZ0 SDM9% <I9JS %SP%C[2ICDS, %s decir, alg;n programa, libro o archivo de teDto que contenga la descripcin, s$ntomas y caracter$sticas de por lo menos los cien virus ms comunes. J0 P9DG9(M( *% 9%SP(3*D *% \9%(S C9[1IC(S, Alg;n programa que obtenga respaldo +bacGup, de los sectores de arranque de los disquetes y sectores de arranque maestro +*.C, *aster .oot Cecord, de los discos r$gidos. *uchos programas antivirus incluyen funciones de este tipo. 3IS1( *% 3JG(9%S *Z0*% (CJ*I9, >na buena precaucin es no esperar a necesitar ayuda para comenzar a buscar quin puede ofrecerla, sino ir elaborando una agenda de direcciones, telfonos y direcciones electrnicas de las personas y lugares que puedan servirnos ms adelante. 'i se cuenta con un antivirus comercial o registrado, debern tenerse siempre a mano los telfonos de soporte tcnico. J0 SIS1%M( *% P9D1%CCIZ0 9%SI*%01%, *uchos antivirus incluyen programas residentes que previenen +en cierta medida,, la intrusin de virus y programas desconocidos a la computadora. 1%0%9 9%SP(3*DS, 'e deben tener respaldados en disco los archivos de datos ms importantes, adems, se recomienda respaldar todos los archivos e#ecutables. 5ara archivos muy importantes, es bueno tener un respaldo doble, por si uno de los discos de respaldo se da:a. Los respaldos tambin pueden hacerse en cinta +tape bacGup,, aunque para el usuario normal es preferible hacerlo en discos, por el costo que las unidades de cinta representan. 9%<IS(9 1D*DS 3DS *ISCDS 0J%<DS (01%S *% J1I3IY(93DS, Bualquier disco que no haya sido previamente utilizado debe ser revisado, inclusive los programas originales +pocas veces sucede que se distribuyan discos de programas originales infectados, pero es factible, y los que se distribuyen #unto con revistas de computacin. 9%<IS(9 1D*DS 3DS *ISCDS BJ% S% E(P(0 P9%S1(*D, Bualquier disco que se haya prestado a alg;n amigo o compa:ero de traba#o, a;n aquellos que slo contengan archivos de datos, deben ser revisados antes de usarse nuevamente. 9%<IS(9 1D*DS 3DS P9DG9(M(S BJ% S% DM1%0G(0 PD9 MZ*%M D 9%*%S, >na de las grandes v$as de contagio la constituyen -nternet y los ..', sistemas en los cuales es com;n la transferencia de archivos, pero no siempre se sabe desde dnde se est recibiendo informacin.

7 7 7

7 7

7 7

64

Sistemas Operativos
7

Samuel Alexander Escoto

9%<IS(9 P%9IZ*IC(M%01% 3( CDMPJ1(*D9(, 'e puede considerar que una buena frecuencia de anlisis es, por lo menos, mensual. )inalmente, es importante tener en cuenta estas sugerencias referentes al comportamiento a tener en cuenta frente a diferentes situaciones6 Buando se va a revisar o desinfectar una computadora, es conveniente apagarla por ms de segundos y arrancar desde un disco con sistema, libre de virus y protegido contra escritura, para eliminar virus residentes en memoria. ?o se deber e#ecutar ning;n programa del disco r$gido, sino que el antivirus deber estar en el disquete. =e esta manera, eDiste la posibilidad de detectar virus stealth. Buando un sector de arranque +boot sector, o de arranque maestro +*.C, ha sido infectado, es preferible restaurar el sector desde alg;n respaldo, puesto que en ocasiones, los sectores de arranque genricos utilizados por los antivirus no son perfectamente compatibles con el sistema operativo instalado. Adems, los virus no siempre de#an un respaldo del sector original donde el antivirus espera encontrarlo. Antes de restaurar los respaldos es importante no olvidar apagar la computadora por ms de cinco segundos y arrancar desde el disco libre de virus. Buando se encuentran archivos infectados, es preferible borrarlos y restaurarlos desde respaldos, a;n cuando el programa antivirus que usemos pueda desinfectar los archivos. %sto es porque no eDiste seguridad sobre si el virus detectado es el mismo para el cual fueron dise:adas las rutinas de desinfeccin del antivirus, o es una mutacin del original. Buando se va a formatear un disco r$gido para eliminar alg;n virus, debe recordarse apagar la mquina por ms de cinco segundos y posteriormente arrancar el sistema desde nuestro disquete limpio, donde tambin debe encontrarse el programa que se utilizar para dar formato al disco. Buando, por alguna causa, no se puede erradicar un virus, deber buscarse la asesor$a de un eDperto directamente pues, si se pidiera ayuda a cualquier aficionado, se correr el riesgo de perder definitivamente datos si el procedimiento sugerido no es correcto. Buando se ha detectado y erradicado un virus es conveniente reportar la infeccin a alg;n eDperto, grupo de investigadores de virus, soporte tcnico de programas antivirus, etc. %sto que en principio parecer$a innecesario, ayuda a mantener estad$sticas, rastrear focos de infeccin e identificar nuevos virus, lo cual en definitiva, termina beneficiando al usuario mismo. Samuel (le-ander %scoto samescot3fmsn.com samuelescotofnavegante.com.sv

65

Você também pode gostar