Sistemas Operativos
Por: 31-03-2009 por smcarrion | Categorías asociadas: Capítulos 1-2, Paralelo "B"

CAPITULO 1

Nombre: Stalin Carrion

QUE HACE UN SISTEMA OPERATIVO

Un sistema operativo es un sistema informático y este a su vez se divide en grandes rasgos:

Componentes:

Hardware

Sistema Operativo

Programas de aplicación

Usuarios

El hardware CPU, memoria y dispositivos de E/S proporciona los recursos básicos de cómputo al sistema, los programas de aplicación como procesadores de texto, hojas de cálculo, los compiladores y exploradores web, definen las formas que estos recursos se emplean para resolver los problemas informáticos de los usuarios.

Un sistema se diseña para que un usuario monopolice sus recursos, el sistema operativo se diseña principalmente para que sea fácil uso, prestando cierta atención al rendimiento y ninguna a la utilización de recursos.

Algunas computadoras tienen poca o ninguna interacción con el usuario, como las computadoras incorporadas en los electrodomésticos y los automóviles.

Existe operativo es el programa más íntimamente relacionado con el hardware, un sistema informático tiene muchos recursos que pueden ser necesarios para solucionar un problema.

Un sistema operativo es un programa de control que gestiona la ejecución de los programas de usuario para evitar errores mejorar el uso de la computadora.

Los sistemas operativos existen porque ofrecen una forma razonable de resolver el problema de crear un sistema informático utilizable. El objetivo fundamental de las computadoras es ejecutar programas de usuario y resolver los problemas con facilidad.

Algunos sistemas ocupan menos de un megabyte de espacio y no proporcionan ni un editor a pantalla completa, mientras que otros necesitan gigabytes de espacio están completamente basados en sistema gráfico de ventanas.

Un sistema operativo es aquel programa que se ejecuta continuamente en la computadora denominado kernel.

Para que una computadora comienza a funcionar , por ejemplo cuando se enciende o se reinician es necesario que tenga un programa de inicio que ejecutar, éste programa de inicio o arranque suele ser simple se almacenan la memoria ROM o en una memoria EEPROM que es una memoria de sólo lectura programable y eléctricamente borrable conocida como firmware. El programa de arranque debe saber cómo cargar el sistema operativo e iniciar la ejecución de dicho sistema. Para conseguir este objetivo el programa de arranque debe localizar y cargar en memoria el kernel.

La ocurrencia de un suceso normalmente se indica mediante una interrupción bien hardware o bien software.

Cuando se interrumpe a la CPU dejarlo que está haciendo e inmediatamente transfiere la ejecución a una posición fijada, las interrupciones son una parte importante de la arquitectura de computadoras la interrupción debe transferir el control a la rutina de servicio apropiada a la interrupción.

Generalmente la tabla de punteros se almacenan la zona inferior de la memoria, la arquitectura de servicio de las interrupciones también debe almacenar la dirección de la interrupción interrumpida.

Los programas de la computadora deben hallarse la memoria principal (RAM) para ser ejecutados, habitualmente se implementa con una tecnología de semiconductores denominadas DRAM que forman una matriz de palabras de memoria.

Un ciclo típico instrucción-ejecución, cuando se ejecuta no sistema común arquitectura de von Neumann primero extrae una instrucción de memoria y almacena dicho instrucción en el registro de instrucciones.

1. Normalmente la demora principal es demasiado pequeña como para almacenar todo los programas y datos necesarios de forma permanente.

2. La memoria principal es un dispositivo de almacenamiento volátil que pierde su contenido cuando se quita la alimentación.

Los sistemas informáticos proporcionan almacenamiento secundario como una extensión de la memoria principal. El dispositivo de almacenamiento secundario más común es el disco magnético que proporciona un sistema de almacenamiento tanto para programas como para datos.

El almacenamiento volátil pierde su contenido cuando se retira alimentación del dispositivo, los datos deben inscribirse en almacenamiento no volátiles para su guarda mientras necesario los sistemas de almacenamiento que se encuentran por encima de los discos electrónicos son volátiles y los que se encuentran por debajo son no volátiles. Otra forma de almacenamiento no volátiles es la NVRAM que es una DRAM con batería de reserva esta memoria podría ser tan rápida como una DRAM aunque sólo mantiene su carácter no volátiles durante el tiempo limitado.

La parte del código del sistema operativo se dedica gestionar la entrada y la salida debido su gran importancia rendimiento del sistema por ejemplo 7 + dispositivos pueden estar conectados a la controladora SCSI, unas controladora de dispositivos mantiene algunos buferes locales y un conjunto de registros de propósito especial, la controladora del dispositivo es responsable de transferir los datos entre los dispositivos periféricos que controla y su bufer local, normalmente la sistemas operativos tienen un controlador (driver) de dispositivo para cada controladora del dispositivo.

Carencia en operación de E/S el controlador del dispositivo carga los registros apropiados de la controladora hardware.

La mayor parte de los sistemas sólo usan un procesador un único procesador puede ser sorprendente dado que van desde los PDA hasta los sistemas mainframe. En un sistema un único procesador escapado ejecutar un conjunto de instrucciones de propuesta general incluyendo instrucciones de los procesos de usuario.

Los sistemas de un sólo procesador son los más comunes de importancia los sistemas multiprocesador está siendo cada vez mayor. Esto sistemas disponen de dos o más procesadores que se comuniquen entre sí comparten el bus de la computadora.

Ventajas:

1. Mayor rendimiento de aumentar el número de procesadores se espera que se realiza más trabajos menos tiempo, cuando múltiples procesadores cooperan en una tarea cierta carga de trabajo se emplean conseguir que todas las partes funcionen correctamente.

2. Economía de escala los sistemas multiprocesador pueden resultar más baratos que su equivalente con múltiples sistemas de un sólo procesador ya que pueden compartir periféricos y fuentes alimentación.

3. Mayor fiabilidad las funciones se pueden distribuir de forma apropiada entre varios procesadores, entonces el fallo de un procesador no hará que sistema de funcionar sino que sólo se ralentizará.

La capacidad de continuar proporcionando servicio proporcionalmente al nivel de hardware superviviente se denomina degradación suave, algunos sistemas van más allá de la degradación suave y se denomina sistemas tolerantes a fallos dado que pueden sufrir un fallo en cualquier componente y continuar operando.

Los sistemas multiprocesadores actualmente utilizados son de dos tipos: el multiprocesamiento asimétrico en el que cada procesador se asigna a una tarea específica.

Los sistemas más comunes utilizan el multiprocesamiento simétrico en el que cada procesador realiza todas las tareas correspondientes al sistema operativo, un sistema Sun se puede configurar empleando docenas de procesadores que ejecuten Solaris, además debemos controlar cuidadosamente la E/S para asegurar que los datos lleguen al procesador adecuado. Un sistema multiprocesador permitirá que los procesos y recursos sean compartidos dinámicamente entre los distintos procesadores lo que permiten disminuir la varianza entre la carga de trabajo de los procesadores.

La diferencia de multiprocesamiento simétrico y asimétrico puede deberse tanto la hardware como el software.

Por último los servidores blade son un reciente desarrollo en el cual se colocan múltiples procesadores, tarjetas de E/S y tarjetas de red en un mismo chasis.

Esto sistemas utilizan múltiples CPU para llevar a cabo el trabajo.

Normalmente la conexión en cluster se usa para proporcionar un servicio, con alta disponibilidad es decir un servicio que funcionará incluso si uno o más sistemas del cluster fallan. El cluster se puede estructurar simétrica o asimétricamente, en un cluster asimétrico, una máquina este modo espera en caliente mientras que en el modo simétrico dos o más hosts ejecuten aplicaciones y se monitorizan entre si.

Ramos y programación incrementa el uso de la CPU organizando los trabajos de modo que la CPU siempre tenga uno que ejecutar, el tiempo compartido requieren sistema informático interactivo que proporciona de comunicación directa entre el usuario y el sistema.

Los sistemas operativos modernos están controlados mediante interrupciones, una excepción es una interrupción generada por software debida a un error.

Necesitamos dos modos diferentes operación: modo usuario y modo kernel (kernel 0 o usuario 1). Con el bit de modo podemos diferenciar entre una tarea que se ejecuten en nombre del sistema operativo y otra que se ejecuta en nombre del usuario.

un programa ejecución, ya mencionamos es un proceso, un programa de usuario de tiempo compartido como por ejemplo un compilador es un proceso un proceso lleva a cabo su tarea cierta recursos los que requiere tiempo memoria, archivos y dispositivos de E/S.

Controla que parte de la memoria está actualmente en uso y por parte de quien.

Decidí que datos y procesos añadir puede extraer de la memoria.

Asignar y liberar la asignación de espacio de memoria según sea necesario.

Los sistemas operativos deben de ocuparse de la protección y seguridad de su propio sistema operativo y de los usuarios, protección incluye mecanismos que controlan el acceso de los procesos o usuarios a los recursos que el sistema informático pone su disposición.

Los sistemas distribuidos permiten a los usuarios compartido recursos en una serie de host conectados a través de una red de computadoras, los servicios puede ser proporcionados según el modelo cliente-servidor por el modelo entre iguales.

CAPITULO 2

ESTRUCTURAS DE SISTEMAS OPERATIVOS

Un sistema operativo presta ciertos servicios a los programas y a los usuarios derechos programas, lo cierto conjunto de servicios del sistema operativo proporciona funciones que resultan útiles al usuario:

· interfaz usuario: casi la mayoría de sistemas disponen de una interfaz de usuario, uno de los tipos existente es la interfaz línea de comandos que usa comandos de texto. Todo tipo destacable es la interfaz de proceso por lotes en la que los comandos y directivas para controlar dichos comandos introducen en archivos.

· Ejecución de programas: el sistema tiene que poder cargar un programa en memoria y ejecutar, debe poder eliminar esa ejecución de forma normal o anormal.

· Operaciones de E/S: programen ejecución lleva a cabo operaciones de E/S dirigidas a un archivo o aún dispositivos de E/S.

· manipulación de sistemas de archivos: los programas necesitan leer y escribir en archivos y directorios, además necesitan crearlos y borrarlos usando su nombre, realizar búsquedas en un determinado archivo o presentar la información contenida en un archivo.

· Comunicaciones: las comunicaciones se pueden implementar utilizando memoria compartida o mediante paso de mensajes.

· Detección de errores: los errores pueden producirse en el hardware de procesadores y memoria, para cada tipo de errores del sistema operativo debe llevar a cabo la acción apropiada para asegurar un funcionamiento correcto y coherente.

· Asignación de recursos: cuando hay varios usuarios o hay varios trabajos ejecutándose al mismo tiempo deben atenerse cada uno de ellos los recursos necesarios.

· Responsabilidad: debemos hacerlo seguimiento de que usuarios emplean qué clase de recursos de la computadora en qué cantidad.

· Protección y seguridad: la protección implica asegurar que todos los accesos a los recursos de sistemas estén controlados, además es importante garantizar la seguridad del sistema frente a posibles intrusos.

