El interior de ENIAC
Los Mark 1944: Manchester Mark I (primer sistema totalmente digital, programa almecenado digitalmente), Whirlwind en el MIT . 5 toneladas, 500 millas de cable, Una multiplicación en 3 segs. 1947 : Harvard Mark II, basado en relés y con almacenamiento en disco magnético) Desarrollado para la Marina de USA.
1953: Memoria de núcleos de ferrita. Primer sistema de almacenamiento fiable.
Mark II
UNIVAC 1951 : UNIVAC Creado para la oficina del censo. Procesamiento de datos.
1953 Edvac, IBM 701
Generación 2 (1954-1963): Transistor y procesamiento por lotes.
Monitor residente, precursor del Sistema Operativo. RCA 501 (1959) primero computador con SO. El transistor, creado en 1947 revoluciona los sistemas.
1955 : IBM 650 Primer ordenador producido en serie. Tarjetas perforadas. Memoria de tambor magnético. Palabras de 10-digitos decimales. Cada instrucción con dos direcciones: operador y de la siguiente instrucción.
Almacenamiento 1956 : IBM comercializa el primer disco duro RAMAC 305 (Random Access Method of Accounting and Control). Basado en 50 discos de 61 cm de diámetro y una capacidad de almacenamiento de 5 MB.
Integración 1958 : Demostración de primer circuito integrado Texas Instruments. 1961 : Comercialización de los primeros circuitos integrados fabricados en serie por Fairchild. 1963 : Teletype desarrolla la primera impresora de chorro de tinta: la Teletype Inktronic. La version commerciale de cette imprimante disposait de 40 buses fixes permettant d'imprimer des caractères ASCII 80 columnas, 1200 baudios.
Generación 3 (1964-1972): Circuito integrado y multiprogramación. Chips, Interrupciones, canales de I/O, DMA, memoria cache, protección de MEM y microprogramación. Desarrollo de MULTICS ? UNIC ? UNIX. Durante el desarrollo del proyecto, la programación de una vieja computadora PDP para hacer un "juego" y "jugar" da lugar al lenguaje de programación C.
Ley de Moore 1965: Gordon Moore enuncia la Ley de Moore: El número de transistores disponibles para construir o poblar un circuito integrado de silicio se duplica cada dos años. Lograr este crecimiento exponencial en la densidad de los transistores requiere que el tamaño de los transistores se reduzca cada vez más. Esta constante reducción trae como resultado menores costos y un mayor rendimiento de los dispositivos de silicio construidos con estos transistores de menor tamaño. No hubo previsión de problemas: Temperaturas. Efectos quánticos. 1965 : ILLIAC IV: Fiasco de IBM No funcionó hasta 1975. 64 procesadores, 1MB. Previsto para 1000 Mflops solo rindió a 15 MFlops.
1967 : IBM construye el primer lector de disquetes. 1968 : Douglas C. Engelbart de Stanford Research Institute, primera demostración de un entorno basado en windows trabajando sobre souris. Procesador de texto, un sistema basado en hipertexto y sistema de trabajo colaborativo en grupo. 1968 : Burrough primer ordenador basado en circuitos intégrados, B2500 y B3500. 1969 : Creación de la norma RS232. 1970 : Primera memoria Intel capaz de almacenar el equivalente de 1024 núcleos de ferrita en un espacio de 0.5 mm (1kBit en 128 octetos)
Intel crea Microprocesadores Noviembre 1971 : Intel vende el primer micro 4004. Procesador de 4 bits y 108 KHzMemoria de 640 octetos60000 instructiones por segundo2300 transistores en tecnología de 10 micrasPrecio : 200 US $ 1972 : Intel primer microporcesador de 8 bits, 8008. Procesador de 8 bits a 200 KHzDireccionando 16 KB de memoria60000 instrucciones por segundo3500 transistores en tecnología de 10 micras
Generación 4 (1972-1987): Microprocesador. Mayo de 1973: Primer microordenador, basado en IBM8008. Circuitos LSI y VLSI Abaratamiento del producto: generalización. Sistemas con multiprocesador. Sistemas de red (LAN, Internet). Grandes memorias. Interfaces gráficas. Sistemas Operativos estándar (UNIX, MS-DOS, Windows…). Lenguajes lógicos, funcionales…
Algunos hitos 1968 : Primera simulación/ rendering 3D. 1971 : Gary Starkweather primera impresora laser Xerox PARC. 1972 : Primer lector de disquettes 5" 1/4. 1973 : IBM inventa los discos de tipo Winchester. 1974 : Motorola comercializa el primer microprocesador de 8 bits, el 6800 1974 : RCA comercializa el procesador 1802 con una velocidad de 6.4 MHz. Considerado el primero de arquitectura RISC (Reduced Instruction Set Computer). 1976 : Texas Instruments comercializa el primer micro a 16 bits: el TMS 9900. 1976 : Zilog comercializa el micro Z80, de 8 bits a 2.5 MHz. 1978 : Intel empieza la comercialización del micro 16 bits 8086 a 4.77 MHz. 29000 transistores en tecnología de 3 micras, 1 MB de Ram. Capacidad de 0.33 MIPS y un coste de 360 $. 1982 : Sony presenta el prototipo del primer lector de disquetes 3"1/2. 1982 : Sony y Phillips anuncian el formato CD Audio y CD-ROM.
Tipos de microprocesadores CISC: maneja bit a bit. Es el más habitual y posee un conjunto amplio y complejo de instrucciones incluso para los ordenadores más grandes, fue comercializado por la compañía INTEL. Hoy en día hay dos grandes fabricantes de microprocesadores CISC: INTEL (con dos gamas, Pentium y Celeron) y AMD (con dos gamas, Athlon y Duron). RISC: maneja "agrupaciones" de bits. El microprocesador de tipo RISC se utiliza para ordenadores más sencillos y reducidos en funciones, por lo que resulta más barato que los anteriores. Un ejemplo es el Power PC desarrollado por Motorola IBM, los chips de IBM y de HP.
Intel vs. Motorola 1974 : Motorola comercializa el primer microprocesador de 8 bits, el 6800 1979 : Motorola lanza el 68000, con un micro de 16/32 bits con el equivalente de 68000 transistores. 1984 : Motorola anuncia el micro de 32 bits M68020. 1986 : Primer micro RISC, MIPS R2000, a 8 MHz y una capacidad de computo de 5 MIPS.
1971 : Intel vende el primer micro 4004. 1972 : Intel primer microporcesador de 8 bits, 8008. 1982 : Intel lanza el micro 80286 de 16 bits a 6 MHz, con 134000 transistores, una capacidad de proceso de 0.9 MIPS, direccionando una memoria de 16 MB. Un coste de 360 $. 1985 : Intel lanza el micro de 32 bits 80386DX a 16 MHz. 275000 transistores y un direccionamiento de 4 GB de memoria. Coste de 299 $.
Generación 5 (1988-) Computación paralela. Generalización de Internet. Sistemas de red. Sistemas distribuidos.
Generaciones/revoluciones en Computación Primera computadora, Charles Babbage (1792-1871): Sin sistema operativo. Generación 1 (1938-1953): Válvulas de vacío. Sin SO. Enormes, costosas, alto consumo, poca duración operando (2horas) y lentas (ms). Colossus (1937-1942) y ENIAC (1943-1946) Generación 2 (1954-1963): Transistor y procesamiento por lotes. Monitor residente, precursor del SO. RCA 501 (1959) primero computador con SO. Generación 3 (1964-1972): Circuito integrado y multiprogramación. Interrupciones, canales de I/O, DMA, memoria cache, protección de MEM y microprogramación. Desarrollo de MULTICS ? UNIC ? UNIX. Generación 4 (1972-1987): Microprocesador. Abaratamiento del producto: generalización. Sistemas con multiprocesador. Sistemas de red (LAN, Internet). Grandes memorias. Interfaces gráficas. Generación 5 (1988-) Computación paralela. Generalización de Internet. Sistemas de red. Sistemas distribuidos.
Objetivos de diseño. Interfaz de usuario: llamadas y órdenes. Compartición de h/w entre usuarios. Compartición de datos entre usuarios. Protección de los usuarios. Planificación de recursos. Facilidad de E/S. Recuperación frente a errores. Contabilidad de uso. Facilidad de operaciones paralelas. Organización de datos para acceso rápido y seguro. Gestión de comunicaciones de red.
Estructura jerárquica del sistema operativo. Introduce simplicidad en el diseño y operación con sistemas operativos. Se abordan los problemas en escalones. Cada capa ofrece servicios a las capas superiores y esta los recibe de los inferiores Se trasladan los servicios de la capa inferior a la capa superior. Ventajas: Los detalles de cada capa no son visibles a los demás. Las herramientas que se crean en una determinada capa son utilizables por el resto. El sistema puede evolucionar con mayor facilidad. Cada capa se puede comprobar y codificar independientemente.
Implementación jerárquica. Nivel de gestión del procesador. Compartir la CPU entre los distintos procesos. Sincronización de procesos, conmutación de la CPU, IRQ, configuración y arranque inicial del sistema. Nivel de gestión de la memoria. Repartir la memoria entre los distintos procesos. Realiza control del acceso a las regiones de memoria y gestiona las asignaciones. Nivel de gestión de procesos. Gestión de procesos. Creación, destrucción, comunicación, etc. de procesos. Nivel de gestión de dispositivos. Creación de procesos de I/O, asignación de dispositivos de I/O. Nivel de gestión de información. Gestión del espacio de nombres lógicos. Protección de la privacidad. Manejo de ficheros.
Conceptos básicos. Tiene una fuerte dependencia del hardware que se emplea. Es la parte más dependiente del hardware del SO. Modelos de diseño: Monitores monolíticos y Micronúcleo.
Funciones. Tratamiento de interrupciones: (oculta a las capas superiores). Conmutación de procesos en la CPU: Rutinas para la gestión de los procesos. Comunicación entre procesos. Carga inicial y activación de la configuración del sistema. Protección: Protección de I/O, protección de memoria, protección de la CPU. 1.2 El núcleo: Concepto.
Conceptos básicos. Protección de I/O: Códigos de control en la entrada ==> el sistema retoma el control de la máquina. El usuario no ha de gestionar I/O. Las instrucciones de I/O se realizan mediante llamadas al sistema que se ejecutan en modo supervisor (Modo Dual de Ejecución). Protección de memoria. Ningún programa de usuario puede hacerse con el control del sistema. El sistema operativo SI tiene un acceso total a la memoria de la máquina. Toda interrupción o llamada al sistema ha de ser ejecutada en modo supervisor (Modo Dual de Ejecución). Esto reclama protección en el vector de interrupciones y sus rutinas (zonas de MEM bajas). Control en registros base, límite, tablas de página, etc. Protección de la CPU. Temporizador: Impide que cualquier programa monopolice el uso de la CPU. Cada cierto intervalo de tiempo (1/60 s) el control es transferido al monitor del sistema. 1.2 El núcleo: Protección.
Conceptos básicos. Existe instrucciones restringidas asociadas a la lectura o modificación de registros de control (modo privilegiado o supervisor o modo núcleo, o modo sistema o modo de control). Gestión de procesos. Gestión de la memoria Gestión de la I/O Gestión de las IRQ. Contabilidad. El modo con menores privilegios es el modo usuario. (Gp:) Creación y terminación de procesos. Planificación. Sincronización y comunicación de procesos. Gestión de bloques de control de proceso.
1.2 El núcleo: Modos de ejecución.
Conceptos básicos. Existe instrucciones restringidas asociadas a la lectura o modificación de registros de control (modo privilegiado o supervisor o modo núcleo, o modo sistema o modo de control). Gestión de procesos. Gestión de la memoria Gestión de la I/O Gestión de las IRQ. Contabilidad. El modo con menores privilegios es el modo usuario. Asignación de espacios de direcciones a procesos. Swapping. Gestión de páginas y segmentos. 1.2 El núcleo: Modos de ejecución.
Conceptos básicos. Existen instrucciones restringidas asociadas a la lectura o modificación de registros de control (modo privilegiado o supervisor o modo núcleo, o modo sistema o modo de control). Gestión de procesos. Gestión de la memoria Gestión de la I/O Gestión de las IRQ. Contabilidad. El modo con menores privilegios es el modo usuario. Asignación de buffers. Asignación de canales de I/O y dispositivos. 1.2 El núcleo: Modos de ejecución.
Conceptos básicos. Existe instrucciones restringidas asociadas a la lectura o modificación de registros de control (modo privilegiado o supervisor o modo núcleo, o modo sistema o modo de control). Gestión de procesos. Gestión de la memoria Gestión de la I/O Gestión de las IRQ. Contabilidad. El modo con menores privilegios es el modo usuario. Contabilidad. Supervisión. 1.2 El núcleo: Modos de ejecución.
Conceptos básicos. Todo el SO Se diseña como un único módulo formado por distintas funciones que inter-operan. Dependencias entre los componentes internos. Un núcleo central (monitor) permite la comunicación entre los procesos de usuario y las I/O (Modo Supervisor). Comunicación entre procesos compartiendo memoria. La mayor parte del código del sistema operativo se ejecuta en el mismo espacio de memoria ==> fácil corromper datos del sistema. Gran velocidad. Poca versatilidad. Todo el sistema se ejecuta en modo supervisor: poco robusto. 1.2 El núcleo: Diseño Monolítico.
Conceptos básicos. Núcleo reducido. Funciones en procesos de sistema externos al núcleo. Varios procesos de servidor: administración de memoria, creación y gestión de procesos, planificación del procesador, gestión de interrupciones, sincronización y comunicación entre procesos. Un gran número de procesos del sistema se pueden ejecutar en modo usuario. Comunicación mediante intercambio de mensajes. Soporte natural para el proceso distribuido. En sistemas distribuidos son comunes las RPC llamadas a procedimientos remotos y el intercambio de mensajes entre clientes y servidores. Los clientes no necesitan saber si una solicitud es atendida por un servidor local o remoto No todos los procesos de sistema comparten el mismo espacio de direcciones. Mejor portabilidad / versatilidad. Modificación del sistema en caliente. Simplifica el sistema operativo base. 1.2 El núcleo: Diseño Micronúcleo.
Conceptos básicos.
La familia UNIX Linux?
La familia UNIX Linux?
Conceptos básicos. Def.: Mecanismos proporcionados por el hardware que rompen la ejecución normal de los programas. Presentes en todos los sistemas. En todos los ordenadores: gestión de errores, desbordamientos, divisiones por cero, etc, dispositivo está listo, proceso a espera, RESET, reloj del sistema. Interrupción del proceso en ejecución, pasa el control al sistema. En la actualidad varios canales de IRQ, distintos niveles. Se ordenan jerárquicamente las interrupciones para ser procesadas en orden de importancia cuando se produce una interrupción durante la ejecución de otra (DPC y APC son los niveles más bajos en WNT). Tipos: Internas síncronas. Conocidas como traps. Las provoca el proceso en ejecución. Llamadas al sistema. Errores de ejecución. Accesos no permitidos. Divisiones por cero. Fallos de página. 1.3 Interrupciones 1. Externas asíncronas. Son las conocidas propiamente como interrupciones. Se producen fuera del control del proceso de usuario. El sistema operativo toma el control. Interrupciones de reloj. Liberación de dispositivos.
Conceptos básicos Pasos de una interrupción. El dispositivo emite la IRQ. La CPU finaliza la instrucción en curso. Se identifica y confirma la existencia de la IRQ, el dispositivo del que procede y la naturaleza de la IRQ. Se anula la señal de IRQ. El hardware salva el contador del programa en la pila. Se carga el nuevo contador del programa desde el vector de interrupciones. Se salvan los registros. Se cambia el valor del puntero de pila. Se conmuta el proceso que estaba en estado de espera de esa interrupción a listo y El planificador pasa a seleccionarlo para ejecución. Se cede el control al nuevo proceso. Tras procesar la IRQ se carga el estado del proceso interrumpido.
Nota: En muchos casos procesar una IRQ no implica el cambio de contexto del proceso. 1.3 Interrupciones 2.
Conceptos básicos. Def.: Interface normalizada entre el sistema operativo y proceso. Acceso controlado a los servicios de nivel bajo. Después de recibir la llamada el SO recupera el control. Tipos: Control de procesos y trabajos: Ordenes para la creación, destrucción, ejecución, etc. de procesos. Manipulación de ficheros: Ordenes dedicadas a borrar, leer, escribir,, abrir, cerrar, etc. , ficheros. Manipulación de dispositivos: Peticiones de atributos, estado (ocupado/libre), lectura, escritura, etc. de dispositivos. Mantenimiento de información: Fecha, hora, datos y variables del sistema, atributos de dispositivo y de ficheros, etc. 1.4 Llamadas al sistema. Las llamadas al sistema más comunes (sólo en UNIX) realizadas mediante C son: Abrir: int open (char *fichero, int modo); Cerrar: int close (descriptor); Crear: int creat (char *fichero, int modo); Borrar: int unlink (char *fichero) Leer y escribir: int read (int descriptor, char *buff, ,int nbytes); int write (int descriptor, char *buff, ,int nbytes);
Conceptos básicos. Programas para la resolución de problemas corrientes. Entorno más adecuado para la ejecución de los programas. Manipulación de ficheros: Crear, copiar, destruir, listar ficheros y directorios. Información de estado: Fecha, hora, cantidad de memoria disponible, espacio en disco, número de usuarios, etc. La información se formatea y se visualiza. Modificación de ficheros: Editores de textos. Soporte a lenguajes de programación: Compiladores, ensambladores, linkadores. Carga y ejecución de programas: Depuradores y cargadores en memoria. Aplicaciones: Sistemas de bases de datos, sistemas de gráficos, procesadores de texto, sistemas de análisis estadístico, etc. Interprete de comandos es el programa más útil de los que acompañan al sistema operativo. Su función es la de captar el siguiente comando en la línea de ordenes y realizar su ejecución. 1.4 Llamadas al sistema.
Conceptos básicos. Se arranca el programa (llamada al sistema): necesita los nombre de archivos de entrada y salida. Si el programa pregunta por los nombre, escribe la petición en pantalla (llamada al sistema) y leerla del teclado, o leerla del dispositivo de entrada (llamada al sistema). Apertura del fichero de entrada y creación del de salida (llamadas al sistema) Si se generan errores (archivo1 no existe o disco lleno) (llamada al sistema). Si el fichero de salida existe se puede borrar (llamada al sistema) y se crea uno nuevo (llamada al sistema), o bien se pide otro nombre al usuario (llamadas al sistema para salidas por monitor y recogida de información). El copiado de los ficheros se hace mediante llamadas al sistema para la lectura y otras para la escritura. El proceso se finaliza (llamada al sistema) con las ordenes de cerrar archivos y terminación del proceso (llamadas al sistema). 1.4 Llamadas al sistema: Ej.: Programa de lectura de datos de un fichero y escritura en otro. .
Conceptos básicos. Programas para la resolución de problemas corrientes. Entorno más adecuado para la ejecución de los programas. Manipulación de ficheros: Crear, copiar, destruir, listar ficheros y directorios. Información de estado: Fecha, hora, cantidad de memoria disponible, espacio en disco, número de usuarios, etc. La información se formatea y se visualiza. Modificación de ficheros: Editores de textos. Soporte a lenguajes de programación: Compiladores, ensambladores, linkadores. Carga y ejecución de programas: Depuradores y cargadores en memoria. Aplicaciones: Sistemas de bases de datos, sistemas de gráficos, procesadores de texto, sistemas de análisis estadístico, etc. Interprete de comandos es el programa más útil de los que acompañan al sistema operativo. Su función es la de captar el siguiente comando en la línea de ordenes y realizar su ejecución. 1.5 Programas de sistema.
Conceptos básicos. Comandos Pueden estar implementados en el código del interprete (él hace la llamada al sistema). Pueden estar implementados en archivos especiales. En este último caso ha de existir un mecanismo para que el interprete de comandos le pueda pasar argumentos al programa comando.
Shell Las SHELLs no pertenecen al SO. Están al nivel de los compiladores, linkadores, ensambladores, etc. El nombre SHELL es el nombre del interprete de comandos del UNÍS. En DOS recibe el nombre de COMMAND.COM. La salida y entrada standard es la terminal. Los comandos son ejecutados como procesos hijos.
1.5 Programas de sistema.
Procesos y planificación
2. Procesos . La primera idea de proceso surge tras el MULTICS (1968). El sistema ha de gestionar y controlar los procesos. Definiciones. Programa en ejecución. Instancia de un programa funcionando en el ordenador. Entidad que puede ser asignada a un procesador y ejecutada por él. Es el conjunto formado por el programa ejecutable, pila, datos, punteros y todo lo necesario para hacer correr un programa. Unidad de actividad. Ejecución secuencial, estado actual y recursos asignados. Se busca: Mejor aprovechamiento de los recursos físicos. Mejor compartición de recursos lógicos. Creación de un proceso se realiza por (por la emisión de un trabajo). Login del user. Lanzado por lotes. Creado por el SO. Para un servicio. Generado por un proceso.
2.1 Introducción (1).
2. Procesos. Partes del proceso. Programa ejecutable. Datos. Variables, buffer, etc. Contexto. Información para la administración del proceso por parte del SO. Registro de contador y datos en la CPU. PCB o Bloque Control Proceso Ubicación. Imagen. Constituida por el programa y los datos. Formada según el esquema de gestión de la MEM del sistema. Para un bloque contiguo: Datos de usuario (modificable). Programa a ejecutar (programa de usuario). Pila del sistema (LIFO). Para el retorno de las llamadas al sistema y a procedimientos. Bloque de control del proceso (PCB). 2.2 Partes de un proceso.
2. Procesos. Multiprogramación: Varios procesos simultáneos (pseudoparalelismo) para compartir recursos y CPU buscando eficiencia. Tiempo compartido. Sistema sensible a las necesidades del usuario. Varios usuarios. Planificación: Proceso Planificador y Scheduler Distribución adecuada del uso del tiempo de la CPU, equitativa para todo proceso. Eficiencia: Mantener ocupada la CPU al 100%. Tiempo de respuesta mínimo para las peticiones que los usuarios realizan (tiempo real). Mínimo tiempo de respuesta para la realización de trabajos. Número máximo de trabajos por unidad de tiempo. 2.3 Conceptos asociados a proceso.
Planificación de procesos FirstCome-FirstServerd Round Robin. Shortest Job First Prioridades. Prioridades múltiples colas. Planificación.
2. Procesos. Asigna un identificador único (id). Asigna espacio. Imagen del proceso (proceso+datos). Inicia el PCB. El estado es de listo, el resto de los valores es dado por defecto o nulo. Enlaces. Se generan e insertan en las colas de planificación. Crean o amplían las estructuras de datos. 2.4 Pasos en la creación de un proceso (1).
2. Procesos. Identificador de proceso (único). Será utilizado en las referencias al proceso a MEM, comunicaciones, sistema de archivos, etc. Estado (información) del procesador. Registros de la CPU: Visibles por el usuario. Control y estado: Contador de programa. Estado de esperas por IRQ. Códigos de condición: resultado de operaciones aritméticas. Puntero a Pila. Inf. control de proceso. Planificación: Estado, prioridad, suceso en espera, alg. de planificación. Estructuración (enlaces a otros procesos, similares o padre-hijo). Comunicación. Almacenamiento de Señales, mensajes enviados. Privilegios. MEM, instrucciones, recursos. Punteros a MEM, tablas de páginas, segmentos, etc. Recursos asignados, historial. Área de salvaguarda de registros (c. de contexto).
2.4 Pasos en la creación de un proceso (2). Atributos. .
2. Procesos. 1. El proceso no puede continuar la ejecución. Realiza una llamada al sistema y este lo descarga. 2. y 3. El planificador decide descargar o cargar el proceso. La elección del proceso a entrar en la CPU se realiza solo de entre los procesos que están listos para ejecución. 4. El proceso sale de su bloqueo/espera, se lo notifica al sistema operativo y pasa a formar parte de la cola de procesos listos para ejecución. 2.5 Estados de un proceso (1).
Planificación a largo plazo Planificación a largo plazo Planificación a medio plazo Planificación a corto plazo Planificación a medio plazo Nuevo Listo/ suspendido Bloqueado Listo Ejecutando Salida Bloqueado/ suspendido Planificación y transiciones de estado de los procesos.
2. Procesos. Observaciones: Los procesos pasan la mayor parte de su vida esperando por una I/O. Los procesos en ejecución ocupan memoria. El grado de multiprogramación en relación con la capacidad de la CPU es bajo. Solución: Intercambio (swap). Def. Intercambio (swapping) es el desplazamiento de un proceso de memoria principal al disco duro. Es necesario un planificador de la carga y descarga de procesos de memoria a disco.
Proceso Suspendido: No estará disponible de inmediato para su ejecución. Proceso situado en Suspendido por el SO o por él mismo para evitar su ejecución. Un proceso que no puede liberarse del estado hasta que se le ordene. Para un proceso Suspendido el cambio de bloqueado a listo no implica que deje de estar Suspendido. 2.5 Estados de un proceso (2).
Actuaciones del Sistema sobre los procesos Crear (carga de programa e inicio de ejecución) Destruir (fin de la ejecución) Suspender Reanudar Cambiar prioridad Bloquear (pasaje de ACT a BLOQ) Despertar (pasaje de BLOQ a LISTO) Despachar (pasaje de LISTO a ACT)
Suspensión. Equilibrar la carga del sistema (ante sobrecargas) En lugar de abortar un proceso que puede estar funcionando mal. del sistema) proceso suspendido no puede proseguir hasta que otro lo reanude.
2. Procesos. 2.5 Estados de un proceso (3). Cambio de proceso. Interrupción. Interrupción de reloj: Finalización del tiempo concedido por el sistema. Interrupcuón de I/O: Modificación del estado de procesos en ejecución a bloqueado o liberación de los procesos en espera. Fallo de memoria. Traps. Error o condición excepcional. Provocadas por el proceso en curso. Fatal ? terminación de proceso. Llamada del supervisor / llamada al sistema. Pasos en un cambio de proceso: Salvar el contexto del procesador (contador y registros). Actualizar el Bloque de C. del proceso en ejecución (estado de ejecución a listo o bloqueado, etc.) junto con info. de la razón del cambio. Mover el BCP a la cola apropiada a su estado. Seleccionar otro proceso para ejecución. Actualizar el BCP del proceso seleccionado (modo ejecución). Actualizar la información de la gestión de la memoria. Restaurar el estado del procesador para el nuevo proceso.
2. Procesos. Los procesos comunes son independientes, con espacios de memoria separados. En determinadas ocasiones se necesita que los procesos colaboren.
Def. Entidad básica de ejecución que únicamente posee como propio el contador de programa, los registros del procesador y la pila. Los hilos pertenecen a una unidad de mayor nivel, la tarea. La tarea carece de capacidad de ejecución, pero dispone de recursos. La tarea en ejecución ha de poseer al menos un hilo.
Proceso = tarea con único hilo
Ventajas: Menor coste de creación: Menores estructuras de información. Recursos de la tarea. Cambio de contexto dentro de la tarea es poco costoso. Comunicación ágil (MEM). No interviene el núcleo.
Estructura. Área de programa (RO) de instrucciones. Área de datos o variables (RW). Heap para asignación dinámica de MEM. Compartida. Pila para cada hilo
2.6 Hilos o threads (1).
Proceso Hilo
2. Procesos. Elementos por hilo Contador de programa Pila Conjunto de registros Hilos hijos Estado Elementos por proceso Espacio de direcciones Variables globales Archivos abiertos Procesos hijos Cronómetros Señales Semáforos Información contable
2.4 Hilos o threads (2). Los hilos. Estado de ejecución. Contexto del procesador. Pila de ejecución. Variables locales. Acceso a MEM y variables del proceso.
Página anterior | Volver al principio del trabajo | Página siguiente |