Sistemas Operativos
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.

imagen14

· 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

imagen111

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.




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.
 
                 El proceso:

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.
Un programa se convierte en un proceso cuando se carga en memoria un archivo ejecutable. También es habitual que un proceso cree muchos otros procesos a medida que se ejecuta.
 
Estado del Proceso:

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:

 Estado 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 le asignen a un procesador.
 Terminado.- Ha terminado la ejecución del proceso.

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.
Un bloque de control de proceso 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, 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 de gestión de memoria.- Incluye los valores de los registros base y limite, las tablas de segmentos.

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.
- Mantener ocupado el CPU.
- Minimizar el tiempo de respuesta de los procesos interactivos.
- Maximizar el número de tareas procesadas por hora.

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.

Creación de un 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.
2. El padre espera hasta que alguno o todos los hijos han terminado de ejecutarse.
3. El proceso hijo es un duplicado del proceso padre (usa el mismo programa y los mismo datos que el padre).
4. El proceso hijo carga un nuevo programa.

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 ().
Un proceso puede terminar por las siguientes razones:
 
Excede el tiempo límite de recursos.
Memoria no disponible: el proceso requiere más memoria de la que el sistema puede proveerle.
Cuando un proceso termina, el SO puede terminar automáticamente todos sus procesos hijos.
 
Sistemas de memoria compartida:

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.
- Comunicación síncrona o asíncrona.
- Almacenamiento en búfer o automático.
 
Sincronización:

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.
El Sistema Operativo ofrece mecanismos básicos de comunicación, que permiten transferir cadenas de bytes. Deben ser los procesos que se comunican quienes interpreten el significado de las cadenas transferidas para su labor coordinada.

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.
- Envío sin bloqueo: El proceso transmisor envía el mensaje y continúa operando.
- Recepción con bloqueo: El receptor se bloquea hasta que hay un mensaje disponible.
- Recepción sin bloqueo: El receptor extrae un mensaje valido o un mensaje nulo.




Por: 02-04-2009 por sgaguilera | Categorías asociadas: Capitulo 3, Paralelo "B"

Capitulo III
Sistemas Operativos
Tutor: Ing. Diana Torres
Autor: Santiago Aguilera
Fecha: 02/04/2009
Tema:
Procesos
Los primeros sistemas informáticos solo permitían que se ejecutara un programa a la vez. Este programa tenia control completo del sistema y tenia acceso a todos los recursos del mismo. Por el contrario, los sistemas informáticos actuales permiten que se carguen en memoria múltiples programas y se ejecuten concurrentemente.
Esta evolución requiere un mayor control y aislamiento de los distintos programas y estas necesidades dieron lugar al concepto de proceso, que es un programa en ejecución. Un proceso es la unidad de trabajo en los sistemas modernos de tiempo compartido.
Un sistema esta formado por una colección de procesos de usuario que ejecutan código de usuario.
Potencialmente, todos estos procesos pueden ejecutarse concurrentemente, multiplex ando la CPU(o las distintas CPU) entre ellos.

3.1 Concepto de Proceso
Los sistemas de procesamiento por lotes ejecutan trabajos, mientras que un sistema operativo de tiempo compartido tiene programas de usuario o tareas. Incluso en su sistema mono usuario, 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. Incluso aunque el usuario pueda ejecutar sólo un programa cada vez, el sistema operativo puede tener que dar soporte a sus propios actividades internas programas, como los mecanismos de gestión de la memoria. En muchos aspectos, todas estas actividades son similares, por lo que todas ellas las denominamos procesos.
3.1.1 El proceso
Un proceso es un programa en ejecución. Hay que resaltar que un proceso es algo más que el código de un programa (al que en ocasiones se denomina sección de texto). Además del código, un proceso incluye también la actividad actual, que queda presentada por el valor del contador de programa y por los contenidos de los registros del procesador. Generalmente, un proceso incluye también la pila del proceso, que contiene datos temporales (como los parámetros de las funciones, las direcciones de retorno y las variables locales), y una sección de datos, que contiene las variables globales. El proceso puede incluir, asimismo, un cúmulo de memoria, que es la memoria que se asigna dinámicamente al proceso en tiempo de ejecución.
Insistamos que un programa, por sí mismo no es un proceso; un programa es una entidad pasiva, un archivo que contiene una lista de instrucciones almacenadas en disco (a menudo denominado archivo ejecutable), mientras que un proceso es un proceso es una entidad activa, con un contador de programa que especifica la siguiente instrucción que hay que ejecutar y un conjunto de recursos asociados. Un programa se convierte en un proceso cuando se carga en memoria  un archivo ejecutable. Dos técnicas habituales para cargar archivos ejecutables son: hacer doble clic sobre un icono que represente el archivo ejecutable e introducir el nombre del archivo ejecutable en la línea de comandos (como por ejemplo, prog.exe o a.out).
Aunque puede haber dos procesos asociados con el mismo programa, esos procesos se consideran dos secuencias de ejecución separadas.
3.1.2 Estado del proceso
A medida que se ejecuta un proceso, el proceso va cambiando de estado. El estado de un proceso se define, en parte, según la actividad actual de dicho proceso.