Algunos sistemas operativos incluyen el intérprete de comandos en el kernel; como Windows X. P. y UNIX trataran al intérprete de comandos como un programa especial, las shells proporcionan funcionalidad de similares existiendo solo algunas diferencias menores.

Comando en UNIX para borrar un archivo:

rm file..txt

Una segunda estrategia para interactuar con el sistema operativo es a través de una interfaz gráfica de usuario. En lugar de tener que introducir comandos directamente a través de la línea de comandos.

Las llamadas al sistema proporciona una interfaz con la que poder invocar los servicios que el sistema operativo ofrece, entre además el sistema interceptada llamadas a función dentro de las API e invocan la llamada al sistema necesaria.

Las llamadas de sistemas son: control de procesos, manipulación de archivos, manipulación de dispositivos, mantenimiento de información y comunicaciones.

Control de procesos: algunos sistemas permiten utilizar tarjetas de control, una tarjeta de control es un concepto extraído de los sistemas de procesamiento por lotes se trata de un comando que permite gestionar la ejecución de un proceso.

Manipulación de archivos: necesitamos poder crear (create) y borrar (delete) archivos, una vez que el archivos ha creado necesitamos abrirlo y utilizando también tenemos que poder leerlo, escribir en el, o reposicionarnos, es decir volver a un punto anterior o saltara al final del archivo.

Manipulación de dispositivos: una vez solicitado el dispositivo podemos leerl y re posicionar dispositivo al igual que con los archivos.

Mantenimiento de información: el sistema operativo mantiene información sobre todos sus procesos y se usan llamadas al sistema para acceder a esa información.

Comunicaciones: existen dos modelos comunes de comunicación entre procesos: el modelo de paso de mensajes el modelo de memoria compartida. El modelo de paso de mensajes los procesos que se comunican intercambia mensajes entre sí para transferir información.

En el modelo de memoria compartida los procesos usando llamadas al sistema shared memory create y shared memory attach para crear y obtener acceso a regiones de las memorias que son propiedad de otros procesos.

Los programas de sistemas se dividen las siguientes categorías:

· Administración de archivos: crean, borrar, copian, también de nombre, imprimen, vuelcan, listan y de forma general manipulan archivos y directorios.

· Información de estado: algunos programas solicitan al sistema la fecha, la hora, la cantidad de memoria o de espacio de disco disponible.

· Modificación de archivos: disponen de varios editores de texto para crear y modificar el contenido los archivos.

· Soporte de lenguajes de programación: proporcionan los usuarios compiladores, ensambladores, depuradores e intérpretes para los lenguajes de programación.

· La ejecución de programas: una vez que programas ensamblado o compilado debe quedarse en memoria para poder ejecutarlo.

· Comunicaciones: proporcionan mecanismos para crear conexiones virtuales entre procesos, usuarios y computadoras.

Durante todo el proceso de diseño del sistema operativo debemos de tener muchas precauciones al momento de separar las decisiones de mecanismos de implementación, ya que esto permite conseguir la máxima flexibilidad.

En la actualidad los sistemas operativos escriben casi siempre un lenguaje de implementación de sistemas son un lenguaje alto nivel, esto facilita a las tareas de implementación mantenimiento y portabilidad para crear la sistema operativo para una determinada máquina debemos llevar a cabo la generación del sistema, para que un sistema peruana funcionalidad correcta debe interesarse e iniciar la ejecución del programa de arranque implementado en firmware.




Por: 31-03-2009 por acabrera | Categorías asociadas: Capítulos 1-2

CAPITULO 1 ¿QUE ES UN SISTEMA OPERATIVO?

Es una parte fundamental de casi todo sistema de cómputo y actúa como intermediario entre un usuario y el hardware.  Un sistema de cómputo se puede dividir en cuatro componentes: hardware, sistema operativo, programas de aplicación y usuarios.

El sistema operativo otorga los recursos para administrar y hacer un uso apropiado del hardware, software y datos en la operación del sistema de cómputo, proporciona un ambiente dentro del cual otros programas puedan realizar un trabajo útil.  Así mismo es un programa de control, controla la ejecución de programas del usuario para evitar tanto errores como el uso incorrecto del equipo.

Una definición más común es que el sistema operativo es el programa que esta ejecutándose en todo momento en la computadora (núcleo kernel).

SISTEMAS POR LOTES

En las primeras computadoras, el sistema operativo era bastante simple, su tarea principal consistía en transferir el control de un trabajo al siguiente.  El sistema operativo siempre estaba residente en la memoria.  Para acelerar el procesamiento, los operadores agrupaban en lotes los trabajos con necesidades similares y los ejecutaban en la computadora como un grupo, de esta manera los programadores dejaban sus programas con el operador, quien los clasificaba por lotes con requerimientos similares, y a medida que quedaba disponible la computadora, ejecutaba cada lote.  La salida de cada trabajo se devolvía al respectivo programador.

La multiprogramación es el primer caso en donde el sistema operativo debe tomar decisiones por el usuario.  Los sistemas operativos de multiprogramación son sofisticados, los trabajos que entran al sistema se mantienen en la reserva de trabajos, este grupo está formado por todos los procesos que residen en el disco y que están esperando asignación de memoria, si no hay suficiente espacio para varios trabajos entonces el sistema debe hacer una elección.

SISTEMAS DE TIEMPO COMPARTIDO

El tiempo compartido o multitarea es una extensión lógica de la multiprogramación.  La CPU ejecuta múltiples trabajos conmutando entre ellos, pero los cambios ocurren de manera tan frecuente que los usuarios pueden interactuar con cada programa mientras esta en ejecución.

Un sistema de cómputo interactivo proporciona una comunicación directa entre usuario y sistema, el usuario da instrucciones al sistema operativo y espera resultados inmediatos.

Un sistema operativo de tiempo compartido es incluso más complejos que los de multiprogramación, hace uso de la planificación de la planificación de la CPU y la multiprogramación para proporcionar a cada usuario una porción de una computadora de tiempo compartido.  Un programa que se carga en la memoria y se está ejecutando se le conoce como proceso.

SISTEMAS PARA COMPUTADORAS PERSONALES

Las computadoras personales aparecieron en la década de 1970 y los sistemas operativos no eran ni multiusuario ni multitarea, pero han evolucionado, hoy en día optan por maximizar el grado de respuesta para el usuario.  Estos sistemas incluyen PC ejecutando Windows y  Macintosh, MS-DOS de Microsoft ha sido reemplazado por versiones de Windows e IBM ha mejorado MS-DOS por OS/2 de multitarea, Linux es parecido a Unix y a adquirido gran aceptación.

Los sistemas operativos para mainframes (computadores grandes) y microcomputadores muestran que características pertenecientes antes solo a mainframes ahora han sido adoptadas por las microcomputadoras.

SISTEMAS PARALELOS

Los sistemas paralelos tienen más de una CPU en estrecha comunicación, las CPU comparten el bus de las computadoras, y a veces también la memoria y los dispositivos periféricos, tales sistemas proporcionan un mayor rendimiento y una mejor confiabilidad.

SISTEMAS DE TIEMPO REAL

Se emplea como un dispositivo de control en una aplicación dedicada.  Un sistema operativo estricto de tiempo real tiene restricciones de tiempo fijas y bien definidas.  El procesamiento debe realizarse dentro de estas restricciones, o el sistema fallara

SISTEMAS DISTRIBUIDOS

Los diferentes sistemas operativos se comunican de manera estrecha para dar la ilusión de que hay un solo sistema operativo controlando a la red.  La influencia del internet y la red ha impulsado el desarrollo de sistemas operativos modernos que incluyen navegadores para red y software para redes y comunicación.

CAPITULO 2 ESTRUCTURA DE LOS SISTEMAS DE CÓMPUTO

OPERACIÓN DE LOS SISTEMAS DE CÓMPUTO

Un sistema de cómputo está compuesto de una CPU y varios manejadores de dispositivo, que da acceso a la memoria compartida.  La CPU y los manejadores de dispositivo pueden operar de manera concurrente compitiendo por ciclos de la memoria, para asegurar acceso ordenado a la memoria compartida existe un controlador de memoria cuya función es sincronizar el acceso al mismo.  Para que la computadora empiece a funcionar necesita un programa inicial o de arranque.

La transferencia de datos entre la CPU y un dispositivo E/S debe ser manejada ya sea por un acceso mediante escrutinio o activado por interrupciones a puerto de E/S o por una transferencia de datos DMA (acceso directo a memoria)

Para que una computadora realice su trabajo de ejecutar programas, estos deben estar en la memoria principal.  La memoria principal es una arreglo de bytes que van en tamaño de cientos de miles hasta cientos de millones, es un dispositivo de almacenamiento volátil.

La mayoría de los sistemas de cómputo proporcionan almacenamiento secundario como una extensión de la memoria principal, al requerimiento del almacenamiento secundario es que sea capaz de retener grandes cantidades de datos de manera permanente.  El disco magnético  proporciona almacenamiento  para datos y programas.  Las cintas magnéticas se usan mas para respaldos.

Los sistemas de almacenamiento en un sistema de computo puede organizarse en una jerarquía de acuerdo a su velocidad y a su costo, los niveles más altos son costosos pero mas rápidos, en el punto más alto se encuentran los registros luego la cache, memoria principal, disco principal y al último se encuentran las cintas magnéticas.

El sistema operativo debe asegurar la operación correcta del sistema de cómputo, para evitar que los programas de usuario interrumpan con el sistema, el hardware tiene dos modos: modo de usuario y monitor.  La memoria en la que está el sistema operativo debe estar protegida de modificación por parte del usuario.

Un temporizador evita ciclos infinitos, estos servicios son bloques de construcción básicos empleados por los sistemas operativos para lograr una operación correcta. 

 




Por: 31-03-2009 por jptorresx | Categorías asociadas: Uncategorized

