Anda di halaman 1dari 16

UNIDAD I.

INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS

El sistema operativo es el núcleo que hace funcionar a una computadora


funciona como un intermediario entre las peticiones de los usuarios y los programas,
administra y opera el hardware de la computadora, lee y escribe información hacia y
desde las unidades de disco.

Existen 2 tipos de sistemas operativos:

A) SISTEMA BASADO EN CARACTERES: Son aquellos que reciben comandos


desde el prompt de la computadora A:\ ó C:\ y responden a ella ejecutando una tarea
específica.

B) SISTEMA DE INTERFAZ GRAFICO: Son aquellos que utilizan el mouse como


dispositivo de señalización que permite seleccionar pequeños símbolos o dibujos que
representan alguna tarea a realizar.

Categorías de Sistemas Operativos Multitarea

El término multitarea se refiere a la capacidad del SO para correr mas de un


programa al mismo tiempo. Existen dos esquemas que los programas de sistemas
operativos utilizan para desarrollar SO multitarea, el primero requiere de la cooperación
entre el SO y los programas de aplicación.

Los programas son escritos de tal manera que periódicamente inspeccionan con
el SO para ver si cualquier otro programa necesita a la CPU, si este es el caso, entonces
dejan el control del CPU al siguiente programa, a este método se le llama multitarea
cooperativa y es el método utilizado por el SO de las computadoras de Machintosh y
DOS corriendo Windows de Microsoft. El segundo método es el llamada multitarea con
asignación de prioridades. Con este esquema el SO mantiene una lista de procesos
(programas) que están corriendo. Cuando se inicia cada proceso en la lista el SO le
asigna una prioridad. En cualquier momen to el SO puede intervenir y modificar la
prioridad de un proceso organizando en forma efectiva la lista de prioridad, el SO
también mantiene el control de la cantidad de tiempo que utiliza con cualquier proceso
antes de ir al siguiente. Con multitarea de asignación de prioridades el SO puede
sustituir en cualquier momento el proceso que esta corriendo y reasignar el tiempo a una
tarea de mas prioridad. Unix OS-2 y Windows NT emplean este tipo de multitarea.

Multiusuario

Un SO multiusuario permite a mas de un solo usuario accesar una computadora.


Claro que, para llevarse esto a cabo, el SO también debe ser capaz de efectuar
multitareas. Unix es el Sistema Operativo Multiusuario más utilizado. Debido a que
Unix fue originalmente diseñado para correr en una minicomputadora, era multiusuario
y multitarea desde su concepción.

Actualmente se producen versiones de Unix para PC tales como The Santa Cruz
Corporation Microport, Esix, IBM,y Sunsoft. Apple también produce una versión de
Unix para la Machintosh llamada: A/UX.Unix
Unix proporciona tres maneras de permitir a múltiples personas utilizar la misma PC al
mismo tiempo.

1. Mediante Módems.
2. Mediante conexión de terminales a través de puertos seriales
3. Mediante Redes.

Multiproceso

Las computadoras que tienen más de un CPU son llamadas multiproceso. Un


sistema operativo multiproceso coordina las operaciones de las computadoras
multiprocesadores. Ya que cada CPU en una computadora de multiproceso puede estar
ejecutando una instrucción, el otro procesador queda liberado para procesar otras
instrucciones simultáneamente.

Al usar una computadora con capacidades de multiproceso incrementamos su


velocidad de respuesta y procesos. Casi todas las computadoras que tienen capacidad de
multiproceso ofrecen una gran ventaja.

Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce


como:
Multiproceso asimétrico: Una CPU principal retiene el control global de la
computadora, así como el de los otros procesadores. Esto fue un primer paso hacia el
multiproceso pero no fue la dirección ideal a seguir ya que la CPU principal podía
convertirse en un cuello de botella.

Multiproceso simétrico: En un sistema multiproceso simétrico, no existe una


CPU controladora única. La barrera a vencer al implementar el multiproceso simétrico
es que los SO tienen que ser rediseñados o diseñados desde el principio para trabajar en
u n ambiente multiproceso.

Las extensiones de Unix, que soportan multiproceso asimétrico ya están


disponibles y las extensiones simétricas se están haciendo disponibles. Windows NT de
Microsoft soporta multiproceso simétrico.

Sistemas Operativos más Comunes MS-DOS

Es el más común y popular de todos los Sistemas Operativos para PC. La razón
de su continua popularidad se debe al aplastante volumen de software disponible y a la
base instalada de computadoras con procesador Intel.

Cuando Intel liberó el 80286, DOS se hizo tan popular y firme en el mercado
que DOS y las aplicaciones DOS representaron la mayoría del mercado de software
para PC. En aquel tiempo, la compatibilidad IBM, fue una necesidad para que los
productos tuvieran éxito, y la “compatibilidad IBM” significaba computadoras que
corrieran DOS tan bien como las computadoras IBM lo hacían.
OS/2
Después de la introducción del procesador Intel 80286, IBM y Microsoft
reconocieron la necesidad de tomar ventaja de las capacidades multitarea de esta CPU.
Se unieron para desarrollar el OS/2, un moderno SO multitarea para los
microprocesadores Intel.

