domingo, 18 de abril de 2010

Diecisieteava clase

Hilos Windows, estructura de un proceso en Windows

Implementa mapeo uno a uno

Cada hilo contiene

Ø Una id

Ø Conjunto de registros

Ø Pilas de usuarios y kernel separadas

Ø ESTADO DE HILOS EN WINDOWS

Ejecutables: hilo en posibilidad de ejecutarse: listo, Stanby, Ejecutando

No ejecutable: Transición, Esperando, Finalizado

Ø ESTADOS DE HILOS DE PROCESOS EN LINUX

Comparten el mismo

Ø ESTADO DE HILOS EN SOLARIS

Ejecutables: Planificables x el procesador

No ejecutables: No planificables x el procesador

HILOS DE JAVA PUDEN SER CREADOR POR:

Ø Extensión de la clase de hilos

Ø Implementando una interface que los corra

PLANIFICACIÓN DE LA CPU

Conceptos Básicos

Se encarga como es q se utiliza el procesador, sistemas multiprogramados varios procesos a la vez. Tratar de repartir tiempos, algoritmos de planificación es buena opción para desarrollar este tipo de actividades.

Ø La máxima utilización de la CPU se obtiene con multiprogramación

Ø El ciclo de ráfagas de CPU-E/S- El proceso de ejecución consiste en un

Ø Distribución de ráfagas de CPU

Planificador de CPU

Ø Selecciona de los procesos en memoria aquellos que estén listos para ejecutar, y le entrega la CPU a uno de ellos

Ø Las decisiones de planificación de CPU tiene lugar cuando un proceso:

1. Conmuta de un estado de corrida a un estado de espera

2. Conmuta de un estado de corrida a un estado de listo

3. Conmuta de esperando a listo

4. Termina

Ø La planificación en 1 y 4 no es expropiativa, en los otros es expropiativa (escoge para ejecutar el de mejores condiciones (que el tiempo de ejecución sea menor que el tiempo de atención))

Despachador

Ø Le da control de la CPU al proceso seleccionado por el planificador de corto plazo, esto incluye

1. Conmutación de contexto

2. Conmutación al modo usuario

3. Saltar a la ubicación adecuada en el programa del usuario para reiniciar el programa

Latencia de despacho

Tiempo en que se demora el despachador para parar un proceso e iniciar otro.

Criterios de planificación

Ø Utilización de CPU-Mantener la CPU tan ocupada como sea posible

Ø Rendimiento: numero de procesos que culminan su ejecución por unidad de tiempo

Ø Tiempo de entrega/estancia/retorno

Ø Tiempo de esprea

Ø Tiempo de respuesta

Ø Predicibilidad: Determinístico, bajo las mismas condiciones debe realizar lo mismo y hacer lo mismo

Ningún proceso se muere por inanición, todo proceso debe progresar.

Ø Máxima utilización de CPU

Ø Máximo rendimiento

Ø Minimizar el tiempo de entrega

Ø Minimizar el tiempo de espera

Ø Minimizar el tiempo de respuesta

Ø Justicia

Ø Máximo num de usuarios intereactivos

Ø Máxima capacidad de ejecución

Ø Predicibilidad

Ø Minimización de sobrecarga

Algoritmos de planificación

Reglas por medio de las cuales el sistema determina quién debe ser el primero en iniciar

Ø FCFS/PEPS: Los procesos cortos sufren si llegan después de los procesos largos, a veces justa, predecible.

Ø SJF/SPN: el tiempo restante compensa a todos

Ø Round-Robin, asignación cíclica/turno. Equilibra FCFS/SRTN, usa cola circular con FCFS/ prioridades con slice/quantum para cada proceso

Ø Por prioridad, siempre se elige el de mayor prioridad, compensada por prioridad envejecimiento (la compensación por envejecimiento, mejora la prioridad de los procesos para no dejar de atenderlos)

Ø HRN: Escoge el proceso con tasa de respuesta más alto, es costosa Prioridad=(w+s)/s

Ø MLQ, Colas multinivel: Combina procesos del sistema (por prioridad), interactivos(RR), lotes (FCFS/SRTN)

Ø MLQ con retroalimentación: Los procesos se pueden reubicar en diferentes colas de acuerdo al comportamiento. Los procesos limitados por procesos se envían a la cola de menor prioridad, los interactivos se ubican con mayor prioridad

