lunes, 26 de noviembre de 2012

CUESTIONARIO

PREGUNTAS FINALES 

http://prezi.com/c8ewco-i3z4s/preguntas/

TAREA 2 DE LA UNIDAD 3

CUESTIONARIO

1.- un sistema de computadora tiene suficiente espacio para contener cuatro programas en su memoria principal. La mitad del tiempo, estos programas están ociosos esperando E/S. ¿Qué fracción del tiempo de CPU se desperdicia?
R=  le tomaría 16 bytes por cada 2 segundos

2.- Considere un sistema de intercambio en el que la memoria tiene agujeros con los siguientes tamaños en orden según su posición de memoria: 10K, 4K, 20K, 18K, 7K, 9K, 12K y 15K. ¿Cuál agujero se toma cuando hay solicitudes de segmento sucesivas de:
a).- 12K= 7K, 9K y 15K

b).- 10K= 4K y 12K
c).- 9K= 18K, 20K

si se usa primer ajuste? Repil;). Usando mejor ajuste, peor ajuste y siguiente ajuste.
3.-¿Qué diferencia hay entre una dirección física y una virtual?

R=Dirección física: la que llega al chip de memoria
Dirección lógica o virtual: la generada por la CPU

4.- empleando la tabla de páginas de la Fig. 4-8, de la dirección física que corresponde a cada una de las siguientes direcciones virtuales:
a).-20= 8192 a 12287.
b).-4100= 24576 a 28671.
c).- 8300=20480 a 24575
5.-el procesador Intel 8086 no apoya la memoria virtual. No obstante, algunas compañías vendieron previamente sistemas que contenían un CPU 8086 no modificada y realizaban paginación. Utilice lo que sabe para sugerir como lo hicieron. (Sugerencia: piense en la ubicación lógica de la MMU.)
R=el número de marco de página, si lo hay, y este número se anexa al extremo de orden alto de la distancia, sustituyendo al número de página virtual y formando una dirección física que se puede enviar a la memoria.

 6.- si una introducción tarda 1 microsegundo y una falla de pagina tarda n microsegundos adicionales, deduzca una formula para el tiempo de introducción efectivo si ocurren fallas de pagina cada k instrucciones.
R= K=ms 

7.- una  maquina tiene un espacio de direcciones de 32 bits y paginas de 8K. la tabla de paginas esta totalmente en hardware, con una palabra de 32 bits por cada entrada. Cuando un proceso inicia, la tabla de páginas se copia en el hardware desde la memoria, a razón de una palabra cada 100 ns. Si cada proceso se ejecuta durante 100 ms(incluido el tiempo que toma cargar la tabla de paginas), ¿Qué fracción del tiempo  de CPU se dedica a cargar las tablas de pagina?
R= por cada 32 bits carga en tiempo  500ms

8.-una computadora con direcciones de 32 bits usa una tabla de páginas de dos niveles, las direcciones virtuales se dividen en un campo de tabla de páginas de nivel superior de nueve bits y un campo de tabla de páginas de segundo nivel de once bits, además de una distancia. ¿Qué tamaño tienen las paginas y cuantas de ellas hay en el espacio de direcciones?
R=las tablas de segundo nivel correspondientes a O a 4M, 4M a 8M y los 4M superiores.

9.- a continuación se lista un programa corto en lenguaje ensamblador para una computadora con página de 512 bytes. El programa reside en la dirección 1020, y su apuntador  a la pila esta en 8192 (la pila crece hacia 0). De la cadena de referencia a pagina generada por este programa. Cada instrucción ocupa cuatro bytes (una palabra), y las referencias tanto a instrucciones como a datos cuentan en 1.- cadena de referencia.

Cargar la palabra 6144 en el registro O
Meter el registro O en la pila
Invocar un procedimiento en 5120, agregando la dirección de retomo a la pila Restar la constante inmediata 16 del apuntador a pila
Comparar el parámetro real con la constante  inmediata
Saltar si es igual a 5152