Capítulo 1
El sistema operativo es un programa o software que administra el hardware, proporciona un ambiente para ejecutar los programas de aplicación. Un ordenador debe realizar programas, pero para que estos se realicen deben estar en la memoria principal RAM, que es de funcionamiento volátil, es decir que pierde su información cuando se desconecta la energía. Otro dispositivo de almacenamiento secundario es el disco magnético, este dispositivo proporciona un almacenamiento de información permanente. Un sistema informático se puede diseñar de diferentes maneras, las cuales podemos clasificar por el número de procesadores que posee: sistemas de un solo procesador y sistemas multiprocesador; los sistemas multiprocesador son de dos tipos, asimétrico y simétrico. Los sistemas conectados en cluster son una forma especializada de multiprocesador y consta de múltiples computadoras conectadas mediante una red de área local. Uno de los aspectos más importantes de los sistemas operativos es la multiprogramación, lo que permite tener en memoria a la vez varios trabajos, de modo que la CPU tenga siempre un trabajo que ejecutar. El tiempo compartido es una extensión lógica de la multiprogramación, en la que los algoritmos de planificación de la CPU conmutan múltiples trabajos. Parar asegurar la correcta ejecución del sistema operativo, el hardware soporta dos modos de trabajo: modo usuario (1), como su palabra lo dice son todas las operaciones que realiza el usuario; y modo kernel (0), se refiere a todas las operaciones que realiza el sistema operativo. Un temporizador impide los bucles infinitos. Un programa no hace nada a menos que la CPU ejecute sus instrucciones. Un proceso es la unidad fundamental de trabajo de un sistema operativo. Si un sistema informático posee varios usuarios, los sistemas operativos deben ocuparse de la protección y seguridad del propio sistema operativo y de los usuarios. Los sistemas distribuidos es una colección de computadoras físicamente separadas y posiblemente heterogéneas que están conectadas en red para proporcionar a los usuarios acceso a los diversos recursos que el sistema posee. Los servicios se pueden dar mediante el modelo cliente-servidor o el modelo entre iguales. Las redes LAN y WAN son los dos tipos básicos de redes. Las redes LAN conectan una serie de computadoras que se encuentran en una misma habitación u edificio, y una red WAN conecta varios edificios. Existen diferentes clases de sistemas informáticos cuyas funciones son más limitadas o específicas como los sistemas operativos entiempo real diseñados para entornos embebidos. Los sistemas multimedia implican el suministro de datos multimedia.
Capítulo 2
Los sistemas operativos proporcionan el entorno en el que se ejecutan los programas, proporcionan una serie de servicios. En el nivel mas bajo las llamadas al sistema permiten que un programa en ejecución haga solicitudes directamente al sistema operativo. En un nivel más alto, el intérprete de comandos o shell proporciona un mecanismo para que el usuario ejecute una solicitud sin tener que escribir un programa. Los tipos de solicitudes varían de acuerdo con el nivel. En el nivel de gestión de las llamadas al sistema debe proporcionar funciones básicas, como las de control de procesos y de manipulación de archivos y dispositivos. Las solicitudes de nivel superior, se traducen a una secuencia de llamadas del sistema. Al diseñar un sistema operativo debemos tener presente los objetivos y las especificaciones. El tipo de sistema dictará las opciones que se elijan, entre los distintos algoritmos y estrategias necesarios.
Existen dos técnicas adecuadas para la implementación y el diseño de un sistema operativo que son diseñar al sistema como una secuencia de niveles o usando un microkernel. El concepto de máquina virtual se basa en una arquitectura en niveles y trata tanto al kernel del sistema operativo como al hardware como si fuera hardware. Los sistemas operativos se escriben en un lenguaje de alto nivel o en un lenguaje de implementación de sistemas. Esto ha hecho que las tareas de implementación, mantenimiento y portabilidad se hagan en tareas fáciles de desarrollar. Después de haber generado el sistema operativo, para que empiece a funcionar, la CPU debe inicializarse e iniciar la ejecución del programa de arranque implementado en firmware. El programa de arranque puede ejecutar el sistema operativo directamente, si éste está también en el firmware, o puede completar una secuencia en la que progresivamente se cargan programas más inteligentes desde el firmware y el disco, hasta que el sistema operativo se cargue en memoria y se ejecute.




Por: 31-03-2009 por Jorge Luis Veintimilla O. | Categorías asociadas: Capítulos 1-2, Paralelo "B"

RESUMENES

Por: Jorge Luis Veintimilla Ojeda

Paralelo: “B”

RESUMEN CAP. 1 “INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS”

Un sistema operativo es un software de sistema que gestiona el hardware de una computadora mediante la administración eficaz de sus recursos. Un aspecto importante de un sistema operativo es que proporciona una interfaz al usuario para que este realice su trabajo. Entre las principales funciones de  un sistema operativo tenemos.

Interfaces del usuario: Es la parte del sistema operativo que permite comunicarse con un usuario, lo cual facilita que el usuario pueda cargar programas, acceder archivos y realizar otras tareas.

Administración de recursos: Sirven para administrar los recursos de hardware y de redes de un sistema informático, como el CPU, memoria, dispositivos de almacenamiento secundario y periféricos de entrada y de salida.

Administración de archivos: Un sistema de información contiene programas de administración de archivos que controlan la creación, borrado y acceso de archivos de datos y de programas. También implica mantener el registro de la ubicación física de los archivos en los discos magnéticos y en otros dispositivos de almacenamiento secundarios.

Administración de tareas: Los programas de administración de tareas de un sistema operativo administran la realización de las tareas informáticas de los usuarios finales. Los programas controlan que áreas tiene acceso al CPU y por cuánto tiempo. Las funciones de administración de tareas pueden distribuir una parte específica del tiempo del CPU para una tarea en particular, e interrumpir al CPU en cualquier momento para sustituirla con una tarea de mayor prioridad.

Servicio de soporte: Estos servicios de soporte suelen consistir en:

  • Actualización de versiones.
  • Mejoras de seguridad.
  • Inclusión de alguna nueva utilidad (un nuevo entorno gráfico, un asistente para administrar alguna determinada función, etc.).
  • Controladores para manejar nuevos periféricos.
  • Corrección de errores de software.

Un sistema operativo también es el encargado de manejar la estructura de almacenamiento en un computador, ya que en la memoria ram o memoria principal al ser demasiado pequeña como para almacenar todos los programas y datos necesarios de forma permanente y debido a que esta memoria pierde su contenido cuando se le quita la alimentación, los sistemas operativos cumplen la función de proporcionar almacenamiento secundario en dispositivos de almacenamiento secundario como puede ser discos magnéticos.

ARQUITECTURA DE UN SISTEMA

Los sistemas operativos pueden ser de un solo procesador o multiprocesador, de un solo procesador son los sistemas más comunes y cumplen con la función de ejecutar un conjunto de instrucciones de propósito general, incluyendo instrucciones de los procesos de usuario. Mientras que un sistema multiprocesador presenta las ventajas de mayor rendimiento, economía de escala y mayor fiabilidad.

ESTRUCTURA DE UN SISTEMA OPERATIVO

Los sistemas operativos proporcionan un entorno en el cual se ejecutan los programas. La multiprogramación incrementa el uso del CPU organizando los trabajos de modo que la CPU tenga una tarea que ejecutar, haciendo así un correcto uso de los recursos del sistema.

OPERACIONES DEL SISTEMA OPERATIVO

Los sistemas operativos modernos están controlados mediante interrupciones. Es decir que siempre debe haber un proceso que ejecutar, por lo que sino el sistema operativo estaría inactivo.

Operación de modo Dual.-El modo dual de operación nos proporciona los medios para proteger el sistema operativo de los usuario que puedan causar errores, y también para proteger a los usuarios de otros usuarios quitando privilegios de uso de software y hardware.

Temporizador.- Un temporizador se lo puede configurar para interrumpir a la computadora después de un periodo especificado, generalmente, se implementa un temporizador variable mediante un reloj de frecuencia fija y un contador.

GESTIÓN DE PROCESOS

Para que un proceso se lleve a cabo debe tener recursos en el que se incluyen tiempo del CPU, memoria, archivos y dispositivos de E/S.

GESTIÓN DE MEMORIA

Es un repositorio de datos rápidamente accesible compartida por la CPU y los dispositivos de E/S.

GESTIÓN DE ALMACENAMIENTO

  • Gestión del sistema de archivos
  • Gestión de almacenamiento masivo
  • Almacenamiento en caché
  • Sistemas de E/S

PROTECCIÓN Y SEGURIDAD

Dentro de todo tipo de sistemas se debe proporcionar protección y seguridad para proporcionar a los usuarios un correcto acceso a los diversos recursos que el sistema mantiene, esto se debe implementar en todo tipo de sistemas, por ejemplo en sistemas distribuidos, sistemas de propósito general, entornos informáticos, etc.

————————————————————————————————


RESUMEN CAP. 2 “ESTRUCTURAS DE LOS SISTEMAS OPERATIVOS”

Un sistema operativo proporciona el entorno en el que se ejecuta los programas, y los sistemas operativos proporcionan una serie de servicios como son:

  • Interfaz de usuario (UI): La interfaz que sirve para que el usuario interactúe con el computador y aproveche sus recursos.
  • Interfaz de línea de comandos (CLI)
  • Interfaz de procesos por lotes
  • Ejecución de programas: Un sistema operativo debe tener la capacidad de cargar un programa en memoria y ejecutarlo.
  • Operaciones de entrada/salida: Debe controlar las opciones que se dan tanto por los periféricos de entrada como los de salida.
  • Manipulación del sistema de archivos: Los programas necesitan leer y escribir en archivos y directorios. También necesitan crearlos y borrarlos.
  • Comunicaciones: Un sistema operativo debe permitir la comunicación entre procesos que estén ejecutándose en la misma computadora o en computadoras diferentes conectadas a través de la red.
  • Detección de errores: Un sistema operativo debe detectar los errores que suceden en los programas en tiempo de ejecución, o errores a nivel de hardware, el sistema operativo debe ser capaz de informar el problema y tratar de darle una solución para su correcto funcionamiento.

Entre otras funciones tenemos:

  • Asignación de recursos
  • Responsabilidad
  • Protección y seguridad

ESTRUCTURA DEL SISTEMA OPERATIVO

La ingeniería de un sistema tan grande y complejo como un sistema operativo moderno debe hacerse cuidadosamente para que le sistema funcione apropiadamente y pueda modificarse con facilidad.

Se puede estructurar de dos maneras

  1. Estructura simple
  2. Estructura en niveles

MÁQUINAS VIRTUALES

El objetivo principal de una máquina virtual es la de abstraer el hardware de la computadora formando varios entornos de ejecución diferentes, creando así la ilusión de que cada entorno de ejecución está operando en su propia computadora privada.

GENERACIÓN DE SISTEMAS OPERATIVOS

Es posible diseñar, codificar e implementar un sistema operativo específicamente para una maquina concreta en una instalación determinada.

ARRANQUE DEL SISTEMA

Cuando un sistema operativo está listo y desarrollado y está dentro de un hardware para su uso, el procedimiento de iniciación de una computadora mediante el kernel se llama arranque del sistema.

BIBLIOGRAFÍA

  • SILBERSCHATS, GALVIN, GAGNE, “Fundamentos de Sistemas Operativos”, Séptima Edición, McGraw-Hill, España, 2006

Enlaces Web:

  • http://es.wikipedia.org/wiki/Sistema_operativo
  • http://www.masadelante.com/faq-sistema-operativo.htm



Por: 31-03-2009 por Rodrigo Saraguro | Categorías asociadas: Capítulos 1-2, Paralelo "B"

SISTEMAS OPERATIVOS

Un sistema operativo es un software base que controla los procesos del hardware de una computadora. Permite organizar los archivos en diversos dispositivos de almacenamiento, además de gestionar posibles errores de hardware y la pérdida de datos.

Para la normal ejecución de un programa, este debe encontrarse en la memoria principal (RAM). Ya que es un área de almacenamiento de gran tamaño a la que el procesador puede acceder fácilmente mediante la tecnología DRAM (dynamic random-acces memory).