Ø FSS (fair shale schedule), porción justa o reparto equitativo, los grupo de porción justa obtiene prioridades de acuerdo con su proximidad al logro de sus metas en la utilización de recursos. Los grupos que van mal tienen mayor prioridad.

Dieciseisava clase

LA CPU CAMBIA DE PROCESO A PROCESO

Ø Cuando la cps cambia a otro proceso, el sistema debe guardar el estado del proceso anterior y cargar el estado guardado del nuevo proceso

Ø La conmutación de contexto es trabajo extra, el sistema no realiza trabajos útil mientras conmuta, depende en gran medida el apoyo del hardware

Ø Cuando un proceso está ejecutándose su estado reside en los registros del computador

Ø Cuando un proceso no se está ejecutando, su estado reside en el BCP.

Planificadores

Ø El planificador de corto plazo o planificador de CPU selecciona qye proceso debe ser ejecutado enseguida y se le asigna la CPU. Bajo nivel, scheduler/despachador es solicitado muy frecuentemente (milisegundos (debe ser rápido))

Ø Planificador de mediano plazo: intermedio

Ø Planificador de largo plazo o planificador de trabajos: selecciona que proceso debe ser traido a la cola de listos, es solicitado con poca frecuencia (seg, minutos (puede ser lento))

Ø EL planificador de largo plazo controla el grado de multiprogramación

Ø Los procesos pueden ser descritos como:

· Procesos limitados por E/S-consumen más tiempo realizando operaciones de E/S que cálculos, causan muchas ráfagas cortas a la CPU

· Procesos limitados por CPU consumen mas tiempo

Colas de largo plazo: admisión proceso

Colas de mediano plazo: colas de listos, suspendidos o bloqueados

Colas de corto plazo:

Creacion de procesos

Ø Los procesos padren crean procesos hijos, los cuales, a su vez crean otros procesos, conformando un árbol de procesos.

Ø Recursos compartidos:

· Los procesos padres e hijos comparten los recursos

· Los hijos comparten un subconjunto de los recursos del padre

· EL padre y el hijo no comparten recursos

Ø Ejecución

· El padre y el hijo se ejecutan concurrentemente

· El padre espera a que termine el hijo

Ø Espacio de direcciones

Jerarquía de procesos

Ø Grupos de proceso dependientes de cada Shell

Ø Familia de procesos

· Proceso hijo

· Proceso padre

· Proceso hermano

· Proceso abuelo

Ø Vida de un proceso

· Crea

· Ejecuta

· Muere o termina

Ø Ejecución del proceso

· Batch o por lotes: Procesos que se disparan y no necesitan interacción (segundo plano). Ejemplo: el spooler y el transcriptor del spool

· Interactivo: proceso utiliza un dispositivo de E/S para dialogar con el utilizador (primer plano)

Ø Grupo de procesos

Procesos cooperativos

Los proceso independientes no pueden afectar o se afectados por la ejecución de otros procesos.

Ø Los procesos cooperativos pueden afectar o se afectados por la ejecución de otros procesos

Ø El problema de productores y consumidores es un paradigma de los procesos cooperativos, los productores producen información que es consumido por los procesos consumidores

· Buffer ilimitado o no acotado, no establece un límite práctico para el tamaño del buffer.

· El buffer limitado o acotado, asume que hay un tamaño fijo de buffer

HILOS

Ø Beneficios

Ø Hilaos de usuario y de núcleo

Ø Modelos multihilos

Ø Hilos Solaris 2

Ø Hilos Java

Ms-dos usa un solo hilo por proceso

Unix V soporta múltiples procesos por usuarios pero solo soporta un hilo por proceso

Windows NT, 2000, XP, Mach

Un hilo (o proceso ligero/liviano) es una unidad básica de utilización de la CPU, consiste de:

Ø Contador del programa

Ø Conjunto de registros

Ø Espacio de pila

Un hilo comparte con sus hilos pares su:

Ø Sección de código

Ø Sección de datos

Ø Los recursos del sistema operativo

Colectivamente conocido como una tarea.

Un proceso tradicional o pesado es igual a una tarea con un solo hilo

Mutlihilos

Ø Capacidad de un SO para soportar múltiples trayectorias concurrentes de ejecución dentro de un mismo proceso

Ø Algunos sistemas UNIX utilizan múltiples procesos de usuario pero con un solo hilo

Ø El ambiente de ejecución Java utiliza con múltiples hilos

Ø Múltiples procesos y múltiples hilos se encuentran en Windows, Solaris, y la mayoría de las versiones modernas de UNIX

Caracterísiticas multihilos:

Ø Dentro de un proceso hay subproceso y se comparten los recursos

Ventajas:

Ø Trabajar en un ambiente pseudoparalelo

Ø En una tarea multihilo, mientras un hilo servidor está bloqueado y esperando, un segundo hilo en la misma tarea puede estar corriendo

· La cooperación de múltiples hilos en el mismo trabajo le proporciona un alto rendimiento y mejora la eficiencia.

· Las aplicaciones que requieren compartir un buffer común (por ejemplo, productor-consumidor) se benefician de la utilización

Ø Los hilos proporcionan un mecanismo que permiten a los procesos secuenciales hacer llamadas al sistema bloqueadoras y al mismo tiempo lograr paralelismo

Ø El núcleo puede apoyar los hilos como en Mach y OS/2

Ø Los hilos a nivel de usuario; soportados arriba por el kernel, a través de una seria de llamadas de biblioteca en el nivel del usuario (como en el proyecto CMU de Andrew)

Ø Un enfoque híbrido implementa tanto los hilos a nivel de usuario como hilos apoyados por el kernel (como Solaris 2)

Hilos: procesos

Descripción

Ejemplo

1:1

Cada hilo es un único proceso con su propio espacio de direcciones y sus recursos

Implementaciones tradicionales de UNIX

M:1

Un proceso define un espacio de direcciones y la propiedad sobre los recursos es dinámica. Dentro del mismo proceso se pueden crear y ejecutar multiples hilos

Windows NT, Solaris, OS/2, OS/390, MACH

1:M

Un hilo puede mirgrar desde un ambiente de proceso a toro. Esto permite que un hilo se puede mover fácilmente entre sistemas distintos

Ra (Clouds), Esmerald

M:M

Combina los atributos de M:1 y 1:M

TRIX

martes, 6 de abril de 2010

Resumen Catorceava y Quinceava clase

PROCESOS

1. Conceptos de procesos

2. Operaciones sobre procesos

3. Procesos cooperativos

4. Hilos

5. Planeación de procesos

Un SO ejecuta una variedad de programas:

Ø Sistemas por lotes-trabajos

Ø Sistemas de tiempo compartido-programas de usuario o tareas

Definición: Un programa en ejecución con el entorno asociado/unidad de procesamiento gestionada por el SO

Un proceso incluye:

Ø Un contador de programa

Ø Pila

Ø Sección de datos, código

Programa: Ente pasivo

Proceso: Ente activo


Sistema con memoria virtual

Ø La información de traducción está en la tabla de páginas

Ø Preasignación de zona de intercambio: Todas la páginas están en disco, algunas están copiadas en marcos de páginas

Traza de los procesos

Traza: Listado de las secuencia de instrucciones que se ejecutan para un proceso.

Modelo simplificado

Ø Un proceso puede estar en dos estados

ü Corriendo

ü No corriendo


Despacho es la orden para que sea ejecutado o la iniciación de un estado a otro.

Pausa: es el momento o la orden para salir, o detener la ejecución.

Queue: lista de listos, es como lista de espera para ejecución y se da la transición de despacho.

En la medida que se ejecuta un proceso su estado modifica:

Ø Nuevo: El proceso se está creando

Ø Corriendo: Las instrucciones están ejecutándose

Ø Esperando/Bloqueado: El proceso está a la espera de la ocurrencia de algún evento.

Ø Listo: El proceso está esperando a ser asignado al procesador

Ø Terminando: El proceso ha terminado su ejecución.










Resumen Treceava clase


Tipos de SOS de acuerdo al kernel

Macrokernel (históricamente nació)/Monokernel: El macrokernel ya era ineficiente y consumía muchos recursos de máquina.

Microkernel: Achicamiento del macrokernel, recursos específicos

Nanokernel: Tener lo esencial.

Exokernel: el SO no sea residente, funcionamiento de forma atomizada, hasta llegar al momento de no tener SO.

Arquitecutura microkernel

Ø Arquitectura de sistemas operativos microkernel

ü Proporciona solo un pequeño número de servicios

· Intenta tener un kernel pequeño y escalabe

ü Alto grado de modularidad

· Extensible, portable y escalable

ü Se incrementa el nivel de comunicación entre módulos

· Puede degradar el rendimiento del sistema

