21
UNIVERSIDAD CONTINENTAL DE CIENCIAS E INGENIERIA HUANCAYO - PERÚ ARQUITECTURA DEL COMPUTADOR Y SISTEMAS OPERATIVOS II “SISTEMAS OPERATIVOS” CONTENIDO 1. ARRANQUE DE LA COMPUTADORA Y DEL SISTEMA OPERATIVO 2. COMPONENTES Y ESTRUCTURA DEL SISTEMA OPERATIVO 3. GESTIÓN DE PROCESOS 4. GESTIÓN DE MEMORIA 5. GESTIÓN DE E/S 6. GESTIÓN DE ARCHIVOS Y DIRECTORIOS 7. COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS 8. SEGURIDAD Y PROTECCIÓN 9. ACTIVACIÓN DEL SISTEMA OPERATIVO Y LLAMADA AL SISTEMA 10. INTERFAZ DE USUARIO DEL SISTEMA OPERATIVO E INTERFAZ DEL PROGRAMADOR 11. HISTORIA Y EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS SAFORAS CONTRERAS DANNY H. Resúmen del libro Sistemas Operativos – Carretero Capítulo 2: Una visión aplicada 2007

Sistemas Operativos

Embed Size (px)

DESCRIPTION

Breve resumen sobre la anatomía de los sistemas operativos.

Citation preview

Page 1: Sistemas Operativos

UNIVERSIDAD CONTINENTAL DE CIENCIAS E INGENIERIA

HUANCAYO ­ PERÚ

ARQUITECTURA DEL COMPUTADOR Y SISTEMAS OPERATIVOS II

“SISTEMAS OPERATIVOS”

CONTENIDO

1. ARRANQUE DE LA COMPUTADORA Y DEL SISTEMA OPERATIVO2. COMPONENTES Y ESTRUCTURA DEL SISTEMA OPERATIVO

3. GESTIÓN DE PROCESOS4. GESTIÓN DE MEMORIA

5. GESTIÓN DE E/S6. GESTIÓN DE ARCHIVOS Y DIRECTORIOS

7. COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS8. SEGURIDAD Y PROTECCIÓN

9. ACTIVACIÓN DEL SISTEMA OPERATIVO Y LLAMADA AL SISTEMA10. INTERFAZ DE USUARIO DEL SISTEMA OPERATIVO E INTERFAZ DEL 

PROGRAMADOR11. HISTORIA Y EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS

SAFORAS CONTRERAS DANNY H.

Resúmen del libro Sistemas Operativos – Carretero

Capítulo 2: Una visión aplicada

2007

Page 2: Sistemas Operativos

SISTEMAS OPERATIVOS

MAQUINA DESNUDA: Computadora carente de un sistema operativo.

SISTEMA OPERATIVO: Un sistema operativo es un programa destinado 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.

FUNCIÓNES BÁSICAS:

a. Gestión de recursos de la computadora.

>> Administra el hardware de manera eficiente.

b. Ejecución de servicios para los programas.

>> Proporcionar comodidad en el uso de un computador.

c. Ejecución de los mandatos de los usuarios.

>> Brindar una interfaz al usuario, ejecutando instrucciones (comandos).

1. ARRANQUE DE LA COMPUTADORA Y DEL SISTEMA OPERATIVO

1.1 ARRANQUE DE LA COMPUTADORA

FASE DE ARRANQUE HARDWARE 

Se basa en un programa permanente grabado en una memoria ROM. 

En esta memoria ROM se encuentra a un programa de arranque.

Cuando se  arranca   la  computadora,   se  genera  una  señal  eléctrica  que carga uno. valores predefinidos en los registros.

1. Hace una comprobación del sistema,

Page 3: Sistemas Operativos

Detecta sus características:

>>Cantidad de memoria principal disponible.

>>Los periféricos instalados.

2. Entra en la fase de lectura y almacenamiento en memoria 

3. Finalmente da control a este programa.

FASE ARRANQUE DEL SISTEMA OPERATIVO. 

El sistema operativo se encuentra almacenado en una unidad de disco.

