SISTEMAS OPERATIVOS .
Enviado por robertozubieta • 10 de Agosto de 2013 • Resumen • 3.935 Palabras (16 Páginas) • 232 Visitas
SISTEMAS OPERATIVOS
(Resumen)
UNIVERSIDAD MARIANO GALVES DE GUATEMALA (UMG)
INGENIERIA EN SISTEMAS DE INFORMACION
Elaborado el: 24 de Marzo 2003
UNIDAD 1 : Introducción
DIVISIONES DEL SOFTWARE
(1) Programas de Sistema: Controlan la operación de la PC.
(2) Programas de Aplicación: Hacen tareas que el usuario desea.
DEFINICIÓN DE UN SISTEMA OPERATIVO (S.O.)
Es el programa de sistema más fundamental y es el que controla todos los recursos de la computadora. Evita que los programadores tengan que ocuparse del manejo de dispositivos como disquetes.
MISIÓN DEL SISTEMA OPERATIVO
Asegurar un reparto ordenado y controlado de los procesadores, memorias y dispositivos de E/S entre los diferentes programas que compiten por ellos, como el manejo de impresiones para varios usuarios haciendo ordenado el envío al dispositivo.
COMPONENTES PRINCIPALES
1. Manejo de Procesos
2. Manejo de E/S
3. Manejo de Memoria
4. Sistema de archivos
DEFINICIÓN DE UNA MAQUINA VIRTUAL (MAQUINA EXTENDIDA)
Así se denomina la capa de software, a manera e interfaz, encima del hardware, llamada sistema operativo, que evita la complejidad de dispositivos y recursos a los programadores, ofreciendo facilidad en el uso de dispositivos.
EL ARRANQUE DE UN SISTEMA OPERATIVO
Cuando se enciende la computadora, el hardware lee el primer sector de la primera pista del disco de arranque y lo coloca en la memoria, luego ejecuta el código que encuentra ahí. Los detalles varían entre un disco duro y un disquete. En un disquete este sector contiene el programa de auto arranque (bootstrap), que es muy pequeño, pues debe caber en un sector. Este programa cara un programa más grande, boot, que luego carga al sistema operativo propiamente dicho.
En cambio, los discos duros requieren un paso intermedio. Un disco duro está dividido en particiones, y el primer sector de un disco duro contiene un pequeño programa y la tabla de particiones del disco. Colectivamente, éstos se conocen como registro maestro de arranque. La parte de programa se ejecuta para leer la tabla de particiones y seleccionar la partición activa, la cual tiene un auto arranque en su primer sector, mismo que se carga y ejecuta para encontrar e iniciar una copia de boot en la partición, exactamente como se ha cuando se arranca con un disquete.
En ambos casos, boot busca un archivo multi partes en el disquete o la partición y carga las partes individuales en las posiciones apropiadas de la memoria. Estas partes incluyen el Kernel, administrador de memoria, sistema de archivos e init, el primer proceso del usuario. Una vez que todos se han ejecutado e inicializado en orden, se bloquean, esperando algo que hacer. Una vez que todos están bloqueados, se ejecuta init para comenzar a trabajar.
EVOLUCION DE LAS COMPUTADORAS
Primera generación (1945-1955): tubos de vacío
Lo cierto es que el primer computador digital fue diseñado por el matemático inglés Charles Babbage hace cerca de siglo y medio. Era un computador totalmente mecánico, que Babbage nunca pudo construir, principalmente debido a que la tecnología de la época no era capaz de producir las piezas con la precisión requerida. Después de eso, poco se hizo hasta la segunda guerra: alrededor de 1940 se construyeron las primeras máquinas calculadoras usando tubos de vacío. Estas máquinas de varias toneladas de peso eran diseñadas, construidas, programadas y operadas por el mismo grupo de personas. No había ni lenguajes de programación, ni compiladores; mucho menos sistema operativo. Cada programa se escribía en lenguaje de máquina, usando tableros con enchufes e interruptores y tenía que manejar todo el sistema (lo que era factible gracias a que el programador era el mismo que diseñó y construyó la máquina). Con el tiempo se introdujeron las tarjetas perforadas, para reemplazar al tablero, pero el sistema era esencialmente el mismo.
Segunda generación (1955-1965): transistores y procesamiento por lotes
La introducción de los transistores permitió aumentar sustancialmente la confiabilidad de los computadores, lo que a su vez hizo factible construir máquinas comerciales. Por primera vez hubo una separación entre diseñadores, constructores, y programadores.
La aparición de los primeros compiladores (de FORTRAN) facilitó la programación, a costa de hacer mucho más compleja la operación de los computadores. Por ejemplo, para probar un programa en FORTRAN recién escrito, el programador debía esperar su turno, y:
Cargar compilador de FORTRAN, típicamente desde una cinta magnética.
Poner el alto de tarjetas perforadas correspondientes al programa FORTRAN y correr el compilador.
El compilador genera código en assembler, así que hay que cargar ahora el ensamblador para traducirlo a lenguaje de máquina. Este paso requiere poner otra cinta con el ensamblador. Ejecutar el ensamblador, para generar el programa ejecutable.
Al Ejecutar el programa.
Si hay errores en cualquiera de estos pasos, el programador debía corregir el programa y comenzar todo de nuevo. Obviamente, mientras el programdor ponía cintas y tarjetas, y mientras se devanaba los sesos para descubrir por qué el programa no funciona, la CPU de millones de dólares de costo se mantenía completamente ociosa. Más que rápido, se idearon mecanismos para mantener a la CPU siempre ocupada. El primero fue separar el rol de programador del rol de operador. Un operador profesional demoraba menos en montar y desmontar cintas, y podía acumular lotes de trabajos con requerimientos similares: por ejemplo, si se acumula la compilación de varios programas FORTRAN, entonces el compilador de FORTRAN se carga una sola vez para todos los trabajos.
Aún así, en la transisión de un trabajo a otro la CPU se mantenía desocupada. Aparecieron entonces los monitores residentes, que fueron los precursores de los sistemas operativos. Un monitor residente es un pequeño programa que está siempre en la memoria del computador, desde que éste se enciende. Cuando un programa termina, se devuelve el control al monitor residente, quien inmediatamente selecciona otro programa para ejecutar. Ahora los programadores, en vez de decirle al operador qué programa cargar, debían informárselo al monitor (mediante tarjetas de control especiales):
$JOB
$FTN
...