SISTEMAS OPERATIVOS:



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

Sistemas operativos: una visión aplicada. Capítulo 3 Procesos

Prácticas de Sistemas operativos

SISTEMAS OPERATIVOS: Lección 4: Planificación de Procesos

Hilos Secciones Stallings:

SISTEMAS OPERATIVOS: PROCESOS. Planificación de procesos

Procesos y Threads Procesos y Threads. Concurrencia Concurrencia Ventajas Ventajas. Rendimiento Rendimiento (paralelismo) (paralelismo)

SISTEMAS OPERATIVOS INTRODUCCIÓN. Pedro de Miguel Anasagast

SISTEMAS OPERATIVOS: Lección 10: Gestión de Memoria Virtual

Sistemas operativos: una visión aplicada. Capítulo 4 Gestión de memoria

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

Clases 04 y 05: Repaso de programación de sistemas basados en UNIX

Biblioteca de sistema

MC Hilda Castillo Zacatelco PROCESOS

Sistemas Operativos. Procesos

Introducción a los Sistemas Operativos

Un ejemplo: UNIX PROCESOS UNIX

Introducción y Gestión de Procesos

Práctica 1: Intérprete de mandatos. Sistemas Operativos Área de Arquitectura y Tecnología de Computadores

Llamadas al Sistema para la Creación de Procesos

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

Procesos Definición y Estados

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

Capítulo 2 Introducción a los sistemas operativos

SISTEMAS OPERATIVOS: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. Introducción y conceptos básicos

Sistemas operativos: una visión aplicada. Capítulo 2 Introducción a los sistemas operativos

Iniciación concreta a los sistemas operativos

Estructura de los sistemas de cómputo

3. Sistemas operativos

1. Sistema Operativo Unix

3. Sistemas operativos

Introducción a los Sistemas Operativos

SISTEMAS OPERATIVOS: SISTEMAS DE FICHEROS. Ficheros

1. Procesos vs Hilos 2. Cuando se ejecutan los procesos 3. Fork 4. Clone 5. Cómo se ejucuta el fork? 6. do_fork() 7. copy_process 8.

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

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Sistemas Operativos sesión 12: tuberías

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

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

Sistemas informáticos industriales. Sistemas Operativos

Nombre del estudiante: Gustavo Antonio González Morales. Nombre del trabajo: Tarea 2. Investigación sobre Paginación y Segmentacion.

Gestión de procesos en UNIX

Tema II. Descripción y control de procesos. UNED Manuel Fernández Barcell. Blog:

Funciones POSIX (I): Introducción

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

Fundamentos de los Sistemas Operativos. Tema 2. Procesos José Miguel Santos Alexis Quesada Francisco Santana

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

Programación de Sistemas. Mtro. en IA José Rafael Rojano Cáceres

FUNDAMENTOS DE SISTEMAS OPERATIVOS

Sistemas Operativos Práctica 3

Sistemas Operativos I Manual de prácticas

Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales.

Cuestionario 1-Parte 1

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

Índice. Entorno de prácticas. Hardware virtual. Práctica 1 Minikernel. Diseño de sistemas operativos. Fernando Pérez Costoya

Sistemas operativos, 2ª edición

Prácticas de Sistemas Operativos

Capítulo 1 Conceptos arquitectónicos

Tema 3. Descripción y Control de Procesos. Stallings:

Sistemas Operativos Practica 1: procesos y concurrencia.

Ejercicios sobre tuberías

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

Gestión de la Memoria y Memoria Virtual

SISTEMAS OPERATIVOS:

Sistemas Operativos. Curso 2017 Administración de memoria I

Nombre del estudiante: Gustavo Antonio González Morales. Nombre del trabajo: Tarea 3. Administración de la Memoria.

Primeros pasos en Linux TLSAX. Presentación N 3 - Glosario

Boletín 4- Procesos. Departamento de Lenguajes y Sistemas Informáticos

Convivencia Gestión de Procesos

Tema 20 Gestión de memoria

Tema 12: El sistema operativo y los procesos

Programación de Multitareas utilizando Hilos

SISTEMAS OPERATIVOS Arquitectura de computadores

Taller de Sistemas Operativos. Procesos 2012

TEMA 1: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS

Tema 5 (III) Jerarquía de Memoria

Es un lenguaje estructurado, tiene una abundante cantidad de operadores y tipos de datos.

Transcripción:

SISTEMAS OPERATIVOS: Lección 3: Introducción a la Gestión de Procesos Jesús Carretero Pérez Alejandro Calderón Mateos José Daniel García Sánchez Francisco Javier García Blas José Manuel Pérez Lobato María Gregoria Casares Andrés Introducción y conceptos básicos 1

ADVERTENCIA 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. 2

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

Concepto de proceso 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 4

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

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

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

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

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

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

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

Información del proceso 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. 12

Información del proceso 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 13

Estado del procesador El estado del procesador incluye los valores de los registros del procesador. Registros accesibles en modo usuario. Registros generales: Bancos de registros. Contador de programa. Puntero de pila. Parte de usuario del registro de estado. Registros accesibles en modo privilegiado: Parte privilegiada del registro de estado. 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. 14

Imagen de memoria de un proceso 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. 15

Modelos de imagen de memoria: Región única 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: Necesita espacio de reserva è Desperdicio de memoria. Sistemas con memoria virtual: Espacio de reserva virtual è Factible pero menos flexible que múltiples regiones. 16

Modelos de imagen de memoria: Regiones múltiples 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 17

Modelos de imagen de memoria: Regiones múltiples 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: Regiones compartidas. Regiones con distintos permisos. 18

Información del sistema operativo 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. Algunos elementos de información se mantienen fuera por motivos de implementación. 19

Contenidos del BCP Información de identificación. Estado del procesador. Información de control del proceso. Ejemplo: Identificador del proceso. Identificador del proceso padre. Información sobre el usuario. 20

Contenidos del BCP Información de identificación. Estado del procesador. Información de control del proceso. Información de planificación y estado: Estado del proceso. Evento por el que espera (si bloqueado) Prioridad del proceso. Información de planificación. Descripción de regiones asignada. 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. 21

Contenidos del BCP Información de identificación. Estado del procesador. Información de control del proceso. 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. 22

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

Tabla de páginas 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 24

Punteros de posición de los ficheros 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. 25

Ejemplo: Ejecución de un mandato #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 */ if (execvp(argv[1], &argv[1])<0) { perror( error ); } break; default: printf( Proceso padre ); return 0; prog cat f1 26

Servicio fork 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 desacivan las alarmas pendientes. Devuelve: - 1 el caso de error. En el proceso padre: el idenificador del proceso hijo. En el proceso hijo: 0 27

Servicio fork Proceso A FORK Proceso A 28

Servicio exec 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. 29

Servicio fork Proceso A EXEC Proceso A B 30

Servicio exit 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. 31

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

Tipos de sistemas operativos Sistemas Operativos Multiproceso (varios procesos en ejecución) Monoproceso (un único proceso) Multiusuario (varios usuarios a la vez) Monousuario (un único usuario a la vez) Monousuario (un único usuario a la vez) 33

Principios de la multitarea 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 34

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

Ventajas de la multitarea 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. 36

Grado de multiprogramación 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 37

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

Multiprogramación y memoria virtual 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). 39

Necesidad de memoria: Sistema con memoria virtual 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 40

Rendimiento: Poca memoria física 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. Solución: Ampliación de memoria principal. 100% % utilización de CPU Grado de multiprogramación 41

Rendimiento: Mucha memoria física 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 42

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

Cambios de contexto 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. 44

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

Tipos de cambio de contexto 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 46

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

Formación de un proceso Ma pa de memoria Ta b la d e p ro c e so s Objeto ejecutable Bib lio te c a siste m a C a rg a d o r Im a g e n del proceso BC P 48

Generación de ejecutables 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) 49

Editor de enlaces (linker) 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 50

Ejemplo: Formato ELF 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 51

Formato ELF 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 52

Carga de ejecutable 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.data segment (initialized r/w) 0x0804a010.debug Section header table (required for relocatables).bss segment (uninitialized r/w) 0x0804a3b0 53

Bibliotecas estáticas 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 54

n Bibliotecas estáticas: desventajas: Bibliotecas estáticas y bibliotecas dinámicas 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 55

Bibliotecas dinámicas 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 56

Puntos a recordar 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. 57

Lecturas recomendada Básica Complementarias Carretero 2007: 3.1 Concepto de proceso. 3.2 Multitarea. 3.3 Información del proceso. 3.4 Vida de un proceso. 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. 58

SISTEMAS OPERATIVOS: Lección 3: Introducción a la Gestión de Procesos Introducción y conceptos básicos 59