Existe un sector de boot que carga al sistema operativo MBR

Este programa está  almacenado en una zona predefinida del  disco >> primeros sectores de disco duro.

La   ROM   trae   a   memoria   principal   el   programa   cargado   del   sistema operativo. 

Se   completan   las   pruebas   del   hardware   realizadas  por   la   ROM  y   se comprueba que el sistema de archivos tiene un estado coherente.

Se carga en memoria principal aquella parte del sistema operativo que ha de estar siempre memoria. = SISTEMA OPERATIVO RESIDENTE.

Se crea un proceso de inicio o  login por cada terminal definido en el sistema.

El usuario se loguea e ingresa al sistema operativo.

El proceso shell primero ejecuta uno o varios archivos de mandatos:

«autoexec.bat» en MS­DOS 

«.login» y «.cshrc» en UNIX. A

Page 4: Sistemas Operativos

2. COMPONENTES Y ESTRUCTURA DEL SISTEMA OPERATIVO   

2.1 COMPONENTES DE UN SISTEMA OPERATIVO 

NUCLEO

El   núcleo   del   Sistema   Operativo   generalmente   realiza   las   siguientes funciones: 

• Manipulación de interrupciones.

• Creación y destrucción de procesos.

• Cambio de estados de procesos.

• Despacho.

• Suspensión y reanudación de procesos.

• Sincronización de procesos.

• Comunicación entre procesos.

• Manipulación de bloques de control de proceso.

• Soporte de las actividades de Entrada / Salida.

• Soporte de la asignación y desasignación de almacenamiento.

• Soporte del sistema de archivos.

• Soporte de un mecanismo de llamada / regreso al procedimiento.

• Soporte de ciertas funciones contables (estadísticas) del sistema.

Page 5: Sistemas Operativos

A. S.O COMO GESTOR DE RECURSOS

Como gestor de recursos, el Sistema Operativo administra:

• La CPU (Unidad Central de Proceso).• Los dispositivos de E/S• La memoria.• Las colas de procesos.• Los recursos del sistema.

A.1 ASIGNACIÓN DE RECURSOS

>> Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los procesos (programas)

>>La   asignación   de   recursos   se   realiza   según   la   disponibilidad   y prioridad

>>Una   mala   administración   de   recursos   puede   hacer   que   la computadora  crea  que  ya  no   tiene  memoria   cuando  en   realidad   si tiene.

>>Los recursos manejados por el S.O son físicos y lógicos.

Físicos: Procesador, Memoria principal, Periféricos

Lógicos: Archivos, puertos de comunicación.

A.2 PROTECCIÓN

>>Garantizar la protección entre los usuarios del sistema. 

>>Asegurar la confidencialidad de la información.

>>Impedir   que   unos   programas   puedan   acceder   a   los   recursos asignados a otros programas.

>> Distinguir entre uso autorizado y no autorizado.

>>Especificar los controles de seguridad a realizar.

Page 6: Sistemas Operativos

>>Forzar el uso de estos mecanismos de protección.

A.3 CONTABILIDAD

>>Medir   la   cantidad   de   recursos     que   utiliza   cada   programa   = monitorización

B. S.O COMO MAQUINA EXTENDIDA

B.1 EJECUCIÓN DE PROGRAMAS 

Proceso = Programa en ejecución.

El sistema operativo crea, ejecuta y destruye procesos mediante las órdenes del usuario. 

B.2 ORDENES DE E/S

Las   ordenes   de   entrada/salida   Permiten   a   los   programas operaciones de lectura, escritura, y modificaciones del estado de los periféricos.

B.3 OPERACIONES SOBRE ARCHIVOS

Permiten realizar operaciones más complejas que las órdenes de E/S,   como:   creación,   borrado,   renombrado,   apertura,   lectura   y escritura de archivos.

El SO es responsable de:

* Crear y destruir archivos y directorios.

*   Ofrecer   soporte   de   funciones   para   manipular   archivos   y directorios.

*   Establecer   la   correspondencia   entre   archivos   y   unidades   de almacenamiento.

* Realizar copias de seguridad de archivos.

