Niveles de planificación
La planificación de la CPU, en el sentido de conmutarla entre los distintos procesos, es una de las funciones del sistema operativo. Este despacho es llevado a cabo por un pequeño programa llamado planificador a corto plazo o dispatcher (despachador). La misión del dispatcher consiste en asignar la CPU a uno de los procesos ejecutables del sistema, para ello sigue un determinado algoritmo. En secciones posteriores estudiaremos algunos algoritmos posibles. Para que el dispatcher conmute el procesador entre dos procesos es necesario realizar un cambio de proceso.
Los acontecimientos que pueden provocar la llamada al dispatcher dependen del sistema (son un subconjunto de las interrupciones), pero son alguno de estos:
•El proceso en ejecución acaba su ejecución o no puede seguir ejecutándose (por una E/S, operación WAIT, etc).
•Un elemento del sistema operativo ordena el bloqueo del proceso en ejecución (ver estados de un proceso).
•El proceso en ejecución agota su cuantum o cuanto de estancia en la CPU.
•Un proceso pasa a estado listo.
Hay que destacar el hecho de que cuanto menos se llame al dispatcher menos tiempo ocupa la CPU un programa del sistema operativo, y, por tanto, se dedica más tiempo a los procesos del usuario (un cambio de proceso lleva bastante tiempo).
Así, si sólo se activa el dispatcher como consecuencia de los 2 primeros acontecimientos se estará haciendo un buen uso del procesador. Este criterio es acertado en sistemas por lotes en los que los programas no son interactivos. Sin embargo, en un sistema de tiempo compartido no es adecuado, pues un proceso que se dedicara a realizar cálculos, y no realizara E/S, monopolizaría el uso de la CPU. En estos sistemas hay que tener en cuenta el conjunto de todos los procesos, activándose el dispatcher con la circunstancia tercera y, posiblemente, la cuarta. Los sistema operativos en que las dos siguientes circunstancias no provocan la activación del dispatcher muestran preferencia por el proceso en ejecución, si no ocurre esto se tiene más en cuenta el conjunto de todos los procesos.
Se puede definir el scheduling -algunas veces traducido como -planificación- como el conjunto de políticas y mecanismos construidos dentro del sistema operativo que gobiernan la forma de conseguir que los procesos a ejecutar lleguen a ejecutarse.
El scheduling está asociado a las cuestiones de:
•Cuándo introducir un nuevo proceso en el Sistema.
•Determinar el orden de ejecución de los procesos del sistema.
El scheduling está muy relacionado con la gestión de los recursos. Existen tres niveles de scheduling, como se ilustra en la figura 1.1, estos niveles son:
•Planificador de la CPU o a corto plazo.
•Planificador a medio plazo.
•Planificador a largo plazo.
Algoritmos de planificación
En los siguientes subapartados vamos a estudiar ciertos algoritmos utilizados para planificar la CPU, la elección de uno (o de una mezcla de varios) depende de decisiones de diseño. Antes de exponer los algoritmos vamos a explicar ciertas medidas que se utilizan para evaluarlos.
•Porcentaje de utilización de la CPU por procesos de usuario. La CPU es un recurso caro que necesita ser explotado, los valores reales suelen estar entre un 40% y un 90%.
•Rendimiento (throughput) = nº de ráfagas por unidad de tiempo. Se define una ráfaga como el período de tiempo en que un proceso necesita la CPU; un proceso, durante su vida, alterna ráfagas con bloqueos. Por extensión, también se define como el nº de trabajos por unidad de tiempo.
•Tiempo de espera (E) = tiempo que una ráfaga ha permanecido en estado listo.
•Tiempo de finalización (F) = tiempo transcurrido desde que una ráfaga comienza a existir hasta que finaliza. F = E + t (t = tiempo de CPU de la ráfaga).
•Penalización (P) = E + t / t = F / t, es una medida adimensional que se puede aplicar homogéneamente a las ráfagas independientemente de su longitud.
En general, hay que maximizar los dos primeros parámetros y minimizar los tres últimos. Sin embargo, estos objetivos son contradictorios, el dedicar más tiempo de CPU a los usuarios se hace a costa de llamar menos al algoritmo de planificación (menos cambios de proceso), y de simplificarlo. Esto provoca que la CPU se reparta menos equitativamente entre los procesos, en detrimento de los últimos tres parámetros.
Así pues, dependiendo de los objetivos se elegirá cierto algoritmo. En los sistemas por lotes suele primar el rendimiento del sistema, mientras que en los sistemas interactivos es preferible minimizar, por ejemplo, el tiempo de espera.
Planificación de Plazo Fijo
En la planificación de plazo fijo se programan ciertos trabajos para terminarse en un tiempo específico o plazo fijo. Estas tareas pueden tener un gran valor si se entregan a tiempo, y carecer de él si se entregan después del plazo. Esta planificación es compleja por varios motivos:
Planificación Primero en Entrar-Primero en Salir (FIFO, First In First Out)
Cuando se tiene que elegir a qué proceso asignar la CPU se escoge al que llevara más tiempo listo. El proceso se mantiene en la CPU hasta que se bloquea voluntariamente.
Planficación por Turno Rotatorio (Round Robin).
Este es uno de los algoritmos más antiguos, sencillos y equitativos en el reparto de la CPU entre los procesos, muy válido para entornos de tiempo compartido. Cada proceso tiene asignado un intervalo de tiempo de ejecución, llamado cuantum o cuanto. Si el proceso agota su cuantum de tiempo, se elige a otro proceso para ocupar la CPU. Si el proceso se bloquea o termina antes de agotar su cuantum también se alterna el uso de la CPU. El round robin es muy fácil de implementar.
Tamaño del Cuanto
La determinación del tamaño del cuanto es vital para la operación efectiva de un sistema de cómputo. ¿Debe el cuanto ser pequeño o grande?, ¿fijo o variable?, ¿el mismo para todos los usuarios o debe determinarse por separado para cada uno?
Si el cuanto de tiempo es muy grande, cada proceso tendrá el tiempo necesario para terminar, de manera que el esquema de planificación por turno rotatorio degenera en uno de primero-en-entrar-primero-en-salir. Si el cuanto es muy pequeño, el gasto extra por cambio de proceso se convierte en el factor dominante y el rendimiento del sistema se degradará hasta el punto en que la mayor parte del tiempo se invierte en la conmutación del procesador, con muy poco o ningún tiempo para ejecutar los programas de los usuarios.
Planificación por Prioridad al más corto (SJF, Short Job First).
Al igual que en el algoritmo FIFO las ráfagas se ejecutan sin interrupción, por tanto, sólo es útil para entornos batch. Su característica es que cuando se activa el planificador, éste elige la ráfaga de menor duración. Es decir, introduce una noción de prioridad entre ráfagas. Hay que recordar que en los entornos batch se pueden hacer estimaciones del tiempo de ejecución de los procesos.
Planificación por Prioridad al Tiempo Restante más Corto (SRTF, Short Remaining Time First).
Es similar al anterior, con la diferencia de que si un nuevo proceso pasa a listo se activa el dispatcher para ver si es más corto que lo que queda por ejecutar del proceso en ejecución. Si es así el proceso en ejecución pasa a listo y su tiempo de estimación se decrementa con el tiempo que ha estado ejecutándose.
Planificación a la Tasa de Respuesta más Alta
Brinch Hansen desarrolló la estrategia de prioridad a la tasa de respueta más alta (HRN, highest-response-ratio-next) que corrige algunas deficiencias de SJF, particularmente el retraso excesivo de trabajos largos y el favoritismo excesivo para los trabajos cortos. HRN es un disciplina de planificación no apropiativa en la cual la prioridad de cada proceso no sólo se calcula en función del tiempo de servicio, sino también del tiempo que ha esperado para ser atendido. Cuando un trabajo obtiene el procesador, se ejecuta hasta terminar.
Planificación por el Comportamiento
Con este tipo de planificación se pretende garantizar al usuario cierta prestación del sistema y tratar de cumplirla. Si en un sistema tenemos 'n' usuarios lo normal será garantizar a cada uno de ellos al menos 1/n de la potencia del procesador. Para ello necesitamos del tiempo consumido por el procesador y el tiempo que lleva el proceso en el sistema. La cantidad de procesador que tiene derecho a consumir el proceso será el cociente entre el tiempo que lleva en el sistema entre el número de procesos que hay en el sistema.
SISTEMAS MULTIPROCESADORES
El concepto de trabajo en equipo, el dividir una tarea entre varias unidades de ejecución para que pueda completarse más rápidamente, fue naturalmente llevado al mundo de las computadoras prácticamente desde sus inicios. David Slotnick, quien fuera colaborador de Von Neumann, le hizo la propuesta de una máquina que contara con varias unidades de procesamiento central; sin embargo, al sentir de Von Neumann, la tecnología de la época no permitía la realización de semejante proyecto. Aun así, Slotnick continuó con sus ideas, lo que eventualmente daría origen a la ILLIAC IV (1964), considerada una de las primeras computadoras masivamente paralelas de la historia. En la actualidad, las computadoras más rápidas del mundo son las máquinas masivamente paralelas.
El cómputo paralelo ofrece una serie de ventajas que lo hacen particularmente atractivo para los requerimientos de capacidad de cómputo, en particular los de la comunidad científica. Una de estas ventajas es económica. El uso de componentes comunmente disponibles, en grandes cantidades, permite ofrecer mayor rendimiento, a un precio menor que el de máquinas con procesadores especialmente diseñados (como por ejemplo las máquinas de procesadores vectoriales y de propósito específico). Adicionalmente, las computadoras paralelas son inherentemente escalables, permitiendo actualizarlas para adecuarlas a una necesidad creciente. Las arquitecturas ``tradicionales'' se actualizan haciendo los procesadores existentes obsoletos por la introducción de nueva tecnología a un costo posiblemente elevado. Por otro lado, una arquitectura paralela se puede actualizar en términos de rendimiento simplemente agregando más procesadores.
En ocasiones se menciona también la limitante física; existen factores que limitan la velocidad máxima de un procesador, independientemente del factor económico. Barreras físicas infranqueables, tales como la velocidad de la luz, efectos cuánticos al reducir el tamaño de los elementos de los procesadores, y problemas causados por fenómenos eléctricos a pequeñas escalas, restringen la capacidad máxima de un sistema uniprocesador, dejando la opción obvia de colocar muchos procesadores para realizar cálculos cooperativamente.
Como toda nueva arquitectura, las máquinas paralelas poseen características, y plantean ventajas y desventajas, que obligan a considerar cuidadosamente su utilización. También, dentro del mundo de las máquinas paralelas, existen dos enfoques con distintas características: la arquitectura SMP y la arquitectura MPP.
SISTEMAS DE TIEMPOS REALES
Es bien sabido que los Sistemas de Tiempo Real pueden llevar el control eventos que ocurren en el mundo real, por lo tanto es un sistema que responde a un estímulo externo dentro de un tiempo especificado. Entonces los sistemas de tiempo real interactúan con el entorno que se le presente y pueden ejecutar acciones de respuesta para determinados estímulos de dicho entorno. Este tipo de sistemas tienen muchas características que benefician a todo el individuo que pretenda interactuar con ellos
Definición: básicamente los sistemas de tiempo real se definen como sistemas informáticos que tienen la capacidad de interactuar rápidamente con su entorno físico, el cual puede realizar funciones de supervisión o control para su mismo beneficio. Todos los sistemas de tiempo real tienen la facultad de ejecutar actividades o tareas en de intervalos de tiempo bien definidos.
Todas las tareas son ejecutadas inmediatamente en una forma concurrente, esto es para sincronizar el funcionamiento del sistema con la simultaneidad de acciones que se presentan en el mundo físico. En los sistemas de tiempo real los intervalos de tiempo en que se ejecutan las tareas se definen por un esquema de activación y por un plazo de ejecución. En lo que respecta al esquema de activación puede ser periódico, es decir en intervalos regulares, o también puede ser aperiódico, es decir, en respuesta a sucesos externos que ocurren de forma irregular.
La mayoría de los STR son utilizados cuando existen requerimientos de tiempo muy rígidos en las operaciones o en el flujo de datos, generalmente son requeridos como sistemas de control en una aplicación dedicada. La eficiencia de los STR no solo depende de la exactitud de los resultados de cómputo, sino también del momento en que los entrega. La predictibilidad es su característica principal de este tipo de sistemas. Este tipo de sistemas se caracterizan por tener que producir una salida, como respuesta a una entrada, en un tiempo determinado. El intervalo de tiempo que se presenta entre la entrada y la salida debe ser muy pequeño para que la respuesta temporal del sistema sea aceptable.
Cuando se diseña un sistema de tiempo real se pasa por varias fases:
1.- Se identifican todas las tareas que se tienen que realizar y también se identifican las restricciones temporales que se pretenden cumplir.
2.- Posteriormente se codifican los programas que ejecutarán las tareas
3.- Posteriormente se pasa a medir el tiempo de cómputo de cada tarea y se realiza un análisis de planificabilidad.
Este análisis consiste en aplicar unas pruebas al conjunto de tareas de tal forma que si éstas pasan el test entonces se puede garantizar que ninguna tarea perderá su plazo de ejecución. De lo contrario si no pasan el test se tiene que volver a comenzar desde el principio, es decir, comenzar de nuevo, utilizando otro procesador más potente o utilizando otros algoritmos para implementar las tareas.
Generalidades de los str
• Requiere técnicas de análisis, diseño y prueba que son desconocidas en otras áreas de aplicación.
• Esta muy acoplado con el mundo externo.
• Opera bajo condiciones de rendimiento muy rigurosas.
• Esta conducido por el hardware, software, por las características del sistema operativo, por requisitos de la aplicación, así como por aspectos de diseño.
Elementos que componen un str
• Aspectos de integración y de rendimiento.
• Manejo de Interrupciones.
• Bases de Datos de Tiempo Real.
• Sistemas Operativos de Tiempo Real.
• Lenguajes de Tiempo Real.
• Sincronización y comunicación de tareas.
sábado, 3 de julio de 2010
TEMAS EXPUESTOS GRUPO IV
Presentacion de Jorge http://docs.google.com/present/view?id=dckqs4tk_7dj6stsgp
Presentacion de Oliver http://docs.google.com/present/view?id=dckqs4tk_075j5d6d4
Presentacion de Oliver http://docs.google.com/present/view?id=dckqs4tk_075j5d6d4
¿QUÉ ES UN PROCESO?
Hasta ahora hemos utilizado siempre el término programa. A partir de ahora distinguiremos entre programa y proceso. Un programa es una secuencia de instrucciones escrita en un lenguaje dado. Un proceso es una instancia de ejecución de un programa, caracterizado por su contador de programa, su palabra de estado, sus registros del procesador, su segmento de texto, pila y datos, etc. Un programa es un concepto estático, mientras que un proceso es un concepto dinámico. Es posible que un programa sea ejecutado por varios usuarios en un sistema multiusuario, por cada una de estas ejecuciones existirá un proceso, con su contador de programa, registros, etc. El sistema operativo necesita el concepto de proceso para poder gestionar el procesador mediante la técnica de multiprogramación o de tiempo compartido, de hecho, el proceso es la unidad panificable, o de asignación de la CPU.
Estados de un proceso y Transiciones de estado de los procesos
Durante su vida, un proceso puede pasar por una serie de estados discretos, algunos de ellos son:
•En ejecución: El proceso ocupa la CPU actualmente, es decir, se está ejecutando.
•Listo o preparado: El proceso dispone de todos los recursos para su ejecución, sólo le falta la CPU.
•Bloqueado: Al proceso le falta algún recurso para poder seguir ejecutándose, además de la CPU. Por recurso se pueden entender un dispositivo, un dato, etc. El proceso necesita que ocurra algún evento que le permita poder proseguir su ejecución.
Transiciones de estado de los procesos
A continuación se dan ejemplos de eventos que pueden provocar transiciones de estado en un proceso en este modelo de tres estados. La mayoría de estos eventos se discutirán con profundidad a lo largo del curso:
•De ejecución á Bloqueado: al iniciar una operación de E/S, al realizar una operación WAIT sobre un semáforo a cero (en el tema de procesos concurrentes se estudiarán los semáforos).
•De ejecución á Listo: por ejemplo, en un sistema de tiempo compartido, cuando el proceso que ocupa la CPU lleva demasiado tiempo ejecutándose continuamente (agota su cuanto) el sistema operativo decide que otro proceso ocupe la CPU, pasando el proceso que ocupaba la CPU a estado listo.
•De Listo á en ejecución: cuando lo requiere el planificador de la CPU (veremos el planificador de la CPU en el tema de planificación de procesos).
•De Bloqueado á Listo: se dispone del recurso por el que se había bloqueado el proceso. Por ejemplo, termina la operación de E/S, o se produce una operación SIGNAL sobre el semáforo en que se bloqueó el proceso, no habiendo otros procesos bloqueados en el semáforo.
El bloque de control de proceso
El bloque de control de proceso es la estructura de datos central y más importante de un sistema operativo. Cada bloque de control de proceso contiene toda la información de un proceso que necesita un sistema operativo para su control. Estos bloques son leídos y/o modificados por casi todos los módulos de un sistema operativo, incluyendo aquellos que tienen que ver con la planificación, la asignación de recursos, el tratamiento de interrupciones y el análisis y supervisión del rendimiento. Puede decirse que el conjunto de los bloques de control de procesos definen el estado del sistema operativo. El conjunto de todos los PCB’s se guarda en una estructura del sistema operativo llamada tabla de procesos, la cual se puede implementar como un vector o un lista enlazada. La tabla de procesos reside en memoria principal, debido a su alta frecuencia de consulta.
Operaciones con procesos
Los sistemas que administran procesos deben ser capaces de realizar ciertas operaciones sobre y con los procesos. Tales operaciones incluyen:
• Crear y destruir un proceso
• Suspender y reanudar un proceso
• Cambiar la prioridad de un proceso
• Bloquear y "desbloquear" un proceso
• Planificar un proceso (asignarle la CPU)
• Permitir que un proceso se comunique con otro (a esto se denomina comunicación entre procesos, y se estudiará en el tema de procesos concurrentes).
• Crear un proceso implica muchas operaciones, tales como:
• Buscarle un identificador
• Insertarlo en la tabla de procesos
• Determinar la prioridad inicial del proceso
• Crear el PCB
• Asignar los recursos iniciales al proceso
Un proceso puede crear un nuevo proceso. Si lo hace, el proceso creador se denomina proceso padre, y el proceso creado, proceso hijo. Sólo se necesita un padre para crear un hijo. Tal creación origina una estructura jerárquica de procesos, en la cual cada hijo tiene sólo un padre, pero un padre puede tener muchos hijos. En el sistema operativo UNIX la llamada al sistema ‘fork’ crea un proceso hijo. Destruir un proceso implica eliminarlo del sistema. Se le borra de las tablas o listas del sistema, sus recursos se devuelven al sistema y su PCB se borra (es decir, el espacio de memoria ocupado por su PCB se devuelve al espacio de memoria disponible). La destrucción de un proceso es más difícil cuando éste ha creado otros procesos. En algunos sistemas un proceso hijo se destruye automáticamente cuando su padre es destruido; en otros sistemas, los procesos creados son independientes de su padre y la destrucción de este último no tiene efecto sobre sus hijos.
Un proceso suspendido o bloqueado no puede proseguir sino hasta que lo reanuda otro proceso. La suspensión es una operación importante, y ha sido puesta en práctica de diferentes formas en diversos sistemas. La suspensión dura por lo normal sólo periodos breves. Muchas veces, el sistema efectúa las suspensiones para eliminar temporalmente ciertos procesos, y así reducir la carga del sistema durante una situación de carga máxima. Cuando hay suspensiones largas se debe liberar los recursos del proceso. La decisión de liberar o no los recursos dependen mucho de la naturaleza de cada recurso. La memoria principal debe ser liberada de inmediato cuando se suspenda un proceso; una unidad de cinta puede ser retenida brevemente por un proceso suspendido, pero debe ser liberada si el proceso se suspende por un periodo largo o indefinido. Reanudar (o activar) un proceso implica reiniciarlo a partir del punto en el que se suspendió. Cambiar la prioridad de un proceso normalmente no implica más que modificar el valor de la prioridad en el PCB.
Modos de Ejecución
Antes de continuar la discusión sobre la forma en que el sistema operativo gestiona los procesos, hace falta distinguir entre el modo de ejecución del procesador que normalmente se asocia con el sistema operativo y el modo que normalmente se asocia con los programas de usuario.
Cambio de Proceso
A primera vista, la función de cambio de proceso parece sencilla. En cierto momento, un proceso que se está ejecutando se interrumpe, el sistema operativo pone a otro proceso en el estado de ejecución y pasa el control a dicho proceso. Sin embargo, surgen diversas cuestiones de diseño
Procesos y Threads
El concepto de proceso es más complejo y sutil que el presentado hasta ahora. Engloba dos conceptos separados y potencialmente independientes: uno relativo a la propiedad de recursos y otro que hace referencia a la ejecución.
• Unidad que posee recursos: A un proceso se le asigna un espacio de memoria y, de tanto en tanto, se le puede asignar otros recursos como dispositivos de E/S o ficheros.
• Unidad a la que se le asigna el procesador: Un proceso es un flujo de ejecución (una traza) a través de uno o más programas. Esta ejecución se entremezcla con la de otros procesos. De tal forma, que un proceso tiene un estado (en ejecución, listo, etc.) y una prioridad de expedición u origen. La unidad planificada y expedida por el sistema operativo es el proceso.
Estados de un proceso y Transiciones de estado de los procesos
Durante su vida, un proceso puede pasar por una serie de estados discretos, algunos de ellos son:
•En ejecución: El proceso ocupa la CPU actualmente, es decir, se está ejecutando.
•Listo o preparado: El proceso dispone de todos los recursos para su ejecución, sólo le falta la CPU.
•Bloqueado: Al proceso le falta algún recurso para poder seguir ejecutándose, además de la CPU. Por recurso se pueden entender un dispositivo, un dato, etc. El proceso necesita que ocurra algún evento que le permita poder proseguir su ejecución.
Transiciones de estado de los procesos
A continuación se dan ejemplos de eventos que pueden provocar transiciones de estado en un proceso en este modelo de tres estados. La mayoría de estos eventos se discutirán con profundidad a lo largo del curso:
•De ejecución á Bloqueado: al iniciar una operación de E/S, al realizar una operación WAIT sobre un semáforo a cero (en el tema de procesos concurrentes se estudiarán los semáforos).
•De ejecución á Listo: por ejemplo, en un sistema de tiempo compartido, cuando el proceso que ocupa la CPU lleva demasiado tiempo ejecutándose continuamente (agota su cuanto) el sistema operativo decide que otro proceso ocupe la CPU, pasando el proceso que ocupaba la CPU a estado listo.
•De Listo á en ejecución: cuando lo requiere el planificador de la CPU (veremos el planificador de la CPU en el tema de planificación de procesos).
•De Bloqueado á Listo: se dispone del recurso por el que se había bloqueado el proceso. Por ejemplo, termina la operación de E/S, o se produce una operación SIGNAL sobre el semáforo en que se bloqueó el proceso, no habiendo otros procesos bloqueados en el semáforo.
El bloque de control de proceso
El bloque de control de proceso es la estructura de datos central y más importante de un sistema operativo. Cada bloque de control de proceso contiene toda la información de un proceso que necesita un sistema operativo para su control. Estos bloques son leídos y/o modificados por casi todos los módulos de un sistema operativo, incluyendo aquellos que tienen que ver con la planificación, la asignación de recursos, el tratamiento de interrupciones y el análisis y supervisión del rendimiento. Puede decirse que el conjunto de los bloques de control de procesos definen el estado del sistema operativo. El conjunto de todos los PCB’s se guarda en una estructura del sistema operativo llamada tabla de procesos, la cual se puede implementar como un vector o un lista enlazada. La tabla de procesos reside en memoria principal, debido a su alta frecuencia de consulta.
Operaciones con procesos
Los sistemas que administran procesos deben ser capaces de realizar ciertas operaciones sobre y con los procesos. Tales operaciones incluyen:
• Crear y destruir un proceso
• Suspender y reanudar un proceso
• Cambiar la prioridad de un proceso
• Bloquear y "desbloquear" un proceso
• Planificar un proceso (asignarle la CPU)
• Permitir que un proceso se comunique con otro (a esto se denomina comunicación entre procesos, y se estudiará en el tema de procesos concurrentes).
• Crear un proceso implica muchas operaciones, tales como:
• Buscarle un identificador
• Insertarlo en la tabla de procesos
• Determinar la prioridad inicial del proceso
• Crear el PCB
• Asignar los recursos iniciales al proceso
Un proceso puede crear un nuevo proceso. Si lo hace, el proceso creador se denomina proceso padre, y el proceso creado, proceso hijo. Sólo se necesita un padre para crear un hijo. Tal creación origina una estructura jerárquica de procesos, en la cual cada hijo tiene sólo un padre, pero un padre puede tener muchos hijos. En el sistema operativo UNIX la llamada al sistema ‘fork’ crea un proceso hijo. Destruir un proceso implica eliminarlo del sistema. Se le borra de las tablas o listas del sistema, sus recursos se devuelven al sistema y su PCB se borra (es decir, el espacio de memoria ocupado por su PCB se devuelve al espacio de memoria disponible). La destrucción de un proceso es más difícil cuando éste ha creado otros procesos. En algunos sistemas un proceso hijo se destruye automáticamente cuando su padre es destruido; en otros sistemas, los procesos creados son independientes de su padre y la destrucción de este último no tiene efecto sobre sus hijos.
Un proceso suspendido o bloqueado no puede proseguir sino hasta que lo reanuda otro proceso. La suspensión es una operación importante, y ha sido puesta en práctica de diferentes formas en diversos sistemas. La suspensión dura por lo normal sólo periodos breves. Muchas veces, el sistema efectúa las suspensiones para eliminar temporalmente ciertos procesos, y así reducir la carga del sistema durante una situación de carga máxima. Cuando hay suspensiones largas se debe liberar los recursos del proceso. La decisión de liberar o no los recursos dependen mucho de la naturaleza de cada recurso. La memoria principal debe ser liberada de inmediato cuando se suspenda un proceso; una unidad de cinta puede ser retenida brevemente por un proceso suspendido, pero debe ser liberada si el proceso se suspende por un periodo largo o indefinido. Reanudar (o activar) un proceso implica reiniciarlo a partir del punto en el que se suspendió. Cambiar la prioridad de un proceso normalmente no implica más que modificar el valor de la prioridad en el PCB.
Modos de Ejecución
Antes de continuar la discusión sobre la forma en que el sistema operativo gestiona los procesos, hace falta distinguir entre el modo de ejecución del procesador que normalmente se asocia con el sistema operativo y el modo que normalmente se asocia con los programas de usuario.
Cambio de Proceso
A primera vista, la función de cambio de proceso parece sencilla. En cierto momento, un proceso que se está ejecutando se interrumpe, el sistema operativo pone a otro proceso en el estado de ejecución y pasa el control a dicho proceso. Sin embargo, surgen diversas cuestiones de diseño
Procesos y Threads
El concepto de proceso es más complejo y sutil que el presentado hasta ahora. Engloba dos conceptos separados y potencialmente independientes: uno relativo a la propiedad de recursos y otro que hace referencia a la ejecución.
• Unidad que posee recursos: A un proceso se le asigna un espacio de memoria y, de tanto en tanto, se le puede asignar otros recursos como dispositivos de E/S o ficheros.
• Unidad a la que se le asigna el procesador: Un proceso es un flujo de ejecución (una traza) a través de uno o más programas. Esta ejecución se entremezcla con la de otros procesos. De tal forma, que un proceso tiene un estado (en ejecución, listo, etc.) y una prioridad de expedición u origen. La unidad planificada y expedida por el sistema operativo es el proceso.
Windows 8