Sin embargo, la sociedad no duró mucho. Las diferencias en opiniones técnicas y


la percepción de IBM al ver a Windows como una amenaza para el OS/2 causó una
desavenencia entre las Compañías que al final las llevó a la disolución de la sociedad.
IBM continuó el desarrollo y promoción del OS/2.

Es un sistema operativo de multitarea para un solo usuario que requiere un


microprocesador Intel 286 o mejor. Además de la multitarea, la gran ventaja de la
plataforma OS/2 es que permite manejar directamente hasta 16 MB de la RAM (en
comparación con 1 MB en el caso del MS-DOS). Por otra parte, el OS/2 es un entorno
muy complejo que requiere hasta 4 MB de la RAM. Los usuarios del OS/2 interactúan
con el sistema mediante una interfaz gráfica para usuario llamada Administrador de
presentaciones. A pesar de que el OS/2 rompe la barrera de 1 MB del MS-DOS, le llevo
tiempo volverse popular.

Los vendedores de software se muestran renuentes a destinar recursos a la


creación de un software con base en el OS/2 para un mercado dominado por el MS-
DOS. Los usuarios se rehúsan a cambiar al OS/2 debido a la falta de software que
funcione en la plata forma del OS/2 y a que muchos tendrían que mejorar la
configuración de su PC para que opere con el OS/2.

UNIX
Unix es un SO multiusuario y multitarea, que corre en diferentes computadoras,
desde supercomputadoras, Mainframes, Minicomputadoras, computadoras personales y
estaciones de trabajo.

Es un sistema operativo que fue creado a principios de los setentas por los
científicos en los laboratorios Bell. Fue específicamente diseñado para proveer una
manera de manejar científica y especializadamente las aplicaciones computacionales.
Este SO se adapto a los sistemas de cómputo personales así que esta aceptación reciente
lo convierte en un sistema popular.

Unix es más antiguo que todos los demás SO de PC y de muchas maneras


sirvieron como modelo para éstos. Aun cuando es un SO extremadamente sólido y
capaz, la línea de comandos Unix, no es apta para cardiacos, debido a que ofrece
demasiados comandos.

SISTEMA OPERATIVO DE MACINTOSH

La Macintosh es una máquina netamente gráfica. De hecho, no existe una


interfaz de línea de comando equivalente para ésta. Su estrecha integración de SO, GUI
y área de trabajo la hacen la favorita de la gente que no quiere saber nada de interfaces
de línea de comando.
Las capacidades gráficas de la Macintosh hicieron de esa máquina la primera
precursora en los campos gráficos computarizados como la autoedición por
computadora.

La familia de microcomputadoras de Apple Macintosh y su sistema operativo


define otra plataforma importante. Las PC de Macintosh, que se basan en la familia de
microprocesadores de Motorola, usan la arquitectura de Bus de 32 bits. La plataforma
para Macintosh incluye muchas capacidades sofisticadas que comprende la multitarea,
una GUI, la memoria virtual y la capacidad para emular la plataforma MS-DOS.

Las PC de Macintosh también tiene la capacidad integrada de compartir archivos


y comunicarse con o tras PC de Macintosh en una red.

WINDOWS NT DE MICROSOFT

Con Windows NT, Microsoft ha expresado su dedicación a escribir software no


sólo para PC de escritorio sino también para poderosas estaciones de trabajo y
servidores de red y bases de datos.

Microsoft Windows NT no es necesariamente un sustituto de DOS ni una nueva


versión de éste; es, en conjunto, un nuevo SO diseñado desde sus bases para las
máquinas más modernas y capaces disponibles.

Windows NT de Microsoft ofrece características ínter construidas que ningún


otro SO para PC ofrece, con excepción de Unix. Además de las características
tradicionales de estricta seguridad de sistema, red ínter construida, servicios de
comunicación y correo electrónico ínter construido, herramientas de administración y
desarrollo de sistema y una GUI, Windows NT puede correr directamente aplicaciones
de Windows de Microsoft y de Unix.

Windows NT, al igual que el OS/2 ver 2.0 y algunas versiones de Unix, es un SO
de 32 bits, que puede hacer completo uso de los procesadores de estas características.
Además de ser multitarea, está diseñado para tomar ventaja del multiproceso simétrico.

Lenguajes de Programación cierran el abismo entre las computadoras, que sólo


trabajan con números binarios, y los humanos, que preferimos utilizar palabras y otros
sistemas de numeración.

Mediante los programas se indica a la computadora qué tarea debe realizar y


como efectuarla, pero para ello es preciso introducir estas ordenes en un lenguaje que el
sistema pueda entender. En principio, el ordenador sólo entiende las instrucciones en
código máquina, es decir, el específico de la computadora. Sin embargo, a partir de
éstos se elaboran los llamados lenguajes de alto y bajo nivel.

