Sistemas Operativos: Introducción

Multitarea. Aministración de memoria. KERNEL. Entrada Salida

  • Enviado por: Edu
  • Idioma: castellano
  • País: España España
  • 28 páginas

publicidad


1. CONCEPTO DE SISTEMA OPERATIVO.

Para que el hardware o parte material de un ordenador pueda funcionar, es necesario tener un conjunto de normas y órdenes para coordinar todos los procesos que se realicen. Este conjunto recibe la denominación de software o parte inmaterial del sistema. Todo el conjunto de programas que conforman el software puede ser dividido en dos grupos bien diferenciados:

1.- SOFTWARE BÁSICO O DE SISTEMA.

Conjunto de programas imprescindibles para el funcionamiento del sistema.

2.- SOTWARE DE APLICACIÓN.

Conjunto de programas que van a ser utilizados por el usuario para realizar una deter­minada tarea.

El Software Básico es el que constituye el Sistema Operativo.

Existen muchas otras definiciones del concepto de Sistema Operativo, de entre las que se deduce la siguiente:

`Sistema Operativo es un conjunto de programas que controlan los programas de los usuarios (cargándolos, ejecutándolos, etc.) y los dispositivos de entrada/salida (repartiéndolos entre varios usuarios), y que tiene por objeto facilitar el uso de la computadora y conseguir que ésta se utilice eficientemente.'

Dicho de otra forma, un sistema Operativo es un conjunto de programas que controlan permanentemente todos los recursos del sistema y que tienen por objeto minimizar el tiempo de respuesta de la computadora y maximizar su rendimiento. Así, el sistema operativo hace asignaciones en memoria, controla las operaciones de E/S, maneja errores, coordina la comunicación entre el usuario y el sistema, etc.

Por otra parte, una computadora es una máquina que posee un conjunto de elementos denominados recursos, que deben ser racionalmente distribuidos y uti­­­lizados, para obtener de ellos el mejor rendimiento. Estos recursos son los siguientes:

  • El procesador. Es el lugar donde se ejecutan las instrucciones y por tanto, el encargado de controlar los programas y su secuenciamiento.

  • La memoria interna. Es donde se almacenan todos los datos e instrucciones que se desean procesar.

  • La entrada/salida. Son las operaciones de transmisión de datos entre las unidades periféricas al ordenador y su memoria o viceversa (entrada/salida).

  • La información. Son los datos que manipula el ordenador.

Así, desde el punto de vista del control de los recursos de una computadora, un Sistema Operativo es el administrador de los recursos ofrecidos por el hardware para alcanzar un eficaz rendimiento de los mismos.

Para que el hardware o parte material de un ordenador pueda funcionar, es necesario tener un conjunto de normas y órdenes para coordinar todos los procesos que se realicen. Este conjunto recibe la denominación de software o parte inmaterial del sistema. Todo el conjunto de programas que conforman el software puede ser dividido en dos grupos bien diferenciados:

2. EVOLUCIÓN HISTÓRICA DE LOS SISTEMAS OPERATIVOS.

2.1.Primera generación (1945 - 1955)

En esta época no existían los sistemas operativos. Utilización de la tecnología de las válvulas o tubos de vacío que hacían que los ordenadores fuesen enormes. El usuario tenía que hacer todos los programas en código binario. Las máquinas eran de un enorme coste.

2.2.Segunda generación (1955 - 1965)

Aparecen los transistores que hacen que las máquinas se reduzcan de tamaño, facilitando la creación de los sistemas operativos. Aparecen los lenguajes de bajo nivel (assembler) y el lenguaje JCL. En esta época se estandariza el código para una mayor divulgación. Aparece un “embrión” de programa, dando lugar al IOCS (sistema de control de entrada/salida).

Aparecen los lenguajes de alto nivel que tenían que cargar un compilador que convertía el lenguaje en assembler (ensamblador) de la máquina en la que se compilaba.

Se crean dos estados del S.O.:

  • El estado Superusuario: que permite ejecutar las instrucciones sin pararse a valorarlas (las instrucciones que sólo se pueden ejecutar de este modo se llaman privilegiadas.

  • Estado Usuario: Se restringe el uso de las instrucciones.

  • necesitamos una orden privilegiada que sólo se puede dar en modo Superusuario; para esto está el gestor de interrupciones:

  • Interrupciones Hardware

  • Interrupciones Software

  • Comienzan a aparecer más periféricos como las unidades de cinta magnética y una mejora notable de las impresoras.

    Aparecen los buffer que son memorias intermedias donde pasa la información, el dispositivo leerá del buffer, eliminando así el dispositivo off-line.

    2.3. Tercera generación (1965 - 1980)

    Había ordenadores especializados para multitud de cosas concretas, IBM resolvió este problema y creó un software compatible para ordenadores de propósito general. Creó las familias de ordenadores; la primera fue la 360, luego la 370, la 4330, la 3080 y la 3090. La 360 utiliza los circuitos integrados LSI (Large Scale Integration).

    Aparece la escalabilidad, que es la posibilidad de ampliar en un momento determinado las funciones de un sistema.

    Aparece la multiprogramación

    Aparecen también las unidades de disco. Ahora se utiliza el disco para realizar la función del buffer. Este disco se llama spool y sólo lo utilizaba el sistema operativo.

    Aparecen los sistemas de tiempo compartido que suponían volver a interactuar con el sistema.

    Aparecen los sistemas de tiempo real que funcionan mediante una serie de sensores que tienen una respuesta inmediata.

    2.4. Cuarta generación (1980- 1990)

    Se utilizan circuitos integrados VLSI (Very Large Scale Integration) con una enorme potencia. Aparecen los microprocesadores que son el fundamento de los ordenadores. Son como las antiguas estaciones de trabajo, pero ahora a nivel personal. Aparecen grandes desarrollos:

  • Conectividad que permite una gran libertad de comunicación pero hace que aparezcan problemas en la Seguridad.

  • Tb. aparecen dos tipos de SSOO:

    Los de Red, en los que elijo implícitamente que quiero hacer.

    Los Distribuidos, que son transparentes para el usuario.

  • Concepto de Máquina Virtual

  • Uso de Sistemas de Gestión de Bases de datos

  • 3. TÉCNICAS HARDWARE UTILIZADAS POR EL S.O

  • Interrupciones

  • En un ordenador existen muchos dispositivos conectados al bus, y por medio de este al microprocesador. El microprocesador puede recibir datos o enviar datos a los periféricos (excepto la memoria y el propio micro) por medio de los puertos de entrada y salida.

    Cuando algún dispositivo como el teclado requiere que el microprocesador lo atienda (por ej: la pulsación de una tecla, y es necesario almacenar la pulsación en un buffer, antes de que se pulse otra y se pierda la pulsación actual), genera una interrupción hardware para notificar al microprocesador. En realidad el teclado envía una señal a un chipo denominado 8259 PIC(Programmable Interruption Controller, Controlador de interrupciones programable), y este es el que envía la señal de interrupción al micro.

    El resultado es que el micro recibe una señal por la patilla INTR (INTeRrupt, Interrumpir) y un código por los ocho bits de menor peso del bus de datos, que identifica al dispositivo

    El objetivo fundamental de las operaciones de e/s es el de transferir datos desde el interior del ordenador (un reg de la UCP o una determinada posición de la memoria principal) a un dispositivo exterior (pantalla, disco, etc).

    Para ello será necesario realizar 3 operaciones básicas:

  • Saber a qué dispositivo de E/S se desea acceder, por lo que será necesario identificar cada periférico mediante una dirección de E/S.

  • Determinar el estado actual de dicho dispositivo de E/S. Si una impresora esta encendida o apagada.

  • Indicar la función de E/S que se desea que realice el periférico.

  • De forma general, la estructura de un dispositivo de E/S es la que se muestra en la fig. 1

    Podemos apreciar la existencia de 3 elementos:

  • Interface. Es la parte del dispositivo que se encarga de gestionar el intercambio de información entre el dispositivo periférico y la UCP. Reconoce si la dirección del dispositivo al que quiere acceder la UCP es la del dispositivo de E/S al que está asociada, reconoce también de qué tipo de operación de E/S se trata, se encarga de almacenar temporalmente los datos de E/S y de dar cuenta del estado del dispositivo de E/S a la UCP.

  • Controlador. Es el que gestiona directamente el dispositivo periférico. Por ejemplo, en un disco se encarga de generar las órdenes de movimiento de la cabeza de lectura-escritura. En una pantalla se encarga de controlar la circuitería de vídeo, etc.

  • Perífericos. Entendemos por éste al dispositivo de E/S propiamente dicho: el sistema de cabezas de lectura-escritura y motor de giro en un dispositivo de disco, o la circuitería de vídeo y la pantalla en una consola.

  • La realización de una operación de E/S responde a la ejecución por el procesador de una instrucción de E/S. El efecto de dicha instrucción, e incluso su formato dependen de la organización física de la E/S.

    Aunque son muchas las variantes que existen en los equipos reales, mencionar sólo dos:

    -Organización en bús único

    -Organización en bus dedicado de entrada salida.

    Para provocar una operación de entrada/salida se pueden definir 3 procedimientos básicos:

    1.- E/S controlada por programa.

    Todo ordenador posee un repertorio de instrucciones que es capaz de ejecutar, constituyendo lo que se conoce como el lenguaje máquina del ordenador.

    El algoritmo de solución de cualquier problema consiste en realizar una serie de pasos en una secuencia específica. Para implantar tal algoritmo en el ordenador, hay que descomponer estos pasos en pasos más pequeños, cada uno de los cuales representa una instrucción del ordenador. La secuencia de instrucciones resultante es un programa en lenguaje máquina, que representa el algoritmo en cuestión.

    Dentro de este conjunto de instrucciones hay algunas relativas a entrada/salida.

    El formato de dichas instrucciones de e/s esta formado por 3 campos:

  • Código de operación (CO). El contenido de los bits de este campo indica al procesador que se trata de una operación de E/S.

  • 2. Código de orden (COR). El contenido de este campo indica el tipo de operación de E/S a realizar. Distinguiremos fundamentalmente cuatro tipos de operaciones:

    • Operaciones de entrada de datos

    • Operaciones de salida de datos

    • Operaciones de control (situar la cabeza de lectura/escritura de un disco en un determinado sector de una determinada pista.

    • Operaciones de prueba de estado. (Comprueba si el periférico está preparado para aceptar información)

    La ejecución desde la UCP de una instrucción de este tipo desencadena la transferencia de una palabra de datos entre el ordenador y el periférico mediante una operación de E/S.

    Resumiendo: cuando se quiere realizar una operación de E/S desde o hacia un dispositivo periférico, el programa pregunta el estado del mismo, para ver si se puede realizar la transferencia. Si esta es posible, se realiza; en caso contrario, se espera en un bucle, comprobando constantemente el estado del dispositivo, hasta que se puede realizar la operación de E/S. El principal inconveniente es que en dispositivos de E/S de fuerte demanda (discos), lo habitual es que haya que esperar para poder realizar la transferencia, y durante ese tiempo la UCP no está haciendo trabajo útil.

  • E/S controlada por interrupciones.

  • La idea base es que la CPU pueda seguir trabajando mientras el periférico se prepara para recibir o aceptar otro dato..

    Este es un mecanismo más sofisticado en el que el propio periférico es el que solicita el inicio de una operación de transferencia de E/S. Cuando el periférico se encuentra en disposición de realizar una trasferencia se lo indica a la UCP mediante una señal de control denominada “solicitud de interrupción”, que es la que contiene la orden concreta de realizar la transferencia de E/S. Una vez efectuada la transferencia elemental, la UCP continúa el programa en curso por la instrucción que lo suspendió, hasta que se produzca una nueva interrupción.

  • E/S por acceso directo a memoria (DMA).

  • Hay dispositivos periféricos de alta velocidad que necesitan transferir grandes bloques de datos hacia y desde la unidad de memoria del computador. El empleo de la E/S, controlada por programa es, en el mejor de los casos, altamente ineficiente.

    En estos casos es preciso liberar a la UCP de las tareas de E/S, incluyendo el control de transferencia, lo que se consigue con una interface especial denominada de acceso directo a memoria (Direct Memory Access) que es capaz de realizar las mismas operaciones que hace la UCP en relación con la lectura/escritura en memoria.

    Cuando se tiene que efectuar una transferencia de un bloque de datos, la UCP informa a la interface de DMA del origen en memoria a partir del cual se comenzará la transferencia y del tamaño total del bloque de datos a transferir, y se desentiende de la operación, que entra a ser responsabilidad directa de la interface.

    4. ADMINISTRACION DE LA C.P.U. MULTIPORGRAMACION, MULTITAREA O MULTITASKING.

    Las grandes computadoras, las minicomputadoras y las computadoras personales están trabajando con técnicas de proceso avanzado, como la multiprogramación, el tiempo compartido, tratamiento o proceso paralelo . . .

    Todas estas técnicas hacen que la computadora manifieste mucha mas potencia al operar y sobre todo permiten que se pueda ejecutar varios programas de forma concurrente.

    4.1. Multiprogramacion CLASICA.

    Se trata de un sistema operativo que permite que un mismo procesador este ejecutando a la vez dos procesos diferentes sobre un mismo procesador. En realidad no se ejecutan varias tareas a la vez, lo que ocurre que al ser la velocidad del microprocesador mayor que la del periferico de entrada y salida de datos, reparte el tiempo libre que le queda en la realizacion de otras actividades.

    Ejemplo: UN SISTEMA OPERATIVO CON MULTIPROGRAMACION.

    • Comparación con un salón de peluquería.

    Cada una de las peluqueras seria la unidad central de proceso (C.P.U), atienden a los clientes y cuando una de estas está en el secador por ejemplo, tienen tiempo a atender a otra cliente y así sucesivamente. La encargada de la peluquería seria el sistema operativo y decidiría el orden por el que se atenderá a los clientes, repondría material cuando fuese necesario, etc.

    4.2. Tratamiento Paralelo.

    Una vía que se esta explorando activamente es el ordenador de proceso paralelo, que emplea muchos chips para realizar varias tareas diferentes al mismo tiempo. El proceso paralelo podría llegar a reproducir hasta cierto punto las complejas funciones de realimentación, aproximación y evaluación que caracteriza al ser humano.

    Otra forma de proceso paralelo que se esta investigando es el uso de computadoras moleculares en estas computadoras, los símbolos lógicos se expresan por unidades químicas de ADN en vez de por el flujo de electrones, estas podrían llegar a resolver problemas complicados mucho mas rápidamente que las actuales supercomputadoras y consumir mucho menos energía.

    4.3 Tiempo COMPARTIDO

    Un sistema que trabaja de esta forma cuando el procesador reparte sus tiempo atendiendo las instrucciones de diversos programas para que estos se realicen de forma simultanea. Así, si hay que ejecutar diez programas, la CPU ejecutara el primer programa durante dos segundos ( por ejemplo ); una vez agotado el tiempo, interrumpirá la ejecución del primer programa e iniciara la ejecución del segundo programa durante otros dos segundos y así sucesivamente hasta llegar a la ejecución del décimo programa, momento que, una vez finalizada su ejecución, volverá a empezar con el primer programa.

    NOTA: Esta técnica varia sustancialmente de la multiprogramación ya que la técnica de tiempo compartido fija un tiempo de CPU para cada programa, mientras que la multiprogramación, el tiempo puede ser variable según las entradas y salidas que tengan los procesos con los periféricos de E/S.

    Con las técnicas un sistema operativo consigue ejecutar varios trabajos simultáneamente y como consecuencia, aumentar sus potencia.

    5. ADMINISTRACION DE LA MEMORIA

    5.1 Particiones estáticas

    La memoria se divide cierto numero de particiones cada una de las cuales contendrá un proceso el tamaño de cada partición es determinado por el operador o por el S.O cada partición contiene la posición base, su longitud y el estado de la partición (ocupada o no), El planificador de trabajo una vez que una partición esta libre hace que se introduzca el programa de máxima prioridad que haya en la cola de espera y que queda en dicha posición.

    Sistemas Operativos: Introducción

    Sistemas Operativos: Introducción

  • Particiones dinámicas

  • Los programas son introducidos por el S.O inicialmente en posiciones consecutivas de memoria no existiendo por tanto particiones predefinidas. El S.O gestiona el espacio de memoria usando dos tablas:

  • tabla de trabajos, en la que cada línea contenga la identificación del trabajo en el espacio que ocupa y la dirección base:

  • Tabla de fragmentos libres, es la que consulta el planificador de trabajos cuando se introduce un proceso en memoria, en ella se especifica la longitud del hueco o del fragmento libre y las posiciones físicas que lo limita.

  • Al iniciarse la sección de trabajo y consulta este ultimo tipo de tabla, se cargan los programas a ejecutar ocupando posiciones consecutivas en memoria a ir acabando de ejecutarse los programas se van creando espacios libre entre un proceso y otro con lo que se desaprovecha la memoria. Para evitar este problema las particiones dinámicas hace una compactación que consiste en agrupar todos los fragmentos cuando termina la ejecución de un programa.

    La compactación se efectúa cambiando de sitio o reubicando los programas en ejecución.

    Sistemas Operativos: Introducción

    5.3 Paginación

    Esto de que los procesos tengan que usar un espacio contiguo de la memoria es un impedimento serio para optimizar el uso de la memoria. Idea: que las direcciones lógicas sean contiguas, pero que no necesariamente correspondan a direcciones físicas contiguas. O sea, dividir la memoria física en bloques de tamaño fijo, llamados marcos (frames), y dividir la memoria lógica (la que los procesos ven) en bloques del mismo tamaño llamados páginas.

    Con este procedimiento la memoria principal se estructura en bloques de longitud fija llamados marcos de página. Cada bloque se identifica con un numero correlativo así mismo los programas de los usuarios se divide en zonas consecutivas denominadas paginas. La capacidad de las páginas y los bloques son coincidentes. Un proceso puede ejecutarse si su página actual está en memoria principal. El fundamento de la paginación reside en que no es necesario que un programa se almacene en posiciones consecutivas de memoria. La paginación se almacena en bloques libres independientemente de que estén o no continuos. Cada bloque contiene instrucciones consecutivas. Una instrucción del programa se localiza dando el bloque de memoria y la dirección dentro del bloque.

    5.4 Segmentación

    Cuando se usa paginación, el sistema divide la memoria para poder administrarla, no para facilitarle la vida al programador. La vista lógica que el programador tiene de la memoria no tiene nada que ver con la vista física que el sistema tiene de ella. El sistema ve un sólo gran arreglo dividido en páginas, pero el programador piensa en términos de un conjunto de subrutinas y estructuras de datos, a las cuales se refiere por su nombre: la función, sin importar la ubicación en memoria, y si acaso una está antes o después que la otra.

    La segmentación es una forma de administrar la memoria que permite que el usuario vea la memoria como una colección de segmentos, cada uno de los cuales tiene un nombre y un tamaño (que, además, puede variar dinámicamente). Las direcciones lógicas se especifican como un par (segmento, desplazamiento).

    La segmentación es una variación de la paginación, ya que los bloques do de longitud variable y son mas difíciles de tratar La segmentación es un esquema de administración de la memoria que soporta la visión que el usuario tiene de la misma. Un espacio de direcciones lógicas es una colección de segmentos. Cada segmento tiene un nombre y una longitud.

    Ventajas:

    • Al usuario se le simplifica el manejo de estructuras de datos de tamaño dinámico.

    • Se facilita el que los procesos compartan memoria.

    • Los segmentos pueden estar protegidos según la semántica de su contenido. Por ejemplo, un segmento que contiene código, puede especificarse como sólo para ejecución (y nadie puede copiarlo ni sobrescribirlo); un arreglo puede especificarse como read/write but not execute. Esto facilita enormemente la detección de errores en el código.

    • Librerías compartidas de enlace dinámico (DLLs).

    Pero la memoria sigue siendo, físicamente, un sólo arreglo de bytes, que debe contener los segmentos de todos los procesos. A medida que se van creando y eliminando procesos, se va a ir produciendo, inevitablemente fragmentación externa.

    Si consideramos cada proceso como un sólo gran segmento, tenemos el mismo caso que el de las particiones variables. Como cada proceso tiene varios segmentos, puede que el problema de la partición externa se reduzca, pues ya no necesitamos espacio contiguo para todo el proceso, sino que sólo para cada segmento. Para eliminar completamente el problema de la fragmentación interna, se puede usar una combinación de segmentación y paginación, en la que los segmentos se paginan.

    6. ADMINISTRACIÓN DE ENTRADAS/SALIDAS.

    6.1 GESTION DE ARCHIVOS

    Un archivo es una colección de unidades de información (registros) relacionadas.

    Por ejemplo, una factura es un registro y un conjunto de completo de estos registros constituye un archivo.

    La gestión de un archivo se refiere al almacenaje y recuperación de la información confiada al sistema, de forma semejante a una biblioteca.

    Las funciones básicas de un archivo son:

    1. Llevar control de la información dentro de un sistema mediante varias tablas. La principal representa el directorio de archivos. Contienen el nombre, localización y derechos de acceso a la dentro del sistema.

    2. Decidir la política para determinar como y donde se reserva la información y quien tiene acceso a ella.

  • Escoger el periférico que contiene la información. Encontrar y hacer posible el acceso

  • del proceso a la información deseada, determinando los derechos propios de acceso.

    4. Designar el recurso. Si se han efectuado todas las operaciones correspondientes se puede actualizar el archivo original, y hacer posible uso de esa información.

    Los módulos de la gestión de archivos se conocen como sistemas de archivos. Cada nivel sigue las técnicas de programación estructurada. Se pretende que el sistema de archivo proporcione la gestión conveniente, el programador queda liberado de almacenaje y asignación de espacio para la información y accesos de E/S. Un objetivo del sistema de archivos es permitir al programador preocuparse solo por su estructura lógica.

    6.2. Dispositivos de E/S Virtuales (SPOOL).

    En un sistema SPOOL, el procesador principal realiza operaciones periféricas simultáneas en línea [Simultaneous Peripheral Operations On Line (SPOOL)].

    Vamos a analizar los sistemas de SPOOL desde el punto de vista de la gestión de dispositivos, pero también están relacionados con las gestiones de memoria, del procesador y de archivos. Debido a que los programas de SPOOL han de ejecutarse en cualquier momento, es necesario que se incorporen al área de memoria del sistema operativo.

    En un sistema de SPOOL no se lee físicamente la tarjeta ni se imprime la línea en el momento de ocurrir la llamada, sino que se utilizan los DASD.

    Vamos a hablar de la función de entrada de SPOOL porque la salida se maneja de forma semejante.

    El SPOOL de entrada ha de realizar las siguientes funciones:

    • Leer físicamente todas las tarjetas de un trabajo y reservarlas en un DASD.

    • Proporcionar acceso al DASD al trabajo durante la ejecución para conseguir tarjeta de entrada.

    Esto ocurre, cuando se trata de tarjetas lectoras, si se trata de terminales interactivos, se asigna a cada terminal una zona de DASD.

    Una determinada área del SPOOL puede no estar utilizada en cuyo caso está disponible para su utilización. Las zonas que no estén disponibles pueden estar en cualquiera de los siguientes estados:

    • Entrada. Todavía se está leyendo el programa.

    • Retención. Se ha copiado completamente el programa al DASD, pero no está en ejecución.

    • Ejecución. El programa está en ejecución, se están leyendo líneas de programa o datos desde el área del SPOOL.

    Además de la tabla de entrada de la SPOOL, hay dos tablas de entradas suplementarias:

    • La tabla lectora, que mantiene información relativa al estado de cada lector físico de tarjetas y al área correspondiente del SPOOL de entrada empleada.

    • La tabla de trabajos, mantiene información relativa al estado de todos los trabajos, que mantiene información relativa al estado de todos los trabajos que están corriendo actualmente y el área correspondiente de SPOOL que se está usando como dispositivo virtual.

    6.3 GESTOR DE E/S.

    El gestor de E/S es el que se encarga de todas las operaciones de E/S. El gestor de la información localiza el dispositivo físico y la dirección de un fichero de datos al que un

    Programa ha hecho referencia, y pasa esta información al gestor de E/S, que realiza a

    continuación las funciones reales de E/S, estableciendo para cada operación concreta de.

    E/S la correspondiente indicación de canal (chanel word) adecuada, y diciéndole al canal de datos o al procesador de E/S que comience esta operación. La indicación de canal es un bloque de información que esta en la memoria central y que indica cual es el dispositivo externo que ha de transmitir o recibir él número de palabras que ha de transferir, las posiciones de memoria en la que hay que colocar los datos, o de las que hay que tomarlos, o que es lo que hay que hacer cuando acabe la operación de E/S.

    Si se hace una petición a un dispositivo ocupado el procesador de E/S pone la petición a la cola, respetando el orden de llegada.

    El gestor mantiene unas tablas las unidades lógicas a las unidades físicas asignadas por el programa. También se mantiene una tabla con todos los recursos de E/S del sistema para poder mostrar la dirección física, el estado, la unidad lógica asignada, el canal de datos y el proceso asignado. El gestor de E/S examina y actualiza esta tabla a la vez que va realizando asignaciones y operaciones de E/S.

    El final de una operación de E/S se indica mediante una interrupción.

    Una operación de E/S se inicia mediante la siguiente secuencia de LLAMADA

    • Llamada al gestor de E/S (posición inicial).

    • Leer escribir.

    • Numero de palabras.

    • Numero de unidad lógica.

    • Dirección del buffers.

    • Donde se devuelve el control cuando se acabe la E/S.

    La primera sentencia es una instrucción LLAMADA dirigida a la correspondiente dirección de memoria de la rutina del gestor de E/S. Las posiciones de memoria indican de operación E/S se trata de una de lectura o de una de escritura.

    Las demás posiciones de la rutina indican los demás parámetros de E/S, como él número de palabras o de bytes que hay que transferir, él numero de unidad lógica del dispositivo, la operación que hay que llevar a cabo, la dirección de memoria o la dirección de buffers en donde están los datos que hay que leer o que hay que almacenar, y una indicación de donde hay que transferir el control una que se haya completado la operación de E/S.

    7. ESTRUCTURA DE UN SISTEMA OPERATIVO

    7.1 Programas de control

    Los programas de control son una parte del S.O y están dedicados a coordinar el funcionamiento de los elementos de la computadora, o sea la CPU, los procesadores de E/S y los periféricos.

    Están específicamente desarrollados para que ayuden a la computadora sea cual sea la modalidad en que trabaje: monoprogramación, multiprogramación, tiempo real, tiempo compartido, etc..

    A) Programa cargador inicial, bootstrap o boot.

    Su misión es transferir los programas ejecutables de usuario desde la memoria externa a la memoria central de la computadora a partir de una determinada dirección de memoria, por medio de un programa denominado cargador inicial

    B) Programas de gestión de sistemas. Supervisor.

    Este grupo de programas es el verdadero motor del S.O ya que se encarga de la coordinación y supervisión del funcionamiento del resto de los programas, por ello se le denomina `Supervisor `. Sus funciones o cometidos son los siguientes:

    - Protección de memoria: cuando en la memoria central se encuentran almacenados varios programas (es lo que se llama multiprogramación), es necesario fijar unas fronteras de separación de memoria, para que ante posibles errores de direccionamiento, sea imposible tomar información de un programa para que sea procesado por otro. Esta misión la realizan los `programas de protección de memoria '.

    - Errores en la memoria: cuando se detecta que cierta información de la memoria no es correcta ( se debe a algún defecto físico del hardware ó a alguna transmisión errónea), se activa un grupo de programas para averiguar dónde se produjo el error y reenviar nuevamente el dato, corrigiendo el error sobre la marcha.

    - Errores de programas: cuando la unidad de control, al analizar una instrucción (código de operación y operando), no reconoce la operación que debe realizar o la ubicación donde se encuentran los datos, diagnostica un error, cediendo el control a este grupo de programas que se encargaran de cancelar el programa del usuario y enviar los mensajes al operador para informarle sobre las características del error encontrado.

    C) Programas de Gestión de Datos. IOCS.

    Estos programas son los que controlan y coordinan todas aquellas operaciones relativas al movimiento de datos en la computadora, como pueden ser la de transparencia, tratamiento o manejo de archivos. Realizan las siguientes funciones:

    - Control de Periféricos: esta función la realiza un procesador (P10, Procesador E/S), que cuando recibe una petición de E/S comprueba si el periférico está desocupado; realiza la conexión y luego pasa el control al programa que se está ejecutando para que se inicie la operación de E/S. Cuando el periférico está ocupado, coloca la petición en cola para que sea atendida por turno cuando la corresponda.

    - Control de la Transparencia de la información: la transparencia de información se realiza de dos formas:

    - En modo múltiplex (octeto a octeto).

    - En ráfagas de bloques (palabra a palabra, doble palabra a doble palabra).

    Es necesario aplicar un control de integridad de la información en este tipo de operaciones. Este control consiste en comprobar que el total de caracteres transferidos en cada bloque coincide con el especificado previamente según las características físicas de los soportes que se van a utilizar.

    Cuando no existe coincidencia, tomo el control un programa de corrección o recuperación de caracteres que informa al operador sobre las particularidades de la anomalía y/o cancela el programa que se estaba ejecutando.

    - Tratamiento de cada bloque de información: cuando un bloque de información se almacena en la memoria central, interviene un programa del sistema operativo que se encarga de descomponer cada bloque físico de información en las unidades lógicas definidas en el programa, que son las que van a ser procesadas (normalmente a través de la ALU).

    Cuando se presenta la operación de extraer información de la memoria central, el mismo programa se encarga de agrupar estas informaciones, formando el bloque físico para que pueda ser transferido al periférico correspondiente.

    - Apertura y cierre de archivo: un archivo se conecta a un programa en el momento en que se abre (generalmente con la sentencia open), quedando desde ese momento asignado automáticamente al mismo mediante una vía o canal de datos. Esta vía se mantiene activa hasta que el archivo se cierra, bien por el programa que lo estaba ejecutando o por el propio sistema operativo.

    - Acceso a los archivos: existen diversas maneras de acceder a un archivo: Secuencialmente, al azar, etc...

    Este grupo de programas se encarga de transformar las direcciones lógicas que figuran en el programa en ejecución, en las correspondientes direcciones físicas sobre el soporte donde están o van a ser grabados los datos.

    D) Programa de gestión de trabajo. Monitor o Job control.

    Son los encargados de la preparación de los programas de usuario para su ejecución o relanzamiento, así cómo de la asignación de periféricos. Sus funciones son las siguientes:

    Preparación de programas: transfiere los programas del usuario desde la biblioteca imagen de memoria a la memoria central de la computadora a partir de una determinada dirección y por medio de un programa que se denomina `cargador `.

    Asignación de periféricos: en un programa nunca se especifica el periférico concreto que se va a utilizar, sino que solicita una impresora, un disco,... Este grupo de programas de asignación transforma las asignaciones simbólicas, en las asignaciones físicas y concretas de cada periférico.

    Almacenamiento de identificativos de archivos: existen unos identificativos internos que son unos bloques de información especial que van grabados al comienzo de cada archivo para dar información sobre el mismo. Estos programas de almacenamiento de identificativos son los encargados de identificar y controlar los archivos del usuario a través de estos bloques de información.

    Relanzamiento de programas: hay veces, que durante la ejecución de un programa, se produce interrupciones fortuitas que causan la parada del proceso que se estaba ejecutando.

    Este grupo de programas se encarga de establecer un punto de control en el momento de la interrupción para que se pueda reproducir el estado que tenía el proceso en el momento de la parada. Para ello, se establece el posicionamiento de cada archivo en el punto de trabajo en que estaba, los valores de cada registro, el valor del aumentador, etc... hasta conseguir el mismo estado en el que estaba la ejecución del programa en el momento de la interrupción. Una vez solucionada la causa de la parada se pone en funcionamiento nuevamente el proceso.

    E) Programas de gestión de memoria.

    Su misión es la de asignar, y controlar el almacenamiento en la memoria interna y externa de la computadora.

    - Gestión de la memoria central: existen multitud de métodos de asignación de memoria central o interna según se trate de un sistema operativo monoprogramado o multiprogramado. Los programas que controlan y gestionan la memoria interna asignan espacios que deben ocupar los programas y los datos estableciendo zonas de seguridad para que no se produzcan colisiones.

    - Gestión de memoria secundaria: tienen como misión hacer ver al usuario el tratamiento de la información almacenada en la memoria externa, desde el punto de vista lógico, ocultándole la realidad física. Un sistema puede mantener en un mismo instante un gran número de procesos, por ello será necesario la existencia de una serie de programas en el sistema operativo que nos aseguren el correcto funcionamiento del almacenamiento secundario.

    PROGRAMAS DE PROCESO

    7.2. Programas de Proceso

    Los programas de proceso están enfocados preferentemente para ayudar al programador en la puesta a punto de los programas, llegando incluso a proporcionarle pseudoprogramas estándares semiescritos, que completados con unas pocas instrucciones más, quedan perfectamente listos para su ejecución.

    Todo sistema operativo posee en su entorno un conjunto de programas para este fin.

    Existen 3 tipos de programas de proceso: Los programas traductores, los programas de servicio y los programas de aplicaciones.

    PROGRAMAS TRADUCTORES

    Los programas traductores son metaprogramas que toman como entrada un programa escrito en lenguaje simbólico alejado de la máquina denominado programa fuente y proporcionan como salida otro programa equivalente escrito en un lenguaje comprensible por el hardware de la computadora denominado programa objeto. En algunos casos, un programa objeto necesita antes de su ejecución una pequeña preparación y la inclusión de rutinas del propio lenguaje. Esta preparación la realiza un programa que complementa al traductor, denominado montador, produciéndose finalmente un programa listo para ser ejecutado que se denomina programa ejecutable. Podemos ver el esquema general del proceso de traducción de un programa fuente a un programa ejecutable.

    Existen tres tipos de programas traductores: los ensambladores, los compiladores y los interpretes.

    • Programas Ensambladores:

    Son programas traductores que transforman programas fuente escritos en lenguajes simbólicos de bajo nivel (denominados lenguajes ensambladores o assemblers), en programas objeto, escritos en lenguaje máquina y ejecutables directamente por el hardware de la computadora. La traducción del programa de usuario se efectúa de forma que cada instrucción en lenguaje fuente se transforma en una única instrucción en lenguaje objeto. Se puede decir que el lenguaje ensamblador es una simplificación simbólica del lenguaje máquina y el programa ensamblador es su traductor. Actualmente existen varios tipos de ensambladores: ensamblador cruzado (cross assembler), macroensamblador (macroassembler), microensamblador (microassembler) y ensambladores de una o más pasadas.

    • Programas Compiladores:

    Son programas traductores encargados de transformar programas fuente escritos en lenguaje simbólico de alto nivel, en programas objeto escritos en lenguaje máquina. La traducción no suele ser directa, apareciendo un paso intermedio situado en un nivel similar al del ensamblador. Una característica fundamental de este tipo de traductores es que se realiza la traducción completa, y en el caso de no existir errores se pasa a la creación del programa objeto. La traducción del programa fuente se efectúa, además, de forma que cada instrucción del programa se transforma en una o más instrucciones en el programa objeto.

    • Programas Intérpretes:

    Son programas traductores que transforman programas fuente escritos en lenguaje de alto nivel en programas objeto escritos en lenguaje máquina. En estos programas intérpretes la traducción se realiza de forma que después de transformar una instrucción del programa fuente en una o varias instrucciones en lenguaje máquina no esperan a traducir la siguiente instrucción, sino que inmediatamente la ejecutan.

    PROGRAMAS DE SERVICIO

    Los programas de servicio son un grupo de programas que realizan funciones útiles para el sistema o para el usuario (denominadas comúnmente utilidades o utilities).

    Teniendo en cuenta el campo de actuación de los programas de servicio, se pueden clasificar en dos grupos:

    • Programas de Manipulación de Datos:

    Son aquellos que liberan al programador de trabajos engorrosos, ya que realizan de forma automática alguna de las siguientes funciones:

    • Transferencia de informaciones o archivos entre soportes.

    • Recodificación (transcodificación) o transformación de informaciones.

    • Reorganización de la información en archivos.

    • Ordenación de datos en archivos.

    • Programas de Servicio del Sistema:

    Tienen como misión la generación del sistema operativo completo sobre la computadora, la preparación de los programas y la creación y mantenimiento de las bibliotecas de programas.

    PROGRAMAS DE APLICACIONES

    Son las tareas que puede realizar un ordenador junto con un determinado programa de aplicación. Son herramientas de software.

    Proceso de textos:

    Lo realizan los procesadores de textos, un procesador de texto crea, edita, almacena e imprime documentos. Es capaz de borrar, insertar y reemplazar textos, también permite alinear, subrayar, numerar páginas, comprobar ortografía, etc. Algunos ejemplos de procesadores de texto son: Ami Pro, Word, WordPerfect , etc.

    Hoja de cálculo:

    Una hoja de cálculo nos permite presentar en pantalla datos, analizarlos y hacer operaciones con ellos, los datos se disponen en forma de tabla ocupando filas y columnas. Ej.: Excel, Lotus1 2 3, Hoja de cálculo de Word.

    Programas de gráficos:

    Nos permiten representar los resultados de un cálculo de formas distintas para mejor comprensión, análisis y presentación. Los gráficos que pueden obtenerse son de tres clases:

  • Gráficos analíticos: en los que la información se obtiene en forma de líneas, barras, círculos, etc.

  • Gráficos de presentación: Utilizados en la comunicación con fines publicitarios y de márquetin. Son dibujos, títulos, etc.

  • Programas de dibujo: Sirven de ayuda profesional a diseñadores, dibujantes, artistas, etc. Para la creación de publicaciones, folletos. Ej.: Freelance, Haward Graphics, Power Point, etc.

    • Gestores de base de datos:

    Una base de datos es un programa empleado para almacenar, diseñar y estructurar datos. Con una base de datos se pueden clasificar estos según los criterios y necesidades del usuario. Ej: Acces, Dbase, Base de datos de Word.


    - Comunicaciones:

    El Software de comunicaciones posibilita a los usuarios conectarse con los recursos u ordenadores de otros usuarios. Así es posible el acceso a grandes bases de datos, a enciclopedias, a correo electrónico, a compartir impresoras. Entre los paquetes más comunes de comunicación están Smartcom, Crosstalk, Comunicaciones de Word.

    8. TIPOS DE SISTEMAS OPERATIVOS

    Con el objetivo de encontrar el máximo rendimiento para la CPU surgieron el off-line, el buffering y el spooling(que ya habremos dado). Este última solución(recordamos) era un conjunto de trabajos cargados en memoria, lo que se denominaba Job Spool, pero en este caso ya no se aplicaba el FIFO.

    El S.O tiene dos propósitos básicos:

    • Facilitar el entorno adecuado para el desarrollo y ejecución de programas.

    • Planificar el uso de los recursos para obtener unas buenas prestaciones del sistema.

    Con esta pequeña introducción pasamos ya a ver los diversos grupos con los que podemos clasificar los S.O, por lo que respecta a la relación usuario-ordeanador:

  • Sistemas BATCH, aprovechan al 100% la CPU, bueno económicamente pero con una desventaja grande e importante, la falta de interactividad. Monoprogramación.

  • Sistema Interactivo pero en este tipo de S.O no se aprovecha la CPU totalmente.

  • Sistema de Tiempo Compartido, existe la interactividad, la multiprogramación, la planificación de la CPU, es decir se recojen los factores positivos de los otros sistemas.

  • Sistema de Tiempo Real son los sistemas que controlan algún proceso, continuamente hay sensores que dan información de cómo se encuentra la CPU.

  • 1. 2.

    LECTORA CPU IMPRESORA CPU TERMINAL

  • 4

  • CPU CPU

    Antes hemos hablado de lo positivo de los sistemas de tiempo compartido, de la multiprogramación. Pero como en todas las cosas y más en la informática, la multiprogramación también aporta algún problema como por ejemplo, si antes se producía un error solamente afectaba al programa ejecutado en aquel instante, pero en cambio ahora puede afectar a todos los programas en proceso (supongo que quien haya utilizado Windows me entenderá, cuando sale la pantalla azul o el típico Detalles). Para que esto no suceda y el Hard detecte los errores de programa existe tres tipos de protección

    (protección de E/S, protección de memoria y protección de CPU)

    El ordenador debe permitir al S.O tener el control del sistema pero no al usuario por lo tanto tiene que diferenciar los dos casos: modo usuario y modo supervisor. Cada rutina que llega al ordenador diferenciará con un bit adicional (1, para el Modo Supervisor y 0, para el usuario)

    El S.O ofrece unos servicios específicos y otros comunes, los específicos son cuatro:

    • Ejecución de programas, ha de ser capaz de cargar y ejecutar un programa en memoria.

    • Operaciones de E/S, debe de facilitar los medios para poder utilizar la E/S de los programas.

    • Manipulación de los sistemas de ficheros, debe de poder crear, eliminar, reubicar y localizar, bueno a parte de leer y escribir.

    • Detección y tratamiento de Errores, ya sean Hard, de dispositivo. de E/S o Overflow (error en el programa de usuario que se está ejecutando).

    Otros servicios secundarios serían, la asignación de recursos, las funciones de contabilidad y la protección.

    Otra clasificación con la que se determina los diversos S.O es según a quién ofrece servicios:

    • al usuario

    • al propio sistema

    El S.O ofrece al usuario dos tipos de servicios:

    • Llamadas del sistema, son rutinas o miniprogramas que están escritas en lenguaje ensamblador, estos son: el control de procesos y trabajos, la manipulación de dispositivos y ficheros, y el mantenimiento de información.

    • Programas de sistema, son una serie de programas para solucionar algunos problemas concretos. Algunos de estos programas son: información del estado del ordenador, soporte al lenguaje de programación o por ejemplo la carga o ejecución de programas.

    Desde el punto de vista del propio S.O hay que decir que el S.O es un programa controlado por interrupciones, ya que está controlado por acontecimientos externos. Cuando de produce una interrupción, el Hard da el control al S.O y este determina de que tipo de interrupción se trata y hace una cosa o otra.

  • Llamadas a sistema

  • Interrupciones de los dispositivos de E y S.

  • Errores de programa. Cuando se producen el programa en ejecución suele acabar de forma anormal y se produce un mensaje de error.

  • 9. SISTEMAS OPERATIVOS COMERCIALIZADOS.

    En este punto haremos un repaso por los distintos sistemas operativos, se nombrarán los que a mí entender son los más importantes.

    CP/M. Comienza su desarrollado Intel y después fue terminado y comercializado por la flamante compañía Digital Research. Este sistema operativo es monousuario e independiente del hardware, basado en microprocesadores de 8 bits (Intel 8080, 8085 y Z-80), tubo gran cantidad de programas disponibles para él, al hacerse muy famoso, como inconveniente, de cara al usuario poco experto, era su difícil aprendizaje.

    Versiones a destacar:

    • CP/M-80. Multiusuario en equipos de 8 bits.

    • CP/M-86. Multitarea y monousuario en equipos de 16 bits.

    • CP/M-K. Destinada al microprocesador 68000 de Motorola.

    PICK. Desarrollado por Don Nelson y Dick Pick, para microprocesadores 68000 de Motorola. Luego sería utilizado por IBM en XT e IBM 4300. Se trata de un S.O potente, muy rápido y eficaz en la gestión de bases de datos, así como fácil de utilizar.

    OASIS. Creado por la firma norteamericana Phase One para el microprocesador de 8 bits Z-80 A. Hoy es apto tanto para ordenadores de 8 como de 16 bits en desarrollo mono y multiusuario, es un S.O muy fácil de utilizar que ofrece buenas prestaciones.

    MS-DOS. (Microsoft Disk Operating System) es un sistema monousuario y monotarea creado para la gama de computadoras personales que en 1.981 lanzó IBM (International Busines Machines) como el primer operativo para microprocesadores de 16 bits. Posteriormente fue instalado en una gran gama de marcas y modelos de computadoras compatibles en cierta medida con la de IBM. El sistema operativo MS-DOS es la interfaz que permite al usuario de una computadora personal acceder al hardware, ejecutar programas y sacar rendimiento a un equipo capaz de realizar una gran variedad de trabajos. Se hizo muy popular en su época, con gran variedad de versiones a lo largo de su vida, actualmente se encuentra en desuso.

    OS/2. Introducido en 1.987 para equipos 286 al reconocer IBM y Microsoft la necesidad de explotar las posibilidades de multitarea de la nueva CPU y aplicar un entorno gráfico fácil y agradable para el usuario. Aunque por diferencia de opiniones y desconfianza de IBM hacia Microsoft, que ya estaba desarrollando su Windows, la sociedad no prosperó, pero IBM siguió con el proyecto, hasta llegar a ofrecer su OS/2, sistema operativo multitarea y monousuario compatible con MS-DOS. OS/2 gestiona excelentemente, a su nivel, la memoria virtual y, para obtener mayor rapidez de proceso trabaja sobre la base de un procesador para cada usuario, que al incorporarse a una red local simula operar como multiusuario. Dispone de un entorno gráfico agradable, pero pese a todo, la aceptación del público no fue la esperada, quizás por la falta de aplicaciones para el mismo.

    SISTEMA 7. Desarrollado por Apple para su equipo Macintosh, con el que se proporciona al usuario una solución de trabajo completa y de fácil manejo, este S.O trabaja sobre procesadores de 32 bits.

    UNIX. Desarrollado en los laboratorios Bell de AT&T por Dennis Ritchle y aparecido en el 1.984, siendo considerado desde un principio como el sistema operativo del futuro, sobre todo por los acuerdos alcanzados entre su fabricante e IBM. Se trata de un sistema multitarea y multiusuario escrito íntegramente en el lenguaje de programación C lo cual lo hace de fácil lectura y explotación en distintos tipos de equipos, desde PCs hasta supercomputadoras Cray, por ello su uso está reservado prácticamente a las máquinas más potentes dentro de la gama de equipos medios bajos, con gran capacidad de memoria y velocidad de tratamiento. Su explotación a través de menús es algo complicada, por lo que sólo suele ser manejado por profesionales. Una variante de este S.O es el denominado XENIX, pensado para el microprocesador 386, siendo las últimas versiones de éste compatibles con su homólogo Unix.

    LINUX. Una variante del UNIX iniciado por Linus Thorvald, finlandés y desarrollado por una activa comunidad de programadores alrededor del mundo que colaboran a través de Internet. Además de ser un S.O bastante robusto y confiable, Linux tiene la particularidad de ser parte del Free Software Movement (movimiento del software libre), por lo que es gratis y su código es abierto, es decir que se puede modificar y redistribuirlo de nuevo. Lo que se ha convertido en el Sistema Operativo preferido por los programadores. Además es multitarea, multiproceso y multiusuario, como inconveniente temporal, decir que es un poco difícil su manejo para usuarios poco avanzados, pero digo temporal porque poco a poco se van creando entornos gráficos programados para evitar esto, como Mandrake, Debian, Gnome, etc. Estamos ante uno de los S.O del futuro, su auge en los últimos años ha dado que pensar a Microsoft, dado que en estabilidad, velocidad, fiabilidad y precio no tiene rival alguno en nuestros días.

    WINDOWS NT. Aprovechando la experiencia obtenida en la creación del OS/2, Microsoft lanza este S.O multitarea y monousuario de 32 bits, totalmente compatible con las aplicaciones desarrolladas en MS-DOS y Windows. Microsoft amplia su actividad a estaciones de trabajo, redes y bases de datos. Su gran facilidad de uso y su potencia hacen que se pueda pensar en uno de los grandes S.O del futuro, junto a Linux.

    WINDOWS 95/98. Producto estrella de la firma Microsoft, salido al mercado en septiembre del 1.995 con el afán de dominar el mundo de la microinformática al aplicar un entorno gráfico sencillo, siguiendo la corriente de la marca en los últimos años, además es un verdadero sistema operativo multitarea.

    MAC OS 8.x. La más importante actualización del sistema, sus ventajas son su rapidez, y la capacidad para trabajar con tecnologías multimedia, además grandes y nuevas herramientas para navegar por Internet, está diseñado para poder utilizarse en todos los modelos de 68040 y los Power PC compatibles, este S.O es monousuario y multitarea.

    10. SEGURIDAD EN LOS SISTEMAS OPERATIVOS

    • Seguridad Externa.

    La seguridad externa trata de asegurar que los recursos estén protegidos, esto es, que no se acceda a ellos sin permiso. Es, pues, una seguridad contra agentes externos. Se tiende a proteger el elemento más importante: la información.

    • Seguridad Interna o Lógica.

    En el ordenador se tienen posibilidades de conexión y éstas deben ser controladas. Los mecanismos de control que configuran la llamada seguridad interna o lógica son:

  • Control de Usuarios

  • Denominado también conexión o nivel de acceso, sólo permite conectarse a usuarios que están registrados.

    Es un software interno del sistema operativo que lee el usuario (user name) y su clave (password), controlando si existe o no para permitirle o no el acceso. Mientras no se está dado de alta no se permite la conexión.

    Un segundo nivel de seguridad es permitir un máximo de repeticiones de `user name' y `password'. Es decir, una limitación de intentos. Cuando el número de intentos se ha cumplido se revoca el usuario, no se le permite el acceso y se le da de baja temporal hasta que se actualice.

    En cualquier caso, estos sistemas de seguridad crean un estado de privilegio, admitiendo sólo ciertas operaciones. Así se restringen los derechos de cada usuario.

  • Protección de los Recursos.

  • La protección a seguir para cada uno de los recursos sería:

    • PROCESADOR. Mediante un reloj interno se evita que un programa acapare la CPU.

    • MEMORIA. Mediante registros frontera que consiguen que un programa no se meta en áreas de memoria de otro programa o del sistema.

    • PERIFÉRICOS. La operación es exclusiva del sistema operativo que lo hace mediante drivers, evitando que se puedan leer dos programas de un disco Simultáneamente.

    • Requisitos de seguridad en los Ficheros.

    Existen dos conceptos importantes para ficheros:

  • DISPONIBILIDAD DE FICHEROS.

  • Deben adaptarse las copias de seguridad que se efectúan de los ficheros (back-up) con los períodos de actualización de los mismos. Por ejemplo, si se dispone de un fichero que se actualiza cada siete días, sus copias de seguridad deberán realizarse con igual periodicidad para asegurar la correcta recuperación del fichero.

    Si esta situación, la alteración de los datos contenidos en los ficheros, se da en modo interactivo, como ocurre en los bancos con los movimientos de las cuentas corrientes de sus clientes, deben crearse ficheros históricos que graben todas las operaciones de actualización que se van registrando para poner al día todos los datos a partir de estas informaciones en caso de error.

    Las instalaciones suelen reservar unas horas diarias para realizar estos trabajos a los que se denominan procesos BATCH.

  • PRIVACIDAD DE FICHEROS.

  • Trata de asegurar que la información de los ficheros esté restringida a ciertos usuarios.

    Se basa en la existencia de ficheros y derechos sobre cada fichero que forman un conjunto denominado dominios. Cada usuario trabaja en uno de estos dominios determinado.

    • Seguridad en la Transmisión de Datos.

    Para evitar que la información sea fácilmente accesible se plantean técnicas de criptografía.

    La información manejada en un terminal de una línea se codifica de forma criptográfica y se envía al sistema central. El emisor convierte la información mediante un algoritmo que también conoce el receptor con la finalidad de que lo decodifique.

    Asimismo, para simplificar el trabajo y ahorrar memoria se opta por la compactación de los datos.

    • Sistemas tolerantes a fallos.

    Los sistemas tolerantes a fallos son aquellos sistemas que permiten la recuperación de la información en caso de que se produzcan fallos. Dicha información no quedará afectada por el fallo. La solución suele ser duplicar recursos (CPU, memoria o discos).

    Las operaciones se hacen simultáneamente sobre el recurso duplicado. De esta manera, si falta algo de hardware, la información del `duplicado correcto' no se verá afectada.

    En ocasiones se crea una doble CPU para que, si falla una de ellas, se pueda seguir trabajando en el sistema con la que continúa funcionando de forma correcta.

    Estas duplicaciones necesitan la gestión de sistemas operativos más complejos.

    ANEXO. COMPLEMENTO AL TEMA.

    1. ESTADOS DE UN PROCESO O PROGRAMA

    Un proceso, desde el punto de vista de su ejecución, puede estar en una de las siguientes situaciones o estados:

    • ESTADO LISTO o EJECUTABLE -> Cuando se encuentra en memoria principal, sin operaciones de E/S pendientes, y listo para entrar (o continuar) en ejecución, en el instante que el despachador le asigne la CPU.

    • ESTADO DE EJECUCIÓN O ACTIVO -> Corresponde al programa que en ese momento está siendo atendido por la UCP. Un proceso activo sale del estado de ejecución, en un sistema de tiempo compartido, cuando:

    • Se le acaba su turno o quantum, pasando entonces a estado listo.

    • Se inicia una operación de entrada/salida en cuyo caso pasa a la situación de BLOQUEADO. Del estado de bloqueado pasa al de listo cuando acaba la operación de E/s.

    • ESTADO DE INTERCAMBIO o TRANSVASADO -> Es el correspondiente al de los programas que han sido pasados temporalmente a disco. En este estado se puede entrar desde el estado de bloqueado.

    • ESTADO DE RETENIDO EN COLA -> Son los que se encuentran en estado de espera de ejecución en un archivo-cola.

    • PROGRAMAS RESIDENTES o NO INTERCAMBIABLES -> son programas lo suficientemente importantes para el sistema como para que su residencia en memoria principal se haga obligatoria.

    2. MÓDULOS QUE CONTIENE UN SISTEMA OPERATIVO.

    Existen sistemas operativos muy diversos, siendo unos más complejos que otros. Es decir, no todo sistema operativo tiene la totalidad de los módulos analizados; hay sistemas operativos de monoprogramación o multiprogramación, con o sin memoria virtual, con o sin dispositivos de E/S virtuales, etc.

    Los módulos y funciones más importantes de un sistema operativo de una computadora de tipo medio o grande son los que se indican a continuación:

    • Cargador Inicial, Cebador o BOOT­STRAP.

    Programa grabado en memoria ROM que tiene como misión cargar desde disco o cinta un programa cargador que a su vez pasa de memoria de almacenamiento masivo a RAM los distintos módulos del sistema operativo.

    • NÚCLEO o KERNEL.

    Es la parte del sistema operativo que realiza, entre otras, las siguientes funciones:

    • Planificación o asignación de la CPU (despachador).

    • Gestión de interrupciones.

    • Comunicación y encadenación entre procesos.

    • ADMINISTRADOR DE LA MEMORIA CENTRAL.

    Parte del sistema operativo que se encarga de funciones tales como compactación de memoria, paginación, segmentación, intercambiabilidad, gestión de memoria virtual y protección de memoria evitando que un usuario pueda invadir inesperadamente el espacio de memoria asignado a otros.

    • ADMINISTRADOR DE PERIFÉRICOS Y DE E/S.

    Gestiona los dispositivos de entrada/salida de forma virtual e incluye rutinas de entrada/salida y gestores de periféricos para facilitar el uso de los mismos.

    • ADMINISTRADOR DE ARCHIVOS.

    Se encarga de administrar y mantener adecuadamente archivos y directorios en unidades de memoria masiva auxiliar.

    • INTÉRPRETE DE LAS ÓRDENES DEL LENGUAJE DE CONTROL.

    Es un proceso que se encarga de realizar el diálogo con los usuarios. Analizar las órdenes del lenguaje de control y lanzar a ejecución el módulo o programa de servicio correspondiente (compilador, montador, etc.).

    PLANIFICADOR DE TRABAJOS.

    Selecciona los trabajos de la cola.

    Simoltaneous Peripheral Operation On Line.

    Software de un Sistema Informático. 2

    Software de un Sistema Informático. 28

    PROCESADOR

    INTERFACE

    CONTROLADOR

    PERIFÉRICO

    Figura. 1. Estructura de un dispositivo genérico de E/S.

    SOFTWARE DE UN SISTEMA INFORMÁTICO

    1. Concepto de Sistema Operativo.

    2. Evolución Histórica de los Sistemas Operativos.

    3. Técnicas Hardware utilizadas por el S.O.:

  • Interrupciones.

  • Unidades de Procesamiento o de Control de Entrada/Salida.

  • 4. Administración de la CPU. Multiprogramación. Multitarea o Multitasking.

    1 Multiprogramación CLÁSICA.

    2 Tratamiento PARALELO.

    3 Tiempo COMPARTIDO (Time Sharing).

    5. Administración de la Memoria:

    • Particiones Estáticas.

    • Particiones Dinámicas.

    • Paginación.

    • Segmentación.

    • Apoyo de la Memoria Principal en la Memoria Auxiliar:

    • Intercambiabilidad Memoria Principal/Disco (“Swapping”).

    • Gestión por Capas (“Overlays”).

    • Memoria Virtual.

    6. Administración de Entradas/Salidas:

    • Gestores de E/S.

    • Dispositivos de E/S Virtuales (SPOOL).

    • Gestor de Archivos.

    7. Estructura General de un Sistema Operativo:

    7.1. PROGRAMAS DE CONTROL.

    a) P. Cargador Inicial, bootstrap o boot.

    b) P. De Gestión del Sistema. SUPERVISOR.

    c) P. De Gestión de Datos. IOCS.

    d) P. De Gestión de Trabajos. MONITOR o JOB CONTROL.

    e) P. De Gestión de Memoria.

    7.2. PROGRAMAS DE PROCESO.

    a) Traductores. (Ensambladores /Compiladores/Intérpretes).

    b) P. De Servicio o de Utilidad.

  • P. De Aplicaciones.

  • 8. Tipos de Sistemas Operativos:

    • Monoprogramación.

    • Multiprogramación.

    • Tiempo Compartido.

    • Multiproceso.

    • Tiempo Real.

    9. Sistemas Operativos Comercializados.

    10. Seguridad en los Sistemas Operativos.

    ANEXO. Complemento al Tema:

    1. Estados de un Proceso o Programa.

    2. Módulos que contiene un S.O.:

    - Cargador Inicial. - Núcleo o Kernel. - Administrador de la Memoria.

    - Administrador de -Administrador de - Planificador de Trabajos.

    Periféricos y de E/S. Archivos.