Contenido 1. Introducción y Funciones Generales. 2. Funciones específicas del Sistema Operativo. 3. Kernel e Interface de usuario. 4. Interrupciones. 1. Introducción y funciones generales. SISTEMAS OPERATIVOS Capítulo 2 Concepto. Funciones. Un sistema operativo es un programa que actúa como intermediario entre el usuario y el hardware de la computadora y su propósito es proporcionar un entorno en el cual el usuario pueda ejecutar sus programas. El objetivo principal de un sistema operativo es lograr un acceso fácil a todos los recursos de la computadora y administrar el hardware de forma eficiente y segura. Un sistema operativo cumple por lo menos cinco grandes funciones: 1. Interpretación de comandos: Interpreta los comandos que permiten al usuario comunicarse con la computadora. 2. Control de recursos: Coordina y manipula el hardware de la computadora, como la memoria, la impresora, las unidades de disco, el teclado o el mouse. 3. Manejo de dispositivos de E/S: Organiza los archivos en diversos dispositivos de almacenamiento, como discos duros, compactos memoria flash (ejemplo pen drive). 4. Manejo de errores: Gestiona los errores de hardware y la pérdida de datos. 5. Secuencia de tareas: Administra y distribuye los procesos definiendo un orden. 2. Funciones específicas del Sistema Operativo. Administración de procesos Un proceso es simplemente, un programa en ejecución que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el responsable de: Crear y destruir los procesos. Parar y reanudar los procesos. Ofrecer mecanismos para que se comuniquen y sincronicen. Administración de la memoria principal Es un almacén de datos de rápido accesos 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 siendo utilizadas y por quién. Decidir qué procesos se cargarán en memoria cuando haya espacio disponible. Asignar y reclamar espacio de memoria cuando sea necesario. Administración del almacenamiento secundario Un sistema de almacenamiento secundario es necesario, ya que la memoria principal (almacenamiento primario) es volátil y además muy pequeña para almacenar todos los programas y datos. También es necesario mantener los datos que no convenga mantener en la memoria principal. El SO se encarga de: Planificar los discos. 1
Gestionar el espacio libre. Asignar el almacenamiento. Verificar que los datos se guarden en orden Administración de E/S (Entrada/Salida) Consiste en un sistema de almacenamiento temporal (caché), una interfaz de manejadores de dispositivos y otra para dispositivos concretos. El sistema operativo debe gestionar el almacenamiento temporal de E/S y servir las interrupciones de los dispositivos de E/S. Administración de archivos (Sistema de archivos) Los archivos son colecciones de información relacionada, definidas por sus creadores. Éstos almacenan programas (en código fuente y objeto) y datos tales como imágenes, textos, información de bases de datos, etc. El SO es responsable de: Construir y eliminar archivos y directorios. Ofrecer funciones para manipular archivos y directorios. Establecer la correspondencia entre archivos y unidades de almacenamiento. Realizar copias de seguridad de archivos. Existen diferentes Sistemas de Archivos, es decir, existen diferentes formas de organizar la información que se almacena en las memorias (normalmente discos) de los ordenadores. Por ejemplo, existen los sistemas de archivos FAT, FAT32, NTFS, EXT3, XFS, etc. Administración de seguridad o protección Mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema. El SO se encarga de: Distinguir entre uso autorizado y no autorizado. Especificar los controles de seguridad a realizar. Forzar el uso de estos mecanismos de protección. Administración de las comunicaciones Para mantener las comunicaciones con otros sistemas es necesario poder controlar el envío y recepción de información a través de las interfaces de red. También hay que crear y mantener puntos de comunicación que sirvan a las 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. 3. Kernel e Interface de usuario Una computadora moderna consta de uno o más procesadores, una memoria principal, discos, impresoras, un teclado, un ratón, una pantalla o monitor, interfaces de red y otros dispositivos de entrada/salida. En general es un sistema complejo. Las computadoras están equipadas con una capa de software llamada sistema operativo, cuyo trabajo es proporcionar a los programas de usuario un modelo de computadora mejor, 2
más simple y pulcro, así como encargarse de la administración de todos los recursos antes mencionados. Los sistemas operativos son el tema de este libro. La mayoría de los lectores habrán tenido cierta experiencia con un sistema operativo como Windows o Linux, pero las apariencias pueden ser engañosas. El programa con el que los usuarios generalmente interactúan se denomina shell, cuando está basado en texto, y GUI (Graphical User Interface; Interfaz gráfica de usuario) cuando utiliza elementos gráficos o iconos. En realidad no forma parte del sistema operativo, aunque lo utiliza para llevar a cabo su trabajo. En la parte inferior del gráfico se muestra el hardware, que consiste en circuitos integrados (chips), tarjetas, discos, un teclado, un monitor y objetos físicos similares. Por encima del hardware se encuentra el software. La mayoría de las computadoras tienen dos modos de operación: modo kernel y modo usuario. El sistema operativo es la pieza fundamental del software y se ejecuta en modo kernel. En este modo, el sistema operativo tiene acceso completo a todo el hardware y puede ejecutar cualquier instrucción que la máquina sea capaz de ejecutar. El resto del software se ejecuta en modo usuario, En particular, las instrucciones que afectan el control de la máquina o que se encargan de la E/S (entrada/salida) están prohibidas para los programas en modo usuario. Interfaz de usuario: Shell o GIU El programa de interfaz de usuario, shell o GUI, es el nivel más bajo del software en modo usuario y permite la ejecución de otros programas, como un navegador Web, lector de correo electrónico o reproductor de música. Estos programas también utilizan en forma intensiva el sistema operativo. Una distinción importante entre el sistema operativo y el software que se ejecuta en modo usuario es que, si a un usuario no le gusta, por ejemplo, su lector de correo electrónico, es libre de conseguir otro o incluso escribir el propio si así lo desea; sin embargo, no es libre de escribir su propio manejador de interrupciones de reloj, que forma parte del sistema operativo y está protegido por el hardware contra cualquier intento de modificación por parte de los usuarios. 3
4. Interrupciones Una Interrupción (también conocida como interrupción hardware) es una señal recibida por el Microprocesador de una computadora, indicando que debe "interrumpir" el curso de lo que se está en ejecución actual y pasar a ejecutar código específico para tratar esta situación. Las interrupciones surgen de las necesidades que tienen los dispositivos periféricos de enviar información al microprocesador de una computadora. 4.2 Polling La primera técnica que se empleó fue que el propio microprocesador se encargara de sondear (polling) el dispositivo 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 microprocesador constantemente consumía tiempo en realizar todas las instrucciones de sondeo. El mecanismo de interrupciones fue la solución que permitió al microprocesador desentenderse de esta problemática, y delegar en el dispositivo la responsabilidad de comunicarse con el microprocesador cuando lo necesitaba. El microprocesador, en este caso, no sondea a ningún dispositivo, sino que queda a la espera de que estos le avisen (lo "interrumpan") cuando tengan algo que comunicarle (ya sea un evento, una transferencia de información, una condición de error, etc.). Cada dispositivo que desea comunicarse con el microprocesador por interrupciones debe tener asignada una línea única capaz de avisar a éste de que le requiere para una operación. Esta línea es la llamada IRQ ("Interrupt ReQuest", petición de interrupción). 4.3 Controlador de Interrupciones. Las IRQ son líneas que llegan al controlador de interrupciones, un componente hardware dedicado a la gestión de las interrupciones, que puede estar integrado en el microprocesador principal o ser un circuito separado conectado al microprocesador principal. El controlador de interrupciones debe ser capaz de habilitar o inhibir líneas de interrupción, y establecer prioridades entre las distintas interrupciones habilitadas. Cuando varias líneas de petición de interrupción se activan a la vez, el controlador de interrupciones utilizará estas prioridades para escoger la interrupción sobre la que informará al microprocesador. y Las rutinas de interrupción generalmente toman un pequeño tiempo de ejecución y la mayoría no pueden ser interrumpidas cuando se están atendiendo, porque al entrar en ellas se almacena el estado de los registros en una pila y si se interrumpen muchas veces, la pila se puede desbordar. Una PC tradicionalmente contaba en su placa madre de un controlador de interrupciones. Este dispositivo electrónico dispone de hasta 16 líneas IRQ, numeradas desde el 00 hasta el 15. En las nuevas placas madre este circuito está integrado junto con el resto del chipset y permite hasta 24 interrupciones. 4
TP Nº 2 Actividades SISTEMAS OPERATIVOS - Funciones, Evolución de los SO. Actividad teórica 1 Funciones de un SO 1. Qué funciones principales cumple un SO? 2. Con qué componentes del hardware están relacionadas las gestiones de procesos, de memoria principal y de memoria secundaria? Qué tipo de operaciones realiza el SO en relación a estos componentes? 3. Qué es la gestión de almacenamiento temporal? Investigue. 4. Qué es un Sistema de Archivos? Qué sistemas de archivos utiliza Windows, Linux y MacOs? Describa muy brevemente en una tabla comparativa las características de cada uno de ellos. Investigue. 5. Diferencias entre Shell y GUI? 6. Qué significa Tener acceso en modo kernel? 7. Investigue, mencione y describa muy brevemente tres de los mejores escritorios para Linux. Actividad teórica 2 Interrupciones. 1. Qué significa IRQ y que función cumple? 2. Qué es una interrupción de hardware? 3. En qué consiste el método Polling? 4. Qué función tiene el Controlador de interrupciones? Con que dispositivo está relacionado? Actividad práctica en PC Nº 1 1. Ingrese al Administrador de dispositivos 2. Anote los dispositivos que aparecen y cuál es la función cumple cada uno (Puede solicitar ayuda en la materia Laboratorio de hardware. Actividad práctica. 1. Ingrese al Administrador de Dispositivos e investigue que número de IRQ le fue asignado al Mouse, al teclado y al adaptador de video. 5