Solaris

Solaris es un sistema operativo de tipo Unix desarrollado por Sun Microsystems


desde 1992 como sucesor de Sun OS?. Es un sistema certificado oficialmente como
versión de Unix. Funciona en arquitecturas SPARC y x86 para servidores y estaciones
de trabajo.
Aunque Solaris fue desarrollado como software privativo, la mayor parte de su
código se ha liberado como proyecto de software libre denominado Open Solaris.
Solaris es conocido por su escalabilidad, especialmente en sistemas SPARC, y por ser
origen de innovadoras tecnologías, como DT Race y ZFS.

1.1. DEFINICIÓN Y CONCEPTO.

Un sistema operativo es un conjunto de programas o software, destinado a permitir


la comunicación entre el usuario y la máquina de forma cómoda y eficiente; se encarga
de gestionar los recursos del ordenador, esto incluye la gestión del hardware desde los
niveles más básicos.

1.2. FUNCIONES Y CARACTERÍSTICAS

Un sistema operativo (cuyo acrónimo es SO) es un conjunto de programas


destinados a permitir la comunicación del usuario con un computador y gestionar sus
recursos de una forma eficaz. Comienza a trabajar cuando se enciende el computador, y
gestiona el hardware de la máquina desde los niveles más básicos.

Funciones de los sistemas operativos.

1.- Aceptar todos los trabajos y conservarlos hasta su finalización.


2.- Interpretación de comandos: Interpreta los comandos que permiten al usuario
comunicarse con el ordenador.
3.- Control de recursos: Coordina y manipula el hardware de la computadora, como la
memoria, las impresoras, las unidades de disco, el teclado o el Mouse.
4.- Manejo de dispositivos de E/S: Organiza los archivos en diversos dispositivos de
almacenamiento, como discos flexibles, discos duros, discos compactos o cintas
magnéticas.
5.- Manejo de errores: Gestiona los errores de hardware y la pérdida de datos.
6.- Secuencia de tareas: El sistema operativo debe administrar la manera en que se
reparten los procesos. Definir el orden. (Quien va primero y quien después).
7.- Protección: Evitar que las acciones de un usuario afecten el trabajo que esta
realizando otro usuario.
8.- Multiacceso: Un usuario se puede conectar a otra máquina sin tener que estar cerca
de ella.
9.- Contabilidad de recursos: establece el costo que se le cobra a un usuario por utilizar
determinados recursos.

Características de los sistemas operativos.


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

1.3 EVOLUCIÓN HISTÓRICA

Historia de los Sistemas Operativos

Un sistema operativo es un software de sistema, es decir, un conjunto de


programas de computadora destinado a permitir una administración eficaz de sus
recursos. Comienza a trabajar cuando se enciende el computador, y gestiona el hardware
de la máquina desde los niveles más básicos, permitiendo también la interacción con el
usuario.

Un sistema operativo se puede encontrar normalmente en la mayoría de los


aparatos electrónicos que utilicen microprocesadores para funcionar, ya que gracias a
éstos podemos entender la máquina y que ésta cumpla con sus funciones (teléfonos
móviles, reproductores de DVD, autoradios, computadoras, etc).

Actualmente el concepto de computadora esta intrínsecamente relacionado al de


sistema operativo, aunque éste existe en otros aparatos electrónicos y no sólo en las
computadoras.

Años 40 A finales de los años 40, con lo que podríamos llamar la aparición de la
primera generación de computadoras, se accedía directamente a la consola de la
computadora desde la cual se actuaba sobre una serie de micro interruptores que
permitían introducir directamente el programa en la memoria de la computadora (en
realidad al existir tan pocas computadoras todos podrían considerarse prototipos y cada
constructor lo hacía sin seguir ningún criterio predeterminado). Por aquel entonces no
existían los sistemas operativos, y los programadores debían interactuar con el hardware
del computador sin ayuda externa. Esto hacía que el tiempo de preparación para realizar
una tarea fuera considerable. Además para poder utilizar la computadora debía hacerse
por turnos. Para ello, en muchas instalaciones, se rellenaba un formulario de reserva en
el que se indicaba el tiempo que el programador necesitaba para realizar su trabajo. En
aquel entonces las computadoras eran máquinas muy costosas lo que hacía que
estuvieran muy solicitadas y que sólo pudieran utilizarse en periodos breves de tiempo.
Todo se hacia en lenguaje de máquina.

Años 50 A principios de los años 50 con el objeto de facilitar la interacción entre


persona y computador, los sistemas operativos hacen una aparición discreta y bastante
simple, con conceptos tales como el monitor residente, el proceso por lotes y el
almacenamiento temporal.

Monitor residente. Su funcionamiento era bastante simple, se limitaba a cargar


los programas a memoria, leyéndolos de una cinta o de tarjetas perforadas, y ejecutarlos.
El problema era encontrar una forma de optimizar el tiempo entre la retirada de un
trabajo y el montaje del siguiente.