Page 7: Sistemas Operativos

B.4 DETECCIÓN Y TRATAMIENTO DE ERRORES

>>Se encarga detectar posibles errores tanto del sistema mismo, como del hardware.

Errores en las operaciones de E/S,

Errores en los accesos a memoria o en los buses y 

Errores de ejecución en los programas:

Desbordamientos, 

Violaciones de memoria, 

Códigos de instrucción prohibida, etc.

C. S.O  COMO INTERFAZ DE USUARIO

• Espera una orden del usuario. >> Mediante el mouse, teclado, etc.

• Analiza la orden >> En caso de ser correcta, la ejecuta, 

• Concluida la orden vuelve a la espera.

2.2 ESTRUCTURA DE UN SISTEMA OPERATIVO

A. SISTEMA OPERATIVO MONOLÍTICO

Es muy común: no existe estructura propiamente dicha o es mínima.

El S. O. es una colección de procedimientos que se pueden llamar entre sí

Cada   procedimiento   tiene   una   interfaz   bien   definida   en   términos   de parámetros y resultados.

Para ejecutar los servicios del S. O:

• Se   solicitan   colocando   los   parámetros   en   lugares   bien definidos (registros o pilas).

Page 8: Sistemas Operativos

• Se ejecuta una instrucción especial de trampa: llamada al núcleo o llamada al supervisor.

• La  instrucción  cambia   la  máquina  del  modo  usuario   al modo núcleo (o modo supervisor).

• Se transfiere el control al S. O.• El   S.   O.   examina   los   parámetros   de   la   llamada   para 

determinar cuál de ellas se desea realizar.• El S. O. analiza una tabla que contiene en la entrada “k” 

un apuntador  al  procedimiento  que  realiza   la  “k­ésima” llamada al sistema:

• Identifica al procedimiento de servicio llamado.• La   llamada   al   sistema   termina   y   el   control   regresa   al 

programa del usuario.

B. SISTEMAS OPERATIVOS ESTRUCTURADOS

B.1 SISTEMAS POR CAPAS

Es una generalización del modelo de estructura simple para un sistema monolítico.

Consiste en organizar el s. o. como una jerarquía de capas, cada una construida sobre la inmediata inferior

5 ­ Operador

4 ­ Programas del Usuario

3 ­ Control de Entrada ­ Salida

2 ­ Comunicaciones Operador ­ Proceso

1 ­ Administración de la Memoria y del Disco

0 ­ Asignación del Procesador y Multiprogramación

Capa 0:

Trabaja con la asignación del procesador.

Alterna  entre   los  procesos  cuando ocurren   las   interrupciones  o expiran los cronómetros.

Proporciona la multiprogramación básica.

Page 9: Sistemas Operativos

Capa 1:

Administra la memoria.

Asegura que las páginas (porciones de memoria) requeridas de los procesos lleguen a memoria cuando fueran necesarias.

Capa 2:

Administra la comunicación entre cada proceso y la consola del operador.

Por   sobre   esta   capa,   cada   proceso   tiene   su  propia   consola   de operador.

Capa 3:

Controla los dispositivos de e / s y almacena en buffers los flujos de información entre ellos.

Por sobre la capa 3 cada proceso puede trabajar con dispositivos abstractos de e / s en vez de con dispositivos reales.

Capa 4:

Aloja los programas del usuario.

Los   programas.   del   usuario   no   tienen   que   preocuparse   por   el proceso, memoria, consola o control de e / s.

Capa 5:

Localiza el proceso operador del sistema.

B.2 MODELO CLIENTE – SERVIDOR

Una tendencia en los S. O. modernos es la de explotar la idea de mover el código a capas superiores y mantener un núcleo mínimo.

Para solicitar un servicio (por ej.: lectura de un bloque de cierto archivo) según el modelo cliente ­ servidor:

• El proceso del  usuario  (proceso cliente)  envía   la solicitud a un proceso servidor: 

Page 10: Sistemas Operativos

• Realiza el trabajo y regresa la respuesta.• El   núcleo   controla   la   comunicación   entre   los 