Microsft esta trabajando en Windows 8 verion 128 bits, algunos de los accesorios que se han escuchado que incluira este sistema operativo sera: simplicidad mejorada, mejor soporte de toque y gestos, así como soporte a pantallas de tamaño más pequeño.
¡¡¡¡Microsoft sacara a Windows 8 pero sus ojos estan en Apple!!!!
Sustraido del texto de Ina Fried de Cnet News
http://news.cnet.com/8301-13860_3-20009078-56.html?tag=smallCarouselArea.0
X box 360 Slim

Microsoft lanza su X box 360 Slim con unos cuantos accesorios mejores que el anterior 360, los cuales incluye tamayo, visualizacion, plataforama para controlar el sobrecalentamiento, un disco duro mas pequeño entre otras. Pero aparte de tod eso la pregunta que se hacen todo es cual es el mejor, sin duda alguna que para hacer este pregunta hay que poner diferentes departamentos para ver la diferencia asi que:
Manos en el dispositivo: sin lugar a duda que el X box 360 Slim al estar mas adelantado a la epoca le sobre pasa al 360 normal, ya que consta de una apariencia mas tecnologica y es mas pequeño, asi que en ese sentido el Slim gana.
Accesibility y Funcionamiento: en el funcionamiento se basa en un prioridad que el X box 360 siempre fallaba y es en el sobrecalentamiento que se apaga automaticamente cuando este llegaba a sobrecalentarse demasiado, el Slim llego con un diseño que automaticamente presiente un sobrecalentamiento se apaga y no arriesga el dispositivo y no hace tanto ruido como el 360.
Precios y Accesorios: cuando se refiere a los precios y accesorios como desposito nuevo tiene que valer mas asi que el Slim esta por los 300$ dolares solamente con lo necesario,mientras que el 360 y otros modelos estan a precios inferiores y vienen con varios juegos y si se encuentran a mayor precio de 300$ dolares es porque llevan consigo unos cuantos juegos de mas.
Asi que si tienes tu X box 360 normal no es necesario que lo cambies, pero si decides comprar uno que sea el X box 360 Slim.
Sutraido del texto de Robert Workman de Tech News Daily
http://www.technewsdaily.com/xbox-360-slim-versus-xbox-360-whats-the-better-deal-0801/
Cisco Tablet "Cius"