Procesamiento por lotes Como solución para optimizar, en una misma cinta o
conjunto de tarjetas, de forma que se ejecutaran uno a continuación de otro sin perder
apenas tiempo en la transición.

Almacenamiento temporal. Su objetivo era disminuir el tiempo de carga de los


programas, haciendo simultánea la carga del programa o la salida de datos con la
ejecución de la siguiente tarea. Para ello se utilizaban dos técnicas, el buffering y el
spooling.

Años 60 En los años 60 se produjeron cambios notorios en varios campos de la


informática, con la aparición del circuito integrado la mayoría orientados a seguir
incrementando el potencial de los computadores. Para ello se utilizaban técnicas de lo
más diversas:

Multiprogramación. En un sistema multiprogramado la memoria principal


alberga a más de un programa de usuario. La CPU ejecuta instrucciones de un
programa, cuando el que se encuentra en ejecución realiza una operación de E/S; en
lugar de esperar a que termine la operación de E/S, se pasa a ejecutar otro programa. Si
éste realiza, a su vez, otra operación de E/S, se mandan las órdenes oportunas al
controlador, y pasa a ejecutarse otro. De esta forma es posible, teniendo almacenado un
conjunto adecuado de tareas en cada momento, utilizar de manera óptima los recursos
disponibles.

Tiempo compartido. En este punto tenemos un sistema que hace buen uso de la
electrónica disponible, pero adolece de falta de interactividad; para conseguirla debe
convertirse en un sistema multiusuario, en el cual existen varios usuarios con un
terminal en línea, utilizando el modo de operación de tiempo compartido. En estos
sistemas los programas de los distintos usuarios residen en memoria. Al realizar una
operación de E/S los programas ceden la CPU a otro programa, al igual que en la
multiprogramación. Pero, a diferencia de ésta, cuando un programa lleva cierto tiempo
ejecutándose el sistema operativo lo detiene para que se ejecute otra aplicación. Con
esto se consigue repartir la CPU por igual entre los programas de los distintos usuarios,
y los programas de los usuarios no se sienten demasiado lentos por el hecho de que los
recursos sean compartidos y aparentemente se ejecutan de manera concurrente.

Tiempo real. Estos sistemas se usan en entornos donde se deben aceptar y


procesar en tiempos muy breves un gran número de sucesos, en su mayoría externos al
ordenador. Si el sistema no respeta las restricciones de tiempo en las que las operaciones
deben entregar su resultado se dice que ha fallado. El tiempo de respuesta a su vez debe
servir para resolver el problema o hecho planteado. El procesamiento de archivos se
hace de una forma continua, pues se procesa el archivo antes de que entre el siguiente,
sus primeros usos fueron y siguen siendo en telecomunicaciones.

Multiprocesador. Permite trabajar con máquinas que poseen más de un


microprocesador.
Se denomina multiprocesador a un ordenador que cuenta con dos o más
microprocesadores (CPUs).

Gracias a esto, el multiprocesador puede ejecutar simultáneamente varios hilos


pertenecientes a un mismo proceso o bien a procesos diferentes.

Los ordenadores multiprocesador presentan problemas de diseño que no se


encuentran en ordenadores monoprocesador. Estos problemas derivan del hecho de que
dos programas pueden ejecutarse simultáneamente y, potencialmente, pueden
interferirse entre sí. Concretamente, en lo que se refiere a las lecturas y escrituras en
memoria. Existen dos arquitecturas que resuelven estos problemas:

La arquitectura NUMA, donde cada procesador tiene acceso y control exclusivo


a una parte de la memoria. La arquitectura SMP, donde todos los procesadores
comparten toda la memoria. Esta última debe lidiar con el problema de la coherencia de
caché. Cada microprocesador cuenta con su propia memoria cache local. De manera que
cuando un microprocesador escribe en una dirección de memoria, lo hace únicamente
sobre su copia local en caché. Si otro microprocesador tiene almacenada la misma
dirección de memoria en su caché, resultará que trabaja con una copia obsoleta del dato
almacenado.

Para que un multiprocesador opere correctamente necesita un sistema operativo


especialmente diseñado para ello. La mayoría de los sistemas operativos actuales poseen
esta capacidad.

Sistemas operativos desarrollados Además del Atlas Supervisor y el OS/360, los


sesenta marcaron el inicio de UNIX, a mediados de los 60 aparece Multics, sistema
operativo multiusuario - multitarea desarrollado por los laboratorios Bell de AT&T y
programado en PL/1 uno de los pocos SO desarrollados en un lenguaje de alto nivel en
aquel tiempo, luego del fracaso del proyecto, UNIX comienza a desarrollarse a partir de
este a finales de la década.
Años 70 Debido al avance de la electrónica, pudo empezar a crearse circuitos
con miles de transistores en un centímetro cuadrado de silicio, lo que llevaría, pocos
años después, a producir los primeros sistemas integrados. Ésta década se podría definir
como la de los sistemas de propósito general y en ella se desarrollan tecnologías que se
siguen utilizando en la actualidad. Es en los años 70 cuando se produce el boom de los
miniordenadores y la informática se acerca al nivel de usuario. En lo relativo a
lenguajes de programación, es de señalar la aparición de Pascal y C, el último de los
cuales se creó específicamente para reescribir por completo el código del sistema
operativo Unix, convirtiéndolo en uno de los pocos SO escritos en un lenguaje de alto
nivel. En el campo de la programación lógica se dio a luz la primera implementación de
Prolog, y en la revolucionaria orientación a objetos, Smalltalk.

