El blog de los Ingenieros en TI

Código Fuente, links, tareas, proyectos, exámenes....qué mas le vas a pedir a la vida?

Acerca de:

El espacio para compartir material que necesitas en la carrera de Ingeniería de Sistemas y en tu vida profesional.

El objetivo del blog es ayudarte como estudiante a prepararte mejor para los exámenes, proyectos y demás situaciones que enfrentes durante la carrera. Asi mismo es una herramienta de consulta para los profesionales en TI.

Material y sugerencias: ingenierosTI@gmail.com


Memoria caché
Mejora tiempo de respuesta.
Mantiene la información accesada más frecuentemente.
Hit rate: indica qué tan seguido encontramos los datos.
Latencia: indica cuánto se dura en ir a buscar la info en memoria.

Principio de proximidad
El CPU tiende a accesar la info que esta contigua o más cercana al dato buscado para manejarla posteriormente.
Gracias a este, el hit rate es alto.

Ver todo el resumen >>>
Sistema Operativo
Programa que controla la ejecución de aplicaciones.
Actúa como interfaz entre los programas y el hardware.
Administra los recursos del sistema (Memoria, micro, dispositivos I/O).

Objetivos de los SO
Facilidad de uso para los programadores:
Interfaz uniforme para accesar a recursos y dispositivos.
Soporte para el acceso y manipulación de archivos.
Estadísticas y monitoreo de uso/ rendimiento de los recursos.
Facilidad de uso para usuario final:
Ejecución de programas.
Acceso y configuración de aplicaciones.
Uso de dispositivos
Administración de archivos.
Capacidad de actualización a nuevas versiones.
Eficiencia en la ejecución de múltiples tareas.
Administrador de los recursos.
Mecanismo de control “inusual” pues usa los mismos recursos que administra.
Capacidad para evolucionar de acuerdo a necesidades de los usuarios.
Actualización de hardware.
Nuevas versiones de controladores
Servicios adicionales.
Actualizaciones del kernel.

Diseño e implementación
Software
Sumamente complejo.
Evolución lleva más de 40 años.
Principales conceptos aún se mantienen.

Principales avances teóricos del software
Procesos (como unidad de trabajo)
Gestión de memoria
Protección y seguridad de la información
Planificación y control de recursos
Estructuración de sistemas.

Proceso
Unidad de ejecución.
Un solo hilo secuencial.
Recursos del sistema asociados.

Proceso <> Programa
Programa es el conjunto de líneas de código
Proceso es la sección del programa que se esta ejecutando en un instante.

Componentes de un proceso

Programa ejecutable :
(.exe) Es solo uno
Líneas de código
Librerías
Scripts

Datos del programa
Variables
stacks
buffers

Contexto de ejecución
Uno para cada proceso
Esta en RAM
registros del micro
Prioridad
dueño
estado

Gestión de memoria

Aislamiento de procesos. (Por seguridad)
Evita que un proceso interfiera en la memoria o instrucciones de otro proceso.
Ej. IExplorer no puede ingresar a lo que esta digitado en Word.
Asignación y gestión automática.
Soporta la asignación dinámica de memoria.
Transparente al programador.
La realiza el SO.
Soporte a la programación modular.
Capacidad para definir, cargar y descargar módulos.
Ahorra memoria y no cargar módulos que no se van a utilizar.
Protección y control de acceso.
Garantizar que solo los usuarios/ procesos indicados tiene acceso a la info
Compartida.
Almacenamiento a largo plazo.
Provee mecanismos para almacenar y recuperar información cuando el sistema
Esta apagado (DB, archivos, directorios)

Memoria virtual

Si no existiera, el SO estaría obligado a cargar los procesos completos en RAM.
Permite a los programas direccionar la memoria desde un punto a otro lógico.
Cantidad de memoria física no es relevante para los procesos.
Se basa en bloques de tamaño fijo llamados páginas.

Página
Bloque mínimo de memoria que se transfiere entre memoria virtual y el disco.

Protección y seguridad de la información
Disponibilidad
Capaz de recuperarse rápidamente cuando el sistema falla.
Confidencialidad (para los usuarios)
Control de acceso a programas y datos.
Integridad de datos
Protección frente a modificaciones no autorizadas (virus)
Autenticidad
Verificación de la identidad de los usuarios y validez de mensajes y/ o datos.

Planificación y gestión de recursos
Factores claves en la política de planeación
Equitatividad
Procesos deben tener acceso equitativo a los recursos.
Especialmente cuando tienen demanda/ prioridad similar.
Multitask, para que todos los procesos se corran igual de tiempo en CPU.
Respuesta diferencial
Capacidad del SO para tomar decisiones en forma dinámica sobre la marcha.
Discriminar entre diferentes clases de trabajo y satisfacer el total de requisitos.
Eficiencia
Definir realmente lo que es urgente.
Maximizar el uso de los recursos y minimizar el tiempo de respuesta.

Principales elementos de la planificación y gestión de los recursos
Colas de prioridad
Colas de corto plazo, procesos listos para usarse.
Colas de largo plazo, procesos nuevos a los que se le debe asignar memoria.
Colas de E/ S, una por dispositivo para almacenar procesos en espera de uso.
Manejador a llamadas del sistema
SO administra los recursos y su prioridad de llamadas de cada recurso.
Pueden generar interrupciones, lo cual implica mover los procesos entre colas.
Manejador de interrupciones (Interrupt handler o ISR)
Interrupción:Cuando un proceso interrumpe el CPU para atender otro proceso.
IRQ, interrupt request: acto de interrumpir un proceso, atender una subrutina.
Recibe el control cada vez que se genera un IRQ.
Latencia tiene que ser corta.

