Apuntes de Administracion de Sistemas Operativos

7
4. Administración de Sistemas Operativos Estudio de Utilidades del Sistema. Estudio de las Llamadas del Sistema. Programación del Sistema. Mantenimiento y Gestión. { UTILIDADES DEL SISTEMA OPERATIVO Los sistemas operativos, en su condición de capa software ue posi!ilita y simplifica el mane la computadora, desempe#an una serie de funciones !$sicas esenciales para la gestión del euipo. Entre las m$s destaca!les, cada una e"ercida por un componente interno %módulo en n&cleos monol'ticos y servidor en micro(ernels), podemos rese#ar las siguientes* Proporcionar al usuario un entorno cómodo y eficiente para e"ecutar sus programas. Gestionar de manera eficiente los recursos del euipo, e"ecutando servicios para los procesos %programas) +rindar una interfa al usuario, e"ecutando instrucciones %comandos). Permitir ue los cam!ios de!idos al desarrollo del propio S- se puedan reali ar sin interferir con los servicios ue ya se presta!an %evolutividad). El Software de Sistema es software dise#ado para operar el ardware de una computadora y proveer un plataforma para e"ecuta aplicaciones. Los / tipos mas !$sicos de software de sistema son* El +0-S de la computadora y el firmware del dispositivo, los cuales proveen la funcionalidad !$sica para operar y controlar el ardware conectado a o integrado en la computadora. El sistema operativo. Software de Utilidades Las utilidades son un tipo de software del sistema dise#ado para ayudar a anali ar, configura optimi ar y mantener la computadora. Este tipo de software es diferente de los programas de aplicación, el cual permite por e"empl documentos de te1to, "ugar "uegos, escuc ar m&sica o navegar en internet, ya ue no provee un funcionalidad enfocada en generar una particular salida, los software de utilidad se concentr como la infraestructura de la computadora opera %0ncluyendo el ardware de la computadora, el sistema operativo, los software de aplicación y los dispositivos de almacenamiento de datos). 2ormalmente las utilidades son altamente especiali adas y dise#adas para reali ar una sola ta o un peue#o con"unto de tareas. La mayor'a de los sistema operativos vienen con varias utilidades pre3instaladas. E"emplos de Utilidades* 4esfragmentadores de discos, software ue genera !ac(3ups de los dato

description

ofimatica

Transcript of Apuntes de Administracion de Sistemas Operativos

4. Administracin de Sistemas Operativos Estudio de Utilidades del Sistema. Estudio de las Llamadas del Sistema. Programacin del Sistema. Mantenimiento y Gestin.

{UTILIDADES DEL SISTEMA OPERATIVO

Los sistemas operativos, en su condicin de capa software que posibilita y simplifica el manejo de la computadora, desempean una serie de funciones bsicas esenciales para la gestin del equipo. Entre las ms destacables, cada una ejercida por un componente interno (mdulo en ncleos monolticos y servidor en microkernels), podemos resear las siguientes: Proporcionar al usuario un entorno cmodo y eficiente para ejecutar sus programas. Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los procesos (programas) Brindar una interfaz al usuario, ejecutando instrucciones (comandos). Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar sin interferir con los servicios que ya se prestaban (evolutividad).

El Software de Sistema es software diseado para operar el hardware de una computadora y proveer un plataforma para ejecuta aplicaciones.Los 3 tipos mas bsicos de software de sistema son: El BIOS de la computadora y el firmware del dispositivo, los cuales proveen la funcionalidad bsica para operar y controlar el hardware conectado a o integrado en la computadora. El sistema operativo. Software de UtilidadesLas utilidades son un tipo de software del sistema diseado para ayudar a analizar, configurar, optimizar y mantener la computadora. Este tipo de software es diferente de los programas de aplicacin, el cual permite por ejemplo crear documentos de texto, jugar juegos, escuchar msica o navegar en internet, ya que no provee una funcionalidad enfocada en generar una particular salida, los software de utilidad se concentra en como la infraestructura de la computadora opera (Incluyendo el hardware de la computadora, el sistema operativo, los software de aplicacin y los dispositivos de almacenamiento de datos).

Normalmente las utilidades son altamente especializadas y diseadas para realizar una sola tarea, o un pequeo conjunto de tareas. La mayora de los sistema operativos vienen con varias utilidades pre-instaladas.Ejemplos de Utilidades: Desfragmentadores de discos, software que genera back-ups de los datos en la computadora, administradores de archivos, compresores de datos, etc

LLAMADAS AL SISTEMA

Las llamadas al sistema proveen una interfaz entre los procesos y los servicios del sistema operativo. Mediante las llamadas al sistema, el usuario solicita los servicios que desea del sistema operativo. Las llamadas al sistema comnmente usan una instruccin especial de la CPU que causa que elprocesador transfiera el control a un cdigo privilegiado, previamente especificado por el mismocdigo. Esto permite al cdigo privilegiado especificar donde va a ser conectado as como elestadodel procesador.

Cuando una llamada al sistema es invocada, la ejecucin del programa que invoca es interrumpida ysus datos son guardados, normalmente en su PCB, para poder continuar ejecutndose luego. El procesadorentonces comienza a ejecutar las instrucciones de cdigo de alto nivel de privilegio, para realizar la tarearequerida. Cuando esta finaliza, se retorna al proceso original, y contina su ejecucin. El retorno al procesodemandante no obligatoriamente es inmediato, depende del tiempo de ejecucin de la llamada al sistema ydel algoritmo de planificacin de cpu

Las llamadas al sistema generalmente estn disponibles como rutinas escritas en C y C++, aunquedeterminadas tareas de bajo nivel pueden necesitar escribirse con ensamblador. La mayora deprogramadores de aplicaciones disean sus programas utilizando una API (applicationprogramming interface). La API especifica un conjunto de funciones que el programador deaplicaciones puede usar, indicndose los parmetros que hay que pasar a cada funcin y los valoresde retorno que el programador debe esperar. Una ventaja de programar usando una API es laportabilidad (un programa diseado usando una API puede ser compilado y ejecutado en cualquiersistema que soporte la misma API.Habitualmente, cada llamada al sistema tiene asociado un nmero y la interfaz de llamadas alsistema mantiene una tabla indexada segn dichos nmeros. Usando esa tabla, la interfaz dellamadas al sistema invoca la llamada necesaria del kernel del sistema operativo y devuelve elestado de la ejecucin de la llamada al sistema y los posibles valores de retorno.

TIPOS DE LLAMADAS AL SISTEMAControl de procesosUn programa en ejecucin necesita poder interrumpir dicha ejecucin, bien de forma normal obien de forma anormal. En cualquier caso el SO debe transferir el control al intrprete decomandos que realiz la invocacin para que lea el siguiente comando. En un sistema GUI, unaventana alertar al usuario del error.Algunas llamadas al sistema, en cuanto al control de procesos se refiere, son: terminar/abortar;cargar/ejecutar; crear/terminar procesos; obtener/definir atributos del proceso; asignar/liberarmemoria; esperar/sealizar suceso...Administracin de archivosNecesitamos crear y borrar archivos; abrir y cerrar archivos; leer, escribir y reposicionar; obtenery definir atributos de un archivo, etc. Lo mismo ocurre con directorios.Administracin de dispositivosUn proceso puede necesitar varios recursos para ejecutarse: memoria principal, unidades dedisco, acceso a archivos, etc. Si los recursos estn disponibles, pueden ser concedidos, en casocontrario el proceso tendr que esperar. Puede pensarse en los distintos recursos controlados porel SO como dispositivos, algunos fsicos (como el espacio en memoria) y otros abstractos (como unarchivo).En cuanto a la administracin de dispositivos, las principales llamadas al sistema son: solicitar oliberar dispositivos; leer, escribir y reposicionar; obtener y definir atributos de dispositivos;conectar y desconectar dispositivos lgicamente.Mantenimiento de informacinMuchas llamadas al sistema existen simplemente con el propsito de transferir informacinentre el programa de usuario y el sistema operativo. Por ejemplo la llamada al sistema paraconocer la hora y la fecha, el nmero actual de usuarios, la versin del sistema operativo,cantidad de memoria libre, etc. Adems, el SO mantiene informacin sobre todos sus procesos.ComunicacionesExisten dos modelos comunes de comunicacin entre procesos:a) Modelo de paso de mensajes : los procesos se comunican envindose mensajes coninformacin, directa o indirectamente a travs de un buzn de correo comn. La mayorade los procesos que reciben conexiones son de propsito especial y se denominandemonios. Los demonios son programas que se mantienen a la espera y despiertancuando se establece una conexin. El origen de la comunicacin, denominado cliente, y elreceptor, servidor, intercambian mensajes usando las llamadas al sistema para leer yescribir.b) Modelo de memoria compartida : los procesos usan las llamadas al sistema para crear yobtener acceso a regiones de la memoria que son propiedad de otros procesos.Normalmente el sistema operativo intentara evitar que un proceso acceda a la memoriade otro, por ello la memoria compartida entre dos o ms procesos requiere que estosacuerden eliminar esa restriccin. La forma de los datos y su ubicacin sondeterminadas por parte de los procesos y no por el SO.InterrupcionesLas interrupciones son fundamentales para los sistemas operativos, ya que proporcionan una manera eficiente de interactuar y reaccionar a su entorno. Los sistemas operativos "observan"(watch) las diversas fuentes de entrada para los eventos que requieren una accin. La programacion basada en interrupciones (interrupt-based programming) tiene el soporte directo de la mayoria de las CPU modernas. Las interrupciones proporcionan al equipo una forma de guardar localmente los contextos de registro y ejecutar cdigo especfico en respuesta a los eventos en los mismos. Incluso los ordenadores muy bsicos soportan interrupciones de hardware, y permiten al programador especificar el cdigo que se ejecutara cuando el evento se lleve a cabo.Cuando se recibe una interrupcin, el hardware del equipo suspende automticamente cualquier programa que se est ejecutando, guarda su estado, y se ejecuta el cdigo asociado con la interrupcin. En los sistemas operativos modernos, las interrupciones son manejadas por el kernel del sistema operativo. Las interrupciones pueden provenir tanto del hardware como de un programa en ejecucin.Cuando un dispositivo de hardware provoca una interrupcin, el kernel del sistema operativo decide qu hacer con este evento, por lo general mediante la ejecucin de un cdigo de procesamiento. La cantidad de cdigo a ejecutar depende de la prioridad de dicha interrupcin (por ejemplo: una persona por lo general responde a una alarma de detector de humo antes de contestar el telfono).Un programa tambin puede provocar una interrupcin en el sistema operativo, pero para ello debe enviar una solicitud al kernel del sistema operativo, el cual debera procesarla para luego hacer o no dicha interrupcion en el hardwareEjemplos de causas del por qu un programa genera una interrupcin son: El desbordamiento en las operaciones aritmticas, la divisin por cero, el intento de ejecutar una instruccin con cdigo operacin incorrecto o de direccionar una posicin de memoria prohibida.

PROGRAMACIN DEL SISTEMALos programas del sistema proporcionan un cmodo entorno para desarrollar y ejecutarprogramas. Algunos son simplemente interfaces de usuario para las llamadas al sistema; otros sonms complejos. Pueden dividirse en:a) Administracin de archivos : manipulan archivos y directorios.b) Informacin de estado : algunos solicitan la hora, fecha memoria o espacio en discodisponible... Otros proporcionan informacin detallada sobre rendimiento, inicios desesin y mecanismos de depuracin.c) Modificacin de archivos : editores de texto para crear y modificar archivos almacenadosen disco, programas para buscar un dato en el contenido de los archivos...d) Soporte de lenguajes de programacin : compiladores, ensambladores, depuradores eintrpretes para los lenguajes de programacin ms habituales.e) Carga y ejecucin de programas : cargadores absolutos o reubicables, editores demontaje, cargadores de sustitucin y sistemas de depuracin.f) Comunicaciones : mecanismos para crear conexiones virtuales entre procesos, usuarios ycomputadoras. Permiten enviar mensajes a las pantallas de otros, explorar pginas web,enviar mensajes de correo electrnico, iniciar una sesin remota o transferir archivos.Adems de estos programas de sistema, la mayora de SO se suministran con programas deutilidad (llamados programas de aplicacin o utilidades del sistema) para resolver problemascomunes o realizar operaciones frecuentes: exploradores web, procesadores y editores de texto,hojas de clculo, compiladores, juegos...

