|
Por: 30-04-2009 por rjjaramillo1 |
Categorías asociadas: Capitulo 3, Paralelo "B"
Estado de proceso.- a medida que se ejecuta el proceso, el proceso va cambiando de estado.
· Nuevo: el proceso está siendo creado. · En ejecución: Se ésta ejecutando las intrusiones · En espera: el proceso está esperando a que se produzca un suceso.
· Preparado: el proceso ésta en la espera de que le asigne un procesador · Terminado: termina la ejecución del proceso
Bloque de control de procesos Un bloque control de procesos contiene muchos elementos de información asociados con un proceso especifico, entre los que se incluyen. · Estado de procesos · Contador de programas · Registro de la CPU · Información de planificación de la CPU · Información de gestión de memoria · Información contable · Información del estado de E/S Hebras.- Es un programa que tiene una sola hebra de ejecución .una única hebra de control permite al proceso realizar solo una tarea cada vez. Planificación de procesos.-es una multiprogramación que se ejecutan varios procesos al mismo tiempo. Colas de planificación.-esto se da cuando los procesos entran al sistema .se colocan en la cola de trabajos que contienen todos los procesos del sistema. El sistema también incluyen otras colas .cuando se asigna a la CPU un proceso, este se ejecuta durante un rato y finamente termina, es interrumpido o espera a que se produzca un determinado suceso, como la terminación de una solicitud de E/S. Planificadores.- Planificador a largo plazo.- selecciona procesos de esta cola y las carga a la memoria para su ejecución. Planificador a corto plazo.- selecciona entre os procesos que ya están preparados para ser ejecutados y asigna la CPU a uno de ellos Cambio de contexto.-esto hace que el SO obligue a la CPU abandonar su tarea actual, para ejecutar una rutina del Kernel. Estos sucesos se producen con frecuencia en los sistemas de propósito general. Creación de procesos.-un proceso puede crear otros varios procesos, nuevos mientras se ejecutan. Estos procesos creadores se denomina procesos padre, y los nuevos procesos se denomina procesos hijos cada uno de estos procesos nuevos pueden a su vez crear otros procesos, dando lugar a un árbol
La comunicación en los sistemas cliente- servidor pueden utilizar (1) sockets (2) llamadas procedimientos remotos (RPC) o(3) invocación de métodos remotos (RMI)de java . un sockets se define como un punto terminal para una comunicación. 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: 21-04-2009 por mizarate |
Categorías asociadas: Capitulo 3, Capitulo 7, Mecanismos de sincronización, Paralelo "A", Taller Capitulo 3
Por: Marilin Zárate Sincronización en Solaris: Solaris proporciona mútex adaptativos, variables de condición, semáforos, bloqueos o cerrojos lector-escritory colas de bloqueo para controlar el acceso a las secciones múltiples. Un mútex adaptativo protege el acceso a todos los elementos de datos críticos, en un sistema multiprocesador este se inicia como un semáforo estándar, implementando un cerrojo de bucle sin fin. Solaris utiliza este método para proteger los datos a los que se accede mediante segmentos de código secreto. Los bloqueos lector-escritor son utilizados por Solaris para proteger aquellos datos a los que se accede frecuentemente, pero que habitualmente se usan en modo dólo de lectura. Solaris también utiliza colas de bloqueos para ordenar la lista de hebras en espera de adquirir un mútex adaptativo o un cerrojo lector-escritor, esta cola de bloqueos es una estructura de ola que contiene hebras que están a la espera de adquirir un cierto cerrojo. Sincronización en Windows XP El SO Windows XP es un kernel multihebra que proporciona soporte para aplicaciones en tiempo real y múltiples procesadores. Cuando este kernel accede a un recurso global en un sistema monoprocesador, enmarcan de forma temporal a las interrupciones. Windows XP proporciona objetos despachadores, asi las hebras se sincronizan empleando diferentes mecanismos, ya sea mútex, semáforos, sucesos y temporizadores. Sincronización en Linux En la versión anterior Linux era un kernel no apropiativo, lo que quiere decir que un proceso que se ejecute en kernel no puede ser desalojado. Pero ahora en la nueva versión el kernel es apropiativo. Este kernel proporciona bloqueos mediante bucles sin fin y semáforospara establecer bloqueos en kernel. Linux utiliza un método para activar y desactivar los mecanismo de desaojo de kernel, es decir proporciona dos llamadas al sistema: preempt_disable() y preempt enable(). El kernel no es desalojable si hay una tarea en modo kernel que este manteniendo un bloqueo. Sincronización en Pthreads La API de Pthreads proporciona cerrojos mútex, variables de condición y cerrojos de lectura-escritura para la sincronización de hebras. Un cerrojo mútex es muy importante en Phtreads y se usa para proteger las secciones críticas de código. Por: 02-04-2009 por rcvalladolid |
Categorías asociadas: Capitulo 3
Roberto Valladolid PROCESOS. Concepto de Proceso: Un sistema esta formado por una colección de procesos. Procesos del sistema operativo que ejecutan código del sistema y procesos de usuario que ejecutan código de usuario. Los sistemas de procesamiento por lotes ejecutan trabajos, mientras que un sistema de tiempo compartido tiene programas de usuario a tareas. Incluso en un sistema monousuario, como Microsoft Windows, el usuario puede ejecutar varios programas al mismo tiempo: un procesador de textos, un explorador web y un programa de correo electrónico. Un proceso es un programa en ejecución. Además del código, un proceso incluye también la actividad actual, que queda representada por el valor del contador de programa y por los contenidos de los registros del procesador. Un proceso incluye también la pila del proceso, que contiene datos temporales y una sección de datos, que contienen las variables globales. El estado de un proceso se define, en parte, según la actividad actual de dicho proceso. Cada proceso puede estar en uno de los estados siguientes: Nuevo.- El proceso esta siendo creado. Bloque de control de proceso: Cada proceso se representa en el sistema operativo mediante un bloque de control de proceso, también denominado bloque de control de tarea. Estado del Proceso.- El estado puede ser: nuevo, preparado, en ejecución, en espera, detenido, etc. Contador de programa.- El contador indica la dirección de la siguiente instrucción que va a ejecutar dicho proceso. Registros de la CPU.- Incluye los registros de índice punteros de pila y registros de propósito general. Información de planificación de la CPU.- Incluye la prioridad del proceso, los punteros a la cola de planificación y otros parámetros que se requieran. Información contable.- Esto incluye la cantidad de CPU y de tiempo real empleados, los limites de tiempo asignados, los números de cuenta, el numero de trabajo o proceso. Información del estado de E/S.- Incluye la lista de los dispositivos de E/S asignado al proceso. Planificación de procesos: Es un objetivo de la multiprogramación, en tener en ejecución varios procesos al mismo tiempo con el fin de maximizar el uso de la CPU. Con la planificación de procesos se busca: - Garantizar que cada proceso obtenga una proporción justa de tiempo de CPU. Planificador a Largo Plazo. Determina que programas son admitidos al sistema para su ejecución. Por lo tanto, controla el grado de multiprogramación. Una vez que el trabajo es admitido, el programa se convierte en proceso y es adicionado a la cola de procesos listos. Planificador a Mediano Plazo. Algunos sistemas de operación incluyen un planificador a mediano plazo. La idea principal de este planificador es que en algunas ocasiones es necesario remover algunos procesos de memoria y de esta forma reducir el grado de multiprogramación. Planificador a Corto Plazo. Cuando el CPU está ocioso, el sistema de operación debe escoger un proceso de la cola de procesos listos. El planificador escoge entre los procesos que se encuentran en memoria listos para ejecutar y le asigna el CPU a uno de ellos. Operación sobre los procesos: En la mayoría de sistemas, los procesos pueden ejecutarse de forma concurrente y pueden crearse y eliminarse dinámicamente. Creación de un proceso. Cuando un nuevo proceso se agrega a los que actualmente están siendo administrados, el sistema de operación construye las estructuras de datos que son usadas para administrar los procesos (PCB) y le asignan espacio de direcciones. Estas acciones constituyen la creación de un nuevo proceso.
Cuando un proceso ejecuta otro proceso nuevo, existen dos posibilidades en términos de ejecución: 1. El padre continúa ejecutándose concurrentemente con su hijo. Terminación de procesos: Un proceso termina cuando se ejecuta su ultima instrucción y le pide al sistema operativo que lo elimine usando la llamada al sistema exit (). En este tipo de sistemas cada procesador tiene acceso a toda la memoria, es decir hay un espacio de direccionamiento compartido. Se tienen tiempos de acceso a memoria uniformes ya que todos los procesadores se encuentran igualmente comunicados con la memoria principal y las lecturas y escrituras de todos los procesadores tienen exactamente las mismas latencias; y además el acceso a memoria es por medio de un ducto común. Sistema de paso de mensajes: Bajo el esquema de paso de mensajes, cada proceso se ejecuta independientemente, y únicamente se comunicará con otros procesos cuando el programa contenga instrucciones para hacerlo explícitamente. Esta comunicación se realiza contiene la información que requieran intercambiar los procesos. Un sistema de paso de mensajes proporciona funciones básicas para envío y recepción de mensajes. - Comunicación directa o indirecta. La comunicación entre procesos necesaria si se desea que varios procesos puedan colaborar para realizar una misma tarea. Sincronización es el funcionamiento coordinado en la resolución de una tarea encomendada. Los mecanismos de comunicación y sincronización son dinámicos. Es decir, cuando se necesita un mecanismo de este estilo, se crea, usa y destruye, de forma que no se establezca de forma definitiva ningún mecanismo de comunicación, ya que ellos podrían producir efectos indeseados. Es decir, la comunicación es algo puntual. - Envío de bloqueo: El proceso que s envía se bloquea hasta que el proceso receptor o el buzón de correo reciben el mensaje. Por: 02-04-2009 por sgaguilera |
Categorías asociadas: Capitulo 3, Paralelo "B"
Capitulo III 3.1 Concepto de Proceso Diagrama de estados de un proceso Estos son arbitrarios y varían de un sistema operativo a otro. Sin embargo, los estados que presentan se encuentran en todos los sistemas. Determinados sistemas operativos definen los estados de los procesos de forma más específica. Es importante darse cuenta que solo puede haber solo un proceso ejecutándose en cualquier procesador en cada instante concreto. Sin embargo puede haber muchos procesos preparados y en espera. 3.1.3 Bloque de control de proceso 3.1.4 Hebras Hay varias Razones para proporcionar un entorno que permita la cooperación entre procesos: 3.4.1 Sistema de memoria Compartida Bibliografía Por: 02-04-2009 por jccapa |
Categorías asociadas: Capitulo 3, Paralelo "B"
Julio Capa 3.1 Describa las diferencias entre la planificacion a corto plazo, la planificacion a mediano plazo y la planificacion a largo plazo. Planificaciones a Largo Plazo
|