Un sistema informático se puede diseñar de diferentes maneras, las cuales se clasifican de acuerdo al número de procesadores.  Los sistemas monoprocesadores en su mayoría constan de un solo procesador en donde existe un CPU capaz de ejecutar un conjunto de instrucciones de propósito general e instrucciones de los procesos de usuario. Así mismo podemos mencionar que los sistemas multiprocesadores disponen de dos o más procesadores que se comunican entre si, aunque operan independientemente unos de otros, entre sus ventajas se encuentran: Mayor rendimiento, Economía de Escala y Mayor fiabilidad. Mientras que los sistemas conectados en cluster pueden compartir almacenamiento y se conectan entre si a través de una Red LAN.

Una de las características más destacadas de los sistemas operativos es la capacidad para la multiprogramación, la cual incrementa el uso de la CPU organizando los trabajos, asegurando por tanto que esta siempre tenga un trabajo que ejecutar. Dentro de la multiprogramación se puede citar el tiempo compartido o multitarea, el cual permite que la CPU ejecute múltiples trabajos al mismo tiempo.

Los sistemas operativos gestionan una correcta operación del sistema informático, para impedir que existan excepciones que interfieran con el funcionamiento del sistema.

Un proceso necesita llevar a cabo su tarea utilizando ciertos recursos, entre los que incluyen tiempo de CPU, memoria, archivos y dispositivos de E/S. La gestión de procesos se basa en la creación y borrado de procesos, proporcionar mecanismos para que los procesos establezcan comunicación y sincronización entre sí.

El sistema operativo en cuanto a su gestión de memoria hace un seguimiento de que partes de la misma están siendo usadas y por quién. Así mismo la gestión de archivos en cuanto a su  almacenamiento.

La protección y seguridad de un sistema operativo es indispensable, ya que defienden el sistema de ataques internos o externos al controlar el acceso de procesos y el uso de ciertos recursos autorizados mediante mecanismos definidos por el sistema.
Entre los tipos básicos de redes se establecen las LAN que permiten la conexión de un conjunto de procesadores dentro de una Área pequeña y las WAN que permiten una conexión mucho más extensa, pero más lenta que las LAN.

Existen diferentes clases de sistemas informáticos que son de propósitos específicos. Entre ellos se encuentran los Sistemas Embebidos, Sistemas multimedia y Sistemas de mano.

Los Sistemas Embebidos en tiempo real que ejecutan sistemas operativos bajo rígidos requisitos de tiempo en la operación de un procesador, o el sistema fallará.

Los Sistemas Multimedia gestionan el suministro de datos multimedia (mp3 y videos) u muchas veces un software capaz de reproducirlos.
Dentro del entorno informático se citan: Sistema informático tradicional, Sistema cliente-servidor, Sistema Entre iguales y los modernos Sistemas basados en la Web.

ESTRUCTURAS DE SISTEMAS OPERATIVOS

Un sistema operativo proporciona una serie de servicios entre ellos mencionamos: una interfaz disponible para usuarios y programadores, ejecución de Programas, Operaciones de E/S, Manipulación del sistema de archivos, Comunicaciones, Detección de errores, Asignación de Recursos, Responsabilidad, Protección y Seguridad.

La Interfaz de usuario de un Sistema Operativo gira en torno a dos métodos fundamentales, el primero es la Interfaz de líneas de Comando o interprete de Comandos y la Interfaz Grafica de Usuario o GUI.

Los intérpretes de comandos tienen la función de obtener y ejecutar el comando especificado por el usuario, mediante llamadas al sistema. En cambio la Interfaz Grafica de Usuario proporciona un entorno amigable y de fácil uso par cualquier usuario, el cual trabaja con ventanas, menús, iconos y directorios que se muestran en el Escritorio del Sistema.

Las llamadas al Sistema proporcionan una interfaz para poder invocar los servicios que el sistema operativo ofrece. Entre los tipos de llamadas se encuentran: el control de procesos, administración de archivos y dispositivos, mantenimiento de información y comunicaciones.

Para el diseño e implementación de un sistema operativo, nos podemos regir a que los objetivos del sistema estén bien definidos, los mecanismos a utilizar y su implementación.

Es fundamental la modularidad de un sistema operativo para que puedan luego modificarse con facilidad, entre las clases de estructuras se encuentran: E. Simple, E. en niveles, Microkernels y Módulos.

La estructura en niveles se conceptualiza como maquina virtual, y esta trata tanto al kernel del sistema operativo y al hardware como si fueran hardware. Incluso permite cargar otros sistemas operativos en esta maquina virtual dentro de otro sistema operativo.

En la actualidad los sistemas operativos se codifican casi siempre en Lenguajes de implementación de sistemas o en Lenguajes de Alto Nivel. Facilitando así su implementación, mantenimiento y portabilidad.

Finalmente para que un Sistema Operativo ya generado pueda funcionar, la CPU debe recibir un suceso de  reinicialización  para ejecutar el programa de arranque que se encarga de localizar el kernel, cargándolo en la memoria e iniciando su ejecución. Aunque si el sistema operativo esta en el firmware puede inicializarse directamente con el cargador de arranque.

Rodrigo Saraguro Bravo




Por: 31-03-2009 por fabricioms | Categorías asociadas: Capítulos 1-2, Paralelo "B"

Capítulo I

INTRODUCCIÓN

Un sistema operativo es un programa que administra el hardware de una computadora. También proporciona las bases de los programas de aplicación y actúa como un intermediario entre el usuario y el hardware de la computadora.

1.1 ¿Qué hace un sistema operativo?

Un sistema operativo puede dividirse a grandes rasgos en cuatro componentes: el hardware, el sistema operativo, los programas de aplicación y los usuarios.

1.1.1 Punto de vista del usuario

En otros casos, un usuario se sienta frente a un terminal conectado a un mainframe o una microcomputadora. Otros usuarios acceden simultáneamente a través de otros terminales. Estos usuarios comparten recursos y pueden intercambiar información.

1.1.2 Vista del sistema

Desde el punto de vista de la computadora, el sistema operativo es el programa más íntimamente relacionado con el hardware.  Podemos ver un sistema operativo como un asignador de recursos. Un sistema informático tienen muchos recursos que pueden ser necesarios para solucionar un problema: tiempo de CPU, espacio de memoria, espacio de almacenamiento de archivos, dispositivos de E/S, etc.

1.2 Organización de la Computadora

Conocimientos básicos sobre la estructura de la computadora.

1.2.1 Funcionamiento de una computadora

Una computadora moderna de propósito general consta de una o más CPU y de una serie de controladoras de dispositivo conectadas a través de un bus común que proporciona acceso a la memoria compartida. Este programa de inicio, o programa de arranque, suele ser simple. Normalmente, se almacena en la memoria ROM (read only memory, memoria de solo lectura) o en una memoria EEPROM (electrically erasable programable  read-only memory, memoria de solo lectura programable y eléctricamente borrable).

1.2.2 Estructura de almacenamiento

Los programas de la computadora deben hallarse en la memoria principal (también llamada memoria RAM, random-access memory, memoria de acceso aleatorio) para ser ejecutados.

Normalmente. La memoria principal es demasiado pequeña como para almacenar todos los programas y datos necesarios de forma permanente.

La memoria principal es un dispositivo de almacenamiento volátil que pierde su contenido cuando se corta la alimentación.

Registros

Cache

Memoria principal

Disco electrónico

Disco magnético

Disco óptico

Cintas magnéticas

1.3 Arquitectura de computadoras

1.3.1 Sistema de un solo procesador

La mayor  parte de los sistemas sólo usan un procesador. No obstante, la variedad de sistemas de un único procesador puede ser realmente sorprendente, dado que van desde las PDA hasta los sistemas mainframe. En un sistema de un único procesador, hay una CPU principal capaz de ejecutar un conjunto de instrucciones de propósito general, incluyendo instrucciones de los procesos de usuario.

1.3.2 Sistemas multiprocesador

La importancia de los sistemas multiprocesador (también conocidos como sistemas paralelos o sistemas fuertemente acoplados) está siendo cada vez mayor. Tales sistemas disponen de dos o más procesadores que se comunican entre sí, compartiendo el bus de la computadora y, en ocasiones, el reloj, la memoria y los dispositivos periféricos.

Los sistemas multiprocesador presentan tres ventajas fundamentales:

· Mayor rendimiento.

· Economía de escala.

· Mayor fiabilidad.

1.3.3 Sistemas en clúster

Otro tipo de sistema con múltiples CPU es el sistema clúster. Como los sistemas multiprocesador, los sistemas en clúster utilizan múltiples CPU para llevar a cabo el trabajo. Los sistemas en cluster se diferencian de los sistemas de multiprocesamiento en que están formados por dos o más sistemas individuales acoplados. Las computadoras en cluster comparten el almacenamiento y se conectan entre sí a través de una red de área local.

1.4 Estructura de un sistema operativo

Uno de los aspectos más importantes de los sistemas operativos es la capacidad para multiprogramar. En general, un solo usuario no puede mantener la CPU o los dispositivos de E/S ocupados continuamente. La multiprogramación incrementa el uso de la CPU organizando los trabajos (códigos y datos) de modo que la CPU siempre tenga uno que ejecutar.

Los sistemas multiprogramados proporcionan un entorno en el que se usan de forma eficaz los recursos del sistema, como por ejemplo la CPU, la memoria y los periféricos, aunque no proporcionan la interacción del usuario con el sistema informático, la CPU ejecuta múltiples trabajos conmutando entre ellos, pero las conmutaciones se producen tan frecuentemente que los usuarios pueden interactuar con cada programa mientras éste está en ejecución.

1.5 Operaciones del sistema operativo

Los sistemas operativos modernos están controlados mediante 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, un sistema operativo debe permanecer inactivo, esperando a que algo ocurra. Los sucesos casi siempre se indican mediante la ocurrencia de una interrupción o una excepción. Una excepción es una interrupción generada por software, debida a un error (por ejemplo, una división por cero a un acceso a memoria no válido) o a una solicitud específica de un programa de usuario de que se realice un servicio del sistema operativo.Como mínimo, necesitamos dos modos diferentes de operación: modo usuario y modo kernel (también denominado modo de supervisor, modo del sistema o modo privilegiado). 

Las computadoras embebidas son las computadoras predominantes hoy en dio. Estos dispositivos se encuentran por todas partes, desde los motores de automóviles y los robots para fabricación, hasta los magnetoscopios y los hornos de microondas.

1.6 Gestión de procesos.

Un programa no hace nada hasta que la CPU ejecute sus instruccuiones. Un programa en ejecución es un programa en proceso.

Un preoceso necesita para llevar a cabo ciertos recursos entre los que incluye tiempo de cpu, memoria y archivos.

Capitulo 2

Estructuras de sistemas operativos

