lunes, 29 de noviembre de 2010

Unidad I, punto N°4


Llamadas al sistema

            Proveen una interfaz entre los procesos y el Sistema de Operación. Una llamada al sistema básicamente es la solicitud por parte de algún proceso hacia el Sistema operativo solicitando recursos para que pueda funcionar o realizar alguna tarea determinada. De ésta forma, el proceso avisa al sistema operativo para que sepa que necesita ser atendido, y así le asigne los recursos necesarios. Ésta es la única forma de acceder a recursos de hardware en S.O de multitarea.


Control de trabajos o procesos
            El sistema operativo controla todos los procesos mediante el BLOQUE DE CONTROL DE PROCESOS (PCB,  Process Control Block). Éste, es un registro y descriptor de los procesos. El PCB contiene la siguiente información sobre un proceso:
·         Identificador del proceso
·         El estado del proceso
·         Prioridad del proceso.
·         Estado hardware (contador de programa, códigos de condición, punteros de pila, etc.).
·         Espacio de direcciones de memoria.
·         Lista de recursos asignados (incluyendo descriptores de archivos y sockets abiertos).
·         Datos del propietario (owner).
·         Permisos asignados.
El sistema operativo mantiene listas de PCB para cada uno de los estados del sistema (preparado, activo, etc.). Cada proceso pertenece a una única lista. El planificador se encarga de gestionar el paso de los procesos de una lista a otra.
De ésta manera el S.O tiene el control e información de todos los procesos independientemente del estado en que estén.

Estructura de un sistema operativo

El sistema operativo está compuesto principalmente por 3 capas:

Las aplicaciones del usuario: Son todas las encargadas de satisfacer las necesidades del usuario. Las aplicaciones más comunes en la actualidad, trabajan con un nivel de abstracción muy alto, esto quiere decir que el usuario no requiere conocimientos de programación elevados. A estas alturas, casi la totalidad de los softwares trabajan con interfaz gráfica, que es interpretada por el Shell.

Shell: Muchas personas lo confunden con el Kernel, siendo cosas muy distintas. Es el interprete de ordenes del usuario, puede ser a través de una interfaz gráfica tipo Windows, GNU/Linux (KDE, Gnome y etc) y MacOSo, o con lineas de comandos tipo MSDOS. Una vez interpretadas las ordenes, el Shell se las envía al kernel.

Entorno de llamadas del sistema: Proveen una interfaz entre los procesos y el Sistema de Operación. Una llamada al sistema básicamente es la solicitud por parte de algún proceso hacia el Sistema operativo, solicitando recursos para que pueda funcionar o realizar alguna tarea determinada. Esta actividad es llevada a cavo por el Kernel.

El Kernel o núcleo: Es el corazón del SO, es el encargado de la comunicación entre el hardware y el software. Lleva a cavo la gestión de procesos, gestión de memoria y en él residen los controladores del hardware. Otra cosa fundamental, es que traduce las ordenes recibidas por el Shell que están en un alto nivel, a un nivel de máquina (baja abstracción). 


Maquina virtual

            Es una técnica que permite simular un sistema operativo dentro de otro primario o real. Lo bueno que tienen estas máquinas virtuales es que se puede instalar cualquier sistema operativo en ellas, incluso sistemas operativos diferentes al sistema operativo real. Ej: En mi PC tengo Windows XP como S.O real y a través de software simulo un S.O Linux para probar éste último. La maquina virtual también simula una bios, una memoria, conexiones de red, puertos, discos duros, etc.


Manipulación de archivos

Una de las principales funciones de un Sistema Operativo es la administración del almacenamiento de información, para lo cual es necesario contar con un “Sistema de Archivos”. Esto se refiere a cómo el sistema operativo organiza la información en medios físicos tales como discos y diskettes (aspecto físico del sistema de archivos), y la visión que es ofrecida al usuario para permitir la manipulación de la información almacenada (interfaz para que el usuario abra, elimine, cree o modifique archivos). A través del Sistema de archivos, los archivos van quedando almacenados de forma organizada en directorios, formándose una estructura jerarquizada además de determinando el tamaño de los clusters y la capacidad máxima de almacenaje que puede tener el disco duro y de la seguridad para los archivos.


