Tecnología de la Información
Sistema operativo
U.D. 2
El Sistema Operativo (S.O.)
Funciones, características y tendencias
Sistemas de explotación y situación actual
Seguridad en el SO
Funciones, características y tendencias
No existe una perfecta definición del SO.
¿Qué es un S.O.?
Según los puntos de vista
-
Un usuario:
-
El S.O. es un programa que le permite trabajar con sus aplicaciones sin tener que conocer el hardware, de su ordenador.
-
Por lo tanto, el S.O. realiza una tarea de abstracción.
-
Le da seguridad
-
Y el ordenador le permite realizar un trabajo cómodo y eficiente.
-
Gestor de recursos:
-
Tiempo de la C.P.U. Tiempo de procesamiento de la información.
-
Memoria Principal (RAM)
-
Memorias Secundarias (Disco Duro)
-
Dispositivos de E/S
-
El S.O. también gestiona la información
Deadlock (Abrazo Mortal)
Resuelve conflictos, conflictos tipo, etc,...
Programas ejecutándose los dos a la vez | P1 | P2 |
Recursos: que están en espera hasta que el proceso suelta el siguiente recurso pero no lo suelta hasta que no tenga el siguiente recurso | R1 _R2_ | R2 _R1_ |
Solución:
Resuelve el conflicto de poder acceder en programas |
-
Programas de Control
Los S.O. son también programas de control. Los programas de control fueron los primeros S.O. que existieron, también son llamados Monitor Residente.
Función: si un programa se está ejecutando y no lo hace bien corregirlo, coger programas, etc,...
DRIVERS: Programas que tratan con los dispositivos y si una ejecución no funciona bien se puede recuperar la opción de compra.
-
Máquina Virtual:
Nos enseña una máquina que no existe, el S.O. nos da la máquina extendida, porque podemos realizar más de una operación, da facilidades.
TENDENCIAS DEL S.O.
Son todas las que hemos visto:
-
Abstraer al usuario más de Hardware
-
Seguridad
-
Comodidad y eficacia
-
Gestionará los recursos
-
Abstracción
Sistemas de explotación y situación actual
Etapas de los S.O. a lo largo de la historia:
-
Los Primeros Ordenadores: (1944)
Esta etapa se caracteriza porque los S.O. son muy grandes y caros, y los programas se realizan dentro del ordenador modificando el Hardware (cableado, interruptores,...)
Se establecen turnos para poder utilizar el ordenador y amortizar los gastos. (se utilizaba lo máximo posible). Los programadores conocían muy bien la arquitectura del ordenador.
Lo que interesa es utilizar el ordenador o bien se desperdiciaba tiempo:
-
tanto porque no se ha acabado el programa
-
o porque lo a realizado demasiado rápido.
-
Accesos por operador
Las grandes empresas piensan como pueden utilizar el máximo de tiempo de la CPU en uso, entonces aparecen:
-
El personal del mantenimiento Cambian las partes que se estropean
-
Operadores especialistas en dar instrucciones al operador. Saben realizar el ordenador pero no programan.
-
Codificador Son los que introducen los programas que han hecho el programador y hacían tarjetas perforadas.
-
Programadores Hacían los programas pero sin hacer servir el ordenador. El programador hace el programa, luego se lo pasa al codificador que lo escribe (lo pasa a tarjetas perforadas), luego estas tarjetas se las pasan al operador para qie ñas carge en el ordenador (los prueba). Si no funciona el operador se los pasaba al programador para que los vuelva a repasar y se vuelve ha hacer una cadena.
Equipo de programadores | Equipo de Codificadores | Equipo de operadores |
P1 P2 P3 P4 P5 P6 | C1 C2 C3 | OP1 OP2 OP3 |
El dispositivo es muy lento comparado con la CPU. A la CPU le sobra tiempo es muy rápida.
Domina a la perfección el dispositivo el conjunto que forma el programa.
Cada programador escribía su código en el programa, y así se perdía tiempo y ocupaban mucho software. Y si aparecían nuevas técnicas que decodificaba (una nueva lectora) tenían que actualizar los códigos y perdían más tiempo.
Los programadores escribían íntegramente las aplicaciones del ordenador.
-
Una parte de su aplicación tenia que decir como se hacían servir los dispositivos.
La solución: fue que un conjunto de programadores hicieran los programas, el programador escribía un programa, que da la información a los dispositivos que le a dado la aplicación a la lectora y está le da el resultado al dispositivo y este a la aplicación.
Controlador de Dispositivo (Driver)
Queda todo solucionado, y si se cambia de lectora el dispositivo DRIVER.
-
Secuencia automática de trabajo
Se crean los primeros S.O.
Hace un programa y se activa desde que se enciende hasta que se apaga el ordenador.
El programa:
-
controla y secuencia el trabajo
-
a esto se le llama, Monitor Residente (porque siempre estaba en memoria mientras está encendida)
El Monitor residente está formado por 40 partes, que son:
Cargador de programas
Secuenciador de programas: (Se inicia su ejecución) Secuencia trabajos, acabar un trabajo y coger el siguiente trabajo y para eso necesita el cargador de programas.
Intérprete de tarjetas de Control: (comandos) Había una serie de ordenes que se cogían de las tarjetas de control y seleccionaba las ordenes del S.O., este estaba en un lenguaje que se denomina JCL (Job Control Language). Las ordenes tenía una sintaxis que lo diferenciaba de otras ordenes para saber si era una orden de control (Ej.: $JOB, $ZOAD,//RUN,...) (Para dar ordenes se pone $ delante de la orden)
Drivers: Controladores de dispositivos
Tarjeta por instrucción:
Nuevo trabajo
Fin del trabajo
Ejecuta el programa
Carga el programa
Programa en Fortran
Lenguaje
Tarjeta Perforada: tiene 80 columnas y varias líneas la 1ª posición eran letras.
-
Off-line (1970)
Interponen dispositivos más rápidos y uno más lento.
Con la secuencia de ordenes de trabajo es muy lento y surgieron las unidades de cinta porque trabajan más rápido.
Las unidades de cinta sustituyen a las tarjetas perforadas, así que intentaron aislarlas.
Pequeño Procesador
Dispositivos: Unidad de Cinta
De tarjeta perforada se pasaban a Unidad de Cinta
De Unidad de Cinta a C.P.U. a Unidad de Cinta, se sacaba y se ponía a imprimir en el monitor. Se han de cambiar, la Unidad de Cinta, a mano.
-
Buffering
Trata igual que el offline, aísla los dispositivos más lentos de la CPU para poder tratar. (manual).
Con la aparición de memorias intermedias (Buffers) e interpone estas memorias entre la CPU y los dispositivos. Se interponen memorias entre la CPU y los dispositivos de entrada y salida. (Se escriben en memoria)
Mientras se está ejecutando un programa en la CPU, sigue ejecutándose mientras introduces registros comprueba que no está lleno el buffering se comprueba que está correcto y la unidad de cinta comunica que ya a terminado la entrada del registro y manda a la unidad de cinta que se introduzca otro registro.
El Buffering se ejecuta gracias a las memorias intermedias y las
Ventajas del Buffering respecto al off-line
Hay tres posibles casos:
-
La CPU procesa es más rápida que la unidad de cinta colocando registros en el buffer la CPU debe esperar.
-
Los dos van a la par, programa intensivo de cálculos. La CPU va a la misma velocidad en colocar los datos como entrada de datos CPU = Unidad de Cinta.
-
Que la unidad de cinta es más rápida colocando registros en el buffer que la CPU procesándolos La CPU no espera, la unidad de cinta si espera.
El buffering siempre tiene que ser mejor que el off-line porque nos interesa entrar datos y aprovechar más la CPU que la Unidad de Cinta, tiene que aprovechar más el tiempo que la off-line.
Como va el dispositivo de interrupciones
Vector Conjunto de posiciones consecutivas donde se guarda la información del mismo tipo y donde cada posición ocupan lo mismo.
Vector de interrupciones direcciones de memoria y que ocupan 32 bits. Son subprogramas o subrutinas que se pararan cuando haya una rutina de servicio o interrupción.
El número de interrupciones nos indica lo que hay en cada posición. La @ Rutina Servicio Interrupción, será la primera instrucción o donde empieza el dispositivo de interrupción
Un vector de enteros ocupa siempre dos bytes en cada posición. Cuando se produce se indica que dispositivo.
Cuando se ejecuta el programa y ha mediado del programa hay una interrupción con los dispositivos de entrada y se va al vector de interrupción para saber que dispositivo hace la entrada o salida de la interrupción con la @RSI (Dirección de Rutina de Servicio de Interrupción).
Vector de INT:
-
Utilizando operaciones fijas de memoria. No permite rutinas Multinivel o rutinas encadenadas (una detrás de otra)
A mitad del programa obtendremos otra interrupción, entonces la que hace es mirar el vector de interrupciones la dirección de RSI y entonces se guardan los registros, en vez de guardarlos en el estado del programa este desaparece y se guarda en ERSI-2 por eso no sirve la rutina multinivel.
-
Permite realizar operaciones de alto nivel pero no otras operaciones: tampoco sirve.
Vector de estados
RSI_1 RSI_2 RSI_1 P
Este sistema no permite Rutinas Reentrantes porque en la segunda llamada los estados se machacaran. Si no entran dos interrupciones de los mismo, por ejemplo de rutinas reentrantes por teclado primero una y luego y luego otra.
-
Para Rutinas de Alto Nivel
Sale la última que se ha puesto. Última en entrar primera en salir.
-
Pila del Sistema para Rutinas Reentrantes
Pila de datos, está en memoria RAM. Si funciona es capaz de borrar los registros al volver a usarse sin machacar valores.
El buffering para dispositivos lentos (Unidad de cinta, disco duro,...) va bien..........
Pero para los dispositivos rápidos tendría más interrupciones y no podrá realizar otras operaciones como puede hacer en los dispositivos lentos.
Libro Controlador de interrupciones de 1 a 7
-
Spooling
(Operaciones Simultanea con Operaciones en Línea)
Simultaneous
Peripheral
Operation
On-Line
Todos los trabajos o entradas entran por la CPU pasan al disco duro, vuelven a la CPU la procesa y vuelve al disco duro y sale por los dispositivos de salida.
Job-pool Cola de trabajos. Hay de dos tipos:
-
Job-pool de entrada
-
Job-pool de salida
Ej: La cola de impresión de Windons, es un Job-pool de salida
Nos permite tener trabajos en cola, puede haber tres trabajos en proceso.
Siempre se le puede dar a la CPU para que las procese.
El Spooling es posible por la aparición del disco duro.
Con el spooling los dispositivos son más lentos que la CPU.
-
Multiprogramación
Batch
Con el spooling no se ocupaba-.----
Ejecuta varios programas a la vez.
Se creía que había dos tipos de programas:
-
Limitados por la CPU la mayor parte de su tiempo se está ejecutando la CPU.
. |
-
Limitados por operaciones de entrada y salida La mayor parte de su tiempo está grabando en disco, pidiendo información al usuario, etc,...
Había un tiempo de inactividad.
Programas que la mayor parte del tiempo esda de E/S y no se utilizaba la CPU, entonces en esos momentos que no se utilizaba la CPU se realizaban otros trabajos.
Por lotes o en Batch Cuando al procesador le sobra tiempo
¿Qué programas se pueden ejecutar cuando sobra tiempo? La compilación.
Con la aparición de la Multiprogramación genera problemas y hay que tomar medidas:
-
Gestionar la memoria: hay que proteger el área de cada programa había que gestionarla
-
Gestionar el procesador: se tendría que ejecutar los programas y hay que ejecutar varios programas.
-
Gestionar o proteger los dispositivos: porque se puede dar que dos programas quieran acceder al mismo dispositivo a la vez.
Time Sharing o Multiprogramación de tiempo compartido
-
Ejecutar diferentes programas por diferentes usuarios. (se hace a través del intérprete de comandos)
-
Hay una CPU para coordinar cada uno de los usuarios, sólo preguntará a los ordenadores que están abiertos. Le va interrogando a cada uno de los terminales
-
Les pregunta si tiene alguna cosa a ejecutar. Si tiene vuelve a la CPU a ejecutarla sino pasa a la siguiente terminal.
-
El traspaso de ordenes de los usuarios o terminales a la CPU va por el interprete de comandos.
Los ordenadores que trabajan con este sistema. Ej : AS/400
Polling El hecho de la interrogación secuencial se llama así, polling. Y no sólo se utiliza exclusivamente con este sistema. Sería una interrogación insistente.
Características de sistemas multiprogramable de tiempo compartido.
-
Atiende a varios usuarios a la vez, sistemas conversacionales.
-
Ofrecen tiempos de respuestas bastante cortos
-
Utilizan técnicas de buffering y spooling
-
Y gestionan la memoria virtual
-
Tiempo real
El objetivo: se persigue dar tiempo de respuesta, (es un parámetro crítico) más cortos.
Sistemas de tiempo real. Hay de dos tipos:
-
Blandos: no garantizan cual va ser el tiempo de respuesta. Será el mínimo posible. Ej: Windows NT
-
Duros:
-
Se garantiza el tiempo de respuesta
-
Sistemas a medida, pensados para procesos industriales autómatas.
En los dos sistemas:
-
La información está siempre da actualizada.
-
El S.O. permanece inactivo para dar un tiempo de respuesta rápido.
-
Estos sistemas realizan un manejo sencillo de las interrupciones y las prioridades (en la ejecución de programas)
Utilizan técnicas de memoria virtual (sólo la utilizan los blandos) y en caso de los duros no la utilizan porque no puede ejecutar más cosas a la vez de lo que dispone en memoria virtual.
-
Proceso Distribuido (Etapas o tipo de Sistemas de explotación)
Ya se a conseguido ocupar el proceso de la CPU ahora lo que interesa es que vaya más rápido.
Lo que quiere conseguir es la ejecución de programas en un tiempo compartido. (Ordenadores conextados en red de alta velocidad y cooperan en la realización de una tarea)
Son en ordenadores conectados en red y con compartición de tareas.
-
Multiproceso
Una máquina con varios procesadores los cuales se reparten una tarea a realizar, pueden ser una consola, trabajan con varios procesadores a la red. Un ordenador la orden a los otros.
Fotocopias 2 y 1
Libro Libro Naranja.
12
PROGRAMADOR
(lo piensa)
CODIFICADOR
(lo escribía de papel a tarjetas perforadas)
OPERADOR
(para que le dé los resultados al programador, los prueba
RTDOS
OK
NO OK
Se lo devuelve por si lo tiene que retocar
Se lo dan al programador para que lo retoquen
Listado de la memoria
Aplicación de la C.P.U.
LECTOR
CPU
D
A
D
D
NOM
------------
------------
------------
------------
$JOB 124
$END
-- --- DATOS
$RUN
$LOAD
-----------------
$FORTRAN
$JOB 123
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 80 | |||||||||||
A | B | C | D | E | F | ||||||||||||||
N | |||||||||||||||||||
$ | |||||||||||||||||||
R | |||||||||||||||||||
U | |||||||||||||||||||
P
P
P
@RSI_1 PROGRAMA
- guardan los registros
INT(1) | |||
- volcar los registros guardados
P
P
C.P.U
C.P.U
@RSI_1 PROGRAMA
- guardan los registros
INT(2) | INT(1) | ||
- volcar los registros guardados
@RSI_2
- guardan los registros
- volcar los registros guardados
Programas
CPU
Programas
CPU
1 reg
INT(1)
INT(1)
1 reg
1 | 2 | 3 | 4 |
@memoria de 32 bits
@Rutina de Servicio de Interrupción
@RSI_1
@RSI_2
@RSI_3
Sin vector de estados
Con vector de estados
E.P.
E.RSI_1
EP | ERSI_1 | ERSI_2 | |||||||||
@RSI_2 PROGRAMA
- guardan los registros
INT(2) | |||
- volcar los registros guardados
EP1 | ||||||
1 | 2 | 3 | 4 |
PROGRAMA
@RSI_3 | @RSI_1 | @RSI_2 | ||||
g | g | g | ||||
INT(2) | ||||||
v | v | v |
ERSI_1 |
ERSI_2 |
E.P. |
ERSI_2|| |
ERSI_2| |
E.P. |
PROGRAMA
@RSI_2 | ||||
g | ||||
Int(2) | ||||
INT(2) | ||||
Int(2) | ||||
v |
CPU
Job-pool de E/ Donde van a parar los dispositivos
Job-pool de S/
T3
T2
T1
. | . | . |
Ahora hace un volcado
2ª llamada
1ª llamada
. | . | . |
. |
| . |
|
|
. | . |
| . |
|
T1
T2
T3
T1 | T2 | T3 |
CPU
Sólo hay monitor y teclado
Trabaja No trabaja
Disco Duro
M
P
M
P
M
P
P
P
P
P
Descargar
Enviado por: | Tatyana |
Idioma: | castellano |
País: | España |