miércoles, 19 de noviembre de 2014

Requisitos para instalar los principales sistemas operativos.

Windows XP


Éstos son los requisitos mínimos de la funcionalidad básica. Los requisitos reales varían dependiendo de la configuración del sistema y de los programas y características que decida instalar. Si instala Windows XP sobre una red, quizás necesite más espacio libre en el disco duro.

Los requisitos mínimos de hardware para Windows XP Home Edition son:

  • Procesador Pentium a 233 megahercios (MHz) o mayor velocidad (se recomienda 300 MHz)
  • Al menos 64 megabytes (MB) de RAM (se recomienda 128 MB)
  • Un mínimo de 1,5 gigabytes (GB) de espacio disponible en el disco duro
  • Unidad de CD-ROM o DVD-ROM
  • Un teclado y un mouse de Microsoft, o algún otro dispositivo señalador compatible
  • Adaptador de vídeo y monitor con una resolución Super VGA (800 x 600) o mayor
  • Tarjeta de sonido
  • Altavoces o auriculares


Windows 7

Si desea ejecutar Windows 7 en su equipo, necesitará:
  • Procesador de 32 bits (x86) o 64 bits (x64) a 1 gigahercio (GHz) o más.
  • Memoria RAM de 1 gigabyte (GB) (32 bits) o memoria RAM de 2 GB (64 bits).
  • Espacio disponible en disco rígido de 16 GB (32 bits) o 20 GB (64 bits).
  • Dispositivo gráfico DirectX 9 con controlador WDDM 1.0 o superior.


Windows Vista

Requisitos de hardware mínimos recomendados para Windows Vista

En la lista siguiente se describen los requisitos de hardware mínimos recomendados para la funcionalidad básica de las diferentes ediciones de Windows Vista. Los requisitos reales de hardware variarán según la configuración del sistema y los programas y características que instale. Si instala Windows Vista a través de una red, quizás se necesite más espacio en el disco duro.
    Windows Vista Home Basic
    • Procesador de 32 bits (x86) o de 64 bits (x64) a 800 megahercios (MHz)
    • 512 megabytes (MB) de memoria del sistema
      Nota: en las configuraciones del sistema que utilizan memoria del sistema como memoria de gráficos, debe haber disponibles al menos 448 MB de memoria del sistema para el sistema operativo después de asignar memoria para los gráficos.
    • Tarjeta gráfica de clase de DirectX 9
    • 32 MB de memoria de gráficos
    • Disco duro de 20 gigabytes (GB) con 15 GB de espacio libre
    • Unidad DVD interna o externa
    • Capacidad de acceso a Internet
    • Capacidad de salida de audio

    Windows Vista Home Premium, Windows Vista Business, Windows Vista Enterprise y Windows Vista Ultimate
    • Procesador de 32 bits (x86) o de 64 bits (x64) a 1 gigahercios (GHz)
    • 1 GB de memoria del sistema
    • Tarjeta de gráficos con capacidad para Windows Aero

      Nota : esto incluye una tarjeta gráfica de clase DirectX 9 que admita lo siguiente:
      • Un controlador WDDM
      • Pixel Shader 2.0 en hardware
      • Admite 32 bits por píxel
    • 128 MB de memoria de gráficos (como mínimo)
    • Disco duro de 40 GB con 15 GB de espacio libre (los 15 GB de espacio libre son para el almacenamiento de archivos temporales durante la instalación o actualización)
    • Unidad DVD interna o externa
    • Capacidad de acceso a Internet
    • Capacidad de salida de audio

Nota: una tarjeta gráfica compatible con Windows Aero que cumple los siguientes requisitos:
  • Admite un controlador Windows Display Driver Model (WDDM)
  • Tiene una unidad de procesamiento de gráficos (GPU) de clase DirectX 9 que admite Pixel Shader 2.0
  • Admite 32 bits por píxel
  • Pasa la prueba de aceptación de Windows Aero del Kit de controladores de Windows (WDK, Windows Driver Kit)
Windows 8

Si quieres ejecutar Windows 8.1 en tu PC, esto es lo que necesitas:
  • Procesador: 1 gigahercio (GHz) o más rápido, compatible con PAE, NX y SSE2 
  • RAM: 1 gigabyte (GB) (32 bits) o 2 GB (64 bits)
  • Espacio en el disco duro: 16 GB (32 bits) o 20 GB (64 bits)
  • Tarjeta gráfica: dispositivo gráfico Microsoft DirectX 9 con controlador WDDM
Si usas Windows 8, puedes obtener una actualización gratuita de Windows 8.1. Solo tienes que pulsar o hacer clic en el icono de la Tienda Windows de la pantalla de inicio. Cuando actualices a Windows 8.1 deberías conseguir la actualización automáticamente. 

Ubuntu/Linux

Los requisitos mínimos «recomendados», teniendo en cuenta los efectos de escritorio, deberían permitir ejecutar una instalación de Ubuntu.

    * Procesador x86 a 1 GHz.
    * Memoria RAM de 1 GB.
    * Disco Duro de 15 GB (swap incluida).
    * Tarjeta gráfica y monitor capaz de soportar una resolución de 800x600.
    * Lector de CD-ROM, puerto USB o tarjeta de red.
    * Conexión a Internet puede ser útil.

Los efectos de escritorio, proporcionados por Compiz, se activan por defecto en las siguientes tarjetas gráficas:

    * Intel (i915 o superior, excepto GMA 500, nombre en clave «Poulsbo»)
    * NVidia (con su controlador propietario o el controlar abierto incorporado Nouveau)
    * ATI (a partir del modelo Radeon HD 2000 puede ser necesario el controlador propietario)

Si se dispone de una computadora con un procesador de 64 bits (x86-64), y especialmente si dispone de más de 3 GB de RAM, se recomienda utilizar la versión de Ubuntu para sistemas de 64 bits.







APPLE
Requisitos del sistema para OS X Lion y Mac OS X v10.6
Más información acerca de los requisitos del sistema para OS X Lion y Mac OS X v10.6.

Requisitos del sistema de OS X Lion

Para usar Lion, asegúrate de que tu ordenador cuente con lo siguiente:
  • Un procesador Intel Core 2 Duo, Core i3, Core i5, Core i7 o Xeon
  • Mac OS X v10.6.6 o posterior para instalarlo por medio del Mac App Store (v10.6.8 recomendado)
  • 7 GB de espacio disponible en el disco
  • 2 GB de RAM
Si tu Mac no cumple estos requisitos, tendrás que actualizarlo antes de instalar Lion.
Para obtener más información, consulta OS X Lion - Especificaciones técnicas.

Requisitos del sistema de Mac OS X v10.6 Snow Leopard

Para instalar Snow Leopard por primera vez, necesitas un Mac con:
  • Un procesador Intel
  • Una unidad de DVD interna o externa, o Compartir DVD o CD
  • Al menos 1 GB de RAM (se recomienda utilizar RAM adicional)
  • Una pantalla integrada o un monitor conectado a una tarjeta de vídeo suministrada por Apple compatible con tu ordenador
  • Al menos 5 GB de espacio disponible en el disco, o 7 GB de espacio en el disco si instalas las herramientas para desarrolladores
Para obtener más información, consulta Mac OS X v10.6 Snow Leopard - Guía de instalación y configuración.



lunes, 17 de noviembre de 2014

Interpretes

Los interpretes son traductores que toman o leen código fuente, lo traducen y lo ejecutan este proceso se repite por cada ejecución del programa.


Es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción.

Usando un intérprete, un solo archivo fuente puede producir resultados iguales incluso en sistemas sumamente diferentes (ejemplo. una PC y un Xbox One). Usando un compilador, un solo archivo fuente puede producir resultados iguales solo si es compilado a distintos ejecutables específicos a cada sistema.



