2. MULTIPROGRAMACIÓN Y TIEMPO
COMPARTIDO
El sistema operativo toma uno de los programas de cierto
grupo y lo ejecuta. Eventualmente, el programa
seguramente tendrá que esperar por algún motivo, como
por ejemplo que tenga que leer información de un disco,
que se teclee un comando en un teclado o que tenga que
imprimir algo. En un sistema sin multiprogramación
(monoprogramación), la computadora permanecería
inactiva hasta que terminara la operación por la que está
esperando. por lo contrario en un sistema con
multiprogramación, el SO sencillamente cambiaría a otro
programa y lo ejecutaría. Cuando este último deba esperar,
la computadora pasaría a ejecutar otro programa y así
sucesivamente. Finalmente, el primer programa habrá
acabado su espera y podrá ser ejecutado de nuevo. Los
sistemas operativos multiprogramados son sofisticados.
Tener varios programas dispuestos para su ejecución,
supone mantenerlos simultáneamente en memoria. Tener
varios programas en memoria al mismo tiempo requiere
una gestión de memoria. Además, Si hay varios programas
dispuestos para ejecución al mismo tiempo, hay que tomar
alguna decisión para elegir entre ellos. Este proceso, se
denomina planificación de la CPU, consume tiempo de la
computadora.
3. MEMORIA Y JERARQUIA
Se conoce como jerarquía de memoria a la organización
piramidal de la memoria en niveles que tienen los
ordenadores su objetivo es conseguir el rendimiento de
una memoria de gran velocidad al coste de una
memoria de baja velocidad, basándose en el principio
de cercanía de Referencias.
Los puntos básicos relacionados con la memoria pueden
resumirse en:
1. Cantidad
2. Velocidad
3. Costo
Como puede esperarse los tres factores compiten entre
sí, por lo que hay que encontrar un equilibrio. Las
siguientes afirmaciones son válidas:
A menor tiempo de acceso mayor coste.
A mayor capacidad menor coste por bit.
A mayor capacidad menor velocidad.
4. Objetivos del S.O.
1. Comodidad
– Hace que el ordenador sea más cómodo de usar.
2. Eficiencia
– Permite un uso eficiente de los recursos del
sistema.
3. Capacidad de evolucionar
– Permitir desarrollo efectivo, testeo e introducción
de nuevas funcionalidades sin interferir con el
servicio.
5. Servicios del S.O.
1. Desarrollo de programas
– Editores y depuradores (debuggers)
2. Ejecución de programas
3. Acceso a dispositivos de entrada/salida
4. Controlar el acceso a los ficheros
5. Acceso al sistema
6. Detección y respuesta a errores
– Errores hardware internos y externos
7. error de memoria
8. fallo en un dispositivo
– errores software
9. desbordamiento aritmético (overflow)
10. acceso prohibido a posiciones de memoria
– el S.O. no puede conceder la petición de una
aplicación
Contabilidad
– realizar estadísticas
– monitorizar el rendimiento
– usado para anticipar futuras mejoras
– usado para cobrarle a los usuarios