Gestor de recursosDesde el punto de vista del sistema, una computadora tiene muchos recursos que pueden ser requeridos para solucionar un problema, como el espacio de memoria, almacenamiento de archivos, dispositivos de E/S o tiempo de CPU.El sistema operativo acta como administrador de esos recursos, y debe hacer frente a conflictos ( pedidos de recursos especficos ) decidiendo a que usuarios y procesos otorgar dichos recursos. Esto es esencial en sistemas de ms de un usuario. Como gestor de recursos, el Sistema Operativo administra: La CPU (Unidad Central de Proceso, donde est alojado el microprocesador). Los dispositivos de E/S (entrada y salida) La memoria principal (o de acceso directo). Los discos (o memoria secundaria). Los procesos (o programas en ejecucin). y en general todos los recursos del sistema.

- Gestin de ProcesosUn proceso es un trabajo en ejecucin en un sistema de tiempo compartido. Necesita ciertos recursos: tiempo de CPU, memoria, archivos y dispositivos E/S. Estos recursos se le proporcionan en el momento de crear el proceso o se le asignan mientras se est ejecutando. Cuando el proceso termina, el SO reclama todos los recursos utilizables. Cada sistema consta de una coleccin de procesos, algunos del SO y el resto de los usuarios. El SO es responsable de: a) Crear y borrar procesos b) Suspender y reanudar procesos c) Proporcionar mecanismos de sincronizacin de procesos d) Proporcionar mecanismos para la comunicacin entre procesos e) Proporcionar mecanismos para el tratamiento de los interbloqueos- Gestin de MemoriaLa memoria principal es fundamental, y es compartida por la CPU y los dispositivos de E/S. Para que la CPU procese unos datos de disco, dichos datos deben transferirse primero a la memoria principal. Para mejorar tanto la utilizacin de la CPU como la velocidad de respuesta de la computadora, sta puede mantener varios programas en memoria, lo que crea la necesidad de mecanismos de gestin de la misma. El SO es responsable de: a) Controlar las partes de la memoria en uso y por parte de quin b) Decidir qu datos y procesos aadir o extraer de memoria c) Asignar y liberar espacio en memoria segn sea necesario- >Memoria virtualMuchos sistemas operativos pueden "engaar" a los programas en el uso de memoria utilizando parte del disco duro y memoria RAM como si fuera un pedazo continuo de la memoria, llamada memoria virtual.El uso del direccionamiento de memoria virtual(tales como la paginacin o segmentacin) significa que el kernel puede elegir que memoria y que cantidad utiliza cada programa en un momento dado, permitiendo que el sistema operativo pueda utilizar los mismos segmentos de memoria para multiples tareas.Si un programa intenta acceder a memoria que no est en su rea de distribucin actual(permitida por el kernel), el kernel se interrumpir en la misma forma que lo hara si el programa exediera la memoria total disponible(gestin de memoria).En los sistemas operativos modernos, la memoria que se accede con menor frecuencia puede ser almacenada temporalmente en el disco u otros medios para hacer que el espacio de memoria real almacenado pueda ser utilizado por otros programas. Esto se conoce como "swapping"(intercambio).- KernelEl Kernel conecta el software de aplicacin con el hardware de una computadora.Con la ayuda de los controladores y el firmware del dispositivo, el sistema operativo proporciona el nivel ms bsico de control sobre todos los dispositivos de hardware de la computadora. Se gestiona el acceso de memoria para los programas en la memoria RAM, que determina qu programas tienen acceso a que los recursos de hardware, en ella se establece o restablece los estados de funcionamiento de la CPU para un funcionamiento ptimo en todo momento, y organiza los datos para el almacenamiento no voltil a largo plazo con sistemas de archivos en soportes tales como discos, memoria flash, etc.- ModosLas CPU modernas soportan varios modos diferentes.Por lo general, utilizan al menos dos modos: modo seguro/protegido y modo supervisor. El modo de supervisor se utiliza por el kernel del sistema operativo para las tareas de bajo nivel que necesitan un acceso sin restricciones al hardware, tales como el control de la cantidad de memoria que se escribe y se borra, y la comunicacin con dispositivos como tarjetas grficas. El modo protegido, por el contrario, se utiliza para casi todo lo dems. Las aplicaciones funcionan en modo protegido, y slo puede usar el hardware mediante la comunicacin con el kernel, que controla todo en el modo de supervisor.Cuando un equipo se inicia por primera vez, automticamente se ejecuta en modo supervisor. Los priemros programas en ejecutarse, siendo el BIOS, gestor de arranque y el sistema operativo tienen un acceso ilimitado a un hardware - y esto es necesario porque, por definicin, la inicializacin de un entorno protegido slo puede llevarse a cabo desde afuera de la proteccion -. Sin embargo, una vez que el sistema operativo pase el control a otro programa,ya podra hacerse en modo protegido.En modo protegido, los programas tienen acceso a un conjunto ms limitado de instrucciones de la CPU. Un programa de usuario puede desprenderse del modo protegido slo mediante la activacin de un control de la interrupcin, pasando por el kernel. De esta manera el sistema operativo (mas especificamente el kernel) puede mantener el control exclusivo sobre cosas como el acceso al hardware y la memoria.- Interfaz de usuarioCada equipo que recibe algn tipo de intervencin humana necesita una interfaz de usuario, que le permita interactuar con el sistema operativo. Mientras que los dispositivos como teclados, ratones y pantallas tctiles conforman el lado hardware de esta tarea, la interfaz de usuario abarca el software que se utiliza para ello. Las dos formas ms comunes de una interfaz de usuario han sido histricamente: la interfaz de lnea de comandos, comandos de la computadora donde se escriben fuera de lnea por lnea, y la interfaz grfica de usuario, en un entorno visual (ms comnmente con ventanas, botones e iconos )