Inconvenientes de los sistemas existentes Se trataba de sistemas grandes y


costosos, pues antes no se había construido nada similar y muchos de los proyectos
desarrollados terminaron con costos muy por encima del presupuesto y mucho después
de lo que se marcaba como fecha de finalización. Además, aunque formaban una capa
entre el hardware y el usuario, éste debía conocer un complejo lenguaje de control para
realizar sus trabajos. Otro de los inconvenientes es el gran consumo de recursos que
ocasionaban, debido a los grandes espacios de memoria principal y secundaria
ocupados, así como el tiempo de procesador consumido. Es por esto que se intentó
hacer hincapié en mejorar las técnicas ya existentes de multiprogramación y tiempo
compartido.

Características de los nuevos sistemas Para solventar los problemas antes


comentados, se realizó un costosísimo trabajo para interponer una amplia capa de
software entre el usuario y la máquina, de forma que el primero no tuviese que conocer
ningún detalle de la circuitería.

Sistemas operativos desarrollados MULTICS (Multiplexed Information and


Computing Service): Originalmente era un proyecto cooperativo liderado por
Fernando Corbató del MIT, con General Electric y los laboratorios Bell, que comenzó
en los 60, pero los laboratorios Bell abandonaron en 1969 para comenzar a crear el
sistema UNIX. Se desarrolló inicialmente para el mainframe GE-645, un sistema de 36
bits; después fue soportado por la serie de máquinas Honeywell 6180. Fue uno de los
primeros sistemas operativos de tiempo compartido, que implementó un solo nivel de
almacenamiento para el acceso a los datos, desechando la clara distinción entre los
ficheros y los procesos en memoria, y uno de los primeros sistemas multiprocesador.

MVS (Multiple Virtual Storage): Fue el sistema operativo más usado en los
modelos de mainframes -ordenadores grandes, potentes y caros usados principalmente
por grandes compañías para el procesamiento de grandes cantidades de datos-
System/370 y System/390 de IBM, desarrollado también por IBM y lanzado al mercado
por primera vez en 1974. Como características destacables, permitía la ejecución de
múltiples tareas, además de que introdujo el concepto de memoria virtual y finalmente
añadió la capacidad de que cada programa tuviera su propio espacio de
direccionamiento de memoria, de ahí su nombre.
CP/M (Control Program/Monitor): Desarrollado por Gary Kildall para el
microprocesador 8080/85 de Intel y el Zilog Z80, salió al mercado en 1976,
distribuyéndose en disquetes de ocho pulgadas. Fue el SO más usado en las
computadoras personales de esta década. Su éxito se debió a que era portátil,
permitiendo que diferentes programas interactuasen con el hardware de una manera
estandarizada. Estaba compuesto de dos subsistemas: CCP (Comand Control
Processor): Intérprete de comandos que permitía introducir los mandatos con sus
parámetros separados por espacios. Además, los traducía a instrucciones de alto nivel
destinadas a BDOS. BDOS (Basic Disk Operating System): Traductor de las
instrucciones en llamadas a la BIOS. El hecho de que, años después, IBM eligiera para
sus PCs a MS-DOS supuso su mayor fracaso, por lo que acabó desapareciendo.

Años 80 Con la creación de los circuitos LSI -integración a gran escala-, chips
que contenían miles de transistores en un centímetro cuadrado de silicio, empezó el
auge de los ordenadores personales. En éstos se dejó un poco de lado el rendimiento y
se buscó más que el sistema operativo fuera amigable, surgiendo menús, e interfaces
gráficas. Esto reducía la rapidez de las aplicaciones, pero se volvían más prácticos y
simples para los usuarios. En esta época, siguieron utilizándose lenguajes ya existentes,
como Smalltalk o C, y nacieron otros nuevos, de los cuales se podrían destacar: C++ y
Eiffel dentro del paradigma de la orientación a objetos, y Haskell y Miranda en el
campo de la programación declarativa. Un avance importante que se estableció a
mediados de la década de 1980 fue el desarrollo de redes de computadoras personales
que corrían sistemas operativos en red y sistemas operativos distribuidos. En esta
escena, dos sistemas operativos eran los mayoritarios: MS-DOS, escrito por Microsoft
para IBM PC y otras computadoras que utilizaban la CPU Intel 8088 y sus sucesores, y
UNIX, que dominaba en los ordenadores personales que hacían uso del Motorola
68000.

Apple Macintosh El lanzamiento oficial se produjo en enero de 1984, al precio