Un sistema operativo proporciona el entorno en el que se ejecuta los programas. Internamente, los Sistemas Operativos varían mucho en su composición dado que se organización puede analizarse aplicando múltiples criterios diferentes. El diseño de un sistema operativo es una tarea de gran envergadura, siendo fundamental que los objetivos del sistema estén bien establecidos.

Podemos ver al sistema operativo desde varios puntos de vista. Uno de ellos se centra en los servicios que el sistema proporciona, otro en la interfaz disponible para los usuarios y programadores y diseñadores del sistema operativo.

2.1 Servicios del sistema operativo

El sistema presta ciertos servicios a los programas y a los usuarios de dichos programas. Estos servicios del sistema operativo se proporcionan

Funciones útiles para el usuario:

· Interfaz de usuario. (UI, user interface), que puede tomar muchas formas.

o Interfaz de línea de comando (CLI, command-line interface), usa comandos de textos, y un programa que permite introducir y editar los comandos.

o Proceso de lotes, cuando los comandos y las directivas para controlarlos se introducen archivos, luego estos archivos se ejecutan.

o Interfaz grafica de usuario (GUI, graphical user interfaces), un sistemas de ventanas con un dispositivos señalador para dirigir la entrada y salida, para elegir opciones en el menú.

· Ejecución de programas. El sistema tiene que poder cargar un programa en memoria y ejecutar dicho programa

· Operaciones de E/S. Un programa en ejecución puede necesitar llevar a cabo operaciones de E/S, dirigidas a un dispositivo de E/S. Para ciertos dispositivos específicos puede ser deseable disponer de funciones especiales.

· Manipulación de sistemas de archivos. Los programas necesitan leer y escribir en archivos y directorios. También necesitan crearlos y borrarlos utilizando su nombre, realizar búsquedas en un determinado archivo o presentar la información.

· Comunicaciones. La comunicación debe tener lugar entre procesos que estén ejecutándose en la misma computadora o en computadoras diferentes conectadas a trabes de la red. Se pueden implementar utilizando memoria compartida o mediante paso de mensajes.

· Detección de errores. El sistema operativo necesita detectar continuamente los distintos errores. Estos errores pueden producirse en el hardware del procesador y de memoria en un dispositivo de E/S o en los programas de usuarios. Para cada tipo de error el usuario debe llevar a cabo una acción apropiada para asegurar un funcionamiento correcto y coherente.

· Asignación de recursos. Cuando hay varios usuarios o existen varios trabajos ejecutándose al mismo tiempo, debe asignar a cada uno de ellos los recursos necesarios.

· Responsabilidad. Conviene registrar de que usuarios emplean la computadora y que recursos emplean a fines contables o para estadísticas de uso. Que sería una herramienta valiosa para aquellos investigadores que deseen configurar los sistemas para mejorar los servicios informáticos.

· Protección y seguridad. Los propietarios de la información almacenada en un sistema de computadora en red o multiusuario necesitan a menudo poder controlar el uso de dicha información. La protección implica que todos los accesos a los recursos del sistema estén controlados.

2.2 Interfaz de usuario del sistema operativo

2.2.1 Intérprete de comandos

Algunos sistemas operativos incluyen el intérprete de comandos en el kernel. Otros como Windows y XP y Unix lo tratan como un programa especial que se ejecuta cuando se inicia un trabajo o cuando un usuario inicia sesión. En los sistemas que dispones entre varios interpretes entre los que elegir, los intérpretes se conocen como shells.

La función principal del intérprete de comando es obtener y ejecutar el sistema comando especificado por el usuario. Uno de los métodos consiste en que el propio intérprete de comandos contiene el código que el comando tienen que ejecutar. Un método alternativo utilizado por Unix es y otros sistemas operativos, implementa la mayoría de los comandos a través de una serie de programas de sistema.

2.2.2 Interfaz gráfica de usuario

Una segunda estrategia para interactuar con el Sistema Operativo es atreves de una interfaz grafica de usuario (GUI) suficientemente amigable. Permite al usuario implementar una serie ventanas y menús controlables mediante el ratón, proporciona una especie de escritorio en el cual el usuario mueve el ratón para colocar su puntero sobre images, iconos que se muestra en la pantalla.

2.3 Llamadas al sistema

Proporcionan una interfaz con la que podemos invocar los servicios que le sistema operativo ofrece. Estas llamadas están disponibles como rutinas escritas en C y C++, aunque determinadas tareas de bajo nivel, como por ejemplo aquellas en las que se tiene que acceder directamente al hardware, pueden necesitar escribirse con instrucciones de lenguaje ensamblador.

Los diseñadores de aplicación diseñan sus programas utilizando API (aplication programming interface, interfaz de programa de aplicacion) especifica un conjunto de funciones que el programador de aplicaciones puede usar, indicando los parámetros que hay que pasar a cada función y los valores de retorno que el programa debe esperar.

2.4 Tipos de llamadas al sistema

Las llamadas al sistema pueden agruparse de forma muy general en cinco categorías principales.

· Control de procesos

· Terminar, abortar

· Cargar, ejecutar

· Crear procesos, terminar procesos

· Obtener atributos del proceso, definir atributos del proceso

· Esperar para obtener tiempo

· Esperar suceso, señalizar suceso

· Asignar y liberar memoria

· Administración de archivos

· Crear archivos, borrar archivos

· Abrir, cerrar

· Leer, escribir, reposicionar

· Obtener atributos de archivo, definir atributos de archivos

· Administración de dispositivos

· Solicitar dispositivos, liberar dispositivos

· Leer, escribir, reposicionar

· Obtener atributos de dispositivos, definir atributos de dispositivos

· Conectar y desconectar dispositivos lógicamente

· Mantenimiento de información

· Obtener la hora y la fecha, definir la hora y la fecha

· Obtener datos del sistema, establecer datos del sistema

· Obtener los atributos de procesos, archivos o dispositivos

· Establecer los atributos de procesos, archivos o dispositivos

· 5. Comunicaciones

· Crear, eliminar, conexiones de comunicación

· Enviar, recibir mensajes

· Trasferir información de estado

· Conectar y desconectar dispositivos remotos

2.5 Programas del sistema

Los programas del sistema proporcionan un cómodo entorno para desarrollar y ejecutar programas. Algunos de ellos son, simplemente, interfaces de usuario para las llamadas del sistema; otros son considerablemente más complejos. Pueden dividirse en las siguientes categorías.

· ·Administración de archivos

· Información de estado

· Modificación de archivos

· Soporte de lenguajes de programación

· Carga y ejecución de programas

· Comunicaciones

2.6 Diseño e implementación del sistema operativo

Objetivos del diseño.- el primer problema es la definición concreta de los objetivos y especificaciones, este se puede dividir en dos grupos básicos: objetivos del usuario y objetivos del sistema.

Mecanismos y políticas.- Es importante separar las políticas de los mecanismos. Los mecanismos determinan como hacer algo; las políticas determinan que haces. El temporizador en un mecanismo para asegurar la protección de la CPU, pero la decisión de cuáles deben ser los datos de temporización para un usuario concreto es una decisión de políticas.

Implementación.- Una vez que se ha diseñado un sistema operativo debe implementarse. Tradicionalmente los sistemas operativos tenían que escribirse en lenguajes ensambladores. Sin embargo hoy se escriben en lenguajes de alto nivel como C o C++.

2.7 Estructura del sistema operativo

La ingeniería de un sistema tan grande y complejo como un sistema operativo moderno debe hacerse cuidadosamente para que le sistema funcione apropiadamente y pueda modificarse con facilidad. Un método habitual consiste en dividir la tarea en componentes más pequeños, en lugar de tener un sistema monolítico. Cada uno de estos módulos debe ser una parte bien definida del sistema, con entradas salidas y funciones cuidadosamente especificadas.

2.8 Máquinas virtuales

La idea fundamental que subyace a una maquina virtual es la de abstraer el hardware de la computadora formando varios entornos de ejecución diferentes, creando así la ilusión de que cada entorno de ejecución está operando en su propia computadora privada.

Con los mecanismos de ejecución de la CPU y las técnicas de memoria virtual un sistema operativo puede crear la ilusión de que un proceso tiene su propio con su propia memoria. Normalmente un proceso utiliza características adicionales.

2.8.1 Implementación

Aunque el concepto de maquina virtual es muy útil, resulta difícil de implementar. Es preciso realizar un duro trabajo para proporcionar un duplicado exacto de la maquina subyacente. La maquina subyacente tienen dos modos: modo usuario y modo kernel. El software de la máquina virtual puede ejecutarse en modo kernel, dado que el sistema operativo; la maquina virtual puede ejecutarse en modo usuario y un modo kernel virtual ejecutándose ambos en modo usuario físico.

2.8.2 Beneficios

El concepto de maquina virtual presenta varias ventajas. Observe que, en este tipo de entornos, existe una protección completa de los diversos recursos del sistema. Cada máquina virtual está completamente aislada de las demás, por lo que no existe problema de protección. Sin embargo no es posible la compartición directa de recursos. Se han implementado dos métodos para permitir dicho comportamiento. El primero es posible compartir un minidisco y por tanto compartir los archivos. En segundo lugar es posible definir una red de maquinas virtuales, pudiendo cada una de ellas enviar información a través de una red de comunicaciones virtuales.

2.9 Generación de sistemas operativos

Es posible diseñar, codificar e implementar un sistema operativo específicamente para una maquina concreta en una instalación determinada. Sin embargo lo más habitual es que el sistema operativo se diseñe para ejecutarse en cualquier clase de máquina y en diversas instalaciones, con una amplia variedad de configuraciones de periféricos. El sistema debe entonces configurarse o generarse para cada computadora en concreto, un proceso que se conoce como generación del sistema

· ¿Qué CPU va usar?

· ¿Qué cantidad de memoria hay disponible?

· ¿Qué dispositivos se encuentran instalados?

· ¿Qué opciones del sistema operativo se desea o que valores o parámetros de va a usar?

2.10 Arranque del Sistema

Una vez desarrollado un sistema operativo debe ponerse disposición del hardware para su uso, ¿sabe el hardware donde está el kernel o como cargarlo?

El procedimiento de iniciación de una computadora mediante el kernel se llama arranque del sistema. En la mayoría de los sistemas informáticos una pequeña parte del código conocida como programa de arranque o cargador de arranque, se encarga de localizar el kernel lo carga a memoria principal e inicia su ejecución.




Por: 31-03-2009 por mesarango | Categorías asociadas: Capítulos 1-2, Paralelo "B"

Capitulo 1

Un sistema operativo es un programa que administra el hardware de una computadora. Actúa como intermediario entre el usuario y el hardware de la computadora

Los SO para mainframe están diseñados para optimizar el uso de hardware, y los SO de las PCs soportan desde complejas aplicaciones hasta aplicaciones sencillas. 

Arquitectura de un sistema informático

Sistemas multiprocesador:

Simétrico

Asimétrico

Cada procesador se asigna una tarea especifica

En cada procesador se realiza todas las tareas correspondientes al sistema operativo.