clientes y los servidores. • Se   fracciona   el   S.   O.   en   partes,   cada   una 

controlando una faceta: • Servicio   a   archivos,   a   procesos,   a   terminales,   a 

memoria,   etc.,   cada   parte   pequeña   y   más fácilmente controlable.

• Los servidores se ejecutan como procesos en modo usuario: 

• No tienen acceso directo al hardware.• Se aíslan y acotan más fácilmente los problemas.

Si un cliente se comunica con un servidor mediante mensajes: 

• No   necesita   saber   si   el   mensaje   se   atiende localmente o mediante un servidor remoto, situado en otra máquina conectada.

• Envía una solicitud y obtiene una respuesta.

3. GESTION DE PROCESOS

El   sistema   operativo   crea,   ejecuta   y   destruye   procesos   mediante   las órdenes del usuario. 

La “creación” de un proceso significa: 

  

Dar nombre al proceso.

Insertar un proceso en la lista del sistema de procesos conocidos.

Determinar la prioridad inicial del proceso.

Crear el bloque de control del proceso.

Asignar los recursos iniciales del proceso.

La “destrucción” de un proceso implica: 

  

Page 11: Sistemas Operativos

Borrarlo del sistema.

Devolver sus recursos al sistema.

Purgarlo de todas las listas o tablas del sistema.

Borrar su bloque de control de procesos.

4. GESTION DE MEMORIA

La memoria es una gran tabla de palabras o bytes que se referencian cada una   mediante   una   dirección   única.   Este   almacén   de   datos   de   rápido accesos es compartido por la CPU y los dispositivos de E/S, es volátil y pierde su contenido en los fallos del sistema. El SO es el responsable de:

* Conocer qué partes de la memoria están utilizadas y por quién.

* Decidir  qué  procesos  se cargarán en memoria  cuando halla  espacio disponible.

* Asignar y reclamar espacio de memoria cuando sea necesario.

4.1 SOLICITAR MEMORIAEste servicio aumenta el espacio de datos de la imagen de memoria del proceso.

4.2 LIBERAR MEMORIAEl sistema operativo  recupera  el   recurso  liberado y  lo  añade a  sus   listas  de recursos libres, para su posterior reutilización

4.3 COMPARTIR MEMORIAel  gestor  de  memoria   se  encarga  de  ofrecer   servicios  que  permiten  que   los procesos puedan comunicarse utilizando un segmento de memoria compartida.

5. COMUNICACIÓN Y SINCRONOZACIÓN ENTRE PROCESOS

Para   mantener   las   comunicaciones   con   otros   sistemas   es   necesario   poder controlar el envío y recepción de información a través de lso interfaces de red. También hay que crear  y mantener  puntos de comunicación que sirvan a  las 

Page 12: Sistemas Operativos

aplicaciones para enviar y recibir información, y crear y mantener conexiones virtuales  entre  aplicaciones  que están ejecutándose  localmente y otras  que  lo hacen remotamente.

5.1 SERVICIOS DE COMUNICACIÓN Y SINCRONIZACIÓN

• Creación del mecanismo.

• Utilización del mecanismo.

• Destrucción del mecanismo,

De acuerdo con esto, los servicios básicos de comunicación, que incluyen todos los mecanismos de comunicación, son los siguientes;

• Crear. Permite que el proceso solicite la creación del mecanismo.

• Enviar o escribir. Permite que el proceso emisor envíe información a otro.

• Recibir o leer. Permite que el proceso receptor reciba información de otro,

• Destruir. Permite que el proceso solicite la creación o destrucción del mecanismo.

6. GESTIÓN DE E/S

Una de las funciones principales de un S. O. es el control de todos los dispositivos de E/S de la computadora.. 

Las principales funciones relacionadas son: 

• Enviar comandos a los dispositivos.• Detectar las interrupciones.• Controlar los errores.• Proporcionar una interfaz entre los dispositivos y el resto 

del sistema:• Debe ser sencilla y fácil de usar.• Debe   ser   la   misma   (preferentemente)   para   todos   los 

dispositivos.

7. GESTION DE ARCHIVOS Y DIRECTORIOS

Page 13: Sistemas Operativos

Los archivos son colecciones de información relacionada, definidas por sus creadores. Éstos almacenan programas (en código fuente y objeto) y datos. El SO es responsable de:

• Crear y destruir archivos y directorios.• Ofrecer  soporte  de funciones  para manipular  archivos  y 

directorios.• Establecer la correspondencia entre archivos y unidades de 

almacenamiento.• Realizar copias de seguridad de archivos.

8. SEGURIDAD Y PROTECCIÓN

8.1 AUTENTICACIÓN

El objetivo de la autenticación es determinar que un usuario es quien dice ser., para ello se debe realizar un logueo e ingresar una contraseña antes de iniciar una sesión.

          8.2 PRIVILEGIOS

Los privilegios especifican los recursos que puede acceder cada usuario.  Se puede crear grupos de usuario, y de esa manea asignar privilegios a cada grupo, el administrador es quien tendrá  todos los privilegios del sistema operativo, a este tipo de super­usuario también se le conoce como root.

Para garantizar la seguridad de las contraseñas, estas son almacenadas en algún fichero, dependiendo del sistema operativo, pero pasado por un proceso de encriptación.

9. ACTIVACIÓN DEL SISTEMA OPERATIVO

En el proceso de activación de un sistema operativo debemos tomar en cuenta:

Las Llamadas al sistema emitidas por los programas.

Interrupción producida por los periféricos.

Condiciones de excepción o error del hardware.

Page 14: Sistemas Operativos

Por   tanto,   la   activación   del   sistema   operativo   solamente   se   realiza   mediante   el mecanismo de las interrupciones. Cuando es un proceso en ejecución el que desea un servicio del sistema operativo ha de utilizar una instrucción

10. INTERFAZ  DEL PROGRAMADOR

La interfaz del sistema operativo con el programador es la que recupera los servicios y llamadas al sistema que los usuarios pueden utilizar directamente desde sus programas.

Las interfaces más utilizadas son: POSIX y los servicios de Win32.

 POSIX

POSIX [IEEE96] es el estándar de interfaz de sistemas operativos potables de 1EEE basado en el sistema operativo UNIX

Ejemplos de funciones en POSIX son:

Las funciones, normalmente, devuelven cero si se ejecutaron con éxito 0­l en caso de error; Cuando una función devuelve ­1, se almacena en una variable global, denominada error.

Win32 

Define los servicios ofrecidos por los sistemas Windows 95/98, Windows NT y Windows 2000. En este caso no se trata de un estándar genérico, sino de los servicios establecido por una casa comercial determinada (Microsoft).

Prácticamente todos los recursos gestionados por el sistema operativo se tratan como objetos, que se reverencian por medio de manejadores. Estos manejadores son   similares   a   los   descriptores   de   archivos   de   POSIX.   Aunque   sigue   los principios de la programación orienta da a objetos, Win32 no es orientado a objetos.

Ejemplos de funciones en Win32 son

           — GetFileAttributes, para obtener los atributos de un archivo.

           — CreateNarnedpipe, para crear una tubería con nombre.

— Bool, objeto de 32 bits que almacena un valor lógico.

— DWCRD, entejo sin signo de 32 bits.

—   TCHAP,   tipo   carácter   de   dos   bytes.   LPSTR,   puntero   a   una   cadena   de caracteres.

Page 15: Sistemas Operativos

En Win32, las funciones devuelven, en general, true si la llamada se ejecutó con éxito o false en caso contrario.

11. INTERFAZ DEL USUARIO DEL SISTEMA OPERATIVO

Hoy en día ya existen muchas variedades de interfaces a comparación de hace muchos años atrás,  se han vuelto mas elegantes y son capaces de llamar mucho la atención a sus usuarios, los mas conocidos entornos de escritorio en el mundo Unix son KDE, GNOME XFCE, X­WINDOW, pero esto no queda solo en como se ve, si no en las aplicaciones que puede traer incorporado. Lo más común que puede traer consigo un sistema operativo son: 

