Sistema Operativo

Sistema Operativo



Es un programa que actúa de intermediario entre el usuario y el Hardware de un computador, y el propósito fundamental es proporcionar un entorno en el cual el Usuario pueda ejecutar programas.
Es un instrumento indispensable para hacer de la computadora un objeto útil, además actúa como administrador de los recursos del computador así como de los programas que Maneja.
¿Objetivos de los Sistemas Operativos?
Ø Brindar al Usuario una forma amigable y sencilla de operar
Ø Interpretar, Codificar, y emitir Órdenes  al Procesador Central
Ø Que el Hardware del Computador se emplee de manera eficiente.
Ø Debe Controlar los Dispositivos de Entrada/Salidas, y los programas de los usuarios.
Ø Funciona como un programa Control, para prevenir errores.
Ø Resolver los problemas de los usuarios de forma fácil.
Ø La Operación Eficiente de un Sistema de Computación.

¿Cómo está conformado un Sistema Operativo?
Está conformado básicamente por cuatro módulos
        
Ø Núcleo o Kernel.
Ø Administrador de Memoria.
Ø Sistema de Entrada/Salida.
Ø Administrador de archivos

Núcleo o Kernel
Ø Es el módulo de más bajo nivel de un sistema operativo, pues descansa directamente sobre el hardware de la computadora.
Ø Entre las tareas que desempeña se incluyen el manejo de las interrupciones, la asignación de trabajo al procesador y el proporcionar una vía de comunicación entre los distintos programas
Ø En general, el núcleo se encarga de controlar el resto de los módulos y sincronizar su ejecución. El núcleo contiene un su módulo denominado planificador, el cual se encarga de asignar tiempo del procesador a los programas, de acuerdo a una cierta política de planificación que varía de un sistema operativo a otro.
Ø  Normalmente se utiliza una jerarquía de prioridades que determinan cómo se asignará el tiempo del CPU a cada programa.

Administrador de Memoria
Ø Este módulo se encarga de asignar ciertas porciones de la memoria principal RAM a los diferentes programas o partes de los programas que la necesiten, mientras el resto de los datos y los programas se mantienen en los dispositivos de almacenamiento masivo.
Ø La forma más común de administración de la memoria supone crear una memoria virtual; con este sistema, la memoria de la computadora aparece, para cualquier usuario del sistema, mucho mayor de lo que es en realidad. Siguiendo un determinado orden.   

Sistema de entrada/salida (E/S)
Ø Este componente presenta al usuario la E/S de datos como una cuestión independiente del dispositivo; es decir, para los usuarios, todos los dispositivos tienen las mismas características y son tratados de la misma forma, siendo el sistema operativo el encargado de atender las particularidades de cada uno de ellos como su velocidad de operación.
Ø Una técnica muy común, especialmente en salida, es el uso de spoolers. Los datos de salida se almacenan de forma temporal en una cola situada en un dispositivo de almacenamiento masivo el spool, hasta que el dispositivo periférico requerido se encuentre libre; de este modo se evita que un programa quede retenido porque el periférico no esté disponible. El sistema operativo dispone de llamadas para añadir y eliminar archivos del spool.

Administrador de Archivos
Se encarga de mantener la estructura de los datos y los programas del sistema y de los diferentes usuarios que se mantienen en archivos y de asegurar el uso eficiente de los medios de almacenamiento masivo. El administrador de archivos también supervisa la creación, actualización y eliminación de los archivos, manteniendo un directorio con todos los archivos que existen en el sistema en cada momento y coopera con el módulo administrador de memoria durante las transferencias de datos desde y hacia la memoria principal.


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 a los servicios. Bajo esta clasificación se pueden detectar dos tipos principales:
Sistemas Operativos de Red y Sistemas Operativos Distribuidos


Sistemas Operativos Distribuidos
Ø Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es transparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es  aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores
Ø En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.
Ø Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo.
Ø Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.

Sistemas Operativos de Red
Ø Son aquellos sistemas que mantienen a dos o más computadoras unidas a través de algún medio de comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema.
Ø El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware.
Ø Los Sistemas Operativos de red más ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.

Sistemas Operativos por Lotes
Ø Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el procesamiento en serie.
Ø Estos sistemas son de los más tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas.

Sistemas Operativos de Tiempo Real
Ø Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que lo requieran. Se utilizan en entornos donde son procesados un gran número de sucesos o eventos.
Ø Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas como control de tráfico aéreo, bolsas de valores, control de refinerías, control de laminadores. También en el ramo automovilístico y de la electrónica de consumo, las aplicaciones de tiempo real están creciendo muy rápidamente. Otros campos de aplicación de los Sistemas Operativos de tiempo real son los siguientes.

Sistemas Operativos de Tiempo Compartido.
Ø Permiten la simulación de que el sistema y sus recursos son todos para cada usuario. El usuario hace una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá en la Terminal del usuario.
Ø Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administración de memoria principal y secundaria.

Sistemas Operativos Paralelos

Ø En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo.

Ø En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo es decir, atender de manera concurrente varios procesos de un mismo usuario. Así, en lugar de esperar a que el proceso termine de ejecutarse como lo haría normalmente, regresa a atender al usuario inmediatamente después de haber creado el proceso.