10.- Suponga que una dirección virtual de 32 bits se divide en cuatro campos, a, b, c y d. los primeros tres  se utilizan para un sistema de tablas de páginas de tres niveles. El cuarto campo, d, es la distancia. ¿El número de páginas depende de los tamaños de los cuatro campos? Si no es así, ¿Cuáles importan y cuales no?
R=importan las primeras 2 ya que ellas generaran las instrucciones a seguir; c y d generaran las instrucciones dadas por a y b.

11.-una computadora cuyos procesos tiene 1024 páginas en sus espacios de direcciones mantiene sus tablas de páginas en la memoria. El gasto extra requerido para leer una palabra de la tabla de páginas es de 500 ns. Con objeto de reducir este gasto extra, la computadora tiene un TLB, que contiene 32 pares (pagina virtual marco de pagina físico)  y puede realizar una consulta en 100 ns. ¿Qué tasa de aciertos se necesita para reducir el gasto medio a 200 ns?
R= 1024 bytes, con páginas de 4K, necesitaremos más de 1015 bytes para la tabla de páginas.
12.- el TLB del VAX no contiene un bit R. ¿Por qué? 
R=Si el TLB puede contener todas las páginas de uso pesado, la traducción puede efectuarse con tanta rapidez como con las tablas de páginas normales. Sin embargo, si ocurre una falla de TLB, habrá que examinar la tabla de páginas invertida.

13.-una maquina tiene direcciones virtuales  de 48 bits y direcciones físicas de 32 bits. Las páginas son de 8K ¿Cuántas entradas debe tener la tabla de páginas?
R=sólo requiere 8192 entradas.

14.-una computadora tiene cuatro marcos de pagina. A continuación se muestran el tiempo de carga, el tiempo de ultimo acceso y los bits R y M para cada paginas(los tiempo están en tics del reloj):

Pagina          cargada      ultima ref .      R            M

0                    126              279                  0             0

1                    230              260                  1            0

2                    120              272                  1             1

3                    160              280                  1             1

a)   ¿Cuál pagina se remplazará si se usa NRU?
R= 2

b)   ¿Cuál pagina se remplazará si se usa FIFO?
R=0

c)   ¿Cuál pagina se remplazará si se usa LRU?
R=2

d)   ¿Cuál pagina se remplazará si se usa 2da oportunidad?
R=3


15.- si se emplea remplazó de paginas FIFO con 4 marcos de pagina y ocho paginas, ¿Cuántas fallas de pagina ocurrirán con la con la cadena de referencia 0172327103? Si los cuatro marcos inicialmente están vacíos?
R= le tocarían 47 marcos a cada proceso. Los cinco restantes constituirían una reserva que se usaría en caso de ocurrir fallas de página.

16.-una computadora pequeña tiene cuatro marcos de página. En el primer tic del reloj,  los bits R son 1111010, 1100 y 0001. Si se emplea el algoritmo de maduración con un contador de ocho bits, indique los valores de los cuatro contadores después del último tic.
R=Podrían requerirse 64 x 15 ms para cargar 64 páginas de 512 bytes, pero sólo 4 x 25 ms para cargar cuatro páginas de 8K.


17.- ¿Qué tiempo toma cargar un programa de 64K de un disco cuyo  tiempo de búsqueda medio es de 30 ms, cuyo tiempo de rotación es de 20 ms y cuyas pistas contienen 32K
a) si se usan paginas de 2k?
R= 16K por 60 ms
b)si se usan paginas de 4k?
R= 8K por 15ms
Las páginas están distribuidas aleatoriamente en el disco.

18.- una de las primeras maquinas de tiempo compartido, la PDP-1, tenia una memoria de 4K palabras de 18 bits, y mantenía en memoria solo un proceso a la vez. Cuando el planificador decidía ejecutar otro proceso, el proceso que estaba en la memoria se escribía en un tambor de paginación, con 4K palabras de 18 bits alrededor de la circunferencia del tambor. El tambor podía comenzar a escribir (o leer) en cualquier palabra, no forzosamente en la palabra 0. ¿Por qué supone que se escogió este tambor?
R= por 
el tiempo de acceso vendrá impuesto por el tiempo de búsqueda de la pista y el tiempo de espera del sector.