Un intérprete permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres. Usualmente, este tipo de instrucciones es imposible de tratar por medio de compiladores. Los lenguajes que incluyen este tipo de operadores y que, por tanto, exigen un intérprete, se llaman interpretativos. Los lenguajes compilativos, que permiten el uso de un compilador, prescinden de este tipo de operadores. En pocas palabras "el compilador sólo traduce; el intérprete decodifica y ejecuta. "









Vídeo de un ejemplo de como funciona un Interprete con PYTHON



Compiladores

Un compilador 

Es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser un código intermedio (bytecode), o simplemente texto. Este proceso de traducción se conoce como compilación.




USOS
Los compiladores trabajan en fases, las cuales transforman el programa fuente de una representación en otra.

Se usa con el fin de analizar las secciones, administrar la taba de símbolos y manejar los errores, para esto utiliza el análisis léxico, análisis sintáctico, análisis semántico, generación de código intermedio, optimización de código y generación de código.

Dentro de las característica importantes de un compilador es que traduce de un Lenguaje de alto nivel a uno de bajo nivel.



FUNCIÓN

La función principal que cumple es traducir a un lenguaje mucho mas sencillo y entendible por la maquina, informa al usuario si existen errores en el código fuente con el fin de ejecutar la aplicación sin problema, si existe algún error simplemente se detiene.

También registra los identificadores utilizados en el programa fuente y toma la información de los atributos de cada identificador.










Clasificación de Compiladores

El programa compilador traduce las instrucciones en un lenguaje de alto nivel a instrucciones que la computadora puede interpretar y ejecutar. Para cada lenguaje de programación se requiere un compilador separado. El compilador traduce todo el programa antes de ejecutarlo. Los compiladores son, pues, programas de traducción insertados en la memoria por el sistema operativo para convertir programas de cómputo en pulsaciones electrónicas ejecutables (lenguaje de máquina). Los compiladores pueden ser de:


una sola pasada: examina el código fuente una vez, generando el código o programa objeto.

pasadas múltiples: requieren pasos intermedios para producir un código en otro lenguaje, y una pasada final para producir y optimizar el código producido durante los pasos anteriores.

Optimización: lee un código fuente, lo analiza y descubre errores potenciales sin ejecutar el programa.

Compiladores incrementales: generan un código objeto instrucción por instrucción (en vez de hacerlo para todo el programa) cuando el usuario teclea cada orden individual. El otro tipo de compiladores requiere que todos los enunciados o instrucciones se compilen conjuntamente.


Ensamblador: el lenguaje fuente es lenguaje ensamblador y posee una estructura sencilla.

Compilador cruzado: se genera código en lenguaje objeto para una máquina diferente de la que se está utilizando para compilar. Es perfectamente normal construir un compilador de Pascal que genere código para MS-DOS y que el compilador funcione en Linux y se haya escrito en C++.

Compilador con montador: compilador que compila distintos módulos de forma independiente y después es capaz de enlazarlos.

Autocompilador: compilador que está escrito en el mismo lenguaje que va a compilar. Evidentemente, no se puede ejecutar la primera vez. Sirve para hacer ampliaciones al lenguaje, mejorar el código generado, etc.

Metacompilador: es sinónimo de compilador de compiladores y se refiere a un programa que recibe como entrada las especificaciones del lenguaje para el que se desea obtener un compilador y genera como salida el compilador para ese lenguaje. 

El desarrollo de los metacompiladores se encuentra con la dificultad de unir la generación de código con la parte de análisis. 


Descompilador: es un programa que acepta como entrada código máquina y lo traduce a un lenguaje de alto nivel, realizando el proceso inverso a la compilación.







QUE ES UN COMPILADOR





Ensambladores


Ensamblador 



Es un programa que se utiliza para convertir código fuente (lenguaje Assembly) a código objeto (lenguaje máquina). El lenguaje Assembly se creo con el propósito de facilitar la escritura de programas ya que el lenguaje binario es bastante complicado y difícil de entender, este lenguaje usa referencias simbólicas para evitar cálculos tediosos. El lenguaje Assembly sigue siendo utilizado para varios dispositivos programables como los microcontroladores.



Qué es el ensamblador:

El sistema alfanumérico para escribir código máquina mediante expresiones abreviadas (mnemotécnicos).

La compilación es más complicada porque incluye la conversión de operaciones matemáticas complejas, comandos de lenguaje natural o tipos de comandos complejos.

Cada ordenador tiene su propio lenguaje ensamblador, exclusivo de su CPU; un lenguaje de alto nivel (LAN) puede ser compilado en distintas máquinas.



Tipos de ensambladores:

Ensambladores cruzados: Se denominan así a los ensambladores que se utilizan en una computadora que posee el procesador diferente al que tendrán las computadoras donde se va a ejecutar el programa objeto producido.

Ensambladores residentes: 
Son aquellas que permanecen en la memoria principal de la computadora y cargar para su ejecución al programa objeto producido.

Micro ensambladores: 
Al programa que indica al intérprete de instrucciones de la CPU como debe actuar se le denomina microprograma. El programa que ayuda a realizar este microprograma se llama micro ensamblador.

Macro ensambladores: Son ensambladores que permiten el uso de macroinstrucciones.

Ensambladores de una fase:
 Leen una línea y la traducen directamente para producir una instrucción de lenguaje maquina o la ejecuta si se trata de una pseudosinstrucción. Se construye la tabla de símbolos a medida que aparecen las definiciones de variables, etiquetas, etc.

Ensambladores de dos fases: 
Realiza la traducción en dos etapas: 1° fase leen el programa fuente y construyen la tabla de símbolos, 2° fase vuelve a leer el programa fuente y pueden ir traduciendo totalmente pues reconocen la totalidad de los símbolos.









Tipos de Lenguajes





El lenguaje de programación es un lenguaje artificial que se utiliza para definir una secuencia de instrucciones para su posterior procesamiento. En muchas ocasiones, resulta inentendible para el común de la gente. Vamos a intentar aclarar algunas cuestiones al respecto. 

La traducción de una serie de instrucciones en lenguaje ensamblador (el código fuente) a un código máquina (o código objeto) no es un proceso muy complicado y se realiza normalmente por un programa especial llamado compilador. Estas instrucciones son las que permiten que la computadora ejecute aquellas funciones que nosotros, como usuarios, le ordenamos.













El mencionado compilador crea una lista de instrucciones de código máquina, el código objeto, basándose en un código fuente. El código objeto resultante es un programa rápido y listo para funcionar, pero que puede hacer que falle el ordenador si no está bien diseñado. 

Lenguajes de bajo nivel 

Vistos a muy bajo nivel, los microprocesadores procesan exclusivamente señales electrónicas binarias. Dar una instrucción a un microprocesador supone en realidad enviar series de unos y ceros espaciadas en el tiempo de una forma determinada.Esta secuencia de señales se denomina código máquina. 

El código representa normalmente datos y números e instrucciones para manipularlos. Un modo más fácil de comprender el código máquina es dando a cada instrucción un nombre fácil de recordar, como por ejemplo STORE, ADD o JUMP. Esta abstracción da como resultado el ensamblador, un lenguaje de muy bajo nivel que es específico de cada microprocesador. 













Lenguajes de alto nivel 

Por lo general se piensa que los ordenadores son máquinas que realizan tareas de cálculos o procesamiento de textos. La descripción anterior es sólo una forma muy esquemática de ver una computadora. Hay un alto nivel de abstracción entre lo que se pide a la computadora y lo que realmente comprende. Existe también una relación compleja entre los lenguajes de alto nivel y el código máquina. 

Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como por ejemplo el inglés. EnBASIC, el lenguaje de alto nivel más conocido, los comandos como 'IF CONTADOR = 10 THEN STOP' pueden utilizarse para pedir a la computadora que pare si CONTADOR es igual a 10. 

Sin embargo, para muchas personas esta forma de trabajar es un poco frustrante, porque aunque las computadoras parecen comprender un lenguaje natural, lo hacen en realidad de una forma rígida y sistemática. Es así que en la actualidad se emplean otros tipos de lenguajes para poder ejecutar las funciones de un ordenador básico, cuyo lenguaje de funcionamiento interno queda en manos de especialistas, mientras que los usuarios trabajan con aplicaciones que no requieren el manejo de un argot técnico.


Historia de los lenguajes de programación





Memoria Virtual



Memoria Virtual

El método diseñado por Fotheringham en 1961 se conoce como Memoria Virtual, la idea es que el tamaño combinado de la pila, programa y datos puede exceder la memoria física disponible para ello. El S.O. mantiene en memoria aquellas partes del programa que se deben permanecer en memoria y el resto lo deja en disco, las partes entre el disco y la memoria se intercambian de modo que se vayan necesitando.


La memoria virtual es una técnica de gestión de la memoria que permite que el sistema operativo disponga, tanto para el software de usuario como para sí mismo, de mayor cantidad de memoria que esté disponible físicamente. La mayoría de los ordenadores tienen cuatro tipos de memoria: registros en la CPU, La memoria cache  (tanto dentro como fuera del CPU), la memoria RAM y el disco duro. En ese orden, van de menor capacidad y mayor velocidad a mayor capacidad y menor velocidad.


Paginación y memoria virtual


La memoria virtual usualmente (pero no necesariamente) es implementada usando paginación. En paginación, los bits menos significativos de la dirección de memoria virtual son preservados y usados directamente como los bits de orden menos significativos de la dirección de memoria física. Los bits más significativos son usados como una clave en una o más tablas de traducción de direcciones (llamadas tablas de paginación), para encontrar la parte restante de la dirección física buscada.







Memoria Virtual en Linux


Como funciona la Memoria Virtual en Windows



Gestión de Memoria Virtual


Administración de memoria








Administración de la memoria sin intercambio o paginación.




Los sistemas de administración de memoria se pueden clasificar en dos tipos. Los que desplazan los procesos de la memoria principal al disco y viceversa durante la ejecución (intercambio y paginación) y aquellos que no.




Monoprogramación sin intercambio o paginación.

Es en forma secuencial pues solo se tiene un objeto en memoria en cada instante, el usuario carga toda la memoria con un programa, esto implica que cada proceso debe contener controladores de dispositivo para cada uno de los dispositivos E/S que utilice.


Multiprogramación y uso de la memoria.


La multiprogramación facilita la programación de una aplicación al dividirla en dos o mas procesos. La mayoría de los procesos tardan cierto tiempo en la espera de datos de dispositivos E/S.

Un modelo para el uso y aprovechamiento de la CPU es el modelo probabilístico dado por la fórmula :

Uso de la CPU = 1 - pn


Multiprogramación con particiones fijas

El objetivo en todo esto es tener mas de un proceso en memoria a la vez, solución posible sería dividir la memoria en n partes al inicio de una sesión de uso de la máquina, pero aún así se obtiene el desperdicio de particiones grandes con una tarea pequeña, la respuesta puede ser tener particiones pequeñas también.

Las tareas que van llegando se forman hasta que una partición adecuada está disponible, en cuyo momento la tarea se carga en esa partición y se ejecuta hasta terminar.






Intercambio

En un sistema por lotes la organización de la memoria en particiones fijas es adecuado pero en un ambiente multiusuario la situación es distinta con el tiempo compartido, ya que existen mas usuarios de los que puede albergar la memoria, por lo que es conveniente albergar el exceso de los procesos en disco., por supuesto para ser ejecutados estos procesos deben ser trasladados a la memoria principal. Al traslado de procesos de disco a memoria y viceversa se le llama intercambio.


Multiprogramación con particiones variables.

Mediante un algoritmo de administración de memoria las particiones variables varían de forma dinámica durante el uso de la máquina, evitando desperdicio de memoria

Otros métodos de administración de memoria que tenemos son:

la administración de memoria con mapa de bits

la memoria se divide en unidades de asignación, a cada asignación le corresponden un bit en el mapa de bits, un mapa de bits es una forma sencilla para llevar un registro de las palabras de la memoria en una cantidad fija de memoria.

la administración de memoria con listas ligadas

otra forma de mantener un registro en memoria es mediante una lista ligada donde cada entrada de la lista específica un hueco o un proceso.

la administración de memoria con el sistema de los asociados basado en el sistema binario o utiliza para las direcciones.

























Administración de proceso



El siguiente documento describe las características que presentan los sistemas operativos para la administración de procesos en los sistemas mono y multiprocesadores. 







¿Qué es un proceso?


Un proceso es un programa en ejecución.

Los procesos pueden ser cooperantes o independientes, en el primer caso se entiende que los procesos interactúan entre sí y pertenecen a una misma aplicación. En el caso de procesos independientes en general se debe a que no interactúan y un proceso no requiere información de otros o bien porque son procesos que pertenecen a distintos usuarios.

Estados de los procesos

Un proceso puede estar en cualquiera de los siguientes tres estados: Listo, En ejecución y Bloqueado.

Los procesos en el estado listo son los que pueden pasar a estado de ejecución si el planificador los selecciona. Los procesos en el estado ejecución son los que se están ejecutando en el procesador  en ese momento dado. Los procesos que se encuentran en estado bloqueado están esperando la respuesta de algún otro proceso para poder continuar con su ejecución. Por ejemplo operación de E/S.





Implantación de los procesos


La implementación del modelo de procesos se logra debido a que el sistema operativo almacena en una tabla denominada tabla de control de procesos información relativa a cada proceso que se esta ejecutando en el procesador. Cada línea de esta tabla representa a un proceso.

La información que se almacena es la siguiente:

1) Identificación del proceso.

2) Identificación del proceso padre.

3) Información sobre el usuario y grupo.

4) Estado del procesador.

5) Información de control de proceso

5.1) Información del planificador.

5.2) Segmentos de memoria asignados.

5.3) recursos asignados.









Objetivos de la planificación


Los objetivos de la planificación de proceso son:

Equidad, todos los procesos deben poder ejecutarse

Eficacia, mantener ocupada la CPU un 100% del tiempo

Tiempo de respuesta, minimizar el tiempo de respuesta al usuario

Tiempo de regreso, minimizar el tiempo que deben esperar los usuarios por lotes para obtener sus resultados

Rendimiento, maximizar el número de tareas procesadas por hora.










domingo, 16 de noviembre de 2014

Componentes y servicios básicos de un sistema operativo

COMPONENTES



1. Gestión de procesos
Un proceso es, sencillamente, un programa en ejecución que necesita una serie de recursos para realizar su tarea: tiempo de CPU (Central Process Unit o Unidad de Proceso Central, es decir, el procesador principal del ordenador), memoria, archivos y dispositivos de E/S (entrada/salida).


Es función del sistema operativo:

Planificación de procesos: decide qué proceso emplea el procesador en cada instante de tiempo.

Mecanismos de comunicación entre procesos: permiten comunicar a dos procesos del sistema operativo.

Mecanismos de sincronización: permiten coordinar a procesos que realizan accesos concurrentes a un cierto recurso.




2. Administración de memoria principal

La memoria es como una gran almacén con casillas (bytes) a los que se accede mediante una dirección única. Este almacén de datos es compartido por la CPU y los dispositivos de E/S.

El Sistema operativo se encarga de gestionar este espacio como responsable de:
Conocer qué partes de la memoria están siendo utilizadas y por quién.
Decidir qué procesos se cargarán en memoria cuando haya espacio disponible
Asignar y reclamar espacio de memoria cuando sea necesario




3. Administración de ficheros

Gestiona la manera en que la información se almacena en dispositivos de entrada/salida que permiten el almacenamiento estable.






4. Gestión de los dispositivos de entrada/salida (driver)

Parte del sistema operativo que conoce los detalles específicos de cada dispositivo, lo que permite poder operar con él.

Además, el sistema operativo ofrece:

Lanzador de aplicaciones: permite el lanzamiento de un programa. Esto incluye los intérpretes de órdenes textuales y los basados en gestores de ventanas.

Llamadas al sistema: conjunto de servicios que los procesos pueden solicitar al sistema operativo.


El sistema operativo está compuesto por un conjunto de paquetes de software que pueden utilizarse para gestionar las interacciones con el hardware.Estos elementos se incluyen por lo general en este conjunto de software:

• El núcleo, que representa las funciones básicas del sistema operativo, como por ejemplo, la gestión de la memoria, de los procesos, de los archivos, de las entradas/salidas principales y de las funciones de comunicación.

• El intérprete de comandos, que posibilita la comunicación con el sistema operativo a través de un lenguaje de control, permitiendo al usuario controlar los periféricos sin conocer las características del hardware utilizado, la gestión de las direcciones físicas, etcétera.

• El sistema de archivos, que permite que los archivos se registren en una estructura arbórea.




SERVICIOS



Servicios Del Sistema Operativo


El S.O. ofrece a los programas una serie de servicios para trabajar en el computador:

• Ejecución de programas
• Operaciones de E/S
• Manipulación de archivos y directorios
• Comunicación entre procesos
• Comunicación con equipos remotos
• Administración de la protección y seguridad
• Leer el estado del sistema (hora, nº de procesos, etc.)







Tipos de Sistemas Operativos

TIPOS DE SISTEMAS OPERATIVOS

Sistemas Operativos de multiprogramación (o Sistemas Operativos de multitarea).

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 esta procesando la aplicación que se encuentra en primer plano (la que ve el usuario). 
Para activar otra tarea que se encuentre en segundo plano, el usuario debe traer al primer plano la ventana o pantalla que contenga esa aplicación.
Se distinguen por sus habilidades para poder soportar la ejecución de dos o más trabajos activos (que se están ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna tarea que ejecutar, aprovechando al máximo su utilización.
Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno está usando el procesador, o un procesador distinto, es decir, involucra máquinas con más de una UCP.

Las características de un Sistema Operativo de multiprogramación o multitarea son las siguientes:
  • Mejora productividad del sistema y utilización de recursos.
  • Multiplexa recursos entre varios programas.
  • Generalmente soportan múltiples usuarios (multiusuarios).
  • Proporcionan facilidades para mantener el entorno de usuarios individuales.
  • Requieren validación de usuario para seguridad y protección.
  • Proporcionan contabilidad del uso de los recursos por parte de los usuarios.
  • Multitarea sin soporte multiusuario se encuentra en algunos computadores personales o en sistemas de tiempo real.

  • En general, los sistemas de multiprogramación se caracterizan por tener múltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos periféricos.


VÍDEO DE UN S.O MULTITAREA PARA CELULARES







Sistema Operativo Monotareas.

Los sistemas operativos monotareas son más primitivos y es todo lo contrario al visto anteriormente, es decir, solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una. Por ejemplo cuando la computadora esta imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión.

Sistema Operativo Mono usuario.

Los sistemas mono usuarios son aquellos que nada más puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicación que se este ejecutando.
Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se esta utilizando, esto quiere decir, que las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuario. Y están orientados principalmente por los microcomputadores.

Sistema Operativo Multiusuario.

Es todo lo contrario a mono usuario; y 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.



SISTEMAS MULTI USUARIO



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.

Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual está orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento académico.

UNIVAC 1107




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 sutilizados  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. 

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 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 trasparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es a 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.

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 mas ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.



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.