Download interrupciones (6)

Document related concepts

Sistema operativo wikipedia , lookup

Memoria virtual wikipedia , lookup

Máquina desnuda wikipedia , lookup

Transcript
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