19.-una computadora proporciona a cada proceso 65 536 bytes de espacio de direcciones dividido en páginas de 4096 bytes. Cierto programa tiene un tamaño de texto de 32 768, un tamaño de datos de 16 386 bytes y un tamaño de pila de 15 870 bytes. ¿cabra este programa en el espacio de direcciones? Si el tamaño de pagina fuera de 512 bytes, ¿cabria el programa? Recuerde que una página no puede contener partes de dos segmentos distintos.
R=Cada tabla de páginas tiene entradas para 1024 marcos de página de 4K, así que una sola tabla de

Páginas maneja 4 megabytes de memoria. Un segmento de menos de 4M tendrá un directorio de páginas con una sola entrada, un apuntador a su única tabla de páginas.

TAREA 1 DE LA UNIDAD 3

TEMAS 3.3 JERARQUÍA DE ALMACENAMIENTO Y    3.4 ESTRATEGIAS DE ADMINISTRACIÓN DEL ALMACENAMIENTO 

http://prezi.com/scax5cdgn5cz/33-jerarquia-de-almacenamiento/
TAREA 2 DE LA UNIDAD N° 2
1.- Suponga que va a diseñar una arquitectura de computadora avanzada que realizará la conmutación de procesos por hardware, en lugar de tener interrupciones. ¿Qué información necesitaría la CPU? Describa cómo podría funcionar la conmutación de procesos por hardware.

R= En un sistema de multiprogramación, la CPU también conmuta de un programa a otro, ejecutando cada uno durante decenas o centenas de milisegundos. Si bien, estrictamente hablando, en un instante dado la CPU está ejecutando sólo un programa, en el curso de un segundo puede trabajar con varios programas, dando a los usuarios la ilusión de paralelismo. A veces se usa el término seudoparalelismo para referirse a esta rápida conmutación de la CPU entre programas, para distinguirla del verdadero paralelismo de hardware de los sistemas multiprocesador (que tienen dos o más CPU que comparten la misma memoria física).

2.-  En todas las computadoras actuales, al menos una parte de los manejadores de interrupciones se escribe en lenguaje ensamblador. ¿Por qué?

R= Aunque cada proceso es una entidad independiente, con su propio contador de programa y estado interno, los procesos a menudo necesitan interactuar con otros procesos. Un proceso podría generar ciertas salidas  que otro proceso utiliza como entradas.

3.-  En un sistema con hilos, ¿hay una pila por hilo o una pila por proceso? Explique.
R= El hardware de interrupciones mete  el contador de programa, la palabra de estado del programa y quizá uno o más registros en la pila

4.- ¿Qué es una condición de competencia?
R= El almacenamiento compartido puede  estar en la memoria principal o puede ser un archivo compartido; la ubicación de la memoria compartida  no altera la naturaleza de la comunicación ni los  problemas que surgen.

5.- Considere una computadora que no cuenta con la instrucción TEST AND SET LOCK pero sí tiene una instrucción que intercambia el contenido de un registro y una palabra de memoria en una sola acción indivisible. ¿Se puede usar esta instrucción para escribir una rutina enter_region como la de la Fig. 2-10?

R= Ya tenemos una solución al problema de la región crítica que es directa. Antes de entrar en su región crítica, un proceso invoca enter_region, la cual realiza espera activa hasta que el candado está libre; luego  adquiere el candado y regresa. Después de la región crítica el proceso invoca leave_region, que almacena un O en lock. Al igual que todas las soluciones basadas en regiones críticas, el proceso debe invocar  enter_region y leave_region en los momentos correctos para que el método funcione. Si un proceso hace trampa, la exclusión mutua fallará.

6.- Bosqueje la forma en que un sistema operativo que puede inhabilitar interrupciones podría
Implementar semáforos.
R=La operación UP incrementa el valor  del semáforo direccionado. Si uno o más procesos están  durmiendo en espera de ese semáforo, imposibilitados de completar una operación DOWN previa, el  sistema escoge uno de ellos (p. ej., al azar) y le permite completar su DOWN. Así, después de un up con  un semáforo que tiene procesos durmiendo esperando,  el semáforo seguirá siendo O, pero habrá un  proceso menos que se halle en fase de durmiendo esperando. La operación de incrementar el semáforo y  despertar un proceso también es indivisible

