Story Transcript
Funcionamiento de la computadora La computadora es una maquina destinada a procesar datos. Este procesamiento involucra dos flujos de información: el de datos y el de instrucciones. Se parte del flujo de datos que han de ser procesados. Este flujo de datos es tratado mediante un flujo de instrucciones, generado por la ejecución de un programa, y produce el flujo de resultado. Para realizar esto, la computadora consta de uno o más CPU’s y de una serie de controladoras de dispositivos conectadas a través de un bus común que proporciona acceso a la memoria compartida. Antes de la ejecución del programa, este y sus respectivos datos deben cargarse en memoria, lo cual constituye una secuencia que la computadora realiza a una alta velocidad. Cada controladora de dispositivo se encarga de un tipo específico de dispositivo. La CPU y las controladoras de dispositivos pueden funcionar de forma concurrente, compitiendo por la memoria. Para asegurar el acceso ordenado a la memoria, se proporciona una controladora de memoria, cuya función es sincronizar el acceso a la misma. Para que la computadora empiece a funcionar, por ejemplo, cuando se inicia o enciende, es necesario que tenga un programa de inicio o arranque que ejecutar. Este programa de inicio o arranque se almacena en una memoria ROM y permite la inicialización de todos los aspectos del sistema. Además, debe saber como cargar el Sistema Operativo e iniciar su ejecución. Para conseguirlo el programa de inicio debe localizar y cargar en memoria el núcleo del Sistema Operativo. Después, el Sistema Operativo comienza ejecutando su primer proceso y espera a que se produzca algún suceso. Los sistemas operativos modernos están controlados por medio de Interrupciones. Si no hay ningún proceso que ejecutar, ningún dispositivo de E / S al que dar servicio y ningún usuario al que responder, el Sistema Operativo debe permanecer inactivo esperando a que algo ocurra. La ocurrencia de algún suceso normalmente se indica mediante una Interrupción, bien sea de Hardware o de Software. El Hardware puede activar una interrupción en cualquier instante enviando una señal a la CPU. El Software puede activar una interrupción, en este caso denominada Excepción, solicitando un servicio del Sistema Operativo a través de la ejecución de una operación denominada Llamadas al Sistema. Cuando se interrumpe a la CPU, deja lo que esta haciendo e inmediatamente transfiere la ejecución a una posición establecida, la cual posee la dirección de inicio de donde se encuentra la rutina que va a atender la interrupción. Esta rutina, también denominada Rutina de Servicio, se ejecuta, y cuando termina, la CPU reanuda la operación que estuviera haciendo. Además, la interrupción debe transferir el control a la rutina de servicio apropiada a dicha instrucción. Para ello: → Se convoca una rutina que examina la información de la interrupción. → Esta rutina se encarga luego de llamar a otra rutina que procesa a la interrupción como tal.
Estructura de Almacenamiento Cada sistema de almacenamiento proporciona las funciones básicas para guardar los datos y mantenerlos hasta que sean recuperados en un instante posterior. Las principales diferencias entre los distintos sistemas de almacenamiento están relacionadas con la velocidad, el coste, el tamaño y la velocidad. La amplia variedad de sistemas de almacenamiento en un sistema informático puede organizarse en una jerarquía según la velocidad y el coste. Los niveles superiores son caros pero rápidos, y generalmente están representados por memorias de tamaño relativamente reducido pero de alta velocidad para almacenar la información que se esta utilizando en un momento determinado. A medida que se desciende por la jerarquía, el coste disminuye mientras el tiempo de acceso a los datos almacenados aumenta. En este tipo de almacenamiento, podemos encontrar dispositivos como los discos, los cuales permiten altas cantidades de datos de forma permanente pero que son accedidos a baja velocidad. Además de diferenciarse en velocidad y en el coste, los distintos sistemas de almacenamiento pueden ser o no volátiles. Arquitectura de un Sistema Informático Un sistema informático puede clasificarse de varias maneras. Una de estas clasificaciones se refiere a la cantidad de procesadores de propósito general empleados:
→ Sistemas con un solo procesador: la mayor parte de los sistemas operativos usan un solo procesador. En un sistema de este tipo hay una CPU principal capaz de ejecutar un conjunto de instrucciones de propósito general. Muchos sistemas disponen de procesadores de propósito especial, como por ejemplo los encontrados en un disco o una tarjeta gráfica. Todos estos procesadores de propósito especial ejecutan con conjunto limitado de instrucciones y no ejecutan procesos de usuario. De esta forma se libera a la CPU principal del trabajo adicional de ejecutar las tareas de estos dispositivos.
→ Sistemas Multiprocesador: estos sistemas disponen de dos o más procesadores que se comparten el acceso a memoria y dispositivos periféricos. Cada uno de ellos puede ejecutar un programa, debiendo cada uno de ellos compartir el procesador. Estos presentan las siguientes ventajas:
•
Mayor rendimiento: al aumentar el número de procesadores es de esperar que se realice mas trabajo en menos tiempo. Cuando múltiples procesadores cooperan en una tarea, cierta carga de trabajo se emplea en conseguir que todas las partes funcionen correctamente. Esta carga de trabajo, mas la contienda por recursos compartidos, reducen la ganancia de añadir procesadores adicionales. De esta forma, la mejora en velocidad con N procesadores no es N, sino que es menor que N.
•
Economía de escala: estos sistemas pueden ser más baratos que los que tienen un solo procesador, ya que pueden compartir periféricos y almacenamiento. Si varios programas operan sobre el mismo conjunto de datos, es mas barato almacenar dichos datos en un disco y que todos los procesadores lo compartan, que tener muchas computadoras, cada una con un disco.
•
Mayor Fiabilidad: en muchas aplicaciones resulta crucial conseguir la máxima fiabilidad del sistema informático. La capacidad de continuar proporcionando servicio proporcionalmente al nivel de hardware sobreviviente se denomina Degradación Suave. Algunos sistemas van más allá de esto, y se denominan sistemas tolerantes a fallos, dado que pueden sufrir un fallo en cualquier componente y seguir operando. Para ello se requiere un mecanismo que permita detectar, diagnosticar y posiblemente corregir el fallo.
Los sistemas multiprocesador pueden ser de dos tipos:
Asimétrico: a cada procesador se le asigna una tarea específica. Un procesador maestro controla el sistema y el resto espera a que este dé instrucciones. Es decir, el procesador maestro planifica y asigna las tareas de los procesadores esclavos.
Simétrico: bajo este régimen los procesadores operan bajo las mismas condiciones. Operaciones del Sistema Operativo Operación en Modo Dual Para asegurar la correcta ejecución del Sistema Operativo, se debe distinguir entre dos niveles de ejecución:
→ Nivel de Usuario: en esta, la computadora solo ejecuta un subconjunto de las instrucciones maquina, quedando prohibidas las demás.
→ Nivel de Núcleo: es el más permisivo, ya que la computadora ejecuta todas sus instrucciones sin ninguna restricción. Cuando el sistema informático esta ejecutando una aplicación de usuario, el sistema se encuentra en modo usuario. Sin embargo, cuando una aplicación de usuario ejecuta un servicio del sistema Operativo, se debe pasar al nivel de Núcleo para atender la solicitud. Cuando se arranca el Sistema Operativo, el hardware se inicia en modo o Nivel de Núcleo. El Sistema Operativo se carga y se inicia las aplicaciones de usuario en el modo o Nivel de Usuario. Cuando se produce una excepción o interrupción e hardware conmuta del modo Usuario al modo Núcleo. En consecuencia, cuando el Sistema Operativo obtiene el control del computador, estará en modo núcleo. El sistema cambia a modo Usuario antes de pasar el control a un programa de usuario. Con el Modo Dual se busca proteger al Sistema Operativo de errores que pueden ser causados por el usuario. Esta protección se consigue designando a las instrucciones de maquina como privilegiadas para que se ejecuten solo en modo Núcleo.
Gestión de Procesos El componente principal de un sistema operativo es el que se encarga de la gestión de Procesos. El Proceso es el elemento central de un sistema Operativo, puesto que su función consiste en generar y gestionar los procesos y en atender sus peticiones. El proceso puede definirse como un programa en ejecución. De forma mas precisa, puede definirse como la unidad de procesamiento gestionada por el Sistema Operativo. No hay que confundir Programa con Proceso. Un programa es un conjunto de instrucciones mientras que el proceso surge cuando el programa esta en ejecución. El Sistema Operativo mantiene por cada proceso una serie de estructuras de información que permite identificar las características de este así como los recursos que tiene asignados. Además, debe encargarse de ofrecer una serie de actividades en lo que se refiere a la gestión de procesos: → Crear y borrar los procesos → Suspender y reanudar los procesos → Proporcionar mecanismos para:
→ La sincronización de procesos → La comunicación de procesos Dependiendo de la capacidad del sistema operativo para atender simultáneamente varios procesos y usuarios, podemos encontrar: → Sistemas Operativos Monotarea: solo permite que exista un proceso en cada instante → Sistemas Operativos Multitarea: permite que coexistan varios procesos a la vez. Para ello, el sistema operativo reparte el tiempo del procesador entra cada uno de ellos. → Sistemas Operativos Monousuario: permiten un solo usuario a la vez. → Sistemas Operativos Multiusuario: soporta varios usuarios trabajando simultáneamente desde varios terminales. A su vez, cada usuario puede tener activos mas de un proceso Gestión de Memoria La memoria principal es fundamental en la operación de un sistema informático. Ésta, se encuentra estructurada como una matriz de palabras o bytes cuyo tamaño se encuentra en el rango de cientos de miles a miles de millones de posiciones. Cada palabra o byte tiene su propia dirección. La memoria es un repositorio de datos rápidamente accesibles, accesibles por la CPU y los dispositivos de E / S. Como ya se ha mencionado anteriormente, para que un programa pueda ser ejecutado por la CPU, sus datos deben transferirse a la memoria principal. Una vez que terminado este proceso, se libera el espacio de memoria ocupado por dichos datos y se declara disponible para que el próximo programa pueda ser cargado y ejecutado. Para mejorar tanto la utilización de la CPU como la velocidad de respuesta de la computadora frente a los usuarios, las computadoras pueden mantener varios programas en memoria, lo que hace necesario
la creación de ciertos esquemas que permitan la correcta gestión de esta situación. La gestión de memoria se encarga entonces de: → Asignar memoria a los procesos.
→ Proporcionar memoria a los procesos cuando lo soliciten y liberarla cuando así lo requieran → Tratar los posibles errores de acceso a la memoria, evitando que unos procesos interfieran en la memoria de otros. → Controlar que partes de la memoria están actualmente en uso y por parte de quien. Gestión de Almacenamiento Para que el sistema informático sea cómodo para los usuarios, el sistema operativo proporciona una vista lógica y uniforme del sistema de almacenamiento de la información. El sistema operativo abstrae las propiedades físicas de los dispositivos de almacenamiento y define una unidad de almacenamiento lógico denominada Archivo. De esta forma, se ofrece al usuario una visión lógica compuesta por una serie de objetos (archivos y directorios) identificables por un nombre lógico sobre los que se puede realizar una serie de operaciones, y una visión física que ha de incluir los detalles de cómo están almacenados estos objetos en los periféricos correspondientes, Los archivos son entonces, una colección de información relacionada entre sí bajo un mismo nombre. Cada archivo tiene una información asociada que utilizan tanto los usuarios como el sistema operativo. Entre las informaciones mas usuales se pueden destacar las siguientes: → Tipo de archivo → Propietario del archivo: se refiere al identificador de usuario que creo el archivo. → Tamaño del archivo → Instantes importantes en la vida del archivo, tales como: → Instante en que se creo → Instante de la ultima modificación → Instante del ultimo acceso → Derechos de acceso al archivo (solo lectura, lectura – escritura, solo escritura) Gestión del Almacenamiento Masivo La memoria principal es demasiado pequeña para acomodar todos los datos y programas. Además, los datos que guarda se pierden al desconectar la alimentación. Por estas razones, un sistema informático debe proporcionar un almacenamiento secundario como apoyo a la memoria principal. El Sistema Operativo se encarga de las siguientes actividades en lo que se refiere al almacenamiento masivo: → Gestión del espacio libre → Asignación del espacio de almacenamiento → Planificación del dispositivo del almacenamiento masivo
Almacenamiento en Caché El almacenamiento en caché es una técnica importante de los sistemas informáticos. Normalmente la información se mantiene en algún sistema de almacenamiento, como por ejemplo la memoria principal. Cuando se usa, esta información se copia de forma temporal en un sistema de almacenamiento mas rápido, en este caso, la caché. Cuando se necesita una información en especifico primero se comprueba si esta en caché. Si lo está, se usa directamente dicha información de la caché; en caso contrario, se utiliza la información original, colocando una copia en la caché bajo la suposición de que será utilizada nuevamente. Protección y Seguridad Si un sistema informático tiene múltiples usuarios y permite la ejecución concurrente de múltiples procesos, entonces el acceso a los datos debe regularse. Para dicho propósito se emplean mecanismos que solo puedan utilizar los recursos aquellos procesos que hayan obtenido la apropiada autorización del sistema operativo. Por ejemplo, el hardware de direccionamiento de memoria asegura que un proceso se pueda ejecutar dentro de su propio espacio de memoria, el temporizador asegura que ningun proceso pueda obtener el control de la CPU sin después ceder el control. De esta forma se evidencia que la integridad de los distintos dispositivos de hardware esta protegida. Por tanto, protección es cualquier mecanismo que controle el acceso de procesos y usuarios a los recursos de un sistema informático. También se hace necesario garantizar la identidad de los usuarios y definir lo que cada uno de los puede hacer. El primer término se denomina Autenticación, y su objetivo es determinar que un usuario es quien dice ser. Para ello cada usuario contará con un identificador de usuario univoco y con el que podrá iniciar una sesión en el sistema. El segundo término se refiere a los Privilegios, los cuales especifican los recursos a los que puede acceder cada usuario. Estos privilegios, se basan en una lista que especifica los grupos y usuarios que pueden acceder a un recurso (Información por Recurso), o en la asociación de cada usuario a una lista de recursos a las que puede acceder (Información por Usuario)