Entra otro competidor al batalla de las tablet pc's, y es de Cisco, se llama "Cius" pesa alrededor de 1.15 libras y trae consigo una pantalla de 7 pulgadas con una resolucion SVGA (Super Video Graphics Array), tambien trae consigo una camara 720p y es capas de grabar 30 marcos por segundo. Sera usual para hacer, editar y subir a la red videos, tambien para hacer conferencias; vendra con modelos Wi-Fi, modelos 3G y proximamente modelo 4G para el 2011.
Su batteria sera de durabilidad aproximada a las ocho horas, soportara usb y bluetooth tambien estara integrado un HD soundstation; el sistema operativo que usara sera de Android. Aunque el precio todavia no ah sido puesto saldra accesible para usuarios en este otoño, con una salida al todo el publico en primavera del 2011.
Sutraido del texto de Robert Workman de Tech News Daily
http://www.technewsdaily.com/cisco-introduces-the-cius-tablet-0800/
http://www.technewsdaily.com/cisco-introduces-the-cius-tablet-0800/
Tecnologia y Espionaje

La nueva herramienta que esta siendo elaborada por la Agencia de Defensa de Busqueda de Proyectos Avansados [Defense Advanced Research Projects Agency (DARPA)] llamado Nano Vehiculo Aereo [Nano Aerial Vehicle (NAV)], es nada mas y nada menos que un pequeño dispositivo camulfajeado en una pequeña ave, con la mision de espionar. Sus capacidades son extraodinarias para lo pequeño que es, puede alcanzar alredodor de 20mph, y volar dentro y fuera de edificios, usando su propia fuente de energia y usando sus alas para propulsion.
Este modelo de dispositivo fue escogido en una competencia de Lockheed Martin, MicroPropulsion Inc., y Draper Laboratory al final del primer programa el pasado año, es un despositivo sumamente ligero, y se estima que habran muchos de estos, muchos micrositemas autonomos en la calle, dentro de 10 o 15 años.
Sustraido del texto de Ned Smith de Tech News Daily
http://www.technewsdaily.com/-military-plans-hummingbird-sized-spies-in-the-sky-0804/
Suscribirse a:
Entradas (Atom)