lunes, 13 de septiembre de 2010
Bibliografia
Estructura de un SO Part 3
El periférico de entrada (teclado, USB, etc.) se comunica con la unidad de control y solicita una instrucción, esta a su vez se comunica con la unidad de memoria para que guarde lo solicitado, después le regresa la información que es enviada a la unidad aritmética lógica (ALU) para que la traduzca terminando este proceso, regresa de nuevo la información a la unidad de control enviándosela primero al unidad de memoria y después al periférico de salida (pantalla, impresora, etc.). en conclusión lo periféricos de entrada sirven para que el usuario se comunique con la maquina y los periféricos de salida sirven para que la maquina se comunique con el usuario.
Los sucesos a los que puede tener que responder un sistema de tiempo real pueden clasificarse también como periódicos (que ocurren a intervalos regulares) o aperiódicos (que ocurren de forma impredecible). Es posible que un sistema tenga que responder a múltiples corrientes de eventos periódicos. Dependiendo de cuánto tiempo requiere cada suceso para ser procesado, tal vez ni siquiera sea posible manejarlos todos. Por ejemplo, si hay m eventos periódicos y el evento i ocurre con el periodo P. y requiere C segundos de tiempo de CPU para ser manejado, la carga sólo podrá manejarse si un sistema de tiempo real que satisface este criterio es planificable.
Un conjunto de procesos esta en bloqueo mutuo si cada proceso esta esperando un evento que sólo otro proceso del conjunto puede causar, cuando sucede esto ninguno de ellos puede causar ninguno de los eventos que podría despertar a cualquiera de los demás miembros del conjunto y todos los procesos continúan esperando indefinidamente, ya que todos los procesos están esperando.
Una interrupción es cuando el procesador o periférico de salida detienen un proceso para darle lugar a otro; una solicitud es una interrupción y sucede cuando no se ocupa todo el quantum para que el procesador no perder tiempo mientras llega otro proceso (también pueden solicitar interrupciones).
La protección son permisos que se pueden repartir ha archivos y grupos de trabajo, la protección es diferente para los procesos y los archivo. Existe un código de protección que se conforma por tres campos de 3 bits, uno es para el propietario, el segundo para lo miembros del grupo del propietario y el tercero para toda la demás gente. Cada campo cuenta con un bit de acceso de lectura(r), uno para acceso de escritura (w) y uno para ejecución (x).
Estructura de un SO Part 2
Las llamadas al sistema de administración de procesos clave son las que se ocupan de la creación y terminación de procesos. Por ejemplo cuando el proceso llamado Shell (interprete de comandos) lee comandos de una terminal. El usuario acaba de teclear un comando solicitando la compilación de un programa. El Shell debe crear ahora un proceso nuevo que ejecute el compilador, cuando ese proceso haya terminado la compilación, ejecutará una llamada al sistema para terminarse a sí mismo.
La memoria (almacenamiento de información) principal de una computadora es conocida también como memoria RAM (memoria de acceso aleatorio), esta puede ser modificada. Sin embargo la memoria ROM es estática, por lo general es secuencial y necesita del sistema operativo y viceversa; esta cumple con un papel importante ya que cuando inicia el sistema, el hardware que es en realidad un programa en ROM donde existe un estructura de discos la cual esta compuesta por bloques, al primer bloque se le conoce como el Master Boot Record, llamado bloque de Boot en este se encuentra cargado el sistema operativo, le sigue el súper bloque que contiene todos los parámetros clave de los archivos, después podría venir un bloque con la información del los bloques libres (como un mapa de bits) seguido del bloque de los inodos, el bloque raíz y al final todos los directorios y archivos.
El sistema de archivos es un método para el almacenamiento y organización de los archivos, para poder identificarse un archivo con otro se necesita que tengan un nombre y un directorio; su principal característica radica en la recuperación, integridad y disponibilidad de la información de manera rápida y eficiente. Es necesario realizar llamadas al sistema para crear, leer, eliminar y escribir archivos (información guardada en el CPU).
Para poder comenzar con lo que son los dispositivos de entrada y salida primero tenemos que comenzar con la arquitectura de Von Neumann:
Estructura de un SO Part 1
La clave de los sistemas operativos es el proceso. Un proceso es un programa de ejecución, cada uno tiene relacionado un espacio de direcciones (conteniendo el programa ejecutable, los datos de programa y su pila), una lista de posiciones de memoria desde algún mínimo hasta algún máximo, el cual el proceso puede leer y escribir. Cada proceso esta asociado con un grupo de registro, entre ellos se incluye el apuntador de la pila, el contador del programa y los registros de hardware, así como información necesaria para ejecutar el programa. Un proceso padre puede crear uno o más procesos distintos denominados procesos hijos; estos procesos hijos mueren cuando cumplen con la tarea asignada, sin embargo se convierten en zombis al no encontrar al proceso padre para darle la tarea que se le fue asignada.
El sistema operativo es el encargado de decidir en que momento dejar de ejecutar un proceso y comenzar a ejecutar otro; en muchos de los sistemas operativos la información acerca de cada proceso se almacena en una tabla del sistema operativo llamada “tabla de procesos” (arreglo o lista enlazada de estructuras), una para cada proceso existente en ese momento; aparte del contenido de su propio espacio de direcciones. Los procesos ligeros o Thread (Unidad básica de utilización del CPU) son interactivos, su ejecución es rápida y no pesa más de un Kb.; sin embargo los procesos por lote (batch) son procesos pesados y requieren de varias visitas al procesador.
El scheduler (planificador) es el parte de sistema operativo que toma la decisión de quien va hacer procesado cundo hay más de un proceso ejecutable, el algoritmo que utiliza se llama “algoritmo de planificación”; entre las posibilidades están:
1. Equitatividad —asegurarse de que cada proceso reciba una parte justa del tiempo de CPU.
2. Eficiencia —mantener la CPU ocupada todo el tiempo.
3. Tiempo de respuesta —minimizar el tiempo de respuesta para usuarios interactivos.
4. Retorno —minimizar el tiempo que los usuarios por lotes tienen que esperar sus salidas.
5. Volumen de producción —maximizar el número de trabajos procesados por hora.
La ejecución de un proceso consiste de un ciclo de ejecución de CPU continuado por un ciclo de espera por I/O. Cada proceso obtiene una pequeña unidad de tiempo de CPU (quantum), usualmente entre 10 – 100 [ms]. Al expirar el quantum, se desasigna el proceso y se reingresa al final de la fila ready. Si hay n procesos en la fila ready, y el quantum es “q”, entonces cada proceso obtiene 1/n de la CPU en bloques de a lo más “q” unidades de tiempo.
El sistema operativo contiene en el núcleo el kernel (interprete del CPU) el cual se encarga de manipular el hardware del equipo para poder ejecutar los procesos tanto del sistema como de las aplicaciones de los usuarios. El kernel es el encargado de realizar las llamadas al sistema que son el proceso más básico en una computadora. Las llamadas al sistema se pueden usar por medio de funciones en “C” y en el programa “símbolo del sistema”; las funciones tienen un formato común, tanto en su documentación como en la secuencia de llamada. Invocándose mediante una función retornando ésta siempre un valor con información acerca del servicio que proporciona o del error que se ha producido en su ejecución. Aunque dicho retorno puede ser ignorado, es recomendable siempre testearlo.
Algunas funciones:
