INTRODUCCIÓN SISTEMA INFORMÁTICO CONCEPTOS DE HARDWARE INTERRUPCIONES ESTRUCTURA DEL S.O. EVOLUCION DE LOS S.O. ARRANQUE Y PARADA TIPOS DE S.O. Bibliografía Bibliografía g Fariña,Pedreira:LBD@2010 • Básica: – Carreteroetal.,2007,SistemasOperativos,unavisión , , p , aplicada(2ªed),McGraw Hill • Otros: – AndrewS.Tanenbaum,2009,SistemasOperativos Modernos (3ª ed) Prentice Hall Modernos(3ªed),PrenticeͲHall – Silberschatz,A.;Galvin,P.B.;Gagne,G.,2005, F d FundamentosdelosSistemasOperativos(7ªed),McGraw t d l Si t O ti (7ª d) M G Hill , Arquitectura básica de un computador @ • Máquinadesnuda – Ordenadorcarentedesistemaoperativo Od d d i i – Sóloelhardware,sinningúnsoftwareinstalado – Ensímismonohace“nada” – Elhardwareporsímismosóloescapazdeejecutar programasencódigomáquina • Secuenciadeinstruccionesenlenguajemáquina • Unprogramadortendríaqueprogramar Un programador tendría que programar “TODO”!! TODO !! Fariña,Pedreira:LBD@2010 • Ej Ejemplo,muysimplificado,deprogramamáquina l i lifi d d á i … LOAD R1, #16[R10] LOAD R2, #32[R10] ADD R3, R1, R2 SAVE R3, #16[R11] // R1 Å Mem (R10+16) // R2 Å Mem (R10+32) //Mem (R11+16) Å R3 … Que en pascal podría ser algo como lo c siguiente: (aunque no sea corrento) res3 := var[16] + var[32]; • Peroqueremosalgomás: P l á – Ejecutarvariosprocesosdeformasimultánea,quetienenque compartir los recursos del computador compartirlosrecursosdelcomputador – OlvidarnosdeldetalledeusodecadacomponenteHW • P.ej:controladoresdecadatipoderatón/tarjetagráfica,… / – Tenerunentornodetrabajoenelcomputador • Paralanzarnuestrosprogramas,manejarficheros(sistema ficheros),… – Escribirprogramasenlenguajesdealtonivel(compilación) – Tenermúltiplesusuariosqueutilicenelsistema,posiblemente de forma concurrente deformaconcurrente. – Etc. SISTEMA INFORMÁTICO usuario aplicación Usuario 1 Usuario 2 Compilador Usuario 3 Ensamblador Editor … Usuario n Base de datos Programas del sistema y aplicaciones Software sistema operativo SISTEMA OPERATIVO hardware HARDWARE S.O. INTRODUCCIÓN Acceso a : Disco? Teclado? Ratón? … 2 CAPAS DE UN SISTEMA INFORMÁTICO Nivel de usuario Nivel de lenguaje de alto nivel . NIVEL DE S.O Nivel de lenguaje máquina Y ensamblador Nivel físico-lógico digital S.O. INTRODUCCIÓN 3 CAPAS DE UN SISTEMA INFORMÁTICO (2) • Nivel físico-lógica digital – Circuitos combinacionales y secuenciales (contadores, registros, biestables, puertas lógicas, etc.) – Se estudian los registros del procesador y la unidad aritmético-lógica • Registros Nivel de lenguaje máquina y ensamblador Load R1, #16[R10] // R1 <-- Mem(R10+16) Load R2, #32[R10] // R2 <-- Mem(R10+32) ADD R3, R2, R1 – Se estudian los códigos de las operaciones, modos de direccionamiento, tipos de datos, registros del procesador, registros de control de dispositivos de E/S, etc. – El ensamblador es similar, conceptualmente hablando, al lenguaje máquina pero usa nemotécnicos para las instrucciones, macroinstrucciones y la posibilidad de servirse de los servicios ofrecidos por el S.O. que está debajo. FTEFQFOEJFOUFEFMBBSRVJUFDUVSBFMFOTBNCMBEPSBTPDJBEPQFSNJUJSÈBDDFTPBMBTJOTUSVDDJPOFTNÈRVJOBTPQPSUBEBT • Nivel de Sistema Operativo – Surge como necesidad de proteger los recursos del computador , dar servicios, etc. • variables • Nivel de lenguaje de alto nivel – Su objetivo es facilitar el desarrollo de la programación. Se encuentra orientado hacia los problemas que trata y no hacia la máquina res := var[16]+var[32]; Nivel de usuario – En este nivel el usuario no necesita conocimientos informáticos sino entender el programa y el problema que trata S.O. INTRODUCCIÓN 4 ESTRUCTURA DEL COMPUTADOR (1) flujo de control flujo de datos UNIDAD MEMORIA ARITMETICOLOGICA PRINCIPAL DATOS REGISTROS de datos (normales) CODIGO ROM REGISTRO DE ESTADO UNIDAD DE CONTROL PUNTERO DE PILA REGISTRO DE INSTRUCCIÓN CONTADOR DE PROGRAMA CPU = UC + ALU S.O. INTRODUCCIÓN U N I D A D D E E N T R A D A / S A L I D A 5 ESTRUCTURA DEL COMPUTADOR (2) • El ciclo de ejecución se lleva a cabo según el conjunto de instrucciones de cada CPU. Este conjunto de instrucciones se adapta a los requerimientos físicos de la CPU. Los elementos de que disponen para la ejecución de las instrucciones pueden ser – – – – • • Registros generales. Almacenan información de forma temporal Y Contador de programa (program counter). Contiene la dirección de la siguiente instrucción a ejecutar GE Apuntador de pila (stack pointer). Apunta a la parte superior de la pila actual en la CVGG memoria. La pila almacena una serie de informaciones por cada procedimiento al que se ha CZUFT UFYUP entrado y del que no se ha salido (parámetros de entada, variables locales y variables MPOHJUVE temporales que no se mantienen en los registros) PSW (palabra de estado del programa) contiene bits de código de condición, prioridad de la TBMWBUFYUP MPOHJUVE CPU, modo (kernel o usuario) y otros bits de control. Juega un papel importante en las llamadas al sistema y en E/S Las CPU actuales tienen dos modos de funcionamiento: modo kernel y modo usuario. En el modo kernel no hay límites en el acceso a los objetos de la CPU, en el modo usuario hay restricciones en su uso. Los programas de los usuarios se ejecutan en modo usuario. El S.O. se ejecuta en modo kernel. Hay una instrucción (TRAP, no accesible a los usuarios) para intercambiar estos modos de funcionamiento. Las operaciones de E/S y el acceso a la memoria protegida no son posibles en modo usuario. Llamadas al sistema. Es la forma que utilizan los S.O. para ejecutar aquellas acciones que los procesos de usuario no pueden hacer. S.O. INTRODUCCIÓN 6 ESTRUCTURA DEL COMPUTADOR (3) • UNIDAD ARITMETICO-LOGICA TVNBSFTUBNVMUEJW BOEPSOPU – Realiza los cálculos aritméticos y lógicos sobre uno o dos datos – Los datos con los que se realizan los cálculos se almacenan previamente en la memoria o en registros. Los resultados se llevan también a la memoria o a los registros. – La lógica de funcionamiento de las instrucciones la determina el lenguaje máquina o ensamblador de la máquina • MEMORIA – RAM y ROM. En ella reside el programa máquina a ejecutar y los datos de entrada y salida del programa • UNIDAD DE CONTROL – Se encarga de regular el funcionamiento de los distintos elementos para que funcionen coordinadamente – Lee de mem sig instruc. máquina – La interpreta – Lee de memoria datos si necesario – Ejecuta instrucción – Almacena resultado (si hay) S.O. INTRODUCCIÓN 7 REGISTRO DE ESTADO Modo Traza Modo Ejecución: Sistema/Usuario T S Mascara De Interrupciones 12 11 10 Extensión Negativo Cero Desbordamiento Acarreo X N Z V C S.O. INTRODUCCIÓN 15 14 13 12 1 10 9 8 7 6 5 4 3 2 1 0 Octeto del sistema (Visible en Modo Kernel) Octeto del usuario 8 MODELO DE PROGRAMACIÓN (Define los Recursos y características que se ofrecen al programador) • Se caracteriza por los siguientes aspectos: 1– Elementos de almacenamiento • • • • • • (que se pueden utilizar en instrucciones) Registros generales Contador de programa Puntero/os de pila Registro de estado Memoria principal Registros dede E/S Contadores E/S 2– Juego de instrucciones • Define las operaciones que es capaz de hacer el ordenador. 3– Modos de ejecución • Modo usuario (tiene limitaciones: no permite realizar operaciones de E/S ni modificar parte del registro de estado ni los registros de soporte de gestión de la memoria) • Modo núcleo privilegiado (sin limitaciones) S.O. INTRODUCCIÓN 9 MODELO DE PROGRAMACIÓN (2) (Define los Recursos y características que se ofrecen al programador) 4– Secuencia de funcionamiento • La unidad de control se encarga de su funcionamiento. • Se trata de una secuencia que se repite sin cesar: » Lectura de la instrucción apuntada por el PC » Incremento del PC » Ejecución de la instrucción • Los elementos que pueden provocar un cambio de este ciclo son: – Instrucción máquina de salto o bifurcación – Interrupciones externas o internas. El contador del programa es modificado, saltando a otro programa (el S.O.) – Una instrucción máquina de llamada al sistema (p.ej.: TRAP, IN) que provoca un efecto similar a la interrupción S.O. INTRODUCCIÓN 10 ¿QUÉ ES UN S.O.? Un S.O. es un programa, pero es un programa un tanto especial o diferente de los demás en el sentido que realiza funciones distintas y no relacionadas y que se describen a continuación: • EL S.O. COMO PROGRAMA Decimos que el S.O. es un programa (o conjunto de ellos). Desde este punto de vista cumple con los esquemas elementales de todo programa informático (algoritmos + estructuras de datos). Un S.O. es un programa en el cual los datos lo componen tablas de información acerca de los objetos que gestiona: recursos físicos (disco, impresoras, CPU... etc.) recursos lógicos (procesos de usuarios, ficheros, tiempo de CPU... etc.) y la algoritmia es la lógica que se encarga de asignar de forma eficiente esos recursos físicos a los recursos lógicos. f= open("x.txt"); write (f,...) --> • EL S.O. COMO MÁQUINA EXTENDIDA Escribe en un HDD en un fichero dado Hemos dicho que la arquitectura de los ordenadores es difícil de programar, sobre todo para E/S. Una función fundamental del S.O. es ocultar estos detalles al usuario y presentar una interface de uso común para todos los usuarios. El programador no necesita conocer los detalles del disco u otro hardware para hacer uso de él pues el S.O. le proporciona esa información a través del software específico (controladores de hardware) de cada uno. • EL S.O. COMO ADMINISTRADOR DE RECURSOS open/write funcionarán indep de si HDD con Ext3, NTFS,... Samsung o Seagate,... Otra función muy importante es la de gestor de los recursos del sistema. Los programas utilizan todo tipo de hardware y es el S.O. el encargado de asignarlos a cada proceso de forma correcta. - Saber recursos que están libres (CPU, MEM, espacio HDD, impresora, S.O. INTRODUCCIÓN - Asignar recursos - Recuperar recursos que ya no se usen 11 ACTIVACION DEL S.O. • Cuando finaliza el arranque del S.O., este cede el control a los procesos y a partir de ahí son estos y los perifericos los que lo despiertan (activan de nuevo) mediante una interrupción. Esta activación puede proceder de tres fuentes diferentes: – INTERRUPCIONES – LLAMADAS AL SISTEMA – EXCEPCIONES S.O. INTRODUCCIÓN 12 INTERRUPCIONES • Se activa con una señal que llega a la unidad de control • Cuando llega la señal (debe encontrarse activada este tipo de interrupción), la unidad de control realiza un ciclo de activación de interrupción. Los pasos de este ciclo son: – – – – • Los procesadores suelen incluir varias líneas de solicitud de interrupción, cada una de las cuales puede tener una determinada prioridad. Si se activan al mismo tiempo varias de estas líneas, se atiende la de mayor prioridad, quedando las demás a la espera. Las mas prioritarias suelen ser: – – – – • Salva algunos registros del procesador Eleva el modo de ejecución del procesador, pasándolo a núcleo Carga un nuevo valor en el contador de programa En muchos procesadores inhibe las interrupciones Excepciones hardware asíncronas Excepciones hardware síncronas (de programa) Interrupciones externas Llamadas al sistema (TRAP) El procesador suele incluir un mecanismo de inhibición selectiva que permite detener todas o determinadas líneas de interrupción. La inhibición puede afectar a todas o a las de nivel inferior. Cuando se habilitan, puede que se hayan perdido las que se produjeran durante la inhibición o puede que hayan sido encoladas. S.O. INTRODUCCIÓN 13 INTERRUPCIONES (2) • Las interrupciones se pueden generar por diversas causas 1– Excepciones hardware síncronas (excepciones software) • Problemas de ejecución – – – – – – – – – – Operación inválida en la unidad aritmética División por cero Operando no normalizado Desbordamiento en el resultado 3.000.000.000 + 3.000.000.000 Resultado inexacto en la unidad aritmética Dispositivo no existente Región de memoria inválida Desbordamiento de la pila (STACK OVERFLOW) Violación de los límites de memoria asignada Código de operación máquina invalido • Depuración – Punto de ruptura (BREAK POINT) • Fallo de página (ACCESO A DATOS QUE AÚN NO ESTÁN EN MEMORIA) S.O. INTRODUCCIÓN 14 INTERRUPCIONES (3) 2– Excepciones hardware asíncronas • Error de paridad en el bus • Error de paridad en la memoria • Fallo de alimentación • Límite de temperatura excedido 3– Interrupciones externas. Se trata de interrupciones producidas por elementos externos al procesador: • El reloj • Los controladores de dispositivos de E/S • Otros procesadores 4– Instrucciones máquina de llamadas al sistema S.O. INTRODUCCIÓN (TRAP, INT,...) 15 INTERRUPCIONES (4) ...y qué pasa cuando se produce una interrupción ? (incluido el C.P. del proc 1) ... lo que indica cual será la siguiente instrucción a ejecutar de dicho proceso S.O. INTRODUCCIÓN 16 INTERRUPCIONES (5) EJEMPLO: (CONTADOR PROGRAMA) (registro) NOTA: P2.1 = programa2, línea 1 NOTA: P1.1 = programa1, línea 1 NOTA: U1 == Memoria[2000] S.O. INTRODUCCIÓN 17 INTERRUPCIONES (6) INTERRUPCIONES (6) contador programa Instrucción ejecutando CP SO Int Int Int Int P1.1 MEM[2000] (registro) A U1 MEM[3000] V1 MEM[4000] V3 ? 3 5 2 P1.2 3 3 5 2 P1.3 21 3 5 2 SO P2.1 ? 3 5 2 P2.1 LD A, #3000 P2.2 5 3 5 2 P2.2 SUS A, 25 P2.3 -20 3 5 2 P2.3 SV A,#4000 P2.4 -20 3 5 -20 SO P1.3 21 3 5 -20 P1.3 SV A,#2000 P1.4 21 21 5 -20 P1.4 LD A, #2000 P1.5 21 21 5 -20 P1.5 DEC A P1.6 20 21 5 -20 SO P2.4 -20 21 5 -20 P2.4 LD A, #4000 P2.5 -20 21 5 -20 P2.5 ADD A,2 P2.6 -18 21 5 -20 SO P1.6 20 21 5 -20 Int 20 20 5 -20 P2.6 -18 20 5 -20 Int -18 20 -18 -20 P1.1 LD A, #2000 P1.2 ADD A, 18 P1.6 ejecutar es P1.1 SV A, #2000 SO P2.6 siguiente instrucción a SV A, #3000 S.O. INTRODUCCIÓN 18 INTERRUPCIONES (6) INTERRUPCIONES (6) contador programa Instrucción ejecutando CP SO Int Int Int Int MEM[2000] (registro) A U1 MEM[3000] V1 MEM[4000] V3 P1.1 ? 3 5 2 P1.2 3 3 5 2 P1.3 21 3 5 2 SO P2.1 ? 3 5 2 P2.1 LD A, #3000 P2.2 5 3 5 2 P2.2 SUS A, 25 P2.3 -20 3 5 2 P2.3 SV A,#4000 P2.4 -20 3 5 -20 SO P1.3 21 3 5 -20 P1.3 SV A,#2000 P1.4 21 21 5 -20 P1.4 LD A, #2000 P1.5 21 21 5 -20 P1.5 DEC A P1.6 20 21 5 -20 SO P2.4 -20 21 5 -20 P2.4 LD A, #4000 P2.5 -20 21 5 -20 P2.5 ADD A,2 P2.6 -18 21 5 -20 SO P1.6 20 21 5 -20 Int 20 20 5 -20 P2.6 -18 20 5 -20 Int -18 20 -18 -20 P1.1 LD A, #2000 P1.2 ADD A, 18 P1.6 ejecutar es P1.2 SV A, #2000 SO P2.6 siguiente instrucción a SV A, #3000 S.O. INTRODUCCIÓN 18 INTERRUPCIONES (6) INTERRUPCIONES (6) contador programa Instrucción ejecutando CP SO Int Int Int Int MEM[2000] (registro) A U1 MEM[3000] V1 MEM[4000] V3 P1.1 ? 3 5 2 P1.1 LD A, #2000 P1.2 3 3 5 2 P1.2 ADD A, 18 P1.3 21 3 5 2 P2.1 ? 3 5 2 P2.2 5 3 5 2 P2.3 -20 3 5 2 interrupción P2.4 -20 3 5 -20 SO P1.3 21 3 5 -20 P1.3 SV A,#2000 P1.4 21 21 5 -20 P1.4 LD A, #2000 P1.5 21 21 5 -20 P1.5 DEC A P1.6 20 21 5 -20 SO P2.4 -20 21 5 -20 P2.4 LD A, #4000 P2.5 -20 21 5 -20 P2.5 ADD A,2 P2.6 -18 21 5 -20 SO P1.6 20 21 5 -20 Int 20 20 5 -20 P2.6 -18 20 5 -20 Int -18 20 -18 -20 SO siguiente instrucción a P2.1 LD A, #3000 PERO SE PRODUCE P2.2 SUS A, 25 Guardar estado (incluido ejecutar es P1.3 ... P2.3 SV A,#4000 P1.6 SV A, #2000 SO P2.6 SV A, #3000 S.O. INTRODUCCIÓN UNA INTERRUPCIÓN --> el CP) y atender 18 INTERRUPCIONES (6) INTERRUPCIONES (6) contador programa Instrucción ejecutando CP SO Int Int U1 V1 MEM[4000] V3 P1.1 ? 3 5 2 LD A, #2000 P1.2 3 3 5 2 P1.2 ADD A, 18 P1.3 21 3 5 2 P2.1 ? 3 5 2 P2.2 5 3 5 2 P2.3 -20 3 5 2 P2.4 -20 3 5 -20 P1.3 21 3 5 -20 P1.3 SV A,#2000 P1.4 21 21 5 -20 P1.4 LD A, #2000 P1.5 21 21 5 -20 P1.5 DEC A P1.6 20 21 5 -20 SO P2.4 -20 21 5 -20 P2.4 LD A, #4000 P2.5 -20 21 5 -20 P2.5 ADD A,2 P2.6 -18 21 5 -20 SO P1.6 20 21 5 -20 Int 20 20 5 -20 P2.6 -18 20 5 -20 Int -18 20 -18 -20 P2.1 LD A, #3000 - Se atiende la interrupción, P2.2 SUS A, 25 planificador da la CPU al P2.3 SV A,#4000 --> Se ejecutará la P1.6 SV A, #2000 SO P2.6 - Al volver de la R.T.I. el proceso 2 instrucción P2.1 SO Int A MEM[3000] P1.1 SO Int MEM[2000] (registro) SV A, #3000 S.O. INTRODUCCIÓN 18 INTERRUPCIONES (6) INTERRUPCIONES (6) contador programa Instrucción ejecutando CP SO Int Int Int A U1 MEM[3000] V1 MEM[4000] V3 P1.1 ? 3 5 2 P1.1 LD A, #2000 P1.2 3 3 5 2 P1.2 ADD A, 18 P1.3 21 3 5 2 SO P2.1 ? 3 5 2 P2.1 LD A, #3000 P2.2 5 3 5 2 P2.3 -20 3 5 2 P2.4 -20 3 5 -20 SO P1.3 21 3 5 -20 P1.3 SV A,#2000 P1.4 21 21 5 -20 P1.4 LD A, #2000 P1.5 21 21 5 -20 P1.5 DEC A P1.6 20 21 5 -20 SO P2.4 -20 21 5 -20 P2.4 LD A, #4000 P2.5 -20 21 5 -20 P2.5 ADD A,2 P2.6 -18 21 5 -20 SO P1.6 20 21 5 -20 Int 20 20 5 -20 P2.6 -18 20 5 -20 Int -18 20 -18 -20 P2.2 SUS A, 25 Int MEM[2000] (registro) P2.3 SV A,#4000 P1.6 SV A, #2000 SO P2.6 SV A, #3000 S.O. INTRODUCCIÓN Siguiente instrucción a ejecutar es P.2.2 18 INTERRUPCIONES (6) INTERRUPCIONES (6) contador programa Instrucción ejecutando CP SO Int Int Int Int MEM[2000] (registro) A U1 MEM[3000] V1 MEM[4000] V3 P1.1 ? 3 5 2 P1.1 LD A, #2000 P1.2 3 3 5 2 P1.2 ADD A, 18 P1.3 21 3 5 2 SO P2.1 ? 3 5 2 P2.1 LD A, #3000 P2.2 5 3 5 2 P2.2 SUS A, 25 P2.3 -20 3 5 2 P2.4 -20 3 5 -20 SO P1.3 21 3 5 -20 P1.3 SV A,#2000 P1.4 21 21 5 -20 P1.4 LD A, #2000 P1.5 21 21 5 -20 P1.5 DEC A P1.6 20 21 5 -20 SO P2.4 -20 21 5 -20 P2.4 LD A, #4000 P2.5 -20 21 5 -20 P2.5 ADD A,2 P2.6 -18 21 5 -20 SO P1.6 20 21 5 -20 Int 20 20 5 -20 P2.6 -18 20 5 -20 Int -18 20 -18 -20 P2.3 SV A,#4000 P1.6 SV A, #2000 SO P2.6 SV A, #3000 S.O. INTRODUCCIÓN Siguiente instrucción a ejecutar es P.2.3 18 INTERRUPCIONES (6) INTERRUPCIONES (6) contador programa Instrucción ejecutando CP SO Int Int Int Int MEM[2000] (registro) A U1 MEM[3000] V1 MEM[4000] V3 P1.1 ? 3 5 2 P1.1 LD A, #2000 P1.2 3 3 5 2 P1.2 ADD A, 18 P1.3 21 3 5 2 SO P2.1 ? 3 5 2 P2.1 LD A, #3000 P2.2 5 3 5 2 P2.2 SUS A, 25 P2.3 -20 3 5 2 P2.3 SV A,#4000 P2.4 -20 3 5 -20 P1.3 21 3 5 -20 P1.4 21 21 5 -20 P1.5 21 21 5 -20 P1.6 20 21 5 -20 SO P2.4 -20 21 5 -20 P2.4 LD A, #4000 P2.5 -20 21 5 -20 P2.5 ADD A,2 P2.6 -18 21 5 -20 SO P1.6 20 21 5 -20 Int 20 20 5 -20 P2.6 -18 20 5 -20 Int -18 20 -18 -20 SO siguiente instrucción a P1.3 SV A,#2000 PERO SE PRODUCE P1.4 LD A, #2000 Guardar estado (incluido ejecutar es P2.4 ... P1.5 DEC A P1.6 SV A, #2000 SO P2.6 SV A, #3000 S.O. INTRODUCCIÓN UNA INTERRUPCIÓN --> el CP) y atender interrupción 18 INTERRUPCIONES (6) INTERRUPCIONES (6) contador programa Instrucción ejecutando CP SO Int Int Int A U1 MEM[3000] V1 MEM[4000] V3 P1.1 ? 3 5 2 P1.1 LD A, #2000 P1.2 3 3 5 2 P1.2 ADD A, 18 P1.3 21 3 5 2 SO P2.1 ? 3 5 2 P2.1 LD A, #3000 P2.2 5 3 5 2 P2.2 SUS A, 25 P2.3 -20 3 5 2 P2.3 SV A,#4000 P2.4 -20 3 5 -20 SO P1.3 21 3 5 -20 P1.4 21 21 5 -20 P1.5 21 21 5 -20 P1.6 20 21 5 -20 P2.4 -20 21 5 -20 P2.4 LD A, #4000 P2.5 -20 21 5 -20 P2.5 ADD A,2 P2.6 -18 21 5 -20 SO P1.6 20 21 5 -20 Int 20 20 5 -20 P2.6 -18 20 5 -20 Int -18 20 -18 -20 P1.3 SV A,#2000 - Se atiende la interrupción, P1.4 LD A, #2000 planificador da la CPU al P1.5 DEC A --> Se ejecutará la P1.6 proceso 1 estado del proceso 1) SV A, #2000 SO P2.6 - Al volver de la R.T.I. el instrucción P1.3 (recuperó SO Int MEM[2000] (registro) SV A, #3000 S.O. INTRODUCCIÓN 18 INTERRUPCIONES (6) INTERRUPCIONES (6) contador programa Instrucción ejecutando CP SO Int Int Int Int MEM[2000] (registro) A U1 MEM[3000] V1 MEM[4000] V3 P1.1 ? 3 5 2 P1.1 LD A, #2000 P1.2 3 3 5 2 P1.2 ADD A, 18 P1.3 21 3 5 2 SO P2.1 ? 3 5 2 P2.1 LD A, #3000 P2.2 5 3 5 2 P2.2 SUS A, 25 P2.3 -20 3 5 2 P2.3 SV A,#4000 P2.4 -20 3 5 -20 SO P1.3 21 3 5 -20 P1.3 SV A,#2000 P1.4 21 21 5 -20 P1.4 LD A, #2000 P1.5 21 21 5 -20 P1.5 DEC A P1.6 20 21 5 -20 SO P2.4 -20 21 5 -20 P2.4 LD A, #4000 P2.5 -20 21 5 -20 P2.5 ADD A,2 P2.6 -18 21 5 -20 SO P1.6 20 21 5 -20 Int 20 20 5 -20 P2.6 -18 20 5 -20 Int -18 20 -18 -20 P1.6 SV A, #2000 SO P2.6 SV A, #3000 S.O. INTRODUCCIÓN 18 Tanenbaum, pag 49 LLAMADAS AL SISTEMA EJEMPLO DE LLAMADA AL SISTEMA PARA LEER DATOS DE DISCO: . . . CVGGFS GE CZUFT . . . USER SPACE a través de la función de librería READ (FD, BUFFER, BYTES) función "Read" Retorno al procedimiento llamador (8) de la librería Trap al kernel (4) Colocar el código para lectura en el registro (3) lectura --> llamada al sistema "read" . . . . . programa de Incrementar contador de programa (9) . . Llamada al sistema (p.e. Read) (2) . . Meter datos en la pila (1) usuario que hace la llamada a la LLamada a la función de librería "Read" "read" push (bytes); push(&buffer), push (fd) . . . . Despachador (5) (6) (7) . Manejador de llamadas al sistema . KERNEL SPACE (sistema operativo) Mira el "nº de llamada" para llamar Tabla de punteros Se realiza la llamada al handler . al handler correspondiente a handlers correspondiente S.O. INTRODUCCIÓN 19 LLAMADAS AL SISTEMA (2) • Es la interfaz entre el S.O. y los programas de los usuarios • Cuando un programa de usuario necesita realizar alguna operación con algún objeto de la máquina (p.e. acceder al disco, impresora, pantalla ... etc) no puede hacerlo directamente y lo hace a través de una llamada al sistema; invoca al S.O. y este realiza la operación en su lugar. • Las llamadas al sistema son específicas de cada S.O. esto implica que cada S.O. dispone de una librería de funciones que son accedidas por los lenguajes de programación para llevar a cabo esas tareas. • Generalmente estas funciones están escritas en lenguaje ensamblador. AFORTUNADAMENTE "SUELEN" SEGUIR UNA INTERFAZ COMÚN OJO: ¡¡ LINUX VS S.O. INTRODUCCIÓN WINDOWS !! 20 LLAMADAS AL SISTEMA (3) • Como ejemplo supongamos que queremos leer en un disco. El código del lenguaje evolucionado puede ser READ, acompañado de : – Parámetros • Puntero al fichero (lugar de la lectura) • Puntero al buffer (lugar destino de lo leido) • Cantidad de bytes a leer • La especificación de la llamada puede ser: res_op = read (fd, buffer, num_bytes) La llamada al sistema (read) y la función de librería "read" devuelven el número de bytes_leídos -1 si hubo algún error 0 si no pudo leer datos (p.ej. fin de fichero) --> Nuestro programa puede chequear si el valore era el esperado – Las siguientes diapositivas explican los detalles de esta llamada S.O. INTRODUCCIÓN 21 LLAMADAS AL SISTEMA (4) 1• programa El programa invoca la llamada al sistema read de usuario (quiere invocar) que hace la – El programa que usa la librería coloca los parámetros en la pila (stack) llamada a la "read" • Los compiladores de C y C++ los colocan en orden inverso. – el primero y el tercer parámetros se pasan por valor (es una copia de los parámetros) – El segundo valor se pasa por referencia (la dirección del buffer ‘&’) 2• Se hace la llamada a la función ("Read") de la librería – Esta instrucción es una llamada estandar para cualquier procedimiento o función 3• La función pone el número de la llamada al sistema en un lugar conocido para el S.O. (un registro del procesador) 4• La función utiliza una instrucción TRAP ("Read") función "Read" de la librería – TRAP cambia de modo ususario a modo privilegiado o sistema S.O. INTRODUCCIÓN 22 LLAMADAS AL SISTEMA (5) 5• El kernel del S.O. analiza el número de la llamada al sistema – Con este número se lleva a cabo la llamada (6) Modo Kernel (Sistema Operativo) • Existe una tabla de llamadas a funciones que tratan las llamadas del sistema (system call handlers, manejadores de llamadas al el S.O. invoque a una función u otra para atender una llamada al sistema, dependerá del "número de la llamada", sistema) que que permite indexar la tabla de System Call Handlers, para saber a dónde saltar. 7• Se ejecuta la función del sistema (el manejador correspondiente) 8• Acabada la ejecución de la función se retorna el control a la librería de procedimientos (vuelve al modo usuario) DPQJBEFSFTVMUBEPTCVGGFSCZUFT@MFÓEPT BMFTQBDJPEFVTVBSJP función "Read" de la librería – La instrucción a ejecutarse será la siguiente a la TRAP 9• Se retorna del procedimiento al programa de ususario usuario limpia la pila (stack) • El programa de ususario usuario puede seguir su ejecución normal • El programa de ususario S.O. INTRODUCCIÓN programa de usuario que hace la llamada a la "read" 23 LLAMADAS AL SISTEMA (6) Llamadas al sistema en POSIX LlamadasalsistemaenPOSIX LLAMADAS AL SISTEMA (7) Llamadas al sistema en POSIX LlamadasalsistemaenPOSIX ESTRUCTURA DEL SISTEMA OPERATIVO • ADMINISTRACIÓN DE PROCESOS – Una de las tareas primordiales de todo S.O. es la ejecución de programas del usuario. Pero en el sistema existen otros programas en ejecución que no son los creados por los usuarios. En un sistema con diversos procesos para su ejecución hace falta llevar una gestión de los mismos, de esta se encarga el S.O. Un proceso necesita determinados recursos: tiempo de CPU, memoria, archivos, dispositivos de E/S... etc. Un S.O. es responsable de las siguientes actividades relacionadas con la administración de procesos: – – • • • • • Crear y eliminar los procesos de usuario y del sistema. Suspender y reanudar la ejecución de los procesos. Proporcionar mecanismos para la sincronización de los procesos. Proporcionar mecanismos para la comunicación de los procesos. Proporcionar mecanismos para el manejo de bloques mutuos. S.O. INTRODUCCIÓN 24 ESTRUCTURA DEL SISTEMA OPERATIVO (2) • ADMINISTRACIÓN DE MEMORIA PRINCIPAL – La memoria es un depósito de datos de acceso rápido compartido por la UCP y los dispositivos de E/S. La UCP sólo tiene acceso a la memoria para los programas y datos que utiliza, es por ello que deben encontrarse ambos en la misma antes de ser utilizados. Si existen diversos procesos en ejecución es evidente que deberían encontrarse en la memoria los diferentes códigos y datos que se vayan a usar. Se hace necesario gestionar el espacio para la ubicación de los mismos. El S.O. es responsable de las siguientes actividades relacionadas con la administración de la memoria: – • • Llevar un control de cuáles son las zonas de memoria que se están usando y quién las usa. Decidir qué procesos se cargarán en memoria cuando haya espacio disponible. Asignar y recuperar el espacio en memoria según se requiera. • • Compartición de memoria entre procesos (ej. memoria compartida IPC) Gestión de la jerarquía de memoria y tratamiento fallos de página • + Servicios: S.O. INTRODUCCIÓN (malloc, free, shmget,...) 25 ESTRUCTURA DEL SISTEMA OPERATIVO (3) • ADMINISTRACIÓN DE ALMACENAMIENTO SECUNDARIO – – Los programas y datos se encuentran almacenados en dispositivos de almacenamiento masivo (discos). De ellos son traídos a memoria y a ellos son llevados después de ser usados. Es responsabilidad del S.O. las siguientes actividades relacionadas con la administración del disco: • • • Administración del espacio libre. Asignación del almacenamiento. Planificación de las operaciones sobre el disco. S.O. INTRODUCCIÓN 26 ESTRUCTURA DEL SISTEMA OPERATIVO (4) • ADMINISTRACIÓN DE E/S – Uno de los objetivos del S.O. es ocultar al usuario las particularidades de los dispositivos del hardware. Por ejemplo, en UNIX, las particularidades de los dispositivos de E/S se ocultan del resto del sistema operativo por medio de un sistema de E/S, el cual consiste en: • • • Un sistema de memoria caché mediante buffers. (Acceso eficiente) Una interfaz general con los manejadores de dispositivos. Manejadores para dispositivos de hardware específicos (cuya función es conocer las particularidades del dispositivo). El S.O. garantiza la protección de E/S de forma que se eviten accesos NO autorizados a dispositivos (directos) por parte de los usuarios. + Servicios: orientados a read/write sobre dispositivos de E/S S.O. INTRODUCCIÓN 27 ESTRUCTURA DEL SISTEMA OPERATIVO (5) • ADMINISTRACIÓN DE ARCHIVOS – – – La administración de archivos puede considerarse uno de los componentes más visibles de un S.O. Para usar cómodamente un sistema de computación, el S.O. ofrece una perspectiva lógica uniforme de almacenamiento de la información. Un S.O. se vale de las propiedades físicas de sus dispositivos de almacenamiento para definir una unidad de almacenamiento lógico: el archivo. Por medio del S.O., los archivos se relacionan con los dispositivos físicos. El S.O. es responsable de las siguientes actividades relacionadas con la administración de archivos: • • • • La creación y eliminación de archivos. La creación y eliminación de directorios. El manejo de operaciones primitivas para manipular archivos y directorios. La copia de seguridad de archivos en medios de almacenamiento estables. S.O. INTRODUCCIÓN 28 ESTRUCTURA DEL SISTEMA OPERATIVO (5b) Administración de archivos bytes, propietario, fecha creación Ficheros Directorios Visiónlógica: Vi ió ló i •Nombre •secuenciadebytes Visiónlógica: Vi ió ló i •Organizadoenformaarbórea •2ficherosendiferentes directorios nunca serán el mismo directoriosnuncaseránelmismo Visiónfísica: •Detallesdesurepresentación sobreunS.F.dado. ͲInfo archivo(WĞũ͘INODE) ͲBloquesdedatos(no necesariamentecontiguos) Servicios: •abrir,crear,borrar,cerrar,leer, escribir posicionar stat escribir,posicionar,stat Visiónfísica: •Cadadirectorioalmacenasus archivosenunatabla(quese almacenaen1+bloquesdedatos) Servicios: •abrir,crear,borrar,cerrar,leer_dir, cambiar directorio stat cambiardirectorio,stat (ruta identifica a los ficheros) tabla relaciona: entrada <--> id físico (inode) ESTRUCTURA DEL SISTEMA OPERATIVO (6) • SISTEMA DE PROTECCIÓN – – • Los distintos procesos de un S.O. deben ser protegidos unos de otros. Los segmentos de memoria, la UCP, los archivos y otros recursos pueden ser usados únicamente por los procesos que han recibido la correspondiente autorización. Por ejemplo, el hardware de direccionamiento a memoria asegura que un proceso sólo puede trabajar dentro de su espacio de direcciones. El cronómetro asegura que ningún proceso puede obtener el control de la UCP sin perderlo eventualmente. Por último no se permite que un usuario realice por su cuenta operaciones de E/S, para proteger así la integridad de los Memoria --> cada proceso su espacio de direcciones propio dispositivos físicos. CPU --> Reloj que genera interrupciones periódicas EL INTÉRPRETE DE COMANDOS (SHELL) – – E/S --> El SO evita la ejecución directa de operaciones de E/S Uno de los programas de sistema más importantes para el usuario es el intérprete de comandos o shell. (o el GUI) Algunos S.O., en especial los de microcomputadores, incluyen al intérprete de comandos en su núcleo. Otros S.O. , sobre todo en las computadoras de gran tamaño, tratan al intérprete de comandos como un programa especial que se ejecuta al iniciar un trabajo o cuando el usuario se conecta por primera vez al sistema (en sistemas de tiempo compartido). S.O. INTRODUCCIÓN 29 SERVICIOS DEL SISTEMA (1) otras aplicaciones que "vienen con el S.O." • Un S.O. no debe considerarse hoy en día como una herramienta que sólo gestiona los recursos del sistema sino que además proporciona una serie de servicios que hace más cómoda la labor del usuario de un sistema informático. Para ello suelen proporcionar una serie de utilidades que, si bien no pueden considerarse S.O. en el sentido que nos interesa a nosotros, se consideran utilidades imprescindibles en todo sistema informático y suelen venir a disposición del usuario con el S.O.. estas podemos dividirlas en: – Manipulación de archivos. Estos programas crean, eliminan, copian, renombran, imprimen, vuelcan, muestran y en general manipulan archivos y directorios. – Información de estado. Algunos programas simplemente solicitan al sistema fecha, hora, espacio de memoria o disco disponible, número de usuarios... etc. – Modificación de archivos. Es normal que exista algún editor que permita la manipulación de ficheros en sus aspectos básicos. S.O. INTRODUCCIÓN 30 SERVICIOS DEL SISTEMA (2) – Apoyo a lenguajes de programación. Es usual que se ofrezcan compiladores, interpretes, ensambladores para los lenguajes más habituales. Hoy en día se ofrecen por separado. – Carga y ejecución de programas. Una vez ensamblado o compilado el programa, se debe cargar en la memoria para ejecutarlo. El sistema puede ofrecer cargadores absolutos, cargadores relocalizables, editores de enlace y cargadores de superposición. – Comunicaciones. Estos programas proporcionan el mecanismo para crear conexiones virtuales entre procesos, usuarios y diferentes sistemas de computación; permiten a los usuarios enviar mensajes a la pantalla de los demás, transferir archivos entre máquinas, enviar correo y conectarse en forma remota a otros computadores. – Programas de aplicación. Es normal que se entreguen con el S.O. programas como: generadores de gráficos, sistemas de Bases de datos, juegos... etc. S.O. INTRODUCCIÓN 31 5BOFNCBVNDIBQ EVOLUCION DE LOS SISTEMAS OPERATIVOS • 1ªGENARACIÓN (1945-1955): TUBOS DE VACÍO Y TABLEROS DE CONMUTACIÓN – – Lenguaje máquina ... o peor.. con cableado!!! – – – A mediados de la década de 1940, Howard Aiken en Harvard, John von Neuman en el Institute for Advanced Study en Princeton. J. Presper Eckert y William Mauchley en la University of Pennsylvania y Konrad Zuse en Alemania, entre otros, lograron construir máquinas (ejemplos: Z3, Colossus, ENIAC) calculadoras usando tubos de vacío. En estos primeros días, un solo grupo de personas diseñaba, programaba, operaba y mantenía la máquina. Toda la programación se realizaba en lenguaje máquina absoluto, a menudo alambrando tableros de comunicación para controlar las funciones básicas de la máquina. No existían los lenguajes de programación (ni siquiera los ensambladores) ni, por supuesto, los S.O. La forma de operar usual consistía en que el programador se anotaba para recibir un bloque de tiempo en la hoja de reservas, luego pasaba a la sala de máquinas, insertaba su tablero de conmutación en la máquina, y pasaba las siguientes horas esperando que no se fundiera ninguno de los 20.000 tubos de vacío. Prácticamente todos los problemas eran cálculos numéricos directos. S.O. INTRODUCCIÓN 32 Imagen: Modern Op Syst. 3ªed, Tanembaum EVOLUCION DE LOS S.O. (2) • 2ªGENARACIÓN (1955-1965): TRANSISTORES Y SISTEMAS POR LOTE – – A principios de la década de 1950, el trabajo había mejorado un poco con la introducción de las tarjetas perforadas. Ahora se podía escribir el programa en tarjetas e introducirlas para ser leídas, en lugar de usar tableros de conmutación; por lo demás, el procedimiento era el mismo. A mediados de 1950 se introdujo el transistor en los computadores y esto cambió el panorama totalmente, aumentó la fiabilidad. y... FIABLE --> se puede vender a una gran corporación !! Aparece la separación entre diseñadores, constructores, operadores, programadores y personal de mantenimiento. Estas máquinas tenían equipos profesionales para operarlas. Como ejemplo un operador se encargaba del montaje de la maquina y liberaba al programador de la tarea. Para ejecutar un trabajo (un programa o serie de ellos), un programador escribía primero el programa en papel (FORTRAN o ensamblador) y luego lo perforaba en tarjetas. Después, llevaba el grupo de tarjetas al cuarto de entrada y lo entregaba a uno de los operadores. Cuando este acababa el resultado era enviado a un cuarto de salida donde el programador recogía los resultados del trabajo. Si el siguiente trabajo necesitaba de otro compilador, había que cargarlo; esto implicaba un desperdicio de tiempo. (en una máquina de $millón ) S.O. INTRODUCCIÓN 33 EVOLUCION DE LOS S.O. (3) Sistema por lotes o batch • La solución a esto fue el sistema por lotes. El principio de esta forma de trabajo consistía en reunir una serie de trabajos en el cuarto de entrada, leerlos y grabarlos en una cinta magnética usando una computadora pequeña (IBM 1401, útil para leer tarjetas, copiar cintas e imprimir salidas, pero no para cálculos) y luego procesarlos en una más grande (IBM 7094). • Como se procesaban varios trabajos similares seguidos, se ideó un programa que residía en memoria cuya función primordial consistía en activar el siguiente trabajo después de finalizar el anterior es decir, se encargaba de la secuencia automática de trabajos. Este programa conocido como monitor residente fue el origen de lo que hoy son los Sistemas Operativos. (MÁQUINA PEQUEÑA) copia a cinta varios trabajos (MÁQUINA GRANDE-) MONITOR RESIDENTE carga los trabajos uno tras otro (de cinta de entrada) Resultados se escriben en otra "cinta de salida" • Este primitivo S.O. o monitor residente tenía la siguiente estructura: CARGADOR SECUENCIADOR DE TRABAJOS INTERPRETE DE TARJETAS DE CONTROL El contenido de las tarjetas ya fue (MÁQUINA PEQUEÑA) imprimir los resultados ÁREA DE PROGRAMAS DE USUARIO copiado a la cinta. Incluso la tarjeta con el compilador está "copiada a la cinta" Imagen: Modern Op Syst. 3ªed, Tanembaum S.O. INTRODUCCIÓN 34 EVOLUCION DE LOS S.O. (4) • Una vez que estaban finalizados los trabajos, se pasaba la cinta de salida de nuevo a la IBM 1401 para efectuar la salida impresa fuera de línea (no conectada a la computadora principal). • Las computadoras grandes de la segunda generación se usaban primordialmente para cálculos científicos y de ingeniería. Estas máquinas generalmente se programaban en FORTRAN y lenguaje ensamblador. Los sistemas operativos típicos eran FMS (Fortran Monitor System) e IBSYS (el S.O. de IBM para la 7094). p.ej. Ecuaciones diferenciales S.O. INTRODUCCIÓN 35 EVOLUCION DE LOS S.O. (5) • 3G. (1965-1980): CIRCUITOS INTEGRADOS Y MULTIPROGRAMACIÓN – A principios de la década de 1960, la mayoría de los fabricantes tenían dos líneas de producción: • una orientada al trabajo científico • otra orientada a los aspectos administrativos – Para paliar este problema IBM trató de crear una máquina que sirviera para ambos tipos de trabajo e ideó la System/360. :UBNCJÏOVOBGBNJMJBEFNÈRVJOBTDPNQBUJCMFTDPOFTUBNÈTPNFOPTQPUFOUFT 1FK5FOHPVOBNÈRVJOBRVFTFNFRVFEBQFRVF×BQFSPRVJFSP RVFUPEPTNJTQSPHSBNBTBOUJHVPTTFQVFEBOTFHVJSFKFDVUBOEP – Puesto que todas las máquinas tenían la misma arquitectura y conjunto de instrucciones, los programas escritos para una máquina podían ejecutarse en todas las demás, al menos en teoría. ¡Pero estas máquinas "compatibles" podían ser muy heterogéneas!! – La 360 fue la primera computadora en usar circuitos integrados (IC) y esto le dio una ventaja competitiva muy fuerte frente a la competencia. S.O. INTRODUCCIÓN 36 EVOLUCION DE LOS S.O. (6) • Esta idea de tener "una familia" fue también su gran debilidad. La idea era que todo el software, incluido el sistema operativo, funcionara en todos los modelos. El software tenía que funcionar en máquinas potentes y no tanto, con procesos orientados al cálculo científico y con otros orientados al trabajo administrativo, con pocos y con muchos periféricos... etc., si añadimos que además se le pedía que lo hiciera siempre de forma eficiente, podemos vislumbrar el origen de los problemas con los que se encontró el sistema operativo. • La pretensión de dar respuesta a todas estas necesidades dio origen a un S.O. enorme, muy complejo y con millones de líneas en ensamblador escritas por diferentes programadores y que contenía miles de errores. Cada intento de corregirlos daba lugar a otra tanda de ellos y sin visos de solución definitiva. • A pesar de todo dio respuesta "satisfactoria" a la mayoría de los clientes y sirvió para introducir en los S.O. una forma de gestión de los procesos conocida como multiprogramación. S.O. INTRODUCCIÓN 37 EVOLUCION DE LOS S.O. (7) (2ªGeneración) En la 7094, cuando un trabajo hacía una pausa para hacer una operación de E/S, la CPU permanecía ociosa esperando a que finalizara dicha operación. En cálculos científicos la pérdida de tiempo no es exagerada pero en el procesamiento de datos comerciales esto puede significar el 8090% del tiempo total. (3ªGeneración con Multiprogramación) Job1 Job2 Job3 SO La decisión que se tomó para solucionar el problema fue dividir la memoria en varias secciones, con un trabajo distinto en cada partición. Mientras un trabajo estaba esperando por una operación de E/S otro podía estar usando la CPU. Si se consigue mantener en memoria diversos programas podría mantenerse la CPU trabajando casi todo el tiempo. particiones de memoria Mantener en memoria más de un programa implica tener un hardware especial que impida que un programa invada la partición de otros. El procesamiento off-line permitió simultanear las operaciones de E/S con el uso de la UCP. Pero si queremos que este trabajo se realice sobre una sola máquina; se debe colocar ciertos elementos entre los dispositivos y la UCP para permitir una separación similar de la ejecución. Además es necesario desarrollar una arquitectura adecuada para permitir este almacenamiento temporal Necesidad de buffers de E/S S.O. INTRODUCCIÓN 38 BUFFER Un buffer, o almacenamiento temporal, es un método para hacer simultánea la E/S de un trabajo con su propio cómputo. Consiste en reservar espacio de memoria para traer o llevar información del dispositivo de E/S, así el trabajo se activa porque la lectura o escritura sobre el dispositivo puede hacerse en un momento diferente al de su utilización lógica por la UCP. El manejo de buffers es generalmente una función del sistema operativo. El monitor residente o los manejadores de dispositivo incluyen buffers del sistema para cada dispositivo de E/S. Los trabajos de esta época se caracterizaban por estar limitados por E/S con lo que la utilización de buffers no era suficiente. S.O. INTRODUCCIÓN 39 SPOOLING La utilización del disco supuso una evolución importante para los sistemas operativos. Al disponer de un acceso directo a la información, la utilización de la misma no es imperativo que se haga de forma secuencial. Esto va a permitir que se pueda simultanear la utilización de un dispositivo de E/S de un programa con el procesamiento de otro programa. A esta forma de trabajo se la conoce como spool (simultaneous peripheral operation on-line). Fundamentalmente se trata de utilizar el disco como un gran buffer de almacenamiento masivo. El spooler puede llevarse al extremo de llevar a disco toda una cinta y grabar gravar la misma de nuevo al disco, posteriormente se imprime la salida. A esta operación se la conoce como pasar por etapas (staging) la cinta. La utilización del spooling proporciona una estructura de datos muy importante: el deposito de trabajos (job pool). Al disponer de varios trabajos almacenados en disco, se puede seleccionar el orden de entrada (con la cinta el orden es secuencial) y mejorar el rendimiento del sistema, esto hace necesaria una planificación del trabajo. * Los trabajos a ejecutar se pasan a DISCO (se crea un POOL de trabajos a ejecutar) * DISCO --> Acceso DIRECTO --> No es necesario ejecutar las tareas secuencialmente (como cuando estaban en cintas) --> Se puede modificar el orden de ejecución --> hace posible/necesario realizar una PLANIFICACIÓN * La ventaja: Cada vez que un trabajo termina, se puede elegir cualquier otro trabajo para cargarlo en la partición libre e iniciar su ejecución. S.O. INTRODUCCIÓN 40 MULTIPROGRAMACIÓN Creado el software que permita un control del spool es lógico pensar que el siguiente paso es poder simultanear la ejecución de diversos trabajos la UCP. Teniendo en cuenta que el paso significa cambiar de un proceso a otro por abandono del anterior de la UCP. Esto paso implica para el sistema operativo la necesidad de determina cual es el proceso al que se le va a asignar la UCP, esta decisión se conoce como planificación de la UCP. Hasta este momento: - Se puede simultanear la ejecución de varios "trabajos" en la CPU - hay varios procesos ejecutándose (dep de los que caben en memoria), pero se cambia de uno a otro sólo cuando éste abandona la CPU (p.ej. si hace una E/S) - Necesidad de un planificador S.O. INTRODUCCIÓN 41 LOS CAMBIOS DE UNA TIEMPO COMPARTIDO TAREA A OTRA SE HACEN POR INICIATIVA DEL s.o (el planificador) El tiempo compartido (o multitarea) es una extensión lógica de la multiprogramación. La UCP ejecuta las diversas tareas alternando entre ellas pero los cambios se hacen por iniciativa del sistema operativo, el cual va asignando tiempo (quantum) a cada proceso y va permitiendo que todos se vayan ejecutando "simultáneamente". Esto implica la necesidad de una mejor planificación de trabajos para decidir cuestiones como: ¿a quien se le asigna la CPU?, ¿duración del quantum? ...etc. Además, permite una interacción entre el programa y el usuario. Antes los programas se ejecutaban de forma secuencial y esto tenía implicaciones para los programadores pues tenían que prever todas las posibilidades de desarrollo de los programas. 1&+"IPSBVOQSPHSBNBEPSQVFEFJOUFSBDUVBSZEFCVHHFBSVOQSPHSBNB1VFTMBSFTQVFTUB EFTEFRVFEBVOBPSEFOEFEFCVHHJOH IBTUBRVFUJFOFMBSFTQVFTUBQBTBQPDPUJFNQP S.O. INTRODUCCIÓN 42 4ª Generación (1980 +) Ordenadores personales 4ªGeneración(1980+)Ordenadorespersonales • • • • AparicióndechipsconLSI(Large Scale ofIntegration) PCgeneralizado 1974:Intel8080Æ SO:CP/M(1977) 1981 IBM/PC (BasicÆDOS) Æ MSDOS(untanto 1981IBM/PC(BasicÆDOS)Æ MSDOS (un tanto rudimentarioaún) OtrosSO:windows Xp,ysucesivos Unix,Linux(1991)…multitarea,… AR5ANQUE Y PARADA DEL SISTEMA 1 Bajo el control del iniciador ROM 2 Bajo el control del cargador (boot) del S.O. 3 Inicialización bajo el control de la parte residente del S.O. Test del hardware Carga en memoria del cargador del S.O. Carga en memoria componentes del S.O Test del sistema de ficheros Creación de estructuras de datos internas Paso a modo de memoria virtual Completa la carga de S.O. residente Habilita las interrupciones Creación del proceso login 4 Entra en la fase normal de funcionamiento del S.O. a la espera de que se produzca una interrupción S.O. INTRODUCCIÓN 43 ARRANQUE DEL SISTEMA • Tiene dos fases: arranque hardware y arranque del S.O. • Arranque hardware – Al enchufar la máquina se cargan unos valores predefinidos en los registros. En el contador de programa va la dirección de comienzo del iniciador de ROM, además la máquina se pone en modo privilegiado y con las interrupciones inhibidas. El iniciador ROM realiza lo siguiente: • Lleva a cabo una comprobación del sistema para ver si está en buen estado y obtener algunos datos como la cantidad de memoria y los periféricos conectados • Lee y almacena en memoria el programa cargador del S.O. o boot. • Se pasa el control al boot. Todo esto se hace en modo privilegiado y real (sin MMU instalada) S.O. INTRODUCCIÓN 44 ARRANQUE DEL SISTEMA (2) • Arranque del S.O. – Comprobación del sistema • Completa las pruebas de hardware iniciadas por el iniciador de ROM y comprueba la coherencia del sistema de ficheros • Se carga en memoria la parte del S.O. que reside permanentemente en memoria (sistema operativo residente) • Se crean las estructuras de datos con las que trabaja el S.O.: tabla de interrupciones IDT (Interrupt Description Table), tabla de procesos, tablas de memoria y de E/S • En su caso, creadas las tablas de páginas, se activa la MMU, ACTIVO MEMORY MANAGEMENT UNIT pasando a modo virtual. • Se habilitan las interrupciones • Se crea un proceso login por cada terminal así como un conjunto de procesos auxiliares y demonios (un conjunto de procesos que no tienen comunicación con el usario). S.O. INTRODUCCIÓN 45 PARADA DEL SISTEMA • El apagado del sistema implica la eliminación de todas las estructuras de datos del sistema, pero algunas conservan infomación relevante para el funcionamiento del sistema o información actualizada del sistema de ficheros que no ha sido guardada en el disco. Esta información debe ser guardada en el disco para su uso posterior, es por lo que el apagado de la máquina, a veces, se hace algo lenta. Algunas veces es conveniente hacer uso de opciones alternativas – Hibernar el sistema consiste en guardar en un fichero toda la información crítica y leerla de nuevo cuando se activa la máquina – Apagado en espera (standby) consiste en parar la máquna pero mantener la alimentación para no eliminar esta información relevante. S.O. INTRODUCCIÓN 46 TIPOS DE S.O. • ESTRUCTURA MONOLÍTICA Módulo a Módulo b Módulo c Módulo d Módulo e Módulo f S.O. INTRODUCCIÓN 47 TIPOS DE S.O. • ESTRUCTURA JERÁRQUICA (EN CAPAS) Gestión de CPU Gestión de E/S Gestión de memoria Gestión de la Información Intérprete de comandos S.O. INTRODUCCIÓN Spool Aplicación De usuario 48