|
Por: 30-04-2009 por brfigueroa |
Categorías asociadas: Capitulo 1-2
Capítulo I: ¿Qué hace un sistema operativo?
Un sistema operativo es aquel programa que se ejecuta continuamente en la computadora (usualmente denominado kernel), siendo todo lo demás programas del sistema y programas de aplicación. Existen sistemas operativos para mainframes, y para computadoras personales (PCs), los sistemas operativos para mainframe están diseñados principalmente para optimizar el uso del hardware, los sistemas operativos para PCs soportan desde complejos juegos hasta aplicaciones de negocios.
Desde el punto de vista de un monousuario un sistema debe ser rápido y fácil de manejar, se dice en este caso que el sistema operativo presta cierta atención al rendimiento y ninguna a la gestión de recursos. En el caso de un mainframe, el sistema operativo se diseña para maximizar la utilización de recursos, asegurar que todo el tiempo de CPU, memoria y E/S disponibles se usen de forma eficiente, y que cada usuario disponga sólo de la parte equitativa que le corresponde. Cuando se usan estaciones de trabajo conectadas a redes de otras estaciones de trabajo y servidores, el sistema operativo se diseña parar llegar a un compromiso entre la usabilidad individual y la utilización de recursos.
Desde el punto de vista de la computadora, el sistema operativo está más íntimamente relacionado con el hardware. En este contexto podemos ver un sistema operativo como un asignador de recursos. Un sistema operativo es un programa de control, y como tal gestiona la ejecución de los programas de usuario para evitar errores y mejorar el uso de la computadora. Tiene que ver recíprocamente con el funcionamiento y control de los dispositivos de E/S.
Organización de una computadora
· Funcionamiento. Para el funcionamiento de una computadora se necesita un programa de arranque, éste normalmente se almacena en la memoria ROM, o en la memoria EPROM, y se conoce con el término de firmware, dentro del hardware de la computadora. Se inician todos los aspectos del sistema, desde los registros de la CPU hasta las controladoras de dispositivos y el contenido de la memoria. El programa de arranque debe saber cómo cargar el sistema operativo e iniciar la ejecución de dicho sistema, para conseguir este objetivo, el programa de arranque debe localizar y cargar en memoria el Kernel(núcleo) del sistema operativo. Después el sistema operativo comienza ejecutando el primer proceso, por ejemplo “init”, y espera a que se produzca algún suceso. · Estructura de almacenamiento. Los programas de computadora deben hallarse en la memoria principal RAM para ser ejecutados. El procesador puede acceder directamente a ésta. · Estructura de E/S. Las unidades de E/S están conectadas con el procesador y la memoria principal, y cada una de ellas controla uno o más dispositivos periféricos.
Arquitectura de un sistema informático
1. Sistemas Multiprocesador. En un sistema multiprocesador hay una CPU principal capaz de ejecutar un conjunto de instrucciones de propósito general, incluyendo instrucciones de los procesos de usuario. 2. Sistemas Multiprocesador. Disponen de dos o más procesadores que se comunicación entre sí, compartiendo el bus de la computadora y en ocasiones el reloj, la memoria y los dispositivos periféricos. 3. Sistemas en clúster. Es otro tipo de sistema multiprocesador. La diferencia con los sistemas multiprocesamiento es que éstos están formados por dos más sistemas individuales acoplados.
Operaciones Del Sistema Operativo
Los Sistema Operativo están controlados mediante interrupciones, para cada interrupción diferentes códigos del sistema operativo determinan que acción hay que llevar a cabo. Se debe asegurar que un error que se produzca en un programa de usuario solo genere problemas en el programa que se estuviera ejecutando. Un sistema operativo diseñado apropiadamente debe asegurar que un programa incorrecto no pueda dar lugar a que otros programas se ejecuten incorrectamente.
· Operación en modo dual: Para asegurar la correcta ejecución del sistema operativo, tenemos que poder distinguir entre la ejecución del código del sistema operativo y del código definido por el usuario. Necesitamos dos modos diferentes de operación: modo usuario y modo kernel. Un bit denominado bit de modo, se añade al hardware de la computadora para indicar el modo actual kernel o usuario, también podemos diferenciar entre una tarea que se ejecute en nombre de sistema operativo y otra que se ejecute en nombre de usuario. · Temporizador: Se debe utilizar un temporizador para evitar que un único trabajo monopolice el uso del sistema. El temporizador se actualiza al comienzo de cada trabajo. Si el tiempo termina, se produce una interrupción, y el control vuelve al monitor. · Gestión de Procesos: Un programa no hace nada a menos que una CPU ejecute sus instrucciones. Un proceso necesita para llevar a cabo su tarea ciertos recursos, entre los que incluyen tiempo de CPU, memoria, archivos y dispositivos de E/S. Un proceso es un programa en ejecución puede ser un procesador de textos que ejecuta el usuario. Cada sistema consta de una colección de procesos, siendo algunos de ellos procesos del sistema operativo y el resto procesos de usuario. Todos estos procesos pueden, potencialmente, ejecutarse de forma concurrente. · Gestión de memoria: Es uno de los elementos principales que caracterizan un proceso es la memoria que utiliza, la asignación de memoria es exclusiva para el proceso que la requiere, es decir, ésta es lógicamente separada de cualquier otro proceso del sistema. Consiste básicamente en cargar y descargar procesos en memoria principal para que sean ejecutados, para ello el SO gestiona lo que se conoce como Unidad de Administración de Memoria, el cual es un dispositivo hardware que transforma las direcciones lógicas en físicas. · Gestión de Almacenamiento: Para que un sistema informático sea cómodo para los usuarios, el sistema operativo proporcionara una vista lógica del sistema de almacenamiento.
o Gestión del sistema de archivos: La mayoría de los sistemas operativos tienen sistemas de archivos. Se usan para almacenar datos de manera segura. Están compuestos por particiones, archivos y directorios, y opcionalmente también de archivos de enlace (accesos directos en Windows). Los sistemas de archivos se deben montar, aunque esto lo hace automáticamente el sistema operativo al iniciar la sesión. o Gestión del almacenamiento masivo: La mayoría de sistemas informáticos modernos usan discos como principal medio de almacenamiento en línea, tanto para los programas como para los datos. Por tanto, la apropiada gestión del almacenamiento en disco tiene una importancia crucial en un sistema informático. o Almacenamiento en Cache: Para amortiguar la lentitud del almacenamiento en dispositivos E/S se usa un almacenamiento de soporte que evita al procesador solicitar byte por byte, y en vez de ello se leen muchos datos con una sola solicitud. Son los buffers y la caché. Los buffers se usan tanto para lectura y escritura de disco, para impresora, monitor, para placa de red, etc. SU misión es agilizar la transferencia emitiendo una sola petición e interrupción para un conjunto de datos.
Sistemas Distribuidos: Un sistema distribuido es una colección de computadoras físicamente separadas y posiblemente heterogéneas que están conectadas en red para proporcionar a los usuarios acceso a los diversos recursos que el sistema mantiene. Acceder a un recurso compartido incrementa la velocidad de cálculo, la funcionalidad, la disponibilidad de los datos y la fiabilidad. Algunos sistemas operativos generalizan el acceso a red como una forma de acceso a archivo, manteniendo los detalles de la conexión de red en el controlador de dispositivos de la interfaz de red. Un sistema operativo distribuido proporciona un entorno menos autónomo. Los diferentes sistemas operativos se comunican de modo que se crea la ilusión de que un único sistema operativo controla la red.
Sistemas de Propósito General
· Sistemas embebidos en tiempo real: Computadoras predominantes actualmente , tienen tareas específicas. Los sistemas en los que operan son primitivos, disponen de interfaz limitada. Por lo general se encargan de monitorizar y gestionar dispositivos hardware. Los sistemas embebidos casi siempre ejecutan sistemas operativos en tiempo real. Las computadoras con sistemas embebidos pueden ser: · Sistemas Multimedia: La mayor parte de los sistemas operativos están diseñados para gestionar datos convencionales, como archivos de texto, programas. Surgen con la incorporación de datos multimedia. · Sistemas de mano: Los sistemas de mano incluyen PDA, tales como los Palm muchos de los cuales usan sistemas operativos embebidos de propósito especial. Los desarrolladores de aplicaciones y sistemas de mano se enfrentan a muchos retos, la mayoría de ellos debidos al tamaño. Los dispositivos tienen muy poca memoria, procesadores lentos y pantallas de visualización pequeñas. Usan SO embebidos de propósito especial. Los problemas básicos que enfrentan son la poca memoria, los procesadores lentos y la E/S.
Entornos informáticos
1. Sistema informático tradicional: Actualmente proporciona más formas de acceso a estos entornos informáticos. La tecnología web se está extendiendo Portales Servicios, acceso a internet, con cómodos. Hoy en día, los sistemas tradicionales de tiempo compartido no son habituales. Las mismas técnicas de planificación se usan todavía en estaciones de trabajo y servidores, aunque frecuentemente los procesos son todos propiedad del mismo usuario.
Capítulo II: Estructuras De Sistemas Operativos
El sistema operativo presta ciertos servicios a los programas y a los usuarios de dichos programas. Estos servicios del sistema operativo se proporcionan para comodidad del programador, con el fin de facilitar la tarea de desarrollo.
· Interfaz de usuario: Casi todos los sistemas operativos disponen de una interfaz de usuario, que puede tomar diferentes formas. · Ejecución de programas: Para ejecutar un programa es preciso realizar una serie de tareas. Las instrucciones y los datos deben cargarse en memoria principal, los dispositivos de E/S y los ficheros deben iniciarse, y deben prepararse otros recursos. El sistema operativo proporciona todo eso al usuario. · Operaciones de E/S: Cada dispositivo de E/S necesita su conjunto particular de instrucciones y señales de control para poder operar. El sistema operativo se encarga de esos detalles para que el programador pueda pensar simplemente en términos de lecturas y escrituras. · Manipulación del sistema de archivos: los programas necesitan ejecutar algunas operaciones sobre archivos y directorios como pueden ser: leer, escribir, crear, borrar, buscar; estos incluyen mecanismos de gestión de permisos para conceder o denegar el acceso a los archivos o directorios. · Comunicaciones: Los procesos necesitan intercambiar información con otros procesos, estas comunicaciones se pueden realizar a través de memoria compartida o por paso de mensajes. · Detección de errores: El SO necesita detectar los posibles errores que surjan ya sea en el Hardware del procesador y de memoria, en un dispositivo de E/S o en programas de usuario. Otros servicios orientados a garantizar la eficiencia del propio sistema entre los cuales están: o Asignación de recursos.- El SO gestiona muchos tipos diferentes de recursos; algunos pueden disponer de código software especial que gestione su asignación, otros pueden tener código que gestione de forma general. o Responsabilidad.- Conviene hacer un seguimiento de que usuarios emplean que clase de recursos de la computadora y en qué cantidad. o Protección y seguridad.- La protección es asegurar que todos los accesos a los recursos del sistema estén controlados y garantizar la seguridad del sistema frente a posibles intrusos, mediante una contraseña.
Interfaz de usuario del sistema operativo
Existen métodos para que los usuarios interactúen con el sistema operativo.
1. Interprete de comandos: Estos se conoce también como Shell, la función principal es obtener y ejecutar el siguiente comando especificado por el usuario. Algunos SO lo incluyen en el Kernel otros lo tratan como un programa especial que se ejecuta cuando se inicia un trabajo o una sesión. 2. Interfaz grafica de usuario: Los usuarios emplean un sistema de ventanas y menús controlables por medio del ratón. Permite que el usuario interactué con el Sistema Operativo a través de una interfaz
Las llamadas al sistema proporcionan una interfaz con la que poder invocar los servicios que el sistema operativo ofrece. Es la única forma en la que un programa puede solicitar operaciones al SO. Los programas del sistema proporcionan un cómodo entorno para desarrollar y ejecutar programas, pueden dividirse en las siguientes categorías.
• Administración de Archivos: Estos programas crean, borran, copian, cambian de nombre, imprimen etc. De forma general manipulan archivos. • Información de Estado: Algunos programas solicitan al sistema la fecha, la hora, cantidad de memoria, espacio en disco, usuario. • Modificación de Archivos: editores de texto para crear y modificar el contenido de los archivos almacenados en el disco o en otros dispositivos. • Soporte de Lenguajes de Programación: Se proporcionan compiladores, ensambladores, depuradores en intérpretes para los lenguajes de programación (C, C++, Java). • Carga y Ejecución de Programas: los programas compilados deben cargarse en memoria para poder ejecutarse. • Comunicaciones: Proporcionan los mecanismos para crear conexiones virtuales entre procesos, usuarios y computadores.
Diseño e implementación del sistema operativo
Objetivos del diseño • Objetivos de Usuario: los usuarios desean ciertas propiedades como: sistema sea cómodo, fácil de utilizar y aprender, fiable, seguro y rápido. • Objetivos del Sistema: el sistema debería ser fácil de diseñar, implementar y mantener, flexible, fiable, libre de errores y eficiente.
Un principio importante es el de separar las políticas de los mecanismos. Los mecanismos determinan como hacer algo, las políticas determinan que hacer. La separación de políticas y mecanismos es importante por cuestiones de flexibilidad. Tradicionalmente los SO tenían que escribirse en lenguaje ensamblador hoy en día se escriben en Lenguaje de Alto Nivel como C o C++. La Ventajas de usar un lenguaje de alto nivel:
· El código puede escribirse más rápido, es más compacto y es más fácil de entender y depurar. · Las posibles desventajas de implementar un SO es un lenguaje de alto nivel se reducen a los requisitos de velocidad y de espacio de almacenamiento.
Estructura del sistema operativo Un método habitual consiste en dividir la tarea en componentes más pequeños, en lugar de tener un Sistema Monolítico. Cada uno de estos módulos debe ser una parte bien definida del sistema, con entradas, salidas y funciones cuidadosamente especificadas. o Estructura simple: Proporciona la máxima funcionalidad en el menor espacio posible, por lo que no fue dividido en módulos de forma cuidadosa. El kernel se divide en una serie de interfaces y controladores de dispositivo, que se han ido añadiendo y ampliando a lo largo de los años. o Estructura en niveles: El sistema operativo se divide en una serie de capas, El nivel inferior (nivel 0) es le Hardware y el nivel superior (Nivel N) es la interfaz de usuario, también puede mantener un control mayor sobre la computadora y sobre las aplicaciones que hacen uso de dicha computadora. o Microkernels: Normalmente los microkernels proporcionan una gestión de memoria y de procesos mínima, además un mecanismo de comunicaciones. Su función principal es proporcionar un mecanismo de comunicaciones entre el programa cliente y los distintos servicios que se ejecutan en el espacio de usuario. Otra ventaja del microkernel es la facilidad para ampliar el sistema operativo, proporciona mas seguridad y fiabilidad, dado que la mayor parte de los servicios se ejecutan como procesos de usuario, en lugar de procesos de kernel. o Módulos: La mejor metodología es usar técnicas de programación orientada a objetos para crear un kernel modular, Tal estrategia utiliza módulos que se cargan dinámicamente y resulta habitual en las implementaciones modernas de UNIX.
Maquinas Virtuales
Una maquina virtual es la de abstraer el hardware de la computadora formando varios entornos de ejecución diferentes, creando así la ilusión de que cada entorno de ejecución esta operando en su propia computadora privada. Compartir el mismo hardware pero poder operar con entornos de ejecución diferentes (distintos SO) de forma concurrente ya que este proporcionan una interfaz idéntica a la del propio SO.
Las acciones que dan lugar a la transferencia del modo usuario al modo kernel en una maquina real también tienen que hacer que se pase del modo usuario virtual al modo kernel virtual en una maquina virtual. Tal transferencia puede conseguirse cuando se hace una llamada al sistema por parte de un programa que se está ejecutando en una maquina virtual en modo usuario virtual, se produce una transferencia al monitor de la maquina virtual en la maquina real.
1. VMware: Es una popular aplicación comercial que abstrae el hardware de Intel creando una serie de maquinas virtuales aisladas. Permite al sistema Host ejecutar de forma concurrente varios sistemas operativos huésped diferente como máquinas virtuales independientes. 2. Máquina Virtual Java: La JVM es una especificación de una computadora abstracta, puede implementarse por software encima de un SO host (Windows, Linux, Mac OS X) o como parte de un explorador Web. Por: 27-04-2009 por EstebanYomairo |
Categorías asociadas: Capitulo 1-2, Paralelo "A"
CAPÍTULO _2.1 (Materia: SISTEMAS OPERATIVOS)
PLANIFICACIÓN DE LA CPU Cuando son ejecutables varios procesos, el sistema operativo debe decidir cuál conviene ejecutar si el CPU se encuentra disponible. El elemento del sistema quien toma esta decisión se llama PLANIFICADOR (Scheduling) y el algoritmo del cual hace uso se denomina ALGORITMO PLANIFICADOR. Tipos de Planificación No Apropiativa.- Una vez que el CPU ha sido asignado a un proceso, ya no se le puede arrebatar. Apropiativa: Cuando a un proceso, el sistema operativo le puede quitar el CPU antes asignado.
Criterios de Planificación Utilización de la CPU: Mantener la CPU tan ocupada como se pueda. Tasa de procesamiento: El número de procesos que se completan por unidad de tiempo. Tiempo de ejecución: Cuanto tarda en ejecutarse un proceso Tiempo de espera: La suma de los periodos invertidos en esperar en la cola de preparados. Tiempo de respuesta: Tiempo que el proceso tarda en empezar a responder.
Algoritmos de planificación Ya sabemos que el sistema operativo tiene una cola de procesos listos, es decir que están esperando por la CPU. Pero se debe emplear un mecanismo para seleccionar el proceso correcto de esta cola a fin de asegurar: maximizar la productividad, el uso de la CPU y el rendimiento, minimizar el tiempo de espera, de retorno y de respuesta. Se debe elegir uno o una combinación de éstos de acuerdo a estos criterios, con el fin de encontrar un rendimiento óptimo del sistema. Los principales algoritmos de planificación son:
· FCFS (1ro en llegar, 1ro en ser atendido): es el más justo de todos, pero no es el más eficiente ni el que mejor rendimiento produce. También es llamado FIFO.
POR PRIORIDAD : no tiene el mejor rendimiento pero está cercano. Se debe implementar envejecimiento de prioridades para evitar la inanición.
ROUND ROBIN : apoya al tiempo compartido. La ejecución de los procesos se divide en intervalos de tiempo regulares llamados quantum. Este debe ser pequeño para simular concurrencia pero no demasiando para no provocar sobrecarga y para permitirle a la CPU hacer procesamiento productivo. El actual estándar ronda los 10 ms. Ej: las primeras versiones de Solaris tenían implementado un quantum largo.
COLAS MULTINIVEL : es una generalización de todas ya que es posible ubicar a los procesos en diferentes colas, y cada una con un algoritmo diferente.
COLAS MULTINIVEL CON REALIMENTACIÓN : La idea de este es parecida al anterior pero es posible que los procesos cambien de cola, según su estado o el uso que hagan de los recursos. Es muy bueno para evitar la inanición y permite implementar a gusto los algoritmos anteriores.
Planificación De Sistemas Multiprocesador La planificación de procesos es más compleja cuando varios CPU’s se encuentran disponibles. Generalmente cada CPU tiene su propia cola y su pro- pio algoritmo de planificación. Se presentan dos casos: · Sistema Homogéneo: Los procesadores son idénticos. Pueden utilizarse una carga compartida. Todos los procesos se colocan en una sola cola. · Sistema Heterogéneo: Los procesos son clasificados por su estructura, ellos deben ejecutarse en un procesador particular.
Evalución De Algoritmos Tipos de Evaluación: Modelado determinista.- Toma una carga de trabajo concreta y define el rendimiento de cada algoritmo para dicha carga de trabajo. Es simple y rápido. Proporciona números exactos para comparar los algoritmos.
Modelos de colas.- Útil para comparar los distintos algoritmos de planificación. A través del conocimiento de las tasas de llegada y del tiempo de servicio; se puede calcular la utilización, la longitud media de las colas, el tiempo medio de espera à Análisis de redes de colas. Fórmula de Little: n= λ x W
Analítica.- Toman una serie de valores y se elabora una especie de corrida en frío.
Simulación.- Elaboración de modelos con algunas herramientas y se trata de lograr un comportamiento real de los procesos.
Implementación.- Funcionar el sistema en su entorno real de trabajo.
Resumen de cap. 5 : POR Esteban Chamba Jiménez
Libro: Fundamentos de sistemas operativos <SILBERSCHAT – GALVIN - GAGNE>
Otras Referencias Ing. Robiro A. Asuaje L. PROCESOS y PLANIFICACIÓN 05-01-99. http://www.alipso.com/monografias4/Sist_operativos/
Por: 27-04-2009 por EstebanYomairo |
Categorías asociadas: Capitulo 1-2, Paralelo "A"
CAPÍTULO II (Materia: SISTEMAS OPERATIVOS)
GESTIÓN DE PROCESOS Un proceso es una abstracción de un programa en ejecución y es la unidad de trabajo del sistema. Se puede definir a un proceso como un programa en ejecución. Hemos de tener en cuenta que en el ordenador se ejecutan los programas, y cada programa es divido en procesos que se cargan en memoria y se ejecutan uno tras otro. El sistema operativo es el encargado de hacerlo todo, la carga de los procesos en memoria y la ejecucion de dichos procesos, pues para que se ejecute un programa es necesario que el microprocesador ejecute los procesos de ese programa. El microprocesador no hace las cosas por si solo, es el sistema operativo el que determina que proceso se debe ejecutar y cuanto tiempo debe estar ejecutándose, a todo esto se le denomina gestión de procesos.
Estados de un proceso
Nuevo: El proceso esta siendo creado En Ejecución: Se están ejecutando las instrucciones. En espera: El proceso está esperando a que se produzca un suceso Preparado: El proceso está a la espera de que se le asigne a un procesador Terminado: Ha finalizado su ejecución En el estado en ejecución solo puede haber un proceso, sin embargo, varios pueden estar listos o bloqueados.
Bloque De Control De Procesos Cada proceso se encuentra representado en el S.O. mediante una estructura denominada “Bloque de Control de Procesos” o “PCB”, que contiene toda la información que se necesita saber sobre el proceso entre otras cosas debe guardar el estado actual del proceso. Un BCP contiene muchos elementos de información asociados con un proceso específico, entre los que se incluyen: • Estado del proceso: El estado puede ser nuevo, en ejecución, en espera, etc. • Contador de programas: Contiene la dirección de la siguiente instrucción a ejecutar por el proceso. • Registro de CPU: Varían en cuanto a número y tipo, dependiendo de la arquitectura de la computadora. Incluye acumuladores, registro de índices, punteros de pila y registros de propósito general. • Información de planificación CPU: Incluye prioridad del proceso, apuntadores a colas de planificación, etc. (Información del algoritmo de planificación). • Información de gestión de memoria: Incluye información acerca del valor de los registros base y limites, las tablas de paginación o tablas de segmentos, dependiendo del mecanismo de gestión de memoria. • Información contable: Contiene información acerca de la cantidad de CPU y tiempos empleados, los límites de tiempo asignados, el número de trabajo o de proceso. • Información del estado de E/S: Esta información incluye, solicitudes pendientes de E/S, dispositivos de E/S asignados al proceso, etc.
HEBRAS (Hilos) Los hilos son procesos ligeros que se componen de registros, un espacio de pila y un contador de programa. Los hilos comparten su código ejecutable, su pila y los recursos que utiliza. Con el uso de hilos deja de ser necesaria la costosa conmutación de contexto de uno a otro proceso. Los hilos son especiales para realizar procesamiento paralelo, pero esto incurre en algunos problemas como la consistencia de datos, para lo que se usan distintos mecanismos para solucionarlos como secciones críticas y cerraduras. Los hilos pueden estar a nivel del núcleo del sistema operativo o a nivel de usuario.
Planificación de procesos La planificación de procesos tiene como objetivos obtener siempre la mayor productividad, o la mayor cantidad de trabajos realizados en una unidad de tiempo, por Ejemplo: 77 procesos por hora. Con la planificación se pretende:
Se puede planificar a tres niveles distintos - A alto nivel o de trabajo. Determinar a que trabajos se les va a permitir competir activamente por los recursos del sistema.
Criterios de planificación
Siempre vamos a intentar maximizar la productividad (el tiempo de C.P.U.) y se intenta minimizar el tiempo de retorno, de respuesta y el de espera.
Colas De Planificacion A medida que los procesos entran al sistema se colocan en una cola de trabajos que contiene todos los procesos del sistema. Los procesos que residen en memoria principal y están preparados y en espera de ejecución se encuentran en la cola de procesos preparados (lista enlazada, contiene un puntero al primer y último PCB de la lista). Cada PCB incluye un campo de puntero que apunta al siguiente PCB de la cola de procesos preparados. El sistema también incluye otras colas como son las colas de dispositivos.
Planificadores Durante el tiempo de vida, los procesos se mueven entre las diferentes colas de planificación. El SO como parte de la planificación debe seleccionar un proceso que se encuentran en las colas. Este proceso se lo realiza a través de un Planificador. En un sistema de procesamiento por lotes, se envía más procesos de los que se puede ejecutar de forma inmediata. Estos procesos se guardan en dispositivos de almacenamiento masivo, donde se mantiene para su posterior ejecución.
Planificacion De Procesos La clave de la multiprogramación es la planificación. Implica tres tipos de planificación. Planificadores a largo plazo (Planificador de trabajos).- Decide si se añade al conjunto de programas a ser ejecutados. Planificador a mediano plazo.- Decide si se añade al número de procesos que están total o parcialmente en memoria principal. Planificadores a corto plazo (Planificador del CPU).- Decide cuál de los procesos disponibles ejecutará el proceador.
Cambio de Contexto Cuando se produce una interrupción el sistema tiene que guardar el contexto actual del proceso que se esta ejecutado en la CPU, de modo que se pueda restaurar dicho contexto cuando su procesamiento concluya, suspendiendo el proceso y reanudándolo después. El tiempo dedicado al cambio de contexto es tiempo desperdiciado. El tiempo empleado para el cambio de contexto depende fundamentalmente del soporte hardware.
Operaciones básicas con procesos Lo mínimo que se puede hacer con un proceso es: Crearlo, darle un nombre o identificador, meterlo en la lista de procesos listos, asignarle una prioridad, crear el PCB y darle los recursos que necesite, etc.. Destruir un proceso, liberándose todos los recursos que tenía asignado el proceso. La prioridad del proceso sería la prioridad en el PCB. Cambiarle la prioridad al proceso, modificar la prioridad en el PCB. Bloquear un proceso, pasar de estado activo a bloqueado debido a que tiene que esperar a que suceda un evento. Activar un proceso, cuando termina un evento por el que está esperando un proceso y se encontrase este bloqueado, entonces pasa este a listo. Despachar un proceso, el procesador asigna el primer proceso que se encuentra en la lista de listos, pasando éste de estado listo a activo.
Comunicacion Interprocesos Los procesos pueden ser: Procesos independientes: Si no pude afectar o verse afectado por los restantes procesos del sistema. Procesos cooperativos: Si puede afectar o verse afectado por otros procesos. Hay varias razones para proporcionar un entorno que permita la cooperación entre procesos: * Compartir información * Acelerar los cálculos * Modularidad. * Conveniencia. Los procesos Cooperativos requieren mecanismos de comunicación interprocesos (IPC). Que les permita intercambiar datos e información. Existen dos modelos fundamentales de IPC. 1. Memoria Compartida 2. Paso de mensajes.
Sistemas de memoria compartida La comunicación interprocesos que emplea memoria compartida requiere que los procesos que se estén comunicando establezcan una región de memoria compartida. El SO evita que otro proceso pueda ingresar a direcciones de memoria de otro proceso, por cual los procesos cooperativos deben eliminar esta restricción. Sistemas de Paso de Mensajes La comunicación tiene lugar mediante el intercambio de mensajes entre los procesos cooperativos. Proporciona un mecanismo que permite a los procesos comunicarse y sincronizar sus acciones sin compartir el mismo espacio de direcciones. Una facilidad de paso de mensajes proporciona al menos dos operaciones: en vio de mensajes y recepción de mensajes. Existen métodos para implementar lógicamente un enlace y las operaciones de envío y recepción: Comunicación directa o indirecta. Comunicación síncrona o asíncrona. Almacenamiento en búfer explicito o automático.
Nombrado
Comunicación directa: se envía un mensaje de un proceso a otro cuyos parámetros son nombre de proceso y mensaje. Su sintaxis es: enviar(procesoP,mensaje) y recibir(procesoQ,mensaje)
Comunicación indirecta: el mensaje se envía a un buzón de mensajes. La sintaxis es: enviar(buzón,mensaje) y recibir(buzón,mensaje). Cada proceso tiene un buzón propio y este se puede implementar a través de un buffer, que puede ser de capacidad cero, capacidad limitada, o capacidad ilimitada. En todos los casos el sistema operativo o el subsistema de comunicación entre procesos (IPC) deben asegurar la consistencia y la correctitud de los mensajes. Para esto se pueden implementar sumas de verificación (checksum) o similares.
Sincronización
Al haber procesos concurrentes se deben emplear mecanismos para asegurar la consistencia de los datos. Como ejemplo, supongamos que tenemos 3 procesos concurrentes que quieren modificar un mismo archivo. Si los 3 acceden a este al mismo tiempo el archivo quedará con valores incorrectos. Para resolver problemas como este se ideó la sección crítica, que es el segmento de código que accede a los recursos. Sólo puede haber una sección crítica en ejecución por vez, así nos aseguramos que los datos quedan consistentes.
Almacenamiento en búfer Los mensajes intercambiados por los procesos que se están comunicando residen en una cola temporal, tales colas se pueden implementar de tres maneras: Capacidad Cero: La longitud máxima es de cero; por lo cual no hay ningún mensaje esperando en el enlace. Capacidad Limitada: Tiene una longitud finita n; por lo cual hay n mensajes esperando. Capacidad ilimitada: La longitud es infinita, por lo cual puede haber infinitos mensajes esperando en la cola.
Resumen de cap. 3 : POR Esteban Chamba Jiménez
Libro: Fundamentos de sistemas operativos <SILBERSCHAT – GALVIN - GAGNE>
Otras Referencias STALLINGS Organización y arquitectura de computadores. http://www.alipso.com/monografias4/Sist_operativos/
Por: 27-04-2009 por EstebanYomairo |
Categorías asociadas: Capitulo 1 y 2, Capitulo 1-2, Capitulo 3, Capitulo 5, Capitulo 7, Capítulos 1-2, Paralelo "C", Planificación de procesos, Resumen de conferencia, Taller_HILOS, Uncategorized
CAPÍTULO I (Materia: SISTEMAS OPERATIVOS) El Sistema Operativo Un sistema operativo es aquel programa que se ejecuta continuamente en la computadora (usualmente denominado kernel), siendo todo lo demás programas del sistema y programas de aplicación. El sistema operativo controla y coordina el uso del hardware entre los diversos programas de aplicación por parte de los distintos usuarios, por ello se suele decir que es la interfaz de comunicación entre el hardware y el usuario. Existen sistemas operativos para mainframes, y para computadoras personales (PCs), los sistemas operativos para mainframe están diseñados principalmente para optimizar el uso del hardware, los sistemas operativos para PCs soportan desde complejos juegos hasta aplicaciones de negocios. Punto de vista del usuario. Desde el punto de vista de un monousuario un sistema debe ser rápido y fácil de manejar, se dice en este caso que el sistema operativo presta cierta atención al rendimiento y ninguna a la gestión de recursos. En el caso de un mainframe, el sistema operativo se diseña para maximizar la utilización de recursos, asegurar que todo el tiempo de CPU, memoria y E/S disponibles se usen de forma eficiente, y que cada usuario disponga sólo de la parte equitativa que le corresponde. Cuando se usan estaciones de trabajo conectadas a redes de otras estaciones de trabajo y servidores, el sistema operativo se diseña parar llegar a un compromiso entre la usabilidad individual y la utilización de recursos.
Vista del usuario. Desde el punto de vista de la computadora, el OS está más íntimamente relacionado con el hardware. En este contexto podemos ver un sistema operativo como un asignador de recursos. Un sistema operativo es un programa de control, y como tal gestiona la ejecución de los programas de usuario para evitar errores y mejorar el uso de la computadora. Tiene que ver recíprocamente con el funcionamiento y control de los dispositivos de E/S.
Organizacion de una computadora
Funcionamiento.- Para el funcionamiento de una computadora se necesita un programa de arranque, éste normalmente se almacena en la memoria ROM (read only memory), o en la memoria EEPROM (electrically erasable programable read-only-memory), y se conoce con el término de firmware, dentro del hardware de la computadora. Se inician todos los aspectos del sistema, desde los registros de la CPU hasta las controladoras de dispositivos y el contenido de la memoria. El programa de arranque debe saber cómo cargar el sistema operativo e iniciar la ejecución de dicho sistema, para conseguir este objetivo, el programa de arranque debe localizar y cargar en memoria el Kernel(núcleo) del sistema opertarivo. Después el sistema operativo comienza ejecutando el primer proceso, por ejemplo “init”, y espera a que se produzca algún suceso. La ocurrencia de un suceso normalmente se indica mediante una interrupción. Interrupción.- Da paso a un suceso, puede ser de hardware o de software. Cuando se interrumpe a la CPU, deja lo que está haciendo e inmediatamente transfiere la ejecución a una posición fijada.
Estructura de almacenamiento.- Los programas de computadora deben hallarse en la memoria principal (RAM - Random Access Memory) para ser ejecutados. El procesador puede acceder directamente a ésta. La memoria principal es un dispositivo de almacenamiento volátil que pierde su contenido cuando se quita la alimentación (corriente eléctrica), normalmente la memoria principal es demasiado pequeña como para almacenar todos los programas y datos necesarios de forma permanente. Por esta razón la mayor parte de los sistemas informáticos proporcionan almacenamiento secundario como una extensión de la memoria principal, aquí se almacenan grandes cantidades de datos de forma permanente.
Estructura de E/S.- Las unidades de E/S están conectadas con el procesador y la memoria principal, y cada una de ellas controla uno o más dispositivos periféricos. Los dispositivos de E/S se pueden clasificar en: De interacción con e usuario.-Permiten la comunicación con el usuario del computador. De interacción con máquinas: Permite la comunicación con elementos del equipo. De comunicación.- Permite la comunicación con dispositivos remotos. Arquitectura de un sistema informático Sistemas Multiprocesador.- En un sistema multiprocesador hay una CPU principal capaz de ejecutar un conjunto de instrucciones de propósito general, incluyendo instrucciones de los procesos de usuario. Sistemas Multiprocesador.- Disponen de dos o más procesadores que se comunicación entre sí, compartiendo el bus de la computadora y en ocasiones el reloj, la memoria y los dispositivos periféricos. Sistemas en clúster.- Es otro tipo de sistema multiprocesador. La diferencia con los sistemas multiprocesamiento es que éstos están formados por dos más sistemas individuales acoplados. Las computadoras en clúster comparten el almacenamiento y se conectan entre sí a través de una LAN. Normalmente la conexión en clúster se usa para proporcionar un servicio con alta disponibilidad, es decir un servicio que funcionará incluso si uno o más sistemas del clúster fallaran.
Estructura de un Sistema Operativo Uno de los aspectos más importantes de los sistemas operativos es la capacidad para multi-programar. Multiprogramación.- Permite organizar la ejecución de los trabajos a fin de mejorar el aprovechamiento de la CPU. Por ejemplo, al solicitar un trabajo E/S, mientras ésta se realiza se selecciona otro trabajo para ejecutarlo.
Sistemas Multitarea (tiempo compartido).- Pueden ejecutar varias tareas simultáneamente (o cuasi-simultáneamente), aprovechando los tiempos ociosos de la CPU. Alternan entre varias tareas, las que se procesan en partes durante pequeños intervalos de tiempo (quantums).
Operaciones Del So Los SO están controlados mediante interrupciones, para cada interrupción diferentes códigos del sistema operativo determinan que acción hay que llevar a cabo. Se debe asegurar que un error que se produzca en un programa de usuario solo genere problemas en el programa que se estuviera ejecutando.
Un SO diseñado apropiadamente debe asegurar que un programa incorrecto no pueda dar lugar a que otros programas se ejecuten incorrectamente.
Operación en modo dual Para asegurar la correcta ejecución del sistema operativo, tenemos que poder distinguir entre la ejecución del código del sistema operativo y del código definido por el usuario. Necesitamos dos modos diferentes de operación: modo usuario y modo kernel. Un bit denominado bit de modo, se añade al hardware de la computadora para indicar el modo actual kernel o usuario, también podemos diferenciar entre una tarea que se ejecute en nombre de sistema operativo y otra que se ejecute en nombre de usuario. El modo dual de operaciones nos proporciona los medios para proteger el sistema operativo de los usuarios que puedan causar errores, y también para proteger a los usuarios de los errores de otros usuarios. Esta protección se consigue designando algunas de las instrucciones de máquina que pueden causar daño como instrucciones privilegiadas. Cuando se ejecuta una llamada al sistema, el hardware la trata como una interrupción software.
Temporizador Se debe utilizar un temporizador para evitar que un único trabajo monopolice el uso del sistema. El temporizador se actualiza al comienzo de cada trabajo. Si el tiempo termina, se produce una interrupción, y el control vuelve al monitor. Gestión de Procesos Un programa no hace nada a menos que una CPU ejecute sus instrucciones. Un proceso necesita para llevar a cabo su tarea ciertos recursos, entre los que incluyen tiempo de CPU, memoria, archivos y dispositivos de E/S. Un proceso es un programa en ejecución puede ser un procesador de textos que ejecuta el usuario. Un proceso es una unidad de trabajo en un sistema. Cada sistema consta de una colección de procesos, siendo algunos de ellos procesos del sistema operativo y el resto procesos de usuario. Todos estos procesos pueden, potencialmente, ejecutarse de forma concurrente.
Gestión de memoria.- Es uno de los elementos principales que caracterizan un proceso es la memoria que utiliza, la asignación de memoria es exclusiva para el proceso que la requiere, es decir, ésta es lógicamente separada de cualquier otro proceso del sistema. La gestión de memoria es una tarea, cuya responsabilidad recae en el SO. Consiste básicamente en cargar y descargar procesos en memoria principal para que sean ejecutados, para ello el SO gestiona lo que se conoce como Unidad de Administración de Memoria, el cual es un dispositivo hardware que transforma las direcciones lógicas en físicas.
Gestión de Almacenamiento Gestión del sistema de archivos La mayoría de los sistemas operativos tienen sistemas de archivos. Se usan para almacenar datos de manera segura. Están compuestos por particiones, archivos y directorios, y opcionalmente también de archivos de enlace (accesos directos en Windows). Los sistemas de archivos se deben montar, aunque esto lo hace automáticamente el sistema operativo al iniciar la sesión. Algunos SO de red permiten montar los sistemas de archivos de otras computadoras en directorios comunes. Entre las estructuras que puede tener tenemos: estructura arbórea, grafo acíclico y grafo general. La estructura arbórea es la más sencilla de implementar. Internamente el disco está dividido en bloques físicos (por ej: 512 bytes) y bloques lógicos o clusters (por ej: 4KB). Es bueno que los clúster sean múltiplo del tamaño de los bloques físicos, por razones de eficiencia. En la estructura de un sistema de archivos tenemos que considerar que, al igual que con la memoria principal, siempre se produce algo de fragmentación, que puede ser interna (dentro de cada clúster o bloque) o externa (entre archivos). Cada nodo de la estructura se llama archivo o directorio, y tiene un nombre lógico que está directamente relacionado con una posición física dentro del disco. Es responsabilidad de este sistema recuperar los datos dado un nombre de archivo y su ruta de acceso. Esto lo hace usando tablas o punteros. Por ejemplo el archivo c:materiasoperativos.doc está vinculado con la ubicación 227E-5294-FF12-437D dentro del disco.
Gestión del almacenamiento masivo La mayoría de sistemas informáticos modernos usan discos como principal medio de almacenamiento en línea, tanto para los programas como para los datos. Por tanto, la apropiada gestión del almacenamiento en disco tiene una importancia crucial en un sistema informático. El sistema operativo es responsable de las siguientes actividades: Gestión del espacio libre Asignación del espacio de almacenamiento Planificación del disco El almacenamiento terciario no es crucial para el rendimiento del sistema, aunque también es necesario gestionarlo, algunos SO realizan esta tarea, mientras que otros dejan el control de almacenamiento terciario a los programas de aplicación. Sistemas de E/S Uno de los propósitos de un sistema operativo es ocultar al usuario las peculiaridades de los dispositivos hardware específico. El subsistema de E/S consta de varios componentes: Un componente de gestión de memoria que incluye almacenamiento en búffer, gestión de caché y gestión de colas. Una interfaz general para controladores de dispositivo. Controladores para dispositivos hardware específicos. Almacenamiento en Cache Para amortiguar la lentitud del almacenamiento en dispositivos E/S se usa un almacenamiento de soporte que evita al procesador solicitar byte por byte, y en vez de ello se leen muchos datos con una sola solicitud. Son los buffers y la caché. Los buffers se usan tanto para lectura y escritura de disco, para impresora, monitor, para placa de red, etc. SU misión es agilizar la transferencia emitiendo una sola petición e interrupción para un conjunto de datos. Los tipos de buffers son: · buffer sencillo · buffer doble · circular La función de la caché es similar a la de los buffers, pero está implementada con circuitos de muy alta velocidad y tienen algunas ventajas tecnológicas como la búsqueda por asociación (que busca en muchas entradas al mismo tiempo). Nos puede ser muy útil para mejorar el rendimiento poner partes del sistema de archivos en la caché, y cualesquier otros datos que usemos con frecuencia.
Protección y Seguridad Un mecanismo que controla el acceso de procesos y usuarios a los recursos definidos por un sistema informático. Los mecanismos de protección pueden mejorar la fiabilidad, permitiendo detectar errores en las interfaces entre componentes del sistema. Un sistema con protección tiene la capacidad de distinguir entre un uso autorizado y no autorizado. Un sistema puede tener la protección adecuada pero estar expuesto a fallos y permitir accesos inapropiados. Es responsabilidad de los mecanismos de seguridad defender al sistema frente a ataques internos y externos y los ataques incluyen virus, gusanos, denegación de servicios, etc. La protección y la seguridad requieren que el sistema pueda distinguir a todos sus usuarios y grupos de usuarios. Sistemas Distribuidos Un sistema distribuido es una colección de computadoras físicamente separadas y posiblemente heterogéneas que están conectadas en red para proporcionar a los usuarios acceso a los diversos recursos que el sistema mantiene. Acceder a un recurso compartido incrementa la velocidad de cálculo, la funcionalidad, la disponibilidad de los datos y la fiabilidad. Algunos sistemas operativos generalizan el acceso a red como una forma de acceso a archivo, manteniendo los detalles de la conexión de red en el controlador de dispositivos de la interfaz de red. Un sistema operativo distribuido proporciona un entorno menos autónomo. Los diferentes sistemas operativos se comunican de modo que se crea la ilusión de que un único sistema operativo controla la red. Sistemas de Propósito General Sistemas embebidos en tiempo real Computadoras predominantes actualmente (motores de automóviles, robots para fabricación), tienen tareas específicas. Los sistemas en los que operan son primitivos, disponen de interfaz limitada. Por lo general se encargan de monitorizar y gestionar dispositivos hardware. Los sistemas embebidos casi siempre ejecutan sistemas operativos en tiempo real. Las computadoras con sistemas embebidos pueden ser:
• De propósito general que ejecuta sistemas operativos estándar, con aplicaciones de propósito especial para implementar la funcionalidad. • Sistemas de hardware con sistemas operativos embebidos de propósito especial que sólo proporcionan la funcionalidad deseada. Dispositivos de hardware con circuitos integrados específicos de la aplicación, que realizan sus tareas sin ningún SO.
Sistemas Multimedia La mayor parte de los sistemas operativos están diseñados para gestionar datos convencionales, como archivos de texto, programas. Surgen con la incorporación de datos multimedia. Las aplicaciones multimedia incluyen archivos de audio, películas de DVD, videoconferencia, webcats. Sistemas de Mano Los sistemas de mano incluyen PDA, tales como los Palm muchos de los cuales usan sistemas operativos embebidos de propósito especial. Los desarrolladores de aplicaciones y sistemas de mano se enfrentan a muchos retos, la mayoría de ellos debidos al tamaño. Los dispositivos tienen muy poca memoria, procesadores lentos y pantallas de visualización pequeñas. Usan SO embebidos de propósito especial. Los problemas básicos que enfrentan son la poca memoria, los procesadores lentos y la E/S.
Entornos informáticos Sistema informático tradicional Actualmente proporciona más formas de acceso a estos entornos informáticos. La tecnología web se está extendiendo Portales Servicios, acceso a internet, con cómodos. Hoy en día, los sistemas tradicionales de tiempo compartido no son habituales. Las mismas técnicas de planificación se usan todavía en estaciones de trabajo y servidores, aunque frecuentemente los procesos son todos propiedad del mismo usuario.
Estructuras De Sistemas Operativos El sistema operativo presta ciertos servicios a los programas y a los usuarios de dichos programas. Estos servicios del sistema operativo se proporcionan para comodidad del programador, con el fin de facilitar la tarea de desarrollo. Un cierto conjunto de servicios del sistema operativo proporciona funciones que resultan útiles al usuario: Interfaz de usuario.- tipos existentes es la interfaz de línea de comandos, que usa comandos de texto, otro tipo es la interfaz de proceso por lotes. Habitualmente se utiliza una interfaz grafica de usuario. Ejecución de programas.- Para ejecutar un programa es preciso realizar una serie de tareas. Las instrucciones y los datos deben cargarse en memoria principal, los dispositivos de E/S y los ficheros deben iniciarse, y deben prepararse otros recursos. El sistema operativo proporciona todo eso al usuario. Operaciones de E/S.- Cada dispositivo de E/S necesita su conjunto particular de instrucciones y señales de control para poder operar. El sistema operativo se encarga de esos detalles para que el programador pueda pensar simplemente en términos de lecturas y escrituras. Manipulación del sistema de archivos.- los programas necesitan ejecutar algunas operaciones sobre archivos y directorios como pueden ser: leer, escribir, crear, borrar, buscar; estos incluyen mecanismos de gestión de permisos para conceder o denegar el acceso a los archivos o directorios. Comunicaciones.- los procesos necesitan intercambiar información con otros procesos, estas comunicaciones se pueden realizar a través de memoria compartida o por paso de mensajes. Detección de errores.- El SO necesita detectar los posibles errores que surjan ya sea en el Hardware del procesador y de memoria, en un dispositivo de E/S o en programas de usuario. Otros servicios orientados a garantizar la eficiencia del propio sistema entre los cuales están: Asignación de recursos.- El SO gestiona muchos tipos diferentes de recursos; algunos pueden disponer de código software especial que gestione su asignación, otros pueden tener código que gestione de forma general. Responsabilidad.- Conviene hacer un seguimiento de que usuarios emplean que clase de recursos de la computadora y en que cantidad. Protección y seguridad.- La protección es asegurar que todos los accesos a los recursos del sistema estén controlados y garantizar la seguridad del sistema frente a posibles intrusos, mediante una contraseña.
Interfaz de usuario del sistema operativo Interprete de comandos Estos se conoce también como Shell, la función principal es obtener y ejecutar el siguiente comando especificado por el usuario. Algunos SO lo incluyen en el Kernel otros lo tratan como un programa especial que se ejecuta cuando se inicia un trabajo o una sesión. Interfaz grafica de usuario Los usuarios emplean un sistema de ventanas y menús controlables por medio del ratón. Permite que el usuario interactue con el Sistema Operativo a través de una interfaz Llamadas al sistema Las llamadas al sistema proporcionan una interfaz con la que poder invocar los servicios que el sistema operativo ofrece. Es la única forma en la que un programa puede solicitar operaciones al SO.
Programas del sistema Los programas del sistema proporcionan un cómodo entorno para desarrollar y ejecutar programas, pueden dividirse en las siguientes categorías.
• Administración de Archivos: Estos programas crean, borran, copian, cambian de nombre, imprimen etc. De forma general manipulan archivos. • Información de Estado: Algunos programas solicitan al sistema la fecha, la hora, cantidad de memoria, espacio en disco, usuario. • Modificación de Archivos: editores de texto para crear y modificar el contenido de los archivos almacenados en el disco o en otros dispositivos. • Soporte de Lenguajes de Programación: Se proporcionan compiladores, ensambladores, depuradores en intérpretes para los lenguajes de programación (C, C++, Java). • Carga y Ejecución de Programas: los programas compilados deben cargarse en memoria para poder ejecutarse. • Comunicaciones: Proporcionan los mecanismos para crear conexiones virtuales entre procesos, usuarios y computadores. Diseño e implementación del sistema operativo Objetivos del diseño • Objetivos de Usuario: los usuarios desean ciertas propiedades como: sistema sea cómodo, fácil de utilizar y aprender, fiable, seguro y rápido. • Objetivos del Sistema: el sistema debería ser fácil de diseñar, implementar y mantener, flexible, fiable, libre de errores y eficiente. Mecanismos y políticas Un principio importante es el de separar las políticas de los mecanismos. Los mecanismos determinan como hacer algo, las políticas determinan que hacer. La separación de políticas y mecanismos es importante por cuestiones de flexibilidad.
Implementación Tradicionalmente los SO tenían que escribirse en lenguaje ensamblador hoy en día se escriben en Lenguaje de Alto Nivel como C o C++. La Ventajas de usar un lenguaje de alto nivel: El código puede escribirse más rápido, es más compacto y es más fácil de entender y depurar. Las posibles desventajas de implementar un SO es un lenguaje de alto nivel se reducen a los requisitos de velocidad y de espacio de almacenamiento.
Estructura del sistema operativo Un método habitual consiste en dividir la tarea en componentes más pequeños, en lugar de tener un Sistema Monolítico. Cada uno de estos módulos debe ser una parte bien definida del sistema, con entradas, salidas y funciones cuidadosamente especificadas. Estructura simple Proporciona la máxima funcionalidad en el menor espacio posible, por lo que no fue dividido en módulos de forma cuidadosa. El kernel se divide en una serie de interfaces y controladores de dispositivo, que se han ido añadiendo y ampliando a lo largo de los años. El kernel proporciona el sistema de archivos, los mecanismos de planificación de la CPU, la funcionalidad de gestión de memoria y otras funciones del sistema operativo, a través de las llamadas al sistema. Estructura en niveles El sistema operativo se divide en una serie de capas, El nivel inferior (nivel 0) es le Hardware y el nivel superior (Nivel N) es la interfaz de usuario, también puede mantener un control mayor sobre la computadora y sobre las aplicaciones que hacen uso de dicha computadora. Los niveles se seleccionan de manera que cada uno usa sus funciones y servicios de los niveles inferiores. Un nivel no necesita saber cómo se implementan las operaciones solo necesitan saber que hacen esas operaciones. Un problema con la implementación por niveles es que tiende a ser menos eficientes a ser menos que otros tipos de implementación
Microkernels Normalmente los microkernels proporcionan una gestión de memoria y de procesos mínima, además un mecanismo de comunicaciones. Su función principal es proporcionar un mecanismo de comunicaciones entre el programa cliente y los distintos servicios que se ejecutan en el espacio de usuario. Otra ventaja del microkernel es la facilidad para ampliar el sistema operativo, proporciona mas seguridad y fiabilidad, dado que la mayor parte de los servicios se ejecutan como procesos de usuario, en lugar de procesos de kernel. Los microkernel pueden tener un rendimiento peor que otras soluciones debido a la carga de procesamiento adicional impuesta por las funciones del sistema. Módulos La mejor metodología es usar técnicas de programación orientada a objetos para crear un kernel modular, Tal estrategia utiliza módulos que se cargan dinámicamente y resulta habitual en las implementaciones modernas de UNIX.
Maquinas Virtuales La idea fundamental que subyace a una maquina virtual es la de abstraer el hardware de la computadora formando varios entornos de ejecución diferentes, creando así la ilusión de que cada entorno de ejecución esta operando en su propia computadora privada. Compartir el mismo hardware pero poder operar con entornos de ejecución diferentes (distintos SO) de forma concurrente ya que este proporcionan una interfaz idéntica a la del propio SO. Implementación Las acciones que dan lugar a la transferencia del modo usuario al modo kernel en una maquina real también tienen que hacer que se pase del modo usuario virtual al modo kernel virtual en una maquina virtual. Tal transferencia puede conseguirse cuando se hace una llamada al sistema por parte de un programa que se este ejecutando en una maquina virtual en modo usuario virtual, se produce una transferencia al monitor de la maquina virtual en la maquina real. Beneficios Existe una protección completa de los diversos recursos del sistema. Cada maquina esta completamente aislada de las demás, por lo que no existen problemas de protección. Un sistema de maquina virtual es un medio perfecto para la investigación y el desarrollo de SO. Ejemplos VMware Es una popular aplicación comercial que abstrae el hardware de Intel creando una serie de maquinas virtuales aisladas. Permite al sistema Host ejecutar de forma concurrente varios sistemas operativos huésped diferente como máquinas virtuales independientes.
Máquina Virtual Java:
La JVM es una especificación de una computadora abstracta, puede implementarse por software encima de un SO host (Windows, Linux, Mac OS X) o como parte de un explorador Web.
Resumen de cap1 y 2 : POR Esteban Chamba Jiménez
Libro: Fundamentos de sistemas operativos <SILBERSCHAT – GALVIN - GAGNE>
Otras Referencias STALLINGS Organización y arquitectura de computadores. PUENTE P. Andrés G. Universidad del BíoBío http://www.alipso.com/monografias4/Sist_operativos/ Por: Andres Laguapillo Resumen de la pelicula El término Silicon Valley fue acuñado por el periodista Don C. Hoefler en 1971. Silicon (Silicio), alude a la alta concentración de industrias en la zona, relacionadas con los semiconductores y las computadoras; Valley se refiere al Valle de Santa Clara, aunque se podría también aplicar a los alrededores, a ambos lados de la bahía, hacia los que muchas de estas industrias se han expandido. Durante muchos años de la década de los 70 y 80 se le llamó incorrectamente Silicone americana.
Es un docudrama no autorizado escrito y dirigido por Martyn Burke. Basado en el libro Fire in the Valley: The Making of a Personal Computer, de Paul Freiberger y Michael Swaine. Este film documenta los comienzos de la computadora personal a través de la rivalidad entre Apple Computer (Apple II, Apple Lisa y la Apple Macintosh) y Microsoft (MITS Altair, DOS, IBM PC, y Windows). La historia central del film comienza a principios de los años 70, y termina en 1985, con un brindis por el cumpleaños de Steve Jobs, poco antes de ser despedido de Apple Computer por su compañero John Sculley. Steve Jobs y Bill Gates son los verdaderos revolucionarios de nuestra época. No los estudiantes que ocuparon la oficina del decano a finales de los ‘60. No los pacifistas que estaban determinados a derrocar el establecimiento. Jobs y Gates son quienes cambiaron el modo de pensar, actuar y comunicar del mundo - responde a la pregunta “¿Por qué estos dos ‘nerds’ se convirtieron en iconos?” en una entrevista con el director del film, Martyn Burke. SISTEMAS OPERATIVOS (CAPITULO I,II) Un sistema operativo es un software base que controla los procesos del hardware de una computadora. Permite organizar los archivos en diversos dispositivos de almacenamiento, además de gestionar posibles errores de hardware y la pérdida de datos. Para la normal ejecución de un programa, este debe encontrarse en la memoria principal (RAM). Ya que es un área de almacenamiento de gran tamaño a la que el procesador puede acceder fácilmente mediante la tecnología DRAM (dynamic random-acces memory). Un sistema informático se puede diseñar de diferentes maneras, las cuales se clasifican de acuerdo al número de procesadores. Los sistemas monoprocesadores en su mayoría constan de un solo procesador en donde existe un CPU capaz de ejecutar un conjunto de instrucciones de propósito general e instrucciones de los procesos de usuario. Así mismo podemos mencionar que los sistemas multiprocesadores disponen de dos o más procesadores que se comunican entre si, aunque operan independientemente unos de otros, entre sus ventajas se encuentran: Mayor rendimiento, Economía de Escala y Mayor fiabilidad. Mientras que los sistemas conectados en cluster pueden compartir almacenamiento y se conectan entre si a través de una Red LAN. Una de las características más destacadas de los sistemas operativos es la capacidad para la multiprogramación, la cual incrementa el uso de la CPU organizando los trabajos, asegurando por tanto que esta siempre tenga un trabajo que ejecutar. Dentro de la multiprogramación se puede citar el tiempo compartido o multitarea, el cual permite que la CPU ejecute múltiples trabajos al mismo tiempo. Los sistemas operativos gestionan una correcta operación del sistema informático, para impedir que existan excepciones que interfieran con el funcionamiento del sistema. Un proceso necesita llevar a cabo su tarea utilizando ciertos recursos, entre los que incluyen tiempo de CPU, memoria, archivos y dispositivos de E/S. La gestión de procesos se basa en la creación y borrado de procesos, proporcionar mecanismos para que los procesos establezcan comunicación y sincronización entre sí. El sistema operativo en cuanto a su gestión de memoria hace un seguimiento de que partes de la misma están siendo usadas y por quién. Así mismo la gestión de archivos en cuanto a su almacenamiento. La protección y seguridad de un sistema operativo es indispensable, ya que defienden el sistema de ataques internos o externos al controlar el acceso de procesos y el uso de ciertos recursos autorizados mediante mecanismos definidos por el sistema. Entre los tipos básicos de redes se establecen las LAN que permiten la conexión de un conjunto de procesadores dentro de una Área pequeña y las WAN que permiten una conexión mucho más extensa, pero más lenta que las LAN. Existen diferentes clases de sistemas informáticos que son de propósitos específicos. Entre ellos se encuentran los Sistemas Embebidos, Sistemas multimedia y Sistemas de mano. Los Sistemas Embebidos en tiempo real que ejecutan sistemas operativos bajo rígidos requisitos de tiempo en la operación de un procesador, o el sistema fallará. Los Sistemas Multimedia gestionan el suministro de datos multimedia (mp3 y videos) u muchas veces un software capaz de reproducirlos. Dentro del entorno informático se citan: Sistema informático tradicional, Sistema cliente-servidor, Sistema Entre iguales y los modernos Sistemas basados en la Web. ESTRUCTURAS DE SISTEMAS OPERATIVOS Un sistema operativo proporciona una se Read the rest of this entry » Por: 15-04-2009 por Jhonny Zaruma |
Categorías asociadas: Capitulo 1-2, Paralelo "A"
Jhonny Zaruma CAPITULO 1 SISTEMAS OPERATIVOS Un sistema operativo es un software que gestiona el hardware de la computara y proporciona un entorno para ejecutar los programas de aplicación. En sistemas grandes, el sistema operativo tiene incluso mayor responsabilidad y poder, es como un policía de tráfico, se asegura de que los programas y usuarios que están funcionando al mismo tiempo no interfieran entre ellos. El sistema operativo también es responsable de la seguridad, asegurándose de que los usuarios no autorizados no tengan acceso al sistema. Un sistema operativo está formado por componentes que se dividen en los siguientes módulos: GESTIÓN DE PROCESOS Un proceso es un programa en ejecución que para realizar su tarea necesita recursos. El sistema operativo es el encargado de las siguientes actividades en la gestión de procesos: · Crear y borra los procesos de usuario y del sistema · Suspender y reanudar los procesos · Proporcionar mecanismos para la sincronización de procesos · Proporcionar mecanismos para la comunicación entre procesos · Proporcionar mecanismos para el tratamiento de los interbloqueos
GESTIÓN DE MEMORIA Es muy importante en la operación de un sistema informático. La memoria es una gran tabla de bytes que tiene una dirección única con la cual se referencia. Este almacén de datos de rápido accesos es compartido por la CPU y los dispositivos de E/S, no es constante y pierde su contenido en los fallos del sistema. El sistema operativo es el encargado de las siguientes actividades: · Controlar que partes de la memoria están actualmente en uso y por parte de quien · Decidir qué datos y procesos añadir o extraer de la memoria. · Asignar y liberar la asignación de espacio de memoria según sea necesario. GESTIÓN DE ALMACENAMIENTO
Un sistema de almacenamiento es muy necesario, ya que la memoria principal es inconstante y también es muy pequeña para almacenar todos los datos y programas. También es necesario mantener los datos que no convenga mantener en la memoria principal. · El sistema operativo es responsable de: · Creación y borrados de archivos · Creación y borrado de directorios para organizar los archivos · Soporte de primitivas para manipular archivos y directorios · Asignación de archivos a los dispositivo de almacenamiento secundario · Gestión del espacio libre · Asignación del espacio de almacenamiento · Planificación del disco SISTEMAS DE E/S
Consiste en un sistema de almacenamiento temporal (caché), una interfaz de manejadores de dispositivos y otra para dispositivos concretos. El sistema operativo debe gestionar el almacenamiento temporal de E/S y servir las interrupciones de los dispositivos de E/S. El subsistema de E/S consta de varios componentes: · Un componente de gestión de memoria que incluye almacenamiento en buffer, gestión de caché y gestión de colas. · Una interfaz general para controladores de dispositivo. · Controladores para dispositivos hardware específicos. SISTEMAS DE PROTECCIÓN Y SEGURIDAD
Mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema. El sistema operativo se encarga de: · Distinguir entre uso autorizado y no autorizado. · Especificar los controles de seguridad a realizar. · Forzar el uso de estos mecanismos de protección. SISTEMA DE COMUNICACIÓN
· Gestionar los accesos a la red. · Conexión a través de la red de los distintos procesadores. · Acceso a los recursos compartidos.
CAPITULO 2
ESTRUCTURAS DE SISTEMAS OPERATIVOS Un sistema operativo proporciona el entorno en el que se ejecuta los programas. Internamente, los Sistemas Operativos varían mucho en su composición dado que se organización puede analizarse aplicando múltiples criterios diferentes. El diseño de un sistema operativo es una tarea de gran envergadura, siendo fundamental que los objetivos del sistema estén bien establecidos. Podemos ver al sistema operativo desde varios puntos de vista. Uno de ellos se centra en los servicios que el sistema proporcional, otro en la interfaz disponible para los usuarios y programadores y diseñadores del sistema operativo.
SERVICIOS DEL SISTEMA OPERATIVO El sistema presta ciertos servicios a los programas y a los usuarios de dichos programas. Estos servicios del sistema operativo se proporcionan Funciones útiles para el usuario: Interfaz de usuario (UI, user interface), que puede tomar muchas formas. · Interfaz de línea de comando (CLI, command-line interface), usa comandos de textos, y un programa que permite introducir y editar los comandos. · Proceso de lotes, cuando los comandos y las directivas para controlarlos se introducen archivos, luego estos archivos se ejecutan. · Interfaz grafica de usuario (GUI, graphical user interfaces), un sistemas de ventanas con un dispositivos señalador para dirigir la entrada y salida, para elegir opciones en el menú. Ejecución de programas. El sistema tiene que poder cargar un programa en memoria y ejecutar dicho programa Operaciones de E/S. Un programa en ejecución puede necesitar llevar a cabo operaciones de E/S, dirigidas a un dispositivo de E/S. Para ciertos dispositivos específicos puede ser deseable disponer de funciones especiales. Manipulación de sistemas de archivos. Los programas necesitan leer y escribir en archivos y directorios. También necesitan crearlos y borrarlos utilizando su nombre, realizar búsquedas en un determinado archivo o presentar la información. Comunicaciones. La comunicación debe tener lugar entre procesos que estén ejecutándose en la misma computadora o en computadoras diferentes conectadas a trabes de la red. Se pueden implementar utilizando memoria compartida o mediante paso de mensajes. Detección de errores. El sistema operativo necesita detectar continuamente los distintos errores. Estos errores pueden producirse en el hardware del procesador y de memoria en un dispositivo de E/S o en los programas de usuarios. Para cada tipo de error el usuario debe llevar a cabo una acción apropiada para asegurar un funcionamiento correcto y coherente. Asignación de recursos. Cuando hay varios usuarios o existen varios trabajos ejecutándose al mismo tiempo, debe asignar a cada uno de ellos los recursos necesarios. Responsabilidad. Conviene registrar de que usuarios emplean la computadora y que recursos emplean a fines contables o para estadísticas de uso. Que sería una herramienta valiosa para aquellos investigadores que deseen configurar los sistemas para mejorar los servicios informáticos. Protección y seguridad. Los propietarios de la información almacenada en un sistema de computadora en red o multiusuario necesitan a menudo poder controlar el uso de dicha información. La protección implica que todos los accesos a los recursos del sistema estén controlados.
INTERFAZ DE USUARIO DEL SISTEMA OPERATIVO INTÉRPRETE DE COMANDOS Algunos sistemas operativos incluyen el intérprete de comandos en el kernel. Otros como Windows y XP y Unix lo tratan como un programa especial que se ejecuta cuando se inicia un trabajo o cuando un usuario inicia sesión. En los sistemas que dispones entre varios interpretes entre los que elegir, los intérpretes se conocen como shells. La función principal del intérprete de comando es obtener y ejecutar el sistema comando especificado por el usuario. Uno de los métodos consiste en que el propio intérprete de comandos contiene el código que el comando tienen que ejecutar. Un método alternativo utilizado por Unix es y otros sistemas operativos, implementa la mayoría de los comandos a través de una serie de programas de sistema.
INTERFAZ GRÁFICA DE USUARIO Una segunda estrategia para interactuar con el Sistema Operativo es atreves de una interfaz grafica de usuario (GUI) suficientemente amigable. Permite al usuario implementar una serie ventanas y menús controlables mediante el ratón, proporciona una especie de escritorio en el cual el usuario mueve el ratón para colocar su puntero sobre images, iconos que se muestra en la pantalla.
LLAMADAS AL SISTEMA Proporcionan una interfaz con la que podemos invocar los servicios que le sistema operativo ofrece. Estas llamadas están disponibles como rutinas escritas en C y C++, aunque determinadas tareas de bajo nivel, como por ejemplo aquellas en las que se tiene que acceder directamente al hardware, pueden necesitar escribirse con instrucciones de lenguaje ensamblador. Los diseñadores de aplicación diseñan sus programas utilizando API (aplication programming interface, interfaz de programa de aplicacion) especifica un conjunto de funciones que el programador de aplicaciones puede usar, indicando los parámetros que hay que pasar a cada función y los valores de retorno que el programa debe esperar.
TIPOS DE LLAMADAS AL SISTEMA Las llamadas al sistema pueden agruparse de forma muy general en cinco categorías principales. · Control de procesos · Terminar, abortar · Cargar, ejecutar · Crear procesos, terminar procesos · Obtener atributos del proceso, definir atributos del proceso · Esperar para obtener tiempo · Esperar suceso, señalizar suceso · Asignar y liberar memoria · Administración de archivos · Crear archivos, borrar archivos · Abrir, cerrar · Leer, escribir, reposicionar · Obtener atributos de archivo, definir atributos de archivos · Administración de dispositivos · Solicitar dispositivos, liberar dispositivos · Leer, escribir, reposicionar · Obtener atributos de dispositivos, definir atributos de dispositivos · Conectar y desconectar dispositivos lógicamente · Mantenimiento de información · Obtener la hora y la fecha, definir la hora y la fecha · Obtener datos del sistema, establecer datos del sistema · Obtener los atributos de procesos, archivos o dispositivos · Establecer los atributos de procesos, archivos o dispositivos · 5. Comunicaciones · Crear, eliminar, conexiones de comunicación · Enviar, recibir mensajes · Trasferir información de estado · Conectar y desconectar dispositivos remotos
PROGRAMAS DEL SISTEMA Los programas del sistema proporcionan un cómodo entorno para desarrollar y ejecutar programas. Algunos de ellos son, simplemente, interfaces de usuario para las llamadas del sistema; otros son considerablemente más complejos. Pueden dividirse en las siguientes categorías. · ·Administración de archivos · Información de estado · Modificación de archivos · Soporte de lenguajes de programación · Carga y ejecución de programas · Comunicaciones
DISEÑO E IMPLEMENTACIÓN DEL SISTEMA OPERATIVO Objetivos del diseño.- el primer problema es la definición concreta de los objetivos y especificaciones, este se puede dividir en dos grupos básicos: objetivos del usuario y objetivos del sistema. Mecanismos y políticas.- Es importante separar las políticas de los mecanismos. Los mecanismos determinan como hacer algo; las políticas determinan que haces. El temporizador en un mecanismo para asegurar la protección de la CPU, pero la decisión de cuáles deben ser los datos de temporización para un usuario concreto es una decisión de políticas. Implementación.- Una vez que se ha diseñado un sistema operativo debe implementarse. Tradicionalmente los sistemas operativos tenían que escribirse en lenguajes ensambladores. Sin embargo hoy se escriben en lenguajes de alto nivel como C o C++.
ESTRUCTURA DEL SISTEMA OPERATIVO La ingeniería de un sistema tan grande y complejo como un sistema operativo moderno debe hacerse cuidadosamente para que le sistema funcione apropiadamente y pueda modificarse con facilidad. Un método habitual consiste en dividir la tarea en componentes más pequeños, en lugar de tener un sistema monolítico. Cada uno de estos módulos debe ser una parte bien definida del sistema, con entradas salidas y funciones cuidadosamente especificadas.
MÁQUINAS VIRTUALES La idea fundamental que subyace a una maquina virtual es la de abstraer el hardware de la computadora formando varios entornos de ejecución diferentes, creando así la ilusión de que cada entorno de ejecución está operando en su propia computadora privada. Con los mecanismos de ejecución de la CPU y las técnicas de memoria virtual un sistema operativo puede crear la ilusión de que un proceso tiene su propio con su propia memoria. Normalmente un proceso utiliza características adicionales.
IMPLEMENTACIÓN Aunque el concepto de maquina virtual es muy útil, resulta difícil de implementar. Es preciso realizar un duro trabajo para proporcionar un duplicado exacto de la maquina subyacente. La maquina subyacente tienen dos modos: modo usuario y modo kernel. El software de la máquina virtual puede ejecutarse en modo kernel, dado que el sistema operativo; la maquina virtual puede ejecutarse en modo usuario y un modo kernel virtual ejecutándose ambos en modo usuario físico.
BENEFICIOS El concepto de maquina virtual presenta varias ventajas. Observe que, en este tipo de entornos, existe una protección completa de los diversos recursos del sistema. Cada máquina virtual está completamente aislada de las demás, por lo que no existe problema de protección. Sin embargo no es posible la compartición directa de recursos. Se han implementado dos métodos para permitir dicho comportamiento. El primero es posible compartir un minidisco y por tanto compartir los archivos. En segundo lugar es posible definir una red de maquinas virtuales, pudiendo cada una de ellas enviar información a través de una red de comunicaciones virtuales.
GENERACIÓN DE SISTEMAS OPERATIVOS Es posible diseñar, codificar e implementar un sistema operativo específicamente para una maquina concreta en una instalación determinada. Sin embargo lo más habitual es que el sistema operativo se diseñe para ejecutarse en cualquier clase de máquina y en diversas instalaciones, con una amplia variedad de configuraciones de periféricos. El sistema debe entonces configurarse o generarse para cada computadora en concreto, un proceso que se conoce como generación del sistema · ¿Qué CPU va usar? · ¿Qué cantidad de memoria hay disponible? · ¿Qué dispositivos se encuentran instalados? · ¿Qué opciones del sistema operativo se desea o que valores o parámetros de va a usar?
ARRANQUE DEL SISTEMA Una vez desarrollado un sistema operativo debe ponerse disposición del hardware para su uso, ¿sabe el hardware donde está el kernel o como cargarlo? El procedimiento de iniciación de una computadora mediante el kernel se llama arranque del sistema. En la mayoría de los sistemas informáticos una pequeña parte del código conocida como programa de arranque o cargador de arranque, se encarga de localizar el kernel lo carga a memoria principal e inicia su ejecución. Por: 14-04-2009 por »¦«EÐU@®ÐO»¦« |
Categorías asociadas: Capitulo 1-2
Un sistema operativo es un software de sistema, es decir, un conjunto de programas de computación destinados a realizar muchas tareas entre las que destaca la administración eficaz de sus recursos.
Los sistemas operativos, nos posibilitan y simplifican el manejo de la computadora, el cual nos permite desempeñar una serie de funciones básicas esenciales para la gestión del equipo. Las principales carateristicas del sistema operativo son:
Interfaces del usuario Es la parte del sistema operativo que permite comunicarse con él, de tal manera que se puedan cargar programas, acceder archivos y realizar otras tareas. Existen tres tipos básicos de interfaces: las que se basan en comandos, las que utilizan menús y las interfaces gráficas de usuario. Administración de recursos Sirven para administrar los recursos de hardware y de redes de un sistema informático, como el CPU, memoria, dispositivos de almacenamiento secundario y periféricos de entrada y de salida. Administración de archivos Un sistema de información contiene programas de administración de archivos que controlan la creación, borrado y acceso de archivos de datos y de programas. También implica mantener el registro de la ubicación física de los archivos en los discos magnéticos y en otros dispositivos de almacenamiento secundarios. Administración de tareas Los programas de administración de tareas de un sistema operativo administran la realización de las tareas informáticas de los usuarios finales. Los programas controlan que áreas tiene acceso al CPU y por cuánto tiempo. Las funciones de administración de tareas pueden distribuir una parte específica del tiempo del CPU para una tarea en particular, e interrumpir al CPU en cualquier momento para sustituirla con una tarea de mayor prioridad. Servicio de soporte Los servicios de soporte de cada sistema operativo dependerán de la implementación particular de éste con la que estemos trabajando. Entre las más conocidas se pueden destacar las implementaciones de Unix, desarrolladas por diferentes empresas de software, los sistemas operativos de Apple Inc., como Mac OS X para las computadoras de Apple Inc., los sistemas operativos de Microsoft, y las implementaciones de software libre, como GNU/Linux o BSD producidas por empresas, universidades, administraciones públicas, organizaciones sin fines de lucro y/o comunidades de desarrollo. Estos servicios de soporte suelen consistir en:
Sistemas con almacenamiento temporal de E/S Se avanza en el hardware, creando el soporte de interrupciones. Luego se lleva a cabo un intento de solución más avanzado: la E/S de un trabajo con sus propios cálculos. Por ello se crea el sistema de buffers con el siguiente funcionamiento:
Los problemas surgen si hay muchas más operaciones de cálculo que de E/S (limitado por la CPU) o si por el contrario hay muchas más operaciones de E/S que cálculo (limitado por la E/S). Spoolers Hace aparición el disco magnético con lo que surgen nuevas soluciones a los problemas de rendimiento. Se eliminan las cintas magnéticas para el volcado previo de los datos de dispositivos lentos y se sustituyen por discos (un disco puede simular varias cintas). Debido al solapamiento del cálculo de un trabajo con la E/S de otro trabajo se crean tablas en el disco para diferentes tareas, lo que se conoce como Spool (Simultaneous Peripherial Operation On-Line). Sistemas Operativos Multiprogramados Surge un nuevo avance en el hardware: el hardware con protección de memoria. Lo que ofrece nuevas soluciones a los problemas de rendimiento:
Debido a los cambios anteriores, se producen cambios en el monitor residente, con lo que éste debe abordar nuevas tareas, naciendo lo que se denomina como Sistemas Operativos multiprogramados, los cuales cumplen con las siguientes funciones:
Cuando desempeña esas tareas, el monitor residente se transforma en un sistema operativo multiprogramado. Llamadas al Sistema Operativo Definición breve: llamadas que ejecutan los programas de aplicación para pedir algún servicio al SO. Cada SO implementa un conjunto propio de llamadas al sistema. Ese conjunto de llamadas es el interfaz del SO frente a las aplicaciones. Constituyen el lenguaje que deben usar las aplicaciones para comunicarse con el SO. Por ello si cambiamos de SO, y abrimos un programa diseñado para trabajar sobre el anterior, en general el programa no funcionará, a no ser que el nuevo SO tenga la misma interfaz. Para ello:
Modos de ejecución en un CPU Las aplicaciones no deben poder usar todas las instrucciones de la CPU. No obstante el SO, tiene que poder utilizar todo el juego de instrucciones del CPU. Por ello, una CPU debe tener (al menos) dos modos de operación diferentes:
Llamadas al Sistema Una aplicación, normalmente no sabe dónde está situada la rutina de servicio de la llamada. Por lo que si ésta se codifica como una llamada de función, cualquier cambio en el SO haría que hubiera que reconstruir la aplicación. Pero lo más importante es que una llamada de función no cambia el modo de ejecución de la CPU. Con lo que hay que conseguir llamar a la rutina de servicio, sin tener que conocer su ubicación, y hacer que se fuerce un cambio de modo de operación de la CPU en la llamada (y la recuperación del modo anterior en el retorno). Esto se hace utilizando instrucciones máquina diseñadas específicamente para este cometido, distintas de las que se usan para las llamadas de función. Las llamadas al sistema no siempre tienen una expresión sencilla en los lenguajes de alto nivel, por ello se crean las bibliotecas de interfaz, que son bibliotecas de funciones que pueden usarse para efectuar llamadas al sistema. Las hay para distintos lenguajes de programación. La aplicación llama a una función de la biblioteca de interfaz (mediante una llamada normal) y esa función es la que realmente hace la llamada al sistema. Interrupciones y excepciones El SO ocupa una posición intermedia entre los programas de aplicación y el hardware. No se limita a utilizar el hardware a petición de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que se ejecute código del SO. En tales situaciones el hardware debe poder llamar al sistema, pudiendo deberse estas llamadas a dos condiciones:
En ambos casos, la acción realizada no está ordenada por el programa de aplicación, es decir, no figura en el programa. Según los dos casos anteriores tenemos las interrupciones y la excepciones:
Tratamiento de las interrupciones Una interrupción se trata en todo caso, después de terminar la ejecución de la instrucción en curso. El tratamiento depende de cuál sea el dispositivo de E/S que ha causado la interrupción, ante la cual debe poder identificar el dispositivo que la ha causado. Importancia de las interrupciones El mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio de una aplicación, mientras otra permanece a la espera de que concluya una operación en un dispositivo de E/S. El hardware se encarga de avisar al SO cuando el dispositivo de E/S ha terminado y el SO puede intervenir entonces, si es conveniente, para hacer que el programa que estaba esperando por el dispositivo, se continúe ejecutando. En ciertos intervalos de tiempo puede convenir no aceptar señales de interrupción. Por ello las interrupciones pueden inhibirse por programa (aunque esto no deben poder hacerlo las mismas). Excepciones Cuando la CPU intenta ejecutar una instrucción incorrectamente construida, la unidad de control lanza una excepción para permitir al SO ejecutar el tratamiento adecuado. Al contrario que en una interrupción, la instrucción en curso es abortada. Las excepciones al igual que las interrupciones deben estar identificadas. Clases de excepciones Las instrucciones de un programa pueden estar mal construidas por diversas razones:
El mecanismo de tratamiento de las excepciones es esencial para impedir, junto a los modos de ejecución de la CPU y los mecanismos de protección de la memoria, que las aplicaciones realicen operaciones que no les están permitidas. En cualquier caso, el tratamiento específico de una excepción lo realiza el SO. Como en el caso de las interrupciones, el hardware se limita a dejar el control al SO, y éste es el que trata la situación como convenga. Componentes de un sistema operativo Gestión de procesos Un proceso es simplemente, un programa en ejecución que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el responsable de:
La gestión de procesos podría 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 después las de baja. Una vez realizada la tarea se tacha. Esto puede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse. y permanezcan en la lista para siempre. Para solucionar esto, se puede asignar alta prioridad a las tareas más antiguas. Gestión de la memoria principal La Memoria (informática) es una gran tabla de palabras o bytes que se referencian cada una mediante una dirección única. Este almacén de datos de rápido accesos es compartido por la CPU y los dispositivos de E/S, es volátil y pierde su contenido en los fallos del sistema. El SO es el responsable de:
Gestión del almacenamiento secundario Un sistema de almacenamiento secundario es necesario, ya que la memoria principal (almacenamiento primario) es volátil y además muy pequeña para almacenar todos los programas y datos. También es necesario mantener los datos que no convenga mantener en la memoria principal. El SO se encarga de:
Consiste en un sistema de almacenamiento temporal (caché), una interfaz de manejadores de dispositivos y otra para dispositivos concretos. El sistema operativo debe gestionar el almacenamiento temporal de E/S y servir las interrupciones de los dispositivos de E/S. Sistema de archivos Los archivos son colecciones de información relacionada, definidas por sus creadores. Éstos almacenan programas (en código fuente y objeto) y datos tales como imágenes, textos, información de bases de datos, etc. El SO es responsable de:
Existen diferentes Sistemas de Archivos, es decir, existen diferentes formas de organizar la información que se almacena en las memorias (normalmente discos) de los ordenadores. Por ejemplo, existen los sistemas de archivos FAT, FAT32, EXT2, NTFS… Desde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista, sin embargo, existen diferencias muy importantes. Por ejemplo, los sistemas de ficheros FAT32 y NTFS , que se utilizan fundamentalmente en sistemas operativos de Microsoft, tienen una gran diferencia para un usuario que utilice una base de datos con bastante información ya que el tamaño máximo de un fichero con un Sistema de Archivos FAT32 está limitado a 4 gigabytes sin embargo en un sistema NTFS el tamaño es considerablemente mayor. Mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema. El SO se encarga de:
Sistema de comunicaciones Para mantener las comunicaciones con otros sistemas es necesario poder controlar el envío y recepción de información a través de las interfaces de red. También hay que crear y mantener puntos de comunicación que sirvan a las aplicaciones para enviar y recibir información, y crear y mantener conexiones virtuales entre aplicaciones que están ejecutándose localmente y otras que lo hacen remotamente. Programas de sistema Son aplicaciones de utilidad que se suministran con el SO pero no forman parte de él. Ofrecen un entorno útil para el desarrollo y ejecución de programas, siendo algunas de las tareas que realizan:
Gestor de recursos Como gestor de recursos, el Sistema Operativo administra
Componentes del Sistema Operativo
Administración de tareas
Administración de usuarios
Manejo de recursos
Por: 09-04-2009 por jpsigcho |
Categorías asociadas: Capitulo 1-2, Capitulo 3 (Procesos), Paralelo "C"
Así mismo revisamos sobre la forma en que cada proceso se llevaba a cabo dentro de la CPU y los estados por los que pasa para ser ejecutado así como de la forma en que se comunicaban los procesos entre sí a la hora de asignar o pedir recursos de la CPU. Por: 08-04-2009 por luisedurobles |
Categorías asociadas: Capitulo 1-2, Paralelo "A"
PELICULA “PIRATAS DEL SILICON VALLEY” Esta película es un documental sobre los inicios de Apple y Microsoft y como definieron (Steve Jobs y Bill Gates) el futuro de una época. No siempre de manera limpia, por supuesto. Por si acaso. Una de las películas que todo aficionado a la informática, y en especial a Apple, tiene que ver es sin lugar a duda Piratas de Silicon Valley. Trata de la historia de unos jóvenes Stever Jobs, Steve Wozniak (creadores de Apple Computer Inc) y Bill Gates, Paul Allen y Steve Ballmer (creadores de MicroSoft) y de como crean lo que hoy en día son dos de las empresas más importantes en el mundo de la informática, si no las más grandes. Es bastante interesante ya que es la historia real, tal y como sucedío y por ello te das cuenta que Steve Jobs tuvo en sus manos, en cierta medida, a Microsoft, y que si se hubiera dado cuenta, ahora las cosas serían muy distintas. Por si no conocéis la historia, Bill se aprovechó de la buena fe de Steve Jobs y le copió su sistema operativo, creando el tan conocido Windows.
RESUMEN CAPITULO 1 Un sistema operativo software que gestiona al hardware de la computadora y proporciona un entorno para ejecutar los programas de aplicación y actúa como un sistema intermedio entre el usuario y el hardware de la computadora. Para que la computadora haga su trabajo de ejecutar programas, los programas deben encontrarse en la memoria principal. La memoria es la única área de almacenamiento de gran tamaño que va de millones a millones de millones de posiciones distintas. Cada palabra de la memoria tiene su propia dirección. Normalmente, la memoria principal es un dispositivo de almacenamiento volátil que pierde su contenido cuando se desconecta o desaparece la conexión. La mayoría de los sistemas informáticos proporcionan un almacenamiento secundario como la extensión a la memoria principal. El almacenamiento secundario más común es el disco magnético, que proporciona un sistema de almacenamiento para programas y datos. La amplia variedad de sistemas de almacenamiento en el sistema informático puede organizarse en una jerarquía, en función de su velocidad y su coste. Los niveles superiores son más caros, pero más rápidos. A medida que se desciende por la jerarquía, el coste por bit generalmente disminuye, mientras que el tiempo de acceso por regla general aumenta. Existen varias estrategias diferentes para diseñar un sistema informático puede organizarse en una jerarquía, en función de su velocidad y su coste. Los niveles superiores son más caros, pero más rápidos. A medida que desciende por jerarquía, el coste por bit generalmente disminuye, mientras que el tiempo de acceso por la regla general aumenta. Los sistemas monoprocesador solo disponen de un procesador, mientras que los sistemas multiprocesador tienen dos o más procesadores que comparten la memoria física y los dispositivos periféricos. El diseño multiprocesador mas común es el multiprocesador simétrico (o SMP) , donde todos los procesadores se conectan iguales y operan independientemente unos de todos los procesadores se consideran iguales y operan independientemente unos de otros. Los sistemas conectados en clúster constituyen una forma especializada de sistemas multiprocesador y constan de múltiples computadoras conectadas mediante una red de área local. El sistema operativo debe asegurar la correcta operación del sistema informático. Para impedir que los programas de usuario interfieran con el apropiado funcionamiento de sistema, el hardware soporta dos modos de trabajo: modo usuario y modo kernel. Diversas instrucciones, como las instrucciones de E/S y las instrucciones de espera, son instrucciones privilegiadas y solo se pueden ejecutar en modo kernel. La memoria en la que el sistema operativo reside debe protegerse frente a modificaciones por parte del usuario. Un temporizador impide los bucles infinitos. Estas características (modo dual, instrucciones privilegiadas, protección de memoria e interrupciones del temporizador) son los bloques básicos que emplea el sistema operativo para conseguir un correcto funcionamiento. Un proceso (o trabajo) es la unidad fundamental de trabajo en un sistema operativo. La gestión de procesos incluye la creación y borrado de procesos y proporciona mecanismos para que los procesos se comuniquen y sincronicen entre si. El sistema operativo gestiona la memoria haciendo un seguimiento de que partes de la misma esta siendo usadas y por quien. El sistema operativo también es responsable de la asignación dinámica y liberación del espacio de memoria. El sistema operativo también debe ocuparse de la protección y seguridad del propio sistema operativo y de los usuarios. Los sistemas distribuidos permiten a los usuarios los recursos disponibles en una serie de host dispersos geográficamente, conectados atravéz de una red de computadoras. En un sistema en clúster, las múltiples maquinas pueden realizar cálculos sobres los datos que residen en el sistema de almacenamiento compartido y los cálculos sobre los datos que residen en sistemas de almacenamiento compartido y los cálculos pueden continuar incluso cuando algunos subconjuntos de los miembros del clúster falle. Las LAN y WAN son los dos tipos de básico de redes. La LAN permite que un conjunto de procesadores distribuidos en una área geográfica pequeña que se comuniquen, mientras que la WAN permiten que se comuniquen diversos procesadores distribuidos en áreas más grandes. Existen diversos tipos de sistemas informáticos que sirven a propósito específicos. Entre estos se incluyen los sistemas operativos en tiempo real diseñados para entornos embebidos, como son los dispositivos de consumo, automóviles y equipos robóticos. También están los sistemas multimedia implican el subministro de datos multimedia y a menudo, tiene requisitos especiales para visualizar o reproducir audio, video o flujos sincronizados de audio y video. RESUMEN CAPITULO 2 Podemos ver a un sistema operativo desde varios puntos de vista ya que proporciona una serie de servicios. En el nivel mas bajo, las llamadas al sistema permiten que un programa en ejecución haga solicitudes directamente al sistema operativo. En el nivel superior, el intérprete de comandos o Shell proporciona un mecanismo para que el usuario ejecute una solicitud sin escribir un programa. Los comandos pueden proceder de archivos de procesamientos por lotes o directamente de un terminal, cuando se esta en modo interactivo o de tiempo compartido. Los tipos de solicitudes varían de acuerdo con el nivel. El nivel de gestión de las llamadas al sistema debe proporcionar funciones básicas, como las de control de procesos y de manipulación de archivos y dispositivos. Las solicitudes de nivel superior, satisfechas por el intérprete de comandos o los programas de sistemas, se traducen a una secuencia de llamadas al sistema se pueden clasificar en varias categorías: control de programas, solicitudes de E/S. Los errores de programa pueden considerarse como solicitudes implícitas de servicio. Son necesarias varias tablas para describir la información que define el estado del sistema informático y el de los trabajos que el sistema esta ejecutando. Es fundamental que los objetivos del sistema estén bien definidos antes de comenzar el diseño. El tipo de sistema deseado dictara las opciones que se elijan, entre los distintos algoritmos y estrategias necesarios. Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevos procesos son independientes y no comparten memoria (es decir, información) con el proceso que los ha creado. En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para sí mismo y en que dichos hilos comparten toda la memoria reservada para el proceso. Por: 07-04-2009 por mizarate |
Categorías asociadas: Capitulo 1-2, Paralelo "A"
Nombre: Marilin Zárate Ordóñez CAPITULO 1 Un Sistema Operativo es un software que gestiona el hardware de una computadora y proporciona un entorno para ejecutar los programas de aplicación. Un Sistema Operativo tres funciones muy importantes:
Las interrupciones son una oarte importante de la arquitectura de las computadoras. La interrupción debe transferir el control a la rutina de servicio apropiada a la interrupción. La variedad de sistemas de almacenamiento se pueden organizar de una forma jerárquica, en función de su velocidad y su coste. Existen muchas formas para diseñar un sistema informático, los sistemas monoprocesadores tienen un solo procesador, y los sistemas multiprocesadores constan de varios procesadores. Los multiprocesadores se dividen en Simétrico y Asimétrico. Para poder dar un mejor uso a la CPU se utiliza la multiprogramación. Los sistemas de tiempo compartido son una extensión de la multiprogramación, en la que los organismos de planificación de la CPU conmutan rápidamente entre varios trabajos . Un proceso es un programa en ejecución. La gestión de procesos incluye la creación y borrado de procesos y proporciona mecanismos para que los procesos se comuniquen y sincronicen entre sí. LOs sistemas distribuidos permiten a los usuarios compartir los recursos disponibles en una serie de hosts, conectados a traves de una red de computadoras. Dos tipos básicos de redes son la LAN y WAN, las LAN permiten que un conjunto de procesadores distribuidos en una área pequeña se comuniquen, mientras que las WAN permiten una comunicación dentro de una área muy extensa.. La influencia de internet hoy en el mundo ha sido muy grande y la WWW ha crecido mucho últimamente
|