Gestión de dispositivos

“Los dispositivos” son aparatos que cumplen determinada función y pueden ser conectados a una computadora. Los dispositivos de entrada son el medio para que el usuario pueda comunicarse con la máquina o ingresar información (ratón, escáner, teclado y etc), y los dispositivos de salida son aquellos que proporcionan al usuario el resultado final del procesamiento de información (pantalla, impresora, parlantes y etc).Existen 3 tipos de procesos de entrada y salida, en función de como el SO se sincroniza con el controlador.

E/S programada: La CPU hace una consulta al registro de estado del controlador (Polling), produciendo un bucle que es solucionado con los SO multiprogramados.

E/S por interrupciones: El controlador lleva a cabo el proceso de interrupción, si otra parea está siendo ejecutada por la CPU, es interrumpida. Este mecanismo da la base del sistema multiprogramado.

E/S por DNA: Los dispositivos que llevan a cabo una transferencia de datos muy elevada, se auxilian con la memoria principal.


Interrupciones

Es una señal recibida por la CPU, que indica que debe interrumpir la ejecución actual de x programa y pasar a ejecutar instrucciones específicas para tratar la nueva tarea..
Este concepto surge de las necesidades que tienen los dispositivos externos, así como impresora, fax y etc, de enviar información al procesador.
Polling: Es la primera técnica que se implementó, consiste en que el procesador se encargara de “escanear” el dispositivo cada cierto tiempo para averiguar si tiene pendiente alguna instrucción para él. La CPU constantemente consumía tiempo en realizar el escaneo, por lo tanto el método fue clasificado como ineficiente. El mecanismo de interrupciones fue la solución que permitió eliminar dicho problema, y dejar en el dispositivo la responsabilidad de comunicarse con el procesador cuando sea necesario.

Programas del sistema

Hoy en día, los sistemas operativos vienen con software pre-instalado, con el fin de hacer fácil para el usuario el uso del computador. En la actualidad, muchos SO viene con un interprete de ordenes gráfico (GUI), dejando de lado a las lineas de comando, además, cuentan con gestores de memoria, con el fin de proteger a usuario de la cruda tarea de gestionar su memoria a través de un lenguaje de bajo nivel.

Las herramientas que vienen por defecto en un sistema, varían según la necesidad del usuario, gestor de particionado, calculadora de programador, hojas de calculo, cliente de correo electrónico, además de sus herramientas propias para la administración y configuración del equipo.


Jerarquía de Almacenamiento

Para poder ejecutarse y ser manipulados, los programas y su información tienen que residir en memoria principal, y los datos que no son necesarios, se quedan en la memoria secundaria. Como ya se sabe, la memoria principal (física) es costosa y de menor tamaño que la secundaria, pero más rápida.

Hoy en día existen sistemas con varios niveles de almacenamiento y los programas residentes van trasladándose de forma dinámica entre estos niveles, que son:

-Memoria Caché
-Memoria Principal
-Memoria Secundaria

En el caso del 1er y 2do nivel, la CPU puede acceder a los datos de forma directa, por lo contrario, en el 3er nivel (Memoria Secundaria) solo puede acceder a los datos si éstos son trasladados a la Memoria Principal (2do nivel). La rapidez de acceso de la CPU va decreciendo según el niveles.


 

lunes, 15 de noviembre de 2010

Unidad I, punto N°3.




Gestión del Sistema operativo

Gestion de archivos

Permite la administración correcta para la manipulación de archivos como crear,  abrir, borrar o cerrar archivos. El S.O, a través del sistema de archivos, permite gestionar los datos que residen en memoria secundaria, organizándolos en colecciones de datos llamadas archivos.  El sistema de archivos ayuda a: 

- Compartir archivos entre los usuarios.
- Permitir la transferencia de datos de unos archivos a otros.
- Gestión de soportes físicos.
- Seguridad y protección de archivos.
- Facilitar a los usuarios la posibilidad de estructurar los archivos de la manera más adecuada