Sistemas Operativos por Servicios Visión Externa.
Se Subdivide Por el Número de Usuarios:

Sistemas Operativos por Servicios
Sistema operativo por servicios
1.     Por el número de usuarios=(Mono usuarios, Multiusuario)
2.     Por el número de tareas.=(Mono tareas, Multitareas)
3.     Por el número de procesadores.=(Uniproceso, Multiproceso)
Multiproceso = (Simétricos, Asimétricos)

Sistema Operativo Monousuario
Ø Los sistemas operativos Monousuario 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.

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.
En esta categoría se encuentran todos los sistemas que cumplen simultáneamente las necesidades de dos o más usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes. En otras palabras consiste en el fraccionamiento del tiempo (timesharing).

Sistema Operativo Monotarea.
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.
Los sistemas operativos Monotarea son más primitivos y, solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una
Sistema Operativo Multitarea.
Un sistema operativo multitarea es aquél que le permite al usuario estar realizando varias labores al mismo tiempo. Es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una computadora procesa varias tareas al mismo tiempo.
Existen varios tipos de multitareas. La conmutación de contextos (context Switching) es un tipo muy simple de multitarea en el que dos o más aplicaciones se cargan al mismo tiempo, pero en el que solo se está procesando la aplicación que se encuentra en primer plano (la que ve el usuario

Sistema Operativo de 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.

Sistema Operativo de 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.

Sistema Operativo Uniproceso

Asimétrica.
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.
Simétrica.
Cuando se trabaja de manera simétrica, los procesos o partes de ellos (threads) son enviados indistintamente a cual quiera de los procesadores disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo este esquema.

SISTEMA OPERATIVO 

¿Qué es un Sistema Operativo?
Es un programa que actúa de intermediario entre el usuario y el Hardware de un computador, y el propósito fundamental es proporcionar un entorno en el cual el Usuario pueda ejecutar Programas. Es un instrumento indispensable para hacer de la computadora un objeto útil, además actúa como administrador de los Recursos del computador así como de los programas que Maneja.

Funciones de los sistemas operativos
Ø Interpretar los comandos que permiten al usuario comunicarse con el Ordenador.
Ø Coordina y manipula el Hardware del Computador, tales como (Las Memorias, Las Impresoras, Las unidades de Discos, El Teclado, o el Mouse).
Ø Organizar los Archivos en diversos dispositivos de Almacenamiento tales como (Disco Duro, Flexibles, Discos Compacto, o Cintas Magnéticas).
Ø Gestiona los errores de Hardware y la pérdida de datos.
Ø Sirve de Base para la creación e instalación de Software, logrando que equipos de marcas distintas funcionen de manera análoga, salvando la diferencias existente entre ambos.
Características de los sistemas operativos
Ø Conveniencia: que sea más conveniente  el uso de una computadora
Ø Eficiencia: Un Sistema Operativo que permita que los recursos de la computadora se usen de la manera más eficiente posible.
Ø Habilidad para Evolucionar: que permita el desarrollo  de las actualizaciones de los programas, o introducción efectiva de nuevas funciones del sistema, sin interferir con el servicio que ofrece.
Ø Encargado de Administrar el Hardware: El sistema pueda manejar de una mejor manera los recursos de la computadora en cuanto al hardware se refiere, además de asignar a cada proceso, una parte del procesador para poder compartir los recursos.
Ø Relacionar Dispositivos: Se debe encargar de comunicar a los dispositivos y periféricos cuando el usuario así lo requiera.
Ø Organizar Datos para Accesos Rápido y Seguro:
Ø Manejar las Comunicaciones en Red: este debe permitir al usuario manejar con alta facilidad todo lo referente a la instalación y uso de la redes de computadoras.
Ø Procesamiento por Bytes a traves del Bus de Datos.
Ø Facilitar las Entradas y Salidas: Un sistema Operativo debe hacerle fácil al usuario el acceso y manejo de los dispositivos de Entrada y Salida de la computadora.
Ø Técnica de Recuperación de Errores.
Ø Evitar que otros Usuario Interfieran. El sistema Operativo evita que los usuarios se bloqueen entre ellos, informándoles cuando esa aplicación este siendo ocupada por otro usuario.
Ø Permitir que se puedan compartir el Hardware y los datos entre los usuarios.

Tipos de Sistemas Operativos.
Actualmente los sistemas operativos se dividen en tres clasificaciones.
Ø 1- ) Sistemas Operativos por su estructura (visión interna)
Ø 2- ) Sistemas Operativos por los servicios que ofrecen
Ø 3- ) Sistemas Operativos por la forma en que ofrecen sus servicios (visión externa).


Sistemas Operativos por su estructura (visión interna)            
Ø 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.

Sistemas Operativos por su Estructura.
Ø Estructura monolítica: Es la estructura de los primeros sistemas operativos constituidos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra.
Ø Este tipo de estructura son: Construcción del programa final a base de módulos compilados separadamente que se unen a través de los ligados.
Ø 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.

Características fundamentales de este tipo de estructura.
Ø Construcción del programa final a base de módulos compilados separadamente que se unen a través del ligado.
Ø 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 interfaces con el resto de elementos.

Máquina Virtual.
Ø Se trata de un tipo de sistemas operativos que presentan una interfaces 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.

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.