SISTEMAS OPERATIVOS: PROCESOS. Introducción a la gestión de Procesos

Documentos relacionados
SISTEMAS OPERATIVOS:

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS

Introducción a los Sistemas Operativos

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

Sistemas Operativos Práctica 3

Tema 6 Organización y gestión de la memoria

Sistemas Operativos I Manual de prácticas

Sistemas Operativos. Clase 2: Administración de procesos.

Procesos 1 / 31. Para entender el concepto de hebra, necesitamos compreender el concepto de proceso

Gestión de procesos en UNIX

Sistemas Operativos Practica 1: procesos y concurrencia.

Usando el Sistema Operativo

Sistemas Operativos Tema 5. Procesos José Miguel Santos Alexis Quesada Francisco Santana

1. Sistema Operativo Unix

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas:

Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA

Prácticas de Sistemas Operativos

Estructuras de Datos Declaraciones Tipos de Datos

SISTEMAS. UNIDAD VI Parte A ADMINISTRACION DE MEMORIA ING. AGUILERA SERGIO OMAR

Unidad 2: Gestión de Memoria

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Sistemas Operativos Tema 8. Gestión de memoria José Miguel Santos Alexis Quesada Francisco Santana Belén Esteban

3. Sistemas operativos

Concurrencia y paralelismo

3. Sistemas operativos

Fundamentos de los Sistemas Operativos. Tema 1. Conceptos generales Estructura del sistema operativo ULPGC - José Miguel Santos Espino

Tema 6. Administración de memoria

Manipulación de procesos

Tema 20 Gestión de memoria

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño?

SISTEMAS OPERATIVOS Arquitectura de computadores

SOLUCION EXAMEN junio 2006

Tema 13: Apuntadores en C

Tema 2 Introducción a la Programación en C.

Sistemas Operativos Administración de la Memoria

Sistemas Operativos. Curso 2016 Procesos

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

Gestión de Memoria. Curso AT3148 Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P.

2.2 Nombres, Ligado y Ámbito

Threads, SMP y Microkernels. Proceso

Introducción a los Sistemas Operativos

Tema 6. Gestión de la memoria

Elementos de un programa en C

Procesos e Hilos en C

Tema 8 Procesos. * Definición informal: un proceso es un programa en ejecución

Capítulo 4 Gestión de memoria

Unidad 2: Gestión de Procesos

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Capítulo 3: Procesos. n Concepto de Proceso. n Despacho (calendarización) de Procesos. n Operaciones en Procesos. n Procesos en cooperación

Diagrama temporal de un programa simple. Multi-Programación con dos programas

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

Procesos y Memoria. Administración de Memoria 26/10/2010 SISTEMAS OPERATIVOS

ANEXO XVII DE LA RESOLUCION N

Tema 4. Gestión Avanzada de Memoria

Memoria. Organización de memorias estáticas.

Tema 5: Herramientas de programación y diseño modular

Uso avanzado de punteros

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Sistemas Operativos. Curso 2016 Sistema de Archivos

Unidad 1: Conceptos generales de Sistemas Operativos.

Pontificia Universidad Católica del Ecuador

Sistemas operativos: una visión aplicada. Capítulo 11 Estudio de casos: Linux