• Manipulación de archivos y directorios. La interfaz debe proporcionar operaciones para crear, borrar, renombrar y, en general, procesar archivos y directorios.

• Herramientas para el desarrollo de las aplicaciones. (Ensambladores, enlazadores y depuradores).

• Comunicación con otros sistemas. 

• Información de estado del sistema. 

 • Configuración de la propia interfaz y del entorno. 

• Intercambio de datos entre aplicaciones. 

• Control de acceso. 

• Otras utilidades y herramientas (calculadoras o agendas).

ADMINISTRACIÓN DE USUARIOS

MONOTAREA:  Solamente   puede   ejecutar   un   proceso (aparte de los procesos del propio S.O.) en un momento dado. Una   vez   que   empieza   a   ejecutar   un   proceso,   continuará haciéndolo hasta su finalización o interrupción.

MULTITAREA:  Es   capaz   de   ejecutar   varios   procesos   al mismo   tiempo.   Este   tipo   de   S.O.   normalmente   asigna   los recursos  disponibles   (CPU,  memoria,  periféricos)  de   forma alternada a los procesos que los solicitan, de manera que el 

Page 16: Sistemas Operativos

usuario   percibe   que   todos   funcionan   a   la   vez,   de   forma concurrente.

INTÉRPRETE DE COMANDOS 

El shell  del sistema es el  principal componente del SO que utiliza   el   usuario.   Este   uso   se   realiza   siempre   directa   o indirectamente a través del intérprete. Generalmente incorpora un lenguaje de programación para automatizar las tareas.

Hay dos tipos de intérpretes de comandos:

ALFANUMÉRICOS:  las  órdenes se expresan mediante un lenguaje   específico   usando   las   cadenas   de   caracteres introducidas por el terminal.

GRÁFICOS (GUI): normalmente las órdenes se especifican por medio de iconos y otros elementos gráficos.

12. HISTORIA DE LOS SISTEMAS OPERATIVOS

PRIMERA GENERACIÓN (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 residenteSu 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 lotesComo solución para optimizar el tiempo de montaje surgió la idea de agrupar los trabajos en lotes, 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.

Page 17: Sistemas Operativos

SEGUNDA GENERACIÓN (AÑOS 60)

En los años 1960 se produjeron cambios notorios en varios campos de la informática, 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 otro 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

Page 18: Sistemas Operativos

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. En un multiprocesador los procesadores comparten memoria y reloj.

Sistemas operativos desarrollados

Además del Atlas Supervisor y el OS/360, utilizados en máquinas concretas, lo más destacable de la década es el nacimiento de Unix, que hoy en día es una de las plataformas más extendidas en el mundo de la informática.

TERCERA GENERACIÓN (AÑOS 70)

Debido al avance de la electrónica, pudieron 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 producirse 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 1970 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 sería reutilizado para reescribir por completo el código del sistema operativo Unix, convirtiéndolo en el primero implementado 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í

Page 19: Sistemas Operativos

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

Page 20: Sistemas Operativos

diferentes programas interactuasen con el hardware de una manera estandarizada. Estaba compuesto de dos subsistemas:

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

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

CUARTA GENERACIÓN (AÑOS 80 HASTA LA ACTUALIDAD)

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.

Page 21: Sistemas Operativos

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

Microsoft Windows

Familia de sistemas operativos propietarios desarrollados por la empresa de software Microsoft Corporation, fundada por Bill Gates y Paul Allen. Todos ellos tienen en común el estar basados en una interfaz gráfica de usuario basada en el paradigma de ventanas, de ahí su nombre en inglés. Las versiones de Windows que han aparecido hasta el momento se basan en dos líneas separadas de desarrollo que finalmente convergen en una sola con la llegada de Windows XP. La primera de ellas conformaba la apariencia de un sistema operativo, aunque realmente se ejecutaba sobre MS-DOS.

Actualmente existe Windows Vista.

GNU/Linux

En 1991 aparece la primer versión del núcleo de Linux. Creado por Linus Torvalds y un sin fin 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 dia dispone de Ventanas, gracias a un servidor grafico 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 muy visual y atractiva.