Página 1 de 42
1. Software Software de un si stema informático
Unidad Didáctica III Software de un sis tema informático En este tema y en el siguiente pretendemos introducir gran parte de la teoría en la que están basados los sistemas operativos que se utilizan actualmente. Conforme avance el curso irás conociendo y practicando, los sistemas operativos más representativos de la informática actual como son la familia de productos Windows de Microsoft y el sistema operativo Guadalinex , distribución de Linux que ha desarrollado la J unta de And Andalu alucía. cía. En SI Andalucía SCA, SCA , el software que utilizan es el que los clientes demandan. Por ello los protagonistas de nuestra historia deben conocer a fondo todos los productos que el mercado ofrece en cuanto a software de sistema y así aconsejar con garantías cuál se adecua mejor a las necesidades y situaciones que su clientela le pueda plantear. José dice que deben conocer a fondo la teoría en la que están basados los desarrollos de los productos comerciales. Sólo conociendo como funcionan los sistemas "por dentro" podrán llegar a ser auténticos profesionales con criterio propio, capaces de valorar las características de cada sistema. Y lo que es más importante, conociendo los entresijos de las máquinas y software que van a utilizar podrán sacarles el máximo partido. En alguna ocasión han debatido decantarse por un sistema u otro, con el fin de especializarse y dominar el sistema en cuestión, pero siempre hay quienes defienden posturas opuestas. Por ello han decidido no cerrarse a ninguna opción y que en la empresa haya siempre al menos una persona que se dedique al sistema Linux (en todas sus distribuciones) y otra para el sistema Windows de Microsoft (también en todas sus versiones). El máximo defensor de Linux en la empresa es Jesús. Le gusta la filosofía del software libre y el poder hacer aportaciones al sistema. De hecho en alguna ocasión ha notificado errores encontrados y ha hecho alguna pequeña aplicación que por supuesto ha aportado a la comunidad Linux. La que se decanta por Microsoft es María María,, que está de acuerdo con la filosofía de Linux pero exclusivamente para uso doméstico. Piensa que para las empresas es necesario tener un sistema respaldado por una gran compañía que garantice la evolución, soporte técnico y tengan contra quien dirigirse ante catástrofes por fallos del software. En cualquier caso han decidido estar abiertos a todas las posibilidades y estudiar cada caso porque además hay otros sistemas que se adaptan mejor a determinadas tareas empresariales, por ejemplo Mac OS de Ap pl e para diseño gráfico, Solaris de Sun Microsystem, Microsystem , para servidores, y otros muchos. En SI Andalucía saben que los productos comerciales que existen en el mercado y los nuevos que aparecerán, están basados en conocimientos técnicos que son independientes del fabricante o del modelo de sistema. Para comprender y valorar lo particular deben conocer antes lo general. Tanto Jesús como María están al día de estos conocimientos técnicos para comparar continuamente las posibilidades de un sistema frente al otro.
Sistemas informáticos multiusuario y en red
Página 2 de 42
2. Software Software de un si stema informático
Unidad Didáctica III Software de un sis tema informático Víctor está terminando la instalación de las oficinas para la gestoría de unos clientes de Proyectos Locales S.L. y le pregunta a Jesús Jesús,, qué sistema debe instalar en los ordenadores de trabajo. Jesús le dice que la empresa ha pedido mantener el mismo sistema con el que vienen trabajando antes del cambio de oficinas, o sea Windows. Jesús les comentó que sería mejor algún sistema gratuito con el que se ahorrarían una cantidad de dinero importante y con el que tendrían las mismas prestaciones. Pero la empresa le dijo que ahora no es momento de más alteraciones, que el método de trabajo ya está establecido y que con estas nuevas oficinas lo que pretenden es modernizar su imagen frente a los clientes, pero que han decidido seguir trabajando igual que antes.
Ya sabes sabes que que los los ord ordenad enador ores es son son máq máqui uin nas de de pr propós opósit ito o gen gener eral al,, pues puestto qu que de de ant antem emano ano no no pu pueden eden realizar ninguna tarea que no les sea indicada por medio de un programa. También has estudiado que a los programas de ordenador se les denomina genéricamente software. Ese software se puede clasificar por su función en:
Sistema operativo: Es un software que permite administrar los recursos de un ordenador . ¿Te preguntarás cuáles son estos recursos? Pues bien, según se vio en la primera unidad del curso nos estamos refiriendo a:
la memoria, el procesador, los dispositivos de entrada/salida, los dispositivos de comunicación y datos y los medios de almacenamiento masivo.
En realidad el sistema operativo no es un solo programa, sino que lo forman una gran variedad de estos, de manera que cada uno tiene una misión asignada y todos juntos colaboran entre sí para conseguir que nuestro ordenador funcione, también hace de interfaz entre el hardware y el resto de software que utilizamos. También es misión del sistema operativo proporcionar una interfaz de línea de comando o una interfaz gráfica al usuario, para que este último se pueda comunicar con el ordenador ordenador .
Programas de aplicación: aplicación : Es el software que se superpone al sistema operativo y se aprovecha de él para proporcionarnos las diferentes funcionalidades que le vamos a pedir a nuestro sistema informático. P or ejemplo ejemplo un programa programa de aplicación podría podrí a ser una hoja de cálculo cálculo o el navegador Web que estás utilizando para seguir este curso. Sin el sistema operativo proporcionando acceso a los recursos del ordenador (pantalla, impresora, memoria, procesador, etc.) y controlando todos los procesos, los programas de aplicación no podrían funcionar .
Página 3 de 42
Jesús piensa que modernizar una empresa incorporando solamente el mobiliario y los equipos informáticos es un error y que la modernización de la empresa hay que hacerla desde el software. Opina que Linux es un sistema que administra muy bien los recursos del ordenador; hace una buena gestión de la memoria y admite el uso de prácticamente cualquier dispositivo hardware, igual o mejor que Windows. Además con la interfaz gráfica mediante los gestores de ventanas no tiene nada que envidiar a Windows y por supuesto el terminal de línea de comandos con amplia gama de posibilidades, incluso la de gestionar los proceso que se están ejecutando en cada momento. La empresa reconoce que a veces tienen problemas con los ordenadores pero se han acostumbrado a ellos y prefiere invertir su tiempo en captar clientes y atender mejor a los que ya tiene, al menos para que se sientan más cómodos.
Un sistema operativo es un software complejo, costoso y que a menudo necesita de bastante tiempo para su puesta en marcha y configuración óptima. Sobre todo hoy día, con la presencia de redes locales , Internet y hardware cada vez más variado . Las empresas suelen planificar bastante bien todo lo que afecta al cambio de sistema operativo, puesto que esto puede suponer una fuente de problemas, además de obligarnos a cambiar buena parte del software de aplicación que se estuviera utilizando. No existen versiones de todos los programas de aplicación para todos los sistemas operativos. Recuerda: Un
cambio de sistema operativo no es una cuestión m enor. AUTOEVALUA AUTOEVA LUACIÓN CIÓN Elige la respuesta correcta: a) P arte arte del del sistema sistema operat operativo ivo b) Un progra program ma de de aplicación aplicación c) Las respuest respuestas as a y b son corr correct ectas as d) Ninguna Ninguna respuest respuesta a es correct correcta a
Sistemas informáticos multiusuario y en red
Página 4 de 42
3. Sistema operati vo
Unidad Didáctica III Sistema operativo Víctor debe instalar en cada uno de los ordenadores el sistema operativo Windows. La verdad es que él lo prefiere ya que se trata de un proceso automatizado que no entraña mayor problema, pero sabe que las licencias del sistema operativo para los quince ordenadores de estas nuevas oficinas van a suponer un gasto económico importante para el cliente. Evidentemente a ese gasto luego tendrán que añadir el coste de las aplicaciones ofimáticas y otras específicas que ellos utilicen. Piensa que todo esto saldría gratis si escucharan a Jesús y se decantaran por el software libre.
La verdad, es que desde que encendemos el ordenador ya estamos utilizando el sistema operativo. Aunque por otra parte el sistema operativo por sí solo no tiene mucha utilidad, puesto que su función no es otra que hacer de enlace entre el hardware de nuestra máquina y los programas de aplicación que utilicemos.
Vamos a ver a continuación algunas definiciones de sistema operativo , puedes tener una idea bastante completa de lo que estamos estudiando si combinas todas estas definiciones.
Puedes imaginar un sistema operativo como los programas que hacen utilizable el hardware. El hardware proporciona la "capacidad bruta de proceso"; los sistemas operativos ponen dicha capacidad de proceso al alcance de los usuarios y administran cuidadosamente el hardware para lograr un buen rendimiento. Los sistemas operativos son ante todo administradores de recursos ; el principal recurso que administran es el hardware del ordenador. Un sistema operativo es un programa que actúa como intermediario entre el usuario y el hardware del ordenador y su propósito es proporcionar el entorno en el cual el usuario pueda ejecutar programas. Entonces, el objetivo principal de un sistema operativo es, lograr que el sistema informático se use de manera cómoda , y el objetivo secundario es que el hardware del compu tador se emplee de manera eficiente eficiente. Un sistema operativo es un conjunto de programas que controla la ejecución de programas de aplicación y actúa como una interfaz entre el usuario y el hardware de un ordenador. Esto es, un sistema operativo explota y administra los recursos de hardware del ordenador con el objeto de proporcionar un conjunto de servicios servicios a los usuarios del sistema.
Víctor recuerda cuando un amigo le preguntó qué es el sistema operativo del ordenador y la rápida respuesta de Carmen que le evitó quedar en evidencia. Porque aunque tiene muy claro cuál es el sistema operativo de un ordenador, no encontraba palabras para explicarlo. Por el contrario le pareció muy acertada la definición de Carmen Carmen:: "Se trata de un software especial e imprescindible que permite a cualquier aplicación informática utilizar todos los dispositivos que componen el ordenador, así como todos los que se le pueden conectar, realizando además las tareas de comunicación entre el usuario y la máquina". Esa definición dejó totalmente satisfecho a Víctor . Y a su
Página 5 de 42
amigo, claro.
AUTOEVALUACIÓN Un sistema operativo: a) Administra los recursos hardware de la máquina b) Es un conjunto de programas que controla y gestiona los programas c) Proporciona una interfaz entre el hardware y el usuario d) Todas las respuestas son correctas CORRECTA
Para saber más: Hoy día los dos sistemas operativos más utilizados y extendidos en el mundo de los ordenadores personales y grandes sistemas son los de la familia de productos Windows de Microsoft y el sistema operativo Linux en sus diferentes distribuciones. Una de las distribuciones de linux es promovida por la Junta de Andalucía, la conocida Guadalinex. Visita los siguientes enlaces para conocer mas detalles de ambos sistemas operativos. Guadalinex Familia de sistemas Micros oft
Sistemas informáticos multiusuario y en red
Página 6 de 42
4. Características deseables de los sistemas operativos
Unidad Didáctica III Características deseables de los sistemas op erativos Aquella explicación de Carmen sobre qué es un sistema operativo, Víctor la memorizó, y desde entonces de una forma sencilla y por su cuenta concretó que para que un ordenador funcione con garantías el sistema operativo debe tener cierta calidad y para ello es necesario que sea fácil de usar, que impida y solucione errores de los dispositivos y permita la comunicación del ordenador de forma sencilla y eficiente.
A continuación veremos las características que se deben perseguir al diseñar e implementar un sistema operativo. También nos sirven para evaluar o m edir la conv eniencia de su elección . No todos los sistemas operativos cumplen con todas las características reseñadas, unos están más orientados a la seguridad y otros persiguen una buena usabilidad . La elección de un sistema operativo dependerá del uso que se quiera hacer de él.
Eficiencia : Un sistema operativo permite que los recursos del ordenador se usen de la manera más eficiente posible. P or ejemplo se deben optimizar los accesos a disco para acelerar las operaciones de entrada/salida.
Fiabilidad: Un sistema operativo no debe tener errores y debe prever todas las posibles situacion es críticas y resolverlas si es que se producen. Robustez: El sistema operativo debe responder de forma predecible y controlada a condiciones de error, incluidos fallos hardware.
Seguridad: El sistema operativo debe protegerse activamente a sí mismo y a los usuarios de acciones accidentales o malintencionadas. Por ejemplo se deben proteger los archivos de un usuario del uso no autorizado por otro usuario. También es fundamental limitar el acceso de los usuarios sin privilegios de administrador a las partes más sensibles del sistema.
Extensibilidad: La aparición constante de nuevo hardware y de nuevos tipos de aplicaciones , exigen al sistema operativo la adición de nueva funcionalidad. En lugar de construir un nuevo sistema operativo cada vez, se pretende construir un sistema que pueda extenderse, es decir, su funcionalidad pueda variar o crecer, de una forma sencilla. Por ejemplo, que un sistema tradicional soporte aplicaciones de tiempo real , que soporte nuevos sistemas de archivos, nuevos periféricos , etc.
Página 7 de 42
Facilitar las entradas y salidas : Un sistema operativo debe hacerle fácil al usuario el acceso y manejo de los dispositivos de Entrada/Salida del ordenador. Como por ejemplo facilitar la impresión de documentos, gestión de interfaces de entrada como teclado y ratón o almacenar y recuperar de forma correcta los archivos en disco. Manejar las comunicaciones en red: El sistema operativo debe permitir al usuario manejar con alta facilidad todo lo referente a la instalación y uso de las redes de ordenadores. Este aspecto es cada vez más importante, puesto que se ha generalizado el uso de redes locales e Internet. Permitir a los usuarios compartir recursos y datos: Este aspecto está muy relacionado con el anterior y daría al sistema operativo el papel de regulador de los recursos de una red. Disponer de un entorno amigable y de fácil uso : Hoy día los sistemas operativos, sobre todo si están dirigidos al usuario final, deben proveer de un entorno de trabajo que facilite su uso por parte del usuario. Atrás quedaron los tiempos en los que el sistema operativo sólo proveía de una espartana interfaz en línea de comandos (aunque hoy día todavía es usado en muchas ocasiones). En la actualidad los sistemas operativos disponen de entornos gráficos llamados escritorios que facilitan las operaciones de manejo de programas de aplicación y del propio sistema operativo. Los sistemas Windows , los sistemas Mac o los escritorios Gnome o KDE de Linux son ejemplos de esto.
AUTOEVALUACIÓN La robustez de un sistema operativo: a) Indica si el hardware se utiliza de forma eficiente b) Imposibilita que los usuarios provoquen fallos en el sistema c) Asegura que se responderá a los errores de forma predecible y controlada CORRECTA d) Facilita las entradas y salidas
Para saber más: A lo lar go del ti emp o se han emp lead o di fer ent es téc ni cas par a di señ ar lo s si st emas operativos. Una de las más utilizadas ha sido en diseño por capas. En el siguiente enlace se hace una introdu cción a este modo de diseño y se com para UNIX clásico con Linux y c on Window s 2000. Diseño de sistemas operativos [Versión en caché] Para descargar el pro grama Acrobat Reader pulsa
aquí.
Sistemas informáticos multiusuario y en red
Página 8 de 42
5. Evolución históri ca de los sistemas operativos
Unidad Didáctica III Evolución histórica de los sistemas operativos CASO. Una tarde en la que Víctor va a continuar instalando ordenadores en las nuevas oficinas para la gestoría, le acompaña An to ni o, el hermano de José. Durante la configuración del sistema operativo An to ni o recuerda las palabras de Enrique, un experimentado informático que empezó trabajando con unos ordenadores que tenían un sistema operativo llamado UNIX, en el que no existían iconos ni colores. Sólo una pantalla en la que se tecleaba una línea con las instrucciones, esperabas un rato y entonces el ordenador te respondía con unas líneas similares (o en la impresora), que a veces eran interminables. También decía que era un sistema que nunca se bloqueaba y que aún sigue utilizándose en algunas universidades y en grandes aplicaciones de gestión de aeropuertos, por ejemplo.
Los sistemas operativos han venido evolucionando a través de los años. Y lo han hecho a la par de la arquitectura de los ordenadores en los cuales se ejecutan. Ya conociste las distintas generaciones de ordenadores en la primera unidad de este módulo. Ahora veremos cómo eran los sistemas operativos que se desarrollaron para ejecutarse en los ordenadores de cada generación y también que técnicas se fueron utilizando en cada uno de ellos. Se puede decir que la evolució n de los sistemas operativos va paralela a la evolución de los ordenadores donde se ejecutan. Se habla de generaciones de sistemas operativos , cada una de las cuales se caracteriza por un salto cualitativo importante con respecto a las demás.
Sistemas informáticos multiusuario y en red
Página 9 de 42
5.1. Primera generació n (años 50)
Unidad Didáctica III Primera generación (años 50) Los primeros sistemas operativos eran muy básicos y rudimentarios. Surgieron en los años cincuenta, con los primeros ordenadores de tubos de vacío . Estos primeros sistemas operativos se limitaban a controlar y secuenciar la ejecución de programas y sus datos , que en aquella época estaban escritos en tarjetas perforadas .
Las tarjetas perforadas llevaban escritas las instrucciones de programa en forma de agujeros en una cartulina, que una máquina lector a de tarjetas comunicaba al sistema operativo. Este iba obteniendo las diferentes instrucciones en secuencia y controlando su ejecución.
En estos sistemas operativos la parte más importante se llamaba monitor y controlaba la ejecución de un programa y el paso al siguiente programa a ejecutar , para ello se utilizaban unas tarjetas especiales con instrucciones de control que se intercalaban entre las tarjetas con instrucciones de programa. Con esto había nacido el concepto de procesamiento por lotes . El proceso por lotes se caracteriza porque mientras que el sistema operativo está ejecutando un programa, éste dispone de todos los recursos hasta su finalización, momento en el cual el monitor lanza la ejecución del siguiente programa y así sucesivamente. Sistemas informáticos multiusuario y en red
Página 10 de 42
Página 11 de 42
5.2. Segunda generació n (años 60)
Unidad Didáctica III Segunda generación (años 60) Aparecen los ordenadores construidos a base de transistores , cada vez más pequeños y potentes. Uno de los grandes problemas de los sistemas de la primera generación era el desfase de velocidad entre la CPU y los dispositivos de entrada/salida, esto provocaba que gran parte del tiempo la CPU estuviera inactiva, por ejemplo mientras se imprimían resultados en una impresora o se leían datos de tarjetas perforadas (procesos lentos) la CPU no hacía nada salvo esperar.
En la segunda generación se idearon técnicas para paliar este problema y apareció el concepto de proc eso fuera de línea (offline ). Consistía en pasar los datos de entrada a cinta magnética (rápida) que después era conectada a la CPU para su proceso, la CPU escribía los resultados en otra cinta que luego se pasaba a un sistema aparte para imprimir. De esta manera mientras la CPU trabajaba con una cinta se podía estar imprimiendo el contenido de otra cinta o pasando de tarjetas perforadas a cinta.
Sistemas informáticos multiusuario y en red
Página 12 de 42
Página 13 de 42
5.3. Tercera generación (años 70)
Unidad Didáctica III Tercera generación (años 70) El avance que supuso la introducción en la industria del circuito integrado que sustituía a los transistores provocó que de nuevo se buscaran técnicas para mejorar el rendimiento y así aparece el concepto de multiprogramación. Consistente en la ejecución en un mismo procesador, de varios programas a la vez.
Para ello se emplea el tiempo compartido (time sharing) en el que a través de políticas de asignación, se ejecutan varios programas intercalando la ejecución de sus instrucciones en el procesador. Los programas son cada vez más interactivos y necesitan un determinado diálogo con el usuario. Por ello aparece el tiempo compartido, consistente en un conjunto de terminales que están continuamente solicitando atención del procesador, siendo el sistema operativo quien va intercalando dicha atención entre los distintos usuarios. En estos años aparece un sistema operativo que tendrá mucha importancia a partir de entonces y que con su evolución particular permanece hasta nuestros días, nos referimos a UNIX. Hoy día la variante más conocida es Linux y en concreto la distribución promovida por la J unta de Andalucía: Guadalinex .
Sistemas informáticos multiusuario y en red
Página 14 de 42
5.4. Cuarta generación (años 80 hasta nuestro s días)
Unidad Didáctica III Cuarta generación (años 80 hasta nuestros d ías) Las últimas innovaciones técnicas en los sistemas operativos, a partir de los años ochenta, están ligadas a los avances en la industria del hardware. Ahora ya no sólo se trata de incrementar la velocidad de los procesos, sino de aumentar la seguridad y las prestaciones que pueden ofrecerse al usuario. Hay sistemas que controlan lo que se denomina proceso distribuido , consistente en la conexión en paralelo de varios ordenadores compartiendo memoria, buses y terminales con el fin de ganar seguridad en el servicio, debido a que el sistema operativo va repartiendo el trabajo solicitado entre los distintos ordenadores incluso ante el fallo de uno de ellos no se interrumpe el servicio por parte del resto. Para incrementar la velocidad de proceso, existe el multiproceso , consistente en ordenadores que poseen más de un procesador , con lo que el sistema operativo controla el reparto de trabajo entre los distintos procesadores, aumentando el número de instrucciones que la máquina puede ejecutar por unidad de tiempo. Sistemas que pueden aprovechar estos recursos son Linux y Windows 2000 y 2003.
Por último, aparecen sistemas operativos en red para controlar el trabajo que se realiza en una red de ordenadores y entornos operativos que permiten el uso de un sistema operativo con mayor facilidad y además, aumentando sus prestaciones. Ejemplos de esto son Windows 2000 Server o él mas reciente Windows 2003 Server. En los años 80 aparecen los primeros ordenadores personales (IBM PC) y el sistema operativo que utilizaban era MS-DOS. Mas tarde aparecen otros sistemas operativos para PC que explotan las características de estos (interfaces gráficos, multitarea, periféricos...), nos estamos refiriendo a OS/2 de IBM y sobre todo a la familia Windows de Microsoft desde el Windows 3.1 hasta el actual XP pasando por diferentes versiones como Windows 95, 98, 2000 y Millenium.
DEMO: Vea un cr onogr ama con las disti ntas generaciones de los sist emas operativos
En la actualidad existen sistemas operativos para PDA, teléfonos móviles y otros dispositivos de comunicaciones e informática que están apareciendo en nuestros días.
Página 15 de 42
AUTOEVALUACIÓN La multiprogramación surge durante la: a) Tercera generación b) Primera generación c) Segunda generación d) Cuarta generación
Sistemas informáticos multiusuario y en red
Página 16 de 42
6. Clasificación de sistemas operativos
Unidad Didáctica III Clasificación de sistemas operativos Jesús se ha encontrado muchas veces ante la situación de explicar a los clientes qué es y para qué necesitan un sistema operativo, si ya tienen un buen ordenador. Eso normalmente no le resulta difícil, pero es más complicado cuando le preguntan cuál es mejor y por qué. Algunos clientes incluso le preguntan qué tipos de sistemas operativos hay y cuales son los más adecuados para cada situación. Jesús ya ha aprendido a responder de forma... digamos adecuada a todas esas cuestiones, pero para llegar a una respuesta convincente para el cliente ha tenido que hacer uso de todos sus conocimientos sobre los sistemas operativos.
Nos interesa poder clasificar los distintos sistemas operativos, esto te ayudará a poder identificarlos y valorar similitudes y diferencias . Los sistemas operativos se pueden clasificar en base a distintos criterios. Veamos las distintas clasificaciones.
Sistemas informáticos multiusuario y en red
Página 17 de 42
6.1. Sistemas Operativos c lasificados p or su estructura
Unidad Didáctica III Sistemas Operativos clasificados por su estructura Se entiende por estructura del sistema operativo a la forma como se divide internamente y cuáles son las relaciones entre las distintas partes.
Estructura monolítica: Es la estructura de los primeros sistemas operativos constituidos fundamentalmente por un solo p rograma compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra.
Estructura jerárquica: Es donde una parte del sistema contiene subpartes y está organizado en forma de niveles , de tal forma que cada una de ellos esté perfectamente definido y con una clara interface con el resto de elementos. En esta estructura se basan prácticamente la mayoría de los sistemas operativos actuales .
Página 18 de 42
Máquina Virtual: Se trata de un tipo de sistemas operativos que presentan una interface a cada proceso, mostrando una máquina que parece idéntica a la máquina real subyacente. Estos sistemas operativos separan dos conceptos que suelen estar unidos en el resto de sistemas: la multiprogramación y la máquina extendida. El objetivo de los sistemas operativos de máquina virtual es el de integrar distintos sistemas operativosdando la sensación de ser varias máquinas diferentes . Microkernel o micronúcleo: Se conoce como microkernel al modelo de kernel (núcleo) de sistema operativo, que consiste en distribuir las diferentes tareas en porciones de código modulares y sencillas. Se pretende aislar del sistema, su núcleo, las operaciones de entrada/salida, gestión de memoria, etc., que se realizarían en procesos separados. Esto mejora la tolerancia a fallos y eleva la portabilidad entre plataformas de hardware. Algunos sistemas que utilizan esta tecnología son AIX, MACOSX o Hurd.
En una ocasión el director general de una gran empresa le preguntó directamente que cuál sería el sistema operativo más adecuado para diferentes departamentos de su empresa en situaciones muy diversas. Jesús le respondió que en primer lugar hay muchos factores sobre los que responder esa pregunta, lo ideal es un sistema operativo estructurado jerárquicamente para asegurar las mejoras y actualizaciones del sistema. Un claro ejemplo de estos sistemas pueden ser Windows (que continuamente lanza versiones de mejora y nuevos productos basados en los anteriores) y Linux, en cualquiera de sus distribuciones, de las que continuamente aparecen mejoras y utilidades, y para las que cualquier persona puede hacer aportaciones más o menos complejas dada su estructura modular en diferentes niveles.
AUTOEVALUACIÓN En el kernel o núcleo de un sistema operativo se incluye:
Página 19 de 42
a) el planificador de procesos b) el gestor de entradas y salidas y el administrador del escritorio c) el entorno gráfico o interfaz gráfica d) el instalador de aplicaciones
Sistemas informáticos multiusuario y en red
Página 20 de 42
6.2. Sistemas Operativos cl asificados po r sus servicios
Unidad Didáctica III Sistemas Operativos clasificados por sus servicios
Por el número de usuarios s imultáneos que so porta
Monousuario: Soportan un único usuario a la vez, sin importar el número de procesadores que tenga el ordenador o el número de procesos o tareas que pueda ejecutar en un mismo instante de tiempo; como el MS-DOS, Windows 3.1, 95, 98 y Millenium.
Multiusuario: Son capaces de dar servicio a uno o más usuarios a la vez , ya sea por medio de varias terminales conectadas al ordenador o por medio de accesos remotos en una red de comunicaciones. Además no importa el número de procesadores en la maquina y ni el número de procesos de cada usuario, este puede ejecutarse simultáneamente. Como el UNIX, Linux, NETWARE, Windows NT, Windows 2000 Server, LAN Manager (IBM). Jesús continúa con su exposición. Además dadas las aplicaciones actuales de los ordenadores en la empresa sería interesante un sistema multiusuario, porque cada vez más los programas se programan para ser utilizados simultáneamente desde varios puestos.
Por el número d e tareas (trabajos) que pueden ejecutar al mismo tiempo
Monotarea: Permiten realizar una sola tarea a la vez por usu ario.
Multitarea: Soportan la ejecución de dos o más trabajos activos al mismo tiempo . Esto trae como resultado que la CPU siempre tenga alguna tarea que ejecutar, aprovechando al máximo su utilización; como en UNIX, Windows 95, 98, NT, 2000, MAC-OS, OS/2.
También comenta que aunque actualmente todos son multitarea, unos gestionan mejor que otros la memoria, lo que puede mejorar el rendimiento al realizar varias tareas simultáneas. Y que esto se mejora si utiliza ordenadores de varios procesadores, lo que implica necesariamente la multitarea, ya que cada procesador puede hacer de forma paralela varias tareas al mismo tiempo, e incluso complementarse en las operaciones que realizan.
Por el número de procesos sim ultáneos
Uniproceso: Es capaz de manejar solo un proceso del ordenador simultáneamente. Como el MS-DOS y Windows 95, 98, Millenium y XP.
Multiproceso: Estos pueden ser simétricos o asimétricos y se necesita que el hardware del ordenador tenga varios procesadores. El sistema gestionará su utilización administrará la carga de trabajo de cada uno. Ejemplos pueden ser UNIX, Linux o Windows 2000 y 2003 Server.
AUTOEVALUACIÓN
Página 21 de 42
Linux es un sistema operativo: a) Monousuario, multitarea y multiproceso b) De estructura monolítica c) Multiusuario, multiproceso y monotarea d) Ninguna de las anteriores respuestas es correcta
Sistemas informáticos multiusuario y en red
Página 22 de 42
7. Proceso s
Unidad Didáctica III Procesos Durante la configuración de uno de los equipos de la nueva oficina para la gestoría, Carmen ejecuta una serie de programas para optimizar el sistema y recuerda que uno de estos programas en una ocasión, durante unas prácticas en el Instituto, le dio muchos problemas porque alguno de los procesos que lo componen se bloqueaba al esperar una respuesta que nunca llegaba. Recuerda que uno de sus profesores le comentaba que los sistemas operativos multitarea disponían de un mecanismo llamado planificador del procesador, encargado de reducir al máximo los tiempos de inactividad de la CPU y obtener el mayor rendimiento posible. Y que lo deseable es que el sistema operativo nos permita acceder a la lista de procesos en cada momento y realizar algunas operaciones sobre ella, consiguiendo así un mayor control sobre la máquina.
Una de las tareas más importantes de un sistema operativo es la de administrar los procesos y tareas del sistema. Veamos primero que es un proceso.
Un proceso en un programa en ejecución . Un proceso simple tiene un hilo de ejecución , (más adelante se verá qué es esto, ahora no es el momento). Una vez definido qué es un proceso nos podríamos preguntar cuál es la diferencia entre un programa y un proceso:
un proceso es una actividad de cierto tipo que contiene un programa; entradas, salidas y estados. un programa está compuesto por procesos.
Un proceso puede estar en cualquiera de los siguientes tres estados :
Listo, En ejecució n y bloqueado .
Los procesos en estado listo son los que pueden pasar a estado de ejecución si el planificador del sistema operativo los selecciona, o sea cuando llegue su turno (según su importancia y orden de llegada). Los procesos en estado de ejecución son los que se están ejecutando en el procesador en un momento dado. Los procesos que se encuentran en estado bloqueado están esperando la respuesta de algún otro proceso para poder continuar con su ejecución, por ejemplo una operación de entrada/salida.
Los procesos pueden cooperar o ser independientes , en el primer caso se entiende que los procesos interactúan entre sí y pertenecen a una misma aplicación. En el caso de procesos independientes en general se debe a que no interactúan y un proceso no requiere información de otros.
AUTOEVALUACIÓN
Página 23 de 42
Un proceso esperando el trabajo de una impresora está: a) Listo b) En ejecución c) Bloqueado d) Las tres respuestas anteriores son correctas
Para saber más: Es muy importante para el buen funcionamiento del sistema operativo la planificación de procesos. En concreto la coordinación entre diferentes procesos que luchan por obtener los mismos recursos o bien que dependen unos de otros. Existe un gran problema en el diseño de sistema que es la exclusión mutua o deadlock (abrazo mortal). Existen varias soluc iones para resolverlo , lee el sig uiente enlace para cono cer este tema a fondo . Coordinación entre procesos [Versión en caché]
Sistemas informáticos multiusuario y en red
Página 24 de 42
7.1. Planificación del p rocesador
Unidad Didáctica III Planificación del procesador La planificación del procesador se refiere a la manera o técnicas que se usan para decidir cuánto tiempo de ejecución se le asigna a cada proceso del sistema y en qué momento . Obviamente, 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, pues determinará la correcta ejecución de los distintos programas de aplicación que se estén ejecutando. Para lograr la implementación del modelo de procesos el sistema operativo almacena en una tabla denominada tabla de control de procesos la información relativa a cada proceso que se esta ejecutando en el procesador. La información que se almacena es la siguiente: 1. 2. 3. 4. 5. 6. 7. 8.
Identificación del proceso. Identificación del proceso padre. Información sobre el usuario y grupo . Que lo han lanzado. Estado del procesador . El contenido de los registros internos, contador de programa, etc. Es decir el entorno volátil del proceso. Información de control de proceso Información del planificador . Segmentos d e memoria asignados . Recursos asignados .
Jesús siempre ha dicho que una de las cosas que más le gusta del sistema operativo Linux es precisamente la posibilidad de interactuar sobre los procesos de forma directa, permitiendo así un mayor control y una gestión "manual" de los procesos, mucho mejor que lo que permiten otros sistemas como Windows.
Sistemas informáticos multiusuario y en red
Página 25 de 42
7.2. Objetivos de la planifi cación
Unidad Didáctica III Objetivos de la planificación Una estrategia de planificación debe buscar que los procesos obtengan sus turnos de ejecución de forma apropiada, junto con un buen rendimiento y minimización de la sobrecarga (overhead) del planificador mismo. En
general,
se
buscan objetivos principales :
cinco
1. Justicia o Imparcialidad : Todos los procesos son tratados de la misma forma, y en algún momento obtienen su turno de ejecución o intervalos de tiempo de ejecución hasta su terminación con éxito. 2. Maximizar la Producción : El sistema debe finalizar el mayor número de procesos por unidad tiempo. 3. Maximizar el Tiempo de Respuesta: Cada usuario o proceso debe observar que el sistema les responde consistentemente a sus requerimientos. Así el usuario no percibirá tiempos de espera demasiado largos. 4. Evitar el aplazamiento indefinido : Los procesos deben terminar en un plazo finito de tiempo . Esto es, el usuario no debe percibir que su programa se ha parado o "colgado". 5. El sistema debe ser predecible: Ante cargas de trabajo ligeras el sistema debe responder rápido y con cargas pesadas debe ir degradándose paulatinamente. Otro punto de vista de esto es que si se ejecuta el mismo proceso en cargas similares de todo el sistema, la respuesta en todos los casos debe ser similar .
AUTOEVALUACIÓN El planificador de procesos del sistema operativo debe pretender: a) Que todos los procesos se ejecuten b) Que se ejecute el mayor número de procesos posible c) Que no se produzcan largos tiempos de espera d) Las tres respuestas anteriores son correctas
Sistemas informáticos multiusuario y en red
Página 26 de 42
7.3. Características a considerar de los procesos
Unidad Didáctica III Características a considerar de los pr ocesos No todos los sistemas informáticos procesan el mismo tipo de trabajos , y un algoritmo de planificación que en un sistema funciona excelente puede dar un rendimiento pésimo en otro cuyos procesos tienen características diferentes. Estas características pueden ser:
1. Cantidad de Entrada/Salida: Existen procesos que realizan una gran cantidad de operaciones de entrada y salida (aplicaciones de bases de datos, por ejemplo). 2. Cantidad de Uso de CPU: Existen procesos que no realizan muchas operaciones de entrada y salida, sino que usan intensivamente la unidad central de procesamiento. Por ejemplo, operaciones con matrices y cálculos matemáticos. 3. Procesos por lotes frente a procesos interactivos: Un proceso por lotes es más 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. 4. Procesos en Tiempo Real : Si los procesos deben dar respuesta en tiempo real se requiere que tengan prioridad para los turnos de ejecución. 5. Longevidad de los Procesos : Existen procesos que típicamente requerirán varias horas para finalizar su labor, mientras que existen otros que solo necesitan algunos segundos. Sistemas informáticos multiusuario y en red
Página 27 de 42
7.4. Planificación apropiativa o no apropiativa
Unidad Didáctica III Planificación apropiativa o no apropiativa La planificación apropiativa (preemptive) es aquélla en la cual, una vez que a un proceso le toca su turno de ejecución ya no puede ser suspendido , ya no se le puede arrebatar el uso de la CPU, hasta que el proceso no lo determina no se le pasa el turno ejecución a otro proceso. Este esquema puede ser peligroso , ya que si el proceso contiene accidental o deliberadamente ciclos infinitos , el resto de los procesos pueden quedar aplazados indefinidamente. La planificación no apropiativa(not preemptive) es aquélla en que existe un reloj que lanza interrupciones periódicas en las cuales el planificador toma el control y se decide si el mismo proceso seguirá ejecutándose o se le da su turno a otro proceso. En la planificación no apropiativa , se pueden establecer distintos algoritmos de planificación de ejecución de procesos.
Son algoritmos para determinar el orden de ejecución de los procesos en el sistema:
Round Robin: También llamada por turno , consiste en darle a cada proceso un intervalo de tiempo de ejecución (llamado time slice), y cada vez que se vence ese intervalo se copia el contexto del proceso a un lugar seguro y se le da su turno a otro proceso. Los procesos están ordenados en una cola circular . Por ejemplo, si existen tres procesos, el A, B y C, dos pasadas del planificador darían sus turnos a los procesos en el orden A, B, C, A, B, C. La ventaja de este algoritmo es su simplicidad, es justo y no provoca aplazamiento indefinido .
DEMO: Veamos el algorit mo Round Robi n de la planificación n o apropiativ a
Por prioridad : Los procesos de mayor prioridad se ejecutan primero . Si existen varios procesos de mayor prioridad que otros, pero entre ellos con la misma prioridad, pueden ejecutarse estos de acuerdo a su orden de llegada o por 'round robin'. La ventaja de este algoritmo es que es
flexible en cuanto a permitir que ciertos procesos se ejecuten primero e, incluso, por más tiempo . Su desventaja es que puede provocar aplazamiento ind efinido en los pr ocesos de baja prioridad. P or ejemplo, suponga que existen procesos de prioridad 20 y procesos de prioridad 10.
Si durante todo el tiempo llegan procesos de prioridad 20, el efecto es que los de prioridad 10 estarán esperando por siempre. También provoca que el sistema sea impredecible para los procesos de baja prioridad. El trabajo más corto primero: Es difícil de llevar a cabo porque se requiere saber o tener una estimación de cuánto tiempo necesita el proceso para terminar. Pero si se sabe, se ejecutan
primero aquellos trabajos que necesitan menos tiempo y de esta manera se obtiene el mejor tiempo de respuesta promedio para todos los procesos .
DEMO: Veamos el algor itmo SJN de la planificació n no apropiativa
El primero en llegar, primero en ejecutarse: Es muy simple, los procesos reciben su turno conforme llegan. La ventaja de este algoritmo es que es justo y no provoca aplazamiento indefinido. La desventaja es que no aprovecha ningun a característica de los procesos y puede no servir para un proceso de tiempo real . P or ejemplo, el tiempo promedio de respuesta puede ser muy malo comparado con el logrado por el del trabajo más corto primero.
Página 28 de 42
DEMO: Veamos otro algoritm o FIFO (Primero en llegar pri mero en salir)
El tiempo restante más corto: Es parecido al del trabajo más corto primero, pero aquí se está calculando en todo momento cuánto tiempo le resta para terminar a todos los procesos, incluyendo los nuevos, y aquÉl que le quede menos tiempo para finalizar es escogido para ejecutarse. La ventaja es que es muy útil para sistemas de tiempo compartido porque se acerca mucho al mejor tiempo de respuesta, además de responder dinámicamente a la longevidad de los procesos; su desventaja es que provoca más sobrecarga porque el algoritmo es más complejo. La tasa de respuesta más alta: Este algoritmo concede el turno de ejecución al proceso que produ zca el valor mayor de la siguiente formu la:
Es decir, que dinámicamente el valor se va modificando y mejora un poco las deficiencias del algoritmo del trabajo más corto primero. Sistemas informáticos multiusuario y en red
Página 29 de 42
8. Gestión d e la memoria
Unidad Didáctica III Gestión de la memoria Jesús comenta a Víctor que cada sistema operativo utiliza el hardware del ordenador de forma diferente y que una de las cosas más importantes es la asignación adecuada de memoria a cada uno de los procesos. Víctor le dice que eso a él no le interesa, ya que se trata de algo que hace el ordenador de forma interna y automática, y sobre la que no tenemos modo alguno de intervenir. Jesús le dice que se equivoca, que efectivamente hay sistemas como Linux que nos permiten intervenir de forma sencilla y sin peligro para el sistema, sobre los procesos en ejecución (o en cola de ejecución), y que él se ha visto en situaciones en las que ha tenido que liberar la memoria de un proceso para impedir que una aplicación bloquee el sistema. Por ejemplo una ocasión en la que un amigo le envió una imagen tan grande que necesitaba varios minutos para visualizarla, en aquel caso decidió que le interesaba más visitar a su amigo para ver la imagen y decidió interrumpir el proceso de cargar en memoria, de lo contrario tendría que haber reiniciado el ordenador, porque probablemente le habría faltado memoria RAM.
Ya hemos estudiado el control y gestión de procesos. Pero si se pretende que un proceso pueda
ejecutarse es necesario que éste sea cargado en memoria principal, ya que ningún proceso se puede activar antes de que se le asigne el espacio de memoria qu e requiere. P or lo tanto, la memoria será otro recurso que el sistema operativo tendrá que gestionar y el elemento que se encargará de ello recibe el nombre de gestor de memoria. La misión del gestor de memoria es la de asignar memoria principal a los procesos que la soliciten . Entre otras cosas tendrá que:
llevar el contr ol de las zonas que están en uso y cuáles no, asignar memoria a los procesos cuando la necesiten y retirársela cuando terminen , tendrá que establecer mecanismos para que un proceso no invada la memoria asignada a otro pr oceso, administrar el intercambio entre memoria principal y memoria secundaria cuando la memoria central sea insuficiente, etc.
Por tanto, podemos decir que los principales objetivos de la gestión de la memoria son: 1. Reubicación: Consiste en decidir en qué zona de la memoria se ubicará un proceso y cómo se gestionará la posibilidad de que un proceso cambie de zona de memoria asignada. 2. Control de memoria: El sistema operativo tiene que llevar un control de las zonas de memoria libres y de las zonas de memoria asignadas , así como conocer a qué proceso pertenece cada una de las zonas de memoria asignadas. Además, tiene que ser capaz de gestionar esta asignación de memoria, de tal manera que proporcionen memoria a los procesos q ue lo necesiten y se la retire cuando éstos hayan terminado . 3. Protección: Cuando hay varios procesos en memoria simultáneamente, cada uno estará ubicado
Página 30 de 42
en una posición de memoria distinta. El sistema operativo tiene que conseguir que la zona de memoria asignada a un proceso no sea accedida ni alterada por los demás . Para conseguir esto, cada vez que un proceso vaya a realizar una operación tendrá que chequear que ésta no acceda a una zona prohibida de la memoria; es decir, a una zona de memoria ya asignada a otro proceso. 4. Utilización de dos niveles de memoria: En muchas ocasiones la memoria principal no es suficiente para proporcionar toda la memoria que necesita un proceso o para almacenar todos los procesos que se pueden ejecutar. En esos casos el sistema operativo puede apoyarse en la memoria secundaria para saciar todas las necesidades de memoria que tienen los procesos. Por tanto, tendrá que proporcionar los medios para que esto sea posible y tendrá que encargarse de gestionar la transferencia de información entr e la memoria prin cipal y la secundaria. El sistema de gestión de la memoria que se use dependerá del ordenador y sistema operativo en particular que se tenga. Si el sistema es monotarea se pueden considerar técnicas sencillas de gestión de la memoria, puesto que sólo se tiene un proceso cargado en la memoria. P ara sistemas multitarea la gestión se complica, ya que se necesitan tener varios procesos cargados en la memoria simultáneamente, con sus propias estructuras de datos.
AUTOEVALUACIÓN Un proceso: a) Puede ejecutarse sin estar en memoria b) Necesita que le asignen memoria para poder ejecutarse c) No podrá intercambiarse entre la memoria principal y la secundaria mientras se ejecuta d) Podrá compartir el mismo espacio de memoria con otro proceso en ejecución
Para saber más: Has comprobado que el tema de gestión de memoria es bastante complicado y admite muchas técnicas y enfoques diferentes. En el siguiente enlace se aclaran muchos de los conceptos anteriores con ejemplos gráficos que te ayudarán a comprender la materia de estudio. Gestión d e memoria [Versión en caché]
Sistemas informáticos multiusuario y en red
Página 31 de 42
9. Gestión d e memoria en sistemas operativos monotarea
Unidad Didáctica III Gestión de memoria en sistemas operativos mo notarea Víctor recuerda cómo Enrique le explicaba la gestión de memoria que utilizaban antes los programadores en los sistemas monotarea. Ya que cuando se ejecutaba una aplicación ésta tomaba todo el control sobre la memoria y si ocurrían errores se veían obligados a apagar la máquina y volver a encenderla.
En un principio, en los comienzos de los sistemas operativos, éstos no incluían ningún gestor de memoria y el programador tenía un control completo sobre el espacio total de memoria. P ero, como puede suponerse, esto era una tarea extremadamente complicada. El esquema más sencillo de gestión de memoria es aquél en el que, en cada instante, sólo se tiene un proceso en memoria. En este esquema hace falta un mecanismo de protección para que resulte imposible el acceso a la zona de memoria destinada al sistema operativo por parte del proceso de usuario que se esté ejecutando. Sistemas informáticos multiusuario y en red
Página 32 de 42
10. Gestión de memoria en sis temas op erativos multitarea
Unidad Didáctica III Gestión de memoria en sistemas operativos mu ltitarea Víctor piensa lo difícil que lo tenían los primeros informáticos y lo que les debemos los que ahora nos dedicamos a esto. Piensa que podemos estar contentos ahora con lo que tenemos, aunque probablemente esto seguirá evolucionando y dentro de otros treinta años pensarán lo mismo de nosotros. Recuerda que al principio empezó con un ordenador que le dio un primo suyo que funcionaba con el sistema operativo Windows 3.11. Era un sistema muy sencillo y tardó poco en aprender a usarlo con soltura, incluso se podría decir que lo dominaba casi por completo. Poco después empezaron a salir las versiones más nuevas de este sistema operativo en las que parecía que todo cambiaba totalmente y el esfuerzo que le supuso dejar el sistema que dominaba por los nuevos que funcionaban mejor. Ahora comprende que la mayoría de los cambios que se producen en los sistemas son a causa de conseguir una mejor gestión de la memoria y aprovechar al máximo el rendimiento del ordenador. Pero parece que esto no va a acabar nunca, espera que los expertos den pronto con la configuración óptima.
Actualmente la mayoría de los sistemas operativos son sistemas multitarea, en los que va a haber varios procesos simultáneamente en ejecución. Para que esto sea posible, todos estos procesos deberán estar también simultáneamente en memoria, pues ésta es una condición necesaria para que un proceso pueda ejecutarse. Por tanto, deberá haber mecanismos de gestión para distribuir la memoria principal entre todos estos procesos que quieren ejecutarse.
Sistemas informáticos multiusuario y en red
Página 33 de 42
10.1. Intercambio o swapping
Unidad Didáctica III Intercambio o swapping Como hemos comentado, en los sistemas multitarea habrá varios procesos en memoria principal. Sin embargo puede suceder que haya más procesos de los que caben en memoria y no haya memoria principal disponible para todos . En esos casos algunos de esos procesos se almacenan en disco, para posteriormente recuperarlos. El intercambio o swapping hace referencia a las operaciones de eliminar de la memoria principal procesos suspendidos, llevarlos al disco y cargar del disco a memoria principal procesos para su ejecución. La memoria en disco que el sistema operativo reserva para almacenar estos procesos suspendidos recibe el nombre de espacio de intercambio o espacio de swapping y siempre va a almacenar procesos completos que se han retirado completamente de memoria.
Sistemas informáticos multiusuario y en red
Página 34 de 42
10.2. Asignación con particiones fi jas
Unidad Didáctica III Asig nació n con par ticion es fij as Una manera de gestionar la memoria principal cuando hay varios procesos, y quizás la más fácil, consiste en dividir lógicamente (por software) la memoria física en varias particion es de igual o diferente tamaño y asignar cada una de ellas a un proc eso. La gestión de la memoria con particiones fijas supone que la división de ésta se ha realizado con anterioridad al comienzo de la ejecución de los procesos. Las particiones, una vez hechas por el sistema operativo, se mantienen fijas tanto en número como en tamaño. En líneas generales, la forma de gestión y asignación de la memoria se puede resumir de la siguiente forma: 1. Cuando llega una tarea, ésta se pone en una cola de tareas . 2. El intercambiador tiene en cuenta los requerimientos de memoria de cada una de ellas y las particiones disponibles. 3. Si una tarea tiene espacio disponible en memoria, se ubica (o reubica) en una partición y puede competir por el uso de la CPU. 4. Cuando se termina una tarea, se libera la partición de memoria que ocupa, pudiendo el intercambiador asignar esta partición a otra tarea de la cola de tareas. La gestión y asignación de particiones a los procesos se puede hacer siguiendo dos tipos de organización:
Tener una cola por partició n.
Se tiene un acolapor cada partición y se coloca cada trabajo en la cola de la partición más pequeña en que quepa dicho trabajo, a fin de desperdiciar el menor espacio posible.
La planificació n de cada cola se hace por s eparado y, como cada cola tiene su propia partición, no hay competencia entre las colas por la memoria. La desventaja de este método se hace evidente cuando la cola de una partición grande está vacía y la cola de una partición pequeña está llena.
Tener una única cola com ún a todas las particio nes.
Se tiene una única cola común para todas las particiones. El sistema operativo decidirá en que partición se ubica cada proceso . En función de la disponibilidad de particiones y las necesidades del proceso en cuestión.
Página 35 de 42
Tanto si se adopta la estrategia de tener una cola por partición como si se adopta la estrategia de tener una cola común para todas las particiones, tendrá que haber mecanismos para proteger a un proceso de los demás ; es decir, impedir que un proceso pueda acceder a una zona de memoria que está fuera de la memoria correspondiente a la partición en la que se encuentra. Otro problema que aparece cuando se gestiona la memoria con particiones fijas es el de la fragmentación , la cual se produce, en general, cuando en la memoria hay áreas ocupadas intercaladas con áreas libres; es decir, cuando no hay una única área ocupada ni una única área libre. Sistemas informáticos multiusuario y en red
Página 36 de 42
10.3. Asignación con particiones v ariables
Unidad Didáctica III Asig nació n con par ticion es v ariabl es La asignación de memoria con particiones fijas tiene el inconveniente de que hay que determinar muy bien el tamaño de las particiones. La solución a este problema está en permitir que los tamaños de las particiones varíen dinámicamente.
Este método de gestión de memoria se conoce con el nombre de asignación de la memoria con partici ones variables. Este mecanismo se ajusta a la realidad de que el número y tamaño de los procesos varía dinámicamente y, por tanto, lo lógico es que el número, posición y tamaño de las particiones también lo haga. No se está sujeto a un número fijo de particiones que pudieran ser muy grandes o demasiado pequeñas, con lo que se consigue un mejor uso de la memoria aunque a costa de una mayor complejidad .
Para poder manejar correctamente la asignación de memoria con particiones variables, el sistema operativo tiene que llevar el control de qué partes de la memoria están disponibles o libres (huecos) y qué partes están ocupadas. Inicialmente, toda la memoria está disponible y se considera como un gran bloque libre. El procedimiento q ue se sigue para manejar y gestionar la memoria es el siguiente: 1. Cuando llega un proceso y precisa memoria se busca un hueco libre suficientemente grande para él. Si se encuentra uno, se le asigna sólo la memoria que sea necesaria , manteniendo el resto disponible para satisfacer futuras solicitudes. Es decir, si el bloque que se le va a asignar es mayor de lo que necesita el proceso, se parte en dos: uno se asigna al proceso que llega y el otro se devuelve al conjunto de bloques libres. 2. Cuando un proceso acaba, libera su bloque de memoria, que se devuelve entonces al conjunto
Página 37 de 42
de huecos. Si el nuevo hueco es adyacente a otros, se fusionan para formar un hueco mayor. Sistemas informáticos multiusuario y en red
Página 38 de 42
11. Paginació n
Unidad Didáctica III Paginación Jesús explicando a Víctor las virtudes de Linux respecto a Windows, le comenta que un mecanismo de gestión de memoria que utilizan ambos sistemas operativos es el de la paginación. Pero en seguida nota que Víctor hace una gesto de no enterarse de lo que le está hablando.
El problema más grave que se produce en los sistemas de gestión de memoria anteriores es la fragmentación externa, presente en ambos. Generalmente, esta situación se produce cuando la memoria disponible no es contigua, sino que está fragmentada en muchos bloques repartidos a lo largo del espacio de direcciones. Como la memoria asignada a un proceso en particular tiene que ser contigua, esta memoria que está libre, pero al mismo tiempo dispersa, no se puede usar. Este problema tiene como solución la paginación , que es un mecanismo de organización y asignaciónde la memoria que permite que la memoria asignada a un proceso no tenga por qué ser contigua, de forma que siempre que se disponga de espacio, aunque éste no sea adyacente, se pueda asignar al proceso. Jesús le aclara que es una forma de repartir la memoria principal entre los procesos que se ejecutan en cada momento, con el fin de optimizar la multitarea del sistema. Continúa...
Básicamente, en un sistema de memoria con paginación, la memoria física se divide conceptualmente en un número de bloques de tamaños fijos , denominados marcos de página. Por otra parte, el espacio de direcciones lógico de un proceso (es decir, todas las posibles direcciones que puede generar el proceso) también se divide en bloques de tamaño fijo, llamados páginas , que son del mismo tamaño que los marcos de página.
Entonces, la asignación de memoria consiste en encontrar un número suficiente de marcos de página sin usar para cargar las páginas del proceso que está solicitando cargarse en memoria. Como cada página se asigna a un marco por separado, no es necesario que estos marcos de página asignados a un proceso se encuentren situados en zonas contiguas de la memoria física.
Víctor perplejo le pregunta que a él qué le interesa eso, si lo hace el ordenador sin intervención del usuario, no cree que deba perder el tiempo en esas cosas. Jesús le responde que debe conocer estas cosas y cómo las hace cada uno de los sistemas operativos, para tener su propio criterio sobre sus preferencias. Añade que por este tipo de cosas Linux es su sistema preferido y que eso lo hace más eficiente. Víctor piensa que si María estuviera delante seguramente le rebatiría esos argumentos.
Página 39 de 42
Resumiendo,
cuando se quiere cargar un proceso en memoria, se examina su tamaño , el cual se expresa en páginas . entonces se examina la memoria disponible, que se mantiene en forma de lista de marcos de páginas libres. si el trabajo requiere x páginas, tiene que haber x marcos de página disponibles en memoria para poder almacenar el proceso. si las hay, se cargará el proceso en esos marcos de página, se marcarán los marcos como ocupados y se creará la tabla de páginas para ese proceso. si no había marcos suficientes para el proceso, éste tendrá que esperar a qué los haya.
Sistemas informáticos multiusuario y en red
Página 40 de 42
12. La memoria vi rtual
Unidad Didáctica III La memoria virtual Jesús sigue entusiasmado con sus argumentaciones sobre las bondades de Linux y cita la gestión de la memoria virtual que hace para ejecutar determinados procesos complejos. Víctor le interrumpe y dice que eso de la memoria virtual sí lo ha utilizado él, que es algo muy habitual cuando quieres cargar un juego, especialmente aquellos con los mejores gráficos. Esos juegos requieren una memoria principal que habitualmente no tiene ningún equipo, por lo que es preciso hacer uso de una ampliación de la memoria con espacio de disco que simule una RAM mucho más grande de lo que tenemos en realidad. Jesús se sorprende de que Víctor entienda este concepto.
Hasta ahora se ha supuesto que el tamaño de los procesos siempre es menor que el tamaño de la memoria física, de tal manera que los procesos que se cargan en memoria lo hacen en su totalidad.
La idea de permitir la ejecución de procesos que puedan no estar cargados completamente en memoria, e incluso que sus tamaños superen a la memoria física disponible, da lugar al concepto de memoria virtual. Este concepto es aplicable tanto en sistemas monotarea como multitarea. En los sistemas multitarea, si cada usuario necesita menos memoria para ejecutar sus procesos, porque ya no hace falta que éstos se almacenen enteros en memoria, podrá haber más al mismo tiempo.
En esencia, la memoria virtual es un sistema de gestión de la memoria que permite que el espacio de direcciones lógicas (ahora llamadas virtuales) de un proceso activo sea mayor que la memoria física disponible. El sistema operativo se encarga de mantener en la memoria principal aquella parte del proceso que se utiliza en cada momento mientras que el resto permanece en disco y se encarga de ir trasladando a memoria las partes del proceso que se vayan necesitando. Por tanto, esta técnica considera a la memoria secundaria como una extensión de la memoria principal, consiguiendo así que el tamaño de ésta no sea un obstáculo a la hora de cargar procesos, pues éstos podrán ser cargados y ejecutados por partes.
Página 41 de 42
AUTOEVALUACIÓN En un sistema de memoria virtual: a) los procesos pueden ocupar más memoria de que hay realmente en la memoria principal b) el número de procesos en ejecución está limitado por los que quepan en la memoria principal c) toda la memoria secundaria se utiliza como memoria principal d) ninguna de las anteriores respuestas es correcta
Sistemas informáticos multiusuario y en red