Cuentas. Guía 1er laboratorio Linux - Comandos - Fork. Programación en C. Linux. Linux: Cuenta (passwd): sisop@labs.cs.uns.edu.ar (sis2013op..

Si el fichero hashes existe, el script debe notificar el error y salir como corresponde. A continuación se muestra un ejemplo:

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

Pontificia Universidad Católica del Ecuador

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria


Introducción a la arquitectura de computadores

Usuario. Programas de Aplicación. Sistema Operativo. Hardware. Figura 1. Sistema de cómputo estructurado por capas.

Tabla de Símbolos. Programación II Margarita Álvarez

REPRESENTACIÓN INTERNA DE FICHEROS

Generador de analizadores léxicos FLEX

Llamadas al Sistema. Laboratorio de Arquitectura de Ordenadores

Qué es un programa informático?

Sist s em e a m s s O per e ativos o. s Unidad V Entrada Sali l d i a.

Procesos. Lecturas recomendadas. Ejemplo: gcc. Modelo de procesamiento. Modelo de procesamiento. Jean Bacon Operating Systems (4)

1.4.1 Inicio de la computadora por primera vez Hay problemas Causas, síntomas y soluciones a posibles averías...

Gestión de memoria en Servidores de Información Multimedia

Modelo de procesamiento

Paradigma de paso de mensajes

Sea el siguiente programa de nombre "c0p1" para copiar archivos (por simplicidad se ha eliminado todo control de errores): Se pide:

Taller de Sistemas Operativos Introducción

Herramientas Informáticas I Software: Sistemas Operativos

Manual de instalación AutoFirma 1.4.3

Analista Universitario en Sistemas. Taller de Programación II. Instituto Politécnico Superior. Trabajo Final

Actividades de Teoría de Sistemas Operativos Sistemas informáticos multiusuario y en red

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

Tema 4. Administración de la memoria

TEMA 3: EL LENGUAJE C: PRESENTACIÓN

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Espacio de direcciones de un proceso

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Construyendo Programas más Complejos

SISTEMAS OPERATIVOS SISTEMA DE ARCHIVOS

Tema V Generación de Código

1. Cuántas sentencias hay en la secuencia principal del siguiente programa?

ESTRUCTURAS BÁSICAS DE UN S.O.

Transcripción:

SISTEMAS OPERATIVOS: PROCESOS Introducción a la gestión de Procesos

ADVERTENCIA 2 Este material es un simple guión de la clase: no son los apuntes de la asignatura. El conocimiento exclusivo de este material no garantiza que el alumno pueda alcanzar los objetivos de la asignatura. Se recomienda que el alumno utilice los materiales complementarios propuestos.

Contenido 3 Concepto de proceso. Ciclo de vida básico de un proceso. Información de un proceso. Multitarea. Cambio de contexto. Generación de ejecutables.

Concepto de proceso 4 Proceso: Programa en ejecución. Cada ejecución de un programa da lugar a un proceso. El proceso à unidad de procesamiento que gestiona el sistema operativo. Un proceso está formado por: Código del programa: Instrucciones. Conjunto de datos asociados a la ejecución del programa

Ejecución de programas 5 Programa Ejecutable A Proceso A1 Proceso A2 Memoria Principal

Representación en memoria 6 pila montículo datos texto Un proceso necesita memoria para las instrucciones y los datos. Distintas instancias de un programa necesitan zonas independientes para los datos.

Contenido 7 Concepto de proceso. Ciclo de vida básico de un proceso. Información de un proceso. Multitarea. Cambio de contexto. Generación de ejecutables.

Ciclo de vida básico de un proceso 8 Activación En ejecución Tantos como procesadores Fin Espera de evento Listo Fin Tiempo Bloqueado Nuevos Procesos Fin de bloqueo por evento

Modelo de colas simplificado: Un procesador 9 Nuevos procesos Procesador Procesos terminados Fin de rodaja Ev 1 Ev 2 Ev 3

Modelo de colas simplificado: Procesos terminados Varios procesadores 10 Nuevos procesos Procesador Fin de rodaja Ev 1 Ev 2 Ev 3

Contenido 11 Concepto de proceso. Ciclo de vida básico de un proceso. Información de un proceso. Multitarea. Cambio de contexto. Generación de ejecutables.

Información del proceso 12 Toda la información que permite la correcta ejecución del proceso. Tres categorías: Información almacenada en el procesador. Información almacenada en memoria. Información adicional gestionada por el sistema operativo.

Información del proceso 13 Registros especiales Mapa de memoria del Proceso A Registros generales PC SP Estado Mapa de memoria del Proceso B Mapa de memoria del Proceso C Tablas SO Mapa de Memoria Tablas del sistema operativo Tabla de procesos BCP Proceso A BCP Proceso B BCP Proceso C - Estado (registros) - Estado (registros) - Estado (registros) - Identificación - Control - Identificación - Control - Identificación - Control - Tabla de memoria - Tabla de E/S - Tabla de ficheros

Estado del procesador 14 El estado del procesador incluye los valores de los registros del procesador. Registros accesibles en modo usuario. n Registros generales: Bancos de registros. n Contador de programa. n Puntero de pila. n Parte de usuario del registro de estado. Registros accesibles en modo privilegiado: n Parte privilegiada del registro de estado. n Registros de control de memoria (p.ej. RBTP). Cambio de contexto: Salvaguardar estado del procesador de proceso saliente. Restaurar estado del procesador de proceso entrante.

Imagen de memoria de un proceso 15 La imagen de memoria está formada por los espacios de memoria que un proceso está autorizado a utilizar. Si un proceso genera una dirección que esta fuera del espacio de direcciones el HW genera un trap. La imagen de memoria dependiendo del computador puede estar referida a memoria virtual o memoria física.

Modelos de imagen de memoria: Región única 16 Proceso con única región de tamaño fijo. Usado en sistemas sin memoria virtual. Proceso con única región de tamaño variable. Sistemas sin memoria virtual: n Necesita espacio de reserva è Desperdicio de memoria. Sistemas con memoria virtual: n Espacio de reserva virtual è Factible pero menos flexible que múltiples regiones.

Modelos de imagen de memoria: Regiones múltiples 17 Proceso con número fijo de regiones de tamaño variable. Regiones prefijadas (texto, datos, pila). Cada región puede crecer. Con memoria virtual el hueco entre pila y datos no consume recursos físicos. pila datos texto

Modelos de imagen de memoria: Regiones múltiples 18 Proceso con un número variable de regiones de tamaño variable. Opción más avanzada (usada en versiones actuales de Windows y UNIX). Un proceso se estructura en un número arbitrario de regiones. Muy flexible: n Regiones compartidas. n Regiones con distintos permisos.

Información del sistema operativo 19 El sistema operativo mantiene información adicional sobre los procesos. El sistema operativo mantiene esta información en una tabla: Tabla de Procesos. Bloque de control de Procesos (BCP): Cada entrada de la tabla que mantiene la información sobre un proceso. En el BCP se mantiene casi toda la información sobre un proceso. n Algunos elementos de información se mantienen fuera por motivos de implementación.

Contenidos del BCP 20 Información de identificación. Estado del procesador. Información de control del proceso. Ejemplo: Identificador Estado del proceso. del proceso. Identificador Evento por el que del espera proceso (si padre. Información bloqueado) sobre el usuario. Información de planificación y estado: Prioridad del proceso. Información de planificación. Descripción de regiones asigrnada. Al iniciar el proceso: Valores iniciales para el estado del procesador. Después de un cambio de contexto: Copia de los valores del estado del procesador. Recursos asignados: Archivos abiertos. Puertos de comunicaciones usados. Temporizadores. Punteros para estructurar los procesos en colas (o anillos). Información para comunicación entre procesos.

Información fuera del BCP 21 No toda la información referida a un proceso se almacena en el BCP. Se decide qué almacenar en función de: La eficiencia. n Las tablas pueden tener un tamaño predefinido y siempre está residente en memoria. n Hay que optimizar su tamaño. Compartir información n Si hay que compartir algún dato éste no puede estar en el BCP. n Se usan punteros para apuntar a otras estructuras, otras tablas, permitiéndose así el compartir información: n n Ficheros abiertos. Páginas de memoria.

Tabla de páginas 22 Se sitúan fuera del BCP. Describe la imagen de memoria del proceso El BCP contiene el puntero a la tabla de páginas Razones: Tiene tamaño variable La compartición de memoria entre procesos requiere que sea externa al BCP

Punteros de posición de los ficheros 23 Se sitúan fuera del BCP. Si se añaden a la tabla de ficheros abiertos (en el BCP) no se pueden compartir. Si se asocian al nodo-i se comparten siempre. Se ponen en una estructura común a los procesos y se asigna uno nuevo en cada servicio OPEN.

Ejemplo: Ejecución de un mandato 24 #include <sys/types.h> #include <stdio.h> int main(int argc, char** argv) { pid_t pid; pid = fork(); switch (pid) { case -1: /* error */ exit(-1); case 0: /* proceso hijo */ prog cat f1 if (execvp(argv[1], &argv[1])<0) { perror( error ); } break; default: printf( Proceso padre ); } return 0; Sistemas Operativos - Introducción a Procesos }

Servicio fork 25 pid_t fork(void); Duplica el proceso que invoca la llamada. El proceso padre y el proceso hijo siguen ejecutando el mismo programa. El proceso hijo hereda los ficheros abiertos del proceso padre. Se copian los descriptores de archivos abiertos. Se desactivan las alarmas pendientes. Devuelve: -1 el caso de error. En el proceso padre: el identificador del proceso hijo. En el proceso hijo: 0 Sistemas Operativos - Introducción a Procesos

Servicio fork 26 Proceso A FORK Proceso A Sistemas Operativos - Introducción a Procesos

Servicio exec 27 Servicio único pero múltiples funciones de biblioteca. int execl(const char *path, const char *arg,...); int execv(const char* path, char* const argv[]); int execve(const char* path, char* const argv[], char* const envp[]); int execvp(const char *file, char *const argv[]) Cambia la imagen del proceso actual. path: Ruta al archivo ejecutable. file: Busca el archivo ejecutable en todos los directorios especificados por PATH. Descripción: Devuelve -1 en caso de error, en caso contrario no retorna. El mismo proceso ejecuta otro programa. Los ficheros abiertos permanecen abiertos. Las señales con la acción por defecto seguirán por defecto, las señales con manejador tomarán la acción por defecto. Sistemas Operativos - Introducción a Procesos

Servicio fork 28 Proceso A EXEC Proceso A B Sistemas Operativos - Introducción a Procesos

Servicio exit 29 Finaliza la ejecución del proceso. void exit(status); Se cierran todos los descriptores de ficheros abiertos. Se liberan todos los recursos del proceso. Se libera el BCP del proceso. Sistemas Operativos - Introducción y servicios

Contenido 30 Concepto de proceso. Ciclo de vida básico de un proceso. Información de un proceso. Multitarea. Cambio de contexto. Generación de ejecutables.

Tipos de sistemas operativos 31

Principios de la multitarea 32 Paralelismo real entre E/S y UCP (DMA) Alternancia en los procesos de fases de E/S y de procesamiento La memoria almacena varios procesos Procesamiento Entrada/salida Tiempo

Ejecución en un sistema multitarea 33 Proceso A Proceso B Proceso C Procesador Procesamiento Entrada/salida Listo SO Tiempo

Ventajas de la multitarea 34 Facilita la programación, dividiendo los programas en procesos (modularidad). Permite el servicio interactivo simultáneo de varios usuarios de forma eficiente. Aprovecha los tiempos que los procesos pasan esperando a que se completen sus operaciones de E/S. Aumenta el uso de la CPU.

Grado de multiprogramación 35 Grado de multiprogramación: nº de procesos activos Necesidades de memoria principal: Sistema sin memoria virtual Proceso A Proceso B Proceso C SO Memoria principal Cada proceso reside totalmente en M.p Utilización del procesador 100% 0% Grado de multiprogramación

Multiprogramación: uso de la CPU 36 1 proceso Ejecución E/S 2 procesos

Multiprogramación y memoria virtual 37 Los sistemas con memoria virtual: Dividen el espacio direccionable de los procesos en páginas. Dividen el espacio direccionable de la memoria física principal en marcos de página. En un momento dado cada proceso tiene un cierto número de sus páginas en memoria principal (conjunto residente).

Necesidad de memoria: Sistema con memoria virtual 38 Marcos de página por proceso 1 2 3 4 Al aumentar el nivel de multiprogramación a cada proceso le tocan menos marcos de página Nivel de Multiprogramación

Rendimiento: Poca memoria física 39 Al aumentar el grado de multiprogramación: Desciende el tamaño del conjunto residente de cada proceso. Se produce hiperpaginación antes de alcanzar un porcentaje alto de uso de CPU. 100% % utilización de CPU Solución: Ampliación de memoria principal. Grado de multiprogramación

Rendimiento: Mucha memoria física 40 Al aumentar el grado de multiprogramación: Desciende el tamaño del conjunto residente de cada proceso. Se alcanza un alto porcentaje de utilización de CPU con menos procesos de los que caben en memoria. 100% % utilización de CPU Solución: Mejora del procesador o incorporación de más procesadores. Grado de multiprogramación

Contenido 41 Concepto de proceso. Ciclo de vida básico de un proceso. Información de un proceso. Multitarea. Cambio de contexto. Generación de ejecutables.

Cambios de contexto 42 Se produce cuando el sistema operativo asigna el procesador a un nuevo proceso. Acciones: Guardar el estado del procesador en el BCP del proceso en ejecución. Restaurar el estado del nuevo proceso en el procesador.

Cambio de contexto 43 Guardar estado en BCP0 Restaurar estado de BCP1 Guardar estado en BCP0 Restaurar estado de BCP1

Tipos de cambio de contexto 44 Cambio de contexto voluntario (C.C.V): Proceso realiza llamada al sistema (o produce una excepción como un fallo de página) que implica esperar por un evento. en_ejecución à bloqueado. Ejemplos: leer del terminal, fallo de página. Motivo? Eficiencia en el uso del procesador Cambio de contexto involuntario (C.C.I): SO quita de la CPU al proceso En ejecución à listo Ejemplos: fin de rodaja de ejecución o pasa a listo proceso bloqueado de mayor prioridad Motivo? Reparto del uso del procesador

Contenido 45 Concepto de proceso. Ciclo de vida básico de un proceso. Información de un proceso. Multitarea. Cambio de contexto. Generación de ejecutables.

Formación de un proceso 46 Mapa de memoria Tabla de procesos Objeto ejecutable Bib liotec a sistem a Cargador Imagen del proceso BCP

Generación de ejecutables 47 a.c b.c Compilador Compilador a.o b.o Ficheros objeto reubicables generados por separado Linker (ld) p Fichero objeto ejecutable (contiene código y datos para todas las funciones definidas en a.c y b.c)

Editor de enlaces (linker) 48 n Combina los ficheros objeto: fusiona los diferentes ficheros objeto reubicables (.o) en un único fichero objeto ejecutable: input del cargador n Resuelve las referencias externas: referencias a símbolos definidas en otro fichero objeto n Reubica los símbolos: de su posiciones relativas en los.o a las absolutas en el ejecutable: reajusta las refs a estas nuevas posiciones símbolos: refs. de funciones (código) y de datos

Ejemplo: Formato ELF 49 n ELF: Executable and Linkable Format formato binario estándar para ficheros objeto original de System V à BSD, Linux, Solaris formato unificado para: n ficheros objeto reubicables n ficheros objeto ejecutables n ficheros objeto compartidos

Formato ELF 50 Tipo (.o,.exe,.so, etc); máquina; Big /Little end; etc Código block started by symbol Datos estáticos no incializados Info. de reubicación ELF header Program header table (required for executables).text section.data section.bss section.symtab.rel.txt.rel.data.debug Section header table (required for relocatables) 0 Datos estáticos incializados Tabla de símbolos

Carga de ejecutable 51 DISCO ELF header Program header table (required for executables).text section 0 MEMORIA Process image init and shared lib segments Virtual addr 0x080483e0.data section.bss section.symtab.text segment (r/o) 0x08048494.rel.text.rel.data.debug Section header table (required for relocatables).data segment (initialized r/w).bss segment (uninitialized r/w) 0x0804a010 0x0804a3b0

Bibliotecas estáticas 52 a.c b.c Compilador Compilador a.o b.o libc.a librería estática: fichero concatenando ficheros objeto reubicables Linker (ld) p fichero objeto ejecutable: incluye el código de la funciones de libc que emplea

Bibliotecas estáticas y bibliotecas dinámicas 53 n Bibliotecas estáticas: desventajas: código potencialmente duplicado en los ejecutables: n disco (sistema de ficheros) n espacio de memoria virtual de los procesos bugs en las bibliotecas à nueva versión à re-enlazar n Solución: biliotecas dinámicas (*.so) (dynamic link libraries, DLLs): componentes cargados en memoria y ejecutados en tiempo de ejecución: las funciones de la librerías pueden ser compartidas por varios procesos

Bibliotecas dinámicas 54 a.c b.c Compilador Compliador a.o b.o Linker (ld) p libc.so Biblioteca compartida Cargador / Enlazador dinámico (ld-linux.so) las funciones de libc.so que invocan a.c y b.c se cargan, enlazan y están potencialmente compartidas entre procesos. Ejecutable en memoria P

Puntos a recordar 55 Diferencia entre programa y proceso. Un proceso es un programa en ejecución. El sistema operativo gestiona los procesos en ejecución (ciclo de vida de un proceso). Información del proceso constituida por: estado del procesador, imagen de memoria y BCP. La multitarea permite un mejor aprovechamiento de los recursos del computador. El cambio de contexto introduce una pequeña sobrecarga. Las bibliotecas estáticas se enlazan en tiempo de compilación y las dinámicas en tiempo de creación del proceso. La creación de un proceso implica la creación de su imagen de memoria y de su BCP.

Lecturas recomendada 56 Básica Carretero 2007: 3.1 Concepto de proceso. 3.2 Multitarea. 3.3 Información del proceso. 3.4 Vida de un proceso. Complementarias Stallings 2005: 3.1 Qué es un proceso? 3.3 Descripción de los procesos. Siberschatz 2006: 3.1 Concepto de proceso. 3.3 Operaciones sobre los procesos.