de 2495 dólares. Muchos usuarios, al ver que estaba completamente diseñado para
funcionar a través de una GUI (Graphic User Interface), acostumbrados a la línea de
comandos, lo tacharon de juguete. A pesar de todo, el Mac se situó a la cabeza en el
mundo de la edición a nivel gráfico.

MS-DOS En 1981 Microsoft compró un sistema operativo llamado QDOS que,


tras realizar unas pocas modificaciones, se convirtió en la primera versión de MS-DOS
(Micro Soft Disk Operating System). A partir de aquí se sucedieron una serie de
cambios hasta llegar a la versión 7.1, a partir de la cual MS-DOS dejó de existir como
tal y se convirtió en una parte integrada del sistema operativo Windows.

Años 90 GNU/Linux En 1991 aparece la primer versión del núcleo de Linux.


Creado por Linus Torvalds y un sinfín de colaboradores a través de Internet. Este
sistema se basa en Unix, un sistema que en principio trabajaba en modo comandos,
estilo MS-DOS. Hoy en día dispone de Ventanas, gracias a un servidor gráfico y a
gestores de ventanas como KDE, GNOME entre muchos. Recientemente GNU/Linux
dispone de un aplicativo que convierte las ventanas en un entorno 3D como por ejemplo
Beryl. Lo que permite utilizar linux de una forma visual atractiva.

Microsoft Windows En 1985 se crea este sistema operativo pero hasta la salida
de windows 95 no se le puede considerar un sistema operativo, solo era una interfaz
gráfica del MS-DOS. Hoy en día es el sistema operativo más difundido en el ámbito
domestico aunque también hay versiones para servidores y Microsoft ha diseñado
algunas versiones para superordenadores sin mucho éxito.
1.4. CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS.

Sistema Operativo Multitareas.

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. En la multitarea
cooperativa, la que se utiliza en el sistema operativo Macintosh, las tareas en segundo
plano reciben tiempo de procesado durante los tiempos muertos de la tarea que se
encuentra en primer plano (por ejemplo, cuando esta aplicación esta esperando
información del usuario), y siempre que esta aplicación lo permita. En los sistemas
multitarea de tiempo compartido, como OS/2, cada tarea recibe la atención del
microprocesador durante una fracción de segundo. Para mantener el sistema en orden,
cada tarea recibe un nivel de prioridad o se procesa en orden secuencial. Dado que el
sentido temporal del usuario es mucho más lento que la velocidad de procesamiento del
ordenador, las operaciones de multitarea en tiempo compartido parecen ser simultáneas.
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 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 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 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).

Secuencia por Lotes.

La secuencia por lotes o procesamiento por lotes en microcomputadoras, es la


ejecución de una lista de comandos del sistema operativo uno tras otro sin intervención
del usuario. En los ordenadores más grandes el proceso de recogida de programas y de
conjuntos de datos de los usuarios, la ejecución de uno o unos pocos cada vez y la
entrega de los recursos a los usuarios. Procesamiento por lotes también puede referirse
al proceso de almacenar transacciones durante un cierto lapso antes de su envío a un
archivo maestro, por lo general una operación separada que se efectúa durante la noche.

Los sistemas operativos por lotes (batch), en los que los programas eran tratados
por grupos (lote) en ves de individualmente. La función de estos sistemas operativos
consistía en cargar en memoria un programa de la cinta y ejecutarlo. Al final este, se
realizaba el salto a una dirección de memoria desde donde reasumía el control del
sistema operativo que cargaba el siguiente programa y lo ejecutaba. De esta manera el
tiempo entre un trabajo y el otro disminuía considerablemente.

Tiempo Real.

Un sistema operativo en tiempo real procesa las instrucciones recibidas al


instante, y una vez que han sido procesadas muestra el resultado. Este tipo tiene relación
con los sistemas operativos monousuarios, ya que existe un solo operador y no necesita
compartir el procesador entre varias solicitudes.

Su característica principal es dar respuestas rápidas; por ejemplo en un caso de


peligro se necesitarían respuestas inmediatas para evitar una catástrofe.

Tiempo Compartido.

El tiempo compartido en ordenadores o computadoras consiste en el uso de un


sistema por más de una persona al mismo tiempo. El tiempo compartido ejecuta
programas separados de forma concurrente, intercambiando porciones de tiempo
asignadas a cada programa (usuario). En este aspecto, es similar a la capacidad de
multitareas que es común en la mayoría de los microordenadores o las
microcomputadoras. Sin embargo el tiempo compartido se asocia generalmente con el
acceso de varios usuarios a computadoras más grandes y a organizaciones de servicios,
mientras que la multitarea relacionada con las microcomputadoras implica la realización
de múltiples tareas por un solo usuario.

1.6. ESTRUCTURA SISTEMAS OPERATIVOS (NIVELES O ESTRATOS DE


DISEÑO)