Existe un procesador maestro que controla el sistema

Todos los procesadores son iguales

 Los procesadores esperan a que el maestro les de las instrucciones

No existe la relación maestro – esclavo.

 

Operación en modo dual: Modo kernel y  modo usuario

El modo usuario realiza llamadas al sistema se convierte en el modo kernel.Cuando se está en el modo kernel tiene el control de la computadora.

El propósito es asegurara que el SO mantenga el control sobre la CPU, impidiendo que un programa entre en un bucle infinito. Una excepción es una interrupción generada por software debida a un error o una solicitud especifica de un programa de usuario.

El propósito de las llamadas al sistema es proporcionar los medios para que un programa de usuario pida al SO que realice tareas reservadas del Sistema operativo en nombre del programa del usuario, toma la forma de una excepción que efectúa una transferencia a una posición específica en el vector de interrupción.

Las principales diferencias entre los sistemas distribuidos basados en los modelos cliente-servidor y entre iguales es que en un sistema cliente – servidor, el servidor es muy limitado (cuello de botella), pero en un sistema entre iguales, varios nodos distribuidos a través de la red pueden proporcionar servicios.

 

Las actividades del un sistema operativo en Gestión de Procesos es:

·         Crear y borrar los procesos de usuario y del sistema

·         Suspender y reanudar los procesos

·         Proporcionar mecanismos para la sincronización de procesos.

·         Proporcionar mecanismos para la comunicación entre procesos.

·         Proporcionar mecanismos para el tratamiento de los interbloqueos.

 

Las actividades del un sistema operativo en Gestión de memoria son:

·         Controlar que partes de la memoria están actualmente en uso y por parte de quién.

·         Decidir qué datos y procesos añadir o extraer de la memoria.

·         Asignar y liberar la asignación de espacio de memoria según sea necesario.

Las actividades del un sistema operativo en Gestión de Almacenamiento son:

·         Gestión del espacio libre

·         Asignación del espacio de almacenamiento

·         Planificación del disco

Las actividades del un sistema operativo en Sistema de E/S son:

·         Ocultar al usuario las peculiaridades de los dispositivos hardware específico.

 

 

Capitulo 2

Estructuras de Sistemas Operativos

Los sistemas operativos proporcionan el entorno en el que se ejecutan los programas. Se los puede especificar desde tres puntos de vista: Que este centrado en los servicios que proporciona, en la interfaz disponible para los usuarios y programadores, y finalmente en sus componentes y sus interconexiones.

Los servicios del sistema operativo proporcionan funciones que resultan útiles al usuario: 

- Interfaz de usuario (User InerfaceI), como por ejemplo la interfaz de línea de comandos (CLI), interfaz de proceso por lotes, interfaz grafica del usuario(GUI).

- Ejecución de Programas, consiste en el almacenamiento en memoria y la ejecución de programas dando respuesta.

- Operaciones de entrada y salida, los usuarios por cuestiones de eficiencia no pueden normalmente controlar de modo directo los dispositivos de E/S, el SO debe proporcionar los medios para realizar la E/S.

- Manipulación del sistema de archivos, consiste en la creación, modificación, edición, acceso o privacidad de archivos.

- Comunicación, tratándose del intercambio de información ya sea en la misma computadora o entre procesos que se ejecuten en computadoras diferentes conectadas a través de una red, las comunicaciones se pueden implementar utilizando memoria compartida.

- Detección de errores, el SO debe llevar a cabo la acción apropiada para asegurar un funcionamiento correcto y coherente.

Hay un conjunto de funciones del SO que garantizan la eficiencia del propio equipo sistema, los sistemas pueden ser más eficientes cuando se comparten recursos del equipo entre distintos usuarios.

Asignación de recursos (el SO dispone de rutina de planificación de la CPU), Responsabilidad (por medio de estadísticas se puede reconfigurara el sistema con el fin de mejorar los servicios informáticos), Protección y Seguridad (Se asegura que todos los recursos estén bien controlados y se garantiza la seguridad del sistema frente a posibles intrusos).

Interfaz del usuario del sistema operativo

Interprete de comandos

Interfaces graficas de usuario

Llamadas al sistema

Proporcionan una interfaz con la que poder invocar los servicios que el sistema operativo ofrece. Estas llamadas, generalmente, están disponibles como rutinas escritas en C y C++, aunque determinadas tareas de bajo nivel, como por ejemplo aquellas en las que se tienen que acceder directamente al hardware, pueden necesitar escribirse con instrucciones de lenguaje ensamblador.

Tipos de Llamadas al sistema

Las llamadas al sistema generan cinco categorías principales:

·         Control de procesos

o   Terminar, abordar

o   Cargar, ejecutar

o   Crear procesos, terminar procesos

o   Obtener atributos del proceso, definir atributos del proceso

o   Esperar para obtener tiempo

o   Esperar suceso, señalizar suceso

o   Asignar y liberar memoria

·         Manipulación de archivos

o   Crear archivos, borrar archivos

o   Abrir, cerrar

o   Leer, escribir, reposicionar

o   Obtener atributos de archivo, definir atributos de archivo

·         Manipulación de dispositivos

o   Solicitar dispositivo, liberar dispositivo

o   Leer, escribir, reposicionar

o   Obtener atributos de dispositivo, definir atributos de dispositivo

o   Conectar y desconectar dispositivos lógicamente

·         Mantenimiento de información

o   Obtener la hora o la fecha, definir la hora o la fecha

o   Obtener datos del sistema, establecer datos del sistema

o   Obtener los atributos de proceso, archivos o dispositivos

o   Establecer los atributos de procesos, archivos o dispositivos

·         Comunicaciones

o   Crear, eliminar conexiones de comunicación

o   Enviar, recibir mensajes

o   Transferir información de estado

o   Conectar y desconectar dispositivos remotos

 

Programas del sistema

Los programas del sistema proporcionan un cómodo entorno para desarrollar y ejecutar programas. Algunos de ellos son, simplemente, interfaces de usuario para las llamadas al sistema; otros son considerablemente más complejos. Pueden dividirse en las siguientes categorías

·         Administrador de archivos.- Manipulación (edición) de archivos y directorios.

·         Información de estado.-  Programas que proporcionan información de procesos de memoria, características del disco duro, hora y fecha, número de usuarios, etc.

·         Modificación de archivos.- Editores de texto o comandos para realizar cambios en el texto.

·         Soporte de lenguajes de programación.- En el sistema operativo proporciona compiladores, ensambladores, depuradores e intérpretes para los lenguajes de programación.

·         Carga y ejecución de programas.- Después de la compilación del programa debe cargarse en la memoria para poder ejecutarlo.

·         Comunicaciones.- Proporcionan los mecanismos para crear conexiones virtuales entre procesos, usuarios y computadoras.

Diseño e implementación del sistema operativo

                Objetivos del diseño.- Para los usuarios el sistema debe ser cómodo de utilizar, fácil de aprender, fiable, seguro y rápido. El sistema debería ser fácil de diseñar, implementar y mantener; debería ser flexible, fiable, libre de errores y eficiente.

                Mecanismos y políticas.- Las decisiones sobre políticas son importantes para la asignación de recursos. Cuando es necesario decidir si un recurso se asigna o no, se debe tomar una decisión política, y cuando queremos saber cómo y en qué lugar, hay que determinar un mecanismo. Por ejemplo, el temporizador es un mecanismo para asegurar la protección de la CPU, pero la decisión de cuáles deben ser los dato de temporización para un usuario concreto es una decisión de política.

                Implementación.- Las ventajas de usar un lenguaje de implementación de sistemas, para realizar sistemas operativos son las mismas que las que se obtiene cuando el lenguaje se usa para programar aplicaciones: el código puede escribirse más rápido, es más compacto y más fácil de entender y depurar.

Estructura del sistema operativo

Estructura simple.- Sistemas comerciales sin estructura definida, pequeños simples y limitados.

                Estructura de niveles.- Los sistemas operativos pueden dividirse en partes más pequeñas y más adecuadas que lo permitían los sistemas originales MS-DOS o UNIX.  Se logra mantener un control sobre la computadora y las aplicaciones.

               Microkernels.- Su función es proporcionar un mecanismo de comunicaciones entre el programa cliente y los distintos servicios que se ejecutan también en el espacio de usuario, figura la facilidad de ampliar el sistema operativo.

                Módulos.- El kernel dispone de un conjunto de componentes fundamentales y enlaza dinámicamente los servicios adicionales durante el tiempo de ejecución, es más eficaz que un Microkernel ya que los módulos no necesitan invocar un mecanismo de paso de mensajes para comunicarse ya que un módulo puede llamar a cualquier otro módulo.

Máquinas virtuales.- Proporciona una interfaz que es idéntica al hardware, forma entornos de ejecución diferentes, creando la ilusión de cada entorno.

Arranque del sistema.- Para el arranque se debe implementar en firmware, se puede ejecutar directamente del S.O, si este también está en firmware.




Por: 31-03-2009 por jonathany23 | Categorías asociadas: Capítulos 1-2, Paralelo "B"

CAPITULO 1

Un sistema operativo software que gestiona al hardware de la computadora y proporciona un entorno para ejecutar los programas de aplicación y actúa como un sistema intermedio entre el usuario y el hardware de la computadora.

Un Sistema Operativo tres funciones muy importantes:
1.    Definen las formas en que estos recursos se emplean para resolver los problemas informáticos de los usuarios.
2.    Controla y coordina el uso del hardware entre los diversos programas de aplicación por parte de los distintos usuarios.
3.    Proporciona los recursos básicos de cómputo al sistema.

Para que la computadora haga su trabajo de ejecutar programas, los programas deben encontrarse en la memoria principal. La memoria es la única área de almacenamiento de gran tamaño que va de millones a millones de millones de posiciones distintas. Cada palabra de la memoria tiene su propia dirección. Normalmente, la memoria principal es un dispositivo de almacenamiento volátil que pierde su contenido cuando se desconecta o desaparece la conexión. La mayoría de los sistemas informáticos proporcionan un almacenamiento secundario como la extensión a la memoria principal. El almacenamiento secundario más común es el disco magnético, que proporciona un sistema de almacenamiento para programas y datos.

La amplia variedad de sistemas de almacenamiento en el sistema informático puede organizarse en una jerarquía, en función de su velocidad y su coste. Los niveles superiores son más caros, pero más rápidos. A medida que se desciende por la jerarquía, el coste por bit generalmente disminuye, mientras que el tiempo de acceso por regla general aumenta.
Existen varias estrategias diferentes para diseñar un sistema informático puede organizarse en una jerarquía, en función de su velocidad y su coste. Los niveles superiores son más caros, pero más rápidos. A medida que desciende por jerarquía, el coste por bit generalmente disminuye, mientras que el tiempo de acceso por la regla general aumenta.

