Beruflich Dokumente
Kultur Dokumente
Pgina 2 de 42
Sistema operativo: Es un software que permite administrar los recursos de un ordenador. Te preguntars cules son estos recursos? Pues bien, segn se vio en la primera unidad del curso nos estamos refiriendo a:
la memoria, el procesador, los dispositivos de entrada/salida, los dispositivos de comunicacin 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 misin asignada y todos juntos colaboran entre s para conseguir que nuestro ordenador funcione, tambin hace de interfaz entre el hardware y el resto de software que utilizamos. Tambin es misin del sistema operativo proporcionar una interfaz de lnea de comando o una interfaz grfica al usuario, para que este ltimo se pueda comunicar con el ordenador. Programas de aplicacin: 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 informtico. Por ejemplo un programa de aplicacin podra ser una hoja de clculo o el navegador Web que ests 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 aplicacin no podran funcionar.
Pgina 3 de 42
Jess piensa que modernizar una empresa incorporando solamente el mobiliario y los equipos informticos es un error y que la modernizacin 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 gestin de la memoria y admite el uso de prcticamente cualquier dispositivo hardware, igual o mejor que Windows. Adems con la interfaz grfica mediante los gestores de ventanas no tiene nada que envidiar a Windows y por supuesto el terminal de lnea de comandos con amplia gama de posibilidades, incluso la de gestionar los proceso que se estn 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 ms cmodos. Un sistema operativo es un software complejo, costoso y que a menudo necesita de bastante tiempo para su puesta en marcha y configuracin ptima. Sobre todo hoy da, con la presencia de redes locales, Internet y hardware cada vez ms 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, adems de obligarnos a cambiar buena parte del software de aplicacin que se estuviera utilizando. No existen versiones de todos los programas de aplicacin para todos los sistemas operativos. Recuerda: Un cambio de sistema operativo no es una cuestin menor. AUTOEVALUACIN Elige la respuesta correcta: a) Parte del sistema operativo b) Un programa de aplicacin c) Las respuestas a y b son correctas d) Ninguna respuesta es correcta
Pgina 4 de 42
3. Sistema operativo
Vamos a ver a continuacin 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 acta como intermediario entre el usuario y el hardware del ordenador y su propsito 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 informtico se use de manera cmoda, y el objetivo secundario es que el hardware del computador se emplee de manera eficiente. Un sistema operativo es un conjunto de programas que controla la ejecucin de programas de aplicacin y acta 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 a los usuarios del sistema.
Vctor recuerda cuando un amigo le pregunt qu es el sistema operativo del ordenador y la rpida respuesta de Carmen que le evit quedar en evidencia. Porque aunque tiene muy claro cul es el sistema operativo de un ordenador, no encontraba palabras para explicarlo. Por el contrario le pareci muy acertada la definicin de Carmen: "Se trata de un software especial e imprescindible que permite a cualquier aplicacin informtica utilizar todos los dispositivos que componen el ordenador, as como todos los que se le pueden conectar, realizando adems las tareas de comunicacin entre el usuario y la mquina". Esa definicin dej totalmente satisfecho a Vctor. Y a su
Pgina 5 de 42
amigo, claro. AUTOEVALUACIN Un sistema operativo: a) Administra los recursos hardware de la mquina 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 ms: Hoy da los dos sistemas operativos ms 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 Andaluca, la conocida Guadalinex. Visita los siguientes enlaces para conocer mas detalles de ambos sistemas operativos. Guadalinex Familia de sistemas Microsoft Sistemas informticos multiusuario y en red
Pgina 6 de 42
A continuacin veremos las caractersticas que se deben perseguir al disear e implementar un sistema operativo. Tambin nos sirven para evaluar o medir la conveniencia de su eleccin. No todos los sistemas operativos cumplen con todas las caractersticas reseadas, unos estn ms orientados a la seguridad y otros persiguen una buena usabilidad. La eleccin 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 ms eficiente posible. Por 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 situaciones crticas 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. Tambin es fundamental limitar el acceso de los usuarios sin privilegios de administrador a las partes ms sensibles del sistema. Extensibilidad: La aparicin constante de nuevo hardware y de nuevos tipos de aplicaciones, exigen al sistema operativo la adicin 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 perifricos, etc.
Pgina 7 de 42
Facilitar las entradas y salidas: Un sistema operativo debe hacerle fcil al usuario el acceso y manejo de los dispositivos de Entrada/Salida del ordenador. Como por ejemplo facilitar la impresin de documentos, gestin de interfaces de entrada como teclado y ratn 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 instalacin y uso de las redes de ordenadores. Este aspecto es cada vez ms 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 dara al sistema operativo el papel de regulador de los recursos de una red. Disponer de un entorno amigable y de fcil uso: Hoy da los sistemas operativos, sobre todo si estn dirigidos al usuario final, deben proveer de un entorno de trabajo que facilite su uso por parte del usuario. Atrs quedaron los tiempos en los que el sistema operativo slo provea de una espartana interfaz en lnea de comandos (aunque hoy da todava es usado en muchas ocasiones). En la actualidad los sistemas operativos disponen de entornos grficos llamados escritorios que facilitan las operaciones de manejo de programas de aplicacin y del propio sistema operativo. Los sistemas Windows, los sistemas Mac o los escritorios Gnome o KDE de Linux son ejemplos de esto. AUTOEVALUACIN 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 ms: A lo largo del tiempo se han empleado diferentes tcnicas para disear los sistemas operativos. Una de las ms utilizadas ha sido en diseo por capas. En el siguiente enlace se hace una introduccin a este modo de diseo y se compara UNIX clsico con Linux y con Windows 2000. Diseo de sistemas operativos [Versin en cach]
Para descargar el programa Acrobat Reader pulsa aqu.
Pgina 8 de 42
Pgina 9 de 42
Las tarjetas perforadas llevaban escritas las instrucciones de programa en forma de agujeros en una cartulina, que una mquina lectora de tarjetas comunicaba al sistema operativo. Este iba obteniendo las diferentes instrucciones en secuencia y controlando su ejecucin.
En estos sistemas operativos la parte ms importante se llamaba monitor y controlaba la ejecucin 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 haba 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 finalizacin, momento en el cual el monitor lanza la ejecucin del siguiente programa y as sucesivamente. Sistemas informticos multiusuario y en red
Pgina 10 de 42
Pgina 11 de 42
Aparecen los ordenadores construidos a base de transistores, cada vez ms pequeos y potentes. Uno de los grandes problemas de los sistemas de la primera generacin 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 impriman resultados en una impresora o se lean datos de tarjetas perforadas (procesos lentos) la CPU no haca nada salvo esperar.
En la segunda generacin se idearon tcnicas para paliar este problema y apareci el concepto de proceso fuera de lnea (offline). Consista en pasar los datos de entrada a cinta magntica (rpida) que despus era conectada a la CPU para su proceso, la CPU escriba 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 poda estar imprimiendo el contenido de otra cinta o pasando de tarjetas perforadas a cinta.
Pgina 12 de 42
Pgina 13 de 42
Para ello se emplea el tiempo compartido (time sharing) en el que a travs de polticas de asignacin, se ejecutan varios programas intercalando la ejecucin de sus instrucciones en el procesador. Los programas son cada vez ms interactivos y necesitan un determinado dilogo con el usuario. Por ello aparece el tiempo compartido, consistente en un conjunto de terminales que estn continuamente solicitando atencin del procesador, siendo el sistema operativo quien va intercalando dicha atencin entre los distintos usuarios. En estos aos aparece un sistema operativo que tendr mucha importancia a partir de entonces y que con su evolucin particular permanece hasta nuestros das, nos referimos a UNIX. Hoy da la variante ms conocida es Linux y en concreto la distribucin promovida por la Junta de Andaluca: Guadalinex.
Pgina 14 de 42
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 adems, aumentando sus prestaciones. Ejemplos de esto son Windows 2000 Server o l mas reciente Windows 2003 Server. En los aos 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 caractersticas de estos (interfaces grficos, multitarea, perifricos...), 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 cronograma con las distintas generaciones de los sistemas operativos
En la actualidad existen sistemas operativos para PDA, telfonos mviles y otros dispositivos de comunicaciones e informtica que estn apareciendo en nuestros das.
Pgina 15 de 42
AUTOEVALUACIN La multiprogramacin surge durante la: a) Tercera generacin b) Primera generacin c) Segunda generacin d) Cuarta generacin
Pgina 16 de 42
Pgina 17 de 42
Estructura monoltica: Es la estructura de los primeros sistemas operativos constituidos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra.
Estructura jerrquica: 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 prcticamente la mayora de los sistemas operativos actuales.
Pgina 18 de 42
Mquina Virtual: Se 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. Estos sistemas operativos separan dos conceptos que suelen estar unidos en el resto de sistemas: la multiprogramacin y la mquina extendida. El objetivo de los sistemas operativos de mquina virtual es el de integrar distintos sistemas operativosdando la sensacin de ser varias mquinas diferentes. Microkernel o microncleo: Se conoce como microkernel al modelo de kernel (ncleo) de sistema operativo, que consiste en distribuir las diferentes tareas en porciones de cdigo modulares y sencillas. Se pretende aislar del sistema, su ncleo, las operaciones de entrada/salida, gestin de memoria, etc., que se realizaran en procesos separados. Esto mejora la tolerancia a fallos y eleva la portabilidad entre plataformas de hardware. Algunos sistemas que utilizan esta tecnologa son AIX, MACOSX o Hurd.
En una ocasin el director general de una gran empresa le pregunt directamente que cul sera el sistema operativo ms adecuado para diferentes departamentos de su empresa en situaciones muy diversas. Jess le respondi que en primer lugar hay muchos factores sobre los que responder esa pregunta, lo ideal es un sistema operativo estructurado jerrquicamente 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 ms o menos complejas dada su estructura modular en diferentes niveles. AUTOEVALUACIN En el kernel o ncleo de un sistema operativo se incluye:
Pgina 19 de 42
a) el planificador de procesos b) el gestor de entradas y salidas y el administrador del escritorio c) el entorno grfico o interfaz grfica d) el instalador de aplicaciones
Pgina 20 de 42
Monousuario: Soportan un nico usuario a la vez, sin importar el nmero de procesadores que tenga el ordenador o el nmero 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 ms 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. Adems no importa el nmero de procesadores en la maquina y ni el nmero de procesos de cada usuario, este puede ejecutarse simultneamente. Como el UNIX, Linux, NETWARE, Windows NT, Windows 2000 Server, LAN Manager (IBM). Jess contina con su exposicin. Adems dadas las aplicaciones actuales de los ordenadores en la empresa sera interesante un sistema multiusuario, porque cada vez ms los programas se programan para ser utilizados simultneamente desde varios puestos.
Monotarea: Permiten realizar una sola tarea a la vez por usuario. Multitarea: Soportan la ejecucin de dos o ms trabajos activos al mismo tiempo. Esto trae como resultado que la CPU siempre tenga alguna tarea que ejecutar, aprovechando al mximo su utilizacin; como en UNIX, Windows 95, 98, NT, 2000, MAC-OS, OS/2.
Tambin comenta que aunque actualmente todos son multitarea, unos gestionan mejor que otros la memoria, lo que puede mejorar el rendimiento al realizar varias tareas simultneas. 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 nmero de procesos simultneos
Uniproceso: Es capaz de manejar solo un proceso del ordenador simultneamente. Como el MS-DOS y Windows 95, 98, Millenium y XP. Multiproceso: Estos pueden ser simtricos o asimtricos y se necesita que el hardware del ordenador tenga varios procesadores. El sistema gestionar su utilizacin administrar la carga de trabajo de cada uno. Ejemplos pueden ser UNIX, Linux o Windows 2000 y 2003 Server. AUTOEVALUACIN
Pgina 21 de 42
Linux es un sistema operativo: a) Monousuario, multitarea y multiproceso b) De estructura monoltica c) Multiusuario, multiproceso y monotarea d) Ninguna de las anteriores respuestas es correcta
Pgina 22 de 42
7. Procesos
un proceso es una actividad de cierto tipo que contiene un programa; entradas, salidas y estados. un programa est compuesto por procesos.
Los procesos en estado listo son los que pueden pasar a estado de ejecucin si el planificador del sistema operativo los selecciona, o sea cuando llegue su turno (segn su importancia y orden de llegada). Los procesos en estado de ejecucin son los que se estn ejecutando en el procesador en un momento dado. Los procesos que se encuentran en estado bloqueado estn esperando la respuesta de algn otro proceso para poder continuar con su ejecucin, por ejemplo una operacin de entrada/salida.
Los procesos pueden cooperar o ser independientes, en el primer caso se entiende que los procesos interactan entre s y pertenecen a una misma aplicacin. En el caso de procesos independientes en general se debe a que no interactan y un proceso no requiere informacin de otros. AUTOEVALUACIN
Pgina 23 de 42
Un proceso esperando el trabajo de una impresora est: a) Listo b) En ejecucin c) Bloqueado d) Las tres respuestas anteriores son correctas
Para saber ms: Es muy importante para el buen funcionamiento del sistema operativo la planificacin de procesos. En concreto la coordinacin entre diferentes procesos que luchan por obtener los mismos recursos o bien que dependen unos de otros. Existe un gran problema en el diseo de sistema que es la exclusin mutua o deadlock (abrazo mortal). Existen varias soluciones para resolverlo, lee el siguiente enlace para conocer este tema a fondo. Coordinacin entre procesos [Versin en cach]
Pgina 24 de 42
Jess siempre ha dicho que una de las cosas que ms 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 gestin "manual" de los procesos, mucho mejor que lo que permiten otros sistemas como Windows. Sistemas informticos multiusuario y en red
Pgina 25 de 42
1. Justicia o Imparcialidad: Todos los procesos son tratados de la misma forma, y en algn momento obtienen su turno de ejecucin o intervalos de tiempo de ejecucin hasta su terminacin con xito. 2. Maximizar la Produccin: El sistema debe finalizar el mayor nmero 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 rpido y con cargas pesadas debe ir degradndose 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.
AUTOEVALUACIN El planificador de procesos del sistema operativo debe pretender: a) Que todos los procesos se ejecuten b) Que se ejecute el mayor nmero de procesos posible c) Que no se produzcan largos tiempos de espera d) Las tres respuestas anteriores son correctas
Pgina 26 de 42
No todos los sistemas informticos procesan el mismo tipo de trabajos, y un algoritmo de planificacin que en un sistema funciona excelente puede dar un rendimiento psimo en otro cuyos procesos tienen caractersticas diferentes. Estas caractersticas 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 clculos matemticos. 3. Procesos por lotes frente a procesos interactivos: Un proceso por lotes 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. 4. Procesos en Tiempo Real: Si los procesos deben dar respuesta en tiempo real se requiere que tengan prioridad para los turnos de ejecucin. 5. Longevidad de los Procesos: Existen procesos que tpicamente requerirn varias horas para finalizar su labor, mientras que existen otros que solo necesitan algunos segundos. Sistemas informticos multiusuario y en red
Pgina 27 de 42
Round Robin: Tambin llamada por turno, consiste en darle a cada proceso un intervalo de tiempo de ejecucin (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 estn ordenados en una cola circular. Por ejemplo, si existen tres procesos, el A, B y C, dos pasadas del planificador daran 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.
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 ms tiempo. Su desventaja es que puede provocar aplazamiento indefinido en los procesos de baja prioridad. Por 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 estarn esperando por siempre. Tambin provoca que el sistema sea impredecible para los procesos de baja prioridad. El trabajo ms corto primero: Es difcil de llevar a cabo porque se requiere saber o tener una estimacin de cunto 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.
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 ninguna caracterstica de los procesos y puede no servir para un proceso de tiempo real. Por ejemplo, el tiempo promedio de respuesta puede ser muy malo comparado con el logrado por el del trabajo ms corto primero.
Pgina 28 de 42
El tiempo restante ms corto: Es parecido al del trabajo ms corto primero, pero aqu se est calculando en todo momento cunto tiempo le resta para terminar a todos los procesos, incluyendo los nuevos, y aqul 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, adems de responder dinmicamente a la longevidad de los procesos; su desventaja es que provoca ms sobrecarga porque el algoritmo es ms complejo. La tasa de respuesta ms alta: Este algoritmo concede el turno de ejecucin al proceso que produzca el valor mayor de la siguiente formula:
Es decir, que dinmicamente el valor se va modificando y mejora un poco las deficiencias del algoritmo del trabajo ms corto primero. Sistemas informticos multiusuario y en red
Pgina 29 de 42
8. Gestin de la memoria
Ya hemos estudiado el control y gestin de procesos. Pero si se pretende que un proceso pueda ejecutarse es necesario que ste sea cargado en memoria principal, ya que ningn proceso se puede activar antes de que se le asigne el espacio de memoria que requiere. Por 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 misin del gestor de memoria es la de asignar memoria principal a los procesos que la soliciten. Entre otras cosas tendr que:
llevar el control de las zonas que estn en uso y cules no, asignar memoria a los procesos cuando la necesiten y retirrsela cuando terminen, tendr que establecer mecanismos para que un proceso no invada la memoria asignada a otro proceso, 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 gestin de la memoria son: 1. Reubicacin: Consiste en decidir en qu zona de la memoria se ubicar un proceso y cmo 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. Adems, tiene que ser capaz de gestionar esta asignacin de memoria, de tal manera que proporcionen memoria a los procesos que lo necesiten y se la retire cuando stos hayan terminado. 3. Proteccin: Cuando hay varios procesos en memoria simultneamente, cada uno estar ubicado
Pgina 30 de 42
en una posicin 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 dems. Para conseguir esto, cada vez que un proceso vaya a realizar una operacin 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. Utilizacin 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 informacin entre la memoria principal y la secundaria. El sistema de gestin 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 tcnicas sencillas de gestin de la memoria, puesto que slo se tiene un proceso cargado en la memoria. Para sistemas multitarea la gestin se complica, ya que se necesitan tener varios procesos cargados en la memoria simultneamente, con sus propias estructuras de datos. AUTOEVALUACIN 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 ejecucin
Para saber ms: Has comprobado que el tema de gestin de memoria es bastante complicado y admite muchas tcnicas y enfoques diferentes. En el siguiente enlace se aclaran muchos de los conceptos anteriores con ejemplos grficos que te ayudarn a comprender la materia de estudio. Gestin de memoria [Versin en cach]
Pgina 31 de 42
En un principio, en los comienzos de los sistemas operativos, stos no incluan ningn gestor de memoria y el programador tena un control completo sobre el espacio total de memoria. Pero, como puede suponerse, esto era una tarea extremadamente complicada. El esquema ms sencillo de gestin de memoria es aqul en el que, en cada instante, slo se tiene un proceso en memoria. En este esquema hace falta un mecanismo de proteccin 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 informticos multiusuario y en red
Pgina 32 de 42
Pgina 33 de 42
Pgina 34 de 42
Se tiene unacolapor cada particin y se coloca cada trabajo en la cola de la particin ms pequea en que quepa dicho trabajo, a fin de desperdiciar el menor espacio posible. La planificacin de cada cola se hace por separado y, como cada cola tiene su propia particin, no hay competencia entre las colas por la memoria. La desventaja de este mtodo se hace evidente cuando la cola de una particin grande est vaca y la cola de una particin pequea est llena.
Se tiene una nica cola comn para todas las particiones. El sistema operativo decidir en que particin se ubica cada proceso. En funcin de la disponibilidad de particiones y las necesidades del proceso en cuestin.
Pgina 35 de 42
Tanto si se adopta la estrategia de tener una cola por particin como si se adopta la estrategia de tener una cola comn para todas las particiones, tendr que haber mecanismos para proteger a un proceso de los dems; es decir, impedir que un proceso pueda acceder a una zona de memoria que est fuera de la memoria correspondiente a la particin en la que se encuentra. Otro problema que aparece cuando se gestiona la memoria con particiones fijas es el de la fragmentacin, 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 informticos multiusuario y en red
Pgina 36 de 42
Este mtodo de gestin de memoria se conoce con el nombre de asignacin de la memoria con particiones variables. Este mecanismo se ajusta a la realidad de que el nmero y tamao de los procesos vara dinmicamente y, por tanto, lo lgico es que el nmero, posicin y tamao de las particiones tambin lo haga. No se est sujeto a un nmero fijo de particiones que pudieran ser muy grandes o demasiado pequeas, con lo que se consigue un mejor uso de la memoria aunque a costa de una mayor complejidad.
Para poder manejar correctamente la asignacin de memoria con particiones variables, el sistema operativo tiene que llevar el control de qu partes de la memoria estn disponibles o libres (huecos) y qu partes estn ocupadas. Inicialmente, toda la memoria est disponible y se considera como un gran bloque libre. El procedimiento que 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 slo 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
Pgina 37 de 42
de huecos. Si el nuevo hueco es adyacente a otros, se fusionan para formar un hueco mayor. Sistemas informticos multiusuario y en red
Pgina 38 de 42
11. Paginacin
Bsicamente, en un sistema de memoria con paginacin, la memoria fsica se divide conceptualmente en un nmero de bloques de tamaos fijos, denominados marcos de pgina. Por otra parte, el espacio de direcciones lgico de un proceso (es decir, todas las posibles direcciones que puede generar el proceso) tambin se divide en bloques de tamao fijo, llamados pginas, que son del mismo tamao que los marcos de pgina.
Entonces, la asignacin de memoria consiste en encontrar un nmero suficiente de marcos de pgina sin usar para cargar las pginas del proceso que est solicitando cargarse en memoria. Como cada pgina se asigna a un marco por separado, no es necesario que estos marcos de pgina asignados a un proceso se encuentren situados en zonas contiguas de la memoria fsica.
Vctor perplejo le pregunta que a l qu le interesa eso, si lo hace el ordenador sin intervencin del usuario, no cree que deba perder el tiempo en esas cosas. Jess le responde que debe conocer estas cosas y cmo las hace cada uno de los sistemas operativos, para tener su propio criterio sobre sus preferencias. Aade que por este tipo de cosas Linux es su sistema preferido y que eso lo hace ms eficiente. Vctor piensa que si Mara estuviera delante seguramente le rebatira esos argumentos.
Pgina 39 de 42
Resumiendo,
cuando se quiere cargar un proceso en memoria, se examina su tamao, el cual se expresa en pginas. entonces se examina la memoria disponible, que se mantiene en forma de lista de marcos de pginas libres. si el trabajo requiere x pginas, tiene que haber x marcos de pgina disponibles en memoria para poder almacenar el proceso. si las hay, se cargar el proceso en esos marcos de pgina, se marcarn los marcos como ocupados y se crear la tabla de pginas para ese proceso. si no haba marcos suficientes para el proceso, ste tendr que esperar a qu los haya.
Pgina 40 de 42
Pgina 41 de 42
AUTOEVALUACIN En un sistema de memoria virtual: a) los procesos pueden ocupar ms memoria de que hay realmente en la memoria principal b) el nmero de procesos en ejecucin 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
Pgina 42 de 42