En esta unidad examinaremos cuatro estructuras distintas que ya han sido probadas, con
el fin de tener una idea más extensa de cómo esta estructurado el sistema operativo.
Veremos brevemente algunas estructuras de diseños de sistemas operativos.
Estructura modular.
También llamados sistemas monolíticos. Este tipo de organización es con mucho la mas
común; bien podría recibir el subtitulo de "el gran embrollo". La estructura consiste en
que no existe estructura alguna. El sistema operativo se escribe como una colección de
procedimientos, cada uno de los cuales puede llamar a los demás cada vez que así lo
requiera. Cuando se usa esta técnica, cada procedimiento del sistema tiene una interfaz
bien definida en términos de parámetros y resultados y cada uno de ellos es libre de
llamar a cualquier otro, si este ultimo proporciona cierto cálculo útil para el primero.
Sin embargo incluso en este tipo de sistemas es posible tener al menos algo de
estructura. Los servicios (llamadas al sistema) que proporciona el sistema operativo se
solicitan colocando los parámetros en lugares bien definidos, como en los registros o en
la pila, para después ejecutar una instrucción especial de trampa de nombre "llamada al
núcleo" o "llamada al supervisor".
Esta organización sugiere una organización básica del sistema operativo:
1.- un programa principal que llama al procedimiento del servicio solicitado.
2.- un conjunto de procedimientos de servicio que llevan a cabo las llamadas al sistema.
3.- un conjunto de procedimientos utilitarios que ayudan al procedimiento de servicio.
En este modelo, para cada llamada al sistema existe un procedimiento de servicio que se
encarga de él. Los procedimientos utilitarios hacen cosas necesarias para varios
procedimientos de servicio, por ejemplo buscar los datos de los programas del usuario.
Estructura por microkernel.
Las funciones centrales de un SO son controladas por el núcleo (kernel) mientras que la
interfaz del usuario es controlada por el entorno (shell). Por ejemplo, la parte más
importante del DOS es un programa con el nombre "COMMAND.COM" Este programa
tiene dos partes. El kernel, que se mantiene en memoria en todo momento, contiene el
código máquina de bajo nivel para manejar la administración de hardware para otros
programas que necesitan estos servicios, y para la segunda parte del COMMAND.COM
el shell, el cual es el interprete de comandos.
Las funciones de bajo nivel del SO y las funciones de interpretación de comandos están
separadas, de tal forma que puedes mantener el kernel DOS corriendo, pero utilizar una
interfaz de usuario diferente. Esto es exactamente lo que sucede cuando cargas
Microsoft Windows, el cual toma el lugar del shell, reemplazando la interfaz de línea de
comandos con una interfaz gráfica del usuario. Existen muchos "shells" diferentes en el
mercado, ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o inclusive el mismo SO
MS-DOS a partir de la versión 5.0 incluyó un Shell llamado DOS SHELL.
Estructura por anillos concéntricos (capas).
El sistema por "capas" consiste en organizar el sistema operativo como una jerarquía de
capas, cada una construida sobre la inmediata inferior. El primer sistema construido de
esta manera fue el sistema THE (Technische Hogeschool Eindhoven), desarrollado en
Holanda por E. W. Dijkstra (1968) y sus estudiantes.
El sistema tenia 6 capas, como se muestra en la figura 3. La capa 0 trabaja con la
asignación del procesador y alterna entre los procesos cuando ocurren las interrupciones
o expiran los cronómetros. Sobre la capa 0, el sistema consta de procesos secuénciales,
cada uno de los cuales se podría programar sin importar que varios procesos estuvieran
ejecutándose en el mismo procesador, la capa 0 proporcionaba la multiprogramación
básica de la CPU.
La capa 1 realizaba la administración de la memoria. Asignaba el espacio de memoria
principal para los procesos y un recipiente de palabras de 512K se utilizaba para
almacenar partes de los procesos (páginas) para las que no existía lugar en la memoria
principal. Por encima de la capa 1, los procesos no debían preocuparse si estaban en la
memoria o en el recipiente; el software de la capa 1 se encargaba de garantizar que las
páginas llegaran a la memoria cuando fueran necesarias.
La capa 2 se encargaba de la comunicación entre cada proceso y la consola del
operador. Por encima de esta capa, cada proceso tiene su propia consola de operador.
La capa 3 controla los dispositivos de E/S y guarda en almacenes (buffers) los flujos de
información entre ellos. Por encima de la capa 3, cada proceso puede trabajar con
dispositivos exactos de E/S con propiedades adecuadas, en vez de dispositivos reales
con muchas peculiaridades. La capa 4 es donde estaban los programas del usuario, estos
no tenían que preocuparse por el proceso, memoria, consola o control de E/S. el proceso
operador del sistema se localizaba en la capa 5
Una generalización mas avanzada del concepto de capas se presento en el sistema
MULTICS. En lugar de capas, MULTICS estaba organizado como una serie de anillos
concéntricos, siendo los anillos interiores los privilegiados. Cuando un procedimiento
de un anillo exterior deseaba llamar a un procedimiento de un anillo interior, debió
hacer el equivalente a una llamada al sistema
Mientras que el esquema de capas de THE era en realidad un apoyo al diseño, debido a
que todas las partes del sistema estaban ligadas entre si en un solo programa objeto, en
MULTICS, el mecanismo de anillos estaba mas presente durante el tiempo de ejecución
y era reforzado por el hardware. La ventaja del mecanismo de anillos es su facilidad de
extensión para estructurar subsistemas del usuario.

