Download Conceptos de sistemas operativos
Document related concepts
Transcript
IF0015_M2AA1_Conceptos Versión: Septiembre 2012 Revisor: José Miguel Campos García Conceptos de sistemas operativos por Roberto Rangel Ibarra Cuando nos referimos a los Sistemas Operativos existen muchos conceptos que debes tener presente para su estudio, debido a la cantidad de funciones y tareas que realiza el mismo, y que forman parte de la gestión de procesos, memoria, dispositivos de entrada y salida, así como a la constante evolución en la que se encuentra. Muchos de estos conceptos pertenecen de manera peculiar a las primeras generaciones de sistemas operativos pero siguen utilizándose y, algunos más han aparecido recientemente. Estos conceptos son los siguientes: Sistema operativo.- Es un programa que actúa como una interfaz del hardware de una computadora y el usuario para poder efectuar diversas aplicaciones, encargándose de toda la gestión de los diferentes recursos de hardware y software del equipo. De acuerdo a Molina (2007, p. 8) se define como “un programa destinado a permitir la comunicación del usuario con un computador y gestionar sus recursos de una forma eficaz”. Procesos en serie.- Se considera así al tipo de procesamiento que se realizaba con las primeras computadoras, en donde la principal característica era que el programador interactuaba directamente con el hardware, y programaba instrucciones en lenguaje de bajo nivel, no habiendo sistema operativo. Sistema sencillo de procesos por lotes.- Consiste en el tipo de procesamiento que llevaban a cabo los primeros sistemas operativos y su principal aportación fue el uso de monitores, que fueron programas que permitían a los programadores entregar sus trabajos en tarjetas o en cinta al operador del computador. Éste a su vez agrupaba de forma secuencial los trabajos por lotes y ubicaba los lotes enteros en un dispositivo de entrada para su empleo por parte del monitor, el cual se encargaba de la gestión de los lotes, por lo que el programador ya no tenía que interactuar de forma directa con la máquina. Sistema por lotes con multiprogramación.- Consiste en una nueva forma de procesamiento por parte del sistema operativo, ya que aún con el procesamiento por lotes existía mucho tiempo de inactividad de la computadora, por lo que se asignan diferentes tareas que son programadas para efectuarse de forma casi simultánea. Sistema de tiempo compartido.- Se deriva del procesamiento de multiprogramación y consiste en la programación de varios usuarios ejecutando diferentes tareas o procesos, aunque no necesariamente deben efectuar varias, ya que diferentes usuarios pueden trabajar sobre una misma computadora para realizar un único proceso por medio de terminales. Al respecto Martínez, Cabello y Díaz (1997, p. 17) mencionan de forma muy clara este concepto, al decir que “…son aquéllos que pueden ser utilizados de forma simultáneamente por diversos usuarios. Debemos tener en cuenta que un sistema multiusuario no implica necesariamente la operación de multiproceso”. ©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito de la Universidad Virtual del Estado de Guanajuato. 1 IF0015_M2AA1_Conceptos Versión: Septiembre 2012 Revisor: José Miguel Campos García Actualmente, los requisitos de un servicio de computación interactiva pueden y suelen llevarse a cabo con el empleo de una computadora dedicada. Esta opción no estaba disponible en los años 60, cuando la mayoría de las computadoras eran grandes y muy caras. En su lugar, se desarrollaron las técnicas de tiempo compartido. Compilador.- Es un programa que traduce lenguaje de alto nivel al lenguaje máquina. Intérprete.- Cumple la misma función de traducir de lenguaje de alto nivel al lenguaje máquina pero sin producir un programa objeto. Relojes.-“Todos los computadores disponen de un reloj (timer) que se utiliza para tareas de planificación, para obtener la fecha y hora del sistema, para producir interrupciones periódicas y otras tareas dentro del sistema” (Martínez et al., 1997, p. 187). Firmware.- Son programas almacenados en una unidad de control de alta velocidad. Vera (2007, p. 2) menciona que es “un conjunto de instrucciones almacenadas en un circuito hardware”. Emulación.- Es cuando una máquina se comporta como otra. Buffer.- Es una memoria temporal de datos, Martínez et al. (1997, p. 11), lo definen como una “área de memoria principal que puede guardar datos temporalmente durante transferencias de entrada-salida (E/S)”. Encapsulamiento.- Es la propiedad de ocultar la información contenida en forma de paquetes, dicha información no puede ser vista de forma interior, sino que sólo es percibida por los usuarios como un paquete y sólo se puede conocer la parte exterior en conjunto. Spool.- Es un directorio asociado a un dispositivo de alta velocidad que se interpone entre el programa en ejecución y un dispositivo de baja velocidad relacionado con la entrada y salida de datos, con la finalidad de administrar procesos, y trabaja como una especie de cola de procesos. Candela, García, Quesada, Santana y Santos (2007) mencionan el siguiente ejemplo de un spool: Un ejemplo típico es el directorio spool para impresora: cuando un programa de usuario manda imprimir en una impresora, en realidad su trabajo se envía a este directorio y se engancha en esta cola de impresión, liberando al usuario para que pueda continuar su trabajo; posteriormente es el programa denominado “demonio de impresión” el que se encarga de enviar el fichero a la impresora cuando le corresponda (p. 261). Multiprogramación.- Varios procesos corriendo al mismo tiempo con memoria compartida. IOCS (Input Output Control System).-Programa que controla las entradas y salidas del sistema. Cargador.- Programa que coloca las instrucciones de un programa en localidades de memoria. Canalización.- Es el proceso de organización para que un procesador pueda ejecutar varias instrucciones. Tanenbaum (2003, p. 22) comenta que “muchas CPUs modernas cuentan con recursos para ejecutar más ©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito de la Universidad Virtual del Estado de Guanajuato. 2 IF0015_M2AA1_Conceptos Versión: Septiembre 2012 Revisor: José Miguel Campos García de una instrucción al mismo tiempo. Por ejemplo, una CPU podría tener unidades individuales para tomar, decodificar y ejecutar. Tal organización se llama canalización”. Poolling.- Técnica mediante la cual un proceso puede ver el estado de otro proceso (listo, suspendido, etc.). Sistema Interactivo.- Sistema para atender al mismo tiempo a varios usuarios. Sistema a tiempo real.- Es un sistema cuya principal característica es dar respuestas inmediatas, con una gran velocidad de procesamiento. Registro de ubicación.- Sirve para localizar o ubicar un programa en memoria. Shell.- Es la interfaz primaria entre un usuario y el sistema operativo. Una de sus principales funciones es trabajar como un intérprete de comandos, que la Shell recibe y que se encarga de procesar, generando los resultados y presentando esta información al usuario. Llamadas al sistema.- La interfaz entre el sistema operativo y los programas de usuario está definida por el conjunto de operaciones extendidas que el sistema operativo ofrece. Estas instrucciones se han nombrado tradicionalmente llamadas al sistema. Quantum.- Tiempo asignado por el procesador para ejecutar una tarea. Interrupción.- “No es más que un mecanismo mediante el cual otros módulos (entrada/salida/memoria) pueden interrumpir la ejecución normal de un procesador” (Ortiz, 2005, p. 16). Kernel.- “Es frecuente encontrar el término inglés Kernel para referirse al núcleo de un sistema operativo que siempre está residente en memoria” (Márquez, 2004, p. 1). Proceso.- Es un programa en ejecución. Silberschatz y Galvin (1999) destacan que: Un programa por sí solo no es un proceso; un programa es una entidad pasiva, como el contenido de un archivo guardado en disco, mientras que un proceso es una entidad activa, con el contador de programa especificando la siguiente instrucción que se ejecutará, y un conjunto de recursos asociados (p. 90). Process spawning.- Cuando un proceso es creado por el S.O., tras la solicitud explícita de otro proceso, la acción se conoce como generación de procesos. Swapping.- Cuando la memoria principal se satura, el S.O. efectúa un swapping, un proceso del estado bloqueado pasa a suspend blocked, se libera memoria principal y se puede crear un nuevo proceso. El swapping es un intercambio de los procesos de la memoria principal al disco. Programa.- Colección de instrucciones y de datos que se encuentran almacenados en un fichero ordinario. ©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito de la Universidad Virtual del Estado de Guanajuato. 3 IF0015_M2AA1_Conceptos Versión: Septiembre 2012 Revisor: José Miguel Campos García Lenguaje de bajo nivel.- “Lenguaje de programación que requiere que el programador piense a nivel de la máquina. Incluye una enorme cantidad de detalles en cada programa. Un ejemplo de este tipo de lenguaje es el ensamblador” (Beekman, 2005, p. 606). Lenguaje de alto nivel.- “Es un lenguaje de programación que cae en algún lugar entre los lenguajes humanos naturales y los lenguajes máquina precisos. Están desarrollados para simplificar el proceso de programación” (Beekman, 2005, p. 606). Un ejemplo de lenguaje de alto nivel es Java. Imagen de proceso.- Es la representación de los elementos típicos de un proceso, los cuales son “el bloque de control del proceso, los datos del usuario, el programa del usuario y la pila del sistema” (Ortiz, 2005, p. 42). Multiprogramación con un único procesador.- Es la ejecución de varios procesos dentro de un sistema con un solo procesador. En este modelo todos los procesos concurrentes se ejecutan sobre un único procesador. Multiprocesador.- Es la gestión de varios procesos dentro de un sistema con dos o más procesadores. En este tipo de arquitecturas, los procesos concurrentes no sólo pueden intercalar su ejecución sino también superponerla. En este caso sí existe una verdadera ejecución simultánea de procesos, al coincidir las fases de procesamiento de distintos procesos. Proceso distribuido.- Es la gestión de varios procesos que se ejecutan en sistemas de computadoras múltiples y remotas. Concurrencia.- “Se da cuando varios procesos se ejecutan simultáneamente, y precisan utilizar los mismos recursos, debiendo sincronizarse para que se ejecuten sin interferencias y puedan realizar su trabajo correctamente, cooperando para alcanzar el fin para el que se diseñaron” (Pérez-Campanero y Morera, 2002, p. 131). Exclusión mutua.- “Consiste en que solo un proceso puede usar un recurso crítico simultáneamente” (Ortiz, 2005, p. 91). Interbloqueo.- Es el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros. Candela et al., (2007, p. 275) lo definen como “el estado no deseable en el que existe un conjunto de unidades de ejecución bloqueadas esperando por recursos que no se les pueden conceder debido a que están asignados a otras unidades que están en ese mismo estado”. Inanición.- Es la negación indefinida de un recurso a un proceso, que no necesariamente se encuentra con interbloqueo, este caso puede darse en situaciones donde dos procesos pueden estarse asignando entre ellos un recurso, y negándoselo a un tercer proceso que está en espera. Cooperación por compartición.- De acuerdo a Ortiz (2005, p. 62) “es cuando los procesos conocen indirectamente a los demás, debido a que comparten objetos”. Cooperación por comunicación.- De acuerdo a Ortiz (2005, p. 62) “es cuando los procesos conocen directamente a los demás, debido a la existencia de primitivas comunicaciones”. ©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito de la Universidad Virtual del Estado de Guanajuato. 4 IF0015_M2AA1_Conceptos Versión: Septiembre 2012 Revisor: José Miguel Campos García Mecanismos de comunicación.- Son los mecanismos que permiten a los procesos comunicarse. Los mecanismos de comunicación hacen posible que los procesos intercambien datos entre ellos. Los principales mecanismos que ofrecen los sistemas operativos son los siguientes: • • • • Archivos Tuberías Variables en memoria compartida Paso de mensajes Mecanismos de sincronización.- En los problemas de sincronización un proceso debe esperar la ocurrencia de un determinado evento. Para que los procesos puedan sincronizarse es necesario disponer de servicios que permitan bloquear o suspender bajo determinadas circunstancias la ejecución de un proceso, para que de esa manera sepan qué proceso va a disponer de un servicio y cuál debe esperar su turno. Los principales mecanismos de sincronización que ofrecen los sistemas operativos son: • • • • • Señales Tuberías Semáforos Monitores Paso de mensajes Archivos.- Es una secuencia de datos almacenados y agrupados bajo un identificador que distingue de forma única a cada archivo. Paso de mensajes.- Consiste en un mecanismo de comunicación y sincronización cuya principal característica es el envío de mensajes entre dos o más procesos. Señales.- Es una interrupción por software para un proceso informándole de la ocurrencia de cierto evento. Martínez et al. (1997, p. 232) indican que “es un número entero positivo que un proceso envía a otro proceso mediante la llamada Kill ( ). Para cada uno de estos números de señal, el proceso que lo recibe especifica la acción asociada mediante la llamada signal ( )”. Tuberías.- Es una forma de comunicación en la que la salida o el resultado de un programa se convierten en la entrada de otro. Memoria compartida.- Consiste en crear una zona de memoria que puedan compartir dos o más procesos, y funciona por medio de la escritura en memoria de un proceso al querer enviar datos a otro, el segundo proceso entonces puede ver en la memoria lo que escribió el primero y darle respuesta escribiendo también en la memoria, estableciendo así un mecanismo de comunicación. Cola de mensajes.- Su filosofía es parecida a la de las tuberías pero con una mayor versatilidad. Una cola es una estructura de datos gestionada por el núcleo y donde podrán escribir varios procesos. Semáforo.- “Un semáforo es un mecanismo para prevenir la colisión que se produce cuando dos o más procesos solicitan simultáneamente el uso de un recurso que deben compartir” (Márquez, 2004, p. 372). ©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito de la Universidad Virtual del Estado de Guanajuato. 5 IF0015_M2AA1_Conceptos Versión: Septiembre 2012 Revisor: José Miguel Campos García Monitor.- “Es una colección de datos administrativos y sus procedimientos asociados, diseñados para controlar el acceso a un recurso compartido” (Hoare, 1974, citado por Márquez, 2004, p. 405). Overlaying.- Es una práctica que se conoce como superposición, en la cual el programa y los datos se organizan de tal forma que puede haber varios módulos asignados a la misma región de memoria, con un programa administrador del intercambio de los módulos. Dirección lógica.- Es una referencia a una posición de memoria, que funciona de manera independiente a la asignación de datos que se encuentren en ella, es necesaria una traducción a dirección física antes de poder realizar un acceso a memoria. Dirección relativa.- Es una dirección lógica pero de forma particular, debe existir una referencia a una posición relativa a algún punto establecido, generalmente es al inicio del programa. Dirección física o absoluta.- Es una posición real en memoria principal. Estado seguro.- Es un estado en el cual existe al menos un orden en el que todos los procesos pueden ejecutar hasta el final sin generar un interbloqueo. Memoria Virtual.- De acuerdo a (Tanenbaum, 2003), es lo siguiente: La idea básica de este esquema es que el tamaño combinado del programa, sus datos y su pila podrían exceder la cantidad de memoria física que se le puede asignar. El sistema mantiene en memoria principal la partes del programa que se estén usando en ese momento, y el resto en el disco (p. 202). Esta técnica evita a los programadores tener que preocuparse por las limitaciones de la memoria. Sistema de archivos.- Es un mecanismo de abstracción de los dispositivos físicos de almacenamiento que nos permite manejarlos a un nivel lógico sin la necesidad de conocer su arquitectura hardware de forma particular, la mayoría de los sistemas de archivos siguen una estructura jerárquica. Modelo Cliente Servidor.- Forouzan (2003, p. 370) lo define como “el modelo de interacción entre dos programas de aplicación en los cuales un programa en un extremo (cliente) solicita un servicio de un programa en el otro extremo (servidor)”. ©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito de la Universidad Virtual del Estado de Guanajuato. 6 IF0015_M2AA1_Conceptos Versión: Septiembre 2012 Revisor: José Miguel Campos García Referencias Candela, S., García, C. R., Quesada, A., Santana, F. J. y Santos, J. M. (2007). Fundamentos de sistemas operativos. Madrid, España: Thomson y Paraninfo. [Versión electrónica]. Recuperado el 28 de febrero de 2011, de http://books.google.com.mx/books?id=fRK3lbTrNy4C&pg=PA261&dq=spool+es&hl=es&ei=8NBrTcD AGI7WtQPrw7SmBA&sa=X&oi=book_result&ct=result&resnum=6&ved=0CDoQ6AEwBQ#v=onepag e&q=spool%20es&f=false Forouzan, B. A. (2003). Introducción a la ciencia de la computación. México, D. F.: International Thomson Editores. Márquez, F. M. (2004). Unix Programación avanzada. (3ª ed.). Madrid, España: RA-MA Editorial. Martínez, P., Cabello, M. y Díaz, J.C. (1997). Sistemas Operativos Teoría y Práctica. Madrid, España: Ediciones Díaz de Santos. [Versión electrónica]. Recuperado el 25 de febrero de 2011, de http://books.google.com.mx/books?id=wXzwFPaVku0C&pg=PA17&dq=sistemas+de+tiempo+compa rtido&hl=es&ei=0AdoTeaSNYiasAPXkd2mBA&sa=X&oi=book_result&ct=result&resnum=5&ved=0C EgQ6AEwBA#v=onepage&q=sistemas%20de%20tiempo%20compartido&f=false Molina, J. (2007). Sistemas Operativos en entornos monousuario y multiusario. Madrid, España: Editorial Visión Net. [Versión electrónica]. Recuperado el 25 de febrero de 2011, de http://books.google.com.mx/books?id=yECVWwb4kL0C&pg=PA1&dq=molina+%2B+sistemas+oper ativos&hl=es&ei=DAx5TasCyLi3B863wP8G&sa=X&oi=book_result&ct=result&resnum=2&ved=0CCs Q6AEwAQ#v=onepage&q&f=false Ortiz, H. J. (2005). Sistemas Operativos Modernos. Medellín, Colombia: Universidad de Medellín. [Versión electrónica]. Recuperado el 28 de febrero de 2011, de http://books.google.com.mx/books?id=3Hb6f3gyCxUC&pg=PA16&dq=interrupciones+%2B+sistema +operativo&hl=es&ei=n95rTbGtJYSisQPit9CmBA&sa=X&oi=book_result&ct=result&resnum=3&ved= 0CDMQ6AEwAg#v=onepage&q=interrupciones%20%2B%20sistema%20operativo&f=false Pérez-Campanero, J. A. y Morera, J. M. (2002). Conceptos de Sistemas Operativos. Madrid, España: Universidad Pontificia Comillas. [Versión electrónica]. Recuperado el 1 de marzo de 2011, de http://books.google.com.mx/books?id=LY2P_VSuZ3cC&pg=PA131&dq=concurrencia+%2B+sistema +operativo&hl=es&ei=1uZrTenDEpOWsgOvjdGmBA&sa=X&oi=book_result&ct=result&resnum=2&v ed=0CC0Q6AEwAQ#v=onepage&q=concurrencia%20%2B%20sistema%20operativo&f=false Silberschatz, A. y Galvin, P. B. (1999). Sistemas Operativos. (5ª ed.). México: Addison Wesley Longman. Tanenbaum, A. S. (2003) Sistemas Operativos Modernos. (2ª ed.). Estado de México, México: Pearson Educación. [Versión electrónica]. Recuperado el 28 de febrero de 2011, de http://books.google.com.mx/books?id=g88A4rxPH3wC&printsec=frontcover&dq=sistemas+operativos +modernos&hl=es&ei=Dwt5Td_OBoS5tgeHw4mHBw&sa=X&oi=book_result&ct=result&resnum=1&v ed=0CCUQ6AEwAA#v=onepage&q&f=false Vera, M. (2007). Implantación y Mantenimiento de Aplicaciones Ofimáticas y Corporativas. Madrid, España: Ediciones Paraninfo. [Versión electrónica]. Recuperado el 28 de febrero de 2011, de http://books.google.com.mx/books?id=sFqXAU67susC&pg=PA2&dq=firmware+es&hl=es&ei=VsRrTf uDCIygsQOusMGmBA&sa=X&oi=book_result&ct=result&resnum=8&ved=0CEgQ6AEwBw#v=onepa ge&q=firmware%20es&f=false ©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito de la Universidad Virtual del Estado de Guanajuato. 7