- Gestin de Almacenamiento

Gestin del sistema de archivosUn archivo es una coleccin de informacin relacionada definida por su creador. Comnmente,los archivos representan programas (tanto en formato fuente como objeto) y datos. El SOimplementa el abstracto concepto de archivo gestionando los medios de almacenamientomasivos. Asimismo, los archivos normalmente se organizan en directorios para hacer ms fcilsu uso. El SO es responsable de:a) Creacin y borrado de archivosb) Creacin y borrado de directorios para organizar los archivosc) Soporte de primitivas para manipular archivos y directoriosd) Asignacin de archivos a los dispositivos de almacenamiento secundario.e) Copia de seguridad de los archivos en medios de almacenamiento no voltiles

Gestin de almacenamiento masivoComo la memoria principal es demasiado pequea para almacenar los datos y programas, yadems de voltil, la mayora de los sistemas informticos modernos usan discos como principalmedio de almacenamiento. Por tanto, la apropiada gestin del almacenamiento en disco tieneuna importancia crucial. El SO es responsable de:a) Gestin del espacio libreb) Asignacin del espacio de almacenamientoc) Planificacin del discoLas unidades de cinta magntica y de CD/DVD son dispositivos de almacenamiento terciario.Este almacenamiento no es crucial, pero tambin necesita ser gestionado (montar y desmontarmedios, asignar y liberar los dispositivos, y migrar datos de almacenamiento secundario alterciario). Algunos SO realizan esta tarea, mientras que otros lo dejan en manos de programasde aplicacin.

Almacenamiento en cachLa cach es un sistema de almacenamiento muy rpido, y de mucho menor tamao que la RAM.Cuando necesitamos alguna informacin particular, primero comprobamos si est almacenadaen cach, si lo est usamos dicha informacin, en caso contrario utilizamos la informacinoriginal, colocando una copia en la cach bajo suposicin de que pronto la necesitaremos. Lamayora de los sistemas disponen de una cach de instrucciones para almacenar las siguientesinstrucciones en espera de ser ejecutadas. Sin una cach, la CPU tendra que esperar variosciclos mientras las instrucciones son extradas de la RAM. Tambin la mayora de sistemasdisponen, por la misma razn, de una cach de datos o ms. La transferencia de datos del discoduro a la memoria principal es una funcin controlada por el SO, por el contrario, el paso dedatos de la cach a los registros de la CPU normalmente no.En un entorno donde slo se ejecuta un proceso al tiempo, un acceso a un dato (por ejemplo unnmero entero A) siempre se realiza a la copia situada en el nivel ms alto de la jerarqua dememoria (registros). Sin embargo, en un entorno multitarea, en el que la CPU conmuta entrevarios procesos, hay que tener cuidado para asegurar que, si varios procesos quieren acceder a A,cada uno obtenga el valor ms reciente. La situacin se complica en un entorno multiprocesador,donde A puede encontrarse en varias cachs al tiempo. En ese caso debemos asegurarnos de queuna actualizacin de A en una cach se vea reflejada en el resto. Esto se denomina coherencia decach. El caso ms complejo es en un entorno distribuido, donde varias copias del mismo archivopueden estar en diferentes computadoras.

Sistemas de E/SUno de los propsitos de un SO es ocultar al usuario las peculiaridades de los dispositivoshardware. El subsistema de E/S consta de varios componentes:a) Un componente de gestin de memoria que incluye almacenamiento en bfer, gestin decach y gestin de colas.b) Una interfaz general para controladores de dispositivo.c) Controladores para dispositivos hardware especficos.Principio del software de E/S.Hay 4 capas: Manejadores de interrupciones. Es el nivel ms bajo. Manejadores de dispositivos. Controladores del dispositivo. Es la nica capa que est en contacto con el dispositivo. Reciben solicitudes del tipo quiero el bloque fsico 20 y tiene que traducirlo al cilindro, pista y sector correspondiente. Software independiente del dispositivo. Es el software que se encarga de las funciones comunes para todos los dispositivos. Funciones: Interfaz uniforme para los manejadores. Nombre de los dispositivos: que se reconozcan por un nombre simblico. Proteccin de los dispositivos. Uso de buffers: Dispositivos de bloques: cache de disco. Y dispositivos de caracteres: tcnicas de buffering.