ü Fiasco, AIZ, AmigaOS, Amoeba, BeOS, Brainix, Chorus microkernel, Coyotos, EROS, Haiku, K42, L4, Mach, NEXSTEP, OPENSTEP,OSX, MERT, MINIX, MorphOS, Phoenix-RTOS, QNX. LSE/OS (nanokernel), KeyKOS (nanokernel).


Beneficios de una organización micronúcleo

Ø Interfaces uniformes en la peticiones realizadas por un proceso

ü Los procesos no necesitan diferenciar entre servicios a nivel de núcleo y a nivel de usuario

ü Todos los servicios se proporcionan a través de paso de mensajes

Ø Extensibilidad

Ø Flexibilidad

Ø Portabilidad

Ø Fiabilidad

Ø Soporte de sistemas

Exokernel

Ø Un Os se interpone entre las aplicaciones y el hw

Ø Elimina el concepto de abstracción sobre la cual corren las aplicaciones

Ø Se asegura de multiplexar el hw desnudo: a través de primitivas de hw, librerías a nivel de aplicación y servidores

Ø Ej. XOK con Exos (librería sos tipo unix) de MIT, Aegis, Nemesis (Cambridge)

Ø El servidor Cheetah se construye sobre XOK

Ø Es esencialmente la extensión de la filosofía de la arquitectura Risc en cpu al nivel del sistema operativo



Objetivos de diseño del sistema

Ø Objetivos de los usuarios: que el sistema operativo sea adecuado para su uso, fácil de aprender, confiable, seguro y rápido.

Ø Objetivos del sistema: El sistema operativo debe ser fácil de diseñar, implementar y mantener, de la misma forma que sea flexible, confiable, libre de errores y eficiente.

Jerqia de diseño de SO (Brown/Denning)

Nivel

Nombre

Objeto

Ejemplo de operaciones

7

Memoria virtual

Espacio direcciones lógicas, segmentos, páginas

Read, write, fetch

6

Almacenamiento secundario local

Bloques de dispositivos, canales de dispositivos

Read, write, allocate (espacio en disco duro), free

5

Procesos primitivos

Procesos primitivos, semáforos, lista de listos

Suspend, resume, wait. Signal

4

Programa de manejo de interrupciones

Manejo de interrupciones, guardar contexto

Invoke, mask, unmask

3

Procedimientos

Procedimientos, llamado a pila, presentación

Mark stack, cll return

2

Conjunto de instrucciones del procesador

Evaluación de la pila, interpretador de microprograma, datos escalares y arreglos

Load, sotre, add, subtract, branch

1

Electrónica de circuitos

Registros, compuertas, buses, etc.

Clear, transfer, activce, complement


Nivel

Nombre

Objeto

Ejemplo operaciones

13

Shell

Ambiente de programación de usuario

Instrucciones en lenguaje Shell

12

Procesos de usuario

Procesos de usuario, espacio direcciones virtuales

Quit, kill, suspend, resume

11

Directorios

Directorios de usuario (agrupación lógica)

Create, destroy, attach, detach, search, list

10

Dispositivos

Dispositivos externos, impresoras, pantallas, teclados

Create, closer, read, write

9

Sistemas de archivos

Archivos

Create, destroy, open, close, read, write

8

Comunicaciones

Tuberías

Create, destroy, open, close, read, write

Implementación del sistema

Ø Los sistemas operativos tradicionalmente se han escrito en ensamblador, ahora pueden ser escritos en lenguajes de alto nivel

Ø El código escrito en alto nivel:

ü Puede ser escrito más rápido

ü Es más compacto

ü Es fácil de entender y depurar

Ø Un sistema es más fácil de ser portable si está escrito en un lenguaje de alto nivel.

Ø Algunos lenguajes de alto nivel usados para escribir sistemas operativos: C(Unis, Os/2, Win NT), Fortran(Primos), algol(MCO(Master Control Program) Burrogs), Bliss (VMS DEC), PL/360, perl, PL1 (Multics) Pascal.

Generación sistema (SYSGEN)

Ø Los sistemas operativos se diseñan para correr en cualquier clase de máquinas; el sistema debe configurase para cada computador específico.

Ø El programa sysgen obtiene información relacionada con la configuración específica del hw del sistema

Ø Booting-arrancar un pc al cargar su kernel

Ø Boot program-códig almacenado en la ROM que es capaz de localizar el kernel, cargarlo en al memoria, e iniciar su ejecución.