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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Ú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 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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ESTUDIO DE CASOS: LINUX

ESTUDIO DE CASOS: LINUX ESTUDIO DE CASOS: LINUX En este capítulo se estudia el sistema operativo Linux. Se trata de un sistema operativo de libre distribución que proporciona una interfaz POSIX. Actualmente Linux es ampliamente

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

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

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

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

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

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

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

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

Sistemas Operativos - Intro

Sistemas Operativos - Intro Sistemas Operativos - Intro Técnicas Digitales III Ing. Gustavo Nudelman 2012 Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Conceptos generales Un sistema operativo es simplemente un

Más detalles

Diseño e Implementación de un Planificador para un Sistema de Virtualización basado en Minix

Diseño e Implementación de un Planificador para un Sistema de Virtualización basado en Minix Diseño e Implementación de un Planificador para un Sistema de Virtualización basado en Minix Prinsich Bernz, Emilio Quaglia, Constanza Director: Pessolani,Pablo Universidad Tecnológica Nacional Facultad

Más detalles

Introducción al kernel Linux

Introducción al kernel Linux Introducción al kernel Linux Matías Zabaljáuregui matiasz@info.unlp.edu.ar Repaso del modelo kernel / proceso Contextos de ejecución Kernels Unix y Linux Reentrancia y Sincronización Diferencias con el

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

Procesos y Señales. David Galán Ortiz. www.opensolarisblog.org dgalan@opensolarisblog.org. < Spain OpenSolaris Users Groups > USE IMPROVE EVANGELIZE

Procesos y Señales. David Galán Ortiz. www.opensolarisblog.org dgalan@opensolarisblog.org. < Spain OpenSolaris Users Groups > USE IMPROVE EVANGELIZE Procesos y Señales David Galán Ortiz. www.opensolarisblog.org dgalan@opensolarisblog.org < Spain OpenSolaris Users Groups > USE IMPROVE EVANGELIZE LICENCIA...3 Referencias...3 PROCESOS Y

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

Sincronización de procesos en C

Sincronización de procesos en C Sincronización de procesos en C 2 En esta unidad aprenderás a: 1 2 3 4 5 Comprender los mecanismos de comunicación basados en señales. Conocer los tipos de señales. Definir gestores de señales en un programa

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 Febrero de 2009 GSyC - 2009 Introducción 1 c 2009 GSyC Algunos

Más detalles

Si bien Pascal-FC no trae algunas de las características de Pascal como:

Si bien Pascal-FC no trae algunas de las características de Pascal como: PROCESOS VS. HILOS: Ciclo de vida de un proceso: es prácticamente un estándar en todos los sistemas operativos. En principio el proceso no existe, es creado, luego pasa a listo (el proceso esta en condiciones

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

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

Si el fichero hashes existe, el script debe notificar el error y salir como corresponde. A continuación se muestra un ejemplo: Examen de Sistemas Operativos ITIS Fuenlabrada Junio 2009 Tiempo total: 3 horas. Problema: Llamadas al sistema (5 puntos) Escriba en C para Plan 9 un programa llamado catsha1 cuyo propósito es crear un

Más detalles

Solución - Examen Marzo de 2003

Solución - Examen Marzo de 2003 Solución - Examen Marzo de 2003 Problema 1 Se debe responder a las cuestiones aquí planteadas de manera concisa (no más de 15 renglones por pregunta. En todos los casos debe justificar su respuesta. Pregunta1

Más detalles

TEMA 3. GESTIÓN DE MEMORIA

TEMA 3. GESTIÓN DE MEMORIA TEMA 3. GESTIÓN DE MEMORIA 3.1. Introducción 3.2. Memoria virtual 3.2.1. Paginación 3.2.2. Segmentación 3.2.3. Segmentación paginada 3.2.4. Paginación por demanda 3.2.5. Algoritmos de reemplazo de página

Más detalles

SISTEMAS OPERATIVOS. 1Responda brevemente a estas preguntas: Convocatoria extraordinaria, 13 de septiembre de 2006

SISTEMAS OPERATIVOS. 1Responda brevemente a estas preguntas: Convocatoria extraordinaria, 13 de septiembre de 2006 Calificación SISTEMAS OPERATIVOS Convocatoria extraordinaria, 13 de septiembre de 2006 Nombre SOLUCIONES 1 4 2 5 3 6 Titulación Dispone de tres horas y media para realizar el examen 1Responda brevemente

Más detalles

Estructura de Computadores

Estructura de Computadores Estructura de Computadores Tema 4. El procesador Departamento de Informática Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas UNIVERSIDAD CARLOS III DE MADRID Contenido Elementos de un

Más detalles

Programación Concurrente

Programación Concurrente Master en Computación Programación Concurrente Bloque II: Programación concurrente en POSIX Tema 1. Introducción al estándar POSIX Tema 3. Gestión de Threads Tema 4. Gestión del Tiempo Tema 5. Planificación

Más detalles

Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid

Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Manejo de Señales Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Señales Concepto Evento que interrumpe la ejecución normal de un proceso La acción por defecto suele

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

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

Informática Industrial (II)

Informática Industrial (II) Informática Industrial (II) 3º Ingeniería Técnica Industrial (Especialidad en Electrónica). E. U. Politécnica. Universidad de Sevilla. 3-mayo Práctica STR2: Entorno de desarrollo para un SOTR (Sistema

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

El sistema operativo OSO

El sistema operativo OSO El sistema operativo OSO Departamento de Ingeniería y Tecnología de Computadores Universidad de Murcia 25 de abril de 2005 Índice 1. Introducción 2 2. Estructura del sistema 3 3. Ejecución del sistema

Más detalles

Programación Concurrente

Programación Concurrente Master en Computación Programación Concurrente Bloque II: Programación concurrente en POSIX Tema 2. Sistema Operativo MaRTE OS Tema 3. Gestión de Threads Tema 4. Gestión del Tiempo Tema 5. Planificación

Más detalles

Sistemas Operativos I

Sistemas Operativos I Sistemas Operativos I Parte 3 Arnoldo Díaz Ramírez adiaz@itmexicali.edu.mx Septiembre de 2007 Unidad 3 Planificación Planificación El planificador es un módulo del sistema operativo que asigna tiempo de

Más detalles

PROGRAMACIÓN N C++ CONSTRUCTORES PROG.C++ L11 CONSTRUCTORES DEL LENGUAJE

PROGRAMACIÓN N C++ CONSTRUCTORES PROG.C++ L11 CONSTRUCTORES DEL LENGUAJE L11 CONSTRUCTORES DEL LENGUAJE CLASES class { } PLANTILLAS template { } ESPACIOS DE NOMBRES namespace { } EXCEPCIONES try catch.. SOBRECARGA DE OPERADORES operator (parametros) BIBLIOTECA

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

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

Boletín 5- Señales. Departamento de Lenguajes y Sistemas Informáticos

Boletín 5- Señales. Departamento de Lenguajes y Sistemas Informáticos Boletín 5- Señales Departamento de Lenguajes y Sistemas Informáticos Indice 1. Introducción 2. Envío de señales desde la shell: kill 3. Llamadas al Sistema kill: envío de señal a un proceso raise: autoenvío

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

Solución Examen Febrero 2006

Solución Examen Febrero 2006 Solución Examen Febrero 2006 Lea detenidamente las siguientes instrucciones. No cumplir los requerimientos puede implicar la pérdida del examen. Formato Indique su nombre completo y número de cédula en

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

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

2) Tenemos un sistema informático con una sola CPU que está gestionada mediante una cola multinivel con realimentación.

2) Tenemos un sistema informático con una sola CPU que está gestionada mediante una cola multinivel con realimentación. EJERCICIOS DE PLANIFICACIÓN: 1) Un sistema informático posee los siguientes recursos: - una CPU - tres unidades de almacenamiento UAM1, UAM2 y UAM3. En nuestro sistema tenemos dos tipos de procesos: Tipo

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