Desarrollo de los sistemas operativos modernos
Arquitectura micro núcleo o micro kernel
Contrario a modelos monolíticos
Asigna solo unas cuantas funciones esenciales al núcleo.
Permite la configuración del sistema de acuerdo a su función.
Multithreading o Multihilos
Un proceso se divide en hilos que se pueden ejecutar concurrentemente.


Hilo <>Proceso

Hilo
Unidad de ejecución
No tiene recursos asociados
Se asigna CPU

Proceso
Unidad de ejecución
Recursos asociados
Se asigna memoria

Si se cae un hilo, se cae todo el proceso.


Procesamiento simétrico
Arquitectura de múltiples procesadores.
Todos los procesadores pueden realizar las mismas funciones.
Transparente al usuario.
Ventajas del procesamiento simétrico:
Rendimiento
Más de un proceso se ejecuta simultáneamente.
Disponibilidad (en la buena teoría…)
El fallo de un procesador no implica el fallo de la máquina completa.
Desventajas :
Precio y difícil administración.
Sistemas operativos distribuidos
Múltiples computadoras dan la noción de un solo espacio de memoria.
Clústeres permiten agregar capacidad de procesamiento (Google!)
Diseño orientado a objetos
Añade extensiones modulares a un pequeño núcleo.
Facilita la personalización sin eliminar la integridad
Permite el desarrollo distribuido.

Traza de procesos
Secuencia de instrucciones que se ejecutan para dicho proceso.
Se puede caracterizar el comportamiento de un procesador mostrando cómo se
entrelazan.

Dispatcher (Activador)
Programa responsable de intercambiar el procesador de un proceso a otro.
Mientras un proceso está en ejecución, el dispatcher puede detenerlo y asignar el
CPU a otro proceso.

Creación de procesos
BCP= estructura de datos que utiliza el SO para administrar los procesos.
1. Construir el process control block (BCP)
Asignar identificador único
Seleccionar prioridad
Inicializar datos de contexto
Definir relación padre-hijo
2. Reservar espacio para datos (En RAM)
Para la pila, el heap, para el código y asingar punteros en el process control…

Terminación de procesos
Liberar recursos
De memoria real y virtual, en almacenamiento secundario, desocupar
dispositivos, terminación de procesos hijos y eliminación del process…

Estados de los procesos
Estrategia Round Robin: Ciclo de asignación del CPU por cierto tiempo a cada proceso.

Ver diagrama de estados de los procesos

Intercambio o Swapping
Base fundamental de la memoria virtual.
Mover parte o todo el proceso de memoria principal a disco.
Se aprovecha el tiempo ocioso del CPU teniendo más procesos en ejecución.

Estructuras de control
El SO debe disponer información sobre:
Tablas de procesos
Id, estado (listo, en proceso, suspendido), localización en memoria, posición en disco, prioridad y privilegios.
Tablas de memoria (En RAM)
Registros de control para memoria real y virtual
Atributos de protección y control de acceso (para evitar que se modifique otro
proceso).
Tablas de E/ S
Estado del dispositivo.
Canales de comunicación asociados.
Dirección de memoria para ser usada como fuente o destino de los datos.
Tablas de archivos (Usualmente está en RAM)
Nombre y localización del archivo. Propietario.
Estado actual (abierto, cerrado, borrado). Fecha de última modificación.
Permisos asociados para control de acceso. Tamaño real.

Modos de ejecución (Uno u otro)
Ayudan a proteger tablas de procesos, memoria, E/ S y archivos.
El modo actual de ejecución se almacena en el CPU dentro del PSW (program status word)

Modo Usuario
Menos privilegios
Acceso restringido a áreas de memoria
Ciertas instrucciones restringidas
Mayoría de programas comunes

Modo Núcleo
Todos los privilegios
Acceso libre a memoria
Ejecuta cualquier instrucción
Dispatcher y SO

Interrupciones
Evento que dispara el cambio de proceso.
Durante la interrupción, el SO toma el control del micro y decide qué hacer.
Toda interrupción obliga al proceso a cambiar de estado.
Tipos:
Trap: Condición de error durante la ejecución de la instrucción actual (división
por cero, bluescreen, pulgas del software).
Interrupción: Evento externo a la ejecución del proceso. Esto es interrupción de
Reloj o fallo de página.
Llamadas al sistema: Solicitud explícita al SO. Por ejemplo virus, o abrir, cerrar,
leer o salvar un archivo.

Hilos de ejecución o Threads
Capacidad de un SO de dar soporte a múltiples hilos de ejecución por proceso.
Los hilos comparten recursos.
Si un hilo abre un archivo, otros hilos pueden accesarlo.
Si un hilo consume toda la memoria, los otros hilos tendrá problemas de espacio.
Cuando un proceso es suspendido, todos sus hilos son bajados a disco.
Finalizar un proceso implica finalizar todos los hilos asociados.
Beneficios: Gracias a que la memoria se reserva para el proceso, y los hilos
comparten dicha memoria.
Crear y finalizar un hilo tarda menos tiempo que un proceso.
Cambiar entre hilos tarda menos tiempo que entre procesos.
La comunicación entre hilos es más sencilla y eficiente.
Desventaja: Se pueden sobre escribir datos entre hilos.

0 comentarios

Publicar un comentario

Suscribirse a: Comentarios de la entrada (Atom)