5 El operador

4 Programas del usuario

3 Control de entrada/salida

2 Comunicación operador-proceso

1 Administración de la memoria y del disco

0 Asignación del procesador y multiprogramación

Estructura del sistema operativo THE.


Estructura cliente – servidor
Una tendencia de los sistemas operativos modernos es la de explotar la idea de mover el
código a capas superiores y eliminar la mayor parte posible del sistema operativo para
mantener un núcleo mínimo. El punto de vista usual es el de implantar la mayoría de las
funciones del sistema operativo en los procesos del usuario. Para solicitar un servicio,
como la lectura de un bloque de cierto archivo, un proceso del usuario (denominado
proceso cliente) envía la solicitud a un proceso servidor, que realiza entonces el trabajo
y regresa la respuesta. En este modelo, que se muestra en la figura 4, lo único que hace
el núcleo es controlar la comunicación entre los clientes y los servidores. Al separar el
sistema operativo en partes, cada una de ellas controla una faceta del sistema, como el
servicio a archivos, servicios a procesos, servicio a terminales o servicio a la memoria,
cada parte es pequeña y controlable. Además como todos los servidores se ejecutan
como procesos en modo usuario y no en modo núcleo, no tienen acceso directo al
hardware. En consecuencia si hay un error en el servidor de archivos, éste puede fallar,
pero esto no afectará en general a toda la máquina.
El modelo Cliente-servidor.
Otra de las ventajas del modelo cliente-servidor es su capacidad de adaptación para su
uso en los sistemas distribuidos.
Si un cliente se comunica con un servidor mediante mensajes, el cliente no necesita
saber si el mensaje se maneja en forma local, en su máquina, o si se envía por medio de
una red a un servidor en una máquina remota. En lo que respecta al cliente, lo mismo
ocurre en ambos casos: se envió una solicitud y se recibió una respuesta.

1.6.1 Interrupciones Flih

La interrupción es el mecanismo mediante el cual otros módulos pueden


interrumpir una secuencia normal de procesamiento.

Programa: por ejemplo división por cero.


Temporizador: cuando se cumple un tiempo específico.
E/S: cuando hay algo que comunicar.
Hardware: cuando ocurre una falla.

La gestión de interrupciones la realiza el manipulador (controlador) de


interrupciones (FLIH, First Level Interrupt Handler).

El manipulador de interrupciones es la parte del sistema operativo responsable


de proporcionar la respuesta adecuada a las señales procedentes tanto del exterior como
del interior del sistema (interrupciones externas e internas).

1.6.2. Despachador Scheduler

Se encarga de asignar los procesadores a los diferentes procesos, por lo tanto


debe actuar cuando se debe comprobar si es necesario cambiar el proceso que está
activo. Esto involucra:

 Cambio de contexto
 Cambio a modo usuario
 Salto a la dirección de memoria que corresponda al programa de usuario para
continuar su ejecución.

Criterios de Despachador

 Utilización de CPU: mantener la CPU ocupada la mayor cantidad del tiempo


posible
 Productividad (Throughput): # de procesos por unidad de tiempo
 Tiempo de servicio (Turnaround time): tiempo necesario para la ejecución de un
proceso particular
 Tiempo de espera (Waiting time): tiempo total que el proceso se encuentra en la
fila ready
 Tiempo de respuesta (Response time): tiempo que transcurre desde el
requerimiento hasta que se produce la primera respuesta (en ambientes de
tiempo compartido).
Criterios de Optimización

 Máxima utilización de CPU


 Máxima productividad
 Mínimo tiempo de servicio
 Mínimo tiempo de espera
 Mínimo tiempo de respuesta

1.6.3. PRIMITIVAS DE COMUNICACIÓN IPC (COMUNICACIÓN ENTRE


PROCESOS

Es una función básica de los Sistemas operativos.

Los procesos pueden comunicarse entre sí a través de compartir espacios de


memoria, ya sean variables compartidas o buffers, o a través de las herramientas
provistas por las rutinas de IPC.

La IPC provee un mecanismo que permite a los procesos comunicarse y


sincronizarse entre sí. Normalmente a través de un sistema de bajo nivel de paso de
mensajes que ofrece la red subyacente.

La comunicación se establece siguiendo una serie de reglas (protocolos de


comunicación). Los protocolos desarrollados para Internet son los mayormente usados:
protocolo de Internet (capa de red), protocolo de control de transmisión (capa de
transporte) y protocolo de transferencia de archivos, protocolo de transferencia de
hipertexto (capa de aplicación).

Anda mungkin juga menyukai