CONTENIDO Sistemas Operativos ISC
CONTENIDO Sistemas Operativos ISC
CONTENIDO Sistemas Operativos ISC
Sistemas Operativos
Sistemas Operativos
UNIDAD I INTRODUCCIN
OBJETIVO.- Conocer la historia, funciones, caractersticas, clasificacin y estructura de un sistema operativo. I.- Introduccin a los sistemas Operativos El sistema operativo es componente que hace funcionar a una computadora es un intermediario entre las peticiones de los usuarios y los programas , administra y opera el hardware de la computadora, lee y escribe informacin hacia y desde las unidades de disco. Un sistema operativo es un software de sistema, es decir, un conjunto de programas de computacin destinado a muchas tareas entre las que destaca la administracin eficaz de sus recursos. Comienza a trabajar cuando en memoria se carga un programa especfico y aun antes de ello, que se ejecuta al iniciar el equipo, o al iniciar una mquina virtual, y gestiona el hardware de la mquina desde los niveles ms bsicos, brindando una interfaz con el usuario. Un sistema operativo se puede encontrar normalmente en la mayora de los aparatos electrnicos que utilicen microprocesadores para funcionar, ya que gracias a stos podemos entender la mquina y que sta cumpla con sus funciones (telfonos mviles, reproductores de DVD, autoradios, computadoras, agendas electrnicas, dispositivos de conectividad, etc). Existen 2 tipos de sistemas operativos: a) Sistema basado en caracteres: son aquellos que reciben comandos desde el prompt de la computadora a:\ c:\ y responden a ella ejecutando una tarea especfica. b) Sistema de interfaz grfico: son aquellos que utilizan el mouse como dispositivo de sealizacin que permite seleccionar pequeos smbolos o dibujos que representan alguna tarea a realizar. Ejemplos de Sistemas Operativos MS-DOS (Microsoft), OS/2 (IBM warp, server), Solaris (Sun Microsystem /Oracle), Windows (Vista, Seven, Server 2003, Server 2008), Mac OS X (Leopard) , Linux (red Hat, Ubuntu, Fedora, Suse, etc.), HP-UX, etc.
Sistemas Operativos
ACTIVIDAD DE APRENDIZAJE 1.1: Identificar cules son los Sistemas Operativos ms utilizados en la actualidad, as como sus versiones y su fabricante. ACTIVIDAD DE APRENDIZAJE 1.2: y el futuro de los sistemas operativos? Fundamenta tu respuesta. 1.1 Concepto de Sistema Operativo Un sistema operativo es un conjunto de programas o software, destinado a permitir la comunicacin entre el usuario y la mquina de forma cmoda y eficiente; se encarga de gestionar los recursos del ordenador, esto incluye la gestin del hardware desde los niveles ms bsicos. 1.2Funciones de un S.O Un sistema operativo se encarga de realizar funciones bsicas para la gestin de un sistema informtico, estas funciones son: Implementacin de una interfaz de usuario. El medio por el cual interactan usuario/sistema. Administracin de recursos. Gestiona el ptimo manejo de los recursos del sistema. Administracin de archivos. Controla la forma en que los archivos se almacenan fsica y lgicamente. Administracin de tareas. Gestiona los procesos que se ejecutan o que se ejecutaran en el procesador. Servicio de soporte y utilidades. Asistencia y gestin de programas utilitarios del sistema.
1.3. Evolucin de los S.O ACTIVIDAD DE APRENDIZAJ E 1.3: Enlistar los sucesos que han permitido evolucionar los diferentes Sistemas Operativos 1.4Clasificacin de los S.O. Clasificacin Segn su funcin: Sistema Operativo Monotareas Sistema Operativo Multitareas Sistema Operativo Monousuario Sistema Operativo Multiusuario Tiempo real
Elabor: MGTI Rosana Ayala Landeros 3
Sistemas Operativos
Sistema Operativo Monotareas. Los sistemas operativos monotareas son ms primitivos, es decir, solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una. Por ejemplo cuando la computadora esta imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresin. Sistema Operativo Multitareas. Es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una computadora procesa varias tareas al mismo tiempo. Existen varios tipos de multitareas. Es un tipo muy simple de multitarea en el que dos o ms aplicaciones se cargan al mismo tiempo, pero en el que solo se est procesando la aplicacin que se encuentra en primer plano (la que ve el usuario). Para activar otra tarea que se encuentre en segundo plano, el usuario debe traer al primer plano la ventana o pantalla que contenga esa aplicacin. En la multitarea cooperativa, la que se utiliza en el sistema operativo Macintosh, las tareas en segundo plano reciben tiempo de procesado durante los tiempos muertos de la tarea que se encuentra en primer plano (por ejemplo, cuando esta aplicacin est esperando informacin del usuario), y siempre que esta aplicacin lo permita. En los sistemas multitarea de tiempo compartido, cada tarea recibe la atencin del microprocesador durante una fraccin de segundo. Para mantener el sistema en orden, cada tarea recibe un nivel de prioridad o se procesa en orden secuencial. Dado que el sentido temporal del usuario es mucho ms lento que la velocidad de procesamiento del ordenador, las operaciones de multitarea en tiempo compartido parecen ser simultneas. Sistema Operativo Monousuario. Los sistemas monousuarios son aquellos que nada ms puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicacin que se est ejecutando. Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se est utilizando, esto quiere decir, que las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuario. Y estn orientados principalmente por los microcomputadores. Sistema Operativo Multiusuario. Es todo lo contrario a monousuario; y en esta categora se encuentran todos los sistemas que cumplen simultneamente las necesidades de dos o ms usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes. En otras palabras consiste en el fraccionamiento del tiempo (timesharing). Secuencia por Lotes. La secuencia por lotes o procesamiento por lotes en microcomputadoras, es la ejecucin de una lista de comandos del sistema operativo uno tras otro sin intervencin del usuario. En los ordenadores ms grandes el proceso de recogida de
Elabor: MGTI Rosana Ayala Landeros 4
Sistemas Operativos
programas y de conjuntos de datos de los usuarios, la ejecucin de uno o unos pocos cada vez y la entrega de los recursos a los usuarios. Procesamiento por lotes tambin puede referirse al proceso de almacenar transacciones durante un cierto lapso antes de su envo a un archivo maestro, por lo general una operacin separada que se efecta durante la noche. Los sistemas operativos por lotes (batch), en los que los programas eran tratados por grupos (lote) en ves de individualmente. La funcin de estos sistemas operativos consista en cargar en memoria un programa de la cinta y ejecutarlo. Al final este, se realizaba el salto a una direccin de memoria desde donde reasuma el control del sistema operativo que cargaba el siguiente programa y lo ejecutaba. De esta manera el tiempo entre un trabajo y el otro disminua considerablemente. Tiempo Real. Un sistema operativo en tiempo real procesa las instrucciones recibidas al instante, y una vez que han sido procesadas muestra el resultado. Este tipo tiene relacin con los sistemas operativos monousuarios, ya que existe un solo operador y no necesita compartir el procesador entre varias solicitudes. Su caracterstica principal es dar respuestas rpidas; por ejemplo en un caso de peligro se necesitaran respuestas inmediatas para evitar una catstrofe. Tiempo Compartido. El tiempo compartido en ordenadores o computadoras consiste en el uso de un sistema por ms de una persona al mismo tiempo. El tiempo compartido ejecuta programas separados de forma concurrente, intercambiando porciones de tiempo asignadas a cada programa (usuario). En este aspecto, es similar a la capacidad de multitareas que es comn en la mayora de los microordenadores o las microcomputadoras. Sin embargo el tiempo compartido se asocia generalmente con el acceso de varios usuarios a computadoras ms grandes y a organizaciones de servicios, mientras que la multitarea relacionada con las microcomputadoras implica la realizacin de mltiples tareas por un solo usuario. Clasificacin de los sistemas operativos segn su estructura: (niveles o estratos de diseo) Sistemas operativos Monolticos o modular Sistemas operativos por Microkernel Sistemas por Capas. Modelo Cliente-Servidor Estructura Modular.- Sistemas operativos cuya caracterstica principal consiste en que carece de estructura ya que el sistema operativo se escribe como una coleccin de procedimientos, los cuales pueden llamar a otros cada vez que as se requiera. Cuando se usa esta tcnica, cada procedimiento del sistema tiene una interfaz bien definida en trminos de parmetros y resultados y cada uno
Elabor: MGTI Rosana Ayala Landeros 5
Sistemas Operativos
de ellos es libre de llamar a cualquier otro, si este ultimo proporciona cierto clculo til para el primero. Sin embargo incluso en este tipo de sistemas es posible tener al menos algo de estructura. Los servicios (o llamadas al sistema) que proporciona el sistema operativo se solicitan colocando los parmetros en lugares bien definidos, como en los registros o en la pila, para despus ejecutar una instruccin especial de trampa de nombre "llamada al ncleo" o "llamada al supervisor". Esta llamada consta de los siguientes pasos: 1. 2. 3. 4. El programa del usuario es atrado hacia el ncleo. El sistema operativo determina el nmero del servicio solicitado El sistema operativo localiza y llama al proceso correspondiente al servicio El control regresa al programa del usuario.
Estructura por Microkernel.- En este tipo de estructura, las funciones centrales son controladas por un ncleo que es llamado kernel y la interfaz del usuario es controlada por el llamado entorno shell. Para ver todo esto mucho ms claro, pondremos un ejemplo. En el sistema operativo DOS, su parte ms importante es un programa llamado COMMAND.COM el cual se descompone en dos partes: El kernel, que se mantiene en memoria en todo momento, contiene el cdigo mquina de bajo nivel para manejar la administracin del hardware para otros programas que necesitan estos servicios, y para la segunda parte del COMMAND.COM el shell, el cual es el interprete de comandos. La shell es un comando del sistema operativo que controla lo que ve el usuario. Existen muchos shells diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o inclusive el mismo SO MS-DOS a partir de la versin 5.0 incluy un Shell llamado DOS SHELL. El shell puede soportar mltiples usuarios, mltiples tareas, y mltiples interfaces para s mismo. Los dos shells ms populares son el BourneShell (System V) y el Cshell (BSD Unix). Existe otro shell conocido como KornShell. ACTIVIDAD DE APRENDIZAJE 1.4: Identificar tipos de shells, indicando las caractersticas bsicas de estos. Estructura por capas.-Tambin llamado estructura por anillos concntricos. Esta estructura consiste en organizar el sistema operativo como una jerarqua de capas, las cuales estn construidas sobre la inmediata inferior. Una generalizacin ms avanzada del concepto de capas se presento en el sistema MULTICS. En lugar de capas, MULTICS estaba organizado como una serie de anillos concntricos, siendo los anillos interiores los privilegiados. Cuando un procedimiento de un anillo exterior deseaba llamar a un procedimiento de un anillo interior, debi hacer el equivalente a una llamada al sistema
Elabor: MGTI Rosana Ayala Landeros 6
Sistemas Operativos
Mientras que el esquema de capas de THE era en realidad un apoyo al diseo, debido a que todas las partes del sistema estaban ligadas entre si en un solo programa objeto, en MULTICS, el mecanismo de anillos estaba ms presente durante el tiempo de ejecucin y era reforzado por el hardware. La ventaja del mecanismo de anillos es su facilidad de extensin para estructurar subsistemas del usuario. Estructura cliente-servidor.-Una tendencia de los sistemas operativos actuales es la de explotar la idea de mover el cdigo a capas superiores y eliminar la mayor parte posible del sistema operativo para mantener un ncleo mnimo. El punto de vista usual es el de implantar la mayora de las funciones del sistema operativo en los procesos del usuario. Para solicitar un servicio, como la lectura de un bloque de cierto archivo, un proceso del usuario (denominado proceso cliente) enva la solicitud a un proceso servidor, que realiza entonces el trabajo y regresa la respuesta. La funcin principal que hace el ncleo es controlar la comunicacin entre los clientes y los servidores. Al separar el sistema operativo en partes, cada una de ellas controla una faceta del sistema, como el servicio a archivos, servicios a procesos, servicio a terminales o servicio a la memoria, cada parte es pequea y controlable. Adems como todos los servidores se ejecutan como procesos en modo usuario y no en modo ncleo, no tienen acceso directo al hardware. En consecuencia si hay un error en el servidor de archivos, ste puede fallar, pero esto no afectar en general a toda la mquina. Ventajas: - Flexibilidad. Cada proceso servidor se encarga de una funcin, siendo cada parte ms pequea y flexible y el desarrollo y la depuracin de cada proceso servidor. facilita
Desventajas: -Mayor sobrecarga al manejar servicios de los sistemas operativos monolticos, la razn es que los componentes estn en espacios de memoria distintas por lo que su activacin requiere mayor tiempo. 1.6 Ncleo de un S. O. En informtica, el ncleo (anglicismo kernel, de races germnicas como kern) es la parte fundamental de un sistema operativo. Es el software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma ms bsica, es el encargado de gestionar recursos, a travs de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, el ncleo tambin se encarga de decidir qu programa podr hacer uso de un dispositivo de hardware y durante cunto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los ncleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso para el programador.
Elabor: MGTI Rosana Ayala Landeros 7
Sistemas Operativos
Funciones generalmente ejercidas por un ncleo: Los ncleos tienen como funciones bsicas garantizar la carga y la ejecucin de los procesos, las entradas/salidas y proponer un interfaz entre el espacio ncleo y los programas del espacio del usuario. Aparte de las funcionalidades bsicas, el conjunto de las funciones de los puntos siguientes (incluidos los pilotos materiales, las funciones de redes y sistemas de archivos o los servicios) necesariamente no son proporcionados por un ncleo de sistema de explotacin. Pueden establecerse estas funciones del sistema de explotacin tanto en el espacio usuario como en el propio ncleo. Su implantacin en el ncleo se hace en el nico objetivo de mejorar los resultados. En efecto, segn la concepcin del ncleo, la misma funcin llamada desde el espacio usuario o el espacio ncleo tiene un coste temporal obviamente diferente. Si esta llamada de funcin es frecuente, puede resultar til integrar estas funciones al ncleo para mejorar los resultados. Hay que sealar que estas tcnicas son utilizadas para atenuar defectos de los ncleos como los elevados estados. En la medida de lo posible, es preferible escribir un programa informtico fuera del ncleo, en el espacio usuario. En efecto, el espacio del ncleo, supone la ausencia de mecanismos como la proteccin de la memoria. Es pues ms complejo escribir un programa informtico que funciona en el espacio del ncleo, que en el espacio usuario; los errores y faltas de seguridad pueden desestabilizar el sistema. Hay cuatro grandes tipos de ncleos: Los ncleos monolticos. Los microncleos (microkernel) Los ncleos hbridos (microncleos modificados). Los exoncleos Microncleos: El enfoque microncleo consiste en definir una abstraccin muy simple sobre el hardware, con un conjunto de primitivas o llamadas al sistema que implementan servicios del sistema operativo mnimos, como la gestin de hilos, el espacio de direccionamiento y la comunicacin entre procesos. El objetivo principal es la separacin de la implementacin de los servicios bsicos y de la poltica de funcionamiento del sistema. Por ejemplo, el proceso de bloqueo de E/S se puede implementar con un servicio en espacio de usuario ejecutndose encima del microncleo. Estos servicios de usuario, utilizados para gestionar las partes de alto nivel del sistema, son muy modulares y simplifican la estructura y diseo del ncleo. Si falla uno de estos servidores, no se colgar el sistema entero, y se podr reiniciar este mdulo independientemente
Elabor: MGTI Rosana Ayala Landeros 8
Sistemas Operativos
del resto. Sin embargo, la existencia de diferentes mdulos independientes origina retardos en la comunicacin debido a la copia de variables que se realiza en la comunicacin entre mdulos. El ncleo opera como asignador de recursos para cualquier proceso que necesite hacer uso de las facilidades de cmputo Ncleos monolticos en contraposicin a microncleos: Frecuentemente se prefieren los ncleos monolticos frente a los microncleos debido al menor nivel de complejidad que comporta el tratar con todo el cdigo de control del sistema en un solo espacio de direccionamiento. Por ejemplo, XNU, el ncleo de Mac OS X, est basado en el ncleo Mach 3.0 y en Free BSD, en el mismo espacio de direccionamiento para disminuir la latencia que comporta el diseo de microncleo convencional. Los ncleos monolticos suelen ser ms fciles de disear correctamente, y por lo tanto pueden crecer ms rpidamente que un sistema basado en microncleo, pero hay casos de xito en ambos bandos. Los microncleos suelen usarse en robtica embebida o computadoras mdicas, ya que la mayora de los componentes del sistema operativo residen en su propio espacio de memoria privado y protegido. Esto no sera posible con los ncleos monolticos, ni siquiera con los modernos que permiten cargar mdulos del ncleo. Ncleos hbridos.- Los ncleos hbridos fundamentalmente son microncleos que tienen algo de cdigo no esencial en espacio de ncleo para que ste se ejecute ms rpido de lo que lo hara si estuviera en espacio de usuario. ste fue un compromiso que muchos desarrolladores de los primeros sistemas operativos con arquitectura basada en microncleo adoptaron antes que se demostrara que los microncleos pueden tener muy buen rendimiento. La mayora de sistemas operativos modernos pertenecen a esta categora, siendo el ms popular Microsoft Windows. XNU, el ncleo de Mac OS X, tambin es un microncleo modificado. Existe confusin en el trmino ncleo hbrido con los ncleos monolticos que pueden cargar mdulos despus del arranque, lo que es un error. Hbrido implica que el ncleo en cuestin usa conceptos de arquitectura o mecanismos tanto del diseo monoltico como del microncleo, especficamente el paso de mensajes y la migracin de cdigo no esencial hacia el espacio de usuario, pero manteniendo cierto cdigo no esencial en el propio ncleo por razones de rendimiento. Exoncleos: Tambin conocidos como sistemas operativos verticalmente estructurados, representan una aproximacin radicalmente nueva al diseo de sistemas operativos.
Sistemas Operativos
La idea subyacente es permitir que el desarrollador tome todas las decisiones relativas al rendimiento del hardware. Los exoncleos son extremadamente pequeos, ya que limitan expresamente su funcionalidad a la proteccin y el multiplexado de los recursos. Se llaman as porque toda la funcionalidad deja de estar residente en memoria y pasa a estar fuera, en bibliotecas dinmicas. Los diseos de ncleos clsicos (tanto el monoltico como el microncleo) abstraen el hardware, escondiendo los recursos bajo una capa de abstraccin del hardware, o detrs de los controladores de dispositivo. En los sistemas clsicos, si se asigna memoria fsica, nadie puede estar seguro de cul es su localizacin real, por ejemplo. La finalidad de un exoncleo es permitir a una aplicacin que solicite una regin especfica de la memoria, un bloque de disco concreto, etc., y simplemente asegurarse que los recursos pedidos estn disponibles, y que el programa tiene derecho a acceder a ellos. Debido a que el exoncleo slo proporciona una interfaz al hardware de muy bajo nivel, careciendo de todas las funcionalidades de alto nivel de otros sistemas operativos, ste es complementado por una biblioteca de sistema operativo. Esta biblioteca se comunica con el exoncleo subyacente, y facilita a los programadores de aplicaciones las funcionalidades que son comunes en otros sistemas operativos. Algunas de las implicaciones tericas de un sistema exoncleo son que es posible tener distintos tipos de sistemas operativos (p.e. Windows, Unix) ejecutndose en un solo exoncleo, y que los desarrolladores pueden elegir prescindir de o incrementar funcionalidades por motivos de rendimiento. Actualmente, los diseos exoncleo estn fundamentalmente en fase de estudio y no se usan en ningn sistema popular. Un concepto de sistema operativo es Nemesis, creado por la Universidad de Cambridge, la Universidad de Glasgow, Citrix Systems y el Instituto Sueco de Informtica. El MIT tambin ha diseado algunos sistemas basados en exoncleos. Los exoncleos se manejan en diferente estructura dado que tambin cumplen funciones distintas ACTIVIDAD DE APRENDIZAJE 1.5: Explicar el funcionamiento de tecnologas de ms de un ncleo (hardware). 1.6.1Interrupciones FLIH La interrupcin es el mecanismo mediante el cual otros mdulos pueden interrumpir una secuencia normal de procesamiento. Programa: por ejemplo divisin por cero Temporizador: cuando se cumple un tiempo especfico
Elabor: MGTI Rosana Ayala Landeros 10
Sistemas Operativos
E/S: cuando hay algo que comunicar Hardware: cuando ocurre una falla.
La gestin de interrupciones la realiza el manipulador (controlador) de interrupciones (FLIH, First Level Interrupt Handler). El manipulador de interrupciones es la parte del sistema operativo responsable de proporcionar la respuesta adecuada a las seales procedentes tanto del exterior como del interior del sistema (interrupciones externas e internas). 1.6.2 Despachador o Scheduler Se encarga de asignar los procesadores a los diferentes procesos, por lo tanto debe actuar cuando se debe comprobar si es necesario cambiar el proceso que est activo. Esto involucra: cambio de contexto cambio a modo usuario salto a la direccin de memoria que corresponda al programa de usuario para continuar su ejecucin. Criterios de Despachador Utilizacin de CPU: mantener la CPU ocupada la mayor cantidad del tiempo posible Productividad (Throughput): # de procesos por unidad de tiempo Tiempo de servicio (Turnaround time): tiempo necesario para la ejecucin de un proceso particular Tiempo de espera (Waiting time): tiempo total que el proceso se encuentra en la fila ready Tiempo de respuesta (Response time): tiempo que transcurre desde el requerimiento hasta que se produce la primera respuesta (en ambientes de tiempo compartido) Criterios de Optimizacin Mxima utilizacin de CPU Mxima productividad Mnimo tiempo de servicio Mnimo tiempo de espera Mnimo tiempo de respuesta
11
Sistemas Operativos
1.6.3. Comunicacin entre procesos Es una funcin bsica de los Sistemas operativos. Los procesos pueden comunicarse entre s a travs de compartir espacios de memoria, ya sean variables compartidas o buffers, o a travs de las herramientas provistas por las rutinas de IPC. La IPC provee un mecanismo que permite a los procesos comunicarse y sincronizarse entre s. Normalmente a travs de un sistema de bajo nivel de paso de mensajes que ofrece la red subyacente. La comunicacin se establece siguiendo una serie de reglas (protocolos de comunicacin). Los protocolos desarrollados para internet son los mayormente usados: protocolo de internet (capa de red), protocolo de control de transmisin (capa de transporte) y protocolo de transferencia de archivos , protocolo de transferencia de hipertexto (capa de aplicacin), etc.
ACTIVIDAD DE APRENDIZAJE 1.6: Al concluir esta unidad, podr explicar Por qu tantos sistemas operativos? Argumente su respuesta.
12
Sistemas Operativos
La gestin de procesos podra ser similar al trabajo de oficina. Se puede tener una lista de tareas a realizar y a estas fijarles prioridades alta, media, baja por ejemplo. Debemos comenzar haciendo las tareas de prioridad alta primero y cuando se terminen seguir con las de prioridad media y despus las de baja. Un programa consta al menos, de un proceso y un proceso, al menos, de un thread. Cuando un programa tiene varios procesos, lo normal es que cada uno ejecute un cdigo distinto, los cuales se encuentran en ficheros ejecutables separados. Dos procesos solo pueden compartir una zona de memoria si esta es definida expresamente como tal. As mismo, es en este caso cuando los sistemas de sincronizacin a la hora de compartir memoria se vuelven especialmente necesarios e importantes. 2.2Estados y transiciones de los procesos Durante su vida, un proceso puede pasar por una serie de estados discretos, algunos de ellos son: En ejecucin: El proceso ocupa la CPU actualmente, es decir, se est ejecutando. Listo o preparado: El proceso dispone de todos los recursos para su ejecucin, slo le falta la CPU. Bloqueado: Al proceso le falta algn recurso para poder seguir ejecutndose, adems de la CPU. Por recurso se pueden entender un dispositivo, un dato, etc. El proceso necesita que ocurra algn evento que le permita poder proseguir su ejecucin.
13
Sistemas Operativos
Solamente puede haber un proceso en ejecucin a la vez, pero pueden existir varios listos y varios pueden estar bloqueados. As pues, se forman una lista de procesos listos y otra de procesos bloqueados. La lista de procesos listos se ordena por prioridad, de manera que el siguiente proceso que reciba la CPU ser el primero de la lista. La lista de procesos bloqueados normalmente no est ordenada; los procesos no se desbloquean en orden de prioridad, sino que lo hacen en el orden de ocurrencia de los eventos que estn esperando. Como se ver ms adelante, hay situaciones en las cuales varios procesos pueden bloquearse esperando la ocurrencia del mismo evento; en tales casos es comn asignar prioridades a los procesos que esperan. Transiciones de estado de los procesos. De ejecucin Bloqueado: al iniciar una operacin de E/S, al realizar una operacin WAIT. De ejecucin Listo: por ejemplo, en un sistema de tiempo compartido, cuando el proceso que ocupa la CPU lleva demasiado tiempo ejecutndose continuamente (agota su cuantum) el sistema operativo decide que otro proceso ocupe la CPU, pasando el proceso que ocupaba la CPU a estado listo. De Listo en ejecucin: cuando lo requiere el planificador de la CPU. De Bloqueado Listo: se dispone del recurso por el que se haba bloqueado el proceso. Obsrvese que de las cuatro transiciones de estado posibles, la nica iniciada por el proceso de usuario es el bloqueo, las otras tres son iniciadas por entidades externas al proceso. ACTIVIDAD DE APRENDIZAJE 2.1: Encontrar una analoga para comprender el concepto de Proceso 2.3Procesos ligeros, hilos El concepto de proceso es ms complejo y sutil que el presentado hasta ahora. Engloba dos conceptos separados y potencialmente independientes: Unidad que posee recursos: A un proceso se le asigna un espacio de memoria y, de tanto en tanto, se le puede asignar otros recursos como dispositivos de E/S o archivos. Unidad a la que se le asigna el procesador: Un proceso es un flujo de ejecucin, a travs de uno o ms programas. Esta ejecucin se entremezcla con la de otros procesos. De tal forma, que un proceso tiene un estado y una prioridad de expedicin u origen. La unidad planificada y expedida por el sistema operativo es el proceso.
14
Sistemas Operativos
En la mayora de los sistemas operativos, estas dos caractersticas son, de hecho, la esencia de un proceso. Sin embargo, son independientes, y pueden ser tratadas como tales por el sistema operativo. Esta distincin ha conducido en los sistemas operativos actuales a desarrollar la construccin conocida como thread, Si se tiene esta divisin de caractersticas, la unidad de asignacin de la CPU se conoce como hilo, mientras que a la unidad que posee recursos se le llama proceso.
Dentro de un proceso puede haber uno o ms hilos de control cada uno con: Un estado de ejecucin (en ejecucin, listo, bloqueado). Un contexto de procesador, que se salva cuando no est ejecutndose. Una pila de ejecucin. Algn almacenamiento esttico para variables locales. Acceso a la memoria y a los recursos de ese trabajo que comparte con los otros hilos. Los beneficios clave de los hilos se derivan de las implicaciones del rendimiento: se tarda menos tiempo en crear un nuevo hilo de un proceso que ya existe, en terminarlo, y en hacer un cambio de contexto entre hilos de un mismo proceso. Al someter a un mismo proceso a varios flujos de ejecucin se mantiene una nica copia en memoria del cdigo, y no varias. Un ejemplo de aplicacin que podra hacer uso de los hilos es un servidor de archivos de una red de rea local. Cada vez que llega una solicitud de una operacin sobre un archivo, se puede generar un nuevo hilo para su gestin. El servidor gestiona multitud de solicitudes, por tanto, se pueden crear y destruir muchos hilos en poco tiempo para dar servicio a estas peticiones. Si el servidor es un multiprocesador, se pueden ejecutar varios hilos de un mismo proceso simultneamente y en diferentes procesadores. ACTIVIDAD DE APRENDIZAJE 2.2: Elaborar un cuadro comparativo sobre diversos tipos de procesadores. 2.4 Concurrencia y Secuenciabilidad En un sistema multiprogramado con un nico procesador, los procesos se intercalan en el tiempo aparentando una ejecucin simultnea. Aunque no se logra un procesamiento paralelo y produce una sobrecarga en los intercambios de procesos, la ejecucin intercalada produce beneficios en la eficiencia del procesamiento y en la estructuracin de los programas.
15
Sistemas Operativos
La intercalacin y la superposicin pueden contemplarse como ejemplos de procesamiento concurrente en un sistema monoprocesador, los problemas son consecuencia de la velocidad de ejecucin de los procesos que no pueden predecirse y depende de las actividades de otros procesos, de la forma en que el sistema operativo trata las interrupciones surgen las siguientes dificultades: 1. Compartir recursos globales es riesgoso 2. Para el sistema operativo es difcil gestionar la asignacin ptima de recursos. La concurrencia comprende incorporar varias cuestiones de diseo tales como: La comunicacin entre procesos Sincronizacin de la ejecucin de varios procesos - Comparacin y competencia por los recursos, - Asignacin del tiempo de procesador a los procesos
Y es fundamental para que existan diseos como Multiprogramacin, Multiproceso y Proceso distribuido. Los procesos son concurrentes si existen simultneamente. Cuando dos o ms procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o ms procesos sean concurrentes, es necesario que tengan alguna relacin entre ellos. La concurrencia puede presentarse en: Varias aplicaciones: La multiprogramacin se cre para permitir que el tiempo de procesador de la mquina fuese compartido dinmicamente entre varios trabajos o aplicaciones activas. Aplicaciones estructuradas: Como ampliacin de los principios del diseo modular y la programacin estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes. Estructura del sistema operativo: Las mismas ventajas de estructuracin son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos estn implementados como un conjunto de procesos. Existen tres modelos de computadora en los que se pueden ejecutar procesos concurrentes: Multiprogramacin con un nico procesador, Multiprocesador y Multicomputadora(Es una mquina de memoria distribuida).
16
Sistemas Operativos
Tipos de procesos concurrentes. Proceso independiente: Es aquel que ejecuta sin requerir la ayuda o cooperacin de otros procesos. Un claro ejemplo de procesos independientes son los diferentes shells que se ejecutan de forma simultnea en un sistema. Procesos cooperantes: Son aquellos que estn diseados para trabajar conjuntamente en alguna actividad, para lo que deben ser capaces de comunicarse e interactuar entre ellos. En ambos tipos de procesos (independientes y cooperantes), puede producirse una serie de interacciones entre ellos. Elementos a gestionar y disear a causa de la concurrencia. 1. El sistema operativo debe ser capaz de seguir la pista de los distintos procesos activos. Esto lo hace por medio de PBCs (Bloque de Control de Procesos) 2. El sistema operativo debe asignar y quitar los distintos recursos a cada proceso activo. Entre estos recursos se incluyen: Tiempo de procesador: Es funcin de la planificacin. Memoria: La mayora de los sistemas operativos emplean esquemas de memoria virtual. Archivos: Dispositivos de E/S: 3. El sistema operativo debe proteger los datos y los recursos fsicos de cada proceso contra injerencias no intencionadas de otros procesos. 4. Los resultados de un proceso deben ser independientes de la velocidad relativa a la que se realiza la ejecucin con respecto a otros procesos concurrentes. 2.4.1Exclusin Mutua y Seccin Crtica Es posible clasificar las interacciones de los procesos en funcin del nivel de conocimiento que cada proceso tiene de la existencia de los dems: Los procesos no tienen conocimiento de los dems: Estos son procesos independientes que no estn pensados para operar juntos. Los procesos tienen un conocimiento indirecto de los otros: Los procesos no conocen necesariamente a los otros, pero comparten el acceso a algunos objetos. Los procesos tienen un conocimiento directo de los otros: Los procesos son capaces de comunicarse con los dems y estn diseados para trabajar conjuntamente en alguna actividad.
Elabor: MGTI Rosana Ayala Landeros 17
Sistemas Operativos
Competencia entre procesos por los recursos Los procesos concurrentes entran en conflicto cuando compiten por el uso del mismo recurso, y la ejecucin de un proceso puede influir en el comportamiento de los procesos que compiten y el sistema operativo le asignar el recurso a uno de ellos y el otro tendr que esperar. Por lo que el proceso que quede esperando, se retrasar, se bloqueara y en el peor de los casos nunca se terminar con xito. Es en estos procesos concurrentes, donde se plantean una serie de situaciones clsicas de comunicacin y sincronizacin, entre ellos el problema de la seccin crtica, uno de los problemas que con mayor frecuencia aparece cuando se ejecutan procesos concurrentes. Ejemplo: Se tiene un Sistema Operativo que debe asignar un identificador de proceso (PID) a dos procesos en un sistema multiprocesador. Cuando el SO realiza esta accin en dos procesadores de forma simultnea sin ningn tipo de control, se pueden producir errores, ya que se puede asignar el mismo PID a dos procesos distintos. Este problema se debe a que constituyen una seccin crtica que debe ejecutarse en forma atmica, es decir, de forma completa e indivisible y ningn otro proceso podr ejecutar dicho cdigo mientras el primero no haya acabado su seccin. Solucin a la seccin crtica Para resolver el problema de la seccin crtica es necesario utilizar algn mecanismo de sincronizacin que permita a los procesos cooperar entre ellos sin problemas. Este mecanismo debe proteger el cdigo de la seccin crtica y su funcionamiento bsico es: Cada proceso debe solicitar permiso para entrar en la seccin crtica, mediante algn fragmento de cdigo que se denomina de forma genrica entrada en la seccin crtica. Cuando un proceso sale de la seccin crtica debe indicarlo mediante otro fragmento de cdigo que se denomina salida de la seccin crtica. Este fragmento permitir que otros procesos entren a ejecutar el cdigo de la seccin crtica. Cualquier solucin que se utilice para resolver este problema debe cumplir los tres requisitos siguientes: Exclusin mutua, Progreso, Espera acotada. y
18
Sistemas Operativos
Exclusin mutua La exclusin mutua la podramos definir como una operacin de control que permite la coordinacin de procesos concurrentes, y que tiene la capacidad de prohibir a los dems procesos realizar una accin cuando un proceso haya obtenido el permiso. El control de la competencia involucra al sistema operativo, porque este asigna los recursos. Adems, los procesos deben ser capaces por s mismos, de expresar de algn modo los requisitos de exclusin mutua, como puede ser bloquear los recursos antes de usarlos. Hacer que se cumpla la exclusin mutua crea dos problemas de control adicionales. Interbloqueo. Si se tienen dos procesos P1 y P2 y dos recursos crticos, R1 y R2. Supngase que cada proceso necesita acceder a ambos recursos para llevar a cabo una parte de su funcin. En tal caso, es posible que se presente la siguiente situacin: el sistema operativo asigna R1 a P2 y R2 a P1. Cada proceso est esperando a uno de los dos recursos. Ninguno liberar el recurso que ya posee hasta que adquiera el otro y ejecute su seccin crtica. Ambos procesos estn nterbloqueados. Inanicin. Supngase que tres procesos, P1, P2 y P3, necesitan acceder peridicamente al recurso R. Considrese la situacin en la que P1 est en posesin del recurso y tanto P2 como P3 estn parados, esperando al recurso. Cuando P1 abandona su seccin crtica, tanto P2 como P3 deben poder acceder a R. Supngase que se le concede el acceso a P3 y que, antes de que termine su seccin crtica, P1 solicita acceso de nuevo. Si se le concede el acceso a P1 despus de que P3 termine y si P1 y P3 se conceden el acceso repetidamente el uno al otro, se puede negar definidamente a P2 el acceso al recurso. Requisitos para la exclusin mutua. El uso adecuado de la concurrencia entre procesos exige la capacidad de definir secciones crticas y hacer cumplir la exclusin mutua. Esto es fundamental para cualquier esquema de proceso concurrente. Cualquier servicio o capacidad que d soporte para la exclusin mutua debe cumplir los requisitos siguientes: 1. Debe cumplirse la exclusin mutua: Solo un proceso, de entre todos los que poseen secciones crticas por el mismo recurso u objeto compartido, debe tener permiso para entrar en ella en un instante dado. 2. Un proceso que se interrumpe en una seccin no crtica debe hacerlo sin estorbar a los otros procesos. 3. Un proceso no debe poder solicitar acceso a una seccin crtica para despus ser demorado indefinidamente; no puede permitirse el interbloqueo o la inanicin.
19
Sistemas Operativos
4. Cuando ningn proceso est en su seccin crtica, cualquier proceso que solicite entrar en la suya debe poder hacerlo sin dilacin. 5. No se pueden hacer suposiciones sobre la velocidad relativa de los procesos o su nmero. 6. Un proceso permanece en su seccin crtica solo por un tiempo finito. Soluciones a la exclusin mutua.-Hay varias formas de satisfacer los requisitos de exclusin mutua: Por Software, por Hardware y por mtodos que consisten en dar algn tipo de soporte al sistema operativo, entre estos mtodos se encuentran los semforos, monitores, paso de mensajes, etc. 2.4.2Sicnronizacin de procesos La sincronizacin es la transmisin y recepcin de seales que tiene por objeto llevar a cabo el trabajo de un grupo de procesos cooperativos. Es la coordinacin y cooperacin de un conjunto de procesos para asegurar la comparacin de recursos de cmputo. La sincronizacin entre procesos es necesaria para prevenir y/o corregir errores de debidos al acceso concurrente a recursos compartidos. La sincronizacin permite intercambiar seales de tiempo (ARRANQUE/PARADA) entre procesos cooperantes para garantizar las relaciones especficas de precedencia impuestas por el problema que se resuelve. Sin una sincronizacin adecuada entre procesos, la actualizacin de variables compartidas puede inducir a errores de tiempo relacionados con la concurrencia que son con frecuencia difciles de depurar. Para que los procesos puedan sincronizarse es necesario disponer de servicios que permitan bloquear o suspender bajo determinadas circunstancias la ejecucin de un proceso. Los principales mecanismos de sincronizacin que ofrecen los sistemas operativos son: Seales, Tuberas, Semforos, Mutex y variables condicionales , Paso de mensajes, Tuberas Una tubera es un mecanismo de comunicacin y sincronizacin. 2.4.2.1Mecanismos de Semforos Un semforo es una estructura diseada para sincronizar dos o ms threads o procesos, de modo que su ejecucin se realice de forma ordenada y sin conflictos entre ellos. Un semforo bsico est formada por una posicin de memoria y dos instrucciones, una para reservarlo y otra para liberarlo. A esto se le puede aadir una cola de threads para controlar su orden.
20
Sistemas Operativos
El porqu no se pueden usar directamente otras estructuras ms clsicas, como por ejemplo usar una variable comn para decidir si se puede o no acceder a un recurso, se debe a que estamos en un sistema multitarea: hacer esto implicara realizar una espera activa (un bucle, comprobando constantemente si la variable est o no a 0, y as saber si podemos seguir ejecutando o no). Por otro lado, puede ocurrir algo mucho peor: supongamos que un proceso comprueba la variable, y ve que el recurso est libre, por lo que procedera a cambiar dicha variable de valor y seguir. Pues bien, si justo despus de la comprobacin pero antes de que cambie el valor se conmuta de tarea y el nuevo proceso comprueba la variable, como todava no se ha actualizado, creer que el recurso est libre, e intentar tomarlo, haciendo que ambos programas fallen. Lo peor del caso es que se tratar de un error aleatorio: unas veces fallar y otras no. Para evitarlo, se idearon los semforos. Se empieza por inicializar la posicin de memoria a 1, a continuacin cada vez que un thread o un proceso quiera acceder a dicho recurso, har primero una peticin con la primera de las llamadas disponibles. Cuando el S.O. ejecuta esa llamada, comprueba el valor que hay en la posicin de memoria del semforo, y si es distinta de cero, se limita a restarle 1 y devolver el control al programa; sin embargo, si ya es cero, duerme al proceso que hizo la peticin y lo mete en la cola de procesos, en espera de que el semforo se ponga a un valor distinto de cero. Por ltimo, cuando el proceso ha terminado el acceso al recurso, usa la segunda llamada para liberar el semforo. Cuando el S.O. la ejecuta, comprueba si la cola del semforo est vaca, en cuyo caso se limita a incrementar el valor del semforo, mientras que si tiene algn proceso, lo despierta, de modo que vuelve a recibir ciclos de CPU y sigue su ejecucin. Si haba varios procesos en espera, se irn poniendo en marcha uno tras otro a medida que el anterior va liberando el semforo. Cuando termina el ltimo, el semforo se vuelve a poner a 1. Se trata, por tanto, del mismo proceso que seguiramos con la variable, pero con la ventaja de que es un mecanismo estandar para todos los procesos, y como es una operacion atmica, no surge el problema de que una conmutacin pueda producir errores aleatorios. Vemos que la primera vez que un proceso usa el semforo, este tiene valor 1, por lo que pasa a cero y el proceso puede acceder al recurso. Si durante ese tiempo otro proceso quiere acceder tambin, al usar el semforo, este tiene valor cero, por lo que el S.O. deja de darle ciclos de CPU. Cuando el primer proceso ha terminado, libera el recurso, con lo que el S.O. puede comprobar que el segundo proceso est esperando, por lo que le vuelve a dar ciclos. En este punto, el proceso sigue como si nunca hubiese sido detenido. Este tipo de semforos son los de Exclusin mtua, o Mutex. Otra utilizacin de los semforos es cuando uno o ms procesos tienen que esperar a que otro halla terminado una tarea. Para ello, el primer proceso borra el semforo y con una primitiva adecuada se pone a esperar a que el semforo se active (posted). Mientras, el segundo proceso va trabajando, y cuando termina lo que tiene que hacer, activa el semforo, con lo que el primer proceso vuelve a
Elabor: MGTI Rosana Ayala Landeros 21
Sistemas Operativos
ponerse en marcha, sin haber desperdiciado ciclos de CPU. Son semforos evento. Vemos que puede haber varios procesos esperando por el mismo semforo, y el thread que lo activa no tiene por qu saber cuantos son. Cobran su importancia cuando el evento no es producido por otro thread, sino por otras funciones del S.O., como las de sincronizacin, que veremos ms adelante. 2.4.2.2 Mecanismos de Monitores Es un tipo de procedimientos, variables y estructuras de datos que se agrupan en un tipo de modulo especial. Tienen una propiedad importante: solo un proceso puede estar activo en un monitor en un instante de tiempo. Los monitores proveen un nuevo tipo de variables de condicin con dos operaciones que operan sobre el (solo se usan dentro del procedimiento de el monitor). Wait(a): produce que el proceso que ejecuta la instruccin sea interrumpido y removido de la cola de ready hasta que otro proceso lo habilite ejecutando la instruccin signal( )con la misma variable de condicin. Signal(a): Habilita la ejecucin de algn proceso en espera por la ejecucin de la instruccin wait con la misma variable de condicin. 2.4.3 Interbloqueo DeadLock El interbloqueo puede definirse formalmente como sigue: Un conjunto de procesos est en interbloqueo si cada proceso del conjunto est esperando un evento que slo otro proceso del conjunto puede causar. Puesto que todos los procesos estn esperando, ninguno de ellos puede causar ninguno de los eventos que podran despertar a cualquiera de los dems miembros del conjunto, y todos los procesos continan esperando indefinidamente. Tipos de recursos Reutilizables .-Un recurso reutilizable es aqul que puede ser usado con seguridad por un proceso y no se agota con el uso. Los procesos obtienen unidades de recursos que liberan posteriormente para que otros procesos las reutilicen. Como ejemplos de recursos reutilizables se tienen los procesadores, canales de E/S, memoria principal y secundaria, dispositivos y estructuras de datos tales como archivos, bases de datos y semforos. Consumibles .-Un recurso consumible es aqul que puede ser creado (producido) y destruido (consumido). Normalmente, no hay lmite en el nmero de recursos consumibles de un tipo en particular. Un proceso productor que no est bloqueado puede liberar cualquier nmero de recursos consumibles. Cuando un proceso adquiere un recurso, ste deja de existir. Como ejemplos de recursos consumibles estn las interrupciones, seales, mensajes, e informacin en buffers de E/S.
Elabor: MGTI Rosana Ayala Landeros 22
Sistemas Operativos
Condiciones para el interbloqueo Coffman (1971) demostr que deben cumplirse cuatro condiciones para que haya un bloqueo mutuo: 1. Condicin de exclusin mutua. Cada recurso est asignado nicamente a un solo proceso o est disponible. 2. Condicin de retener y esperar. Los procesos que actualmente tienen recursos que les fueron otorgados previamente pueden solicitar nuevos recursos. 3. Condicin de no expropiacin. No es posible quitarle por la fuerza a un proceso los recursos que le fueron otorgados previamente. El proceso que los tiene debe liberarlos explcitamente. 4. Condicin de espera circular. Debe haber una cadena circular de dos o ms procesos, cada uno de los cuales est recurso retenido por el siguiente miembro de la cadena. esperando un
Deben estar presentes estas cuatro condiciones para que ocurra un bloqueo mutuo. Si una o ms de estas condiciones est ausente, no puede haber bloqueo mutuo. 2.4.3.1Prevencin del interbloqueo o Deadloock Los bloqueos mutuos pueden ser evitados si se sabe cierta informacin sobre los procesos antes de la asignacin de recursos. Para cada peticin de recursos, el sistema controla si satisfaciendo el pedido entra en un estado inseguro, donde puede producirse un bloqueo mutuo. De esta forma, el sistema satisface los pedidos de recursos solamente si se asegura que quedar en un estado seguro. Para que el sistema sea capaz de decidir si el siguiente estado ser seguro o inseguro, debe saber por adelantado y en cualquier momento el nmero y tipo de todos los recursos en existencia, disponibles y requeridos. Existen varios algoritmos para evitar bloqueos mutuos: Algoritmo del banquero, introducido por Dijkstra. Algoritmo de grafo de asignacin de recursos. Algoritmo de Seguridad. Algoritmo de solicitud de recursos. 2.4.3.2 Deteccin del interbloqueo Las estrategias de prevencin del interbloqueo son muy conservadoras; solucionan el problema del interbloqueo limitando el acceso a los recursos e imponiendo restricciones a los procesos. En el lado opuesto, las estrategias de deteccin del interbloqueo no limitan el acceso a los recursos ni restringen las acciones de los procesos. Con deteccin del interbloqueo, se concedern los recursos que los procesos necesiten siempre que sea posible. Peridicamente, el sistema operativo ejecuta un algoritmo que permite detectar la condicin de crculo vicioso de espera. Puede emplearse cualquier algoritmo de deteccin de ciclos en grafos dirigidos.
Elabor: MGTI Rosana Ayala Landeros 23
Sistemas Operativos
El control del interbloqueo puede llevarse a cabo tan frecuentemente como las solicitudes de recursos o con una frecuencia menor, dependiendo de la probabilidad de que se produzca el interbloqueo. La comprobacin en cada solicitud de recurso tiene dos ventajas: Conduce a una pronta deteccin y el algoritmo es relativamente simple, puesto que est basado en cambios incremntales del estado del sistema. Por otro lado, tal frecuencia de comprobaciones consume un tiempo de procesador considerable. Una vez detectado el interbloqueo, hace falta alguna estrategia de recuperacin. Las tcnicas siguientes son posibles enfoques, enumeradas en orden creciente de sofisticacin: 1. Abandonar todos los procesos bloqueados. Esta es, se crea o no, una de las soluciones ms comunes, si no la ms comn, de las adoptadas en un sistema operativo. 2. Retroceder cada proceso interbloqueado hasta algn punto de control definido previamente y volver a ejecutar todos los procesos. Es necesario que haya disponibles unos mecanismos de retroceso y reinicio en el sistema. El riesgo de esta solucin radica en que puede repetirse el interbloqueo original. Sin embargo, el no determinismo del procesamiento concurrente asegura, en general, que esto no va a pasar. 3. Abandonar sucesivamente los procesos bloqueados hasta que deje de haber interbloqueo. El orden en el que se seleccionan los procesos a abandonar seguir un criterio de mnimo coste. Despus de abandonar cada proceso, se debe ejecutar de nuevo el algoritmo de deteccin para ver si todava existe interbloqueo. 4. Apropiarse de recursos sucesivamente hasta que deje de haber interbloqueo. Como en el punto 3, se debe emplear una seleccin basada en coste y hay que ejecutar de nuevo el algoritmo de deteccin despus de cada apropiacin. Un proceso que pierde un recurso por apropiacin debe retroceder hasta un momento anterior a la adquisicin de ese recurso. Para los puntos 3 y 4, el criterio de seleccin podra ser uno de los siguientes, consistentes en escoger el proceso con: La menor cantidad de tiempo de procesador consumido hasta ahora. El menor nmero de lneas de salida producidas hasta ahora. El mayor tiempo restante estimado. El menor nmero total de recursos asignados hasta ahora. La prioridad ms baja. Algunas de estas cantidades son ms fciles de medir que otras. El tiempo restante estimado deja lugar a dudas, especialmente. Adems, aparte de las medidas de prioridad, no existe otra indicacin del coste para el usuario frente al coste para el sistema en conjunto.
Elabor: MGTI Rosana Ayala Landeros 24
Sistemas Operativos
2.4.3.3Recuperacin del interbloqueo Una vez que se ha detectado el interbloqueo se debe romper para que los recursos puedan finalizar su ejecucin y liberar as los recursos. Para ruptura de la espera se pueden realizar varias opciones. Las idnea sera suspendiendo algunos de los procesos bloqueados para tomar sus recursos y reanudar sus ejecucin una vez que se hubiera deshecho el interbloqueo. Esta solucin solo puede resultar factible en casos muy particulares; no se podra suspender a un proceso de escribir en una impresora para pasarla a otro proceso y reanudar despus la impresin, como tampoco se podra suspender indefinidamente un proceso de tiempo real. Las dos opciones que se suelen utilizar son: reiniciar uno o ms de los procesos bloqueados y expropiar los recursos de algunos de los procesos bloqueados. Para aplicar la primera de las opciones se deben tener en cuenta una serie de factores con el fin de elegir aquellos procesos cuya reiniciacin resulte menos traumtica. Entre los factores a tener en cuenta en cada proceso se tienen: 1. La prioridad del proceso. 2. El tiempo de procesamiento utilizado y el que le resta. 3. El tipoy nmero de recursos que posee. 4. El nmero de recursos que necesita para finalizar. 5. El nmero de otros procesos que se veran involucrados con su reiniciacin El procedimiento de la segunda opcin consiste en ir expropiando recursos de algunos procesos de forma sucesiva hasta que se consiga salir del interbloqueo. 2.5 Niveles, criterios y objetivos de la planificacin Se consideran tres niveles importantes de planificacin, los que se detallan a continuacin: Planificacin de alto nivel: Se encarga de llevar procesos de disco a memoria y viceversa. Seleccionando los trabajos que deben admitirse en el sistema. Tambin se denomina Planificacin de trabajos. Determina a qu trabajos se les va a permitir competir activamente por los recursos del sistema, lo cual se denomina Planificacin de admisin. Administrar todos los recursos del sistema excepto el CPU. Mantiene las colas de procesos bloqueados y suspendidos.
Elabor: MGTI Rosana Ayala Landeros 25
Sistemas Operativos
Planificacin de nivel intermedio: En algunos casos, en especial cuando el sistema est sobrecargado, el planificador de nivel medio encuentra ventajoso retirar trabajos activos de la memoria para reducir el grado de multiprogramacin, y por lo tanto, permitir que los trabajos se completen ms aprisa. Este subadministrador controla los trabajos que se intercambian hacia fuera y de regreso. Determina a qu procesos se les puede permitir competir por la cpu. Efecta suspensiones y activaciones (reanudaciones) de procesos. Debe ayudar a alcanzar ciertas metas en el rendimiento total del sistema. Equilibrar la administracin de trabajos en el sistema con la asignacin del CPU a dichos procesos. Nivelar la carga del sistema (procesos activos y pasivos).
Planificacin de bajo nivel: Se encarga de pasar de un proceso a otro en memoria principal. Determinando a cul proceso listo se le asignar el CPU cuando ste se encuentra disponible. Determina a qu proceso listo se le asigna la cpu cuando esta queda disponible y asigna la CPU al mismo, es decir que despacha la CPU al proceso. Criterios - Equidad.- Garantizar que cada proceso obtiene su proporcin justa de la CPU. - Eficacia.- Mantener ocupada la CPU el ciento por ciento del tiempo. - Tiempo de respuesta.- Minimizar el tiempo de respuesta para los usuarios interactivos. - Tiempo de regreso.- Minimizar el tiempo que deben esperar los usuarios por lotes (batch) para obtener sus resultados. - Rendimiento.- Maximizar el nmero de tareas procesadas por hora. 2.6 Tcnicas de administracin del planificador Las disciplinas de planificacin pueden ser: Expropiativas y No expropiativas
26
Sistemas Operativos
Se denomina planificador al software del sistema operativo encargado de asignar los recursos de un sistema entre los procesos que los solicitan. Siempre que haya que tomar una decisin, el planificador debe decidir cul de los procesos que compiten por la posesin de un determinado recursos lo recibir. Los algoritmos tienen distintas propiedades segn los criterios en los que se basen para su construccin, lo cual se refleja en qu tipo de procesos se puede ver favorecido frente a otro en la disputa del procesador. Antes de realizar la eleccin de un algoritmo se debe considerar las propiedades de estos frente al criterio de diseo elegido. Algunos de estos son: a) Eficacia: Se expresa como un porcentaje del tiempo medio de utilizacin. Aunque puede parecer lgico intentar mantener este parmetro prximo al 100%, con un valor tan elevado otros aspectos importante de medida del comportamiento del sistema pueden verse deteriorados, como por ejemplo el tiempo medio de espera. b) Rendimiento: Es una medida del nmero de procesos completados por unidad de tiempo. Por ejemplo 10 procesos por segundo. c) Tiempo de retorno o regreso: Es el intervalo de tiempo que transcurre desde que un proceso se crea o presenta hasta que completa por el sistema. d) Tiempo de espera: Es el tiempo que el proceso espera hasta que se le concede el procesador. Puede resultar una medida mas adecuada de la eficiencia del sistema, ya que se elimina de la media el tiempo que tarda en ejecutarse el mismo. e) Tiempo de respuesta a un evento: Se denomina as el intervalo de tiempo que transcurre desde que se seala un evento hasta que se ejecuta la primera instruccin de la rutina de servicio de dicho evento. El criterio de seleccin de un algoritmo se suele basar en la maximizacin o minimizacin de una funcin de los parmetros anteriores. 2.6.1 Tcnica FIFO: First In First Out Mecanismo de scheduling en el cual los procesos se ordenan en una fila, en la cual se ejecutan cada uno de los procesos hasta su finalizacin secuencialmente. Es tremendamente ineficiente. FIFO es el acrnimo ingls de First In, First Out (primero en entrar, primero en salir). Es un mtodo utilizado en estructuras de datos, contabilidad de costes y teora de colas. Guarda analoga con las personas que esperan en una cola y van siendo atendidas en el orden en que llegaron, es decir, que la primera persona que entra es la primera persona que sale.
Elabor: MGTI Rosana Ayala Landeros 27
Sistemas Operativos
Si se implementa mediante vectores el nmero mximo de elementos que puede almacenar est limitado al que se haya establecido en el cdigo del programa antes de la compilacin (cola esttica) o durante su ejecucin (cola pseudoesttica). Sea cual sea la opcin elegida, el nmero de elementos que podr almacenar la cola quedar determinado durante toda la ejecucin del programa. El sistema debe reservar el tamao de memoria necesario para acoger todos los datos, sea cual sea el nmero de elementos usados, lo que en algunas aplicaciones supone un despilfarro de la memoria. Sin embargo, si se usan punteros, el nmero mximo no est declarado sino que se hace un uso dinmico de la memoria, adaptndose al tamao necesario en cada momento en funcin de los elementos que hay en la cola. Uno de los usos de las colas es la exploracin en anchura de un rbol de bsqueda. Otro uso tpico de las colas, es la gestin de descargas de una aplicacin p2p. Los FIFOs se usan comnmente en circuitos de electrnica para almacenaje y hacer control de flujo. Hablando de hardware formar un FIFO consiste bsicamente en una conjunto de punteros de lectura/escritura, almacenamiento y lgica de control. El almacenamiento puede ser SRAM, flip-flops, o cualquier otra forma adecuada de almacenamiento. Para FIFOs de un tamao importante se usa usualmente una SRAM de doble puerto, donde uno de los puertos se usa para la escritura y el otro para la lectura. Un FIFO sincrnico maneja el mismo reloj (clock) tanto para las lecturas como para las escrituras. Una asincrnico es aquel que utiliza diferentes relojes una para lectura y otro para la escritura. Cuando se habla de FIFOs asincrnicos se introduce el tema de la metaestabilidad.. 2.6.2 Tcnica SJF: Short Job First Al igual que en el algoritmo FIFO las rfagas se ejecutan sin interrupcin, por tanto, slo es til para entornos batch. Su caracterstica es que cuando se activa el planificador, ste elige la rfaga de menor duracin. Es decir, introduce una nocin de prioridad entre rfagas. Hay que recordar que en los entornos batch se pueden hacer estimaciones del tiempo de ejecucin de los procesos. La ventaja que presenta este algoritmo sobre el algoritmo FIFO es que minimiza el tiempo de finalizacin promedio. 2.6.3 Tcnica RR Round Robin Cada proceso tiene asignado un intervalo de tiempo de ejecucin, llamado cuantum. Si el proceso agota su cuantum de tiempo, se elige a otro proceso para ocupar la CPU. Si el proceso se bloquea o termina antes de agotar su cuantum tambin se alterna el uso de la CPU. El round robin es muy fcil de implementar. Todo lo que necesita el planificador es mantener una lista de los procesos listos.
Elabor: MGTI Rosana Ayala Landeros 28
Sistemas Operativos
2.6.4 Tcnica Queves Multileves Un algoritmo de planificacin multinivel particiona la cola de listos en colas separadas. Se asignan en forma permanente los trabajos a una cola, generalmente, basndose en alguna propiedad del mismo (requerimientos de memoria, tipo de trabajo), teniendo cada cola su propio algoritmo. Por ejemplo, la cola interactiva podra planificarse usando RR y la batch FIFO. Ningn trabajo en una cola de baja prioridad puede ejecutarse si las colas con mayor prioridad no estn vacas. Si algn trabajo entra en una cola de mayor prioridad, el trabajo de otras colas es interrumpido. 2.6.5 Tcnica Multilevs Feedback Queves En colas multinivel realimentadas los trabajos pueden moverse dentro de distintas colas. La idea es separar procesos con distintos tipos de interrupciones de la CPU. Si un trabajo consume mucho tiempo de CPU, ser movido a una cola con menor prioridad. En forma similar, si un proceso espera demasiado tiempo en una cola de baja prioridad, lo moveremos a una cola de mayor prioridad. En general un planificador de este tipo esta definido por los siguientes parmetros: 1. El nmero de colas. 2. El tipo de algoritmo de planificacin de cada cola. 3. Un mtodo de cuando mover un trabajo a una cola de mayor prioridad. 4. Un mtodo de cuando mover un trabajo a una cola de menor prioridad. 5. Un mtodo de a qu cola se enviar un trabajo cuando necesita servicio.
29
Sistemas Operativos
PROGRAMAS DE USUARIO
DRIVERS
30
Sistemas Operativos
La memoria principal tambin llamada memoria central, es una unidad dividida en celdas que se identifican mediante una direccin. Est formada por bloques de circuitos integrados o chips capaces de almacenar, retener o "memorizar" informacin digital, a dichos bloques tiene acceso el microprocesador de la computadora. La Memoria se comunica con el microprocesador de la CPU mediante el bus de direcciones. El ancho de este bus determina la capacidad que posea el microprocesador para el direccionamiento de direcciones en memoria. Para que un proceso pueda ejecutarse debe estar ubicado en la memoria principal del ordenador. Una parte del sistema operativo se va a encargar de gestionar la memoria principal, de forma que los procesos puedan residir en la memoria sin conflictos. La gestin de la memoria implica varias tareas, una de ellas es llevar un registro de qu zonas estn libres (es decir, no estn siendo utilizadas por ningn proceso), y qu zonas estn ocupadas por qu procesos.
ACTIVIDAD DE APRENDIZAJE 3.1: Caracteriza los diferentes tipos de buses de sistema. ACTIVIDAD DE APRENDIZAJE 3.2: Elabora un cuadro comparativo sobre diversos tipos de memorias.
Elabor: MGTI Rosana Ayala Landeros 31
Sistemas Operativos
Otra tarea importante surge en sistemas en los que no todos los procesos, o no todo el cdigo y datos de un proceso, se ubican en la memoria principal. En estos sistemas, a menudo se debe pasar parte, o la totalidad del cdigo y datos de un proceso, de memoria a disco, o viceversa; siendo el sistema operativo responsable de esta tarea. De esta forma se libera al usuario de realizar estas transferencias de informacin, de las cuales no es consciente. Dos temas importantes en la gestin de la memoria son el de la carga de los programas de disco a memoria y el de la proteccin. Desde el momento en que varios procesos deben compartir la memoria del ordenador surge el problema de la proteccin. En general, se pretende que un proceso no pueda modificar las direcciones de memoria en las que no reside. Esto es as ya que en las direcciones de memoria donde no est ubicado el proceso pueden residir otros procesos, o cdigo o estructuras de datos del S.O. Si un proceso puede modificar indiscriminadamente la memoria, podra, por ejemplo, cambiar el valor de una direccin de memoria donde residiera una variable de otro proceso, con la consecuente ejecucin incorrecta del proceso propietario de la variable. Algunos sistemas ni siquiera permiten que un proceso pueda leer las direcciones de memoria en las que no reside, con esto se consigue privacidad sobre el cdigo y datos de los procesos. Existen varias formas de gestionar la memoria. Por lo comn, la forma de gestin depender de la mquina virtual que se quiera proporcionar y del hardware subyacente. Con independencia de la forma de gestin es necesario decidir qu estrategias se deben utilizar para obtener un rendimiento ptimo. Las estrategias de administracin de la memoria determinan el comportamiento de una organizacin de memoria determinada cuando se siguen diferentes polticas. Cundo se toma un nuevo programa para colocarlo en la memoria? Se toma el programa cuando el sistema lo necesita, o se intenta anticiparse a las peticiones del sistema? En qu lugar de la memoria principal se coloca el siguiente programa por ejecutar? Se colocan los programas lo ms cerca posible unos de otros en los espacios disponibles de la memoria principal para reducir al mnimo el desperdicio de espacio, o se colocan lo ms rpido posible para reducir el tiempo empleado en tomar la decisin? Los sistemas actuales usan en su mayor parte el almacenamiento virtual. ACTIVIDAD DE APRENDIZAJE 3.3: Enlista tipos de mquina virtuales (Caracterizar 3 de las ms usadas)
32
Sistemas Operativos
ACTIVIDAD DE APRENDIZAJE 3.4: Descargar una mquina virtual evaluando su funcionamiento 3.1Filosofa y administracin de la Memoria Filosofa: La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un tamao definido. Cada localidad de almacenamiento tiene asignada una direccin que la identifica. Una de las funciones bsicas que debe implementar un SO es la Administracin de la Memoria para tener un control sobre los lugares donde estn almacenados los procesos y datos que actualmente se estn utilizando. Los programas y datos necesitan estar en el almacenamiento principal para ser ejecutados o para poder hacer referencia de ellos Las estrategias de administracin del almacenamiento determinan el comportamiento de la administracin de memoria cuando se siguen ciertas polticas. Por ejemplo, Unix permite procesos mltiples y en un proceso puede generar otro fcilmente. La planificacin del procesador usa un algoritmo basado en prioridades. La administracin de memoria es un algoritmo de regiones variables con intercambios. Inicialmente los algoritmos realizados se eligieron por sencillez, no por velocidad ni complejidad. El desarrollo inicial se hizo bajo un espacio muy pequeo de memoria. Los recursos de memoria totales eran insuficientes para justificar algoritmos complejos, por lo que UNIX intercambiaba el contenido en memoria de los procesos. 3.2 Memoria Real La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos. Administracin de la memoria con mapas de bits .- Este tipo de administracin divide la memoria en unidades de asignacin, las cuales pueden ser tan pequeas como unas cuantas palabras o tan grandes como varios kilobytes. A cada unidad de asignacin le corresponde un bit en el mapa de bits, el cual toma el valor de 0 si la unidad est libre y 1 si est ocupada (o viceversa). Un mapa de bits es una forma sencilla para llevar un registro de las palabras de la memoria en una cantidad fija de memoria, puesto que el tamao del mapa slo depende del tamao de la memoria y el tamao de la unidad de asignacin. Administracin de la memoria con listas ligadas.-Otra forma de mantener un registro de la memoria es mediante una lista ligada de los segmentos de memoria asignados o libres, en donde un segmento puede ser un proceso o un hueco entre dos procesos.
Elabor: MGTI Rosana Ayala Landeros 33
Sistemas Operativos
Asignacin del hueco de intercambio.-En algunos sistemas, cuando el proceso se encuentra en la memoria, no hay un hueco en el disco asignado a l. Cuando deba intercambiarse, se deber asignar un hueco para l en el rea de intercambio del disco. Los algoritmos para la administracin del hueco de intercambio son los mismos que se utilizan para la administracin de la memoria principal. En otros sistemas, al caerse un proceso, se le asigna un hueco de intercambio en el disco. Cuando el proceso sea intercambiado, siempre pasar al hueco asignado, en vez de ir a otro lugar cada vez. Cuando el proceso concluya, se libera el hueco de intercambio. La nica diferencia es que el hueco en disco necesario para un proceso debe representarse como un nmero entero de bloques del disco. Por ejemplo, un proceso de 1350 K debe utilizar 1400K (usando bloques de 100K). 3.2.1 Administracin de Almacenamiento En la administracin del almacenamiento, pareciera que los discos nunca tienen espacio suficiente, que se sobrecargan con actividad de E/S o que fallan repentinamente. La gran mayora de los dispositivos de almacenamiento masivo utilizan alguna forma de media de rotacin y soportan el acceso aleatorio de los datos en esa media. Esto significa que los componentes siguientes estn presentes en alguna forma dentro de casi todos los dispositivos de almacenamiento masivo: Plato del disco Dispositivo de lectura/escritura de datos Brazos de acceso 3.2.2 Jerarqua de Memorias Se conoce como jerarqua de memoria a la organizacin piramidal de la memoria en niveles, que tienen los ordenadores. Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al coste de una memoria de baja velocidad, basndose en el principio de cercana de referencias. Los puntos bsicos relacionados con la memoria pueden resumirse en: Cantidad, Velocidad y Coste La velocidad ptima para la memoria es la velocidad a la que el procesador puede trabajar, de modo que no haya tiempos de espera entre clculo y clculo, utilizados para traer operandos o guardar resultados. En suma, el costo de la memoria no debe ser excesivo, para que sea factible construir un equipo accesible.
34
Sistemas Operativos
Como puede esperarse los tres factores compiten entre s, por lo que hay que encontrar un equilibrio. En los sistemas con varios niveles de memoria hay muchas transferencias constantes de programas y datos entre los distintos niveles. Estas transferencias consumen recursos del sistema, como tiempo de la CPU, que de otro modo podran utilizarse provechosamente.
Los niveles que componen la jerarqua de memoria habitualmente son: Nivel 0: Registros Nivel 1: Memoria cach Nivel 2: Memoria principal Nivel 3: Disco duro (con el mecanismo de memoria virtual) Nivel 4: Redes(Actualmente se considera un nivel mas de la jerarqua de memorias) 3.2.3 Estrategias de Administracin de Memoria Estrategias de Administracin del Almacenamiento.-Estn dirigidas a la obtencin del mejor uso posible del recurso del almacenamiento principal. Se dividen en las siguientes categoras:
35
Sistemas Operativos
Estrategias de bsqueda: o Estrategias de bsqueda por demanda. o Estrategias de bsqueda anticipada. Estrategias de colocacin. Estrategias de reposicin.
Las estrategias de bsqueda estn relacionadas con el hecho de cundo obtener el siguiente fragmento de programa o de datos para su insercin en la memoria principal. En la bsqueda por demanda el siguiente fragmento de programa o de datos se carga al almacenamiento principal cuando algn programa en ejecucin lo referencia. Se considera que la bsqueda anticipada puede producir un mejor rendimiento del sistema. Las estrategias de colocacin estn relacionadas con la determinacin del lugar de la memoria donde se colocar (cargar) un programa nuevo. Las estrategias de reposicin estn relacionadas con la determinacin de qu fragmento de programa o de datos desplazar para dar lugar a los programas nuevos. 3.2.4 Asignacin Contigua VS No contigua En la asignacin contigua cada programa ocupa un bloque contiguo y sencillo de localizaciones de almacenamiento. En la asignacin no contigua un programa se divide en varios bloques o segmentos que pueden almacenarse en direcciones que no tienen que ser necesariamente adyacentes, por lo que es ms compleja pero ms eficiente que la asignacin continua. 3.2.5. Multiprogramacin con particin fija y variable e intercambio de almacenamiento Se denomina multiprogramacin a la tcnica que permite que dos o ms procesos ocupen la misma unidad de memoria principal y que sean ejecutados al mismo tiempo (seudo-paralelismo, en una nica CPU slo puede haber un proceso a la vez) en la unidad central de proceso o CPU.
36
Sistemas Operativos
Ventajas: Varios procesos en ejecucin. Permite el servicio interactivo simultneo a varios usuarios de manera eficiente. Aprovecha los tiempos que los procesos pasan esperando a que se completen sus operaciones de E/S Aumenta el uso de la CPU. Las direcciones de los procesos son relativas, el programador no se preocupa por saber en dnde estar el proceso dado que el sistema operativo es el que se encarga de convertir la direccin lgica en fsica. Un proceso entra a ejecutarse y llega al momento en que tiene que hacer espera por un dispositivo de entrada y/o salida por mencionar un ejemplo, el CPU estar ocioso mientras espera que el proceso pueda usar el dispositivo para as finalmente ejecutarse. Los sistemas de multiprogramacin evitan eso ya que durante ese tiempo de esperar pasan a ejecutar otro proceso teniendo as al computador ocupado. Particiones fijas.- Consiste en dividir la memoria en varias particiones de tamao fijo. Cada particin puede contener exactamente un proceso. El nivel de multiprogramacin est limitado por el nmero de particiones. Cuando una particin est libre, se selecciona un proceso de la cola de entrada y se carga en la particin libre; cuando un proceso termina, la particin est disponible para otro. El sistema operativo conserva una tabla que indica qu partes de la memoria estn disponibles y cuales estn ocupadas.
Particin 4
Particin 3
37
Sistemas Operativos
Particiones Variables * Cada trabajo ocupa tanto espacio como necesita. * El tamao del trabajo a ubicar no puede ser mayor que el almacenamiento principal disponible * Se disminuye parcial o totalmente el desperdicio de memoria * Aparecen: Condensacin y Compactacin
Particin 4
El nivel de multiprogramacin est limitado por el nmero de particiones. Cuando una particin est libre, se selecciona un proceso de la cola de entrada y se carga en la particin libre; cuando un proceso termina, la particin est disponible para otro. El sistema operativo conserva una tabla que indica qu partes de la memoria estn disponibles y cuales estn ocupadas.
38
Sistemas Operativos
3.3 Organizacin de memoria virtual La memoria virtual es una tcnica de administracin de la memoria real que permite al sistema operativo brindarle al software de usuario y a s mismo un espacio de direcciones mayor que la memoria real o fsica. Esta separacin permite proporcionar a los programadores una gran memoria virtual cuando slo se dispone de una memoria fsica ms pequea. Muchas aplicaciones requieren el acceso a ms informacin (cdigo y datos) que la que se puede mantener en memoria fsica. Esto es as sobre todo cuando el sistema operativo permite mltiples procesos y aplicaciones ejecutndose simultneamente. Una solucin al problema de necesitar mayor cantidad de memoria de la que se posee consiste en que las aplicaciones mantengan parte de su informacin en disco, movindola a la memoria principal cuando sea necesario. Hay varias formas de hacer esto. Una opcin es que la aplicacin misma sea responsable de decidir qu informacin ser guardada en cada sitio (segmentacin), y de traerla y llevarla. La desventaja de esto, adems de la dificultad en el diseo e implementacin del programa, es que es muy probable que los intereses sobre la memoria de dos o varios programas generen conflictos entre s: cada programador podra realizar su diseo teniendo en cuenta que es el nico programa ejecutndose en el sistema. La alternativa es usar memoria virtual, donde la combinacin entre hardware especial y el sistema operativo hace uso de la memoria principal y la secundaria para hacer parecer que el ordenador tiene mucha ms memoria principal (RAM) que la que realmente posee. Este mtodo es invisible a los procesos. La cantidad de memoria mxima que se puede hacer ver que hay tiene que ver con las caractersticas del procesador. Por ejemplo, en un sistema de 32 bits, el mximo es 232, lo que da 4096 Megabytes (4 Gigabytes). Todo esto hace el trabajo del programador de aplicaciones mucho ms fcil, al poder ignorar completamente la necesidad de mover datos entre los distintos espacios de memoria. Aunque la memoria virtual podra estar implementada por el software del sistema operativo, en la prctica casi siempre se usa una combinacin de hardware y software, dado el esfuerzo extra que implicara para el procesador. 3.4Administracin de Memoria virtual Las diferentes organizaciones de almacenamiento virtual generalmente implementadas son [7, Deitel]:
Sistemas Operativos
3.4.1 Paginacin En sistemas operativos de computadoras, los sistemas de paginacin de memoria dividen los programas en pequeas partes o pginas. Del mismo modo, la memoria es dividida en trozos del mismo tamao que las pginas llamados marcos de pgina. De esta forma, la cantidad de memoria desperdiciada por un proceso es el final de su ltima pgina, lo que minimiza la fragmentacin interna y evita la externa. En un momento cualquiera, la memoria se encuentra ocupada con pginas de diferentes procesos, mientras que algunos marcos estn disponibles para su uso. El sistema operativo mantiene una lista de estos ltimos marcos, y una tabla por cada proceso, donde consta en qu marco se encuentra cada pgina del proceso. De esta forma, las pginas de un proceso pueden no estar contiguamente ubicadas en memoria, y pueden intercalarse con las pginas de otros procesos. En la tabla de pginas de un proceso, se encuentra la ubicacin del marco que contiene a cada una de sus pginas. Las direcciones lgicas ahora se forman como un nmero de pgina y de un desplazamiento dentro de esa pgina (conocido comnmente como offset). El nmero de pgina es usado como un ndice dentro de la tabla de pginas, y una vez obtenida la direccin del marco de memoria, se utiliza el desplazamiento para componer la direccin real o direccin fsica. Este proceso se realiza en una parte del computador especficamente diseada para esta tarea, es decir, es un proceso hardware y no software. De esta forma, cuando un proceso es cargado en memoria, se cargan todas sus pginas en marcos libres y se completa su tabla de pginas. El mecanismo de paginacin cumple dos funciones: Llevar a cabo la transformacin de una direccin virtual a fsica, o sea, la determinacin de la pgina a la que corresponde una determinada direccin de un programa, as como del marco, si lo hay, que ocupa esta pgina. Transferir, cuando haga falta, pginas de la memoria secundaria a la memoria principal, y de la memoria principal a la memoria secundaria cuando ya no sean necesarias.
40
Sistemas Operativos
Figura3.2 Transformacin de direcciones para llevar a cabo la paginacin As pues, cada vez que la CPU genere una direccin de memoria sta es transformada por una unidad hardware, de forma que en el bus del sistema se introduce la direccin fsica correspondiente. Es importante observar que la paginacin es en s misma una forma de reubicacin dinmica. Cada direccin lgica es transformada en alguna direccin fsica por el hardware de paginacin. Observe tambin que si el tamao de pgina (como es lo usual) es una potencia de dos, el hardware no precisa realizar ninguna divisin, simplemente sabe que los ltimos n bits, si el tamao de pgina es de 2n , representan el desplazamiento, y los primeros bits la pgina. Cada proceso debe tener su propia tabla de pginas, y su direccin de comienzo en la memoria principal forma parte de la porcin del PCB utilizada para realizar un cambio de proceso. Como el nmero de marcos (cantidad de memoria real) asignados a un proceso ser normalmente menor que el nmero de pginas que ste utiliza, es muy posible que una direccin del programa haga referencia a una pgina que no se encuentre en aquel momento en la memoria principal. En este caso el elemento correspondiente de la tabla de pginas estar vaco, provocando el hardware una interrupcin de "fallo de pgina" si se intenta acceder a ella. Esta interrupcin provoca que el control pase al software (al sistema operativo), para que ste inicie la transferencia de la pgina que falta desde la memoria secundaria a la memoria principal, y actualice de acuerdo con ello la
Elabor: MGTI Rosana Ayala Landeros 41
Sistemas Operativos
tabla de pginas. El proceso en ejecucin se har no listo hasta que se haya completado esta transferencia. La posicin de las pginas en la memoria secundaria puede guardarse en una tabla separada o en la misma tabla de pginas. En este ltimo caso, es necesario un "bit de presencia" en cada elemento de la tabla de pginas, para indicar si la pgina se encuentra presente o no en la memoria principal, y si el campo de direcciones debe interpretarse como una direccin de marco, o bien como una direccin de la memoria secundaria. Si no existe ningn marco vaco en el momento en que ocurre un fallo de pgina, hay que guardar en la memoria secundaria alguna otra pgina con el fin de hacer sitio a la nueva. La eleccin de la pgina que habr que sacar es el resultado de un algoritmo de reemplazo de pgina. Por el momento, vamos a destacar tan slo el hecho de que la informacin que necesita el algoritmo de cambio de pgina, puede estar contenida en algunos bits adicionales que se aaden a cada elemento de la tabla de pginas. Quizs habra que aclarar, que toda la operacin de transformaciones de direcciones la lleva a cabo el hardware, excepto en el caso en que haya que traer una pgina de la memoria secundaria. En este caso, la aplicacin del algoritmo de cambio de pgina, as como la actualizacin de la tabla de pginas, las lleva a cabo el software. La anterior discusin proporciona una visin general de cmo funciona la paginacin. En la prctica hay que hacer una serie de modificaciones para llegar a una implementacin viable. Una de ellas es que la transformacin de direccin virtual a fsica debe ser rpida. 3.4.2 Segmentacin Es un esquema de administracin de la memoria que soporta la visin que el usuario tiene de la misma. Un espacio de direcciones lgicas es una coleccin de segmentos. Cada segmento tiene un nombre y una longitud. Las direcciones especifican tanto el nombre del segmento como el desplazamiento dentro del segmento. Por lo tanto, el usuario especifica cada direccin mediante dos cantidades: un nombre de segmento y un desplazamiento.
42
Sistemas Operativos
Figura 3.3 visin del usuario de la memoria Cul es la visin de la memoria que tiene el usuario ? Concibe el usuario la memoria como una tabla lineal de palabras, algunas de las cuales contienen instrucciones mientras que otras contienen datos, o bien se prefiere alguna otra visin de la memoria ? Hay un acuerdo general en que el usuario o programador de un sistema no piensa en la memoria como una tabla lineal de palabras. Ms bien prefieren concebirla como una coleccin de segmentos de longitud variable, no necesariamente ordenados (fig. 3.3). Por simplicidad de implementacin, los segmentos estn numerados y se referencian por un nmero de segmento en lugar de por un nombre. Normalmente el programa de usuario se ensambla (o compila), y el ensamblador (o el compilador) construye automticamente segmentos que reflejan el programa de entrada. Al igual que la tabla de pginas, la tabla de segmentos puede situarse bien en registros rpidos o bien en memoria. Una tabla de segmentos mantenida en registros puede ser referenciada muy rpidamente: la adicin a la base y la comparacin con el lmite pueden realizarse simultneamente para ahorrar tiempo.
43
Sistemas Operativos
Comparticin y proteccin Una ventaja importante de la segmentacin es la asociacin de la proteccin con los segmentos. Puesto que los segmentos representan una porcin del programa definida semnticamente, es probable que todas las entradas en el segmento se utilicen de la misma manera. De ah que tengamos algunos segmentos que son instrucciones, mientras que otros son datos. En una arquitectura moderna las instrucciones son no automodificables, de modo que los segmentos de instrucciones pueden definirse como de slo lectura o slo ejecucin. El hardware verificar los bits de proteccin asociados a cada entrada en la tabla de segmentos para impedir accesos ilegales a memoria, tales como tentativas de escribir en un segmento de slo lectura o de utilizar un segmento de slo ejecucin como datos. Situando una tabla en un segmento propio, el hardware verificar automticamente que toda indexacin en la tabla es legal, y no sobrepasa los lmites de la misma. As, muchos errores frecuentes en programas sern detectados por hardware antes de que puedan ocasionar un dao serio. Otra ventaja de la segmentacin est relacionada con la comparticin de cdigo y datos. Los segmentos se comparten cuando las entradas en las tablas de segmentos de dos procesos diferentes apuntan a las mismas posiciones fsicas. La comparticin se produce a nivel de segmento. Por lo tanto, cualquier informacin puede compartirse definindole un segmento. Pueden compartirse varios segmentos, de modo que es posible compartir un programa compuesto de ms de un segmento. El ordenador GE 645 utilizado con Multics tena 4 registros que contenan los nmeros de segmento del segmento actual, del segmento de pila, del segmento de enlace y de un segmento de datos. Los programas pocas veces hacen referencia directamente a un nmero de segmento, sino siempre indirectamente a travs de estos cuatro registros de segmento. Esto permite que el cdigo pueda compartirse libremente.
Fragmentacin El sistema operativo tiene que encontrar y asignar memoria para todos los segmentos de un programa de usuario. Esta situacin es similar a la paginacin, excepto en el hecho de que los segmentos son de longitud variable; las pginas son todas del mismo tamao. Por tanto, como en el caso de las particiones dinmicas, la asignacin de memoria es un problema de asignacin dinmica de almacenamiento, resuelto probablemente mediante un algoritmo del mejor o primer ajuste.
44
Sistemas Operativos
La segmentacin puede ocasionar entonces fragmentacin externa, cuando todos los bloques libres de memoria son demasiado pequeos para acomodar a un segmento. En este caso, el proceso puede simplemente verse obligado a esperar hasta que haya disponible ms memoria (o al menos huecos ms grandes), o puede utilizarse la compactacin para crear huecos mayores. Puesto que la segmentacin es por naturaleza un algoritmo de reubicacin dinmica, podemos compactar la memoria siempre que queramos. 3.4.3 Estrategias de Administracin de Memoria Virtual Es un mtodo mediante el cual, un sistema operativo simula tener ms memoria principal que la que existe fsicamente. Para implementar la memoria virtual se utiliza un medio de almacenamiento secundario de alta velocidad de acceso, generalmente en disco duro de la maquina. Un sistema de memoria virtual se implementa utilizando paginacin como mtodo de administracin de memoria bsica y algn mecanismo de intercambio (para descargar paginas de la memoria principal hacia el disco duro y para cargar esas pginas de nuevo a la memoria). La memoria virtual es una tcnica para proporcionar la simulacin de un espacio de memoria mucho mayor que la memoria fsica de una maquina. Esta ilusin permite que los programas se hagan sin tener en cuenta el tamao exacto de la memoria fsica. La ilusin de la memoria virtual esta soportada por el mecanismo de traduccin de memoria, junto con una gran cantidad de almacenamiento rpido en disco duro. As en cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma que una pequea parte del, est en memoria real y el resto almacenado en el disco, y puede ser referenciado fcilmente. Estrategias del mejor ajuste: Un trabajo que entre en el sistema se colocar en el espacio vaci del almacenamiento principal en el que quepa mejor y que deje la menor cantidad posible de espacio sin utilizar. Estrategias del primer ajuste: Un trabajo que entre en el sistema se colocara en el almacenamiento principal en el primer vaci disponibles lo bastante grande para contenerlo. Estrategias del peor ajuste: Consiste en colocar un programa en el almacenamiento primario en el espacio vaci donde peor se ajusta es decir en el espacio ms grande posible. Estrategias de obtencin: Determina cuando se debe transferir una pgina o un segmento de almacenamiento secundario al primario. Las estrategias de obtencin por demanda esperan a que un proceso en ejecucin haga referencia a una pgina o a un segmento antes de traer la pgina o el segmento de almacenamiento primario. Los esquemas de obtencin anticipada intentan determinar por adelantado a cuales paginas o segmentos har referencia un proceso. Estrategias de colocacin: Determinan en que lugar del almacenamiento primario se debe colocar una pagina o un segmento entrante. Una pgina entrante se puede colocar en cualquier marco de pgina disponible.
Elabor: MGTI Rosana Ayala Landeros 45
Sistemas Operativos
Estrategias de reemplazo: Sirven para decidir cual pgina o segmento se debe desplazar para dar espacio a una pgina o segmento entrante cuando esta completamente ocupado el almacenamiento primario. La memoria virtual ha llegado a ser un componente esencial de la mayora de los sistemas operativos actuales. Y como en un instante dado, en la memoria slo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener ms procesos en la memoria. Es ms, se ahorra tiempo, porque los fragmentos que no se usan no se cargan ni se descargan de la memoria. Sin embargo, el sistema operativo debe saber cmo gestionar este esquema. La memoria virtual tambin simplifica la carga del programa para su ejecucin llamada reubicacin, este procedimiento permite que el mismo programa se ejecute en cualquier posicin de la memoria fsica
46
Sistemas Operativos
ACTIVIDAD DE APRENDIZAJE 4.1: Explicar el funcionamiento de 3 dispositivos de E/S con tecnologa reciente.
47
Sistemas Operativos
Universal Serial Bus (USB) Es un conjunto de especificaciones de conectividad desarrollada por Intel en colaboracin con lderes de la industria. velocidad, una fcil conexin de perifricos a un PC. Cuando se conecta se configura de forma automtica.
Permite alta
Proporciona un estndar de la industria, fue lanzado originalmente en 1995 a los 12 Mbps. Hoy en da, USB funciona a 480 Mbps Adems de alto rendimiento y la ubicuidad, USB goza de un fuerte reconocimiento de marca del consumidor y una reputacin de facilidad de uso. Hi-Speed USB 2.0, proporciona una mayor mejora en el rendimiento hasta 40 veces ms rpido que USB 1.0, con una velocidad de datos de diseo de hasta 480 megabits por segundo (Mbps). Adems, USB On-The-Go (OTG), un complemento de la especificacin USB 2.0, fue creado en 2002. USB OTG define un dispositivo de doble funcin, que puede actuar como un host o perifrica, y puede conectarse a un PC u otros dispositivos porttiles a travs del mismo conector. Wireless USB es la nueva extensin inalmbrica a USB que combina la velocidad y la seguridad de la tecnologa de cable con la facilidad de uso de la tecnologa inalmbrica. USB inalmbrico utiliza el comn WiMedia Ultra-ancha (UWB) plataforma de radio desarrollada por la Alianza WiMedia. El siguiente avance en la tecnologa es superSpeed USB (3.0) que entregar ms de 10 veces la velocidad especfica de hoy de alta velocidad las conexiones USB. USB 3.0 ser crear un estndar compatible con versiones anteriores con la misma facilidad de uso y capacidades de Plug and Play de tecnologas USB anteriores. Dirigida a ms de aumentar el rendimiento 10 veces a velocidades de datos 5 Gbps, la tecnologa va a sacar de la misma arquitectura de conexin de cable USB Las principales funciones relacionadas con e/s son: Enviar comandos a los dispositivos. Detectar las interrupciones. Controlar los errores. Proporcionar una interfaz entre los dispositivos y el resto del sistema: o Debe ser sencilla y fcil de usar. o Debe ser la misma (preferentemente) para todos los dispositivos (independencia del dispositivo). El cdigo de e / s representa una fraccin significativa del S. O. El uso inapropiado de los dispositivos de e / s frecuentemente genera ineficiencias del sistema, lo que afecta la performance global.
Elabor: MGTI Rosana Ayala Landeros 48
Sistemas Operativos
4.1 Dispositivos y manejadores de dispositivos Todos los dispositivos de E/S se pueden agrupar en tres formas generales: Dispositivos de interfaz de usuario. Dispositivos de almacenamiento. Dispositivos de comunicaciones.
El sistema de E/S es la parte del sistema operativo que se ocupa de facilitar el manejo de los dispositivos de E/S ofreciendo una visin lgica simplificada de los mismos que pueda ser usada por otros componentes del sistema operativo (como el sistema de archivos) o incluso por el usuario. Mediante esta visin lgica se ofrece a los usuarios un mecanismo de abstraccin que oculta todos los detalles relacionados con los dispositivos fsicos, as como del funcionamiento real de los mismos. El sistema operativo debe controlar el funcionamiento de todos los dispositivos de E/S para alcanzar los siguientes objetivos: Facilitar el manejo de los dispositivos de E/S. Para ello debe ofrecer una interfaz entre los dispositivos y el resto del sistema que sea sencilla y fcil de utilizar. Optimizar la E/S del sistema, Proporcionando mecanismos de incremento de prestaciones donde sea necesario. Proporcionar dispositivos virtuales Que permitan conectar cualquier tipo de dispositivo fsico sin que sea necesario remodelar el sistema de E/S del sistema operativo. Permitir la conexin de dispositivos nuevos de E/S Solventando de forma automtica su instalacin usando mecanismos del tipo plug & play. En el modelo de conexin fsica de un perifrico se distinguen dos elementos: Perifricos o dispositivos de E/S. Elementos que se conectan a la unidad central de proceso a travs de las unidades de entrada/salida. Son el componente mecnico que se conecta a la computadora. Las Controladoras de dispositivos o unidades de E/S. Se encargan de hacer la transferencia de informacin entre la memoria principal y los perifricos. Son el componente electrnico a travs del cual se conecta el dispositivo de E/S. Tienen una conexin al bus de la computadora y otra para el dispositivo (generalmente mediante cables internos o externos).
49
Sistemas Operativos
Para empezar una operacin de E/S, la CPU tiene que escribir sobre los registros los datos de la operacin a travs de una direccin de E/S o de memoria asignada nicamente al controlador. Segn se haga de una u otra forma, se distingue entre dispositivos conectados por puertos o proyectados en memoria. El modelo de dispositivos por puertos es clsico en las arquitecturas de Intel. En ellas, cuando se instala un dispositivo, a su controlador se le asigna un puerto de E/S, una interrupcin hardware y un vector de interrupcin. Para efectuar una operacin de E/S la CPU ejecuta operaciones por puerto con la direccin de puerto del dispositivo y con parmetros para indicar qu registro se quiere manipular. Todas las operaciones de entrada/salida (pantalla grfica, impresoras, ratn, discos, etc.) se realizan usando esas dos instrucciones en lenguaje mquina con los parmetros adecuados. El problema de este tipo de direccionamiento es que exige conocer las direcciones de E/S y programar las instrucciones especiales de E/S, lo que es significativamente distinto del modelo de memoria de la computadora. El modelo de direccionamiento de E/S es el modelo proyectado en memoria. Este modelo, tpico de las arquitecturas de Motorola, asigna a cada dispositivo de E/S un rango de direcciones de memoria a travs de las cuales se escribe sobre los registros del controlador. En este modelo no hay instrucciones especficas de E/S, sino que las operaciones se llevan a cabo mediante instrucciones mquina de manejo de memoria, lo que permite gestionar un mapa nico de direcciones de memoria. Sin embargo, para no tener conflictos con otros accesos a memoria y para optimizar las operaciones, se reserva una zona de memoria fsica para asignar las direcciones de E/S. Los dispositivos de bloque .- Los dispositivos de almacenamiento secundario y terciario manejan la informacin en unidades de tamao fijo, denominadas bloques, por lo que a su vez se denominan dispositivos de bloques. Estos bloques se pueden direccionar de manera independiente, lo que permite leer o escribir un bloque con independencia de los dems. Los dispositivos de bloque lo son porque el hardware fuerza la existencia de accesos de un tamao determinado. Un disco, por ejemplo, se divide en sectores de 512 bytes o de 1 KB, siendo un sector la unidad mnima de transferencia que el controlador del disco puede manejar. Los dispositivos de caracteres, como los terminales, impresoras, tarjetas de red, mdems, etctera, no almacenan informacin en bloques de tamao fijo. Gestionan flujos de caracteres de forma lineal y sin ningn tipo de estructura de bloque. Un teclado es un buen ejemplo de estos dispositivos. Un controlador de dispositivo (llamado normalmente controlador o driver) es un programa informtico que permite al sistema operativo interactuar con un perifrico, haciendo una abstraccin del hardware y proporcionando una interfaz -posiblemente estandarizada- para
Elabor: MGTI Rosana Ayala Landeros 50
Sistemas Operativos
usarlo. Se puede esquematizar como un manual de instrucciones que le indica cmo debe controlar y comunicarse con un dispositivo en particular. Por tanto, es una pieza esencial, sin la cual no se podra usar el hardware. Existen tantos tipos de controladores como tipos de perifricos, y es frecuente encontrar ms de un controlador posible para el mismo dispositivo, cada uno ofreciendo un nivel distinto de funcionalidades. Los controladores son muy variados, casi tanto como los dispositivos de E/S. Muchos de ellos, como los de disco, pueden controlar mltiples dispositivos. Otros, como los de canales de E/S, incluyen su propio procesamiento y bus para controlar la E/S por programa y evitar interrupciones en la UCP de la computadora. De cualquier forma, en los ltimos aos ha existido un esfuerzo importante de estandarizacin de los dispositivos, lo que permite usar un mismo controlador para dispositivos de distintos fabricantes. Un buen ejemplo lo constituyen los dispositivos SCSI (Small Computers System Interface Sistema de Interfaz para Pequeas Computadoras) cuyos controladores ofrecen una interfaz comn independientemente de que se trate de un disco, una cinta, un CD-ROM, etc. Otro ejemplo son los controladores IDE (Integrated Drive Electronics), que suelen usarse para conectar los discos en todas las computadoras personales. En cualquier caso, y sea como sea el controlador, su misin es convertir los datos del formato interno del dispositivo a uno externo que se ofrezca a travs de una interfaz de programacin bien definida. Los controladores de dispositivo se suelen agrupar en alguna de las siguientes categoras o clases: Adaptadores de audio (tarjetas de sonido). Dispositivos de comunicacin (infrarrojos, mdems, etc). Dispositivos de visualizacin; pantallas (displays). Teclados. Ratn (mouse y otros sealadores grficos). Dispositivos multimedia. Dispositivos de Red. Impresoras. Almacenamiento
51
Sistemas Operativos
4.2 Manejadores de Dispositivos (device driver) El controlador es el componente ms importante desde el punto de vista del sistema operativo, ya que constituye la interfaz del dispositivo con el bus de la computadora y es el componente que se ve desde la CPU. El SO generalmente trabaja con el controlador y no con el dispositivo. Los modelos ms frecuentes de comunicacin entre la CPU y los controladores son: Para la mayora de las micro y mini computadoras: Modelo de bus del sistema. Para la mayora de los mainframes: Modelo de varios buses y computadoras especializadas en e/s llamadas canales de e/s.
El S. O. realiza la E/S al escribir comandos en los registros de los controladores; los parmetros de los comandos tambin se cargan en los registros de los controladores. Al aceptar el comando, la CPU puede dejar al controlador y dedicarse a otro trabajo. Al terminar el comando, el controlador provoca una interrupcin para permitir que el SO: -Obtenga el control de la CPU -Verifique los resultados de la operacin. La CPU obtiene los resultados y el estado del dispositivo al leer uno o ms bytes de informacin de los registros del controlador. Su programacin se lleva a cabo mediante una interfaz de muy bajo nivel que proporciona acceso a una serie de registros del controlador, incluidos en el mapa de E/S de la computadora, que se pueden acceder mediante instrucciones de mquina de E/S. Hay tres registros importantes en casi todos los controladores: registro de datos, estado y control. El registro de datos sirve para el intercambio de datos. En l ir el controlador cargando los datos ledos y de l ir extrayendo los datos para su escritura en el perifrico. Un bit del registro de estado sirve para indicar que el controlador puede transferir una palabra. En las operaciones de lectura esto significa que ha cargado en el registro de datos un nuevo valor, mientras que en las de escritura significa que necesita un nuevo dato. Otros bits de este registro sirven para que el controlador indique los problemas que ha encontrado en la ejecucin de la ltima operacin de E/S. El registro de control sirve para indicarle al controlador las operaciones que ha de realizar. Los distintos bits de este registro indican distintas acciones que ha de realizar el perifrico. Para empezar una operacin de E/S, la CPU tiene que escribir sobre los registros
Elabor: MGTI Rosana Ayala Landeros 52
Sistemas Operativos
anteriores los datos de la operacin a travs de una direccin de E/S o de memoria asignada nicamente al controlador. Este modelo vale tanto para los terminales o la pantalla como para los discos. LAS CARACTERSTICAS DEL CONTROLADOR Las caractersticas son muy importantes, ya que definen el aspecto del perifrico para el sistema operativo. Atendiendo a las caractersticas del hardware de los dispositivos, se pueden observar los siguientes aspectos distintivos: Direccin de E/S. En general hay dos modelos de direccionamiento de E/S, los que usan puertos y los que proyectan los registros en memoria. Unidad de transferencia. Los dispositivos suelen usar unidades de transferencia de tamao fijo. Hay dos modelos clsicos de dispositivos: de caracteres y de bloques. Interaccin computadora-controlador. La computadora tiene que interaccionar con la computadora para realizar las operaciones de E/S y saber cundo terminan. Un controlador de dispositivo o unidad de E/S se encarga de controlar uno o ms dispositivos del mismo tipo y de intercambiar informacin entre ellos y la memoria principal o unidad central de proceso de la computadora. El controlador debe encargarse adems de sincronizar la velocidad del procesador con la del perifrico y de detectar los posibles errores que se produzcan en el acceso a los perifricos. En el caso de un controlador de disco, ste debe encargarse de convertir un flujo de bits procedente del disco a un bloque de bytes detectando y corrigiendo, si es posible, los errores que se produzcan en esta transferencia. Una vez obtenido el bloque y comprobado que se encuentra libre de errores, deber encargarse de transferirlo a memoria principal. La informacin entre los controladores de dispositivo y la unidad central de proceso o memoria principal se puede transferir mediante un programa que ejecuta continuamente y lee o escribe los datos del (al) controlador. Con esta tcnica, que se denomina E/S programada, la transferencia de informacin entre un perifrico y el procesador se realiza mediante la ejecucin de una instruccin de E/S. Con esta tcnica, es el procesador el responsable de extraer o enviar datos entre el procesador y el controlador de dispositivo, lo que provoca que el procesador tenga que esperar mientras se realiza la transferencia entre el perifrico y el controlador. Dado que los perifricos son sensiblemente ms lentos que el procesador, ste deber esperar una gran cantidad de tiempo hasta que se complete la operacin de E/S. La tcnica es dedicar una unida de procesamiento especial para la E/S. La forma de hacerlo es muestrear continuamente los registros de estado de los controladores para ver si estn disponibles y, en ese caso, leer o escribir los registros.
53
Sistemas Operativos
Imagine un canal de E/S al que hay conectados mltiples buses de E/S que, a su vez, tienen mltiples dispositivos de E/S. Si la CPU quiere escribir en uno de ellos, debe mirar su registro de estado hasta que los bits indiquen que no est ocupado. Cuando esto ocurra, escribir un bloque en los registros del controlador y esperar hasta que los bits de estado indiquen que est disponible. Imagine que quiere leer de otro controlador, deber esperar a que los bits de estado le indiquen que est disponible, programar la operacin y esperar a que se indique que los datos estn disponibles. Evidentemente, incluso aunque la CPU est controlando varios dispositivos de E/S, siempre existe prdida de ciclos debido a la existencia de las esperas. 4.3. Concepto de interrupcin Seal que capta la atencin de la CPU y que usualmente se genera cuando se requiere una entrada/salida. Por ejemplo, cuando se presiona una tecla o se desplaza el mouse, se generan interrupciones de hardware. Las interrupciones de software son generadas por un programa que requiere entrada o salida de disco. Un temporizador interno puede interrumpir continuamente el computador varias veces por segundo, para mantener actualizada la hora o con el propsito de trabajar en tiempo compartido. Cuando ocurre una interrupcin, el control se transfiere al sistema operativo, el cual determina la accin a emprender. Todas las interrupciones tienen prioridades; a mayor prioridad, ms rpidamente ser atendida la interrupcin. 4.3.1 Estructura de datos para manejo de Dispositivos Los procesos de usuario emiten peticiones de entrada/salida al sistema operativo. Cuando un proceso solicita una operacin de E/S, el sistema operativo prepara dicha operacin y bloquea al proceso hasta que se recibe una interrupcin del controlador del dispositivo indicando que la operacin est completa. Las peticiones se procesan de forma estructurada en las siguientes capas: Manejadores de interrupcin. Manejadores de dispositivos o drivers. Software de EIS independiente de los dispositivos. Este software est formado por la parte de alto nivel de los manejadores, el gestor de cache, el gestor de bloques y el servidor de archivos. Interfaz del sistema operativo. Llamadas al sistema que usan las aplicaciones de usuario.
54
Sistemas Operativos
El sistema operativo estructura el software de gestin de E/S de esta forma para ofrecer a los usuarios una serie de servicios de E/S independientes de los dispositivos. Esta independencia implica que deben emplearse los mismos servicios y operaciones de E/S para leer datos de un disquete, de un disco duro, de un CD-ROM o de un teclado. Manejadores de interrupcin Los manejadores de interrupcin se encargan de tratar las interrupciones que generan los controladores de dispositivos una vez que stos estn listos para la transferencia de datos o bien han ledo o escrito los datos de memoria principal en caso de acceso directo a memoria. Para tratar dicha interrupcin se ejecuta el correspondiente manejador de interrupcin cuyo efecto es el de salvar los registros, comunicar el evento al manejador del dispositivo y restaurar la ejecucin de un proceso (que no tiene por qu ser el interrumpido). Los manejadores de interrupcin suelen hacer algo ms que comunicar el evento al manejador de dispositivo. Cuando una interrupcin ocurre muy frecuentemente, caso del reloj, o cuando la cantidad de informacin a transferir es muy pequea, caso del teclado, sera muy costoso comunicar siempre el evento al manejador de dispositivo asociado. En estos casos, el propio manejador de interrupcin registra la ocurrencia del evento, bien mediante el incremento de una variable global para el reloj o la acumulacin de caracteres en un buffer del teclado. La notificacin al manejador se hace nicamente cada cierto nmero de ocurrencias del evento, en el caso del reloj, o activando una bandera que indica que hay datos en el buffer del teclado. Manejadores de dispositivos Cada dispositivo de E/S, o cada clase de dispositivos, tiene un manejador asociado en el sistema operativo. Dicho manejador incluye: cdigo independiente del dispositivo para proporcionar al nivel superior del sistema operativo una interfaz de alto nivel y el cdigo dependiente del dispositivo necesario para programar el controlador del dispositivo a travs de sus registros y datos. La tarea de un manejador de dispositivo es aceptar peticiones, de la parte del cdigo de E/S independiente del dispositivo, traducir dichas peticiones a trminos que entienda el controlador, enviar al mismo las rdenes adecuadas en la secuencia correcta y esperar a que se cumplan. Todos los manejadores tienen una lista de peticiones pendientes por dispositivo donde se encolan las peticiones que llegan de niveles superiores. El manejador explora la lista de peticiones, extrae una peticin pendiente y ordena su ejecucin. La poltica de extraccin de peticiones de la lista es dependiente de manejador y puede ser FIFO. Una vez enviada la peticin al controlador, el manejador se bloquea o no, dependiendo de la velocidad del dispositivo.
Elabor: MGTI Rosana Ayala Landeros 55
Sistemas Operativos
Despus de recibir el fin de operacin, controla la existencia de errores y devuelve al nivel superior el estado de terminacin de la operacin. Si tiene operaciones pendientes en la cola de peticiones, atiende a la siguiente, en caso de que le toque ejecutar despus de la operacin de E/S. En caso contrario se bloquea. Software de E/S independiente del dispositivo La mayor parte del sistema de E/S es software independiente de dispositivo. Este nivel incluye el sistema de archivos y el de gestin de red, el gestor de bloques, la cache de bloques y una parte de los manejadores de dispositivo. La principal funcin de esta capa de software es ejecutar las funciones de E/S que son comunes a todos los dispositivos a travs de una interfaz uniforme. Internamente, en este nivel se proporciona acceso a nivel de bloques o caracteres, almacenamiento intermedio, gestin de los dispositivos, planificacin de la E/S y control de errores. El tamao de acceso a nivel de bloques se hace usando tamaos de bloque de acceso comunes para todo un sistema de archivos, lo que permite ocultar que cada dispositivo puede tener distinto tamao de sector y distinta geometra. Estos detalles quedan ocultos por la capa de software in dependiente de dispositivo que ofrece una interfaz sobre la base de bloques lgicos del sistema de archivos. Lo mismo ocurre con los dispositivos de caracteres, algunos de los cuales trabajan con un carcter cada vez, como el teclado, mientras otros trabajan con flujos de caracteres, como el modem o las redes. Para optimizar la E/S y para armonizar las peticiones de usuario, que pueden ser de cualquier tamao, con los bloques que maneja el sistema de archivos, el software de E/S proporciona almacenamiento intermedio en memoria del sistema operativo. Esta facilidad se usa para tres cosas: Optimizar la E/S evitando accesos a los dispositivos. Ocultar las diferencias de velocidad con que cada dispositivo y usuario manejan los datos. Facilitar la implementacin de la semntica de comparticin, al existir una copia nica de los datos en memoria. El sistema de E/S mantiene buffers en distintos componentes. Por ejemplo, en la parte del manejador del teclado independiente del dispositivo existe un buffer para almacenar los caracteres que teclea el usuario hasta que se pueden entregar a los niveles superiores. Si se usa una lnea serie para leer datos de un sistema remoto y almacenarlos en el disco, se puede usar un buffer para guardar
56
Sistemas Operativos
temporalmente los datos hasta que tengan una cierta entidad y sea rentable escribirlos a disco. Si se est leyendo o escribiendo un archivo, se guardan copias de los bloques en memoria para no tener que acceder al disco si se vuelven a leer. La gestin de los dispositivos agrupa a su vez tres servicios: nombrado, proteccin y control de acceso. El nombrado permite traducir los nombres de usuario a identificadores del sistema. Por ejemplo, en UNIX, cada dispositivo tiene un nombre (p. ej.: /dev/cdrom) que se traduce en un nico identificador interno (o nodo-i), que a su vez se traduce en un nico nmero de dispositivo principal (clase de dispositivo) y secundario (elemento de la clase). Cada dispositivo tiene asociada una informacin de proteccin (en UNIX mediante 3 bits para dueo, grupo y mundo) y este nivel de software asegura que los requisitos de proteccin se cumplen. Adems proporciona control de acceso para que un dispositivo dedicado, como una impresora, sea accedido por un nico usuario cada vez. Una de las funciones principales del sistema de E/S es la planificacin de la E/S de los distintos componentes. Para ello se usan colas de peticiones para cada clase de dispositivo, de las que se extraen las peticiones de cada dispositivo en particular. Cada una de estas colas se ordena siguiendo una poltica de planificacin, que puede ser distinta en cada nivel. Imagine el caso de LINUX, donde existe una cola global de peticiones de E/S, ordenadas en orden FIFO, para los discos instalados. Cuando un manejador de disco queda libre, busca la cola global para ver si hay peticiones para l y, si existen, las traslada a su cola de peticiones particular ordenadas segn la poltica SCAN, por ejemplo. Este mecanismo permite optimizar la E/S al conceder a cada mecanismo la importancia que, ajuicio de los diseadores del sistema operativo, se merece. En el caso de Windows, por ejemplo, el ratn es el dispositivo de E/S ms prioritario del sistema. La razn que hay detrs de esta poltica es conseguir un sistema muy interactivo. En otros sistemas, como UNIX, las operaciones de disco son ms prioritarias que las del ratn para poder desbloquear rpidamente a los procesos que esperan por la E/S. Sea cual sea el criterio de planificacin, todos los sistemas de E/S planifican las actividades en varios lugares. Por ltimo, este nivel proporciona gestin de errores para aquellos casos que el manejador de dispositivo no puede solucionar. En general, todos los sistemas operativos incluyen alguna forma de control de errores internos y de notificacin al exterior en caso de que esos errores no se puedan resolver. Imagine, por ejemplo, que una aplicacin quiere leer de un dispositivo que no existe. El sistema de E/S ver que el dispositivo no est y lo notificar a los niveles superiores hasta que el error llegue a la aplicacin. Sin embargo, es importante resaltar que
57
Sistemas Operativos
los sistemas operativos son cada vez ms robustos y cada vez incluyen ms control y reparacin de errores, para lo cual usan mtodos de paridad, checksums, cdigos correctores de error, etc. Adems, la informacin que proporcionan cuando hay un error es cada vez mayor. 4.4 Operaciones de Entrada y Salida Tanto en la E/S programada como la basada en interrupciones, la UCP debe encargarse de la transferencia de datos una vez que sabe que hay datos disponibles en el controlador. Una mejora importante para incrementar la concurrencia entre la UCP y la E/S consiste en que el controlador del dispositivo se pueda encargar de efectuar la transferencia de datos, liberando de este trabajo a la UCP, e interrumpir a la UCP slo cuando haya terminado la operacin completa de EIS. Esta tcnica se denomina acceso directo a memoria (DMA, Direct Memory Access). Cuando se utiliza acceso directo a memoria, es el controlador el que se encarga directamente de transferir los datos entre el perifrico y la memoria principal, sin requerir intervencin alguna por parte del procesador. Esta tcnica funciona de la siguiente manera: cuando el procesador desea que se imprima un bloque de datos, enva una orden al controlador indicndole la siguiente informacin:
Tipo de operacin: lectura o escritura. Perifrico involucrado en la operacin. La direccin de memoria desde la que se va a leer o a la que va a escribir directamente con el controlador de dispositivo (direccin). El nmero de bytes a transferir (contador).
Donde el campo Operacin corresponde al cdigo de operacin de las instrucciones de las mquina normales. Especifica la operacin que debe realizar la CCW. La unidad de control decodifica este campo y enva las seales adecuadas de control al dispositivo. Existen varias operaciones, las ms importantes son las siguientes: Lectura, Escritura, Control, Bifurcacin y Flags Una vez emitida la orden, el procesador contina realizando otro trabajo sin necesidad de transferir el bloque de datos. Es el propio controlador el que se encarga de transferir el bloque de datos del perifrico a memoria. La transferencia se realiza palabra a palabra. Cuando el controlador ha completado la transferencia, genera una interrupcin que activa la rutina de tratamiento correspondiente, de tal manera que se sepa que la operacin ha concluido.
Elabor: MGTI Rosana Ayala Landeros 58
Sistemas Operativos
Utilizando acceso directo a memoria el procesador nicamente se ve involucrado al inicio y al final de la transferencia. Por tanto, cuando el sistema operativo despierta al proceso que pidi la E/S, no tiene que copiar el bloque a memoria porque ya est all. El DMA requiere una etapa de almacenamiento intermedio en el controlador del dispositivo para armonizar la velocidad del dispositivo de EIS con la copia de los datos en memoria principal. La razn para este almacenamiento intermedio reside en que una vez que el dispositivo empieza la transferencia de datos, sta debe hacerse a velocidad constante para evitar transferencias parciales y nuevas esperas de posicionamiento del dispositivo sobre los datos (latencia). Una vez transferidos los datos a la memoria del controlador, ste los copia en memoria principal aprovechando el ancho de banda libre del bus. Los pasos a seguir en una operacin de E/S con DMA son los siguientes: 1. Programacin de la operacin de E/S. Se indica al controlador la operacin, los datos a transferir y la direccin de memoria sobre la que se efectuar la operacin. 2. El controlador contesta aceptando la peticin de E/S. 3. El controlador le ordena al dispositivo que lea (para operacin de lectura) una cierta cantidad de datos desde una posicin determinada del dispositivo a su memoria interna. 7.3. 4. Cuando los datos estn listos, el controlador los copia a la posicin de memoria que tiene en sus registros, incrementa dicha posicin de memoria y decrementa el contador de datos pendientes de transferir. 5. Los pasos 3 y 4 se repiten hasta que no quedan ms datos por leer. 6. Cuando el registro de contador est a cero, el controlador interrumpe a la UCP para in dicar que la operacin de DMA ha terminado.
59
Sistemas Operativos
Los sistemas de archivos pueden ser clasificados en tres categoras: sistemas de archivo de disco, sistemas de archivos de red y sistemas de archivos de propsito especial. Ejemplos de sistemas de archivos son:
Tipos de sistemas de archivos admitidos FAT16 FAT16 FAT16, FAT32 FAT16, FAT32
60
Sistemas Operativos
Windows NT4 Windows 2000/XP Linux MacOS OS/2 SGI IRIX FreeBSD, OpenBSD Sun Solaris IBM AIX
5.2Nocin de archivo real y virtual
FAT, NTFS (versin 4) FAT, FAT16, FAT32, NTFS (versiones 4 y 5) Ext2, Ext3,Ext4, ReiserFS, Linux Swap (FAT16, FAT32, NTFS) HFS (Sistema de Archivos Jerrquico), MFS (Sistemas de Archivos Macintosh) HPFS (Sistema de Archivos de Alto Rendimiento) XFS UFS (Sistema de Archivos Unix) UFS (Sistema de Archivos Unix) JFS (Sistema Diario de Archivos)
El trmino archivo relacionado directamente con ejemplos tales como los archivos de texto que se pueden generar con cualquier procesador de texto. Una caracterstica de este tipo de archivos es que a mayor texto que almacena el archivo, mayor es el espacio en disco que consume dicho archivo. Por ejemplo, una lnea corta de texto ocupa menos espacio en disco que esa misma lnea copiada cien veces. Sin embargo al hablar de archivos virtuales las cosas son diferentes, pues este tipo de archivos no consumen espacio en el disco duro, sino que se almacenan en la memoria voltil, es decir la aquel tipo de memoria cuya informacin se pierde al interrumpirse el flujo de corriente elctrica, esto es, la memoria RAM. ACTIVIDAD DE APRENDIZAJE 5.2 Caracterizar los sistemas de archivos usados en Windows (NTFS) y en el Linux (ext4) 5.3 Componentes de un Sistema de archivos Los componentes del sistema de archivos y de programacin permiten interactuar con los recursos del sistema de archivos y de directorio y provocar eventos en intervalos programados. Las instancias del componente File System Watcher permiten inspeccionar cambios en los directorios y archivos y reaccionar cuando se producen. El componente Timer permite configurar programaciones simples de produccin de eventos y ejecutar el procesamiento asociado. TIPOS DE SISTEMAS DE ARCHIVOS Sistemas de archivos de disco.-Un sistema de archivo de disco est diseado para el almacenamiento de archivos en una unidad de disco, que puede estar conectada directa o indirectamente a la computadora.
Elabor: MGTI Rosana Ayala Landeros 61
Sistemas Operativos
Otros sistemas de archivos HFS el Sistema de Archivo de Mac. Se usa en todo tipo de medio de almacenamiento, desde CD's y DVD's hasta el HD. HFS+ es la variante moderna de HFS con soporte para una mayor capacidad de almacenamiento, unicode y mucho ms. Sistemas de archivos de red.- Un sistema de archivos de red es el que accede a sus archivos a travs de una red. Dentro de esta clasificacin encontramos dos tipos de sistemas de archivos: los sistemas de archivos distribuidos (no proporcionan E/S en paralelo) y los sistemas de archivos paralelos (proporcionan una E/S de datos en paralelo). Sistemas de archivos de propsito especial.-Los sistemas de archivos de propsito especial son bsicamente aquellos que no caen en ninguna de las dos clasificaciones anteriores. 5.4 Organizacin Fsica y Lgica de los Archivos En esta parte vamos a usar el trmino organizacin de archivos para referirnos a la estructura lgica de los registros determinada por la manera en que se accede a ellos. La organizacin fsica del archivo en almacenamiento secundario depende de la estrategia de agrupacin y de la estrategia de asignacin de archivos. Para seleccionar una organizacin de archivos hay diversos criterios que son importantes: Fiabilidad para asegurar la confianza de los datos Acceso Rpido para recuperar la informacin Fcil actualizacin Economa de almacenamiento Mantenimiento simple Fiabilidad para asegurar la confianza de los datos La prioridad relativa de estos criterios va a depender de las aplicaciones que va a usar el archivo. El nmero de alternativas de organizacin de archivos que se han implementado o propuesto es inmanejable, incluso para un libro dedicado a los sistemas de archivos. La mayor parte de las estructuras empleadas en los sistemas reales se encuadran en una de estas categoras o puede implementarse como una combinacin de estas: Archivos secuenciales, Archivos Secuenciales indexados, Archivos indexados Archivos directos o de dispersin.
62
Sistemas Operativos
5.5 Mecanismos de acceso Mtodo de Acceso Secuencial: La forma ms comn de estructura de archivo es el archivo secuencial. En este tipo de archivo, un formato fijo es usado para los registros. Todos los registros tienen el mismo tamao, constan del mismo nmero de campos de tamao fijo en un orden particular. Como se conocen la longitud y la posicin de cada campo, solamente los valores de los campos se necesitan almacenarse; el nombre del campo y longitud de cada campo son atributos de la estructura de archivos. Un campo particular, generalmente el primero de cada registro se conoce como el campo clave. El campo clave identifica unvocamente al registro. As, los valores de la clave para registros diferentes son siempre diferentes. Los archivos secuenciales son tpicamente utilizados en aplicaciones de proceso de lotes Y son ptimos para dichas aplicaciones si se procesan todos los registros. Para las aplicaciones interactivas que incluyen peticione s o actualizaciones de registros individuales, los archivos secuenciales ofrecen un rendimiento pobre. Normalmente un archivo secuencial se almacena en bloques, en un orden secuencial simple de los registros. La organizacin fsica del archivo en una cinta o disco se corresponde exactamente con la ubicacin lgica del archivo. En este caso, el procedimiento para ubicar los nuevos registros en un archivo de pila separado, llamado archivo de registro (log file) o archivo de transacciones. Peridicamente, se realiza una actualizacin por lotes que mezcla el archivo de registro con el archivo maestro para producir un nuevo archivo en secuencia correcta de claves. Mtodo de Acceso Secuencial Indexado: Un mtodo popular para superar las desventajas de los archivos secuenciales es el del archivo secuencias indexado. El archivo secuencial indexado mantiene las caractersticas bsicas de los archivos secuenciales: los registros estn organizados en una secuencia basada en un campo. Dos caractersticas se aaden: un ndice del archivo para soportar los accesos aleatorios y un archivo de desbordamiento ( overflow ). El ndice provee una capacidad de bsqueda para llegar rpidamente a las proximidades de un registro deseado. El archivo de desbordamiento (overflow) es similar al archivo de registro usado en un archivo secuencial, pero esta integrado de forma que los registros del archivo de desbordamiento se ubican en la direccin de un puntero desde si registr precedente. En la estructura secuencial indexada ms simple, se usa un solo nivel de indexacin. El ndice, en este caso, es un archivo secuencial simple. Cada registro del archivo ndice tiene dos campos: un campo clave, que es el mismo que el campo clave del archivo principal y un puntero al archivo principal. Para encontrar un campo especifico se busca en el ndice hasta encontrar el valor mayor de la clave que es igual o precede al valor deseado de la clave. La bsqueda continua en el archivo principal a partir de la posicin indicada por el puntero.
Elabor: MGTI Rosana Ayala Landeros 63
Sistemas Operativos
Mtodo de Archivos Directos o de Dispersin (Hashed) Los archivos directos explotan la capacidad de los discos para acceder directamente a cualquier bloque de direccin conocida. Como en los archivos secuenciales y secuenciales indexados, se requiere un campo clave en cada registro. Sin embargo, aqu no hay concepto de ordenamiento secuencial. 5.6 Modelo jerrquico memoria secundaria Generalmente un sistema de archivos tiene directorios que asocian un nombre de archivo a cada archivo, usualmente conectando el nombre de archivo a un ndice en una tabla de asignacin de archivos de algn tipo como FAT en sistemas de archivos MS-DOS o los inodos de los sistemas Unix. Normalmente los archivos y carpetas se organizan jerrquicamente La estructura de directorios suele ser jerrquica, ramificada o "en rbol", aunque en algn caso podra ser plana. En algunos sistemas de archivos los nombres de archivos son estructurados, con sintaxis especiales para extensiones de archivos y nmeros de versin. En otros, los nombres de archivos son simplemente cadenas de texto y los metadatos de cada archivo son alojados separadamente. En los sistemas de archivos jerrquicos, usualmente, se declara la ubicacin precisa de un archivo con una cadena de texto llamada "ruta" o path en ingls. La nomenclatura para rutas vara ligeramente de sistema en sistema, pero mantienen por lo general una misma estructura. Una ruta viene dada por una sucesin de nombres de directorios y subdirectorios, ordenados jerrquicamente de izquierda a derecha y separados por algn carcter especial que suele ser una barra ('/') o barra invertida ('\') y puede terminar en el nombre de un archivo presente en la ltima rama de directorios especificada.
64
Sistemas Operativos
Sistemas Operativos
Por el administrador / SO. Por el usuario propietario del recurso. La proteccin no slo es cuestin del administrador, sino tambin del usuario.
6.2 Funciones de sistema de Proteccin Dado que los sistemas de computo se han venido haciendo cada vez ms sofisticados en sus aplicaciones, la necesidad de proteger su integridad, tambin ha crecido. Los aspectos principales de proteccin en un Sistema Operativo son: 1. Proteccin de los procesos del sistema contra los procesos de usuario. 2. Proteccin de los procesos de usuario contra los de otros procesos de usuario. 3. Proteccin de Memoria. 4. Proteccin de los dispositivos.
6.3 Concepto de Seguridad Conjunto de medidas tomadas para protegerse contra robos, ataques, crmenes y espionajes o sabotajes. La seguridad implica la cualidad o estado de estar seguro, es decir, la evitacin de exposiciones a situaciones de peligro y la actuacin para quedar a cubierto frente a contingencias adversas. El uso creciente y la confianza en los computadoras en todo el mundo ha hecho surgir una preocupacin legtima con respecto a la seguridad informtica. El uso de los computadores ha extendido en ambientes comerciales, gubernamentales, militares e incluso en los hogares. Grandes cantidades de datos vitales sensibles se estn confiando y almacenado cada vez ms en computadores. Entre ellos se incluyen registros sobre individuos, negocios y diferentes registros pblicos y secretos gubernamentales y militares. Grandes transacciones monetarias tienen lugar diariamente en forma de transferencia electrnicas de fondos. Ms recientemente, informaciones tales como notificaciones de propiedad intelectual y datos comerciales estratgicos son tambin almacenados, procesados y diseminados mediante computadores. Entre ellos se incluyen diseos de ventas, contratos legales y muchos otros.
66
Sistemas Operativos
La seguridad, no solo requiere un sistema de proteccin apropiado, sino tambin considerar el entorno externo en el que el sistema opera. La proteccin interna no es til si la consola del operador est al alcance de personal no autorizado, o si los archivos se pueden sacar simplemente del sistema de computacin y llevarse a un sistema sin proteccin. Estos problemas de seguridad son esencialmente de administracin, no problemas del sistema operativo. La informacin almacenada en el sistema, as como los recursos fsicos del sistema de computacin, tienen que protegerse contra acceso no autorizado, destruccin o alteracin mal intencionada, y la introduccin accidental de inconsistencia. Es muy importante ser consciente que por ms que nuestra empresa sea la ms segura desde el punto de vista de ataques externos, Hackers, virus, etc. (conceptos luego tratados); la seguridad de la misma ser nula si no se ha previsto como combatir un incendio.
ACTIVIDAD DE APRENDIZAJE 6.1 Enlistar software libre de seguridad Seguridad Interna, Externa y Operacional La seguridad interna est relacionada a los controles incorporados al hardware y al Sistema Operativo para asegurar los recursos del sistema. La seguridad externa est compuesta por la seguridad fsica y la seguridad operacional. La seguridad fsica incluye la proteccin contra desastres (como inundaciones, incendios, etc.) y proteccin contra intrusos. La seguridad operacional consiste en varias polticas y procedimientos implementados por el administrador del sistema de computacin.
SEGURIDAD FSICA Consiste en la "aplicacin de barreras fsicas y procedimientos de control, como medidas de prevencin y contramedidas ante amenazas a los recursos e informacin confidencial"(1). Se refiere a los controles y mecanismos de seguridad dentro y alrededor del Centro de Cmputo as como los medios de acceso remoto al y desde el mismo; implementados para proteger el hardware y medios de almacenamiento de datos.
Elabor: MGTI Rosana Ayala Landeros 67
Sistemas Operativos
La seguridad fsica es uno de los aspectos ms olvidados a la hora del diseo de un sistema informtico. Si bien algunos de los aspectos tratados a continuacin se prevn, otros, como la deteccin de un atacante interno a la empresa que intenta a acceder fsicamente a una sala de operaciones de la misma, no. Esto puede derivar en que para un atacante sea ms fcil lograr tomar y copiar una cinta de la sala, que intentar acceder va lgica a la misma. Existen organismos oficiales encargados de asegurar servicios de prevencin de riesgos y asistencia a los tratamientos de incidencias. Como el CERT/CC (Computer Emergency Response Team Coordination Center) del SEI de la Carnegie Mellon University son centros de alertas y reaccin frente a los ataques informticos, destinados a las empresas o administradores, pero generalmente estas informaciones son accesibles a todo el mundo. Este tipo de seguridad est enfocado a cubrir las amenazas ocasionadas tanto por el hombre como por la naturaleza del medio fsico en que se encuentra ubicado el centro. Las principales amenazas que se prevn en la seguridad fsica son: 1. Desastres naturales, incendios accidentales tormentas e inundaciones. 2. Amenazas ocasionadas por el hombre. 3. Disturbios, sabotajes internos y externos deliberados. A veces basta recurrir al sentido comn para darse cuenta que cerrar una puerta con llave o cortar la electricidad en ciertas reas siguen siendo tcnicas vlidas en cualquier entorno. Los peligros ms importantes que se corren en un centro de procesamiento; con el objetivo de mantener una serie de acciones a seguir en forma eficaz y oportuna para la prevencin, reduccin, recuperacin y correccin de los diferentes tipos de riesgos. Incendios Inundaciones Condiciones Climatolgicas Seales de Radar (voltajes) Instalaciones Elctricas Ergometra
68
Sistemas Operativos
Control de Accesos El control de acceso no slo requiere la capacidad de identificacin, sino tambin asociarla a la apertura o cerramiento de puertas, permitir o negar acceso basado en restricciones de tiempo, rea o sector dentro de una empresa o institucin. 1. Utilizacin de Guardias 2. Utilizacin de Detectores de Metales Utilizacin de Sistemas Biomtricos 3. Verificacin Automtica de Firmas (VAF) 4. Seguridad con Animales Sirven para grandes extensiones de terreno, y adems tienen rganos sensitivos mucho ms sensibles que los de cualquier dispositivo y, generalmente, el costo de cuidado y mantenimiento se disminuye considerablemente utilizando este tipo de sistema. As mismo, este sistema posee la desventaja de que los animales pueden ser engaados para lograr el acceso deseado. 5. Proteccin Electrnica 6.4 La Seguridad en el S.O Mediante la autorizacin se determina qu acceso se permite y a qu entidad. Como punto crtico se destaca la seleccin del personal y la asignacin del mismo. Generalmente se dividen responsabilidades, de esta manera un operario no debe conocer la totalidad del sistema para cumplir con esas responsabilidades. Se deben instrumentar diversos controles, y el personal debe saber de la existencia de dichos controles, pero desconocer cules son, para reducir la probabilidad de que intrusos puedan evadirlos. Existen varios mecanismos que pueden usarse para asegurar los archivos, segmentos de memoria, CPU, y otros recursos administrados por el Sistema Operativo. Por ejemplo, el direccionamiento de memoria asegura que unos procesos puedan ejecutarse solo dentro de sus propios espacios de direccin. El timer asegura que los procesos no obtengan el control de la CPU en forma indefinida. La proteccin se refiere a los mecanismos para controlar el acceso de programas, procesos, o usuarios a los recursos definidos por un sistema de computacin. Seguridad es la serie de problemas relativos a asegurar la integridad del sistema y sus datos. Hay importantes razones para proveer proteccin. La ms obvia es la necesidad de prevenirse de violaciones intencionales de acceso por
69
Sistemas Operativos
un usuario. Otras de importancia son, la necesidad de asegurar que cada componente de un programa, use solo los recursos del sistema de acuerdo con las polticas fijadas para el uso de esos recursos. Un recurso desprotegido no puede defenderse contra el uso no autorizado o de un usuario incompetente. Los sistemas orientados a la proteccin proveen maneras de distinguir entre uso autorizado y desautorizado. Mecanismos y Polticas El rol de la proteccin es proveer un mecanismo para el fortalecimiento de las polticas que gobiernan el uso de recursos. Tales polticas se pueden establecer de varias maneras, algunas en el diseo del sistema y otras son formuladas por el administrador del sistema. Otras pueden ser definidas por los usuarios individuales para proteger sus propios archivos y programas. Las polticas son diversas, dependen de la aplicacin y pueden estar sujetas a cambios a lo largo del tiempo. Un principio importante es la separacin de polticas de los mecanismos. Los mecanismos determinan cmo algo se har. Las polticas deciden que se har La separacin es importante para la flexibilidad del sistema. Monitoreo de amenazas Una manera de reducir los riesgos de seguridad es tener rutinas de control en el sistema operativo para permitir o no el acceso a un usuario. Estas rutinas interactan con los programas de usuario y con los archivos del sistema. De esta manera, cuando un usuario desea realizar una operacin con un archivo, las rutinas determinan si se niega o no el acceso y en caso de que el mismo fuera permitido devuelven los resultados del proceso. Adems las rutinas de control permiten detectar los intentos de penetracin al sistema y advertir en consecuencia.
ACTIVIDAD DE APRENDIZAJE 6.2 Elaborar un resumen sobre la encuesta CSI /SURVEY 2010 (publicacin anual sobre seguridad informtica) ACTIVIDAD DE APRENDIZAJE 6.3 Testear software libre de seguridad que ataque vulnerabilidades se los sistemas operativos ms usados en la actualidad
70