Intérprete de órdenes  
 
Programa informático que tiene la capacidad de traducir las órdenes que introducen los usuarios. Lo que hace es recoger órdenes en  el canal de entrada  para que sean ejecutadas por la computadora. Esto se realiza mediante un conjunto de instrucciones entregadas por  el mismo intérprete que permiten comunicar las órdenes con el Sistema operativo.


Servicios del Sistema Operativo:

Ejecución de programas:

En el caso de la multiprogramación, el computador solo puede ejecutar un programa a la vez, pero como va alternando de forma rápida entre uno y otro, nos da una sensación de fluidez, como si todos los programas que usamos se estuvieran ejecutando al mismo tiempo.

En el caso del Multiprocesamiento, como se usan dos procesadores o más, el computador si puede ejecutar más de un programa a la vez.

Operaciones de E/S:

Consiste en usar un sistema de almacenamiento rápido y temporal (caché), una interfaz de controladores de dispositivos y otra exclusiva para dispositivos específicos. El Sistema Operativo debe gestionar el caché de E/S y encargarse de las interrupciones de los dispositivos.

Sistemas de Archivos:

En palabras muy simples, los archivos son una colección de información relacionada. Pueden contener el plano de un programa (código fuente), imágenes, música, textos, instrucciones y etc. El SO se encarga de:

-Construir y manipular archivos o directorios y también eliminarlos.

-Realizar copia de seguridad de archivos o directorios.

-Establecer el vinculo entre unidades de almacenamiento y archivos.

Unos ejemplos de sistemas de archivos son el FAT32, NTFS y EXT4. La diferencia de ellos es notoria, por ejemplo, el FAT 32 solo puede almacenar hasta 4GB, mientras que el NTFS y EXT4 tienen una capacidad considerablemente mayor.

Comunicación:

Para mantener las comunicaciones con otros sistemas, es necesario poder controlar el envío y recepción de información a través de las interfaces de red. También hay que crear y mantener puntos de comunicación que sirvan a las aplicaciones para enviar y recibir información, y crear y mantener conexiones virtuales entre aplicaciones que están ejecutándose localmente y otras que lo hacen remotamente.

Detección y manejo de errores:

Si la CPU intenta ejecutar una instrucción mal elaborada, la unidad de control enviará una excepción al Sistema Operativo para que éste pueda llevar a cavo la solución pertinente. Las razones por las que se puede presentar una excepción son:

-El código de operación puede ser incorrecto.

-Se intenta realizar alguna operación no definida, como dividir por cero.

-La dirección de algún operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso.

-La instrucción puede no estar permitida en el modo de ejecución actual.

Las excepciones son importantes por que así se evita que alguna aplicación haga una operación que no se le está permitida.

Gestión de recursos:

Gracias al surgimiento del SO, el usuario ya contaba con un gestor de memoria y no tenía que interactuar con su hardware para poder gestionarla. El SO tiene varias funciones:

-Administrar la CPU.

-Administrar los dispositivos de E/S.

-Administrar los procesos.

-Administrar la memoria física y virtual.

En general, gestiona todos los recursos del sistema. Se acabó con la obligación del uso de lenguajes de bajo nivel para la gestión de recursos.

Protección:

El SO cuenta con la capacidad de establecer reglas y definir a que aplicaciones y/o recursos se pueden acceder según el grado de privilegios o autorización del usuario. El Sistema Operativo fuerza el uso de sistemas de seguridad, para así mantener su integridad y la de los archivos. Muchos usuarios no miden la importancia de este punto y se arriesgan a fallos drásticos. Los SO actuales cuentan con diferentes métodos de seguridad, los sistemas GNU/Linux hacen uso de privilegios y de un superusuario virtual, por otro lado, Windows proporciona algo un poco menos riguroso y más cómodo, pero más deficiente, ya que el usuario real tiene todos los privilegios, hasta de borrar los archivos con extensión dll, algo muy curioso.