🎧 New: AI-Generated Podcasts Turn your study notes into engaging audio conversations. Learn more

T.11_SISTEMAS_OPERATIVOS_434_464.pdf

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Document Details

RenownedCurl

Uploaded by RenownedCurl

Tags

operating systems computer science system management

Full Transcript

Sistemas Operativos Tabla de Contenido Tabla de Contenido Tabla de Contenido.............................................................................................................................................. 2 Introducción a...

Sistemas Operativos Tabla de Contenido Tabla de Contenido Tabla de Contenido.............................................................................................................................................. 2 Introducción a los Sistemas Operativos......................................................................................................... 4 Historia de los Sistemas Operativos............................................................................................................. 4 El Sistema Operativo...................................................................................................................................... 5 Procesos........................................................................................................................................................ 5 Sistema de Ficheros.................................................................................................................................... 6 Eventos.......................................................................................................................................................... 6 Gestión de procesos, de memoria, y de Entrada/Salida.......................................................................... 8 Gestión de procesos...................................................................................................................................... 8 Concepto de proceso.............................................................................................................................. 8 Estados de un proceso.............................................................................................................................. 8 Bloque de control de proceso................................................................................................................. 9 Planificación de procesos...................................................................................................................... 10 Concurrencia de procesos..................................................................................................................... 10 Competencia entre procesos............................................................................................................ 10 Mecanismos de exclusión mutua y sincronización............................................................................ 11 Sincronización........................................................................................................................................ 11 Gestión de memoria.................................................................................................................................... 12 Requisitos de la gestión de memoria................................................................................................... 12 Reubicación.......................................................................................................................................... 12 Protección.............................................................................................................................................. 12 Compartición........................................................................................................................................ 12 Organización lógica............................................................................................................................ 12 Organización física............................................................................................................................... 13 Tabla de páginas...................................................................................................................................... 13 Memoria virtual......................................................................................................................................... 14 Hiperpaginación....................................................................................................................................... 14 Gestión de Entrada/Salida......................................................................................................................... 14 Las operaciones de E/S........................................................................................................................... 14 El controlador DMA.................................................................................................................................. 15 El subsistema de E/S del Núcleo............................................................................................................ 15 Planificación de E/S.............................................................................................................................. 15 Uso de buffers........................................................................................................................................ 15 Uso de caches....................................................................................................................................... 16 Uso de spool y reserva de dispositivo............................................................................................... 16 Manejo de errores................................................................................................................................ 16 Gestión de archivos......................................................................................................................................... 17 Concepto de archivo................................................................................................................................. 17 Directorio de archivos............................................................................................................................. 17 Organización de directorios............................................................................................................... 17 Acceso a archivos.................................................................................................................................... 18 Sistema de archivos..................................................................................................................................... 18 Asignación de espacio a archivos........................................................................................................... 18 Asignación contigua............................................................................................................................... 19 Tabla de Contenido Asignación enlazada............................................................................................................................... 19 Asignación indexada.............................................................................................................................. 20 Protección y seguridad............................................................................................................................... 21 El Sistema Operativo MS-DOS........................................................................................................................ 22 Formato de los Comandos......................................................................................................................... 22 Comandos del MS-DOS.............................................................................................................................. 23 Convenciones que se utilizarán............................................................................................................ 23 Comandos para el manejo de Directorios......................................................................................... 24 Máquinas Virtuales......................................................................................................................................... 278 Introducción a las máquinas virtuales................................................................................................... 278 Ventajas y desventajas de las máquinas virtuales................................................................................ 28 Ventajas...................................................................................................................................................... 28 Desventajas............................................................................................................................................... 28 Sistemas Operativos en una máquina virtual......................................................................................... 28 Tipos de máquinas virtuales....................................................................................................................... 29 VMware...................................................................................................................................................... 29 VMWare Fusión.................................................................................................................................. 29 Virtual Box................................................................................................................................................... 30 Virtual PC.................................................................................................................................................... 30 3 Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos Historia de los Sistemas Operativos A finales de los 40's el uso de ordenadores estaba restringido a aquellas empresas o instituciones que podían pagar su alto precio, y no existían los sistemas operativos. En su lugar, el programador debía tener un conocimiento y contacto profundo con el hardware, es decir con el ordenador, y en el desafortunado caso de que su programa fallara, debía examinar los valores de los registros y los paneles de luces indicadoras del estado del ordenador para intentar determinar la causa del fallo y poder corregir su programa, además de enfrentarse nuevamente a todo el procedimiento de: reservar tiempo del sistema, poner a punto los compiladores, ensambladores, etc., para volver a correr su programa, es decir, enfrentaba el problema del procesamiento serie (serial processing). La importancia de los sistemas operativos nace históricamente en los 50, cuando se hizo evidente que el operar un ordenador por medio de paneles de clavijas en la primera generación y luego por medio de trabajos por lotes en la segunda generación se podía mejorar notablemente, debido a que el operador (programador) realizaba siempre una secuencia de pasos repetitivos, lo cual es una de las características contempladas en la definición de lo que es un programa. Es decir, se comenzó a ver que las tareas que realizaba el operador podían plasmarse en un programa, el cual a través del tiempo y por su enorme complejidad se le llamó "Sistema Operativo". Así, tenemos entre los primeros sistemas operativos el Fortran Monitor System (FMS) o el IBSYS. Posteriormente, en la tercera generación de ordenadores nace uno de los primeros sistemas operativos con la filosofía de administrar una familia de ordenadores: el OS/360 de IBM. Fue éste un proyecto novedoso y ambicioso que se enfrentó por primera vez a una serie de problemas conflictivos debido a que hasta la fecha los ordenadores se creaban para dos propósitos muy distintos: el comercial y el científico. Así, al tratar de crear un único sistema operativo para ordenadores que podían dedicarse a un propósito, al otro o ambos, puso en evidencia la problemática del trabajo en equipos de análisis, diseño e implantación de sistemas grandes. El resultado fue un sistema monstruoso, del cual uno de sus mismos diseñadores escribió en la portada de un libro: “una horda de bestias prehistóricas atascadas en un foso de brea”. A partir de la tercera generación de ordenadores surge el concepto de la multiprogramación, porque debido al alto coste de los ordenadores era necesario idear un esquema de trabajo que mantuviese a la unidad central de proceso (CPU) ocupada el mayor tiempo posible, así surge también la necesidad del “encolado (spooling) de trabajos” para su lectura, hacia los lugares libres de memoria o la escritura de resultados. Sin embargo, se puede afirmar que los sistemas durante la tercera generación siguieron siendo básicamente sistemas secuenciales o de tratamiento por lotes. En la cuarta generación la electrónica avanza hacia la integración a gran escala, pudiendo crear circuitos con miles de transistores en un centímetro cuadrado de silicio y ya es posible hablar de los ordenadores personales y de estaciones de trabajo. Surge el concepto de “interfaces agradables” intentando así atraer al público en general al uso de los ordenadores como herramientas cotidianas. Se hacen populares el MS-DOS y el UNIX en estas máquinas. También es común encontrar clones de ordenadores personales y una multitud de empresas pequeñas que ensamblan los PC’s clónicos por todo el mundo. Introducción a los Sistemas Operativos A mediados de los 80, comienza el auge de las redes de ordenadores y la necesidad de sistemas operativos de red y sistemas operativos distribuidos. La red mundial Internet se va haciendo accesible a toda clase de instituciones y se comienzan a dar muchas soluciones (y problemas) al querer compartir recursos residentes en ordenadores con sistemas operativos diferentes. En los 90 el paradigma de la programación orientada a objetos cobra auge, así como el manejo de objetos desde los sistemas operativos. Las aplicaciones intentan crearse para ser ejecutadas en una plataforma específica y poder ver sus resultados en la pantalla o monitor de otra diferente (por ejemplo, ejecutar una simulación en una máquina con UNIX y ver los resultados en otra con DOS). Los niveles de interacción se van haciendo cada vez más profundos. El Sistema Operativo Desde el punto de vista de los usuarios del sistema informático, el Sistema Operativo (S.O.) podría definirse como el software que controla la ejecución de los programas de aplicación y que actúa como interfaz entre el usuario y el hardware de la misma, proporcionándole una máquina virtual que facilite la operación sobre el hardware subyacente de forma cómoda y eficiente. El S.O. sirve como máquina virtual o extendida permitiendo al programador abstraerse de la capa de hardware. Es decir, el S.O. es el encargado de trabajar a bajo nivel con los componentes físicos. El SO proporciona los siguientes servicios: Ejecución de programas Operaciones de E/S Gestión del sistema de archivo Comunicaciones Protección objetos Detección y respuesta de errores Contabilidad El objetivo del S.O. es proporcionar un entorno en el cual el usuario pueda ejecutar sus programas de forma cómoda (objetivo principal) y eficiente (secundario). Otro objetivo es ocultar al usuario los detalles del hardware (se logra a través de lo que se llama máquina virtual). El S.O. puede dividirse en módulos que administran los cuatro recursos de un sistema de cómputo: Unidad Central de Proceso (CPU) Memoria de Programa (MP) Periféricos Archivos Por lo tanto, el S.O. es un “asignador” de recursos (controla y coordina el uso del hardware entre las diversas aplicaciones de los usuarios.). En multiprogramación (“multitasking” - multitarea) varios programas presentes en la MP dan lugar a procesos que se disputan los cuatro recursos citados. El SO optimiza el funcionamiento del conjunto, oficiando de árbitro, haciendo posible que al mismo tiempo, mientras la CPU ejecuta uno de los programas del usuario, se realicen también procesos de E/S correspondientes a otras aplicaciones, almacenadas en la MP. Procesos Una de las misiones fundamentales del S.O. es controlar el acceso y la utilización de los recursos del sistema; además de distribuir estos recursos entre los distintos procesos. Para ello, monitoriza el uso de los recursos y, en que momentos son liberados para de esta forma asignarlos a otros procesos. 5 Introducción a los Sistemas Operativos Uno de los conceptos fundamentales y pilar de los Sistemas Operativos es el término de proceso. Un proceso es básicamente un programa en ejecución. Al arrancar el S.O. se crean una serie de procesos (padre) principales que serán los encargados de crear los demás procesos (hijo). De esta manera se obtiene una estructura en jerarquías en forma de árbol. Un padre puede tener varios hijos. A su vez, un hijo (A) puede tener otro hijo (B) siendo A padre de B. Otros conceptos relevantes relacionados con los procesos son: Sistemas Operativos Monotarea: sólo pueden controlar la ejecución de una aplicación por vez. Simplemente cargan y ubican en Memoria la aplicación en curso, permitiendo que pueda usar los recursos del sistema. Cuándo aparece un comando del tipo EXIT, el SO da por finalizada la aplicación, y se encarga de encadenar la siguiente. Ej. : el MS-DOS. Sistemas Operativos Multitarea (Multiprogramación): permite ejecutar varios procesos mediante una única CPU. Los procesos se intercalan en el tiempo para dar la apariencia de ejecución simultánea. Esto se consigue repartiendo el tiempo que es utilizada la CPU por cada proceso durante una rodaja de tiempo. Aunque en cada instante sólo hay un proceso ejecutando, debido a la velocidad y al poco tiempo que usa cada proceso la CPU, el usuario tiene la sensación que los procesos están ejecutando simultáneamente. Multiprocesamiento: a diferencia de la multiprogramación en la que solamente se hace uso de una única CPU, en el multiprocesamiento se tienen varios procesadores. Procesamiento distribuido: este tipo de procesamiento es mucho más complicado ya que trata de distribuir todos los recursos de que contiene el conjunto distribuidos (CPU’s) como si fuese una única máquina. Sistema de Ficheros Junto con los procesos otra de las características fundamentales que definen el funcionamiento del computador es el sistema de ficheros. Los procesos guardan sus datos en archivos, por lo que esta información se debe almacenar de forma lógica. Es decir, es la forma en la que se almacena y organizan los datos. Un fichero es una colección de bytes relacionados bajo un nombre. Los ficheros son almacenados en directorios (popularmente conocidas como carpetas). Las operaciones básicas respecto del sistema de ficheros son: Creación y destrucción de un fichero. Apertura y cierre de un fichero. Lectura y escritura de un fichero. Eventos En un S.O. a lo largo de la ejecución de un proceso es posible que se puedan producir distintos tipos de eventos. Para entender el funcionamiento de los eventos hay que conocer los siguientes conceptos: 1. Modos de ejecución: Modo usuario: este es un modo limitado sin el acceso directo al hardware. La CPU no puede ejecutar todo el juego de instrucciones. Modo superusuario: este es un modo privilegiado en el que se tiene acceso al hardware. La CPU tiene acceso a todo el juego de instrucciones. Es decir, en este modo se pueden acceder a recursos que no son accesibles en modo usuario. 6 Introducción a los Sistemas Operativos 2. Tipo de eventos: Síncronos: están vinculados con el proceso en ejecución. Por ejemplo se está ejecutando el proceso A y se produce un fallo por división entre 0. Por tanto, este fallo está relacionado con el proceso que se está ejecutando. Otro ejemplo es una llamada de lectura relacionada con el proceso en ejecución. Dentro de los eventos síncronos se encuentran las operaciones en modo usuario y las llamadas. Si bien es cierto que también existen llamadas asíncronas, principalmente la mayoría son síncronas. o Operaciones en modo usuario: estas operaciones se caracterizan por realizarse en modo usuario. o Llamadas: instrucciones especiales usadas por el sistema que le permiten comunicarse con los programas. Ejemplo: el proceso A requiere que se lea una zona de memoria del disco. A diferencia de las anteriores, las llamadas se realizan en modo superusuario. Asíncronos: no están relacionadas con el proceso en ejecución. Por ejemplo si se está ejecutando el proceso A y el usuario conecta un disco duro. Se producirá una interrupción ajena al proceso A para leer el disco. Dentro del grupo de eventos asíncronos se encuentran las Interrupciones. o Interrupciones: tienen mayor nivel de prioridad que las llamadas y operaciones en modo usuario. Ejemplo: cuando se finaliza una operación de entrada/salida se produce una interrupción para notificar sobre este hecho. Es decir, que cuando se ha terminado de leer del disco unos datos y estos ya están listos para ser usados por un proceso, entonces se produce una interrupción. El motivo de que sean asíncronas es que estos datos que se están leyendo son para el proceso A, que está bloqueado, mientras que actualmente está ejecutando otro proceso B que no tiene relación con los datos que se acaban de leer. 3. Prioridad: existen distintos niveles de prioridad. Los procesos y eventos más prioritarios serán antes atendidos que los menos prioritarios. Tabla resumen de estos conceptos (modo de ejecución, nivel de prioridad, tipo de evento): Modo de Prioridad Eventos ejecución Interrupciones Superusuario Muy alta Asíncronos Principalmente Llamadas Superusuario Alta síncronos Operaciones Usuario Normal Síncronos modo usuario 7 Gestión de procesos, de memoria, y de Entrada / Salida Gestión de procesos, de memoria, y de Entrada/Salida Gestión de procesos Concepto de proceso El proceso es un concepto dinámico que se refiere a un programa en ejecución. La ejecución de un programa (secuencia de instrucciones) puede dar lugar a la creación de uno o más procesos. Cuando un usuario solicita al SO la ejecución de un programa, éste es cargado en memoria desde un dispositivo de almacenamiento y da lugar a la creación de un proceso, el cual puede a su vez invocar la ejecución de otros procesos propios del programa o del SO. Estados de un proceso El objetivo de los SO multitarea y de tiempo compartido es mantener un proceso en ejecución en todo momento, con el fin de maximizar el aprovechamiento del procesador. A medida que un proceso se ejecuta, éste cambia de estado. Un proceso puede encontrarse en alguno de estos estados: Nuevo (NEW): el proceso está siendo creado, se está generando la estructura de control y se le están asignando recursos. En ejecución (RUNNING): se están ejecutando las instrucciones en el procesador, hasta que agote el tiempo asignado u otro evento provoque su interrupción. En espera (WAITING) o bloqueado: el proceso no puede ejecutarse hasta que ocurra un suceso (la terminación de una operación de E/S, por ejemplo). Listo (READY): el proceso podrá ejecutarse en cuanto el SO le asigne el uso del procesador. Suspendido (SUSPENDED): el proceso está cargado en memoria virtual (suspendido en espera o suspendido listo para su ejecución), debe cargarse en memoria principal para poder pasar a otro estado (listo o en espera). Terminado (TERMINATED): el proceso ha finalizado, se están liberando recursos y eliminando su estructura de control. Gestión de procesos, de memoria, y de Entrada / Salida La siguiente imagen muestra un ejemplo del paso de un estado a otro para tres tipos de estados: Inicialmente el proceso P (con prioridad muy alta), se encuentra en ejecución pero, pasado un tiempo debido a que requiere leer del disco el proceso se bloquea. La razón por la que pasa a bloquearse es para ceder el procesador mientras tanto a otros procesos. Estando el proceso bloqueado se produce el fin de la lectura del disco que requería el proceso P. Por tanto, el proceso pasa a ponerse en la lista de procesos listos. Desde la lista de procesos listo, el planificador es el encargado de decidir que proceso es que tiene que pasar a ejecutar. Debido a que el proceso P tiene mayor prioridad que todos los demás, expulsa al proceso que está actualmente en ejecución pasando P de listo a en ejecución. Bloque de control de proceso El S.O. agrupa toda la información que necesita conocer sobre un proceso en una estructura (descriptor) de datos denominada Bloque de Control de Proceso (BCP). La información que contiene un BCP incluye: Identificación del proceso Identificador del proceso (PID). Identificador del proceso que lo creó (proceso padre), a quien debe devolverse el control tras la finalización del proceso. 9 Gestión de procesos, de memoria, y de Entrada / Salida Identificador del usuario. Información del estado del procesador (PSW Program Status Word) Registros visibles para el usuario. Registros de Control y Estado: contador de programa, códigos de condición (signo, acarreo, igualdad, desbordamiento), e información de estado (habilitación de interrupciones, modo de ejecución). Punteros de pila. Información de control del proceso Información de planificación y de estado: estado del proceso, prioridad, tiempo en espera y de uso de procesador, suceso que provoca el cambio de estado. Comunicación entre procesos. Privilegios de empleo de espacio de memoria, instrucciones privilegiadas, y servicios y utilidades del sistema. Gestión de memoria (direcciones de memoria asignadas al proceso). Propiedad de los recursos y su utilización: archivos abiertos, información contable (tiempo de uso total del procesador). Toda esta información cuando el proceso no está en ejecución, se almacena en el BCP que está actualizado. Cuando el proceso está en ejecución el estado del proceso reside en los registros, y su estado varía de acuerdo al flujo de las instrucciones máquina. En este caso la copia que reside en el BCP no está actualizada. Cuando se detienen la ejecución de un proceso, para ejecutar otro, el S.O. actualiza la copia del estado en el BCP. Planificación de procesos Conforme los procesos entran en el sistema se colocan en una cola de trabajos. Los procesos que se encuentran listos para ejecutarse se encuentran en la cola de procesos listos. El planificador es el encargado del proceso de selección. Es decir, se encarga de seleccionar un proceso de entre todos los que hay en la lista de procesos listos para ejecutar. Para elegir qué proceso que pasa a ejecución el planificador hace uso de unos criterios de planificación. Los algoritmos de planificación más usuales son: Primero en llegar, primero en ser servido (FCFS, First-Come, First-Served). Primero el más corto (SRTN, Shortest Remaining Time Next). Por reparto de tiempo (RR, Round Robin). Por prioridades (ED, Event Driven). Por colas múltiples (MLQ, Multi-Level Queues). Concurrencia de procesos En sistemas multiprogramados los procesos se intercalan en el tiempo para dar la apariencia de ejecución simultánea. Competencia entre procesos Los procesos entran en conflicto cuando compiten por un mismo recurso. Cada proceso deberá utilizar el recurso en el orden que se le asigne y dejarlo en el mismo estado en que lo encontró para no afectar al resto de los procesos competidores. 10 Gestión de procesos, de memoria, y de Entrada / Salida Lo cierto es que esto no es siempre así y, se pueden producir condiciones de carrera. Las condiciones de carrera es un problema que surge cuando varios procesos acceden de forma concurrente y sin coordinación a recursos compartidos. Otro problema habitual son los interbloqueos. Imaginemos dos procesos A y B que requieren de dos recursos X e Y. Cada proceso requiere de ambos recursos simultáneamente. En el caso de que el proceso A tenga acceso al recurso X, y el proceso B tenga acceso al recurso Y. Entonces, ambos procesos tendrán un recurso pero están a la espera de que el otro proceso libere el otro recurso. Esto implica que ambos procesos se queden bloqueados indefinidamente. Mecanismos de exclusión mutua y sincronización Estos mecanismos tratan de solventar los problemas que se acaban de plantear. Estas son algunas de las opciones: Soluciones software: el programador es el responsable de coordinar la ejecución de los procesos y cumplir la exclusión mutua. Provocan una fuerte carga de trabajo añadido al procesador, por lo que son muy ineficientes. Soluciones hardware: se emplean instrucciones privilegiadas del juego de instrucciones del procesador (inhabilitación de interrupciones, instrucción Test and Set, lacht o cerrojos). Son bastante eficientes por ser instrucciones máquina, aunque no resuelven el problema del interbloqueo o la inanición. Soluciones basadas en rutinas del SO: las técnicas más comunes son el empleo de semáforos y monitores, y paso de mensajes entre procesos. o Semáforos: proporcionan un mecanismo sencillo de exclusión mutua y a la vez un método de sincronización de procesos. Pensemos por ejemplo en un proceso P1 que escribe en un buffer (registro intermedio de tamaño limitado) del cual debe leer un proceso P2. Para asegurar que el proceso P2 no realizará la lectura hasta que P1 haya llenado el buffer puede utilizarse el mecanismo de semáforos anteriormente descrito. Si P2 trata de leer sin que P1 haya escrito, entonces el semáforo bloquea a P2. Cuando P1 ha terminado de escribir el registro, el semáforo bloquea a P1 para que pueda leer P2. o Monitores: son estructuras de control más sencillas de manejar que se encuentran implementadas en la mayoría de los SO y lenguajes de programación. El monitor permite controlar la secuencia en la que los procesos acceden a los recursos y además el modo en que se accede a él. Sincronización La sincronización se refiere al comportamiento de un proceso al ejecutar una llamada al sistema para el envío / recepción de un mensaje. Tanto en un caso como en otro, después de ejecutar la llamada al sistema, el proceso puede interrumpirse o continuar su ejecución. Se emplean tres estrategias diferentes: Envío bloqueante, recepción bloqueante: tanto el proceso emisor como el receptor se interrumpen después de ejecutar la llamada hasta que se produzca la entrega del mensaje. Proporciona una sincronización fuerte entre procesos. Envío no bloqueante, recepción bloqueante: el proceso emisor (P1) continua su ejecución, el receptor (P2) se bloquea desde que invoca receive hasta que un mensaje es recibido. El proceso receptor (P2) envía un mensaje de confirmación tras la recepción. El proceso emisor (P1) debe comprobar que existe tal mensaje de confirmación. Envío no bloqueante, recepción no bloqueante: ambos procesos continúan su ejecución. 11 Gestión de procesos, de memoria, y de Entrada / Salida Gestión de memoria Requisitos de la gestión de memoria En los sistemas de tiempo compartido es vital una gestión efectiva de la memoria. Los requisitos que debe satisfacer un sistema de gestión de memoria son: Reubicación Protección Compartición Organización lógica Organización física Un programa reside en un dispositivo de almacenamiento. Es preciso cargarlo en memoria y crear un proceso para su ejecución. A medida que el proceso se ejecuta se realizan accesos a memoria para cargar instrucciones y datos. Cuando el proceso finaliza el espacio que ocupaba se marca como disponible. Reubicación En los S.O. multitarea cuando se realiza la carga del programa la dirección inicial de memoria donde comenzará su almacenamiento no se conoce a priori. El S.O. decidirá, en función del estado del sistema, donde debe colocarse. La siguiente figura muestra un ejemplo de reubicación en distintas zonas de memoria. Es decir, de las posiciones relativas de memoria en las que se sitúan distintas operaciones: Protección La multiprogramación debido a que permite que varios procesos ejecuten de forma concurrente mejora considerablemente la eficiencia. Pero, para que esto se pueda realizar ha de existir una protección como por ejemplo cuando se acceden a regiones de memoria pertenecientes a otros procesos. Compartición Pueden existir regiones de memoria compartidas donde esté permitido el acceso, en las que habrá que controlar el modo en que se accede (lectura o escritura). La existencia de estas regiones permite un aprovechamiento más eficiente de un recurso escaso (la memoria), evitando que se mantengan dos copias separadas de instrucciones o datos comunes a varios procesos. Organización lógica El espacio de memoria de un sistema se organiza como un espacio de direcciones lineal, independientemente de que se trate de memoria principal o virtual. La organización lógica de los procesos es modular (instrucciones, datos, y pila). La organización modular facilita la reubicación, 12 Gestión de procesos, de memoria, y de Entrada / Salida protección y compartición de regiones de memoria. Durante la ejecución del proceso sólo se requerirá que algunos de los módulos que lo componen se encuentren en ese momento en memoria principal, cuando no sean necesarios pueden descargarse y ceder el espacio que ocupaban a otros módulos del mismo proceso u otro diferente. Organización física Todas las referencias a memoria que realiza un proceso son direcciones lógicas, que se traducirán dinámicamente en direcciones físicas durante su ejecución. Como se discutió en el primer tema la implantación física de la memoria de un sistema sigue una jerarquía de memoria. En los últimos niveles de la jerarquía (memoria principal y virtual) la responsabilidad de la transferencia de información entre niveles es responsabilidad del S.O. Tabla de páginas En la mayoría de los sistemas hay una tabla de páginas por proceso, que reside en memoria principal. El Bloque de Control de Proceso mantendrá un puntero a la dirección de memoria inicial de la tabla de páginas (Registro Base de Tabla de Páginas, RBTP). Para realizar la consulta de la tabla de páginas se suma el número de página al RBTP. Las instrucciones para cargar y modificar los registros de la tabla de páginas son instrucciones privilegiadas que sólo puede invocar el SO. El problema de este esquema es que son necesarios dos accesos a memoria para acceder a una dirección de memoria: uno para leer la tabla de páginas, y otro para realizar la operación deseada. Para remediar esta situación se necesita hardware de paginación dedicado. Se emplea una memoria caché especial de alta velocidad conocida como buffer de translación adelantada (Translation Lookaside Buffer, TLB). Cada registro del TLB se compone de una clave y un valor. El número de registros oscila entre 8 y 2048. Los registros contienen sólo algunas de las entradas de la tabla de páginas. Cuando se requiere la traducción de una dirección lógica se realiza primero la búsqueda en el TLB, si está resulta positiva se obtiene de forma directa la dirección del marco que contiene la página, eliminándose la necesidad del primer acceso a memoria y aumentando la eficiencia en más de un 90%. Si la búsqueda en la TLB es negativa se produce un acceso a memoria para consultar la tabla de páginas del proceso. El rendimiento de todo el sistema depende en gran medida de la tasa de aciertos del hardware de paginación. 13 Gestión de procesos, de memoria, y de Entrada / Salida Memoria virtual Cuando se emplea memoria virtual la estructura de la tabla de páginas varía ligeramente. Algunas de las páginas del proceso pueden encontrarse en memoria principal mientras que otras pueden encontrarse en memoria virtual, por lo que será necesario incluir un bit de control que indique esta condición. Si el bit de presencia está a 0 se produce un fallo de página, y el proceso en ejecución es interrumpido hasta que la página en cuestión sea cargada en memoria principal. La dirección de esta página en el dispositivo de almacenamiento secundario es proporcionada por una tabla del mapa de archivo asociada. El gestor de memoria analizará que páginas de memoria del proceso son necesarias para su ejecución, manteniendo el resto en el espacio de memoria virtual hasta que se produzca un fallo de página. Cuando este se produce se realiza un cambio de contexto, tomando el control del procesador el SO. Se ejecutará entonces una rutina de tratamiento de fallo de página que realizará las siguientes acciones: Localizar la página faltante en el dispositivo de almacenamiento secundario (memoria virtual). Localizar un marco de página libre: o Si existe, asignarlo o Si no se encuentra un marco libre, seleccionar un marco víctima mediante un algoritmo de reemplazo. o Escribir en la memoria virtual la página víctima y actualizar las tablas de página y marcos. o Transferir la página faltante al marco de memoria liberado y actualizar las tablas de página y marcos. Devolver el control al proceso de usuario. Para aumentar la eficiencia del proceso la tabla de páginas incluye un bit de modificación. Si este está activo y la página va a ser reemplazada se produce la transferencia a memoria virtual. Si el bit indica que la página no ha sido modificada simplemente se sobrescribe por la nueva (a fin de cuentas la página en cuestión está disponible en el dispositivo de almacenamiento desde donde fue cargada). Hiperpaginación Es habitual que durante las transferencias entre memoria principal y virtual el SO otorgue a otro proceso el procesador para su ejecución para evitar perder ciclos de instrucción. En sistemas con alta carga de trabajo puede darse un fenómeno denominado hiperpaginación. La hiperpaginación se produce cuando un proceso no cuenta con un número suficiente de marcos de página, por lo que continuamente requiere transferencias entre memoria virtual y principal. La hiperpaginación provoca que disminuya el aprovechamiento de procesador por el aumento de operaciones de E/S, por lo que el SO aumenta el grado de multiprogramación (acepta más procesos en la cola de listos). La entrada de nuevos procesos aumenta la demanda de marcos de página, generando hiperpaginación sobre los demás procesos. Se genera un círculo vicioso, el sistema demanda más procesos por producirse más hiperpaginación, lo que a su vez genera hiperpaginación. Gestión de Entrada/Salida Las operaciones de E/S Es conveniente recordar en este momento todos los elementos hardware involucrados en una operación de E/S: El bus de interconexión 14 Gestión de procesos, de memoria, y de Entrada / Salida El controlador del bus El puerto de E/S y sus registros intermedios El control y supervisión de la operación de E/S mediante técnicas de E/S programada mediante el empleo de interrupciones El controlador DMA El problema de la E/S se aborda aplicando los principios de abstracción, encapsulamiento, y diseño por capas. La abstracción permite manejar un conjunto uniforme de dispositivos mediante un conjunto de funciones estandarizadas del SO: la interfaz. La operación sobre dispositivos diferenciados, se realiza mediante módulos del núcleo del S.O., llamados controladores de dispositivo (device driver). El encapsulamiento permite realizar las operaciones de E/S, a través de llamadas al S.O., que empleará la interfaz adecuada para facilitar la comunicación con el driver del dispositivo y así completar la operación. De este modo la inclusión de un nuevo dispositivo de E/S sólo requiere el desarrollo de un driver específico para el dispositivo sin alterar la estructura del SO. El subsistema de E/S del Núcleo El núcleo del S.O. proporciona diferentes funciones de apoyo para la realización de operaciones de E/S. Entre los servicios que proporciona revisaremos la planificación de operaciones de E/S, el empleo de buffers, caches y spool, los mecanismos de reserva de dispositivo, y el manejo de errores. Planificación de E/S La planificación de E/S consiste en la determinación del orden en que deben producirse esas operaciones demandadas por los procesos concurrentes. Una buena planificación contribuye a reducir el tiempo de espera de los procesos y la duración de las operaciones de E/S, aumentando la eficiencia global del sistema. Habitualmente los SO habilitan una cola de solicitudes para cada dispositivo. El planificador de E/S es el encargado de mantener el orden de esa cola. Si la operación de E/S se realiza mediante interrupciones la planificación viene guiada por la prioridad de la interrupción. Si se emplea DMA se suelen priorizar las trasferencias a memoria virtual. Especial atención se aplica a la planificación de los dispositivos de almacenamiento (discos duros), que se expondrá más tarde. Uso de buffers Un buffer es una región de memoria en la que se almacenan los datos mientras se realiza la transferencia entre dos dispositivos o entre un dispositivo y memoria. El empleo de buffers se debe a tres motivos fundamentales. 1. Cuando existe una diferencia entre la velocidad de proceso de datos de una fuente, y la velocidad a la que el almacenamiento u origen de esos datos es capaz de proveerlos. El buffer permite desacoplar dispositivos que funcionan a diferentes velocidades, o bien son asincrónicos (funcionan de forma independiente sin sincronizar operaciones). La fuente de datos también puede ser un proceso que genera gran cantidad de información, que de tener que ejecutarse a la velocidad del dispositivo dilataría su finalización. 2. Puede funcionar como adaptador entre dispositivos de diferente tamaño de transferencia de la unidad de datos. El diferente tamaño de datos puede producirse entre dispositivos de tipo carácter o tipo bloque, o incluso entre dispositivos de diferente tamaño de bloque. 3. El tercer empleo del buffer es como almacenamiento intermedio para transferencias DMA hacia dispositivos externos. 15 Gestión de procesos, de memoria, y de Entrada / Salida Uso de caches Un cache es una región de memoria de alta velocidad que contiene datos. Los dispositivos de almacenamiento (discos, CD-ROM) suelen tener asociado una caché de pequeño tamaño. Cuando se invoca una operación de escritura los datos pueden ser almacenados en la caché para reducir la frecuencia de accesos físicos al dispositivo hasta que esta caché se ha llenado. De igual forma, cuando se invoca una operación de lectura, no solamente se leen los datos solicitados, sino que la lectura continua hasta llenar la cache. El propósito una vez más es reducir la frecuencia del acceso físico, apoyándose en la teoría de localidad de referencia espacial. Las caches son gestionadas directamente por el controlador de dispositivo (device controller) de forma transparente al SO. Uso de spool y reserva de dispositivo El spool es un buffer donde se almacenan datos de salida de un dispositivo que no acepta que se intercalen los accesos, debiendo ser estos secuenciales. El ejemplo más habitual del spool se realiza con las impresoras. Las aplicaciones que requieren un servicio de impresión colocan sus datos en el spool de impresión. El SO dispone de rutinas para la gestión del spool, de tal forma que cuando el dispositivo finaliza uno de los trabajos, el siguiente es enviado al dispositivo. La reserva del dispositivo la gestionan estas rutinas, pudiendo también realizarse implantando un mecanismo de prioridades. Manejo de errores Los dispositivos y transferencias de E/S pueden producir diversas condiciones de error, ya sean transitorias (sobrecarga) o permanentes (daño físico). Las situaciones transitorias pueden provocar un reintento posterior de la operación, las situaciones permanentes pueden dar lugar al bloqueo del SO. Es habitual que una llamada a un procedimiento de E/S devuelva un código de condición que representa información acerca del estado de la operación. La información que devuelve este código de error puede ser muy detallada (los SO UNIX emplean hasta 100 condiciones de error documentadas) o bien prácticamente inexistente (BSOD, Blue Screen Of Death, la pantallita azul de MS), dependiendo del soporte del SO. 16 Gestión de archivos Gestión de archivos Concepto de archivo Un sistema puede contener información en diversos tipos de medios de almacenamiento masivo, cada uno de los cuales tienen métodos diferentes de organización de los datos y de acceso a los mismos. El SO abstrae las diferencias físicas entre los dispositivos de almacenamiento proporcionando una visión lógica uniforme, cuya unidad fundamental es el archivo. Un archivo es un conjunto de información relacionada almacenada en un dispositivo de almacenamiento secundario identificado por un nombre reconocible por el usuario o identificación manipulable por un proceso de usuario. Un archivo tiene asociado una serie de atributos, dependiendo del S.O., siendo los más usuales: Nombre simbólico: reconocible por el usuario. Tipo: esta información depende de los tipos que maneje el SO (ejecutable, texto, librería dinámica, tipo MIME... ). Ubicación: un apuntador a la dirección de dispositivo que lo almacena y la dirección inicial dentro del dispositivo. Tamaño: longitud en bytes o bloques, dependiendo del SO. Puede diferenciarse entre tamaño asignado al archivo y tamaño actual en uso. Derechos de acceso: permisos sobre ejecución, lectura, o escritura del archivo por parte de los usuarios del sistema Hora, fecha, e identificación del usuario: sobre la creación, modificación, o último acceso, útil para propósitos de contabilidad y seguridad. Directorio de archivos Estos atributos se almacenan en estructuras conocidas como directorios. Los directorios son archivos que contienen esta información y que son gestionados directamente por el SO. La manipulación de un directorio o archivo por parte de un usuario (proceso) se realiza mediante llamadas a las rutinas de gestión de archivo del S.O. Las operaciones básicas que se realizan sobre un archivo son: Creación: se requiere en primer lugar la localización de espacio libre dentro del sistema de archivo, e insertar una nueva entrada en el directorio de archivos. Escritura: una vez creado el archivo puede solicitarse al SO la escritura de información dentro del archivo. El SO mantiene un puntero dentro de la estructura de archivo a partir del cual debe realizarse la siguiente escritura. Lectura: se invoca una llamada al SO especificando el nombre simbólico de archivo. El SO utiliza esta información para contrastarla con la almacenada en el directorio. Se verificarán los derechos de acceso y se obtendrá la dirección del archivo dentro del dispositivo de almacenamiento. El SO mantendrá un puntero dentro del archivo a la última posición leída (habitualmente se mantiene un único puntero para ambos casos, lectura o escritura). Eliminación: se invoca la operación mediante una llamada al SO, éste buscará la entrada correspondiente dentro del directorio y la eliminará. Organización de directorios La organización de directorios más empleada es la estructura en árbol. En este modelo un directorio maestro contiene punteros a otros (sub)directorios, que a su vez pueden apuntar a otros (sub)directorios. La identificación de un archivo puede ser relativa (directorio actual) o absoluta (especifica ruta completa desde directorio maestro). Gestión de archivos Acceso a archivos Existen varias formas de acceder a la información contenida en un archivo. El método más sencillo es el acceso secuencial. La información del archivo es accedida en el orden en que se encuentra en el dispositivo físico. El SO mantiene un puntero a la posición actual en la que se está produciendo la operación de lectura/escritura. Cuando la operación finaliza el puntero se adelanta a la siguiente posición. El modelo más empleado hoy en día es el acceso directo. Este modelo permite escribir o leer en posiciones arbitrarias, no existen restricciones en el orden en que puede accederse dentro del archivo. Sistema de archivos La visión que ofrece el SO al usuario es una abstracción independiente de la organización física de los dispositivos de almacenamiento. La organización del sistema de archivo es característica del SO. Algunos ejemplos de los sistemas de archivo más extendidos son: FAT (File Allocation Table): popularizada por los SO MS-DOS y Windows 9x/Me en sus diversas variantes de 12, 16, y 32 bits y opcionalmente en Windows XP. NTFS (NT File System): empleado por los SO Windows NT/2000 y opcionalmente en Windows XP. ISO 9660: estándar empleado en dispositivos cd-rom, existen algunas extensiones a la norma básica, como Joliet (propietario de MS) o El Torito (botable, CD-ROM “arrancables” sin SO). Ext2fs (Extended Second File System): empleado por el SO Linux. HPSF: empleado por el SO OS/2 de IBM. UFS: empleado por el SO SunOS de Sun Microsystems. NCPFS (Network Core Protocol File System): sistema de archivo distribuido propiedad de Novell. SMBFS (Session Message Block File System): sistema de archivo distribuido propietario de Microsoft. NFS (Network File System): sistema de archivo distribuido normalizado en SO Unix, desarrollado por Sun. El mejor ejemplo que podemos encontrar hoy en día de esta estructura nos la proporciona el SO Linux. Linux utiliza una estructura de archivo lógica (Virtual File System, VFS), que permite integrar dentro de su árbol de directorios otros sistemas de archivo distintos de su sistema nativo (ext2fs). Para ello el núcleo del SO dispone de módulos con capacidad para gestionar otros sistemas de archivo (FAT, NTFS, HPSF, UFS, ISO 9660…) de forma transparente a la capa superior, y que manejan otros módulos de más bajo nivel que permiten controlar los diversos dispositivos físicos. Asignación de espacio a archivos El problema de la asignación reside en la forma en que se almacenan los archivos, de forma que se aproveche el espacio de forma óptima y el acceso sea suficientemente rápido. Los métodos más comunes son la asignación continua, enlazada e indexada. Cada cual posee ventajas e inconvenientes, por lo que generalmente se emplea más de un método. 18 Gestión de archivos A la hora de escoger una estrategia de asignación deben tenerse en cuenta una serie de premisas: La contigüidad del espacio aumenta el rendimiento de las operaciones de acceso. El empleo de unidades elementales pequeñas de almacenamiento aumenta el tamaño de las estructuras que gestionan la información de asignación. El empleo de unidades elementales de asignación de tamaño fijo simplifica la reasignación de espacio. El empleo de unidades elementales pequeñas de tamaño fijo reduce la fragmentación. Asignación contigua Este método de asignación requiere que cada archivo ocupe un conjunto de bloques contiguos en el dispositivo de almacenamiento. Las entradas de directorio consisten en una dirección inicial y una cuenta de bloques ocupados. Los problemas de este tipo de asignación son de dos tipos: Encontrar espacio libre para un archivo nuevo: se resuelve mediante los mismos algoritmos (First Fit, Best Fit, Next Fit). Esto produce fragmentación externa. La siguiente figura muestra un ejemplo de este tipo de fragmentación, en la que inicialmente se tienen 3 procesos (Hola.txt, Seguridad.docx, y Calulos.xl). El usuario elimina el documento de Seguridad y crea uno nuevo llamado Examen.docx. Como se puede apreciar quedan zonas azules que están siendo desperdiciadas. Incremento del tamaño del archivo: Un archivo que inicialmente fue asignado limitando con espacio en uso puede aumentar su tamaño, no existiendo espacio contiguo asignable. Una solución consistiría en mover el archivo a otra ubicación con mayor espacio libre, o en compactar el sistema de archivo Asignación enlazada Con asignación enlazada cada archivo es una lista enlazada de bloques de disco que pueden emplazarse en cualquier posición. El directorio contiene un puntero al primer y último bloque de cada archivo. Cada bloque contiene un puntero al inicio del siguiente bloque. Para acceder a un archivo se accede al directorio, obteniéndose la dirección del primer bloque, a través del cual se obtiene la dirección del siguiente y así sucesivamente. El último bloque marca el final del archivo (End Of File, EOF). Si el archivo crece se le van asignado bloques, cada uno apuntando al siguiente. De esta forma se elimina el problema de la fragmentación externa. La siguiente figura muestra un ejemplo de asignación enlazada en la que hay dos procesos A (azul), y B (gris): 19 Gestión de archivos El problema de la asignación enlazada es que hay que recorrer los bloques previos para acceder a una posición determinada dentro del archivo, lo que además incluye un desplazamiento de la cabeza a la posición de cada uno de los bloques. Un último inconveniente es que un fallo en el apuntador del bloque sería desastroso: podrían mezclarse porciones de diferentes archivos en una operación de lectura/escritura. El sistema de archivo FAT es una variante de la asignación enlazada. Asignación indexada La asignación indexada se basa en el empleo del bloque índice. Cada archivo posee su propio bloque índice, que consiste en una lista de direcciones (punteros) de bloques de disco. El directorio asocia el nombre de archivo a la dirección del bloque índice. Para acceder a una posición dentro del archivo se emplea el puntero al bloque de disco contenido en el índice. Conforme aumenta el tamaño de archivo se le añaden entradas al bloque índice. La siguiente figura muestra un ejemplo de asignación indexada con dos procesos A (azul), y B (gris). Se puede observar como el bloque índice apunta a los distintos bloques de disco. La ventaja de la asignación indexada es que implementa el acceso directo sin producir fragmentación. Su mayor defecto es el espacio necesario para almacenar los bloques índice, que sólo contienen apuntadores. El espacio desaprovechado es incluso superior al que producía la asignación enlazada, ya que hasta el archivo más pequeño (un bloque de disco) requiere un bloque índice completo (los punteros no utilizados toman valor NULL). La asignación indexada se emplea generalmente en los sistemas de archivo de los SO de la familia UNIX. El esquema requiere que los bloques índices se carguen en memoria cuando se realiza la apertura del archivo para mejorar el desempeño del sistema. Su mayor virtud es la ausencia de fragmentación y la capacidad de gestión de grandes tamaños de archivo. 20 Gestión de archivos Protección y seguridad La necesidad de protección de archivo es la consecuencia de la posibilidad de acceso a los mismos. Existen estrategias extremas como proporcionar acceso libre sin ninguna restricción, o la prohibición absoluta de acceso a archivos de otros usuarios. Otras más elaboradas permiten asignar niveles de protección respecto al tipo de acceso y la identidad del usuario que accede. El paso previo para cualquier esquema de protección de acceso basado en la identidad del usuario requiere un paso previo: la identificación y verificación de la identidad del usuario. Las dos más empleadas son los grupos de acceso y las listas de control de acceso. 21 El Sistema Operativo MS - DOS El Sistema Operativo MS-DOS El MS-DOS es un sistema Monotarea y Monousuario: Se utiliza en ordenadores personales (PC’s). El hardware es de bajo costo. Objetivo: maximizar la utilización de la CPU y de los periféricos, brindar comodidad y rapidez de respuesta a los usuarios. El DOS es uno de los sistemas operativos de microordenadores más difundido del mercado. Está diseñado para ser utilizado en ordenadores IBM Personal Computer (IBM PC) y compatibles. DOS es la abreviación de las palabras inglesas Disk Operating System, que significa Sistemas Operativo en Disco. Como su nombre indica, es un sistema que “viene” en uno o varios discos, es decir que se puede poner y cambiar con facilidad. Aunque esto parezca una tontería, hay que tener en cuenta que cuando nació el DOS, e incluso hoy en día, muchos sistemas llevan implementado el Sistema Operativo en el propio hardware de la máquina, por lo que no se puede cambiar o actualizar de manera sencilla (por ejemplo: PlayStation, teléfonos móviles GSM, reproductores de CD o DVD, los sistemas de a bordo de los automóviles, etc.). En el mercado existen varias compañías que ofrecen diferentes tipos de DOS. Entre los más conocidos están el PC-DOS desarrollado por IBM, el DR-DOS desarrollado por Digital Research y el MS-DOS desarrollado por Microsoft. Formato de los Comandos Uno de los medios que provee el sistema operativo para comunicarse con el ordenador son los comandos. Un comando es una orden que debe ser escrita en el teclado del ordenador para ejecutar una tarea específica. El lugar donde se introducen los comandos es la línea de comandos. La línea de comando puede ser usada cuando se presenta en pantalla el símbolo del sistema seguido del cursor, esto se denomina PROMPT del Sistema. El cursor es una pequeña línea intermitente que aparece en la línea de comandos. Indica la posición del próximo carácter que será escrito desde el teclado. A medida que se va escribiendo un comando, el cursor se va desplazando hacia la derecha. Línea de comandos: C:\>_ Cuando el símbolo del sistema aparece en la pantalla, significa que el ordenador está listo para recibir una orden por medio de un comando. Para que el comando sea ejecutado debe presionarse la tecla ENTER (INTRO) después de escribirlo. El Sistema Operativo MS - DOS Anatomía de un Comando: un comando es una palabra clave, que puede ser una palabra completa o una abreviatura de una o más palabras; puede estar seguida de elementos que especifican información adicional necesaria para la ejecución del comando. En un comando pueden distinguirse los siguientes elementos: El nombre de un comando. Los parámetros del comando. Los modificadores del comando. Nombre: identifica la tarea o acción que se desea ejecutar. Es el elemento del comando que debe ser especificado en primer lugar. Por ejemplo: ver, type, copy, etc. Parámetros: especifican información adicional requerida por el comando. Los parámetros generalmente identifican a los archivos, directorios, unidades de disco, etc. que están involucrados en la ejecución del comando. Los parámetros se escriben después del nombre del comando. Por ejemplo: el comando type muestra en pantalla el contenido de un archivo, así el nombre del archivo constituye un parámetro del comando. Si se desea examinar el contenido del archivo llamado RESUMEN, se deberá escribir el siguiente comando: Cuando un comando requiere de más de un parámetro, estos deberán ser especificados en el orden adecuado, si el orden es alterado, la ejecución del comando no producirá el resultado esperado. Existen comandos en los que la especificación de algunos de sus parámetros es opcional. Si estos no se especifican, el comando tomará ciertos valores por defecto. Modificadores: permite alterar la forma en que un comando va a ejecutar una acción. Un modificador se especifica en un comando por medio de una barra diagonal (/) seguida de una letra o número. Por ejemplo: el comando dir permite listar los nombres de los archivos que están dentro del directorio. Cuando la lista es muy larga, los nombres se van sucediendo a toda velocidad por la pantalla y serán desplazados hacia arriba por otros nombres, de manera que no podremos verlos todos. Si se especifica el modificador /P al escribir el comando dir (“c:\>dir /P”), la lista de nombres llenará completamente la pantalla y se detendrá indicándonos que si pulsamos una tecla pasará a la siguiente pantalla de nombres, es decir se desplegará pantalla por pantalla. Comandos del MS-DOS Convenciones que se utilizarán El nombre del comando se presenta en negrita y cursiva. Los parámetros que se usan con mayor frecuencia son: Unidad: nombre de la unidad de disquete o unidad de disco duro. Siempre es una letra seguida de dos puntos (‘:’) (por ejemplo: A:, B:, C:, etc.). Camino: la ruta de acceso que deberá utilizar el sistema operativo para localizar un archivo o directorio. Archivo: nombre de un archivo. 23 El Sistema Operativo MS - DOS Texto: cadena de caracteres. Generalmente encerradas entre comillas (“”). Origen: ubicación de archivos que serán usados como información de entrada requerida para la ejecución de un comando. Puede ser: nombre de archivo, nombre de directorio, identificación de la unidad de disco o alguna combinación de estos. Destino: la ubicación de los resultados producidos por la ejecución de un comando. Puede ser: nombre de archivo, nombre de directorio, identificación de la unidad de disco o alguna combinación de éstos. Los parámetros y modificadores encerrados entre corchetes ‘[]’ son opcionales. Los símbolos como ‘;’, ‘=’, ‘/’, ‘:’, ‘,’, etc., deben ser escritos tal como aparecen en la sintaxis del comando. En ocasiones los valores que puede tomar un parámetro están restringidos. En esos casos se usa el símbolo ‘|’ para separar las diferentes alternativas. Debe escribirse un solo valor sin el símbolo. Debido a que existen varias versiones del sistema operativo MS-DOS, es posible que algún comando de los aquí explicados no sea soportado en alguna versión antigua. Comandos para el manejo de MS-DOS COMANDO MODIFICADORES UTILIDAD cmd Inicia una instancia del intérprete de comandos de Windows. Se puede ejecutar buscando el archivo cmd.exe en Windows y ejecutandolo. /? Utilizando /? Despues de un comando se puede obtener ayuda para ejecutar ese comando, además de sobre sus modificadores. chdir o cd Cambia el directorio actual a un directorio diferente o presenta el nombre de directorio actual. mkdir o md Crea un directorio. rmdir o rd Permite eliminar directorios. /s Quita todos los directorios y archivos del directorio además del mismo directorio. Se usa principalmente cuando se desea quitar un árbol. /q No pide confirmación para quitar un árbol de directorio con /s tree Permite desplegar la estructura de los directorios ubicados en un disco o en un camino de acceso de manera que sea mas fácil hacerse una iea de la estructura de directorios. deltree Elimina toda la estructura de directorios sin tener que vaciar primero cada uno de los directorios. xcopy Permite copiar archivos y directorios completos. Síntasis: xcopy origen (destino) modificadores /a Copia solo aquellos archivos cuyo atributo de archivo modificado esté activado. /d Copia solo aquellos archivos cuya fecha de modificación sea igual o superior a la fecha especificada como parámetro /e Permite considerar los directorios vacíos cuando se copian subdirectorios. 24 El Sistema Operativo MS - DOS attrib Se puede usar para ver los atributos de uno o varios archivos o para variar estos +r Activa el atributo que establece que el archivo es de sólo lectura. +a Activa el atributo de archivo modificado. +s Activa el atributo de archivo de sistema. +h Activa el atributo de archivo oculto. copy Copia un archivo o un grupo de archivos. /a Indica un archivo de texto tipo ASCII /b Indica un archivo binario /v Comprueba si los archivos nuevos se han copiado correctamente. del o erase Elimina un archivo o grupo de archivos. /p Hace que el comando pida confirmación /f Fuerza la eliminación de archivos de solo lectura. /s Elimina los archivos especificados de todos los subdirectorios. /q No pide confirmación sobre eliminación con comodín global. /a Elimina archivos basandose en atributos. dir Permite examinar la lista de archivos y subdirectorios, de un directorio. Puede mostrar, para cada archivo, su tamaño y el día y la hora de su última modificación. /p Muestra información en la pantalla hasta que se llene, si queda mas información por mostrar esta se presenta cuando se presione cualquier tecla. /w Presenta un listado condensado e los archivos, mostrando solo su nombre y extensión en varias columnas en lugar de solo una. /a Muestra los archivos con los atributos especidicados. /b Usa el formato simple. /d Similar al listado ancho, pero los archivos aparecen clasificados por columnas. /L Usa letras minusculas. /n Nuevo formato de lista larga donde los nombres de archivo aparecen en el lado derecho. more Permite que el contenido de un archivo o el resultado de un comando se presente en pantalla haciendo una pausa cuando la pantalla está llena. /e Habilita las opciones avanzadas. /c Limpia la pantalla antes de mostrar la página. /p Expande los caracteres del avance de linea /s Compacta múltiples líneas en blanco en una sola línea. ren o rename Cambia el nombre de un archivo o grupo de archivos. replace Permite el reemplazo selectivo de uno o mas archivos del directorio destino por archivos de un directorio de origen con igual nombre. /a Hace que solo se agreguen archivos nuevos en el directorio destino. Si existe en el directorio destino, este no es reemplazado. /p Permite confirmar cada operación de reemplazo o adición de archivos. 25 El Sistema Operativo MS - DOS type Muestra el contenido de un archivo de texto. format Permite dar fotmato lógico a discos duros y disquetes. /q Indica que se desea realizar un formateo rápido, este tipo de formateo es mas rapido que el normal, pero realmente no formatea el disquete, lo que hace es borrar la FAT, con lo cual parece vacío. /v Especifica la etiqueta del volumen. /f Especifica el tamaño. chkdsk Comprueba un disco y muestra un informe de estado. /f Corrige loss errores del disco. /v (Solo FAT y FAT32) Muestra la ruta completa y el nombre de cada archivo en el disco. /r Encuentra los sectores dañados y recupera la información legible. /i (Solo NTFS) Realiza una comprobación menos exaustiva de entradas de índice. recover Recupera la información legible de un disco dañado o defectuoso. help Proporciona informacion de ayuda para los comandos de Windows. bcdedit Establece propiedades en la base de datos de arranque para controlar la carga del arranque. ipconfig Muesta información sobre los adaptadores de red. De forma predeterminada se muestra solamente la direccion IP, la máscara de subred y la puerta de enlace predeterminada para cada adaptados enlazado con TCP/IP. /all Muesta información detallada. /renew Renueva todos los adaptadores. /release Librela la dirección IPV4 para el adaptador especificado. color Establece los colores de primer plano y fondo predeterminados de la consola. cls Borra la pantalla. convert Convierte volúmenes FAT a volúmenes NTFS. date Muestra o establece la fecha. exit Sale del programa CMD.EXE (interfaz de comandos) find Busca una cadena de texto en uno o mas archivos. /v Muestra todas las líneas que no tengan la cadena especificada. /c Muestra solo el número de líneas que contienen la cadena. /i Omite mayúsculas y minúsculas al buscar una cadena. time Muestra o establece la hora del sistema. ver Muestra la versión de Windows. vol Muestra la etiqueta del volumen y el número de serie del disco. 26 Máquinas Virtuales Máquinas Virtuales Introducción a las máquinas virtuales Una máquina virtual es un programa que emula a un computador ejecutando programas como tal y como si fuese un ordenador real. En un primer momento las máquinas virtuales fueron definidas como: “un duplicado eficiente y aislado de una máquina física”. Cada máquina virtual suministra una versión del hardware, es decir, una réplica exacta del hardware incluyendo ambos modos de ejecución (usuario, y privilegiado). Este software en un principio fue definido como "un duplicado eficiente y aislado de una máquina física". Cuando un S.O. desea acceder al hardware como por ejemplo en el caso de que quiera leer un USB, el S.O. se tiene que comunicar con su máquina virtual, tal y como si fuese una máquina real. Lo cierto es quien hace realmente la comunicación con la máquina real, es el monitor de máquina virtual. La siguiente figura muestra un ejemplo de máquina virtual que soporta varios sistemas operativos. En el caso de que el proceso 1 (Proc. 1) del S.O.1 requiera hacer una lectura del USB antes comentado se realizarán los siguientes pasos: Proceso 1: pide realizar una llamada para lectura. Por tanto, se salta al S.O. 1 para que la gestione. S.O. 1: pide realizar la operación de entrada/salida al monitor de máquina virtual. Monitor de máquina virtual: dialoga con el hardware para que le suministre los recursos pedidos. Máquinas Virtuales Ventajas y desventajas de las máquinas virtuales Ventajas Las máquinas virtuales son muy útiles cuando se quiere probar un sistema operativo antes de instarlo definitivamente. A veces, es posible que se dé el caso en el que un programa antiguo no pueda ser utilizando en una versión nueva de un sistema operativo. Es por ello que puede resultar interesante instalarse un emulador o máquina virtual del sistema operativo en el que funcionaba dicho programa. Además incorpora un nivel extra de aislamiento. Esto implica que en el caso de que se comprometa la seguridad de un sistema operativo los otros permanecen seguros. Las máquinas virtuales permiten instalar varios sistemas operativos en un mismo equipo informático debido a que son más sencillas y flexibles. Además, sobre una misma máquina real puede tener en ejecución de manera simultánea más de una máquina virtual. Desventajas Una de las principales características de las máquinas virtuales es que los procesos que ejecutan están limitados por los recursos que estas suministren. Además, añaden cierta sobrecargar de procesamiento, lo que implica una ejecución más lenta en algunos casos. Sistemas Operativos en una máquina virtual A la hora de trabajar con máquinas virtuales existen dos conceptos de suma importancia: 1. S.O. Anfitrión: es el sistema operativo que está instalado realmente en el ordenador. Sobre este sistema operativo original instalarse otras aplicaciones que a su vez instalen otros S.O. En la figura que hay un poco más abajo, el S.O. 1 es el anfitrión. 2. S.O. Huésped: es el sistema operativo que se instala como máquina virtual. Es posible que sobre el S.O. anfitrión se tengan varios S.O huésped instalados. En la figura que hay un poco más abajo, el S.O. 2 es huésped. La siguiente figura muestra un ejemplo de máquina virtual sobre un sistema operativo: 28 Máquinas Virtuales En este caso el monitor de máquina virtual no se ejecuta directamente sobre el hardware, sino sobre un S.O. Tipos de máquinas virtuales Las tres máquinas virtuales más famosas son Virtual Box, VMware, y Virtual PC. VMware Es una de las máquinas virtuales más famosas disponible tanto para sistemas operativos Windows como Linux. En el caso de querer usar VMware en sistemas operativos Macintosh, deberá descargar la versión VMware Fusión. Además, tanto Windows como Ubuntu cuentan con la forma más fácil y rápida de instalar la máquina virtual a través de la herramienta Easy Install. Una de las ventajas en el proceso de instalación de utilizar Easy Install es que una vez la máquina virtual, además también instala VMware Tools que es un paquete casi indispensable con un conjunto de herramientas y utilidades. VMWare Fusión Están disponibles tanto versiones de 32 como 64 bits. La versión básica VMware Player está disponible para ser descargada de forma gratuita bajo licencia. A parte de esta versión básica existen otras versiones más completas desde el punto de vista de seguridad que permiten una utilización profesional. Por el contrario, estas versiones son de pago aunque pueden ser utilizadas de forma gratuita durante un periodo de tiempo. Entre estas versiones de máquina virtual cabe destacar: View, ThinApp, Server, vSphere4, Workstation, etc. Si está interesado, puede descargar esta máquina virtual en la siguiente dirección: http://www.vmware.com/ VMware Player en Windows 7 emulando Windows XP. 29 Máquinas Virtuales Virtual Box Esta máquina virtual ha sido desarrollada por Sun microsystems que es propiedad ahora de Oracle, y que tiene la licencia GNU GPL. Esta máquina virtual admite como anfitrión cualquiera de los siguientes S.O: Macintosh. Linux, admitiendo distintas distribuciones: Ubuntu, RedHat, SUSE, openSUSE, Fedora, etc. Windows, admitiendo distintas distribuciones: XP, 2000, Vista, Windows 7, etc. OpenSolaris. Existen versiones tanto para 32 bits como para 64 bits. Si está interesado, puede descargar esta máquina virtual en la siguiente dirección: https://www.virtualbox.org/ Virtual Box en Mac emulando Windows7. Virtual PC Producto desarrollado por Microsoft permite la instalación de máquinas virtuales tanto para sistemas operativos anfitriones Windows como Macintosh; sin existir una versión para Linux. Esta máquina virtual es similar a las anteriormente comentadas VMware Player y Virtual Box. Si está interesado en instalar esta máquina virtual acceda a la siguiente dirección: http://www.microsoft.com/windows/virtual-pc/ 30

Use Quizgecko on...
Browser
Browser