Sistema operativo

Informática. Computación. Software. Sistemas Operativos. Funciones. Buffering

  • Enviado por: Tatyana
  • Idioma: castellano
  • País: España España
  • 13 páginas
publicidad
publicidad

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:

    • Se libre los recursos de un proceso

    • Se libera los 2 recursos de los 2 procesos

    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