Diagrama de estados de un proceso
Nuevo: El proceso está siendo creado
En ejecución: Se están ejecutando las instrucciones
En espera: El proceso está esperando a que se produzca un suceso (como la terminación de una operación de E/S o la recepción de una señal).
Preparado: El proceso está a la espera de que le asignen a un procesador.
Terminado: Ha terminado la ejecución del 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
Cada proceso se representa en el sistema operativo mediante un bloque de control de proceso, también denominado bloque de control de tarea.
Un bloque de control de proceso contiene muchos elementos de información asociados con un proceso específico, entre los que se incluyen:
•    Estado del proceso
•    Contador de Programa
•    Registros 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

3.1.4 Hebras
El modelo de proceso que hemos visto hasta ahora implicaba que un proceso es un programa que tiene una sola hebra de ejecución. Por ejemplo, cuando un proceso está ejecutando un procesador de textos, se ejecuta una sola hebra de instrucciones. Está única hebra de control permite al proceso realizar sólo una tarea cada vez.
3.2 Planificación de procesos
El objetivo de la multiprogramación es tener en ejecución varios procesos al mismo tiempo con el fin de maximizar la utilización de la CPU. El objetivo de los sistemas de tiempo compartido es conmutar la CPU entre los distintos procesos con tanta frecuencia que los usuarios puedan interactuar con cada programa mientras éste se ejecuta. Para conseguir estos objetivos, el planificador de procesos selecciona un proceso disponible para ejecutar el programa en la CPU. En los sistemas de un solo procesador, nunca habrá más de un proceso en ejecución.
3.2.1 Colas de planificación
A medida que los procesos entran en el sistema, se colocan en una cola de trabajos que contiene todos los procesos del sistema. Los procesos que residen en la memoria principal y están preparados y en espera de ejecutarse se mantienen en una lista denominada cola de procesos de preparados. Generalmente, esta cola se almacena en forma de lista enlazada. La cabecera de la cola de procesos preparados contiene punteros al primer y último bloques de control de procesos (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. Cuando se asigna la CPU a un proceso, éste se ejecuta durante un rato y finalmente termina, es interrumpido o espera a que se produzca un determinado suceso, como la terminación de una solicitud de E/S. suponga que el proceso hace una solicitud de E/s a un dispositivo tiene su propia cola.
Una representación que habitualmente se emplea para explicar la planificación de procesos es el diagrama de colas.
3.2.2 Planificadores
Durante su tiempo de vida, los procesos se mueven entre las diversas colas de planificación. El sistema operativo, como parte de la tarea de planificación, debe seleccionar de alguna manera los procesos que se encuentran en estas colas. El proceso de selección se realiza mediante un planificador apropiado.
A menudo, en un sistema de procesamiento por lotes, se envían más procesos de los que pueden ser ejecutados de forma inmediata. Estos procesos se guardan en cola en un dispositivo de almacenamiento masivo (normalmente, un disco), donde se mantienen para su posterior ejecución. El planificador a largo plazo  o planificador de trabajo selecciona procesos de esta cola y los carga en memoria para su ejecución. El planificador a corto plazo o planificador de la CPU selecciona de entre los procesos que ya están preparados para ser ejecutados y asigna la CPU a uno de ellos.
3.2.3 Cambio de Contexto
Las instrucciones hacen que el sistema operativo obligue a la CPU a abandonar su tarea actual, para ejecutar una rutina de Kernel. Estos sucesos se producen con frecuencia en los sistemas de propósito general. Cuando se produce una interrupción, el sistema tiene que guardar el contexto actual del proceso que se está ejecutando en la CPU, de modo que pueda restaurar dicho contexto cuando su procesamiento concluya, suspendiendo el proceso y reanudándolo después. El contexto se almacena en el PCB del proceso e incluye el valor de los registros de de la CPU, el estado del proceso y la información de gestión de memoria.
3.3 Operaciones sobre los procesos
En la mayoría de procesos, los procesos pueden ejecutarse de forma concurrente y pueden crearse y eliminarse dinámicamente. Por tanto, estos sistemas deben proporcionar un mecanismo para la creación y terminación de procesos.
3.3.1 Creación de Procesos
Un proceso puede crear otros varios procesos nuevos mientras se ejecuta; para ello se utiliza una llamada al sistema específica para la creación de procesos. El proceso creador se denomina proceso padre y los nuevos procesos son los hijos de dicho proceso. Cada uno de estos procesos nuevos puede a su vez crear otros procesos, dando lugar a un árbol de procesos.
La mayoría de Sistemas Operativos (incluyen UNIX y la familia de Windows de sistemas operativos) identifican los procesos mediante un identificador de proceso unívoco o pid (process identifier), que normalmente es un número entero.
3.3.2 Terminación de Procesos
Un proceso termina cuando ejecuta su última instrucción y pide al sistema operativo que lo elimine usando la llamada al sistema exit(). En este momento, el proceso puede devolver un valor de estado (normalmente, un entero) a su proceso padre (a través de la llamada al sistemawait()). El sistema operativo libera la asignación de todos los recursos del proceso, incluyendo las memorias física y virtual, los archivos abiertos y los búferes de E/S.
La terminación puede producirse también en otras circunstancias. Un proceso puede causar la terminación de otro proceso a través de la adecuada llamada al sistema.
3.4 Comunicación interprocesos
Los procesos que se ejecutan concurrentemente pueden ser procesos independientes o procesos cooperativos. Un proceso de independiente si no puede afectar o verse afectado por los restantes procesos que se ejecutan en el sistema. Cualquier proceso que no comparte datos con ningún otro proceso es un proceso independiente. Un proceso es cooperativo si puede afectar o verse afectado por los demás procesos que se ejecutan en el sistema.

Hay varias Razones para proporcionar un entorno que permita la cooperación entre procesos:
•    Compartir información
•    Acelerar los cálculos
•    Modularidad
•    Conveniencia

3.4.1 Sistema 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. Normalmente, una región de memoria compartida reside en el espacio de direcciones del proceso que crea el segmento de memoria compartida. Otros procesos que desean comunicarse usando este segmento de memoria compartida deben conectarse a su espacio de direcciones. Recuerde que, habitualmente, el sistema operativo intenta evitar que un proceso acceda a la memoria de otro proceso. La memoria compartida requiere que dos o más procesos acuerden eliminar esta restricción. Entonces podrán intercambiar información leyendo y escribiendo datos en las áreas compartidas. El formato de los datos y su ubicación están determinados por estos procesos, y no se encuentran bajo el control del sistema operativo.

Bibliografía
Fundamentos de Sistemas Operativos - SILBERSCHATZ GALVIN GAGNE
Séptima Edición – Mc Graw Hill




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

- Decide que procesos llegan al estado ‘Listo’.

- Este tipo de política mide el grado de multiprogramación

- La PLP requiere un algoritmo muy complejo que se ejecuta cada cierto tiempo.

Planificaciones a Medio Plazo

- Controla el intercambio de procesos entre la memoria principal y la secundaria

- En un sentido u otro

Su ejecución se realiza con más frecuencia que la planificacion a largo plazo por lo que su tiempo de ejecución será menor.

Planificaciones a Corto Plazo

- Controla cuando un proceso comienza su ejecución, y cuando debe finalizar.

-  Este algoritmo debe ser muy simple, pues el proceso se ejecuta muy frecuentemente.

3.2 Describa las acciones tomadas por un kernel para el cambio de contextos entre procesos.

- Cuando se produce un cambio de contexto, el kernel guarda el contexto del,proceso antiguo  en su PCB y carga el contexto almacenado del nuevo proceso que se ha decidido ejecutar.

- La velocidad del cambio de contexto varia de una maquina a otra, dependiendo de la velocidad de memoria, del numero de registros que tengan que copiarse y de la existencia de instrucciones especiales.

- El tiempo empleado en los cambios de contexto depende fundamentalmente del soporte hardware.

Diferencia entre el funcionamiento de hilos en windows y en linux

Windows

Su razonamiento es que cada proceso es una colección de uno o más “hilos”. Todos los programas tienen al menos un hilo, que es en el caso de los programas de Delphi (y de casi todos los lenguajes de Windows) el mismo hilo que procesa todos los mensajes.





Por: 02-04-2009 por rlmacas | Categorías asociadas: Capitulo 3, Paralelo "B"

Describa las diferencias entre la planificación a corto plazo, mediano plazo y largo plazo

• Planificación a largo plazo
             Este tipo de planificación selecciona los procesos a los que permitirá competir por la CPU, generalmente se ve influenciado por consideraciones como la asignación de memoria.

• Planificación a mediano plazo
             Este tipo de planificación nos ayuda a dar una ayuda a la memoria principal la cual generalmente se ve llena de instrucciones de los diferentes procesos que se cargan en ella y lo hace haciendo un intercambio de los mismos en dispositivos de almacenamiento secundario como los discos duros, a la parte de los mismos que se conoce como memoria swap.

• Planificación a corto plazo
             La planificación a corto plazo nos permite seleccionar un proceso de la cola de procesos preparados para asignarlos a la CPU

Describa las acciones tomadas por un kernel para el cambio de contexto entre procesos

Al realizar el cambio de contexto de un proceso por una interrupción al sistema, el mismo debe de tomar algunas consideraciones para que cuando vuelva al proceso interrumpido se lo siga ejecutando desde donde se quedo y no todo nuevamente y para eso debe hacer una salvaguarda del estado del proceso en la CPU y luego al retornar una restauración del estado y poner seguir con el mismo.

Diferencia entre el funcionamiento de los hilos en Windows y Linux

Una de las diferencias es que Windows cada aplicación se ejecuta como un proceso independiente, el cual puede contener una o más hebras, generalmente utiliza el modelo uno a uno, donde cada hebra de nivel de usuario se le asigna a una hebra de nivel kernel, pero también Windows proporciona una biblioteca que proporciona la funcionalidad de muchos a muchos, mientras que Linux no hace diferencia entre proceso y hebra,  ya que generalmente utiliza el término tarea sin diferenciar si es hebra o proceso.




Por: 02-04-2009 por jptorresx | Categorías asociadas: Capitulo 3, Uncategorized

3.1 Describa la planificación a corto plazo, la planificación a medio plazo y la planificación a largo plazo
Planificación a corto plazo.- selecciona entre los procesos que ya están preparados para ser ejecutados y asigna a la CPU a uno de ellos.
Planificación a medio plazo.- es el encargado de regir las transiciones de procesos entre memoria principal y secundaria, actúa intentando maximizar la utilización de los recursos.
Planificación a largo plazo.- selecciona procesos de esta cola y los carga en la memoria para su ejecución

3.2 Describa las acciones tomadas por el kernel para el cambio de contexto entre procesos
Las interrupciones hacen que el sistema operativo obligue a la CPU a abandonar su tarea actual, para ejecutar una rutina con el kernel, entonces cuando se produce una interrupción el sistema tiene que guardar el contexto actual del proceso que se está ejecutando en la CPU, de modo que pueda restaurar dicho contexto cuando su procesamiento concluya, suspendiendo el proceso y reanudándolo después.

3.3 Diferencias entre Hebras Windows XP y Hebras Linux
Hebras Windows XP
Utiliza el modelo uno a uno donde cada hebra de nivel de usuario se asigna a una hebra de kernel
Proporciona soporte para una biblioteca de fibras, que proporciona la funcionalidad del modelo muchos a muchos.
Con la biblioteca de hebras, cualquier hebra perteneciente a un proceso puede acceder al espacio de direcciones de dichos procesos
Hebras Linux
Linux proporciona la capacidad de crear hebras usando la llamada al sistema clone( )
Linux no diferencia entre procesos y hebras.
Linux utiliza el termino tarea en lugar de proceso o hebra, para ser referencia al flujo de control dentro de un programa.
Cuando se invoca clone ( ) se pasa un conjunto de indicadores, que determina el nivel de de compartición entre las tareas padre e hijo.




Por: 02-04-2009 por jonathany23 | Categorías asociadas: Capitulo 3

3.1 Describa la diferencia entre la planificación o corto plazo, la planificación a medio plazo y la planificación a largo plazo.
Planificación o largo plazo, tarda más en su frecuencia de ejecución, ya que trabaja  con procesos muy pesados y  por esto no se utiliza con frecuencia.
La planificación a medio plazo, Su misión es mover procesos entre memoria principal y disco (swapping)
Planificación o corto plazo, es la más utilizada ya que tarda menos que las dos anteriores

3.2 Describa las acciones tomadas por el kernel para el cambio de contexto entre procesos.
Cuando se produce una interrupción el sistema el sistema tiene que guardar el contexto actúan del proceso que se está ejecutando en la CPU, de modo que pueda restaurar dicho proceso cuando su procedimiento concluya, suspendiendo el proceso y reanudándolo después.

Hebras en Windows XP
Cada hebra contiene

•    Un identificador de hebra (thid)
•    Conjunto de registros
•    stacks separados para núcleo y usuario
•    área privada para almacenamiento de datos
El conjunto de registros, stacks, y áreas de datos son conocidos como el contexto de una hebra
La estructura de datos primaria de una hebra incluye:
•    ETHREAD (bloque de hebra ejecutiva)
•    KTHREAD (bloque de hebra de kernel)
•    TEB (bloque de entorno de la hebra)

Hebras en Windows Linux
•    En Linux se les conoce como tareas (tasks) más que hebras
•    Se crean mediante el llamado clone ()
•    Clone () permite que la nueva hebra comparta el espacio de direccionamiento del (proceso) padre




Por: 02-04-2009 por jeffgo007 | Categorías asociadas: Capitulo 3

Nombre: Jefferson Gómez

1. Describa las diferencias entre la planificación a corto plazo, la planificación a medio plazo y planificación a largo plazo.
Una de las principales diferencias entre estas tres herramientas es la frecuencia en que se dan cada una de ellas.
Planificación a largo plazo:
- Selección de trabajos a cargar en memoria principal.
- Invocado muy infrecuentemente (segundos o minutos).
- Puede ser más lento.
- Controla el grado de multiprogramación en el sistema.
Planificación a medio plazo
- Traslado de un proceso en memoria principal a disco (intercambio o “swapping”). Posteriormente volverá a memoria principal.
- Reduce la contienda por el uso de la CPU.
- En ocasiones necesario ante los requisitos de memoria principal.
Planificación a corto plazo
- Selección del proceso listo que será ejecutado a continuación.
- Invocado muy frecuentemente (milisegundos).
- Debe ser rápido.

3.2 Describa las acciones tomadas por un kernel para el cambio de contexto entre procesos.
 Cuando se produce una interrupción el sistema tiene que guardar el contexto actual del proceso que se está ejecutando en la CPU.
 El contexto se almacena en el PCB del proceso e incluye el valor de los registros de la CPU.

Diferencias entre las hebras de XP y LINUX
Hebras en Windows XP
Cada hebra contiene:
• Un identificador de hebra (thid)
• Conjunto de registros
• Pilas (stacks) separados para núcleo y usuario
• área privada para almacenamiento de datos
Hebras de LINUX
En Linux se les conoce como tareas (tasks) más que hebras
• Se crean mediante el llamado clone()
• Clone() permite que la nueva hebra comparta el espacio de direccionamiento del (proceso) padre