Sistemas 2

Clasificado en Informática

Escrito el en español con un tamaño de 29,67 KB

 

Gestor de arranque:Un gestor de arranque es un programa que toma el control de la máquina nada más conectarse y una vez que ha terminado las verificaciones por el propio hardware de memoria y dispositivos conectados. Cuando el gestor de arranque toma el control puede solicitar al usuario alguna información necesaria sobre qué sistema cargar o como cargarlo. En nuestro caso, como gestor de arranque tenemos LILO (Linux Loader) es el programa que instala el gestor de arranque, que no va a permitir que en un mismo equipo coexistan distintos sistemas operativos, de entre los cuales podremos seleccionar uno cuando arranquemos el sistema. Memoria ROM: La memoria ROM, (read-only memory) o memoria de sólo lectura, es la memoria que se utiliza para almacenar los programas que ponen en marcha el ordenador y realizan los diagnósticos, como por ejemplo la BIOS (Sistema básico de entradas y salidas,”Basic Input/Output System”) es un componente esencial que se usa para controlar el hardware. A principios de los 80 los ordenadores domésticos venían con su sistema operativo almacenado en ROM, ya que no había otra alternativa razonable. Actualmente los sistemas operativos en general ya no van en ROM, sin embargo los ordenadores pueden dejar algunos de sus programas en la memoria ROM, pero incluso en este caso, es más frecuente que vaya en memoria flash. Los teléfonos móviles y los asistentes personales digitales (PDA) suelen tener programas en memoria ROM (o por lo menos en memoria flash).EFIXBásicamente, EFiX consiste en un dongle USBque lleva en su interior unsistema que simula la EFI de un Mac, junto a ungestor de arranqueque permite iniciar el Mac OS X.Al simular el hardware, ya no deberemos recurrir a la substitución de libreríasy, por lo tanto, dejaremos de tener que aplicar complicados parches ni a descargar imágenes manipuladas de los DVD’s del sistema operativo.La instalación se realizará desde el mismo DVD original de Apple, y una vez instalado no será necesario realizar ningún otro paso.Esto tiene dos ventajas inmediatas: por un ladoaumenta la estabilidady por el otropuede actualizarse el sistema sin tener que recurrir también a actualizaciones manipuladasex-profeso.Android:Android es un sistema operativo orientado a dispositivos móviles basado en una versión modificada del núcleo Linux.[]][]Inicialmente fue desarrollado por Android Inc., compañía que fue comprada después por Google, y en la actualidad lo desarrollan los miembros de la Open Handset Alliance (liderada por Google).Esta plataforma permite el desarrollo de aplicaciones por terceros a través del SDK, proporcionada por el mismo Google, y mediante el lenguaje de programación Java. Una alternativa es el uso del NDK (Native Development Kit) de Google para emplear el lenguaje de programación C.Windows CE:Windows CE es el sistema operativo de Microsoft incrustado modular de tiempo real para dispositivos móviles de 32-bits inteligentes y conectados.Para programar una aplicación Windows CE para HPC es simple. Cualquier persona que tenga experiencia en desarrollo de programas en C con Win32 API puede desarrollar una aplicación en un abrir y cerrar de ojos. Los requisitos son:  Visual C++ para PC, Visual C++ para Windows CE (que en realidad es un agregado para soportar las nuevas plataformas MIPS y SH3) y las clases MFC para Windows CE. Windos CE consume pocas cantidades de RAM. Todos los componentes de Windows CE se pueden ejecutar en ROM, reduciendo la necesidad de RAM. Además en este no se requiere flash memory o una unidad de disco (aunque ambos son soportados). Es independiente del hardware del sistema. Windows CE trabaja en una variedad de microprocesadores de 32 bits y no requiere una arquitectura de hardware particular. Coreboot:CoreBoot (anteriormente LinuxBios) es un proyecto con una trayectoria de muchos años, pero dada la complejidad y las dificultades con que se encuentra, sus frutos van saliendo poco a poco.Su objetivo es reemplazar el firmware propietario que se encuentra en la memoria Bios de nuestros equipos por uno basado en linux. ¿Porqué tener una bios propietaria y con un diseño arcaico, pudiendo tener algo libre y mucho más eficiente?No en vano, CoreBoot es capaz de trabajar en modo de 32 bits y arrancar un SO Linux dejándonos con el shell en muy pocos segundos desde que damos corriente al ordenador. A fin de cuentas, una Bios propietaria tiene que cargar unos drivers que luego el SO tendrá que volver a cargar. ¿Porqué no hacer que la Bios y el SO utilicen los mismos drivers, para no repetir la tarea dos veces? Quizás en el caso de usar Windows el resultado no sea tan visible, pero aun así habremos logrado un cierto incremento en la velocidad de inicio.Por desgracia pocas placas base están soportadas actualmente por LinuxBios, ya que para variar, la mayoría de los fabricantes son reacios a hacer públicas las especificaciones de sus productos. En la página de LinuxBios podemos encontrar documentación y un listado de placas y chipsets soportados. Por último mencionar que ya han conseguido instalar LinuxBios + TinyX con shell BusyBox en una flash de 2 MB, logrando tener un entorno X-Window en 6 segundos desde que se enciende el ordenador. Estructuras del SO: Monolítica: Es la estructura de los primeros SO, construidos fundamentalmente por un solo programa compuesto por una serie de subrutinas enlazadas, de forma que cada rutina puede llamar a cualquier otra.-->Características: Construcción del programa final en base a módulos compilados de forma separada que se unen a través de un linkador/enlazador.Se carece de protecciones y privilegios.Eran sistemas rápidos y eficientes en su ejecución y su gestión. Jerárquico: Dividir el SO en diferentes partes autónomas (realizan el mismo proceso), de forma que cada una de ellas estuviera perfectamente definida y permitiera un claro interfaz con el resto de elementos.Características:Planificación del procesador (decidir para cada caso que política usaremos).Gestión de memoria (el SO decide si la memoria la usa monolítica, o trabaja con memoria caché, etc.).Controlador, consola u operador y operaciones de entrada/salida.Gestión de la información o archivos.Máquina virtual: SO que muestra una máquina idéntica a la máquina real subyacente, aunque no lo es, porque la máquina virtual ofrece prestaciones que no puede ofrecer la máquina real, y protege a la máquina real de posibles malos usos.SO cliente-servidor: Presenta grandes diferencias en cuanto a la forma de distribuir los trabajos. El núcleo tiene la función de establecer la comunicación entre clientes y servidores. Los procesos pueden ser tanto clientes y servidores, así como un cliente puede ser cliente de otro y servidor de un tercero. Servicios que debe proporcionar el SO: Ejecución de programas.Permitir operaciones de entrada/salida. Gestión de archivos, es decir fácil acceso y organización. Asignación de recursos: Se han de proveer mecanismos de solución de conflictos cuando varios procesos o usuarios están compitiendo por el mismo recurso. Cuando están cargados en memoria y se tienen que ejecutar, hay que sacar resultados. Si hay dos usuarios que quieren usar un archivo, se establece una prioridad (circulación de vehículos => semáforos).Contabilidad: control de tiempos de utilización de recursos por los usuarios.Protección: todo SO debe ofrecer protección sobre acciones no deseadas Llamadas al SO (casos)Terminación normal: esta devuelve el control al usuario cuyo proceso haya terminado a través del intérprete de comandos.Terminación anormal: cuando aparece un error durante una ejecución de un programa, éste se da por terminado, devolviendo el control al intérprete de comandos, que indicara la situación del error o el tipo de error.Peticiones de estado: Una petición de estado devuelve el control del programa con la información deseada del programa.Petición de recursos: Todo aquel programa que le pida al SO recursos específicos (HDD, impresora, todo dispositivo que tengas que montar, etc.).Peticiones de entrada/salida: Funcionan como la petición de recursos.Gestión de excepciones Excepción: suceso especial que merece la atención del CPU.Tipos: Fallos de Hardware: parte sólida/mantenimiento máquina (eléctrico).Fallos de Software: división por 0. Cuando el SO detecta un error de “0 divide” da por finalizada la sesión, se lo comunica al usuario, vuelve a su PROM liberando la memoria.Entrada de datos incorrectos: al introducir un dato erróneo, se vuelve a pedir el dato necesario.Controlar el intento de acceso a archivo protegido con información restringida.Controlar intento de ejecución de una instrucción no permitida. Controlar eventos anómalos: evento para el cual no tiene respuesta el SO.Que son estos eventos anómalos: normalmente se denominan excepciones.Hay tres categorías:1.Errores catastróficos: Imposibilitan el funcionamiento del sistema i no hay modo de recuperarlo. Hay que reiniciar.2.Error no recuperable: No afecta al sistema sino al proceso que se esta ejecutando.3.Errores recuperables: Afectan a los procesos no al sistema operativo, son aquellos en los cuales se produce un error que con ciertos ajustes permite la continuidad de la ejecución.Las proteccionesTodo sistema operativo tiene que tener una serie de protecciones en los puntos clave de su funcionamiento.Porque tiene que haber protecciones?1.Tiene que tener en cuenta que los programas que va a ejecutar no están exentos de errores.2.Hay usuarios con malas intenciones…  El sistema tiene que estar preparado para poder contrarestar.Tipos de protección:1.Protección de entrada/salida: Todos los S.O. cuentan con rutinas de entrada/salida, se denominan drivers i entre otras cosas controlan el flujo adecuado de datos y el tipo de los mismos, devolviendo el control al sistema operativo en caso de un error.2.Protección de la memoria: Cada proceso tiene una zona de memoria asignada para el tratamiento de sus datos, llamada zona de direccionamiento y no puede acceder a otras zonas asignadas al SO. Para evitar el acceso a otras zonas existen los registros frontera que indican el limite de memoria asignado a cada proceso. 3.Protección del procesador: Todos los procesadores tienen un timeout para evitar los bucles infinitos.LOS PROCESOS:Un proceso es un conjunto de rutinas cuya misión es gestionar el procesador, la mem:oria, entradas y salidas, y resto de recursos disponibles.Por definición un proceso es un programa en ejecución junto al entorno asociado. PCB (Process Control Block ):Bloque control de procesos, es una matriz en el cual están registrados por un lado el proceso, la dirección de memoria donde se ejecuta y los recursos necesarios para su ejecución así como el estado del proceso.Los objetivos son:1.Localización de la información del proceso por parte del SO.2.Mantener registrados los datos del proceso, en caso de tener que suspender temporalmente su ejecución o tener que reanudarla.Información que contiene el PCB:1.Estado del proceso: los procesos pueden estar activos, inactivos, stand by o zombies. Activo: Aquel que se esta ejecutando en este momento.Inactivo: proceso que no esta en tiempo de ejecución pero esta preparado para ejecutarse.Stand by: proceso activo que esta aletargado en espera de liberación de recursos que estan ocupados. ( impresora  en espera)Zombies: Es un proceso en el cual se ha perdido la dirección de memoria donde esta el proceso, esta cargado en memoria pero no puede ejecutarse por algún tipo de error.1.Estadísticas de uso del procesador y ocupación de recursos.2.Ocupación de memoria interna y externa.3.Recursos en uso. Es decir que unidades de entrada y salida necesita, para evitar colocar todos los recursos que necesita a la vez.4.Archivos en uso. (archivos del SO) 5.Privilegios.Estado de los procesosLos bloques de control de proceso “PCB” se almacenan en colas cada una de las cuales representan un estado particular de los procesos. Las colas están por tipos, stand by, activos etc…Los estados de los procesos se pueden dividir en activos o inactivos:Activos: son aquellos procesos que compiten por el procesador o están en condiciones de hacerlo. Hay tres estados:Ejecución: Cuando un proceso tiene el control del procesador. Se esta ejecutando.Preparado: Aquellos procesos que están dispuestos para ser ejecutados pero no están en ejecución. Normalmente se debe a que hay procesos con prioridad mas alta.Bloqueado: Son procesos que no pueden ejecutarse en este momento porque no están disponibles los recursos que necesita.Inactivos: Son aquellos que no pueden competir por el control del procesador. Procesos que no han terminado el trabajo pero que pueden volver a activarse desde el punto en que se quedaron sin tener que volver a ejecutarse desde el principio.Causas para suspender un proceso: La mas habitual es una avería física o humana.Hay dos casos en los cuales el proceso se aparca en memoria a la espera de volver a ser activado:1.Proceso suspendido o bloqueado: es un proceso suspendido en espera de un evento sin que hayan desaparecido las causas de su bloqueo.2.Proceso suspendido o preparado: Proceso que no tiene causa para estar bloqueado pero que no lo ponen activo. Se convierte en un proceso zombie.Un quantum es una unidad necesaria para realizar un trabajo. ( medida universal para cuantificar un proceso ).Operaciones sobre el proceso:La primera operación siempre sera crear el proceso.Un proceso = (programa+datos+argumentos)Una vez creado el proceso se coloca a la cola del PCB --> (Bloque control de procesos) Una especie de vector dinamico donde se colocan los procesos para irlos cogiendo y ejecutandolos. Tiene prioridades.Creación de procesos puede ser de dos tipos:Jerarquica: Cada proceso que se crea es hijo de un proceso creador heredando el entorno de ejecución del padre.Cuando tu lo invocas te crea el proceso hijo y le pasa los parámetros actuales, si lo vuelven a llamar crea otro proceso hijo.Los procesos hijos van diferenciados por la dirección de memoria donde están colocados.Un objeto se crea en tiempo de invocación cuando jo lo pido no cuando jo compilo.  Crea el objeto hijo en tiempo de ejecución y cuando acaba de usarlo lo destruye, optimiza la memoria.No jerarquico:procesos creados por otros procesos que se ejecutan de forma independiente al proceso creador y con condiciones del sistema operativo diferente.Eliminar proceso: Todo So elimina procesos que han cumplido su función o están inactivos.Suspender un proceso: El SO tiene la facultad de poder suspender un proceso! Un proceso es suspendido por mal funcionamiento o por sobrecarga del sistema.Lo vuelve a poner activo si se solucionan las causas que han hecho suspender el proceso. ( ejemplo impresora )Cambiar prioridad del proceso:  Baja o sube la prioridad de los procesos. No tiene sentido para so como Windows etc… Estamos hablando de SO grandes.Temporizar ejecución del proceso:  Tiene un tiempo de reloj que dispara la ejecución del proceso.Despertar un proceso:Cuando un proceso no cabe en el PCB porque hay sobrecarga del sistema y el recurso al que tiene acceso no esta disponible, se pone en suspenso. En el momento en que el recurso necesario esta disponible lo despierta!!. CLASIFICACIÓN DE LAS PRIORIDADES Prioridades asignadas por el sistema operativo. Las asigna el SO en el momento de la creación del proceso.Prioridades asignadas por el propietario. El usuario puede cambiar la prioridad de algún proceso.Procesos estaticos Son aquellos procesos que no pueden ser modificados en tiempo de ejecución.Procesos dinamicos Pueden ser modificados en tiempos de ejecución.Según el uso del codigo:Procesos reutilizables: Se pueden reutilizar.Procesos reentrantes:  Procesos que en si no tienen datos asociados, solo tienen código. Este código normalmente se carga una sola vez en memoria y puede ser utilizado a la vez por varios usuarios. ( terminal de texto ).Según el acceso a los recursos.Los recursos pueden ser apropiativos y no apropiativos:Apropiativos: proceso que requiere una serie de recursos del SO, para su exclusivo uso y ningún otro proceso puede utilizarlo hasta que acabe. ( la grabadora de un cd )No apropiativos: Permite utilizar los recursos aunque los este utilizando otro usuario.Según la forma de ejecuciónPueden ser:Residentes: Son aquellos que están en memoria durante todo el tiempo de vida del kernel del sistema operativo.(hasta que se apague la máquina)Intercambiables: Son aquellos procesos que por requerimientos del sistema podrían pausarse, cargar en memoria intermedia o eliminar si hiciera falta. No te cargas el SO si los eliminas.LA PLANIFICACIÓN DEL PROCESADORObjetivo de la planificación: dar un buen servicio a todos los procesos que existan en un momento dado en el sistema. Ejecutarlos con las mejores condiciones posibles.Niveles de planificación: Planificación a largo plazo à es el que se denomina planificador de trabajos y es el que decide cual es el siguiente trabajo que se va a ejecutar. Planificación a medio plazo à es el denominado planificador de swaping , es el que decide si un proceso que esta en ejecución bloqueado o suspendido debe ser extraído de la memoria principal y colocado en la memoria temporal.Planificación a corto plazo à planificación del propio procesador, el sistema decide cual es el proceso que se tiene que ejecutar antes según la política que estemos utilizando. Aquellos que necesitan hacer interrupciones y recursos externos serán penalizados.CRITERIOS Criterios para escoger el algoritmo de planificación adecuado para un proceso.Tiempo de respuesta: la velocidad con la que el ordenador responde  a una petición.Tiempo de servicio: El tiempo que tarda un proceso en ser ejecutado totalmente, desde que se carga en memoria hasta que es eliminado de la memoria.Tiempo de ejecución: Tiempo teórico que necesitaría un proceso en el caso que estuviera el solo ejecutándose.Tiempo de procesador: Es el tiempo que consume un proceso sin contar el tiempo que esta bloqueado en espera o en operaciones de entrada y salida. El tiempo efectivo de utilización del procesador.Tiempo de espera: Tiempo que un proceso pasa en cola, que esta activo pero no es ejecutado.Tiempo de eficiencia: (indice medio del servicio) tiene mas eficiencia aquel proceso que utiliza mejor el procesador. Todo proceso que utiliza el máximo posible del procesador.Tiempo de rendimiento: Numero máximo de trabajos que puede realizar el procesador por unidad de tiempo.Algoritmos de planificaciónComo podríamos definir un algoritmo de planificación à como el grupo de características que tiene que cumplir un programa para obtener un mejor aprovechamientos de los recursos del SO.Dependiendo del programa necesitara unos tipos de recursos o otros, del tiempo de procesador , de los datos etc…Los Algoritmos  de planificación sirven para conseguir un tiempo óptimo de ejecución.División general de algoritmos de planificación Políticas apropiativas: El proceso que esta haciendo uso del procesador puede ser temporalmente suspendido o permitir que otro proceso se apropie del procesador. (Suspendido o desalojado), procesos en tiempo compartido y en tiempo real à en tiempo compartido puede poner un programa en la cola etc… ->> en tiempo real el primero va el primero de la cola y punto. Un SO Embebido es un SO que va en una placa, en la rom de la placa(SO diseñados para hacer algo en concreto).Políticas no-apropiativas: No abandona nunca el procesador hasta haber acabado su ejecución. Un ordenador en el cual carga un proceso y hasta que no se ha acabado nada de nada….Primera politica:FCFS( first come first Server): primero que entra es el primero que se ejecuta tipo FIFO.El procesador ejecuta cada proceso en el orden que llega y hasta que termina. Es no-apropiativa.Política muy simple y sencilla pero con un pobre rendimiento (de las primeras que salieron).El índice de servicio mejora cuanto mas largos son los procesos. à si los procesos son largos como ja esta todo cargado en memoria se ejecuta rápido. En cortos pierde mucho tiempo.Tiempo de espera à el tiempo de espera de cada proceso depende de los procesos que hayan llegado antes (los procesos que tenga delante) y es independiente de las necesidades del proceso.Características generales: Es una política no-apropiativa . Es una política predecible, se sabe como será su ejecución. El tiempo medio de servicio es muy variable dependerá de el número de procesos y de su duración.ROUND-ROBIN Quantumà Un quantum es una unidad necesaria de energía para realizar un trabajo. ( medida universal para cuantificar un proceso ).La round-robin trata de repartir la CPU entre los distintos procesos, concediendo a cada uno de los procesos un tiempo “q” (quantum) transcurrido el cual si el proceso no ha finalizado vuelve a la cola de procesos y entonces concede un tiempo “q” al siguiente proceso en cola y así hasta finalizar la ejecución.Características: Primera à baja sobrecarga si el cambio de contexto es eficiente (pasar un proceso del principio de la cola al final de la cola) y los procesos siempre están en la memoria principal. ( en la memoria ram) à en el momento en que tiene que acceder a la memoria secundaria es poco eficiente y empieza a sobrecargarse el sistema.El tamaño óptimo del quantum se calcula con respecto al tipo de sistema operativo, con respecto a las cargas que va a soportar el sistema( si va tener colas tremendas o no), y el número de procesos en el sistema y su tipo. ( a los que están en precarga pero ahora no están puestos.)Esta política es la más utilizada trabajando en tiempo compartido. Ofrece un índice de servicio uniforme para todos los procesos y es una política apropiativa. SJN (shortext job next) Primara el proceso mas corto de los que tiene en memoria ram para ser el siguiente en ejecutarse. Toma de la cola de procesos preparados el que necesita menos tiempo de ejecución para realizar su trabajo ( para ello esta política necesita saber el tiempo de procesador que necesita cada proceso lo cual es muy difícil… ) Primera de las politicas que se empleo en tiempo compartido, tiene un problema y es que necesita saber el tiempo exacto de cada proceso y de donde puede sacar esta información? De la primera tarjeta del programa. -> pero era una información un poco inexacta.Formas de saber el tiempo de ejecución:Información proporcionada por el usuarioà tarjetas de controlInformación proporcionada por el programaà en algunos lenguajes de programación p.e. cobol à las primeras líneas de declaración era el tiempo de ejecución necesario.Basándose en los historiales de ejecuciones.Tiempo de servicio para esta política es bueno para los procesos cortos, saliendo perjudicados los procesos más largos. ( se parece a la FIFO ). à es una variante mejorada de la fifo, pero también es no-apropiativa.Caracteristicas: Es una política no-apropiativa, es poco predecible, no podemos saber el orden de ejecución. Penaliza los procesos largos.  Tiene un buen tiempo de servicio, es una política muy difícil de poner en practica debido a los datos que necesita para su planificación.

 

Entradas relacionadas: