Introduccion a los sistemas operativos

28
INSTITUTO TECNOLÓGICO DE OAXACA MATERIA: SISTEMAS OPERATIVOS PROFESORA: VALVERDE JARQUÍN REYNA ALUMNO: DEL VILLAR SORIANO JOSÉ MANUEL GRUPO: IS-A CLAVE DE LA MATERIA: AEC1061 PORTAFOLIO DE EVIDENCIAS DE LA PRIMERA UNIDAD

description

Que es un sistema operativo?, tipos de sistemas operativos, y conceptos relacionados.

Transcript of Introduccion a los sistemas operativos

Page 1: Introduccion a los sistemas operativos

INSTITUTO TECNOLÓGICO DE

OAXACA

MATERIA: SISTEMAS OPERATIVOS

PROFESORA: VALVERDE JARQUÍN REYNA

ALUMNO: DEL VILLAR SORIANO JOSÉ

MANUEL

GRUPO: IS-A

CLAVE DE LA MATERIA: AEC1061

PORTAFOLIO DE EVIDENCIAS DE LA

PRIMERA UNIDAD

Page 2: Introduccion a los sistemas operativos

2

Índice

1. Introducción a los sistemas operativos.

1.1 Definición y concepto…………………………………….3

1.2 Funciones y características…………………………......3

1.3 Evolución histórica……………………………………….8

1.4 Clasificación………………………………………………12

1.5 Estructura: Niveles o estratos de diseño…………….19

1.6 Núcleo………………………………………………………24

Fuentes……………………………………………………………..26

Page 3: Introduccion a los sistemas operativos

3

Índice de imágenes

Fig1……………………………………………………………………5

Fig2……………………………………………………………………5

Fig3………………………………………………………………6

Fig4………………………………………………………………6

Fig5………………………………………………………………8

Fig6………………………………………………………………9

Fig7………………………………………………………………9

Fig8………………………………………………………………9

Fig9………………………………………………………………9

Fig10………………………………………………………………10

Fig11………………………………………………………………11

Fig12………………………………………………………………11

Fig13………………………………………………………………12

Fig14………………………………………………………………12

Fig15………………………………………………………………13

Fig16………………………………………………………………14

Fig17………………………………………………………………14

Fig18………………………………………………………………14

Fig19………………………………………………………………15

Fig20………………………………………………………………15

Fig21………………………………………………………………17

Fig22………………………………………………………………18

Fig23………………………………………………………………19

Fig24………………………………………………………………20

Page 4: Introduccion a los sistemas operativos

4

Fig25………………………………………………………………21

Fig26………………………………………………………………23

Fig27………………………………………………………………25

Fig28………………………………………………………………25

Fig29………………………………………………………………26

Fig30………………………………………………………………27

Page 5: Introduccion a los sistemas operativos

5

1.0 INTRODUCCIÓN A LOS SISTEMAS

OPERATIVOS

1.1 DEFINICIÓN Y CONCEPTO

1.1.1 DEFINICIÓN SISTEMA OPERATIVO:

El sistema operativo es el programa (o software) más importante de un ordenador.

Para que funcionen los otros programas, cada ordenador de uso general debe tener

un sistema operativo.

1.1.2 CONCEPTO DE SISTEMA

OPERATIVO:

Conjunto de programas que se integran con

el hardware para facilitar al usuario, el

aprovechamiento de los recursos

disponibles.

1.2 FUNCIONES Y CARACTERÍSTICAS

1.2.1 FUNCIONES DE UN SISTEMA OPERATIVO

Administración del procesador:

El sistema operativo administra la distribución del procesador entre los

distintos programas por medio de un algoritmo de programación. El tipo de

programador depende completamente del sistema operativo, según el

objetivo deseado.

Gestión de la memoria de acceso aleatorio:

El sistema operativo se encarga de gestionar el

espacio de memoria asignado para cada

aplicación y para cada usuario, si resulta

pertinente. Cuando la memoria física es

insuficiente, el sistema operativo puede crear

una zona de memoria en el disco duro,

denominada "memoria virtual". La memoria

virtual permite ejecutar aplicaciones que

requieren una memoria superior a la memoria

RAM disponible en el sistema. Sin embargo,

esta memoria es mucho más lenta.

Fig1. Algunos sistemas operativos

Fig2.- Gestión de memoria

RAM

Page 6: Introduccion a los sistemas operativos

6

Gestión de entradas/salidas:

El sistema operativo permite unificar y controlar el acceso de los programas

a los recursos materiales a través de los drivers (también conocidos como

administradores periféricos o de entrada/salida).

Gestión de ejecución de aplicaciones:

El sistema operativo se encarga de que las

aplicaciones se ejecuten sin problemas asignándoles

los recursos que éstas necesitan para funcionar. Esto

significa que si una aplicación no responde

correctamente puede "sucumbir".

Administración de autorizaciones:

El sistema operativo se encarga de la seguridad en relación con la ejecución

de programas garantizando que los recursos sean utilizados sólo por

programas y usuarios que posean las autorizaciones correspondientes.

Gestión de archivos:

El sistema operativo gestiona la lectura y escritura en el sistema de archivos,

y las autorizaciones de acceso a archivos de aplicaciones y usuarios.

Gestión de la información:

El sistema operativo proporciona cierta cantidad de indicadores que pueden

utilizarse para diagnosticar el funcionamiento correcto del equipo.

Componentes o elementos del sistema operativo:

El sistema operativo está compuesto por un conjunto de paquetes de

software que pueden utilizarse para gestionar las interacciones con el

Fig3. Los diversos

programas necesitan de un

OS.

Fig4.- Ejemplo de la gestión de archivos digitales.

Page 7: Introduccion a los sistemas operativos

7

hardware.

Cargador inicial:

Se trata de un conjunto de instrucciones que permite el paso de los

programas del sistema operativo desde el disco a la memoria RAM.

El núcleo o kernel:

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.

Administrador de memoria:

Se encarga de la compactación, segmentación, paginación, swapping

y gestión de memoria virtual.

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.

Interface o interfaz de usuario UI:

Se encarga de establecer la comunicación con el usuarios y puede

tener dos apariencias: De consola (DOS) o puede ser gráfica (GUI,

interfaz gráfica de usuario, como el entorno de Windows). Linux tiene

varias GUI’s como lo son GNOME y KDE.

El sistema de archivos:

Que permite que los archivos se registren en una estructura arbórea.

Planificador de trabajos:

Asigna tiempo de CPU a cada uno de los programas cargados en

memoria para su ejecución. Debe atender a las diversas

interrupciones que se generan.

Page 8: Introduccion a los sistemas operativos

8

1.2.2 CARACTERÍSTICAS DE UN SISTEMA OPERATIVO:

En general, se puede decir que un Sistema Operativo tiene las siguientes características:

Conveniencia: Un Sistema Operativo hace más conveniente el uso de una computadora.

Eficiencia: Un Sistema Operativo permite que los recursos de la computadora se usen de la manera más eficiente posible.

Habilidad para evolucionar: Un Sistema Operativo deberá construirse de manera que permita el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema sin interferir con el servicio.

Encargado de administrar el hardware: El Sistema Operativo se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos.

Relacionar dispositivos (gestionar a través del kernel): El Sistema Operativo se debe encargar de comunicar a los dispositivos periféricos, cuando el usuario así lo requiera.

Organizar datos para acceso rápido y seguro.

Manejar las comunicaciones en red:

Fig5.- El sistema operativo permite la interacción entre varios

elementos como lo son los periféricos, hardware, y aplicaciones

para que todo funcione como el usuario lo requiere.

Page 9: Introduccion a los sistemas operativos

9

El Sistema Operativo permite al usuario manejar con alta facilidad todo lo referente a la instalación y uso de las redes de computadoras.

Procesamiento por bytes de flujo a través 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/Salida de la computadora.

Técnicas de recuperación de errores.

Evita que otros usuarios interfieran: El Sistema Operativo evita que los usuarios se bloqueen entre ellos, informándoles si esa aplicación está siendo ocupada por otro usuario.

Generación de estadísticas: Permite que se puedan compartir el hardware y los datos entre los usuarios.

Fig6.- La interfaz de un OS, hace que la

convivencia con la computadora sea fácil. Fig7.- La evolución de un OS le permite

adaptarse a las necesidades de las personas.

Fig8.- El hardware es administrado por

el sistema operativo.

Fig9.- El Sistema operativo permite que

el usuario interactúe con el sistema

gracias a los dispositivos de entrada y

salida.

Page 10: Introduccion a los sistemas operativos

10

1.3 EVOLUCIÓN HISTÓRICA DE LOS SISTEMAS

OPERATIVOS

1a. Etapa (1945-1955): Bulbos y conexiones:

Después de los infructuosos

esfuerzos de Babbage, hubo

poco progreso en la

construcción de las

computadoras digitales,

hasta la Segunda Guerra

Mundial. A mitad de la

década de los 40's, Howard

Aiken (Harvard), John Von

Newman (Instituto de

Estudios Avanzados,

Princeton), J. Prespe R.

Eckert y Williams Mauchley

(Universidad de

Pennsylvania), así como

Conrad Zuse (Alemania),

entre otros lograron construir máquinas de cálculo mediante bulbos. Estas

máquinas eran enormes y llenaban cuartos completos con decenas de miles

de bulbos, pero eran mucho más lentas que la computadora casera más

económica en nuestros días.

Toda la programación se llevaba a cabo en lenguaje de máquina absoluto y

con frecuencia se utilizaban conexiones para controlar las funciones básicas

de la máquina. Los lenguajes de programación eran desconocidos (incluso

el lenguaje ensamblador).

No se oía de los Sistemas Operativos el modo usual de operación consistía

en que el programador reservaba cierto periodo en una hoja de reservación

pegada a la pared, iba al cuarto de la máquina, insertaba su conexión a la

computadora y pasaba unas horas esperando que ninguno de los 20,000 o

más bulbos se quemara durante la ejecución.

La inmensa mayoría de los problemas eran cálculos numéricos directos, por

ejemplo, el cálculo de valores para tablas de senos y cosenos.

A principio de la década de los 50's la rutina mejoro un poco con la

introducción de las tarjetas perforadas. Fue entonces posible escribir los

programas y leerlas en vez de insertar conexiones, por lo demás el proceso

era el mismo.

Fig10.- En los primeros SO se usaban bulbos para que

realizaran cálculos.

Page 11: Introduccion a los sistemas operativos

11

2a. Etapa. (1955-1965): Transistores y Sistemas de Procesamiento por

lotes: La introducción del

transistor a

mediados de los

años 50's modifico

en forma radical el

panorama. Las

computadoras se

volvieron confiables

de forma que podían fabricarse y venderse a clientes, con la esperanza de

que ellas continuaran funcionando lo suficiente como para realizar un trabajo

en forma.

Dado el alto costo del equipo, no debe sorprender el hecho de que las

personas buscaron en forma por demás rápidas vías para reducir el tiempo

invertido. La solución que, por lo general se adoptó, fue la del sistema de

procesamiento por lotes.

3ra Etapa (1965-1980): Circuitos integrados y multiprogramación: La 360 de IBM fue la primera línea principal de

computadoras que utilizo los circuitos

integrados, lo que proporciono una gran ventaja

en el precio y desempeño con respecto a las

máquinas de la segunda generación, construidas

a partir de transistores individuales. Se trabajó

con un sistema operativo enorme y

extraordinariamente complejo. A pesar de su

enorme tamaño y sus problemas el sistema

operativo de la línea IBM 360 y los sistemas

operativos similares de esta generación

producidos por otros fabricantes de computadoras realmente pudieron

satisfacer, en forma razonable a la mayoría de sus clientes. También

popularizaron varias técnicas fundamentales, ausentes de los sistemas

operativos de la segunda generación, de las cuales la más importante era la

de multiprogramación.

Otra característica era la capacidad de leer trabajos de las tarjetas al disco,

tan pronto como llegara al cuarto de cómputo. Así, siempre que concluyera

Fig11.- El procesamiento por lotes fue una gran mejora para

los SO de los años 50.

Fig12.- En la tercera etapa

los sistemas operativos

hacían uso de transistores.

Page 12: Introduccion a los sistemas operativos

12

un trabajo el sistema operativo podía cargar un nuevo trabajo del disco en la

partición que quedara desocupada y ejecutarlo.

4ta Etapa (1980-Actualidad): Computadoras personales:

Un interesante desarrollo que comenzó a llevarse a cabo a mediados de la década de los ochenta ha sido el crecimiento de las redes de computadoras personales, con sistemas operativos de red y sistemas operativos distribuidos.

En los sistemas operativos de red, los usuarios están conscientes de la existencia de varias computadoras y pueden conectarse con máquinas remotas y copiar archivos de una maquina a otra. Cada máquina ejecuta su propio sistema operativo local y tiene su propio usuario.

Por el contrario, un sistema operativo distribuido es aquel que aparece ante sus

usuarios como un sistema tradicional de un solo procesador, aun cuando está compuesto por varios procesadores. En un sistema distribuido verdadero, los usuarios no deben ser conscientes del lugar donde su programa se ejecute o de lugar donde se encuentren sus archivos; eso debe ser manejado en forma automática y eficaz por el sistema operativo.

Otra forma de ver la evolución histórica de los sistemas operativos es la siguiente:

En los 40's, se introducen los programas bit a bit,

por medio de interruptores mecánicos y después

se introdujo el lenguaje máquina que trabajaba

por tarjetas perforadas.

Con las primeras computadoras, desde finales

de los años 40 hasta la mitad de los años 50, el

programador interactuaba de manera directa con

el hardware de la computadora, no existía

realmente un Sistema Operativo; las primeras

computadoras utilizaban bulbos, la entrada de Fig14.- Los años 40, daban inicio a los

primeros sistemas operativos.

Fig13.- Los sistemas operativos

pudieron ser usados en las

computadoras personales.

Page 13: Introduccion a los sistemas operativos

13

datos y los programas se realizaban a través del lenguaje maquina (bits) o a través

de interruptores.

Durante los años 50's y 60's.- A principio de los 50's, la compañía General's Motors

implanto el primer sistema operativo para su IBM 170. Empiezan a surgir las tarjetas

perforadas las cuales permiten que los usuarios (que en ese tiempo eran

programadores, diseñadores, capturistas, etc.), se encarguen de modificar sus

programas. Establecían o apartaban tiempo, metían o introducían sus programas,

corregían y depuraban sus programas en su tiempo. A esto se le llamaba trabajo en

serie. Todo esto se traducía en pérdida de tiempo y tiempos de programas

excesivos.

En los años 60's y 70's se genera el circuito integrado, se organizan los trabajos y

se generan los procesos Batch (por lotes), lo cual consiste en determinar los

trabajos comunes y realizarlos todos juntos de una sola vez. En esta época surgen

las unidades de cinta y el cargador de programas, el cual se considera como el

primer tipo de Sistema Operativo.

En los 80's, inicio el auge de la

INTERNET en los Estados Unidos de

América. A finales de los años 80's

comienza el gran auge y evolución de los

Sistemas Operativos. Se descubre el

concepto de multiprogramación que

consiste en tener cargados en memoria a

varios trabajos al mismo tiempo, tema

principal de los Sistemas Operativos actuales.

En los años 80, también se dio la aparición de las primeras interfaces de usuario,

siendo MAC OS Macintosh un ejemplo de ello.

Fig15.- Con el nacimiento de internet fue

necesario la aparición de nuevos sistemas

operativos.

Page 14: Introduccion a los sistemas operativos

14

Los 90's y el futuro, entramos a la era de la

computación distribuida y del multiprocesamiento

a través de múltiples redes de computadoras,

aprovechando el ciclo del procesador. Se tendrá

una configuración dinámica con un

reconocimiento inmediato de dispositivos y

software que se añada o elimine de las redes a

través de procesos de registro y localizadores. La

conectividad se facilita gracias a estándares y

protocolos de sistemas abiertos por

organizaciones como la Organización

Internacional de normas, fundación de software

abierto, todo estará más controlado por los

protocolos de comunicación OSI y por la red de

servicios digital ISDN.

1.4 CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS:

Sistema Operativo Monotarea:

Los sistemas operativos Monotarea 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 está imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión.

Sistema Operativo Multitarea:

La multitarea es la característica de los sistemas operativos modernos de permitir que varios procesos se ejecuten al parecer al mismo tiempo compartiendo uno o más procesadores.

Los sistemas operativos multitarea son capaces de dar servicio a más de un proceso a la vez para permitir la ejecución de muchos más programas.

Fig16.- En los 90 se dio el

nacimiento de GNU/Linux y una

gran cantidad de SO aparecieron

a partir de ese momento.

Fig17. Ejemplo de un

sistema Monotarea

Fig18. La familia NT

es multitarea.

Page 15: Introduccion a los sistemas operativos

15

Sistema Operativo Monousuario.

Los sistemas monousuarios 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 esté ejecutando.

Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se está 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. Windows 95/98/Me de Microsoft son ejemplos de sistemas Monousuario.

Sistema Operativo Multiusuario:

Es todo lo contrario a monousuario; 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. En otras palabras consiste en el fraccionamiento del tiempo (timesharing).

Los recursos que se comparten son, normalmente, una combinación de:

Procesador.

Memoria.

Almacenamiento secundario (en disco duro).

Programas.

Periféricos como impresoras, plóteres, escáneres, etc.

De tal modo que múltiples usuarios utilizan una única computadora, comparten programas y usan un sistema operativo unificado, que les están dedicados por completo; teniendo la impresión de que lo hacen simultáneamente.

Fig19. Windows 95, claro

ejemplo de sistema

monousuario

Fig20. Solaris es un sistema

multiusuario.

Page 16: Introduccion a los sistemas operativos

16

Ejemplos de sistemas operativos con característica de multiusuario son VMS y Unix, así como sus múltiples derivaciones (e.g. IRIX, Solaris, etc.) y los sistemas tipo Unix como Linux, FreeBSD y Mac OS X.

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. Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecución muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuencialidad de la ejecución de los trabajos. 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. Algunas otras características con que cuentan los Sistemas Operativos por lotes son:

o Requiere que el programa, datos y órdenes al sistema sean remitidos

todos juntos en forma de lote.

o Permiten poca o ninguna interacción usuario/programa en ejecución.

o Mayor potencial de utilización de recursos que procesamiento serial simple en sistemas multiusuarios.

o No conveniente para desarrollo de programas por bajo tiempo de retorno y depuración fuera de línea.

o Conveniente para programas de largos tiempos de ejecución (ej, análisis estadísticos, nóminas de personal, etc.).

o Se encuentra en muchos computadores personales combinados con procesamiento serial.

o Planificación del procesador sencilla, típicamente procesados en orden de llegada.

o Planificación de memoria sencilla, generalmente se divide en dos: parte residente del S.O. y programas transitorios.

Page 17: Introduccion a los sistemas operativos

17

o No requieren gestión crítica de dispositivos en el tiempo.

o Suelen proporcionar gestión sencilla de manejo de archivos: se requiere

poca protección y ningún control de concurrencia para el acceso.

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:

o Control de trenes.

o Telecomunicaciones.

o Sistemas de fabricación integrada.

o Producción y distribución de energía eléctrica.

o Control de edificios.

o Sistemas multimedia.

Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lynx OS y Spectra. Los Sistemas Operativos de tiempo real, cuentan con las siguientes características:

o Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la mayoría externos al sistema computacional, en breve tiempo o dentro de ciertos plazos.

Fig21. Ejemplo de

sistema en tiempo real

Page 18: Introduccion a los sistemas operativos

18

o Se utilizan en control industrial, conmutación telefónica, control de vuelo, simulaciones en tiempo real., aplicaciones militares, etc.

o Objetivo es proporcionar rápidos

tiempos de respuesta.

o Procesa ráfagas de miles de interrupciones por segundo sin perder un solo suceso.

o Proceso se activa tras ocurrencia de suceso, mediante interrupción.

o Proceso de mayor prioridad expropia recursos.

o Por tanto generalmente se utiliza planificación expropiativa basada en

prioridades.

o Gestión de memoria menos exigente que tiempo compartido, usualmente procesos son residentes permanentes en memoria.

o Población de procesos estática en gran medida.

o Poco movimiento de programas entre almacenamiento secundario y

memoria.

o Gestión de archivos se orienta más a velocidad de acceso que a utilización eficiente del recurso.

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, ésta 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. Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10. Características de los Sistemas Operativos de tiempo compartido:

Fig22.- Los sistemas de tiempo real pueden ser

usados en control de vuelo.

Page 19: Introduccion a los sistemas operativos

19

o Populares representantes de sistemas multiprogramados multiusuario,

ej: sistemas de diseño asistido por computador, procesamiento de texto, etc.

o Dan la ilusión de que cada usuario tiene una máquina para sí.

o Mayoría utilizan algoritmo de reparto circular.

o Programas se ejecutan con prioridad rotatoria que se incrementa con la

espera y disminuye después de concedido el servicio.

o Evitan monopolización del sistema asignando tiempos de procesador (time slot).

o Gestión de memoria proporciona protección a programas residentes.

o Gestión de archivo debe proporcionar protección y control de acceso

debido a que pueden existir múltiples usuarios accesando a un mismo archivo.

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

Características de los Sistemas Operativos distribuidos:

Fig23. Ejemplo de SO distribuido.

Page 20: Introduccion a los sistemas operativos

20

o Colección de sistemas autónomos capaces de comunicación y cooperación mediante interconexiones hardware y software.

o Gobierna operación de un S.C. y proporciona abstracción de máquina virtual

a los usuarios.

o Objetivo clave es la transparencia.

o Generalmente proporcionan medios para la compartición global de recursos.

o Servicios añadidos: denominación global, sistemas de archivos distribuidos, facilidades para distribución de cálculos (a través de comunicación de procesos internodos, llamadas a procedimientos remotos, 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 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

Fig24.- Los SO mantienen a las

computadoras en red.

Page 21: Introduccion a los sistemas operativos

21

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. Ejemplos de estos tipos de Sistemas Operativos están: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM.

1.5 ESTRUCTURA: NIVELES O ESTRATOS DE DISEÑO

ESTRUCTURA SIMPLE:

NÚCLEO MONOLÍTICO:

En computación, un núcleo monolítico es una arquitectura de sistema operativo donde esté en su totalidad trabaja en espacio del núcleo, estando él solo en modo supervisor. Difiere de otras arquitecturas (como la de micro núcleo) en que solo define una interfaz virtual de alto nivel sobre el hardware del ordenador. Un conjunto primitivo de llamadas al sistema implementa todos los servicios propios del sistema operativo tales como la planificación, concurrencia, sistema de archivos, gestión de memoria, etc.

En esta arquitectura hay una correspondencia entre el programa que

conforma el sistema operativo y el núcleo en sí.

Éste núcleo está programado de forma no modular y puede tener un tamaño considerable. A su vez, cada vez que se añada una nueva funcionalidad, deberá ser recompilado en su totalidad y luego reiniciado. Todos los componentes funcionales del núcleo tienen acceso a todas sus estructuras de datos internas y a sus rutinas. Por ende, un error en una rutina podría propagarse a todo el sistema.

Hay diversas ramificaciones de este diseño, que se han ido amoldando a nuevas necesidades. Existen sistemas que, en tiempo de ejecución, permiten la carga dinámica de módulos ejecutables, lo cual le brinda al modelo de núcleo monolítico algunas de las ventajas de un micronúcleo. Dichos módulos pueden ser compilados, modificados, cargados y descargados en tiempo de ejecución, de manera similar a los servicios de un micronúcleo, pero con la

Fig25. Esquema de un núcleo

monolítico.

Page 22: Introduccion a los sistemas operativos

22

diferencia de que se ejecutan en el espacio de memoria del núcleo mismo (anillo 0). De esta forma, es probable que un bloqueo del módulo bloquee todo el núcleo. Además, el módulo pasa a formar un todo con el núcleo, usando la API del mismo, y no se emplea un sistema de mensajes como en los micronúcleos. Este es el esquema usado por, entre otros, Linux, FreeBSD y varios derivados de UNIX.

La alternativa es tener una estructura de micronúcleo, donde las partes funcionales están divididas en unidades separadas con mecanismos de comunicación estrictos entre ellos. Cabe resaltar que el paso constante de mensajes entre los servicios del micronúcleo, es en parte responsable del pobre rendimiento de esta estructura.

Entre los sistemas operativos que cuentan con núcleos monolíticos se encuentran:

o Núcleos tipo Unix

o Linux

o Syllable

o Unix

BSD (FreeBSD, NetBSD, OpenBSD)

Solaris

o Núcleos tipo DOS

o DR-DOS

o MS-DOS

o Familia Microsoft Windows 9x (95, 98, 98SE, Me)

o Núcleos del Mac OS hasta Mac OS 8.6

o OpenVMS

o XTS-400

CAPAS NIVELES:

Podemos imaginar a Linux como una cebolla donde cada capa se comunica con la capa inferior. En la parte del centro se encuentra la capa de comunicación con el hardware. El SO la utiliza para poder controlar los diversos aspectos del hardware. Sobre ella se encuentra la capa de dispositivos. Es un conjunto de funciones denominadas controladores de dispositivo que se encuentra dentro del kernel del SO. Ellas acceden directamente al hardware y hacen el trabajo de lectura, escritura,

Page 23: Introduccion a los sistemas operativos

23

etc. Es un punto muy sensible del sistema en donde cuando un error surge poco puede hacerse para detener el proceso. Sobre la capa de dispositivos se encuentra la capa de administración, esta es un conjunto de funciones a las que se hace referencia como sistema operativo tomando la decisión de que se ejecuta y cuando. Son las funciones que administran también los procesos, dándoles los turnos pertinentes y mandándolos a dormir cuando no es su turno.

La capa que sigue es la de los procesos mismos, por ejemplo el Shell del SO. Estos procesos reciben la ordenes directamente del usuario u otros procesos y los traducen al lenguaje de máquina pasándoselos al SO para su ejecución. A partir del Shell se podrán arrancar otros procesos, como programas, que forman la capa superior de la cebolla. Estos se comunicaran con el Shell para que el SO interprete sus órdenes.

MODULARES:

En computación, un módulo cargable del núcleo es un archivo que contiene código objeto que puede extender el núcleo en ejecución (también llamado núcleo base) de un Sistema Operativo. La mayoría de los sistemas estilo Unix, y Microsoft Windows, soportan módulos cargables en el núcleo, aunque suelen utilizar distintos nombres para ellos, como "extensión del núcleo" en Mac OS X.

Los módulos cargables en el núcleo son generalmente utilizados para brindar soporte a nuevos dispositivos de Hardware y Sistema de archivos, así como para agregar llamadas al sistema. Cuando la funcionalidad provista por un módulo del núcleo deja de ser requerida, normalmente éste puede ser descargado, liberando su memoria.

Un ejemplo típico de módulo cargable son los Controladores de Dispositivo.

Fig26. Capas y niveles.

Page 24: Introduccion a los sistemas operativos

24

ESTRUCTURA CLIENTE/SERVIDOR

Micronúcleo:

En computación, micronúcleo (en inglés, microkernel o μkernel) es un tipo de núcleo de un sistema que provee un conjunto de primitivas o llamadas mínimas al sistema para implementar servicios básicos como espacios de direcciones, comunicación entre procesos y planificación básica. Todos los otros servicios (memoria, sistema, operaciones de E/S, etc.), que en general son provistos por el núcleo, se ejecutan como procesos servidores en espacio de usuario.

El paradigma del micronúcleo, tuvo una gran relevancia académica durante los años ochenta y principios de los noventa, dentro de lo que se denominó self healing computing, esto es, sistemas independientes que fuesen capaces de superar por si mismos errores de software o hardware. En un principio pretendía ser una solución a la creciente complejidad de los sistemas operativos.

Las principales ventajas de su utilización son la reducción de la complejidad, la descentralización de los fallos (un fallo en una parte del sistema no se propagaría al sistema entero) y la facilidad para crear y depurar controladores de dispositivos. Según los defensores de esta tendencia, esto mejora la tolerancia a fallos y eleva la portabilidad entre plataformas de hardware.

Por otro lado, sus principales dificultades son la complejidad en la sincronización de todos los módulos que componen el micronúcleo y su acceso a la memoria, la anulación de las ventajas de Zero Copy y la integración con las aplicaciones. Además, los procesadores y arquitecturas modernas de hardware están optimizadas para sistemas de núcleo que pueden mapear toda la memoria. Sus detractores le achacan también y fundamentalmente, mayor complejidad en el código, menor rendimiento y limitaciones en diversas funciones.

Exonúcleo:

En computación, el término exonúcleo (en inglés,exokernel) se refiere a un sistema creado con fines de investigación en el Massachusetts sobre OpenBSD y otros sistemas operativos similares. Su propósito es crear una especie de capa de software para otros sistemas virtuales.

El concepto de exonúcleo fue introducido en torno a los finales de 1994, pero aún en 2005 los exonúcleo siguen siendo un gran esfuerzo en investigación y no son usados en ningún sistema operativo comercial popular. Un sistema operativo que sigue la filosofía exonúcleo es Némesis, escrito por la Universidad de Cambridge, la Universidad de Glasgow, Citrix Systems y el Instituto Sueco de Informática. El MIT también ha desarrollado varios sistemas exonúcleo, como el ExOS.

Page 25: Introduccion a los sistemas operativos

25

MÁQUINA VIRTUAL:

En informática una máquina virtual es un software que simula a una computadora y puede ejecutar programas como si fuese una computadora real. Este software en un principio fue definido como "un duplicado eficiente y aislado de una máquina física". La acepción del término actualmente incluye a máquinas virtuales que no tienen ninguna equivalencia directa con ningún hardware real.

Una característica esencial de las máquinas virtuales es que los procesos que ejecutan están limitados por los recursos y abstracciones

proporcionados por ellas. Estos procesos no pueden escaparse de esta "computadora virtual".

Uno de los usos domésticos más extendidos de las máquinas virtuales es ejecutar sistemas operativos para "probarlos". De esta forma podemos ejecutar un sistema operativo que queramos probar (GNU/Linux, por ejemplo) desde nuestro sistema operativo habitual (Mac OS X por ejemplo) sin necesidad de instalarlo directamente en nuestra computadora y sin miedo a que se desconfigure el sistema operativo primario.

NÚCLEO HIBRIDO:

En computación, un núcleo híbrido es un tipo de núcleo de un sistema operativo. Básicamente, es un micronúcleo que tienen algo de código «no esencial» en espacio de núcleo, para que éste se ejecute más rápido de lo que lo haría si estuviera en espacio de usuario.

Éste fue un compromiso que muchos desarrolladores de los primeros sistemas, con arquitectura basada en micronúcleo, adoptaron antes que se

Fig27.- Una máquina virtual es una máquina

dentro de la máquina misma.

Fig28.- Estructura de un núcleo hibrído.

Page 26: Introduccion a los sistemas operativos

26

mostrara que los micronúcleos pueden tener también muy buen rendimiento.

La mayoría de sistemas operativos modernos pertenecen a esta categoría, siendo el más popular Microsoft Windows. El núcleo de Mac OS X, XNU, también es un micronúcleo NO modificado, debido a la inclusión de código del núcleo de FreeBSD en el núcleo basado en Mach. Dragon Fly BSD es el primer sistema BSD que adopta una arquitectura de núcleo híbrido sin basarse en Mach.

Se tiende a confundir erróneamente a los núcleos híbridos con losnúcleos monolíticos que pueden dinámicamente cargar módulos después del arranque. El concepto de núcleo híbrido se refiere a que el núcleo en cuestión usa mecanismos o conceptos de arquitectura tanto del diseño monolítico como del micronúcleo, específicamente el paso de mensajes y la migración de código «no esencial» hacia el espacio de usuario (manteniendo a su vez cierto código «no esencial» en el propio núcleo por razones de rendimiento).

1.6 NÚCLEO

El núcleo del sistema operativo, también llamado kernel (núcleo en alemán) es

aquella parte de un sistema que interactúa de forma directa con el hardware de una

máquina. Entre las funciones principales del kernel se encuentran:

La gestión de memoria:

Este nivel administra la memoria principal o

memoria RAM, se encarga de asignar los bloques

de memoria a los procesos y de liberarlos cuando

los procesos han terminado, así también se

encarga de retirar algunos procesos de la

memoria y almacenar una imagen de ellos en el

disco duro, con la finalidad de simular que existe

más memoria de la que realmente existe de forma

física, el cual es un proceso que denominamos memoria virtual.

Fig29.- Administra la memoria

RAM

Page 27: Introduccion a los sistemas operativos

27

La administración del sistema de archivos:

Esta capa proporciona las funciones

necesarias para almacenar la

información en archivos, se apoya en

las primitivas de la capa 2 y la decisión

de que procesos hacen uso de

memoria se ubican en esta capa.

La administración de servicios de entrada/salida:

Proporciona funciones primitivas para la gestión de la memoria secundaria, es

decir, se encarga de proveer las primitivas necesarias para la localización,

escritura y lectura de bloques de datos en el disco duro, sin llegar a proporcionar

muchos detalles, cabe señalar que en esta capa la información almacenada no

se representa como archivos, la cual es una implementación de una capa

superior.

La asignación de recursos entre los usuarios:

En esta capa se ubica la interfaz visible para el usuario, ya sea como una línea

de comando o como una GUI (Interfaz Gráfica de Usuario), con la cual el usuario

comunica y que esta capa traduce al conjunto de primitivas de las capas

anteriores.

La manipulación del hardware se realiza por medio de controladores de dispositivo,

que conocen la forma de comunicarse directamente con el hardware de la máquina.

El software por su parte puede comunicarse con el kernel por medio de llamadas al

sistema, las cuales le indican al kernel que realice tareas como abrir y escribir un

archivo, ejecutar un programa, finalizar un proceso u obtener la fecha y hora del

sistema.

Fig30.- Esta capa es importante para los

archivos.

Page 28: Introduccion a los sistemas operativos

28

angelacollazosgrado11. (septiembre de 2014). Obtenido de

http://angelacollazosgrado11.blogspot.mx/2011/04/clasificacion-de-los-sistemas.html

Enciclopedia. (septiembre de 2014). Obtenido de

http://enciclopedia.us.es/index.php/N%C3%BAcleo_del_sistema_operativo

kioskea. (septiembre de 2014). Obtenido de http://es.kioskea.net/contents/651-sistema-

operativo#funciones-del-sistema-operativo

magomez. (septiembre de 2014). Obtenido de

http://www.magomez.net/SSOO/document/Funciones.htm

mas adelante. (septiembre de 2014). Obtenido de OS:

http://www.masadelante.com/faqs/sistema-operativo

monografias. (septiembre de 2014). Obtenido de

http://www.monografias.com/trabajos5/sisop/sisop.shtml

rincon del vago. (septiembre de 2014). Obtenido de http://html.rincondelvago.com/clasificacion-

de-sistemas-operativos.html

silverschatz. (2006). Fundamentos de sistemas operativos. Mcgrawhill.

wikipedia. (septiembre de 2014). Obtenido de

http://es.wikipedia.org/wiki/N%C3%BAcleo_monol%C3%ADtico