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íaFariña, Pedreira: LBD@2010
g
• Básica:– Carretero et al., 2007, Sistemas Operativos, una visión, , p ,aplicada (2ª ed), Mc Graw Hill
• Otros:Otros:– Andrew S. Tanenbaum, 2009, Sistemas OperativosModernos (3ª ed) Prentice HallModernos (3ª ed), Prentice Hall
– Silberschatz, A.; Galvin, P.B.; Gagne, G., 2005,F d t d l Si t O ti (7ª d) M GFundamentos de los Sistemas Operativos (7ª ed), Mc GrawHill
Bibliografía
, @Arquitectura básica de un computador
• Máquina desnuda
O d d d i i– Ordenador carente de sistema operativo
– Sólo el hardware, sin ningún software instalado
– En sí mismo no hace “nada”
– El hardware por sí mismo sólo es capaz de ejecutarprogramas en código máquina
• Secuencia de instrucciones en lenguaje máquina
• Un programador tendría que programar “TODO”!!• Un programador tendría que programar TODO !!
Fariña, Pedreira: LBD@2010
Ej l i lifi d d á i• Ejemplo, muy simplificado, de programa máquina…LOAD R1, #16[R10] // R1 Mem (R10+16)LOAD R2, #32[R10] // R2 Mem (R10+32)ADD R3, R1, R2SAVE R3, #16[R11] //Mem (R11+16) R3…
Que en pascal podría ser algo como lo siguiente: (aunque no sea corrento)res3 := var[16] + var[32];
c
P l á• Pero queremos algo más:– Ejecutar varios procesos de forma simultánea, que tienen que
compartir los recursos del computadorcompartir los recursos del computador
– Olvidarnos del detalle de uso de cada componente HW
/• P.ej: controladores de cada tipo de ratón/tarjeta gráfica,…
– Tener un entorno de trabajo en el computador
• Para lanzar nuestros programas, manejar ficheros (sistemaficheros),…
– Escribir programas en lenguajes de alto nivel (compilación)
– Tener múltiples usuarios que utilicen el sistema, posiblementede forma concurrentede forma concurrente.
– Etc.
SISTEMA INFORMÁTICO
S.O. INTRODUCCIÓN 2
SISTEMA OPERATIVO
HARDWARE
Usuario 1 Usuario 2 Usuario 3 Usuario n …
Compilador Ensamblador Editor Base de datos
Programas del sistema y aplicaciones
Acceso a : Disco? Teclado? Ratón? …
Software
usuario
aplicación
sistemaoperativo
hardware
S.O. INTRODUCCIÓN 3
.
CAPAS DE UN SISTEMA INFORMÁTICO Nivel de usuario
Nivel de lenguaje de alto nivel
Nivel físico-lógico digital
Nivel de lenguaje máquina Y ensamblador
NIVEL DE S.O
S.O. INTRODUCCIÓN 4
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
• Nivel de lenguaje máquina y ensamblador– 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 perousa nemotécnicos para las instrucciones, macroinstrucciones y la posibilidad deservirse de los servicios ofrecidos por el S.O. que está debajo.
• Nivel de Sistema Operativo– Surge como necesidad de proteger los recursos del computador
• 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
• Nivel de usuario– En este nivel el usuario no necesita conocimientos informáticos sino entender el
programa y el problema que trata
Load R1, #16[R10] // R1 <-- Mem(R10+16) Load R2, #32[R10] // R2 <-- Mem(R10+32) ADD R3, R2, R1
res := var[16]+var[32];
, dar servicios, etc.
Registros
variables
S.O. INTRODUCCIÓN 5
ESTRUCTURA DEL COMPUTADOR
flujo de control flujo de datos
REGISTROS
UNIDAD
ARITMETICO-LOGICA
MEMORIA
PRINCIPAL DATOS
CODIGO
ROM
UNIDAD DE CONTROL
REGISTRO DE ESTADO
CONTADOR DE PROGRAMA REGISTRO DE INSTRUCCIÓN
PUNTERO DE PILA
U N I D A D
D E
E N T R A D A / S A L I D A
CPU = UC + ALU
de datos (normales)
(1)
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 laCPU. Los elementos de que disponen para la ejecución de las instrucciones puedenser– Registros generales. Almacenan información de forma temporal– Contador de programa (program counter). Contiene la dirección de la siguiente instrucción
a ejecutar– Apuntador de pila (stack pointer). Apunta a la parte superior de la pila actual en la
memoria. La pila almacena una serie de informaciones por cada procedimiento al que se haentrado y del que no se ha salido (parámetros de entada, variables locales y variablestemporales que no se mantienen en los registros)
– PSW (palabra de estado del programa) contiene bits de código de condición, prioridad de laCPU, modo (kernel o usuario) y otros bits de control. Juega un papel importante en lasllamadas al sistema y en E/S
• Las CPU actuales tienen dos modos de funcionamiento: modo kernel y modousuario. En el modo kernel no hay límites en el acceso a los objetos de la CPU, enel modo usuario hay restricciones en su uso. Los programas de los usuarios seejecutan 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 defuncionamiento. Las operaciones de E/S y el acceso a la memoria protegida no sonposibles en modo usuario.
• Llamadas al sistema. Es la forma que utilizan los S.O. para ejecutar aquellasacciones que los procesos de usuario no pueden hacer.
S.O. INTRODUCCIÓN 6
ESTRUCTURA DEL COMPUTADOR (3)
• UNIDAD ARITMETICO-LOGICA– 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 losregistros.
– La lógica de funcionamiento de las instrucciones la determina el lenguajemá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 quefuncionen coordinadamente
S.O. INTRODUCCIÓN 7
– Lee de mem sig instruc. máquina – La interpreta – Lee de memoria datos si necesario – Ejecuta instrucción – Almacena resultado (si hay)
REGISTRO DE ESTADO
S.O. INTRODUCCIÓN 8
Modo Traza T 15 14
Sistema/Usuario S 13 12 1
Mascara 12 10 De 11 9 Interrupciones 10 8
7 6 5
Extensión X 4 Negativo N 3 Cero Z 2 Desbordamiento V 1 Acarreo C 0
Octeto del sistema
Octeto del usuario
Modo Ejecución:
(Visible en Modo Kernel)
S.O. INTRODUCCIÓN 9
MODELO DE PROGRAMACIÓN • Se caracteriza por los siguientes aspectos:
– Elementos de almacenamiento• Registros generales• Contador de programa• Puntero/os de pila• Registro de estado• Memoria principal• Contadores de E/S
– Juego de instrucciones• Define las operaciones que es capaz de hacer el ordenador.
– 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ónde la memoria)
• Modo núcleo privilegiado (sin limitaciones)
(Define los Recursos y características que se ofrecen al programador)
1
2
3
Registros de E/S
(que se pueden utilizar en instrucciones)
S.O. INTRODUCCIÓN 10
MODELO DE PROGRAMACIÓN (2)
– 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
4
(Define los Recursos y características que se ofrecen al programador)
S.O. INTRODUCCIÓN 11
¿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 PROGRAMADecimos 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.
• EL S.O. COMO MÁQUINA EXTENDIDAHemos 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 RECURSOSOtra 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.
f= open("x.txt"); write (f,...) --> Escribe en un HDD en un fichero dado
open/write funcionarán indep de si HDD con Ext3, NTFS,... Samsung o Seagate,...
- Saber recursos que están libres (CPU, MEM, espacio HDD, impresora, - Asignar recursos - Recuperar recursos que ya no se usen
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
S.O. INTRODUCCIÓN 13
• 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: – 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
• 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: – 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.
INTERRUPCIONES
S.O. INTRODUCCIÓN 14
INTERRUPCIONES (2) • Las interrupciones se pueden generar por diversas
causas – 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 – Resultado inexacto en la unidad aritmética – Dispositivo no existente – Región de memoria inválida – Desbordamiento de la pila – Violación de los límites de memoria asignada – Código de operación máquina invalido
• Depuración – Punto de ruptura
• Fallo de página
1
3.000.000.000 + 3.000.000.000
(BREAK POINT)
(ACCESO A DATOS QUE AÚN NO ESTÁN EN MEMORIA)
(STACK OVERFLOW)
INTERRUPCIONES (3)
– 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
– Interrupciones externas. Se trata de interrupciones producidas
por elementos externos al procesador: • El reloj • Los controladores de dispositivos de E/S • Otros procesadores
– Instrucciones máquina de llamadas al sistema
S.O. INTRODUCCIÓN 15
2
3
4 (TRAP, INT,...)
S.O. INTRODUCCIÓN 16
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 17
INTERRUPCIONES (5) EJEMPLO:
(CONTADOR PROGRAMA)
(registro)
NOTA: P1.1 = programa1, línea 1 NOTA: P2.1 = programa2, línea 1
NOTA: U1 == Memoria[2000]
S.O. INTRODUCCIÓN 18
ejecutando CP A U1 V1 V3 SO P1.1 ? 3 5 2 P1.1 P1.2 3 3 5 2
Int P1.2 P1.3 21 3 5 2 SO P2.1 ? 3 5 2 P2.1 P2.2 5 3 5 2 P2.2 P2.3 -20 3 5 2
Int P2.3 P2.4 -20 3 5 -20 SO P1.3 21 3 5 -20 P1.3 P1.4 21 21 5 -20 P1.4 P1.5 21 21 5 -20
Int P1.5 P1.6 20 21 5 -20 SO P2.4 -20 21 5 -20 P2.4 P2.5 -20 21 5 -20
Int P2.5 P2.6 -18 21 5 -20 SO P1.6 20 21 5 -20 P1.6 Int 20 20 5 -20 SO P2.6 -18 20 5 -20 P2.6 Int -18 20 -18 -20
INTERRUPCIONES (6) INTERRUPCIONES (6)
(registro)contador programa MEM[2000] MEM[3000] MEM[4000]Instrucción
LD A, #2000
ADD A, 18
LD A, #3000
SUS A, 25
SV A,#4000
SV A,#2000
LD A, #2000
DEC A
LD A, #4000
ADD A,2
SV A, #3000
SV A, #2000
siguiente instrucción a
ejecutar es P1.1
S.O. INTRODUCCIÓN 18
ejecutando CP A U1 V1 V3 SO P1.1 ? 3 5 2 P1.1 P1.2 3 3 5 2
Int P1.2 P1.3 21 3 5 2 SO P2.1 ? 3 5 2 P2.1 P2.2 5 3 5 2 P2.2 P2.3 -20 3 5 2
Int P2.3 P2.4 -20 3 5 -20 SO P1.3 21 3 5 -20 P1.3 P1.4 21 21 5 -20 P1.4 P1.5 21 21 5 -20
Int P1.5 P1.6 20 21 5 -20 SO P2.4 -20 21 5 -20 P2.4 P2.5 -20 21 5 -20
Int P2.5 P2.6 -18 21 5 -20 SO P1.6 20 21 5 -20 P1.6 Int 20 20 5 -20 SO P2.6 -18 20 5 -20 P2.6 Int -18 20 -18 -20
INTERRUPCIONES (6) INTERRUPCIONES (6)
(registro)contador programa MEM[2000] MEM[3000] MEM[4000]Instrucción
LD A, #2000
ADD A, 18
LD A, #3000
SUS A, 25
SV A,#4000
SV A,#2000
LD A, #2000
DEC A
LD A, #4000
ADD A,2
SV A, #3000
SV A, #2000
siguiente instrucción a
ejecutar es P1.2
S.O. INTRODUCCIÓN 18
ejecutando CP A U1 V1 V3 SO P1.1 ? 3 5 2 P1.1 P1.2 3 3 5 2
Int P1.2 P1.3 21 3 5 2 SO P2.1 ? 3 5 2 P2.1 P2.2 5 3 5 2 P2.2 P2.3 -20 3 5 2
Int P2.3 P2.4 -20 3 5 -20 SO P1.3 21 3 5 -20 P1.3 P1.4 21 21 5 -20 P1.4 P1.5 21 21 5 -20
Int P1.5 P1.6 20 21 5 -20 SO P2.4 -20 21 5 -20 P2.4 P2.5 -20 21 5 -20
Int P2.5 P2.6 -18 21 5 -20 SO P1.6 20 21 5 -20 P1.6 Int 20 20 5 -20 SO P2.6 -18 20 5 -20 P2.6 Int -18 20 -18 -20
INTERRUPCIONES (6) INTERRUPCIONES (6)
(registro)contador programa MEM[2000] MEM[3000] MEM[4000]Instrucción
LD A, #2000
ADD A, 18
LD A, #3000
SUS A, 25
SV A,#4000
SV A,#2000
LD A, #2000
DEC A
LD A, #4000
ADD A,2
SV A, #3000
SV A, #2000
siguiente instrucción a
ejecutar es P1.3 ...
PERO SE PRODUCE
UNA INTERRUPCIÓN -->
Guardar estado (incluido
el CP) y atender
interrupción
S.O. INTRODUCCIÓN 18
ejecutando CP A U1 V1 V3 SO P1.1 ? 3 5 2 P1.1 P1.2 3 3 5 2
Int P1.2 P1.3 21 3 5 2 SO P2.1 ? 3 5 2 P2.1 P2.2 5 3 5 2 P2.2 P2.3 -20 3 5 2
Int P2.3 P2.4 -20 3 5 -20 SO P1.3 21 3 5 -20 P1.3 P1.4 21 21 5 -20 P1.4 P1.5 21 21 5 -20
Int P1.5 P1.6 20 21 5 -20 SO P2.4 -20 21 5 -20 P2.4 P2.5 -20 21 5 -20
Int P2.5 P2.6 -18 21 5 -20 SO P1.6 20 21 5 -20 P1.6 Int 20 20 5 -20 SO P2.6 -18 20 5 -20 P2.6 Int -18 20 -18 -20
INTERRUPCIONES (6) INTERRUPCIONES (6)
(registro)contador programa MEM[2000] MEM[3000] MEM[4000]Instrucción
LD A, #2000
ADD A, 18
LD A, #3000
SUS A, 25
SV A,#4000
SV A,#2000
LD A, #2000
DEC A
LD A, #4000
ADD A,2
SV A, #3000
SV A, #2000
- Se atiende la interrupción,
- Al volver de la R.T.I. el
planificador da la CPU al
proceso 2
--> Se ejecutará la
instrucción P2.1
S.O. INTRODUCCIÓN 18
ejecutando CP A U1 V1 V3 SO P1.1 ? 3 5 2 P1.1 P1.2 3 3 5 2
Int P1.2 P1.3 21 3 5 2 SO P2.1 ? 3 5 2 P2.1 P2.2 5 3 5 2 P2.2 P2.3 -20 3 5 2
Int P2.3 P2.4 -20 3 5 -20 SO P1.3 21 3 5 -20 P1.3 P1.4 21 21 5 -20 P1.4 P1.5 21 21 5 -20
Int P1.5 P1.6 20 21 5 -20 SO P2.4 -20 21 5 -20 P2.4 P2.5 -20 21 5 -20
Int P2.5 P2.6 -18 21 5 -20 SO P1.6 20 21 5 -20 P1.6 Int 20 20 5 -20 SO P2.6 -18 20 5 -20 P2.6 Int -18 20 -18 -20
INTERRUPCIONES (6) INTERRUPCIONES (6)
(registro)contador programa MEM[2000] MEM[3000] MEM[4000]Instrucción
LD A, #2000
ADD A, 18
LD A, #3000
SUS A, 25
SV A,#4000
SV A,#2000
LD A, #2000
DEC A
LD A, #4000
ADD A,2
SV A, #3000
SV A, #2000
Siguiente instrucción a
ejecutar es P.2.2
S.O. INTRODUCCIÓN 18
ejecutando CP A U1 V1 V3 SO P1.1 ? 3 5 2 P1.1 P1.2 3 3 5 2
Int P1.2 P1.3 21 3 5 2 SO P2.1 ? 3 5 2 P2.1 P2.2 5 3 5 2 P2.2 P2.3 -20 3 5 2
Int P2.3 P2.4 -20 3 5 -20 SO P1.3 21 3 5 -20 P1.3 P1.4 21 21 5 -20 P1.4 P1.5 21 21 5 -20
Int P1.5 P1.6 20 21 5 -20 SO P2.4 -20 21 5 -20 P2.4 P2.5 -20 21 5 -20
Int P2.5 P2.6 -18 21 5 -20 SO P1.6 20 21 5 -20 P1.6 Int 20 20 5 -20 SO P2.6 -18 20 5 -20 P2.6 Int -18 20 -18 -20
INTERRUPCIONES (6) INTERRUPCIONES (6)
(registro)contador programa MEM[2000] MEM[3000] MEM[4000]Instrucción
LD A, #2000
ADD A, 18
LD A, #3000
SUS A, 25
SV A,#4000
SV A,#2000
LD A, #2000
DEC A
LD A, #4000
ADD A,2
SV A, #3000
SV A, #2000
Siguiente instrucción a
ejecutar es P.2.3
S.O. INTRODUCCIÓN 18
ejecutando CP A U1 V1 V3 SO P1.1 ? 3 5 2 P1.1 P1.2 3 3 5 2
Int P1.2 P1.3 21 3 5 2 SO P2.1 ? 3 5 2 P2.1 P2.2 5 3 5 2 P2.2 P2.3 -20 3 5 2
Int P2.3 P2.4 -20 3 5 -20 SO P1.3 21 3 5 -20 P1.3 P1.4 21 21 5 -20 P1.4 P1.5 21 21 5 -20
Int P1.5 P1.6 20 21 5 -20 SO P2.4 -20 21 5 -20 P2.4 P2.5 -20 21 5 -20
Int P2.5 P2.6 -18 21 5 -20 SO P1.6 20 21 5 -20 P1.6 Int 20 20 5 -20 SO P2.6 -18 20 5 -20 P2.6 Int -18 20 -18 -20
INTERRUPCIONES (6) INTERRUPCIONES (6)
(registro)contador programa MEM[2000] MEM[3000] MEM[4000]Instrucción
LD A, #2000
ADD A, 18
LD A, #3000
SUS A, 25
SV A,#4000
SV A,#2000
LD A, #2000
DEC A
LD A, #4000
ADD A,2
SV A, #3000
SV A, #2000
siguiente instrucción a
ejecutar es P2.4 ...
PERO SE PRODUCE
UNA INTERRUPCIÓN -->
Guardar estado (incluido
el CP) y atender
interrupción
S.O. INTRODUCCIÓN 18
ejecutando CP A U1 V1 V3 SO P1.1 ? 3 5 2 P1.1 P1.2 3 3 5 2
Int P1.2 P1.3 21 3 5 2 SO P2.1 ? 3 5 2 P2.1 P2.2 5 3 5 2 P2.2 P2.3 -20 3 5 2
Int P2.3 P2.4 -20 3 5 -20 SO P1.3 21 3 5 -20 P1.3 P1.4 21 21 5 -20 P1.4 P1.5 21 21 5 -20
Int P1.5 P1.6 20 21 5 -20 SO P2.4 -20 21 5 -20 P2.4 P2.5 -20 21 5 -20
Int P2.5 P2.6 -18 21 5 -20 SO P1.6 20 21 5 -20 P1.6 Int 20 20 5 -20 SO P2.6 -18 20 5 -20 P2.6 Int -18 20 -18 -20
INTERRUPCIONES (6) INTERRUPCIONES (6)
(registro)contador programa MEM[2000] MEM[3000] MEM[4000]Instrucción
LD A, #2000
ADD A, 18
LD A, #3000
SUS A, 25
SV A,#4000
SV A,#2000
LD A, #2000
DEC A
LD A, #4000
ADD A,2
SV A, #3000
SV A, #2000
- Se atiende la interrupción,
- Al volver de la R.T.I. el
planificador da la CPU al
proceso 1
--> Se ejecutará la
instrucción P1.3 (recuperó
estado del proceso 1)
S.O. INTRODUCCIÓN 18
ejecutando CP A U1 V1 V3 SO P1.1 ? 3 5 2 P1.1 P1.2 3 3 5 2
Int P1.2 P1.3 21 3 5 2 SO P2.1 ? 3 5 2 P2.1 P2.2 5 3 5 2 P2.2 P2.3 -20 3 5 2
Int P2.3 P2.4 -20 3 5 -20 SO P1.3 21 3 5 -20 P1.3 P1.4 21 21 5 -20 P1.4 P1.5 21 21 5 -20
Int P1.5 P1.6 20 21 5 -20 SO P2.4 -20 21 5 -20 P2.4 P2.5 -20 21 5 -20
Int P2.5 P2.6 -18 21 5 -20 SO P1.6 20 21 5 -20 P1.6 Int 20 20 5 -20 SO P2.6 -18 20 5 -20 P2.6 Int -18 20 -18 -20
INTERRUPCIONES (6) INTERRUPCIONES (6)
(registro)contador programa MEM[2000] MEM[3000] MEM[4000]Instrucción
LD A, #2000
ADD A, 18
LD A, #3000
SUS A, 25
SV A,#4000
SV A,#2000
LD A, #2000
DEC A
LD A, #4000
ADD A,2
SV A, #3000
SV A, #2000
LLAMADAS AL SISTEMA
Retorno al procedimiento llamador (8)
Trap al kernel (4)
Colocar el código para lectura en el registro (3)
Incrementar contador de programa (9)
Llamada al sistema (p.e. Read) (2)
Meter datos en la pila (1)
S.O. INTRODUCCIÓN 19
Despachador (5) (6) (7) Manejador de llamadas al sistema
EJEMPLO DE LLAMADA AL SISTEMA PARA LEER DATOS DE DISCO: a través de la función de librería READ (FD, BUFFER, BYTES)
función "Read"
de la librería
programa de
usuario que hace
la llamada a la
"read"
.
.
.
.
.
. USER SPACE
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. KERNEL SPACE
(sistema operativo)
.
Mira el "nº de llamada" para llamar
al handler correspondienteTabla de punteros
a handlersSe realiza la llamada al handler
correspondiente
lectura --> llamada al sistema "read"
LLamada a la función de librería "Read"
push (bytes); push(&buffer), push (fd)
Tanenbaum, pag 49
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.
S.O. INTRODUCCIÓN 20
AFORTUNADAMENTE "SUELEN" SEGUIR UNA INTERFAZ COMÚN
OJO: ¡¡ LINUX VS WINDOWS !!
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)
– Las siguientes diapositivas explican los detalles de esta llamada
S.O. INTRODUCCIÓN 21
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
LLAMADAS AL SISTEMA (4)
• El programa invoca la llamada al sistema read – El programa que usa la librería coloca los parámetros en la pila (stack)
• 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 ‘&’)
• Se hace la llamada a la función – Esta instrucción es una llamada estandar para cualquier procedimiento
o función • La función pone el número de la llamada al sistema en un lugar
conocido para el S.O. (un registro del procesador) • La función utiliza una instrucción TRAP
– TRAP cambia de modo ususario a modo privilegiado o sistema
S.O. INTRODUCCIÓN 22
1
3
2
4
programa
de usuario
que hace la
llamada a la
"read"
función
"Read"
de la librería
("Read") de la librería
(quiere invocar)
("Read")
LLAMADAS AL SISTEMA (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
• Existe una tabla de llamadas a funciones que tratan las llamadasdel sistema (system call handlers, manejadores de llamadas alsistema)
• Se ejecuta la función del sistema• Acabada la ejecución de la función se retorna el control a la
librería de procedimientos (vuelve al modo usuario)– La instrucción a ejecutarse será la siguiente a la TRAP
• Se retorna del procedimiento al programa de ususario• El programa de ususario limpia la pila (stack)• El programa de ususario puede seguir su ejecución normal
S.O. INTRODUCCIÓN 23
5
7
(6)
(el manejador correspondiente)
8
9
Modo
Kernel
(Sistema
Operativo)
función
"Read"
de la librería
programa
de usuario
que hace la
llamada a la
"read"
usuario
usuario
que el S.O. invoque a una función u otra para atender una llamada al sistema, dependerá del "número de la llamada",
que permite indexar la tabla de System Call Handlers, para saber a dónde saltar.
Llamadas al sistema en POSIXLlamadas al sistema en POSIX
LLAMADAS AL SISTEMA (6)
Llamadas al sistema en POSIXLlamadas al sistema en POSIX
LLAMADAS AL SISTEMA (7)
S.O. INTRODUCCIÓN 24
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 25
• 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.
ESTRUCTURA DEL SISTEMA OPERATIVO (2)
• 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: (malloc, free, shmget,...)
S.O. INTRODUCCIÓN 26
• 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.
ESTRUCTURA DEL SISTEMA OPERATIVO (3)
S.O. INTRODUCCIÓN 27
• 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. • Una interfaz general con los manejadores de dispositivos. • Manejadores para dispositivos de hardware específicos (cuya
función es conocer las particularidades del dispositivo).
ESTRUCTURA DEL SISTEMA OPERATIVO (4)
(Acceso eficiente)
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 28
• 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.
ESTRUCTURA DEL SISTEMA OPERATIVO (5)
Ficheros Directorios
Vi ió ló i Vi ió ló iVisión lógica:•Nombre•secuencia de bytes
Visión lógica:•Organizado en forma arbórea•2 ficheros en diferentesdirectorios nunca serán el mismo
Visión física:•Detalles de su representaciónsobre un S.F. dado.
directorios nunca serán el mismo
Visión física:•Cada directorio almacena sus
Info archivo ( INODE)Bloques de datos (nonecesariamente contiguos)
archivos en una tabla (que sealmacena en 1+ bloques de datos)
Servicios:•abrir, crear, borrar, cerrar, leer,escribir posicionar stat
Servicios:•abrir, crear, borrar, cerrar, leer_dir,cambiar directorio statescribir, posicionar, stat cambiar directorio, stat
ESTRUCTURA DEL SISTEMA OPERATIVO (5b)Administración de archivos
bytes,
propietario,
fecha creación
(ruta identifica a
los ficheros)
tabla relaciona:
entrada <--> id
físico (inode)
S.O. INTRODUCCIÓN 29
• 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 dispositivos físicos.
• EL INTÉRPRETE DE COMANDOS (SHELL) – Uno de los programas de sistema más importantes para el usuario es el
intérprete de comandos o shell. – 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).
ESTRUCTURA DEL SISTEMA OPERATIVO (6)
Memoria --> cada proceso su espacio de direcciones propio
CPU --> Reloj que genera interrupciones periódicas
E/S --> El SO evita la ejecución directa de operaciones de E/S
(o el GUI)
S.O. INTRODUCCIÓN 30
SERVICIOS DEL SISTEMA
• 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.
(1)otras aplicaciones que "vienen con el S.O."
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
S.O. INTRODUCCIÓN 32
EVOLUCION DE LOS SISTEMAS OPERATIVOS • 1ªGENARACIÓN (1945-1955): TUBOS DE VACÍO Y
TABLEROS DE CONMUTACIÓN– 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 yKonrad Zuse en Alemania, entre otros, lograron construir máquinascalculadoras 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ónse realizaba en lenguaje máquina absoluto, a menudo alambrandotableros de comunicación para controlar las funciones básicas de lamáquina.
– No existían los lenguajes de programación (ni siquiera losensambladores) ni, por supuesto, los S.O.
– La forma de operar usual consistía en que el programador seanotaba para recibir un bloque de tiempo en la hoja de reservas,luego pasaba a la sala de máquinas, insertaba su tablero deconmutación en la máquina, y pasaba las siguientes horasesperando que no se fundiera ninguno de los 20.000 tubos de vacío.
– Prácticamente todos los problemas eran cálculos numéricos directos.
Lenguaje máquina ...
o peor..
con cableado!!!
(ejemplos: Z3, Colossus, ENIAC)
S.O. INTRODUCCIÓN 33
• 2ªGENARACIÓN (1955-1965): TRANSISTORES Y SISTEMASPOR LOTE
– A principios de la década de 1950, el trabajo había mejorado un pococon la introducción de las tarjetas perforadas. Ahora se podía escribirel programa en tarjetas e introducirlas para ser leídas, en lugar deusar tableros de conmutación; por lo demás, el procedimiento era elmismo. A mediados de 1950 se introdujo el transistor en loscomputadores y esto cambió el panorama totalmente, aumentó lafiabilidad.
– Aparece la separación entre diseñadores, constructores, operadores,programadores y personal de mantenimiento.Estas máquinas tenían equipos profesionales para operarlas. Comoejemplo un operador se encargaba del montaje de la maquina yliberaba al programador de la tarea.Para ejecutar un trabajo (un programa o serie de ellos), unprogramador escribía primero el programa en papel (FORTRAN oensamblador) y luego lo perforaba en tarjetas. Después, llevaba elgrupo de tarjetas al cuarto de entrada y lo entregaba a uno de losoperadores. Cuando este acababa el resultado era enviado a uncuarto de salida donde el programador recogía los resultados deltrabajo. Si el siguiente trabajo necesitaba de otro compilador, habíaque cargarlo; esto implicaba un desperdicio de tiempo.
EVOLUCION DE LOS S.O. (2) Imagen: Modern Op Syst. 3ªed, Tanembaum
(en una máquina de $millón )
y... FIABLE --> se puede vender a una gran corporación !!
S.O. INTRODUCCIÓN 34
EVOLUCION DE LOS S.O. (3)
CARGADOR SECUENCIADOR DE TRABAJOS
INTERPRETE DE TARJETAS DE CONTROL
ÁREA DE PROGRAMAS DE USUARIO
• La solución a esto fue el sistema por lotes. El principio de esta forma detrabajo consistía en reunir una serie de trabajos en el cuarto de entrada,leerlos y grabarlos en una cinta magnética usando una computadorapequeñ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ó unprograma que residía en memoria cuya función primordial consistía enactivar el siguiente trabajo después de finalizar el anterior es decir, seencargaba de la secuencia automática de trabajos. Este programaconocido como monitor residente fue el origen de lo que hoy son losSistemas Operativos.
• Este primitivo S.O. o monitor residente tenía la siguiente estructura:
Imagen: Modern Op Syst. 3ªed, Tanembaum
(MÁQUINA GRANDE-)
MONITOR RESIDENTE
carga los trabajos uno
tras otro (de cinta de
entrada)
(MÁQUINA PEQUEÑA)
copia a cinta varios
trabajos
Sistema por lotes o batch
El contenido de las tarjetas ya fue
copiado a la cinta. Incluso la tarjeta con
el compilador está "copiada a la cinta"
Resultados se
escriben en otra
"cinta de salida"
(MÁQUINA PEQUEÑA)
imprimir los resultados
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).
S.O. INTRODUCCIÓN 35
p.ej. Ecuaciones diferenciales
S.O. INTRODUCCIÓN 36
• 3G. (1965-1980): CIRCUITOS INTEGRADOS YMULTIPROGRAMACIÓN
–A principios de la década de 1960, la mayoría de losfabricantes 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 quesirviera para ambos tipos de trabajo e ideó la System/360.
–Puesto que todas las máquinas tenían la misma arquitectura yconjunto de instrucciones, los programas escritos para unamáquina podían ejecutarse en todas las demás, al menos enteoría.
–La 360 fue la primera computadora en usar circuitosintegrados (IC) y esto le dio una ventaja competitiva muyfuerte frente a la competencia.
EVOLUCION DE LOS S.O. (5)
¡Pero estas máquinas "compatibles" podían ser muy heterogéneas!!
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
S.O. INTRODUCCIÓN 38
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 80-90% del tiempo total.
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.
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
EVOLUCION DE LOS S.O. (7) (2ªGeneración)
(3ªGeneración con Multiprogramación)
Necesidad de buffers de E/S
Job1
Job2
Job3
SOparticiones de
memoria
S.O. INTRODUCCIÓN 39
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 40
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 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.
grabar
S.O. INTRODUCCIÓN 41
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 42
TIEMPO COMPARTIDO
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.
LOS CAMBIOS DE UNA
TAREA A OTRA SE
HACEN POR INICIATIVA
DEL s.o (el planificador)
4ª Generación (1980 +) Ordenadores personales4ª Generación (1980 +) Ordenadores personales
• Aparición de chips con LSI (Large Scale of Integration)• PC generalizado• 1974: Intel 8080 SO: CP/M (1977)• 1981 IBM/PC (Basic DOS) MSDOS (un tanto• 1981 IBM/PC (Basic DOS) MSDOS (un tanto
rudimentario aún)
Otros SO: windows Xp, y sucesivosUnix, Linux (1991)… multitarea,…
AR ANQUE Y PARADA DEL SISTEMA
1 Bajo el control del iniciador ROM Test del hardware Carga en memoria del cargador del S.O.
2 Bajo el control del cargador (boot)del S.O.
Carga en memoria componentes del S.O
3 Inicialización bajo el control de laparte residente 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 seproduzca 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, 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
ACTIVO MEMORY MANAGEMENT UNIT
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
S.O. INTRODUCCIÓN 47
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 48
TIPOS DE S.O.
• ESTRUCTURA JERÁRQUICA
Gestión de CPU
Gestión de E/S
Gestión de memoria
Gestión de la Información
Aplicación De usuario
Spool
Intérprete de comandos
(EN CAPAS)
Top Related