Los sistemas monoprocesador solo disponen de un procesador, mientras que los sistemas multiprocesador tienen dos o más procesadores que comparten la memoria física y los dispositivos periféricos. El diseño multiprocesador más común es el multiprocesador simétrico (o SMP) , donde todos los procesadores se conectan iguales y operan independientemente unos de todos los procesadores se consideran iguales y operan independientemente unos de otros. Los sistemas conectados en clúster constituyen una forma especializada de sistemas multiprocesador y constan de múltiples computadoras conectadas mediante una red de área local.

El sistema operativo debe asegurar la correcta operación del sistema informático. Para impedir que los programas de usuario interfieran con el apropiado funcionamiento de sistema, el hardware soporta dos modos de trabajo: modo usuario y modo kernel. Diversas instrucciones, como las instrucciones de E/S y las instrucciones de espera, son instrucciones privilegiadas y solo se pueden ejecutar en modo kernel. La memoria en la que el sistema operativo reside debe protegerse frente a modificaciones por parte del usuario. Un temporizador impide los bucles infinitos. Estas características (modo dual, instrucciones privilegiadas, protección de memoria e interrupciones del temporizador) son los bloques básicos que emplea el sistema operativo para conseguir un correcto funcionamiento. Un proceso (o trabajo) es la unidad fundamental de trabajo en un sistema operativo. La gestión de procesos incluye la creación y borrado de procesos y proporciona mecanismos para que los procesos se comuniquen y sincronicen entre si. El sistema operativo gestiona la memoria haciendo un seguimiento de que partes de la misma esta siendo usadas y por quien. El sistema operativo también es responsable de la asignación dinámica y liberación del espacio de memoria.

El sistema operativo también debe ocuparse de la protección y seguridad del propio sistema operativo y de los usuarios. Los sistemas distribuidos permiten a los usuarios los recursos disponibles en una serie de host dispersos geográficamente, conectados través de una red de computadoras.

En un sistema en clúster, las múltiples maquinas pueden realizar cálculos sobres los datos que residen en el sistema de almacenamiento compartido y los cálculos sobre los datos que residen en sistemas de almacenamiento compartido y los cálculos pueden continuar incluso cuando algunos subconjuntos de los miembros del clúster falle.

Las LAN y WAN son los dos tipos de básico de redes. La LAN permite que un conjunto de procesadores distribuidos en una área geográfica pequeña que se comuniquen, mientras que la WAN permiten que se comuniquen diversos procesadores distribuidos en áreas más grandes.

Existen diversos tipos de sistemas informáticos que sirven a propósito específicos. Entre estos se incluyen los sistemas operativos en tiempo real diseñados para entornos embebidos, como son los dispositivos de consumo, automóviles y equipos robóticos. También están los sistemas multimedia implican el subministro de datos multimedia y a menudo, tiene requisitos especiales para visualizar o reproducir audio, video o flujos sincronizados de audio y video.

CAPITULO 2

Podemos ver a un sistema operativo desde varios puntos de vista ya que proporciona una serie de servicios. En el nivel más bajo, las llamadas al sistema permiten que un programa en ejecución haga solicitudes directamente al sistema operativo. En el nivel superior, el intérprete de comandos o Shell proporciona un mecanismo para que el usuario ejecute una solicitud sin escribir un programa. Los comandos pueden proceder de archivos de procesamientos por lotes o directamente de un terminal, cuando se está en modo interactivo o de tiempo compartido.
Los tipos de solicitudes varían de acuerdo con el nivel. El nivel de gestión de las llamadas al sistema debe proporcionar funciones básicas, como las de control de procesos y de manipulación de archivos y dispositivos. Las solicitudes de nivel superior, satisfechas por el intérprete de comandos o los programas de sistemas, se traducen a una secuencia de llamadas al sistema se pueden clasificar en varias categorías: control de programas, solicitudes de E/S. Los errores de programa pueden considerarse como solicitudes implícitas de servicio.

Son necesarias varias tablas para describir la información que define el estado del sistema informático y el de los trabajos que el sistema está ejecutando. Es fundamental que los objetivos del sistema estén bien definidos antes de comenzar el diseño. El tipo de sistema deseado dictara las opciones que se elijan, entre los distintos algoritmos y estrategias necesarios.

Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevos procesos son independientes y no comparten memoria (es decir, información) con el proceso que los ha creado.

En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para sí mismo y en que dichos hilos comparten toda la memoria reservada para el proceso.




Por: 31-03-2009 por mmrobles | Categorías asociadas: Uncategorized

Resumen capitulo 1 y 2

Un sistema operativo es un programa que administra el hardware de una computadora. También proporciona las bases de los programas de aplicación y actúa como un intermediario entre el usuario y el hardware de la computadora.

Tipos de sistemas operativos

En esta sección se describirán las características que clasifican a los sistemas operativos, básicamente se cubrirán tres clasificaciones: sistemas operativos por su estructura (visión interna), sistemas operativos por los servicios que ofrecen y, finalmente, sistemas operativos por la forma en que ofrecen sus servicios (visión externa).

Sistemas Operativos por su Estructura
Según [Alcal92], se deben observar dos tipos de requisitos cuando se construye un sistema operativo, los cuales son:
Requisitos de usuario: Sistema fácil de usar y de aprender, seguro, rápido y adecuado al uso al que se le quiere destinar.
Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma de operación, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad.
A continuación se describen las distintas estructuras que presentan los actuales sistemas operativos para satisfacer las necesidades que de ellos se quieren obtener.

Estructura monolítica.
Es la estructura de los primeros sistemas operativos constituídos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra (Ver Fig. 2). Las características fundamentales de este tipo de estructura son:
Construcción del programa final a base de módulos compilados separadamente que se unen a través del ligador.
Buena definición de parámetros de enlace entre las distintas rutinas existentes, que puede provocar mucho acoplamiento.
Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos de la computadora, como memoria, disco, etc.
Generalmente están hechos a medida, por lo que son eficientes y rápidos en su ejecución y gestión, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o tipos de aplicaciones.

