Sistemas operativos. Procesos en Unix

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Sistemas operativos. Procesos en Unix"

Transcripción

1 Sistemas operativos. Procesos en Unix Grado en Inforática. 2014/2015 Departamento de Computación Facultad de Informática Universidad de Coruña Antonio Yáñez Izquierdo (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 1 / 243

2 Contenidos I Introducción sistema operativo UNIX Estándares Inicialización del sistema Estructura y conceptos generales Procesos y threads Espacios de direcciones kernel (núcleo) reentrante Procesos en UNIX Conceptos generales Estados de un proceso Implementación del concepto de proceso Estructura proc u area Credenciales Variables de entorno (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 2 / 243

3 Contenidos II Ejecución en modo kernel Ejecución en modo kernel: Interrupción Ejecución en modo kernel: Llamada al sistema Ejecución en modo kernel: Recursos Planificación Planificación en sistemas unix tradicionales Planificación en System V R4 Planificación en linux Llamadas al sistema para el manejo de la prioridad nice() getpriority() y setpriority() rtprio priocntl() llamadas POSIX Creación y terminación de procesos fork() (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 3 / 243

4 Contenidos III exec exit() Espera por la terminación de un proceso hijo Señales System V R2 Señales en System V R3 Señales en BSD Señales en System V R4 Señales en System V R4: implementación Comunicación entre procesos pipes memoria compartida semáforos colas de mensajes Apéndice I: Ejemplos de estructuras proc (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 4 / 243

5 Contenidos IV SystemV R3 BSD System V R4 Apéndice II: Ejemplos de u area System V R3 BSD System V R4 Apendice III: Estructura task struct linux 2.6 (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 5 / 243

6 Introducción sistema operativo UNIX Introducción sistema operativo UNIX Estándares Inicialización del sistema Estructura y conceptos generales Procesos y threads Espacios de direcciones kernel (núcleo) reentrante (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 6 / 243

7 Introducción sistema operativo UNIX Estándares Introducción sistema operativo UNIX Estándares Inicialización del sistema Estructura y conceptos generales Procesos y threads Espacios de direcciones kernel (núcleo) reentrante (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 7 / 243

8 Antecedentes Introducción sistema operativo UNIX Estándares El término UNIX es un término genérico que agrupa a una serie de sistemas operativos distintos Existen muchas variedades de unix, algunas comerciales y otras libres (linux, solaris, aix, freebsd... ) Cada una de ellas puede o no cumplir determinados estándares, que afectan tanto a las funcionalidades como a la implementación o a la interfaz con el sistema Los estándares principales son System V BSD POSIX (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 8 / 243

9 Introducción sistema operativo UNIX Estándares (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 9 / 243

10 Introducción sistema operativo UNIX Estándares (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 10 / 243

11 Introducción sistema operativo UNIX Inicialización del sistema Introducción sistema operativo UNIX Estándares Inicialización del sistema Estructura y conceptos generales Procesos y threads Espacios de direcciones kernel (núcleo) reentrante (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 11 / 243

12 Introducción sistema operativo UNIX Inicialización del sistema El núcleo reside en un fichero (/unix, /vmunix, /vmlinuz, /bsd, /vmlinuz, /kernel.generic..) que se carga al arrancar la máquina (procedimiento bootstrap) El núcleo (kernel) inicializa el sistema y crea el entorno para que se ejecuten los procesos y crea unos pocos procesos que a su vez crearán el resto. INIT (proceso con pid 1) es el primer proceso de usuario y antecesor del resto de procesos de usuario en el sistema El núcleo (kernel) de UNIX interactua con el hardware Los procesos interactuan con el núcleo a través de la interfaz de llamadas al sistema (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 12 / 243

13 Introducción sistema operativo UNIX Inicialización del sistema freebsd 4.9 USER PID PPID PGID SESS JOBC STAT TT COMMAND root c0326e60 0 DLs?? (swapper) root c08058c0 0 ILs?? /sbin/init -- root c0326e60 0 DL?? (taskqueue) root c0326e60 0 DL?? (pagedaemon) root c0326e60 0 DL?? (vmdaemon) root c0326e60 0 DL?? (bufdaemon) root c0326e60 0 DL?? (syncer) root c0326e60 0 DL?? (vnlru) root c08509c0 0 Ss?? /sbin/natd -n ed0 root c085cd80 0 Is?? /usr/sbin/syslogd -s root c Is?? mountd -r root c Is?? nfsd: master (nfsd) root c I?? nfsd: server (nfsd) (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 13 / 243

14 Introducción sistema operativo UNIX Inicialización del sistema linux 2.4 F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY CMD 4 S select? init 1 S contex? keventd 1 S ksofti? ksoftirqd_cpu 1 S kswapd? kswapd 1 S bdflus? bdflush 1 S kupdat? kupdated 4 S select? udevd 1 S down_i? knodemgrd_0 1 S ?? khubd 1 S select? syslogd 5 S syslog? klogd 1 S select? dirmngr 5 S select? inetd (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 14 / 243

15 solaris 7 sparc Introducción sistema operativo UNIX Inicialización del sistema F S UID PID PPID C PRI NI SZ TTY CMD 19 T SY 0? sched 8 S ? init 19 S SY 0? pageout 19 S SY 0? fsflush 8 S ? Xsun 8 S ? rpcbind 8 S ? sac 8 S ? devfseve 8 S ? devfsadm 8 S ? automoun 8 S ? lockd 8 S ? syslogd 8 S ? in.named 8 S ? lpsched 8 S ? cron 8 S ? inetd 8 S ? dtlogin (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 15 / 243

16 Introducción sistema operativo UNIX Introducción sistema operativo UNIX Estructura y conceptos generales Estándares Inicialización del sistema Estructura y conceptos generales Procesos y threads Espacios de direcciones kernel (núcleo) reentrante (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 16 / 243

17 Introducción sistema operativo UNIX Estructura y conceptos generales El núcleo (kernel) de unix se ejecuta directamente en el hardware de la máquina Los procesos de usuario no interactúan directamente con el hardware del sistema, sino que lo hacen a través del kernel mediante la interfaz de llamadas al sistema El kernel recibe peticiones de atención de los dispositivos mediante las interrupciones (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 17 / 243

18 Introducción sistema operativo UNIX Estructura y conceptos generales (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 18 / 243

19 Introducción sistema operativo UNIX Estructura y conceptos generales Modo kernel y modo usuario En UNIX son necesarios dos modos de ejecución modo usuario se ejecuta el código de usuario modo kernel se ejecutan las funciones del kernel 1. Llamadas al sistema: Los procesos de usuario solicitan servicios explicitamente a través de la interfaz de llamadas al sistema. 2. Excepciones: Situaciones excepcionales (división por 0, errores de direccionamiento..) causan excepciones hardware que requieren intervención del kernel. 3. Interrupciones: Los dispositivos periféricos interrumpen para notificar al kernel de diversos sucesos (terminación de e/s, cambio de estado..) Algunas instrucciones hardware solo pueden ser ejecutadas en modo kernel. (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 19 / 243

20 Introducción sistema operativo UNIX Estructura y conceptos generales Ejecución en modo kernel: ejemplos El comando del sistema time nos muestra los tiempos de CPU (en modo kernel y modo usuario de un proceso) Consideremos el siguiente ejecutable main() { while (1); } Al cabo de 25 segundos de ejecución el comando time nos muestra real 0m25.417s user 0m25.360s sys 0m0.010s (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 20 / 243

21 Introducción sistema operativo UNIX Estructura y conceptos generales Ejecución en modo kernel: ejemplos Con el siguiente bucle de llamadas a getpid main() { while (1) getpid(); } Al cabo de 25 segundos de ejecución el comando time nos muestra real 0m24.362s user 0m16.954s sys 0m7.380s (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 21 / 243

22 Introducción sistema operativo UNIX Estructura y conceptos generales Ejecución en modo kernel: ejemplos Enviando una señal al propio proceso main() { pid_t pid=getpid(); } while (1) kill (pid, 0); Al cabo de 25 segundos de ejecución el comando time nos muestra real 0m25.434s user 0m11.486s sys 0m13.941s (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 22 / 243

23 Introducción sistema operativo UNIX Estructura y conceptos generales Ejecución en modo kernel: ejemplos Enviándole SIGINT al proceso init main() { } while (1) kill (1, SIGINT); Al cabo de 25 segundos de ejecución el comando time nos muestra real 0m25.221s user 0m9.199s sys 0m16.014s (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 23 / 243

24 Introducción sistema operativo UNIX Ejecución en modo kernel: ejemplos Estructura y conceptos generales Producimos una excepción en tiempo de ejecución (derreferenciamos NULL) e instalamos un manejador vacío para SIGSEGV void vacio(int sig) { } main() { int *p; } sigset(sigsegv,vacio); p=null; *p=3; Al cabo de 25 segundos de ejecución el comando time nos muestra real 0m25.853s user 0m10.331s (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 24 / 243

25 Introducción sistema operativo UNIX Estructura y conceptos generales Ejecución en modo kernel: ejemplos Repetimos el primer ejemplo pero moviendo el ratón y pulsando teclas continuemente durante los 25 segundos main() { while (1); } Al cabo de 25 segundos de ejecución el comando time nos muestra real 0m25.453s user 0m25.326s sys 0m0.039s (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 25 / 243

26 Introducción sistema operativo UNIX Estructura y conceptos generales Ejecución en modo kernel: ejemplos Consideremos ahora este programa main() { struct timespec t; t.tv_sec=0;t.tv_nsec=1000; } while (1) nanosleep (&t, NULL); /*1 milisegundo*/ Al cabo de 25 segundos de ejecución el comando time nos muestra real 0m25.897s user 0m0.006s sys 0m0.022s (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 26 / 243

27 Introducción sistema operativo UNIX Procesos y threads Introducción sistema operativo UNIX Estándares Inicialización del sistema Estructura y conceptos generales Procesos y threads Espacios de direcciones kernel (núcleo) reentrante (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 27 / 243

28 Procesos y threads Introducción sistema operativo UNIX Procesos y threads En un sistema UNIX tradicional un proceso viene definido por espacio de direcciones: Conjunto de direcciones de memoria que el proceso puede referenciar. punto de control del proceso: que indica cual es la siguiente instrucción a ejecutar utilizando un registro hardware que se llama C.P. En un sistema UNIX moderno puede haber varios puntos de control (threads) los threads (hilos o hebras) comparten el mismo espacio de direcciones (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 28 / 243

29 Introducción sistema operativo UNIX Espacios de direcciones Introducción sistema operativo UNIX Estándares Inicialización del sistema Estructura y conceptos generales Procesos y threads Espacios de direcciones kernel (núcleo) reentrante (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 29 / 243

30 Introducción sistema operativo UNIX Espacio de direcciones Espacios de direcciones Los procesos manejan direcciones virtuales de memoria. Una parte de este espacio corresponde al código y los datos del kernel. Se llama system space o kernel space El system space solo puede ser accedido en modo kernel El kernel mantiene estructuras de datos globales estructuras de datos específicas de cada proceso El espacio de direcciones del proceso actual es accesible directamente pues los registros de la MMU tienen la información necesaria. (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 30 / 243

31 Introducción sistema operativo UNIX Mapa de memoria en linux 32 bits Espacios de direcciones 0xc x brk end data end code 0x the invisible kernel initial stack room for stack grouth shared libraries unused malloc memory uninitialized data initialized data text (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 31 / 243

32 Introducción sistema operativo UNIX Espacios de direcciones Mapa de memoria en solaris para sparc (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 32 / 243

33 Introducción sistema operativo UNIX kernel (núcleo) reentrante Introducción sistema operativo UNIX Estándares Inicialización del sistema Estructura y conceptos generales Procesos y threads Espacios de direcciones kernel (núcleo) reentrante (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 33 / 243

34 kernel unix Introducción sistema operativo UNIX kernel (núcleo) reentrante El kernel de unix es un programa en C, en el que distinguimos código del kernel: lo que se ejecuta cuando el proceso está en modo kernel (código de las llamadas al sistema, manejadores de las interrupciones y excepciones) datos del kernel: variables globales del kernel, accesibles por todos los procesos, por ejemplo: tabla de procesos, tabla de inodos en memoria, tabla de ficheros abiertos del sistema... pila del kernel: zona de memoria que se utiliza como pila cuando el proceso se ejecuta en modo kernel: paso de argumentos entre funciones del kernel, variables locales de funciones del kernel... (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 34 / 243

35 kernel reentrante Introducción sistema operativo UNIX kernel (núcleo) reentrante el kernel de unix es reentrante varios procesos pueden estar ejecutando simultáneamente distintas funciones del kernel varios procesos pueden estar ejecutando simultáneamente la misma funcion del kernel requisitos para que el kernel (núcleo) sea reentrante: código del kernel es de solo lectura datos (variables globales) del kernel protegidos de accesos cocurrentes cada proceso tiene su propia pila del kernel (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 35 / 243

36 Introducción sistema operativo UNIX kernel (núcleo) reentrante kernel reentrante: protección de los datos de kernel Aproximación tradicional (non preemptible kernel) Un proceso que ejecuta en modo kernel no puede ser apropiado, solo puede abandonar la CPU si termina, pasa a espera o vuelve a modo usuario Solo es necesario proteger algunas estructuras del kernel (las susceptibles de ser utilizadas por procesos con esperas de por medio) La protección de estas estructuras es sencilla, bastaría con una marca de libre/ocupado Kernel apropiable (preemptible kernel) Un proceso en modo kernel puede ser expulsado de la CPU si aparece listo un proceso de más prioridad deben protegerse TODAS las estructuras del kernel con medios mas sofisticados (p.e. un semáforo) Es sistemas multiprocesador los mecanismos de protección son más complejos (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 36 / 243

37 Procesos en UNIX Procesos en UNIX Conceptos generales Estados de un proceso Implementación del concepto de proceso Estructura proc u area Credenciales Variables de entorno Ejecución en modo kernel Ejecución en modo kernel: Interrupción Ejecución en modo kernel: Llamada al sistema Ejecución en modo kernel: Recursos (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 37 / 243

38 Procesos en UNIX Procesos en UNIX Conceptos generales Conceptos generales Estados de un proceso Implementación del concepto de proceso Estructura proc u area Credenciales Variables de entorno Ejecución en modo kernel Ejecución en modo kernel: Interrupción Ejecución en modo kernel: Llamada al sistema Ejecución en modo kernel: Recursos (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 38 / 243

39 Procesos en UNIX Conceptos generales proceso: instancia de un programa en ejecución proceso: entidad que ejecuta un programa y proporciona un entorno de ejecución para él; en concreto un espacio de direcciones y uno (o varios) puntos de control un proceso tiene un tiempo de vida definido se crea mediante la llamada fork() (o vfork()) termina mediante exit() puede ejecutar un programa mediante alguna de las llamadas de la familia exec() (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 39 / 243

40 Procesos en UNIX Conceptos generales todo proceso tiene un proceso padre un proceso puede tener varios procesos hijos estructura jerárquica en forma de arbol con el proceso init como tronco si un proceso termina antes que sus procesos hijos estos pasan a ser heredados por init (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 40 / 243

41 Procesos en UNIX Conceptos generales Ejemplo de árbol de procesos obtenido con pstree (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 41 / 243

42 Procesos en UNIX Procesos en UNIX Estados de un proceso Conceptos generales Estados de un proceso Implementación del concepto de proceso Estructura proc u area Credenciales Variables de entorno Ejecución en modo kernel Ejecución en modo kernel: Interrupción Ejecución en modo kernel: Llamada al sistema Ejecución en modo kernel: Recursos (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 42 / 243

43 Procesos en UNIX Estados de un proceso Estados de un procesos en SystemV R2 inicial (idle): El proceso está siendo creado pero todavía no está listo para ejecición listo (runnable, ready to run) en espera (blocked, asleep). Tanto en este estado, como en el anterior, el proceso puede estar en la memoria principal o en el intercambio (swapped) ejecución modo usuario (user running) ejecución modo kernel (kernel running) zombie: El proceso ha terminado pero su proceso padre no ha hecho wait(), con lo que no se ha vaciado su entrada en la tabla de procesos y para el sistema el proceso sigue existiendo. (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 43 / 243

44 Procesos en UNIX Estados de un proceso A partir de 4.2BSD hay un nuevo estado: parado (stopped) Puede ser parado en espera o parado listo Se llega al estado de parado al recibir una de las siguientes señales SIGSTOP SIGTSTP ctrl-z SIGTTIN SIGTTOU Se sale de él mediante la señal SIGCONT (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 44 / 243

45 Procesos en UNIX Estados de un proceso La ejecución de un proceso comienza en modo kernel Las transiciones de ejecución a espera son desde ejecución en modo kernel Las transiciones de ejecución a listo son desde ejecución en modo kernel Un proceso termina desde ejecución en modo kernel Cuando un proceso termina, queda en estado zombie hasta que su padre hace una de las llamadas wait (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 45 / 243

46 Procesos en UNIX (Antonio Ya n ez Izquierdo) Estados de un proceso Sistemas operativos. Procesos en Unix 46 / 243

47 Procesos en UNIX Estados de un proceso (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 47 / 243

48 Procesos en UNIX Estados de un proceso (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 48 / 243

49 Procesos en UNIX Procesos en UNIX Implementación del concepto de proceso Conceptos generales Estados de un proceso Implementación del concepto de proceso Estructura proc u area Credenciales Variables de entorno Ejecución en modo kernel Ejecución en modo kernel: Interrupción Ejecución en modo kernel: Llamada al sistema Ejecución en modo kernel: Recursos (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 49 / 243

50 Procesos en UNIX Implementación de procesos I Implementación del concepto de proceso Para implementar el concepto de proceso, unix utiliza una serie de conceptos y estructuras contienen la información necesaria para ejecutar un programa Espacio de direcciones de usuario. Usualmente formado por texto (código), datos, pila, regiones de memoria compartida, ficheros mapeados... Información de control. estructura proc u area pila del kernel mapas de traslación de direcciones credenciales. Indican que privilegios tiene el proceso. variables de entorno. Proporcionan un método para proporcionar información al proceso (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 50 / 243

51 Procesos en UNIX Implementación del concepto de proceso Implementación de procesos II contexto hardware Los contenidos de los registros hardware (PC, PSW, SP, registros de FPU y MMU... ). Cuando hay un cambio de contexto se guardan en una parte de la u area llamada PCB (Process Control Block) Algunas de estas entidades, aunque conceptualmente distintas comparten implementación: por ejemplo, la pila del kernel suele implementarse como parte de la u area, y las credenciales figuran en la estructura proc En linux, en lugar de u area y estructura proc existe la estructura task struct que el kernel de linux utiliza para guardar la información de los procesos (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 51 / 243

52 Procesos en UNIX Procesos en UNIX Estructura proc Conceptos generales Estados de un proceso Implementación del concepto de proceso Estructura proc u area Credenciales Variables de entorno Ejecución en modo kernel Ejecución en modo kernel: Interrupción Ejecución en modo kernel: Llamada al sistema Ejecución en modo kernel: Recursos (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 52 / 243

53 Procesos en UNIX Estructura proc estructura proc El kernel mantiene un array de estructuras proc llamado proccess table Está en el espacio de datos del kernel La estructura proc de un proceso es siempre visible para el kernel, incluso cuando el proceso no está en CPU Contiene la información del proceso que es necesaria en todo momento (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 53 / 243

54 Procesos en UNIX Estructura proc alguna información relevante en estructura proc identificación del proceso localización de la u area (mapa de direcciones) estado del proceso punteros para cola de planificación, espera... prioridad e información relacionada sleep channel información sobre las señales (máscaras) información manejo de memoria punteros mara mantener estructura en lista de activas, espera, zombies... punteros para cola hash basada en PID información de jerarquía flags (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 54 / 243

55 Procesos en UNIX Procesos en UNIX u area Conceptos generales Estados de un proceso Implementación del concepto de proceso Estructura proc u area Credenciales Variables de entorno Ejecución en modo kernel Ejecución en modo kernel: Interrupción Ejecución en modo kernel: Llamada al sistema Ejecución en modo kernel: Recursos (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 55 / 243

56 Procesos en UNIX u area u area está en el espacio de usuario: solo está accesible cuando el proceso está en CPU siempre en la misma dirección virtual (el cambio de contexto realiza esta traslación) contiene información que es necesaria solamente cuando el proceso está en CPU (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 56 / 243

57 Procesos en UNIX u area alguna información relevante en u area PCB puntero a la estructuta proc argumentos y valores devueltos por la llamada al sistema información de señales: manejadores TDFU (tabla de descriptores de fichero de usuario) punteros a vnodos de directorio raíz, directorio actual y terminal asociada al proceso. pila del kernel del proceso (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 57 / 243

58 Procesos en UNIX Procesos en UNIX Credenciales Conceptos generales Estados de un proceso Implementación del concepto de proceso Estructura proc u area Credenciales Variables de entorno Ejecución en modo kernel Ejecución en modo kernel: Interrupción Ejecución en modo kernel: Llamada al sistema Ejecución en modo kernel: Recursos (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 58 / 243

59 credenciales Procesos en UNIX Credenciales Las credenciales de un proceso permiten al sistema determinar que privilegios tiene el proceso para el acceso a los ficheros del disco y en relación con otros procesos en el sistema cada usuario en el sistema es identificado por un número: user id o uid cada grupo en el sistema es identificado por un número: group id o gid hay un usuario especial en el sistema: root (uid=0) puede acceder a todos los ficheros puede enviar señales a todos los procesos puede realizar las llamadas al sistema privilegiadas (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 59 / 243

60 atributos de los ficheros Procesos en UNIX Credenciales un fichero tiene tres atributos que condicionan como pueden acceder a él los distintos procesos propietario: (uid del fichero) grupo: (gid del fichero) permisos: (modo del fichero) (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 60 / 243

61 credenciales y privilegios Procesos en UNIX Credenciales un proceso tiene las credenciales, que especifican a qué ficheros puede acceder y para qué y a que procesos puede enviar señales (y de qué procesos las puede recibir) credencial de usuario (uid del proceso) credencial de grupo (gid del proceso) Si un proceso intenta acceder a un archivo se procede de la siguiente manera si credencial de usuario del proceso coincide con propietario del fichero: se aplican permisos de propietario si credencial de grupo del proceso coincide con grupo del fichero: se aplican permisos de grupo en otro caso se aplican los permisos de resto (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 61 / 243

62 credenciales y privilegios Procesos en UNIX Credenciales en realidad un proceso tiene tres pares de credenciales: real, efectiva y salvada credenciales efectivas: condicionan el acceso a los ficheros credenciales reales y efectivas: determinan que señales pueden ser enviadas (en todos los sistemas se admite el envío de una se ñal si uid real o efectiva del proceso que envía coincide con uid real del proceso que recibe) credenciales salvadas y reales: determinan que cambios puede hacer el proceso en la credencial efectiva con las llamadas setuid y setgid (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 62 / 243

63 cambio de credenciales Procesos en UNIX Credenciales en Unix hay sólo tres llamadas que cambian la credencial setuid() Cambia la credencial de usuario del proceso que llama a setuid setgid() Cambia la credencial de grupo del proceso que llama a setgid exec(): Ejecuta un programa (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 63 / 243

64 cambio de credenciales Procesos en UNIX Credenciales setuid() Cambia la credencial efectiva de usuario del proceso que llama a setuid. Los únicos cambios que se permiten es efectiva=real o efectiva=salvada. Si el proceso tiene la credencial efectiva del root setuid cambia las tres credenciales setgid() Análoga a setuid() pero para las credenciales de grupo (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 64 / 243

65 cambio de credenciales Procesos en UNIX Credenciales las llamadas exec (execl, execv, execlp, execve... ) pueden cambiar las credenciales del proceso que llama a exec si el fichero ejecutable tiene unos permisos especiales 1. exec() sobre un ejecutable con permisos **s****** cambia los uid efectivo y salvado del proceso que hace exec() a los del propietario del ejecutable 2. exec() sobre un ejecutable con permisos *****s*** cambia los gid efectivo y salvado del proceso que hace exec() a los del propietario del ejecutable (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 65 / 243

66 Procesos en UNIX Procesos en UNIX Variables de entorno Conceptos generales Estados de un proceso Implementación del concepto de proceso Estructura proc u area Credenciales Variables de entorno Ejecución en modo kernel Ejecución en modo kernel: Interrupción Ejecución en modo kernel: Llamada al sistema Ejecución en modo kernel: Recursos (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 66 / 243

67 variables de entorno Procesos en UNIX Variables de entorno son cadenas de caracteres usualmente tienen la forma NOMBREVARIABLE=valorvariable colocadas al final de la pila de usuario varias maneras de acceder tercer argumento de main(): array de punteros a las variables de entorno. El último puntero es NULL extern char ** environ: array de punteros a las variables de entorno. El último puntero es NULL funciones de libreria. putenv(), getenv(), setenv(), unsetenv() (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 67 / 243

68 variables de entorno Procesos en UNIX Variables de entorno A continuación veremos el código y la salida de varios ejemplos Ejemplo 1 1. Muestra los argumentos de ĺınea de comando 2. Muestra las variables de entorno accedidas por el tercer argumento de main 3. Muestra el valor y la dirección donde se almacenan el tercer argumento de main y de la variable externa environ 4. Muestra las variables de entorno accedidas mediante environ 5. Muestra el valor y la dirección donde se almacenan el tercer argumento de main y la variable externa environ (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 68 / 243

69 Procesos en UNIX variables de entorno: ejemplo 1 Variables de entorno /**entorno.c**/ #include <stdio.h> extern char ** environ; void MuestraEntorno (char **entorno, char * nombre_entorno) { int i=0; while (entorno[i]!=null) { printf ("%p->%s[%d]=(%p) %s\n", &entorno[i], nombre_entorno, i,entorno[i],entorno[i]); i++; } } main (int argc, char * argv[], char *env[]) { int i; for (i=0; i<argc; i++) printf ("%p->argv[%d]=(%p) %s\n", &argv[i], i, argv[i], argv[i]); printf ("%p->argv[%d]=(%p) \n", &argv[argc], argc, argv[argc]); printf ("%p->argv=%p\n%p->argc=%d \n", &argv, argv, &argc, argc); MuestraEntorno(env,"env"); printf("%p->environ=%p\n%p->env=%p \n", &environ, environ, &env, env); MuestraEntorno(environ,"environ"); printf("%p->environ=%p\n%p->env=%p \n", &environ, environ, &env, env); (Antonio Yáñez Izquierdo) Sistemas operativos. Procesos en Unix 69 / 243

1. Sistema Operativo Unix

1. Sistema Operativo Unix 1. Sistema Operativo Unix 1.1 Introducción al S.O. Unix y su entorno 1.2 Subsistema de Archivos 1.3 Subsistema de Procesos 1.4 Políticas de Gestión de Memoria Dpto. Lenguajes y Sistemas Informáticos. Universidad

Más detalles

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

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña Sistemas Operativos Pedro Cabalar Depto. de Computación Universidade da Coruña TEMA III. PROCESOS. P. Cabalar Sistemas( Operativos Depto. de Computación Universidade Tema da Coruña III. Procesos ) 1 /

Más detalles

Sistemas Operativos Práctica 3

Sistemas Operativos Práctica 3 Sistemas Operativos Práctica 3 Ing. Andrés Bustamante afbustamanteg@unal.edu.co Ingeniería de Sistemas Facultad de Ingeniería Universidad de la Amazonia 2009 1. Objetivo El objetivo de la práctica es que

Más detalles

Administración de Redes

Administración de Redes Administración de Redes PROCESOS EN LINUX Profesor Carlos Figueira Departamento de Computación y T. I. USB Grandes objetivos de un Sistema de Operación (SO) Intercalar ejecución de varios procesos para

Más detalles

Unidad 2: Gestión de Procesos

Unidad 2: Gestión de Procesos Unidad 2: Gestión de Procesos Tema 4, Procesos: 4.1 El concepto de proceso. 4.2 Planificación de procesos. 4.3 Procesos cooperativos. 4.4 Hilos (threads). Informática (Segovia) 1 4.1 El concepto de proceso.

Más detalles

Sistemas Operativos I Manual de prácticas

Sistemas Operativos I Manual de prácticas Sistemas Operativos I Manual de prácticas Grupo de Sistemas Operativos (DSIC/DISCA) Práctica 3: Procesos POSIX ANTES DE EMPEZAR...... 2 PRÁCTICA 3: PROCESOS POSIX... 2 CREACIÓN DE PROCESOS MEDIANTE FORK...

Más detalles

Sistemas Operativos. Curso 2016 Procesos

Sistemas Operativos. Curso 2016 Procesos Sistemas Operativos Curso 2016 Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor

Más detalles

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

Sistemas Operativos: Programación de Sistemas. Curso 2006-07. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Tema 2 : entorno programación linux Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Francisco J. Santana 1 Programación

Más detalles

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

Procesos 1 / 31. Para entender el concepto de hebra, necesitamos compreender el concepto de proceso Procesos 1 / 31 Concepto de proceso Para entender el concepto de hebra, necesitamos compreender el concepto de proceso Un proceso es un programa en ejecución Una instancia de un programa corriendo en un

Más detalles

SOLUCION EXAMEN junio 2006

SOLUCION EXAMEN junio 2006 SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los

Más detalles

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos 2º Ingeniero de Telecomunicación (Sonido e Imagen) Departamento de Ingeniería Telemática Universidad Carlos III de Madrid 2 Qué vamos a ver hoy? Qué es un sistema

Más detalles

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

Procesos. Lecturas recomendadas. Ejemplo: gcc. Modelo de procesamiento. Modelo de procesamiento. Jean Bacon Operating Systems (4) Índice Procesos Gustavo Romero 1 Definición 2 Control Arquitectura y Tecnología de Computadores 14 de febrero de 2014 3 Estado 4 IPC Gustavo Romero Procesos (1/50) Gustavo Romero Procesos (2/50) Lecturas

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 2: Estructura de los sistemas de computación. 2.1 Funcionamiento de los sistemas de computación. 2.2 Ejecución de instrucciones e interrupciones

Más detalles

Modelo de procesamiento

Modelo de procesamiento Índice Lecturas recomendadas Procesos Gustavo Romero López Arquitectura y Tecnología de Computadores 15 de mayo de 2015 1 Definición 2 Control 3 Estado 4 IPC Jean Bacon Operating Systems (4) Abraham Silberschatz

Más detalles

Requerimientos Principales de un Sistema Operativo. Descripción y Control de Procesos. Proceso

Requerimientos Principales de un Sistema Operativo. Descripción y Control de Procesos. Proceso Requerimientos Principales de un Sistema Operativo Descripción y Control de Procesos Capítulo 3 Entrelazar la ejecución de varios procesos para maximizar el uso del procesador a la vez que se mantiene

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 3: Estructura del sistema operativo. 3.1 Componentes del sistema. 3.2 Servicios del sistema operativo. 3.3 Llamadas al sistema. 3.4 Programas

Más detalles

Procesos. Procesos. Concurrencia de procesos. Qué es un proceso? Estados de un proceso. Modelo de 2 estados. (C) 2008 Mario Medina 1

Procesos. Procesos. Concurrencia de procesos. Qué es un proceso? Estados de un proceso. Modelo de 2 estados. (C) 2008 Mario Medina 1 Procesos Procesos Mario Medina mariomedina@udec.cl El sistema operativo como administrador de procesos Controla la ejecución de procesos para optimizar criterios Asigna recursos a procesos Facilita sincronización

Más detalles

Tema 2: Implementación del núcleo de un Sistema Operativo

Tema 2: Implementación del núcleo de un Sistema Operativo Tema 2: Implementación del núcleo de un Sistema Operativo 1. Sistema Operativo Unix 2. Sistema Operativo Windows (a partir de NT) Dpto. Lenguajes y Sistemas Informáticos. Universidad de Granada 1 1. Sistema

Más detalles

Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 4 de Septiembre de 2009

Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 4 de Septiembre de 2009 Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 4 de Septiembre de 2009 1. [PROCESOS] a) Considerar el siguiente código: void main() { int j=10; pid_t pid; for (int i=0; i

Más detalles

Sistemas Operativos II. Laura M. Castro Souto

Sistemas Operativos II. Laura M. Castro Souto Sistemas Operativos II Laura M. Castro Souto Segundo Cuatrimestre Curso 2000/2001 2 3 o de Ingeniería Informática Índice General 1 Procesos en Unix 7 1.1 Introducción...................................

Más detalles

Contenido. Procesos. Programas/Procesos. Programas/Procesos. Por qué hacer uso de los Procesos? Proceso

Contenido. Procesos. Programas/Procesos. Programas/Procesos. Por qué hacer uso de los Procesos? Proceso Contenido Procesos Qué es un Proceso? Qué información requiere el Sistema de Operación para manejar los procesos? Programas/Procesos Programas/Procesos Un proceso es diferente a un programa Programa: Código

Más detalles

TEMA 6. Implementación de UNIX. Contenido

TEMA 6. Implementación de UNIX. Contenido TEMA 6 Implementación de UNIX Contenido 6.1. Introducción 6.2. El Núcleo (Kernel) de UNIX 6.3. Gestión de Procesos 6.3.1. Estructuras de Control de Procesos 6.3.2. Contexto de un proceso 6.3.3. Estados

Más detalles

2. Sistema Operativo Windows

2. Sistema Operativo Windows 2. Sistema Operativo Windows 2.1 Introducción al S.O. Windows NT y Windows 2000 2.2 Subsistema de Archivos 2.3 Subsistema de Procesos 2.4 Gestión de Memoria Dpto. Lenguajes Tema y 2: Sistemas 2. Sistema

Más detalles

Gestión de procesos DEFINICIONES DE PROCESOS

Gestión de procesos DEFINICIONES DE PROCESOS DEFINICIONES DE PROCESOS Gestión de procesos Un programa en Ejecución. Una instancia de un programa ejecutándose en un computador. La entidad que se puede asignar o ejecutar en un procesador. Una unidad

Más detalles

Universidad Tecnológica de Panamá Facultad de Ingeniería de Sistemas Computacionales Departamento de Arquitectura y Redes de Computadoras

Universidad Tecnológica de Panamá Facultad de Ingeniería de Sistemas Computacionales Departamento de Arquitectura y Redes de Computadoras Universidad Tecnológica de Panamá Facultad de Ingeniería de Sistemas Computacionales Departamento de Arquitectura y Redes de Computadoras Guía # 1 de Laboratorio Monitorización de Procesos en Linux Objetivos:

Más detalles

Procesos. Planificación del Procesador.

Procesos. Planificación del Procesador. Procesos. Planificación del Procesador. Sistemas Operativos. Tema 2. Concepto de Proceso. Una definición sencilla: Programa en ejecución. Entidad pasiva Programa RECURSOS CPU Memoria Ficheros Dispositivos

Más detalles

Contenidos. Sistemas operativos Tema 3: Estructura del sistema operativo. Componentes típicos de un SO. Gestión de procesos.

Contenidos. Sistemas operativos Tema 3: Estructura del sistema operativo. Componentes típicos de un SO. Gestión de procesos. Contenidos Sistemas operativos Tema 3: Estructura del sistema operativo Componentes típicos del SO Servicios del SO Llamadas al sistema Programas del sistema El núcleo o kernel Modelos de diseño del SO

Más detalles

ESTRUCTURAS BÁSICAS DE UN S.O.

ESTRUCTURAS BÁSICAS DE UN S.O. PROCESOS ESTRUCTURAS DE DATOS BCP PROCESOS OPERACIONES SOBRE LOS PROCESOS ESTADOS DE LOS PROCESOS PLANIFICACIÓN DE LA CPU ALGORITMOS NO APROPIATIVOS ALGORITMOS APROPIATIVOS EVALUACIÓN DE LAS POLÍTICAS

Más detalles

Sistemas Operativos I. Tema 3. Procesos. Equipo de Sistemas Operativos DISCA / DSIC UPV

Sistemas Operativos I. Tema 3. Procesos. Equipo de Sistemas Operativos DISCA / DSIC UPV Sistemas Operativos I Tema 3 Procesos Equipo de Sistemas Operativos DISCA / DSIC UPV Introducción Existen varias razones para permitir la ejecución concurrente de procesos: Compartir recursos físicos Compartir

Más detalles

PLANIFICACIÓN DE PROCESOS

PLANIFICACIÓN DE PROCESOS PLANIFICACIÓN DE PROCESOS (Scheduling) 1 Introducción: Scheduling Estados de un proceso Creado Memoria Principal Ejecución Terminado Espera E/S Listo Fin espera E/S Bloqueado Memoria Virtual Listo y suspendido

Más detalles

TEMA 2. GESTIÓN DE PROCESOS

TEMA 2. GESTIÓN DE PROCESOS TEMA 2. GESTIÓN DE PROCESOS 2.1. Estados y transiciones de un proceso. 2.1.1. Ciclo de vida de un proceso en UNIX. Conjunto de estados. 2.1.2. Control sobre algunas transiciones a nivel de usuario. 2.1.3.

Más detalles

1 HILOS (THREADS) EN JAVA

1 HILOS (THREADS) EN JAVA 1 HILOS (THREADS) EN JAVA 1.1QUÉ ES UN THREAD La Máquina Virtual Java (JVM) es un sistema multihilo. Es decir, es capaz de ejecutar varios hilos de ejecución simultáneamente. La JVM gestiona todos los

Más detalles

Definición Tareas del sistema operativo Concurrencia y paralelismo Estados de los procesos Propiedades de un proceso en Linux CONCEPTOS 1.

Definición Tareas del sistema operativo Concurrencia y paralelismo Estados de los procesos Propiedades de un proceso en Linux CONCEPTOS 1. T2-Procesos Índice Conceptos relacionados con la Gestión de procesos Servicios básicos para gestionar procesos (basado en Linux) Comunicación entre procesos Signals Linux y Sincronización Gestión interna

Más detalles

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008 SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008 1.- INTRODUCCIÓN A LOS PROCESOS 1.1.- Concepto 1.2.- Composición y estructura 1.3.- Estados y transiciones 2.- COMUNICACIÓN ENTRE PROCESOS

Más detalles

Tema 11. Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. 11.1.1. MULTIPROGRAMACIÓN.

Tema 11. Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. 11.1.1. MULTIPROGRAMACIÓN. Tema 11 Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. El sistema operativo es básicamente un programa que controla los recursos del computador, proporciona servicios a

Más detalles

Sistemas Operativos Ingeniería de telecomunicaciones Sesión 2: Procesos e hilos (modificado 29/10)

Sistemas Operativos Ingeniería de telecomunicaciones Sesión 2: Procesos e hilos (modificado 29/10) Sistemas Operativos Ingeniería de telecomunicaciones Sesión 2: Procesos e hilos (modificado 29/10) Calendario Comienzo: Lunes 19 de octubre y miércoles 21 de octubre. Entrega: 2 de noviembre y 4 de noviembre,

Más detalles

SENA CEET, Distrito Capital ADSI Instructor: Ing. Espec. Javier V.aquiro

SENA CEET, Distrito Capital ADSI Instructor: Ing. Espec. Javier V.aquiro SENA CEET, Distrito Capital ADSI Instructor: Ing. Espec. Javier V.aquiro Que hace un Sistema Operativo? El SO viste a la máquina desnuda * 4º INFORMÁTICA * La máquina desnuda es el ordenador sin S.O Definición

Más detalles

Capítulo 1 Introducción a la Computación

Capítulo 1 Introducción a la Computación Capítulo 1 Introducción a la Computación 1 MEMORIA PRINCIPAL (RAM) DISPOSITIVOS DE ENTRADA (Teclado, Ratón, etc) C P U DISPOSITIVOS DE SALIDA (Monitor, Impresora, etc.) ALMACENAMIENTO (Memoria Secundaria:

Más detalles

Sistemas Operativos. Tema 1. Arquitectura Básica de los Computadores

Sistemas Operativos. Tema 1. Arquitectura Básica de los Computadores Sistemas Operativos. Tema 1 Arquitectura Básica de los Computadores http://www.ditec.um.es/so Departamento de Ingeniería y Tecnología de Computadores Universidad de Murcia Sistemas Operativos. Tema 1 Arquitectura

Más detalles

Ingeniería Superior de Informática. Curso 3º. Sistemas Operativos. Examen Final. TEORÍA. 31 de Enero de 2005

Ingeniería Superior de Informática. Curso 3º. Sistemas Operativos. Examen Final. TEORÍA. 31 de Enero de 2005 Ingeniería Superior de Informática. Curso º. Sistemas Operativos. Examen Final. TEORÍA. de Enero de 005 Nombre: DNI:. ( puntos). La TFA es la tabla que, en UNIX, guarda los punteros de posición de cada

Más detalles

Tema 1: Implementación del sistema de archivos

Tema 1: Implementación del sistema de archivos Tema 1: Implementación del sistema de archivos 1. Introducción 2. Implementación 3. Estructura del almacenamiento secundario Dpto. Tema Lenguajes 1: Implementación y Sistemas del Informáticos. sistema

Más detalles

Procesos. Bibliografía. Threads y procesos. Definiciones

Procesos. Bibliografía. Threads y procesos. Definiciones Procesos Prof. Mariela Curiel Bibliografía A. Tanembaum & M. Van Steen. Sistemas Distribuidos. Principios y Paradigmas. 2da. Edición. Smith & Nair. The Architecture of Virtual Machines. IEEE Computer.

Más detalles

Taller de sistemas operativos PLANIFICADOR

Taller de sistemas operativos PLANIFICADOR Taller de sistemas operativos PLANIFICADOR Agenda Introducción Clases de planificación Prioridades Timeslice Prioridad dinámica Estructuras del planificador Planificador en funcionamiento Nuevo planificador

Más detalles

TEMA 1. VISIÓN GENERAL E INTRODUCCIÓN AL KERNEL

TEMA 1. VISIÓN GENERAL E INTRODUCCIÓN AL KERNEL TEMA 1. VISIÓN GENERAL E INTRODUCCIÓN AL KERNEL 1.1. Introducción histórica a UNIX y Linux. 1.2. Visión general de UNIX. 1.2.1. Estructura del sistema. 1.2.2. Perspectiva del usuario. 1.2.2.1. El sistema

Más detalles

Medición y comparación de prestaciones

Medición y comparación de prestaciones Evaluación y Explotación de Sistemas Informáticos Medición y comparación de prestaciones Problemas Considérese un sistema informático (con palabras de 32 bits) en el que la activación de un monitor software

Más detalles

PROGRAMACION CONCURRENTE. I.2 Recursos para la concurrencia.

PROGRAMACION CONCURRENTE. I.2 Recursos para la concurrencia. PROGRAMACION CONCURRENTE I.2 Recursos para la concurrencia. J.M. Drake 1 Procesos Concurrentes Concepto de proceso. Estructura de los procesos. Estados de un proceso. Gestión de los procesos. 2 2 Plataforma

Más detalles

LABORATORIO 2. La biblioteca a nivel de usuario semso (semáforos Sistemas Operativos) brinda las siguientes primitivas:

LABORATORIO 2. La biblioteca a nivel de usuario semso (semáforos Sistemas Operativos) brinda las siguientes primitivas: 1 Introducción LABORATORIO 2 En esta tarea se desea implementar un servicio sincronización de procesos a través de semáforos binarios con prioridad para el sistema operativo Linux. Para esto se deberá

Más detalles

Afinamiento del Sistema

Afinamiento del Sistema Afinamiento del Sistema /home/oscar/asignaturas/aso/presentacion1/aso.sxi Oscar Alejandro Ferrer Bernal Facultad de Informática Universidad de Las Palmas de Gran Canaria Parte 1 Ajuste del Sistema Areas

Más detalles

Examen de Fundamentos de sistemas distribuidos

Examen de Fundamentos de sistemas distribuidos Examen de Fundamentos de sistemas distribuidos Tiempo total: 2 horas Problema: Programa: Rendezvous con semáforos(5 puntos) Utilizando como único mecanismo de sincronización los semáforos descritos en

Más detalles

Sistemas Operativos I Última modificación 2008/06

Sistemas Operativos I Última modificación 2008/06 Última modificación 2008/06 Compilación de apuntes de los temas 1 a 3 de la asignatura "Sistemas Operativos 1", curso 2005/2006, de la Universidad Politécnica de Valencia (http://www.dsic.upv.es/~eargente/),

Más detalles

TEMA 3: EL NÚCLEO DE UN SISTEMA OPERATIVO

TEMA 3: EL NÚCLEO DE UN SISTEMA OPERATIVO TEMA 3: EL NÚCLEO DE UN SISTEMA OPERATIVO 1. Introducción. Funciones del núcleo de un S.O. Los Sistemas Operativos proporcionan un número potencialmente grande de servicios accesibles al usuario. Uno de

Más detalles

Procesos y Threads en Windows (Xp y Server 2003)

Procesos y Threads en Windows (Xp y Server 2003) Lic. Ing. Osvaldo Clúa 2008 Facultad de Ingeniería Universidad de Buenos Aires Procesos y Threads en Windows (Xp y Server 2003) EPROCESS Executive Process (bloque de control) Es la representación de un

Más detalles

Unidad II: Administración de Procesos y del procesador

Unidad II: Administración de Procesos y del procesador Unidad II: Administración de Procesos y del procesador 2.1 Concepto de proceso Un proceso no es más que un programa en ejecución, e incluye los valores actuales del contador de programa, los registros

Más detalles

El lenguaje de Programación C. Fernando J. Pereda

El lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org> El lenguaje de Programación C Fernando J. Pereda Por qué aprender C? Portable y muy extendido Estándar (C89, C99) El lenguaje de los sistemas Un lenguaje fácil (no, no es broma) Por

Más detalles

Roberto Gómez Cárdenas ITESM-CEM rogomez@itesm.mx http://homepage.cem.itesm.mx/rogomez

Roberto Gómez Cárdenas ITESM-CEM rogomez@itesm.mx http://homepage.cem.itesm.mx/rogomez Los procesos Roberto Gómez Cárdenas ITESM-CEM rogomez@itesm.mx http://homepage.cem.itesm.mx/rogomez p g Lámina 1 Los procesos Lámina 2 Contexto de un proceso direcciones altas de memoria direcciones i

Más detalles

Convivencia. Gestión del Sistema de Archivos

Convivencia. Gestión del Sistema de Archivos Convivencia Gestión del Sistema de Archivos Dra. Carolina Carolina Mañoso Mañoso Dpto. Dpto. Imformática Informática y y Automática.UNED Introducción Se necesitan tres condiciones para el almacenamiento

Más detalles

Sistemas Operativos Tema 3 Procesos

Sistemas Operativos Tema 3 Procesos Sistemas Operativos p. 1/63 Sistemas Operativos Tema 3 Procesos http://www.ditec.um.es/so Departamento de Ingenieria y Tecnologia de Computadores Universidad de Murcia Sistemas Operativos p. 2/63 Índice

Más detalles

Sistemas Operativos. Iván Bernal, Ph.D. 4. Escuela Politécnica Nacional email: imbernal@mailfie.epn.edu.ec. Copyright @2002, I.

Sistemas Operativos. Iván Bernal, Ph.D. 4. Escuela Politécnica Nacional email: imbernal@mailfie.epn.edu.ec. Copyright @2002, I. Sistemas Operativos Clase # 9 Tipos de llamadas al Sistema Viernes, 3 de Mayo de 2002 Agenda Sorpresa! no hay prueba. Tipos de llamadas al sistema. Iván Bernal, Ph.D. Escuela Politécnica Nacional email:

Más detalles

Linux Monitorización de rendimiento. Herramientas integradas en el sistema Herramientas Sysstat Monitorización de programas Monitor del sistema

Linux Monitorización de rendimiento. Herramientas integradas en el sistema Herramientas Sysstat Monitorización de programas Monitor del sistema Linux Monitorización de rendimiento Herramientas integradas en el Herramientas Sysstat Monitorización de programas Monitor del Monitorizar la carga del. uptime Presenta la hora del y el tiempo que lleva

Más detalles

LLAMADAS AL SISTEMA SISTEMAS OPERATIVOS

LLAMADAS AL SISTEMA SISTEMAS OPERATIVOS LLAMADAS AL SISTEMA SISTEMAS OPERATIVOS 26/05/2013 eduar14_cr@hotmail.com cilred_tlapa@hotmail.com LLAMADAS AL SISTEMA Las llamadas al sistema proporcionan la interfaz entre un proceso y el sistema operativo,

Más detalles

PRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador.

PRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador. PRACTICA #1 Aprender a programar una interrupción software empleando C y/o Ensamblador. Aprender a manipular dispositivos externos (8253, 8255) desde C y/o ensamblador. PROCEDIMIENTO: Vamos a programar

Más detalles

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA. JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5.

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA. JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5. ARQUITECTURAS DE COMPUTADORES 2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5. Unidad de E/S 1 Unidad de E/S Indice Introducción.

Más detalles

Federico Peinado www.federicopeinado.es

Federico Peinado www.federicopeinado.es Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es

Más detalles

Conceptos Generales Tabla de Contenidos

Conceptos Generales Tabla de Contenidos Conceptos Generales Tabla de Contenidos 1. Conceptos Generales... 2 1.1 Introducción:... 2 1.2 Definición de un Sistema Operativo... 2 1.3 Estructura, elementos y funciones...5 1.3.1 Evolución de los sistemas

Más detalles

Señal de petición de Interrupción

Señal de petición de Interrupción Consideren una tarea que require tomar caracteres desde un teclado y mostrarlos en la pantalla de un monitor. La tasa de transferencia desde un teclado a un computador está limitado por la velocidad del

Más detalles

TEMA 8. SISTEMAS OPERATIVOS PARA TIEMPO REAL.

TEMA 8. SISTEMAS OPERATIVOS PARA TIEMPO REAL. TEMA 8. SISTEMAS OPERATIVOS PARA TIEMPO REAL. 8.1. Introducción. 8.2. Problemas de los sistemas operativos convencionales. 8.3. Sistemas operativos para tiempo real 8.3.2. KU-Real-Time Linux (KURT). 8.3.3.

Más detalles

Estructuras de Sistemas Operativos

Estructuras de Sistemas Operativos Estructuras de Sistemas Operativos Definicion de Sistema Operativos Un sistema operativo es un programa que actua como inter entre el usuario y el hardware de un computador y su proposito es proporcionar

Más detalles

El tema de esta presentación es los conceptos básicos relacionados con Sistemas Operativos.

El tema de esta presentación es los conceptos básicos relacionados con Sistemas Operativos. 1 El tema de esta presentación es los conceptos básicos relacionados con Sistemas Operativos. 2 Qué es un sistema operativo Un sistema operativo es un programa que tiene encomendadas una serie de funciones

Más detalles

Introducción a la Entrada/Salida

Introducción a la Entrada/Salida Introducción a la Entrada/Salida Organización de entrada/salida La familia de procesadores 80x86, presente en el IBM PC, utiliza la arquitectura Von Neumann, que puede verse en la figura 1. El denominado

Más detalles

Apellidos Nombre DNI

Apellidos Nombre DNI A continuación se muestra el listado de un programa cuyo objetivo es encontrar una palabra dentro de una cadena de caracteres de la sección de datos y copiar dicha palabra en otra zona de la sección de

Más detalles

Ilustrar el mecanismo de llamadas al sistema para solicitar servicios al sistema operativo.

Ilustrar el mecanismo de llamadas al sistema para solicitar servicios al sistema operativo. Práctica 1: introducción al simulador SPIM 1. Motivación Seguro que a estas alturas de la carrera sabe ya manejar un ordenador perfectamente. Incluso debe saber cómo programarlos en un lenguaje de alto

Más detalles

Introducción a la Administración de Sistemas Unix/Linux

Introducción a la Administración de Sistemas Unix/Linux Introducción a la Administración de Sistemas Unix/Linux Departamento de Sistemas Telemáticos y Computación (GSyC) gsyc-profes (arroba) gsyc.es Septiembre de 2012 GSyC - 2012 Introducción 1 c 2012 GSyC

Más detalles

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

Sistemas operativos: una visión aplicada. Capítulo 11 Estudio de casos: Linux Sistemas operativos: una visión aplicada Capítulo 11 Estudio de casos: Linux Contenido Historia de Linux Características y estructura de Linux Gestión de procesos Gestión de memoria Entrada/salida Sistema

Más detalles

Implementación de monitores POSIX

Implementación de monitores POSIX Implementación de monitores POSIX Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Programación concurrente: Problemática Presencia de condiciones de

Más detalles

3.- Procesos. Concepto de Proceso. Despacho (calendarización) de Procesos. Operaciones en Procesos. Procesos en cooperación

3.- Procesos. Concepto de Proceso. Despacho (calendarización) de Procesos. Operaciones en Procesos. Procesos en cooperación 3.- Procesos Despacho (calendarización) de Procesos Operaciones en Procesos Procesos en cooperación Compunicación Interprocesos Communicación en sistemas Cliente-Servidor Sistema de Batch jobs Sistema

Más detalles

Sockets (TCP) Tema 2.- Nivel de aplicación en Internet

Sockets (TCP) Tema 2.- Nivel de aplicación en Internet Sockets (TCP) Tema 2- Nivel de aplicación en Internet Dr Daniel Morató es de Computadores Ingeniero Técnico en Informática de Gestión, 2º curso Material parcialmente adaptado del libro Computer Networking:

Más detalles

TEMA 6: GESTIÓN DE ENTRADA/SALIDA

TEMA 6: GESTIÓN DE ENTRADA/SALIDA 1. Introducción TEMA 6: GESTIÓN DE ENTRADA/SALIDA Función principal de un S.O.: controlar todos los dispositivos de E/S de la computadora. El Subsistema de E/S se encarga de Emitir órdenes a los dispositivos

Más detalles

Sistemas Operativos - Funciones del sistema operativo» Cargar y ejecutar programas (procesos)» Facilitar funciones de E/S» Controlar y distribuir el acceso a los recursos» Controlar errores Componentes

Más detalles

MÁSTER ONLINE EN ADMINISTRACIÓN LINUX

MÁSTER ONLINE EN ADMINISTRACIÓN LINUX MÁSTER ONLINE EN ADMINISTRACIÓN LINUX Módulo 1 Hardware & Arquitectura de sistemas - 20 horas Este módulo permite conocer y configurar los elementos básicos del hardware del sistema, como también otros

Más detalles

Analista Universitario en Sistemas. Sistemas Operativos. Instituto Politécnico Superior INTRODUCCIÓN

Analista Universitario en Sistemas. Sistemas Operativos. Instituto Politécnico Superior INTRODUCCIÓN 1 Qué es un sistema operativo? Es software que proporciona un acceso sencillo y seguro al hardware, ocultando detalles al usuario acerca de la implementación particular y creando la ilusión de existencia

Más detalles

Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia

Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia Concurrencia: deberes Concurrencia: Exclusión Mutua y Sincronización Capítulo 5 Comunicación entre procesos Compartir recursos Sincronización de múltiples procesos Asignación del tiempo de procesador Concurrencia

Más detalles

Tema 4. Gestión de entrada/salida

Tema 4. Gestión de entrada/salida Tema 4. Gestión de entrada/salida 1. Principios de la gestión de E/S. 1.Problemática de los dispositivos de E/S. 2.Objetivos generales del software de E/S. 3.Principios hardware de E/S. 1. E/S controlada

Más detalles

Planificación de Procesos. Módulo 5. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

Planificación de Procesos. Módulo 5. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Planificación de Procesos Módulo 5 Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Planificación de Procesos Conceptos Básicos Criterios de Planificación

Más detalles

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Facultad de Ingeniería Universidad de Buenos Aires 75-08 Sistemas Operativos Lic. Ing. Osvaldo Clúa 2007 Introducción a los Sistemas Operativos Qué es un Sistema Operativo? Un programa que hace de intermediario

Más detalles

Unidad 2: Gestión de Memoria

Unidad 2: Gestión de Memoria Unidad 2: Gestión de Memoria Tema 3, Gestión de Memoria: 3.1 Definiciones y técnicas básicas. 3.2 Gestión de memoria contigua: Partición, fragmentación, algoritmos de ubicación... 3.3 Paginación: Estructura

Más detalles

Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 9 de Febrero de 2007

Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 9 de Febrero de 2007 Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 9 de Febrero de 2007 Planteamiento del examen de TEORIA: El examen constará de 5 preguntas/cuestiones que pueden ser libremente

Más detalles

Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente:

Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente: (3 ptos) Memoria Compartida y Semáforos R/W 1. Objetivo En esta práctica se pretende crear una librería que dé la funcionalidad de un semáforo para resolver problemas con múltiples lectores y escritores

Más detalles

; hcomment.rc HTTP://AA.ES/INFO.HTML http://www.bb.com http://www.cc.org/a.html aa.es www.bb.com www.cc.org ;

; hcomment.rc HTTP://AA.ES/INFO.HTML http://www.bb.com http://www.cc.org/a.html aa.es www.bb.com www.cc.org ; Examen de Sistemas Operativos ITIS Fuenlabrada Mayo 2011 Problema: Llamadas al sistema (3 puntos) Implemente en C para Plan 9 un programa hlines que a partir de una URL que se le pasa como argumento, escriba

Más detalles

Requerimientos principales de un sistema operativo

Requerimientos principales de un sistema operativo Descripción y control de procesos Requerimientos principales de un sistema operativo Intercalar la ejecución de varios procesos para maximizar el uso del procesador proporcionando un tiempo de respuesta

Más detalles

Tema 2. Procesos. 1. Concepto de proceso

Tema 2. Procesos. 1. Concepto de proceso Tema 2. Procesos 1. Concepto de proceso. 2. Principios de la Programación concurrente. 1. Concurrencia. Programación concurrente. 2. Áreas de comunicación entre procesos. 1. Exclusión mutua. 2. Sincronización.

Más detalles

Gestión de procesos: Una visión interna

Gestión de procesos: Una visión interna Diseño de sistemas operativos Gestión de procesos: Una visión interna Índice Introducción Gestión interna de eventos Implementación del modelo de procesos Operaciones sobre los procesos Sincronización

Más detalles

Fundamentos de Computación para Científicos

Fundamentos de Computación para Científicos Fundamentos de Computación para Científicos Conceptos de Sistemas Operativos Noviembre, 2015 Contenido 1 Definición 2 Kernel 3 Procesos 4 Memoria 5 Sistema de Archivos 6 Seguridad y Protección 7 Interfaz

Más detalles

INTERRUPCIONES. La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales:

INTERRUPCIONES. La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales: INTERRUPCIONES La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales: a)consultas (POLLING): Se comprueban cíclicamente,

Más detalles

Mensajes. Interbloqueo

Mensajes. Interbloqueo CONCURRENCIA DE PROCESOS Preparado por: Angel Chata Tintaya (angelchata@hotmail.com) Resumen Los procesos comparten variables globales, comparten y compiten por recursos, se ejecutan simultáneamente intercalándose

Más detalles

Fundamentos de Sistemas Operativos

Fundamentos de Sistemas Operativos Fundamentos de Sistemas Operativos Sistemas Informáticos Fede Pérez Índice TEMA Fundamentos de Sistemas Operativos 1. - Introducción 2. - El Sistema Operativo como parte de un Sistema de Computación 2.1

Más detalles

Punteros. Definición Un puntero es un dato que contiene una dirección de memoria.

Punteros. Definición Un puntero es un dato que contiene una dirección de memoria. Punteros Definición Un puntero es un dato que contiene una dirección de memoria. NOTA: Existe una dirección especial que se representa por medio de la constante NULL (definida en ) y se emplea

Más detalles

Capítulo 4 Gestión de memoria

Capítulo 4 Gestión de memoria Sistemas operativos: una visión aplicada Capítulo 4 Gestión de memoria Contenido Objetivos del sistema de gestión de memoria Modelo de memoria de un proceso Esquemas de memoria basados en asignación contigua

Más detalles

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

Sea el siguiente programa de nombre c0p1 para copiar archivos (por simplicidad se ha eliminado todo control de errores): Se pide: Sea el siguiente programa de nombre "c0p1" para copiar archivos (por simplicidad se ha eliminado todo control de errores): 1 /* c0p1 origen destino 2 * Copia "origen" sobre "destino" byte a byte, 3 * haciendo

Más detalles

Scheduling. Ricardo Corin

Scheduling. Ricardo Corin Scheduling Ricardo Corin Introducción Múltiples procesos en estado READY compiten por tiempo de CPUs Si Ready > CPU, no podemos ejecutar todos simultáneamente El planificador o scheduler se ocupa de seleccionar

Más detalles

Prueba de Laboratorio Modelo B01 Semáforos y Memoria Compartida

Prueba de Laboratorio Modelo B01 Semáforos y Memoria Compartida Prueba de Laboratorio APELLIDOS: NOMBRE: GRUPO DE LABORATORIO: Indicaciones: No se permiten libros, apuntes ni teléfonos móviles. Cuando tenga una solución al ejercicio muéstrela al profesor (compilación

Más detalles