3. Introducción
Sin el software, una computadora no es más que una masa metálica sin
utilidad. Con el software, una computadora puede almacenar, procesar y
recuperar información, encontrar errores de ortografía en manuscritos, tener
aventuras e intervenir en muchas otras valiosas actividades para ganar el
sustento. El software para computadoras puede clasificarse en general en dos
clases: los programas de sistema, que controlan la operación de la
computadora en si y los programas de aplicación, los cuales resuelven
problemas para sus usuarios. El programa fundamental de todos los programas
de sistema es el sistema operativo (SO), que controla todos los recursos de la
computadora y proporciona la base sobre la cual pueden escribirse los
programas de aplicación.
4. El núcleo del sistema operativo, también llamado kernel es aquella
parte de un sistema operativo que interactúa de forma directa con el
hardware de una máquina.
Entre sus funciones principales del kernel se encuentran
La gestión de memoria.
La administración del sistema de archivos
La administración de servicios de entrada/salida.
La asignación de recursos entre los usuarios.
5. La manipulación del hardware se realiza por medio de
controladores de dispositivo, que conocen la forma de
comunicarse directamente con el hardware de la máquina
y el software por su parte puede comunicarse con el kernel
por medio de llamadas al sistema, las cuales le indican al
kernel que realice tareas como abrir y escribir un archivo,
ejecutar un programa, finalizar un proceso u obtener la
fecha y hora del sistema.
6. Una interrupción, es una señal recibida por el procesador de un ordenador,
indicando que debe "interrumpir" el curso de ejecución actual y pasar a ejecutar código
específico para tratar esta situación.
Una interrupción es una suspensión temporal de la ejecución de un proceso, para
pasar a ejecutar una subrutina de servicio de interrupción, la cual, por lo general, no
forma parte del programa, sino que pertenece al sistema operativo o al BIOS. Una vez
finalizada dicha subrutina, se reanuda la ejecución del programa.
Surgen de la necesidad que tienen los dispositivos periféricos de enviar información
al procesador principal de un sistema informático.
7. La primera técnica que se empleó para esto fue el polling, que consistía en que el
propio procesador se encargara de sondear los dispositivos periféricos cada cierto tiempo
para averiguar si tenía pendiente alguna comunicación para él. Este método presentaba el
inconveniente de ser muy ineficiente, ya que el procesador consumía constantemente
tiempo y recursos en realizar estas instrucciones de sondeo.
El mecanismo de interrupciones fue la solución que permitió al procesador
desentenderse de esta problemática, y delegar en el dispositivo periférico la
responsabilidad de comunicarse con él cuando lo necesitara.
El procesador, en este caso, no sondea a ningún dispositivo, sino que queda a la
espera de que estos le avisen (le "interrumpan") cuando tengan algo que comunicarle (ya
sea un evento, una transferencia de información, una condición de error, etc.).
8. Atendiendo a la fuente que las produce, las interrupciones pueden clasificarse de la
siguiente forma:
Interrupciones de hardware. Estas son asíncronas a la ejecución del procesador, es decir,
se pueden producir en cualquier momento independientemente de lo que esté haciendo
el CPU en ese momento. Las causas que las producen son externas al procesador y a
menudo suelen estar ligadas con los distintos dispositivos de E/S.
Excepciones. Son aquellas que se producen de forma síncrona a la ejecución del
procesador y por tanto podrían predecirse si se analiza con detenimiento la traza del
programa que en ese momento estaba siendo ejecutado en la CPU. Normalmente son
causadas al realizarse operaciones no permitidas tales como la división entre 0, el
desbordamiento, el acceso a una posición de memoria no permitida, etc.
Interrupciones por software. Las interrupciones por software son aquellas generadas por
un programa en ejecución. Para generarlas, existen distintas instrucciones en el código
máquina que permiten al programador producir una interrupción, las cuales suelen tener
nemotécnicos tales como INT (por ejemplo, en DOS se realiza la instrucción INT 0x21 y en
Unix se utiliza INT 0x80 para hacer llamadas de sistema).
9.
10. Protección de hardware:
Operación en modo Dual
Protección de E/S
Protección de Memoria
Protección de CPU.
11. El compartir los recursos del sistema requiere que el SO se asegure que un
programa incorrecto, no pueda propiciar que otros programas se ejecuten
de forma correcta.
Proporciona soporte al hardware para diferenciar entre al menos dos
modos de operación
Modo de usuario –-> Ejecución de parte del usuario.
Modo monitor –> Ejecución realizada por parte del sistema operativo.
Se adiciona al hardware un bit de modo para indicar el modo actual:
Monitor (0) o modo usuario (1).
Cuando sucede una interrupción o fallo, el hardware se cambia a modo
monitor.
12. Todas las instrucciones de E/S son privilegiadas.
Debe asegurarse que el programa del usuario no pueda tener el control
del computador en el modo supervisor.
13. Debe proveer protección de memoria al menos para el vector de interrupciones y el
vector de las rutinas de servicios de interrupción.
Con el fin de tener la protección de memoria, se agregan dos registros que determinan
el rango de las direcciones validas que un programa puede acceder:
Registro Base –> Contiene la dirección legal física más pequeña.
Registro Limite –> Contiene el tamaño.
14. Temporizador – Interrumpe al computador después de un periodo especifico para
garantizar que el SO mantenga el control.
El temporizador se decrementa por cada pulsación del reloj.
Cuando el temporizador alcanza el valor de 0, ocurre una interrupción.
El temporizador se utiliza comúnmente para implementar tiempo compartido y
calcular tiempo actual.
La carga del temporizador es una instrucción privilegiada.
15. Luego de haber investigado y analizado se puede ver que se han desarrollado varios tipos de
sistemas operativos con diferentes interfaces y categorías. Pero hemos podido observar que todos los
sistemas operativos han sufrido cambios por parte de los programadores, y siguen evolucionando.
El diálogo entre el usuario y la máquina suele realizarse a través de una interfaz de línea de
comandos o de una interfaz gráfica de usuario (GUI, siglas en inglés). Las interfaces de línea de
comandos exigen que se introduzcan instrucciones breves mediante un teclado. Las GUI emplean
ventanas para organizar archivos y aplicaciones con iconos y menús que presentan listas de
instrucciones. El usuario manipula directamente estos objetos visuales en el monitor señalándolos,
seleccionándolos y arrastrándolos o moviéndolos con un Mouse.
Los sistemas operativos empleados normalmente son UNIX, Macintosh OS, MS-DOS, OS/2,
Windows 95 y Windows NT. El UNIX y sus clones permiten múltiples tareas y múltiples usuarios. Otros
SO multiusuario y multitarea son OS/2, desarrollado inicialmente por Microsoft e IBM, Windows NT y
Win95 desarrollados por Microsoft. El SO multitarea de Apple se denomina Macintosh OS. El MS-DOS
es un SO popular entre los usuarios de PCs pero solo permite un usuario y una tarea.