Estructura jerárquica.
A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los sistemas, se hizo necesaria una mayor organización del software, del sistema operativo, donde una parte del sistema contenía subpartes y esto organizado en forma de niveles.
Se dividió el sistema operativo en pequeñas partes, de tal forma que cada una de ellas estuviera perfectamente definida y con un claro interface con el resto de elementos.
Se constituyó una estructura jerárquica o de niveles en los sistemas operativos, el primero de los cuales fue denominado THE (Technische Hogeschool, Eindhoven), de Dijkstra, que se utilizó con fines didácticos (Ver Fig. 3). Se puede pensar también en estos sistemas como si fueran `multicapa’. Multics y Unix caen en esa categoría.
En la estructura anterior se basan prácticamente la mayoría de los sistemas operativos actuales. Otra forma de ver este tipo de sistema es la denominada de anillos concéntricos o “rings” (Ver Fig. 4).
En el sistema de anillos, cada uno tiene una apertura, conocida como puerta o trampa (trap), por donde pueden entrar las llamadas de las capas inferiores. De esta forma, las zonas más internas del sistema operativo o núcleo del sistema estarán más protegidas de accesos indeseados desde las capas más externas. Las capas más internas serán, por tanto, más privilegiadas que las externas.

Máquina Virtual.
Se trata de un tipo de sistemas operativos que presentan una interface a cada proceso, mostrando una máquina que parece idéntica a la máquina real subyacente. Estos sistemas operativos separan dos conceptos que suelen estar unidos en el resto de sistemas: la multiprogramación y la máquina extendida. El objetivo de los sistemas operativos de máquina virtual es el de integrar distintos sistemas operativos dando la sensación de ser varias máquinas diferentes.
El núcleo de estos sistemas operativos se denomina monitor virtual y tiene como misión llevar a cabo la multiprogramación, presentando a los niveles superiores tantas máquinas virtuales como se soliciten. Estas máquinas virtuales no son máquinas extendidas, sino una réplica de la máquina real, de manera que en cada una de ellas se pueda ejecutar un sistema operativo diferente, que será el que ofrezca la máquina extendida al usuario (Ver Fig. 5).

Cliente-servidor ( Microkernel)
El tipo más reciente de sistemas operativos es el denominado Cliente-servidor, que puede ser ejecutado en la mayoría de las computadoras, ya sean grandes o pequeñas.
Este sistema sirve para toda clase de aplicaciones por tanto, es de propósito general y cumple con las mismas actividades que los sistemas operativos convencionales.
El núcleo tiene como misión establecer la comunicación entre los clientes y los servidores. Los procesos pueden ser tanto servidores como clientes. Por ejemplo, un programa de aplicación normal es un cliente que llama al servidor correspondiente para acceder a un archivo o realizar una operación de entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente puede actuar como servidor para otro.” [Alcal92]. Este paradigma ofrece gran flexibilidad en cuanto a los servicios posibles en el sistema final, ya que el núcleo provee solamente funciones muy básicas de memoria, entrada/salida, archivos y procesos, dejando a los servidores proveer la mayoría que el usuario final o programador puede usar. Estos servidores deben tener mecanismos de seguridad y protección que, a su vez, serán filtrados por el núcleo que controla el hardware. Actualmente se está trabajando en una versión de UNIX que contempla en su diseño este paradigma.

Sistemas Operativos por Servicios
Esta clasificación es la más comúnmente usada y conocida desde el punto de vista del usuario final. Esta clasificación se comprende fácilmente con el cuadro sinóptico que a continuación se muestra en la Fig. 6.
Monousuarios
Los sistemas operativos monousuarios son aquéllos que soportan a un usuario a la vez, sin importar el número de procesadores que tenga la computadora o el número de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales típicamente se han clasificado en este renglón.

Multiusuarios
Los sistemas operativos multiusuarios son capaces de dar servicio a más de un usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en una red de comunicaciones. No importa el número de procesadores en la máquina ni el número de procesos que cada usuario puede ejecutar simultáneamente.

Monotareas
Los sistemas monotarea son aquellos que sólo permiten una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez.

Multitareas
Un sistema operativo multitarea es aquél que le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el código fuente de un programa durante su depuración mientras compila otro programa, a la vez que está recibiendo correo electrónico en un proceso en background. Es común encontrar en ellos interfaces gráficas orientadas al uso de menús y el ratón, lo cual permite un rápido intercambio entre las tareas para el usuario, mejorando su productividad.

Uniproceso
Un sistema operativo uniproceso es aquél que es capaz de manejar solamente un procesador de la computadora, de manera que si la computadora tuviese más de uno le sería inútil. El ejemplo más típico de este tipo de sistemas es el DOS y MacOS.

Multiproceso
Un sistema operativo multiproceso se refiere al número de procesadores del sistema, que es más de uno y éste es capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de dos formas: simétrica o asimétricamente. Cuando se trabaja de manera asimétrica, el sistema operativo selecciona a uno de los procesadores el cual jugará el papel de procesador maestro y servirá como pivote para distribuir la carga a los demás procesadores, que reciben el nombre de esclavos. Cuando se trabaja de manera simétrica, los procesos o partes de ellos (threads) son enviados indistintamente a cualesquira de los procesadores disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo este esquema.
Se dice que un thread es la parte activa en memoria y corriendo de un proceso, lo cual puede consistir de un área de memoria, un conjunto de registros con valores específicos, la pila y otros valores de contexto. Us aspecto importante a considerar en estos sistemas es la forma de crear aplicaciones para aprovechar los varios procesadores. Existen aplicaciones que fueron hechas para correr en sistemas monoproceso que no toman ninguna ventaja a menos que el sistema operativo o el compilador detecte secciones de código paralelizable, los cuales son ejecutados al mismo tiempo en procesadores diferentes. Por otro lado, el programador puede modificar sus algoritmos y aprovechar por sí mismo esta facilidad, pero esta última opción las más de las veces es costosa en horas hombre y muy tediosa, obligando al programador a ocupar tanto o más tiempo a la paralelización que a elaborar el algoritmo inicial.

Sistemas Operativos por la Forma de Ofrecer sus Servicios
Esta clasificación también se refiere a una visión externa, que en este caso se refiere a la del usuario, el cómo accesa los servicios. Bajo esta clasificación se pueden detectar dos tipos principales: sistemas operativos de red y sistemas operativos distribuídos.

Sistemas Operativos de Red
Los sistemas operativos de red se definen como aquellos que tiene la capacidad de interactuar con sistemas operativos en otras computadoras por medio de un medio de transmisión con el objeto de intercambiar información, transferir archivos, ejecutar comandos remotos y un sin fin de otras actividades. El punto crucial de estos sistemas es que el usuario debe saber la sintaxis de un cinjunto de comandos o llamadas al sistema para ejecutar estas operaciones, además de la ubicación de los recursos que desee accesar. Por ejemplo, si un usuario en la computadora hidalgo necesita el archivo matriz.pas que se localiza en el directorio /software/codigo en la computadora morelos bajo el sistema operativo UNIX, dicho usuario podría copiarlo a través de la red con los comandos siguientes: hidalgo% hidalgo% rcp morelos:/software/codigo/matriz.pas . hidalgo%. En este caso, el comando rcp que significa “remote copy” trae el archivo indicado de la computadora morelos y lo coloca en el directorio donde se ejecutó el mencionado comando. Lo importante es hacer ver que el usuario puede accesar y compartir muchos recursos.

Sistemas Operativos Distribuídos
Los sistemas operativos distribuídos abarcan los servicios de los de red, logrando integrar recursos ( impresoras, unidades de respaldo, memoria, procesos, unidades centrales de proceso ) en una sola máquina virtual que el usuario accesa en forma transparente. Es decir, ahora el usuario ya no necesita saber la ubicación de los recursos, sino que los conoce por nombre y simplementa los usa como si todos ellos fuesen locales a su lugar de trabajo habitual. Todo lo anterior es el marco teórico de lo que se desearía tener como sistema operativo distribuído, pero en la realidad no se ha conseguido crear uno del todo, por la complejidad que suponen: distribuír los procesos en las varias unidades de procesamiento, reintegrar sub-resultados, resolver problemas de concurrencia y paralelismo, recuperarse de fallas de algunos recursos distribuídos y consolidar la protección y seguridad entre los diferentes componentes del sistema y los usuarios. Los avances tecnológicos en las redes de área local y la creación de microprocesadores de 32 y 64 bits lograron que computadoras mas o menos baratas tuvieran el suficiente poder en forma autónoma para desafiar en cierto grado a los mainframes, y a la vez se dio la posibilidad de intercomunicarlas, sugiriendo la oportunidad de partir procesos muy pesados en cálculo en unidades más pequeñas y distribuirlas en los varios microprocesadores para luego reunir los sub-resultados, creando así una máquina virtual en la red que exceda en poder a un mainframe. El sistema integrador de los microprocesadores que hacer ver a las varias memorias, procesadores, y todos los demás recursos como una sola entidad en forma transparente se le llama sistema operativo distribuído. Las razones para crear o adoptar sistemas distribuídos se dan por dos razones principales: por necesidad ( debido a que los problemas a resolver son inherentemente distribuídos ) o porque se desea tener más confiabilidad y disponibilidad de recursos. En el primer caso tenemos, por ejemplo, el control de los cajeros automáticos en diferentes estados de la república. Ahí no es posible ni eficiente mantener un control centralizado, es más, no existe capacidad de cómputo y de entrada/salida para dar servicio a los millones de operaciones por minuto. En el segundo caso, supóngase que se tienen en una gran empresa varios grupos de trabajo, cada uno necesita almacenar grandes cantidades de información en disco duro con una alta confiabilidad y disponibilidad. La solución puede ser que para cada grupo de trabajo se asigne una partición de disco duro en servidores diferentes, de manera que si uno de los servidores falla, no se deje dar el servicio a todos, sino sólo a unos cuantos y, más aún, se podría tener un sistema con discos en espejo ( mirror ) a través de la red,de manera que si un servidor se cae, el servidor en espejo continúa trabajando y el usuario ni cuenta se da de estas fallas, es decir, obtiene acceso a recursos en forma transparente.

Ventajas de los Sistemas Distribuídos
En general, los sistemas distribuídos (no solamente los sistemas operativos) exhiben algunas ventajas sobre los sistemas centralizados que se describen enseguida.

· Economía: El cociente precio/desempeño de la suma del poder de los procesadores separados contra el poder de uno solo centralizado es mejor cuando están distribuídos.
· Velocidad: Relacionado con el punto anterior, la velocidad sumada es muy superior.
· Confiabilidad: Si una sola máquina falla, el sistema total sigue funcionando.
· Crecimiento: El poder total del sistema puede irse incrementando al añadir pequeños sistemas, lo cual es mucho más difícil en un sistema centralizado y caro.
· Distribución: Algunas aplicaciones requieren de por sí una distribución física.
Por otro lado, los sistemas distribuídos también exhiben algunas ventajas sobre sistemas aislados. Estas ventajas son:
· Compartir datos: Un sistema distribuído permite compartir datos más fácilmente que los sistemas aislados, que tendrian que duplicarlos en cada nodo para lograrlo.
· Compartir dispositivos: Un sistema distribuído permite accesar dispositivos desde cualquier nodo en forma transparente, lo cual es imposible con los sistemas aislados. El sistema distribuído logra un efecto sinergético.
· Comunicaciones: La comunicación persona a persona es factible en los sistemas distribuídos, en los sistemas aislados no. _ Flexibilidad: La distribución de las cargas de trabajo es factible en el sistema distribuídos, se puede incrementar el poder de cómputo.

Por :Mauro Robles




Por: 31-03-2009 por mariuximaza | Categorías asociadas: Capítulos 1-2, Paralelo "B"

INTRODUCCIÓN SISTEMA OPERATIVO

sistemasss1proporciona una introducción a los componentes de un sistema operativo; con información básica sobre la organización de un sistema informativo.

Primeramente un Sistema informático puede dividirse en grandes rasgos como lo son: Hardware, Sistema operativo, Programas de aplicación, Usuario.

Un sistema operativo es un hardware de la computadora que proporciona un entorno para ejecutar los programas de aplicación; ofreciendo al usuario la interfaz para poder interactuar.

Para que un computador ejecute programas, dichos programas deben encontrarse en la memoria principal, esta memoria principal es un dispositivo de almacenamiento volátil y es la única área de almacenamiento de gran tamaño a la que el procesador puede acceder directamente.

La mayoría de los sistemas informáticos proporcionan almacenamiento secundario como extensión de la memoria principal; es decir almacenamiento no volátil, capaz de mantener enormes cantidades de datos de manera permanente; por ejemplo el disco magnético considerado como el más común.

La amplia variedad de sistemas de almacenamiento pueden organizarse de manera jerárquica, considerando a los niveles superiores como los más caros pero también los más veloces.

Cada palabra de la memoria tiene su propia dirección.

Para diseñar un sistema operativo tenemos como estrategia a los sistemas mono procesadores; los cuales disponen de un procesador; y los multiprocesadores que tienes dos o más procesadores, comparten memoria física y dispositivos de periféricos el más común es el multiprocesamiento simétrico (SMP); en donde los procesadores operan independientemente, como los sistemas conectados en el cluster que mantiene conectadas a una red local a varias computadoras.

El sistema operativo debe asegurar la correcta operación del sistema informático. Dentro del funcionamiento tenemos que el hardware soporta dos modos de trabajo que son: modo usuario y modo Kernel. Los bloques básicos como modo dual, instrucciones privilegiadas, protección de memoria e interrupciones del temporizador brindan un correcto funcionamiento.

El SO también es responsable de la asignación dinámica y liberación del espacio de memoria; de la protección y seguridad del propio sistema y de los usuarios.

Los sistemas distribuidos permiten compartir recursos a los usuarios en una serie de hosts dispersos geográficamente, conectados a una red de computadoras. La red LAN que es mucho más rápida que la red WAN son dos tipos básicos de redes. La LAN permite que se comuniquen diversos procesadores en un área geográfica pequeña y la WAN en una más grande.

Existen diversos tipos de sistemas informáticos para propósitos específicos como:

Sistemas embebidos en tiempo real._ Este procesamiento tiene que realizarse dentro de las restricciones definidas o el sistema no funcionará; dentro de estos sistemas tenemos los dispositivos de consumo como automóviles, electrodomésticos, etc.

Sistemas basados en Web._ La influencia del internet y la WORLD WIDE WEB (WWW) ha llevado el desarrollo de sistemas operativos modernos que integran exploradores web y software de red y comunicaciones.

Sistemas multimedia._ implican el suministro de datos multimedia, tienen requisitos especiales para visualizar o reproducir audio, video y flujos sincronizados de los dos.
Sistemas entre iguales._ Es un sistema en red, a diferencia de las LAN, MAN o WAN no existe diferencia entre clientes y servidores.

ESTRUCTURA DEL SISTEMA OPERATIVO

dibujodfd

Los Sistemas Operativos proporcionan una serie de servicios e internamente varían en gran porcentaje en su composición ya que se organizan a lo largo de líneas diferentes. Los errores de programa pueden considerarse como solicitudes implícitas de servicio.

EL diseño de un sistema operativo nuevo es una tarea de gran amplitud; es fundamental que los objetivos del sistema estén bien definidos antes de comenzar el diseño.

Las llamadas al sistema proporcionan una interfaz, las mismas que están disponibles como rutinas escritas C y C++, aunque alguna tareas de nivel bajo necesitan escribirse con instrucciones de lenguaje ensamblador.

Estas se agrupan en 5 categorías: manipulación de archivos, de dispositivos, control de procesos, mantenimiento de comunicaciones e información.

Dos técnicas adecuadas son diseñar el sistema como una secuencia de niveles o usando un microkernel. El conocimiento de una máquina virtual se basa en una arquitectura en niveles; esta maquita virtual nos permite cargar otros sistemas operativos por encima de esta.

Para que un sistema Informático funcione, debe inicializarse la CPU y ejecutarse el programa de arranque implementado firmware.

Nombre: Mariuxi Maza