7.-  En la sección 2.2.4 se describió una situación con un proceso de alta prioridad, H, y uno de baja prioridad, L, que condujo a la repetición infinita de H. ¿Ocurre el mismo problema si se usa planificación round robin en vez de planificación por prioridad? Explique.
R= La solución está en la introducción de variables de condición, junto con dos operaciones que se  realizan con ellas, WA y SIGNAL. Cuando un procedimiento de monitor descubre que no puede continuar  (p. ej., si encuentra lleno el buffer), ejecuta WAlT (esperar) con alguna variable de condición, digamos  full! (lleno). Esta acción hace que el proceso invocador se bloquee, y también permite la entrada de otro  proceso al que antes se le había impedido entrar en el monitor.

8.- Suponga que tenemos un sistema de transferencia de mensajes que usa buzones. Al enviar mensajes a un buzón lleno o tratar de recibirlos de un buzón vacío, un proceso no se bloquea, sino que recibe de vuelta un código de error. El proceso responde al código de error intentándolo de nuevo, una y otra vez, hasta que tiene éxito. ¿Da este esquema lugar a condiciones de competencia?
R= Un método distinto consiste en inventar una nueva estructura de datos, llamada buzón.    
Un buzón es un lugar donde se almacena temporalmente cierta cantidad de mensajes, que         normalmente se especifican cuando se crea el buzón. Si se usan buzones, los                          parámetros de    dirección   de   las   llamadas   SEND   y RECEIVE son buzones, no procesos. Cuando un SEC. 2.3 proceso trata de transmitir a un buzón que está lleno, queda suspendido hasta que se retira un mensaje de  ese buzón, dejando espacio para uno nuevo.

9.- En la solución al problema de la cena de filósofos (Fig. 2-20), ¿por qué se asigna HUNGRY (hambriento) a la variable de estado en el procedimiento take_forks (tomar tenedores)?
R= Podríamos modificar el programa de modo que, después de tomar el tenedor izquierdo, el programa  verifique si el tenedor derecho está disponible. Si  no es así, el filósofo soltará su tenedor izquierdo,  esperará cierto tiempo, y repetirá el proceso. Esta propuesta también fracasa, aunque por una razón  distinta. Con un poco de mala suerte, todos los filósofos podrían iniciar el algoritmo simultáneamente,  tomar su tenedor izquierdo, ver que su tenedor derecho no está disponible, dejar su tenedor izquierdo, esperar, tomar su tenedor izquierdo otra vez de manera simultánea, y así eternamente. Una situación así,  en la que todos los programas continúan ejecutándose de manera indefinida pero no logran avanzar se  denomina inanición (adopta este calificativo aun cuando el problema no ocurra en un restaurante italiano  o chino).

10.- Considere el procedimiento put_forks (poner tenedores) de la Fig. 2-20. Suponga que se asigna el valor THINKING (pensando) a la variable de estado state después de las dos llamadas a test (probar), en lugar de antes. ¿Cómo afectaría este cambio la solución para el caso de tres filósofos? ¿Y para 100 filósofos?
R=  Como acotación, vale la pena señalar que si bien los problemas de lectores y escritores y del  peluquero dormido no implican transferencia de datos, pertenecen al área de IPC porque implican  sincronización entre varios procesos.

11.- El problema de lectores y escritores se puede formular de varias formas en lo tocante a cuál categoría de procesos puede iniciarse y cuándo. Describa minuciosamente tres variaciones diferentes del problema, cada una de las cuales favorece (o no favorece) alguna categoría de procesos. Para cada variación, explique qué sucede cuando un lector o un escritor queda listo para acceder a la base de datos, y qué sucede cuando un proceso termina de usar la base de datos.
R= el primer lector que obtiene acceso a la base de datos ejecuta DOWN con el  semáforo db. Los lectores subsecuentes se limitan a incrementar un contador, rc. Conforme los lectores  salen, decrementan el contador, y el último en salir ejecuta UP con el semáforo para permitir que un  escritor bloqueado, silo había, entre.

12.- Los planificadores round robin normalmente mantienen una lista de todos los procesos ejecutables, y cada proceso aparece una y sólo una vez en la lista. ¿Qué sucedería si un proceso ocurriera dos veces en la lista? ¿Puede usted pensar en alguna razón para permitir esto?
R=  Antes de examinar algoritmos de planificación específicos, debemos pensar en qué está tratando de  lograr el planificador. Después de todo, éste se ocupa de decidir una política, no de proveer un  mecanismo. Se nos ocurren varios criterios para determinar en  qué consiste un buen algoritmo de  planificación.

13.-  Cinco trabajos están esperando para ejecutarse. Sus tiempos de ejecución esperados son 9, 6, 3, 5 y X. ¿En qué orden deben ejecutarse sise desea minimizar el tiempo medio de respuesta? (Su respuesta dependerá de X.)

14.- Cinco trabajos por lotes, A a E, llegan a un centro de cómputo casi al mismo tiempo, y tienen tiempos de ejecución estimados de 10, 6, 2, 4 y 8 minutos. Sus prioridades (determinadas externamente) son 3, 5, 2, 1 y 4, respectivamente, siendo 5 la prioridad más alta. Para cada uno de los siguientes algoritmos de planificación, determine el tiempo de retorno medio de los procesos. Ignore el gasto extra por conmutación de procesos.
 (a) Round robin.
(b) Planificación por prioridad.
(c) Primero que llega, primero que se atiende (ejecutados en el orden 10, 6, 2, 4, 8).
(d) El primer trabajo más corto.

Para (a), suponga que el sistema está multiprogramado, y que cada trabajo recibe una parte equitativa del tiempo de CPU. Para (b) a (d), suponga que sólo se ejecuta un trabajo a la vez, hasta terminar. Todos los trabajos están limitados únicamente por CPU.

15.- Explique por qué se usa comúnmente la planificación de dos niveles.
R= porque es la forma más práctica de manejar los procesos intercambiados a disco, un planificador de dos niveles debe transferir procesos entre el disco y la memoria y también escoger los procesos a ejecutar de entre los que están en la memoria.

viernes, 31 de agosto de 2012

Tarea3. Elabore una presentación (Prezi) con la información de los temas 1.4, 1.5, 1.6


http://prezi.com/73k1xlqizr-k/unidad-i/
ACTIVIDAD 2.-   DOCUMENTE LOS TEMAS 1.1, 1.2, 1.3.
PARA EL TEMA 1.1 INCLUIR LOS TIPOS DE S.O. SU CLASIFICACIÓN, NOMBRE (COMPAÑÍA, AÑO DE LANZAMIENTO, LOGO, CARACTERÍSTICAS)

1.1 Conceptos de sistemas operativos 

Un sistema operativo (SO) es un programa o conjunto de programas que en un sistema informático gestiona los recursos de hardware y provee servicios a los programas de aplicación, y corre en modo privilegiado respecto de los restantes. Nótese que es un error común muy extendido denominar al conjunto completo de herramientas sistema operativo, es decir, la inclusión en el mismo término de programas como el explorador de ficheros, el navegador web y todo tipo de herramientas que permiten la interacción con el sistema operativo, también llamado núcleo o kernel. Esta identidad entre kernel y sistema operativo es solo cierta si el núcleo es monolítico. Otro ejemplo para comprender esta diferencia se encuentra en la plataforma Amiga, donde el entorno gráfico de usuario se distribuía por separado, de modo que, también podía reemplazarse por otro, como era el caso de directory Opus o incluso manejarlo arrancando con una línea de comandos y el sistema gráfico. De este modo, al arrancar un Amiga, comenzaba a funcionar con el propio sistema operativo que llevaba incluido en una ROM, por lo que era cuestión del usuario decidir si necesitaba un entorno gráfico para manejar el sistema operativo o simplemente otra aplicación. Uno de los más prominentes ejemplos de esta diferencia, es el núcleo Linux, usado en las llamadas distribuciones Linux, ya que al estar también basadas en Unix, proporcionan un sistema de funcionamiento similar. Este error de precisión, se debe a la modernización de la informática llevada a cabo a finales de los 80, cuando la filosofía de estructura básica de funcionamiento de los grandes computadores2 se rediseñó a fin de llevarla a los hogares y facilitar su uso, cambiando el concepto de computador multiusuario, (muchos usuarios al mismo tiempo) por un sistema monousuario (únicamente un usuario al mismo tiempo) más sencillo de gestionar.3 (Véase AmigaOS, beOS o MacOS como los pioneros4 de dicha modernización, cuando los Amiga fueron bautizados con el sobrenombre de Video Toasters5 por su capacidad para la Edición de vídeo en entorno multitarea round robin, con gestión de miles de colores e interfaces intuitivos para diseño en 3D.Uno de los propósitos del sistema operativo que gestiona el núcleo intermediario consiste en gestionar los recursos de localización y protección de acceso del hardware, hecho que alivia a los programadores de aplicaciones de tener que tratar con estos detalles. 



 
1.2 Evolución de los sistemas operativos 

Sistemas Operativos 
(Años 40) 

La aparición de la primera generación de las computadoras que se accedía directamente a la consola de la computadora desde el cual se actuaba sobre una serie de micro interruptores que permitían introducir directamente el programa de la memoria de la computadora. 

Al existir pocas computadoras todos podrían considerarse prototipos y cada constructor lo hacia 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. 

Sistemas Operativos 
(Años 50) 

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

Monitor Resiente: Su funcionamiento era bastante simple, se limitaba a cargar los programas a memoria, leyéndolos de una cinta o de tarjetas perforadas. 

Procesamiento por Lotes: Una misma cinta o conjunto de tarjetas, de forma que se ejecutaran uno a continuación de otro sin perder tiempo en la transición. 

Almacenamiento temporal: Su objetivo era disminuir el tiempo de carga de los programas, haciendo simultanea la carga del programa o la salida de datos con la ejecución de la siguiente tarea. Para ello se utilizaban dos técnicas: Buffering y Spooling. 

Sistemas Operativos 
(Años 60) 

Se produjeron cambios notorios en varios cambios de la informática. 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. 

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. 

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. 

Multiprocesador: Permite trabajar con máquinas que poseen más de un microprocesador. En un multiprocesador

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. 

Sistemas Operativos
(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. 

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. 

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

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. 

Sistemas Operativos
(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. 

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

Sistemas Operativos 
(Años 90) 

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

Definición de la evolución de los sistemas operativos

La evolución de los sistemas operativos empezó desde los
años 40 llevando una evolución acorde como se fue avanzando en tecnología el hombre se esmero en seguir mejorando los sistemas operativo y hasta la fecha siguen haciendo mejores sistemas operativos para diferentes tipos de usuarios.




1.3 Sistemas Operativos por su Estructura

Según [Alcal92], se deben observar dos tipos de requisitos cuando se construye un sistema operativo, los cuales son: 

Requisitos de usuario: Sistema fácil de usar y de aprender, seguro, rápido y adecuado al uso al que se le quiere destinar. 

Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma de operación, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad. 

A continuación se describen las distintas estructuras que presentan los actuales sistemas operativos para satisfacer las necesidades que de ellos se quieren obtener. 

Estructura monolítica. 

Es la estructura de los primeros sistemas operativos constituídos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra (Ver Fig. 2). Las características fundamentales de este tipo de estructura son: 

Construcción del programa final a base de módulos compilados separadamente que se unen a través del ligador. 

Buena definición de parámetros de enlace entre las distintas rutinas existentes, que puede provocar mucho acoplamiento. 

Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos de la computadora, como memoria, disco, etc. 

Generalmente están hechos a medida, por lo que son eficientes y rápidos en su ejecución y gestión, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o tipos de aplicaciones. 

Estructura jerárquica. 

A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los sistemas, se hizo necesaria una mayor organización del software, del sistema operativo, donde una parte del sistema contenía subpartes y esto organizado en forma de niveles. 

Se dividió el sistema operativo en pequeñas partes, de tal forma que cada una de ellas estuviera perfectamente definida y con un claro interface con el resto de elementos. 

Se constituyó una estructura jerárquica o de niveles en los sistemas operativos, el primero de los cuales fue denominado THE (Technische Hogeschool, Eindhoven), de Dijkstra, que se utilizó con fines didácticos (Ver Fig. 3). Se puede pensar también en estos sistemas como si fueran `multicapa’. Multics y Unix caen en esa categoría. [Feld93]. 

En la estructura anterior se basan prácticamente la mayoría de los sistemas operativos actuales. Otra forma de ver este tipo de sistema es la denominada de anillos concéntricos o “rings” (Ver Fig. 4). 

En el sistema de anillos, cada uno tiene una apertura, conocida como puerta o trampa (trap), por donde pueden entrar las llamadas de las capas inferiores. De esta forma, las zonas más internas del sistema operativo o núcleo del sistema estarán más protegidas de accesos indeseados desde las capas más externas. Las capas más internas serán, por tanto, más privilegiadas que las externas. 

Máquina Virtual. 

Se trata de un tipo de sistemas operativos que presentan una interface a cada proceso, mostrando una máquina que parece idéntica a la máquina real subyacente. Estos sistemas operativos separan dos conceptos que suelen estar unidos en el resto de sistemas: la multiprogramación y la máquina extendida. El objetivo de los sistemas operativos de máquina virtual es el de integrar distintos sistemas operativos dando la sensación de ser varias máquinas diferentes. 

El núcleo de estos sistemas operativos se denomina monitor virtual y tiene como misión llevar a cabo la multiprogramación, presentando a los niveles superiores tantas máquinas virtuales como se soliciten. Estas máquinas virtuales no son máquinas extendidas, sino una réplica de la máquina real, de manera que en cada una de ellas se pueda ejecutar un sistema operativo diferente, que será el que ofrezca la máquina extendida al usuario (Ver Fig. 5). 

Cliente-servidor ( Microkernel) 

El tipo más reciente de sistemas operativos es el denominado Cliente-servidor, que puede ser ejecutado en la mayoría de las computadoras, ya sean grandes o pequeñas. 

Este sistema sirve para toda clase de aplicaciones por tanto, es de propósito general y cumple con las mismas actividades que los sistemas operativos convencionales. 

El núcleo tiene como misión establecer la comunicación entre los clientes y los servidores. Los procesos pueden ser tanto servidores como clientes. Por ejemplo, un programa de aplicación normal es un cliente que llama al servidor correspondiente para acceder a un archivo o realizar una operación de entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente puede actuar como servidor para otro.” [Alcal92]. Este paradigma ofrece gran flexibilidad en cuanto a los servicios posibles en el sistema final, ya que el núcleo provee solamente funciones muy básicas de memoria, entrada/salida, archivos y procesos, dejando a los servidores proveer la mayoría que el usuario final o programador puede usar. Estos servidores deben tener mecanismos de seguridad y protección que, a su vez, serán filtrados por el núcleo que controla el hardware. Actualmente se está trabajando en una versión de UNIX que contempla en su diseño este paradigma. 

Clasificación de los Sistemas Operativos 

Los sistemas operativos pueden ser clasificados de la siguiente forma: 

·         Multiusuario: Permite que dos o más usuarios utilicen sus programas al mismo tiempo. Algunos sistemas operativos permiten a centenares o millares de usuarios al mismo tiempo. 
·         Multiprocesador: soporta el abrir un mismo programa en más de una CPU. 
·         Multitarea: Permite que varios programas se ejecuten al mismo tiempo. 
·         Multitramo: Permite que diversas partes de un solo programa funcionen al mismo tiempo. 
·         Tiempo Real: Responde a las entradas inmediatamente. Los sistemas operativos como DOS y UNIX, no funcionan en tiempo real.






 
 
Tarea2. Elabore un mapa mental con la información de los temas 1.1, 1.2, 1.3. Publique en su página de Internet su producto obtenido en formato de imagen