sistemas operativos isistemas operativos sistemas operativos... · sistemas operativos isistemas...

Download SISTEMAS OPERATIVOS ISISTEMAS OPERATIVOS Sistemas Operativos... · SISTEMAS OPERATIVOS ISISTEMAS OPERATIVOS

If you can't read please download the document

Post on 26-Sep-2018

280 views

Category:

Documents

8 download

Embed Size (px)

TRANSCRIPT

  • SISTEMAS OPERATIVOS ISISTEMAS OPERATIVOS I

    UNIDAD II

    PROCESOS Y SUBPROCESOS

    INSTITUTO TECNOLGICO DE MORELIA

    M C B i S h R

    Departamento de Sistemas y Computacin

    M.C. Benito Snchez Rayasanchezraya@hotmail.comDisponible en: www.benito.org.mx

  • CONTENIDO

    1. Procesos2. Subprocesos3. Comunicacin entre procesos4. Problemas clsicos de comunicacin entre

    procesos5. Calendarizacin

    2

  • 1. PROCESOS

    Pseudoparalelismo Paralelismo en sistemas multiprocesador

    3 a) Multiprogramacin b) Procesos secuenciales independientesc) Slo un programa activo a la vez

  • 1.1. El Modelo de procesos

    Multiprogramacin conmutacin entre procesos

    Priorizado de procesos Calendarizacin de procesos

    4

  • 1.2. Creacin de procesos

    a) Al inicializar el sistemaWi S i i Li D i Win Servicios, Linux Demonios

    Ya sea en primer o segundo planob) En llamadas al sistemab) En llamadas al sistemac) Solicitud de usuario para crearlo

    Comando o aplicacinpd) Inicio de un trabajo por lotes

    Ejecucin de trabajos con la creacin de

    5

    procesos

  • Se crean con: Fork + execve CreateProcess

    P d hij ti di ti t i d Padre e hijo tienen distintos espacios de memoriaProbablemente compartan el cdigo del Probablemente compartan el cdigo del programa

    6

  • 1.3. Terminacin de procesos

    a) Terminacin normal (voluntaria) Cuando termina su trabajo

    Exit Unix, ExitProcess Win

    b) Terminacin por error (voluntaria)b) Terminacin por error (voluntaria) Terminacin por cdigo

    c) Error fatal (involuntaria)c) Error fatal (involuntaria) Instruccin no permitida, divisin por 0,

    referencia a memoria inexistente, etc

    7

    ,

  • d) Terminado por otro proceso (involuntaria) Kill de otro proceso en Unix, TerminateProcess

    en Win. Deben tener autorizacin para hacerlo Deben tener autorizacin para hacerlo.

    8

  • 1.4. Jerarqua de procesos

    En Win no hay jerarqua de procesosE U i En Unix:

    Se crea una jerarqua de rbol Los procesos padres no pueden desheredar a los hijosp p p j Ejemplo:

    Al iniciar init (imagen de arranque) lee un archivo que le indica cuantas terminales hay, generando un proceso nuevo por cada terminal.

    Los procesos de las terminales esperan a que alguien inicie sesin.

    Si alguien inicia sesin el shell espera comandos para iniciar

    9

    S a gu e c a ses e s e espe a co a dos pa a c aprocesos por cada comando, y as sucesivamente.

  • 1.5. Estados de procesos

    Estados:a) En ejecucin Usando la CPUb) Listo En espera que se desocupe la CPU) Bl d E d d i tc) Bloqueado En espera de que suceda cierto

    suceso externo1 El proceso se bloquea para esperar1. El proceso se bloquea para esperar

    entrada

    2. El calendarizador escoge otro proceso

    3. El calendarizador escoge ste proceso

    10

    3. El calendarizador escoge ste proceso

    4. Ya hay entrada disponible

  • Ejemplo: El comando cat file1 file2 file3 | grep finanzas

    Se concatenan tres archivos y grep selecciona l t d ti l l b filas entradas que contienen la palabra finanzas

    Grep queda bloqueado hasta que cat termina.

    11

    El calendarizador y los procesos

  • 1.6. Implementacin de procesos

    El SO mantiene la tabla de procesos, t bi ll d bl d t l dtambin llamada bloques de control de procesos, la cual contiene:

    Estado del proceso Estado del proceso Su contador del programa Apuntador de pila Asignacin de memoria Estado de sus archivos abiertos Informacin de calendarizacin

    12

  • Campos de una tabla de procesos:

    a) Administracin de procesosR i t

    Proceso padre Registros Contador de programa Palabra del estado del

    Grupo de procesos Seales Hora de inicio delprograma

    Apuntador de pila Estado del proceso

    Hora de inicio del proceso

    Tiempo de CPU consumidop

    Prioridad Parametros de calendarizacin

    ID de proceso

    consumido Tiempo de CPU de

    los hijosHora de la siguiente

    13

    ID de proceso Hora de la siguiente alarma

  • Campos de una tabla de procesos:

    b) Administracin de memoriaApuntador a segmento de texto Apuntador a segmento de texto

    Apuntador a segmento de datos Apuntador a segmento de pila

    c) Administracin de archivos Directorio raz Directorio de trabajo Descriptores de archivo ID de usuario

    14

    ID de grupo

  • Vector de interrupcin Contiene la direccin del procedimiento de

    servicio de interrupcin de cada dispositivo de E/S.E/S.

    Las interrupciones de vaciado de pilas, guardar registros, lo hace una pequea rutina en

    bl densamblador

    15

  • Cuando ocurre una interrupcinEl hardware mete el contador de programa en la pila etc El hardware mete el contador de programa en la pila, etc.

    El hardware carga un nuevo contador de programa tomndolo del vector de interrupcin.

    Un procedimiento en ensamblador guarda registros Un procedimiento en ensamblador guarda registros Un procedimiento en ensamblador crea la nueva pila Se ejecuta el servicio de interrupcin en C (lee entradas y las

    pone en un bfer)pone en un bfer) El calendarizador decide que programa ejecutara ahora Un procedimiento en C regresa al cdigo ensamblador Un procedimiento en ensamblador arranca el nuevo proceso

    16

    Un procedimiento en ensamblador arranca el nuevo proceso actual

  • 2. SUBPROCESOS

    Antes en los SO un proceso sola tener: Un espacio de direcciones Un slo subproceso de control.

    Ah t Ahora es comn tener: Varios subprocesos de control en el mismo

    espacio de direcciones operando en formaespacio de direcciones, operando en forma pseudoparalela como si fueran procesos individuales.

    17

  • 2.1. El modelo de subprocesos

    Proceso:E i t d l i d Es un agrupamiento de recursos relacionados, para una mejor administracin. Espacio de direcciones, variables globales, archivos abiertos,

    procesos hijos alarmas pendientes seales etcprocesos hijos, alarmas pendientes, seales, etc.

    Subproceso: Son las entidades que se calendarizan para ejecutarse en

    el CPU Tratan de simular paralelismo Elementos: contador de programa, registros, pila, etc.

    18

  • 19a) Tres procesos c/u con un subproceso b) Un proceso con tres subprocesos.

  • La proteccin entre subprocesos es muy dif il ll l b idifcil llevarla a cabo y no es necesaria. Un proceso crea subprocesos para colaborar, no

    para daarsepara daarse. Los subprocesos se usan para colaborar en una

    misma tarea en forma paralela.

    20

  • Elementos por proceso que comparten sus subprocesos:sus subprocesos: Espacio de direcciones Variables globalesg Archivos abiertos Procesos hijos Alarmas pendientes Seales y manejadores de seales Informacin contable

    21

    Informacin contable

  • Elementos privados de cada subproceso: Contador de programa Registros

    Pil Pila Estado

    22

  • Pila del subproceso: Procedimiento en

    ejecucin, que todava no se retorna

    Variables locales Direccin de retorno del

    procedimiento

    23Cada subproceso tiene su propia pila

  • Procedimientos de biblioteca de bsubprocesos:

    Thread_createThread exit Thread_exit

    Thread_wait Bloqueado Thread yield Cede el CPU al siguiente Thread_yield Cede el CPU al siguiente

    24

  • 2.2. Uso de subprocesos

    Objetivos:D li i lti l b Descomponer una aplicacin en mltiples subprocesos secuenciales que se ejecuten casi en paralelo.

    Son ms fciles de crear y destruir Mayor desempeo al traslapar actividades Indispensables en sistemas multiprocesador En aplicaciones que requieren mucho CPU y que casi no se p q q y q

    bloquean, no se recomiendan subprocesos (calcular nmero primos, juego de ajedrez, etc)

    25

  • Ejemplos:1. Un procesador de textos:1. Un procesador de textos:

    Correccin ortogrfica en segundo plano. Paginacin en segundo plano Respaldo automtico cada cierto tiempo

    L t d l t l d Lectura del teclado2. Un antivirus:

    Centinelas en: E-mail Mensajera Intrusos Unidades extrables Actualizaciones (LiveUpdate)

    26

    ( p ) Vigencia licencia contrato

  • 3. Servidor WebW b C h Web Cach Mantiene en la memoria principal las pginas ms

    visitadas del sitio.Ha dos tipos de s bprocesos Hay dos tipos de subprocesosa) Despachadorb) Trabajador

    27

  • Cuando llega una solicitud el subproceso despachador busca un subproceso trabajador desocupadobusca un subproceso trabajador desocupado (bloqueado) para mandarle la peticin, entrando este a estado listo para ser calendarizado.

    Si el subproceso trabajador encuentra la pginaSi el subproceso trabajador encuentra la pgina solicitada en cach la enva.

    Si no encuentra la pgina hace una operacin read a disco y se bloquea, cediendo el CPU al siguientedisco y se bloquea, cediendo el CPU al siguiente subproceso listo.

    28

  • 29

  • 30 Despachador Trabajador

  • 2 3 I l t i d b2.3. Implementacin de subprocesos en espacio de usuario

    Inicialmente as trabajaban los SOL b j t d d i Los subprocesos se ejecutan en modo de usuario

    Cada proceso requiere su propia tabla de subprocesossubprocesos

    La conmutacin entre subprocesos no requiere llamadas al kernel y suele ser ms rpida.

    Tienen mayor desempeo Cada proceso puede tener su propio algoritmo de

    calendarizacin

    31

    calendarizacin

  • En llamadas bloqueantes podra detener a t d l d btodos los dems subprocesos.

    Si un subproceso empieza a ejecutarse, i t b (d

Recommended

View more >