Universidad de Lima
Facultad de Ingeniería y
Arquitectura Carrera de
Ingeniería de Sistemas Curso:
Sistemas Operativos
BALOTARIO
EXAMEN FINAL
GESTIÓN DE MEMORIA
Requerimientos para la gestión básica de memoria:
Reubicación: Los procesos rotan en memoria. Se puede efectuar swap. No se
garantiza que estos luego de rotar ocuparan la misma ubicación en memoria.
Protección: “Lo tuyo es tuyo, lo mío es mío”. Se garantiza que las posiciones en
memoria de un proceso no pueden albergar a otros ni hacer referencia de lectura ni
escritura sin permiso.
Compartición: Zonas de memoria que permiten acceso controlado a áreas
compartidas, como librerías, siempre respetando el requerimiento de protección.
Organización lógica: Los programas se organizan en módulos. Referencia a CPU. Los
módulos pueden escribirse y compilarse independientemente. Se otorgan grados de
protección a los datos.
Organización física: Se aplica una superposición que permite que varios módulos sean
asignados a la misma región de memoria. El programador no sabe cuánto espacio será
asignado.
Construcción de una aplicación:
Codificación
Traducción de código en instrucciones
Enlace con otros módulos
Carga de programa en memoria
Ejecución de la aplicación
VINCULAR: Determinar la zona de memoria fisca asignada y hacer dicha referencia en
la rutina principal del programa.
Registro base:
Dirección por debajo de la cual la aplicación no puede cargarse, se obliga enlace de
aplicaciones.
Registro de reubicación:
Las aplicaciones se desarrollan de tal manera que siempre inician en la dirección 0. El
registro base cambia a registro de reubicación, donde la memoria se reubica de forma
automática.
Fragmentación interna:
Ocurre en los sistemas con gestión de número fijo de procesos. En estos se realizan
particiones fijas para cada programa. La fragmentación interna viene a ser el espacio
de memoria no ocupada por un programa asignado a una partición.
Fragmentación externa:
Ocurre en los sistemas con gestión de un número variable de procesos, los cuales
tienen la finalidad de evitar el particionamiento de memoria. Se asigna la memoria
necesaria para un programa. El espacio disponible es llamado fragmento externo o
hueco.
Ventajas y desventajas de la gestión de un número fijo de procesos:
Ventajas:
Sencillo de implementar
No sobrecarga al sistema
Desventajas:
Emplea ineficientemente la memoria
El número de procesos activos es fijo, depende de las particiones asignadas
Ventajas y desventajas de la gestión de un número variable de procesos:
Ventajas:
No hay fragmentación, se aprovechan los espacios
Uso más eficiente de memoria principal
Desventajas:
Uso indebido de recursos (procesador)
Para evitar paginación se requiere compactación
Superposiciones:
Es la solución ante los programas demasiado grandes para ser contenidos en memoria
principal
Consta en dividir el programa en fragmentos, llamados superposiciones o overlays
Se ejecuta la superposición 0 1ro y luego al terminar invoca otra
El SO complejo admite varias superposiciones a la vez
El SO intercambia de manera automática las superposiciones entre disco y memoria de
manera dinámica
Dirección lógica:
Espacio de direcciones generadas por la CPU (programa)
Constan de un número de página y desplazamiento.
En partición simple, una dirección lógica es la posición de una palabra relativa al
comienzo del programa
Con paginación, el CPU convierte direcciones lógicas a físicas
Dirección física:
Direcciones de memoria principal asignadas
Utilizado para ubicar programa en RAM
El CPU convierte la dirección lógica en física mediante la tabla de páginas
Cuentan con número de marco y desplazamiento
Tabla de páginas:
Surgen como respuesta del mecanismo de paginación ante la imposibilidad de
gestionar los marcos sólo con un “registro base” cuando se requiere aprovechar
marcos no contiguos
El SO mantiene una tabla de página por cada proceso
Muestra la posición del marco
Ayuda al CPU a convertir de dirección lógica a física
Cada tabla contiene una entrada por cada página del proceso
Se indexa por número de página (tabla enlazada)
SISTEMA DE ARCHIVOS
Requisitos del sistema de archivos:
Debe ser capaz de almacenar una cantidad muy grande de información
La información debe sobrevivir una vez terminado el proceso que se usa
Debe existir la capacidad de que múltiples procesos accedan a la información en forma
concurrente
Campo, registro y archivo:
Campo: Elemento básico de información. Contiene un único valor y se caracteriza por
su longitud y tipo. Ej. Número de teléfono de un alumno
Registro: Colección de campos relacionados. Tratados como unidad. Ej. Datos del
alumno
Archivo: Colección de registros similares. Tratados como entidad con nombre único.
Puede tener acceso restringido. Ej. Directorio de teléfonos de alumnos
Base de datos: Colección de archivos relacionados que tienen relaciones establecidas
entre los archivos. Ej. Organización del Departamento
Estructura del sistema de archivos:
El sistema de archivos consta de 2 partes distintas:
Colección de archivos: Para el almacenamiento de datos relacionados
Estructura de directorios: Organiza y proporciona información sobre todos los
archivos y la variedad de estructuras de directorios
Extra (Protección de archivos): Necesaria en ambientes con múltiples usuarios
Memoria volátil:
Aquellas que requieren de energía eléctrica para almacenar información. Si se retira la
energía, se pierde toda la información. Ej. RAM, Cache
Memoria no volátil:
Aquellas que pueden retener información incluso sin electricidad. Son usadas
principalmente en las tareas de almacenamiento secundario. Generalmente son más
lentas, pero pueden almacenar más información por menor costo. Ej. HDD, flash, SSD,
ROM
Concepto de archivo:
Las computadoras pueden almacenar cualquier tipo de información en diversos
medios de almacenamiento, por lo que, para facilitar el uso del sistema de cómputo, el
sistema operativo proporciona una visión lógica y uniforme del almacenamiento de la
información. El SO realiza abstracción de las propiedades físicas de los dispositivos de
almacenamiento para definir una unidad lógica llama archivo
El SO mapea a los archivos sobre los dispositivos físicos, que por lo general son no
volátiles
Archivo: Colección de información relacionada con nombre y que se graba en
almacenamiento secundario. Tipo de dato abstracto
Proporción más pequeña de almacenamiento lógico
Secuencia de bits, bytes, líneas o registros con significado otorgado por el creador de
este mismo
Atributos de un archivo:
Reciben nombre (cadena de caracteres) otorgado por el usuario
Algunos SO distinguen entre mayúsculas y minúsculas; otros no.
Cuando se le asigna un nombre a un archivo, este se vuelve independiente del
proceso, del usuario y hasta incluso del sistema que lo creó
Atributos típicos:
Nombre
Tipo
Ubicación (apuntador y ubicación del archivo)
Tamaño
Protección (permisos)
Hora, fecha e identificación del usuario
Archivo fuente, objeto y ejecutable:
Un archivo tiene una estructura definida de acuerdo a su tipo:
Archivo de texto: Secuencia de caracteres organizados en líneas y páginas
Archivo fuente: Secuencia de subrutinas y funciones las cuales se organiza a su vez
como declaraciones seguidas por enunciados ejecutables (java)
Archivo objeto: Secuencia de Bytes organizados en bloques que pueden ser
entendidos por el enlazador del sistema. Compilados (obj)
Archivo ejecutable: Serie de secciones de código que el cargador puede llevar a la
memoria y ejecutar. Listos para correr (.exe)
Operaciones sobre archivos:
Crear archivos
Escribir archivos
Leer archivos
Reposicionarse dentro de un archivo
Borrar un archivo
Truncar un archivo
Operaciones sobre directorios:
Crear
Eliminar
Abrir
Cerrar
Leer
Vincular
Desvincular
SISTEMAS DISTRIBUIDOS
Definición:
Colección de computadoras independientes que dan al usuario la impresión de usar un
único sistema coherente
Elementos ocultos: computadoras, mecanismos de comunicación, organización interna
Consisten de dos o más nodos, en el que cada nodo es un sistema de cómputo con
hardware propio
Útiles para procesar tareas de gran desempeño computacional
Origen de los sistemas distribuidos:
Aparecen en la década de los 90, como resultado del mejoramiento continuo de los
CPU que daban más poder a las mainframes.
Aparición de redes LAN, MAN, WAN de alta velocidad
Características de los sistemas operativos distribuidos:
Recursos compartidos (a través de sistemas de cómputo individuales)
Fiabilidad (Disponibilidad de recursos pese a fallas)
Rapidez de cómputo (Varias partes agilizan el cómputo)
Comunicación (Comunicación remota)
Crecimiento por incrementos (Agregar más hardware aumenta el potencial del
sistema)
Clasificación de los sistemas computacionales distribuidos:
Sistemas de cómputo en cluster: El hardware consiste en conjunto de estaciones de
trabajo con alto grado de homogeneidad, localizadas cercanas unas de otras y
conectadas a una misma red local (LAN) de alta velocidad. Buen precio/desempeño.
Los nodos cuentan con un nodo maestro.
Sistema de cómputo en grid: Sistemas que se constituyen como una federación de
sistema de cómputo, donde cada sistema suele trabajar bajo un dominio distinto, con
componentes de hardware y software totalmente distintos.
Tipos de sistemas distribuidos:
Sistemas computacionales distribuidos
o Sistemas de cómputo en cluster
o Sistemas de cómputo en grid
Sistemas de información distribuidos
o Sistemas de procesamiento de transacciones
o Integración de aplicaciones gerenciales
Sistemas ubicuos distribuidos
Middleware:
Software que interconecta componentes de software o aplicaciones. Provee servicio
de mensajes entre aplicaciones para que estas puedan comunicarse, así como de
proveer las comunicaciones a aplicaciones a través de red
Capa de software que brinda soporte a computadoras y redes heterogéneas,
constituida por SO y recursos básicos de comunicación
Interbloqueo en sistemas distribuidos:
Ocurre cuando los procesos que se encuentran diseminados en diferentes nodos esperan
eventos que no van a pasar. Tres tipos de interbloqueo:
Interbloqueo de recursos: Cuando un proceso bloqueado retiene un recurso y otros
esperan a que lo suelte, cosa que no va a ocurrir
Interbloqueo de comunicación: Aparece cuando se dan esperas circulares (loops) para
señales de comunicación. Un proceso espera un evento, sigue a otro proceso y este
sigue así mismo al otro y que también espera un recurso del otro
Interbloqueo fantasma: Debido a los retrasos en las comunicaciones asociadas a la
computación distribuida que pueden hacer que un algoritmo de detección de
interbloqueos detecte a uno que no existe
Algoritmos de prevención:
Wound-wait: Niega la condición de no preferencia. Un proceso espera a otro proceso
si el primero fuera creado antes del segundo. Un proceso reiniciaría otro proceso si el
primero fue creado después que el segundo
Die-wait: Niega la condición de espera, donde un proceso espera a otro si el primero
fue creado después del segundo. El proceso se reiniciará por cuenta propia si fue
creado antes que el segundo proceso
Algoritmos de detección:
Detección de interbloqueo centralizada: El sistema se encuentra por completo
mediante un sitio dedicado, donde aquel proceso que requiera o libere un recurso
informa al nodo central, que realiza verificaciones de forma continua
Detección de interbloqueo jerárquica: Se ordena cada nodo que conforma el sistema
distribuido dentro de un árbol, donde cada nodo recolecta información de la
asignación de recursos para los nodos que dependan de él
Detección de interbloqueo distribuida: Ubica la responsabilidad de la detección de
interbloqueo en cada sitio, que a su vez consulta otros tres sitios para determinar si
existe otro sitio asociado a un interbloqueo
SEGURIDAD EN SISTEMAS OPERATIVOS
Biometría:
Uso de información única personal para identificar al usuario. Ej. Huella dactilar, scan
de iris, scan de cara.
Autenticación:
Identificar al usuario y las acciones que están permitidas hacer
Se puede identificar por: biometría, ítem de identificación, password o pin
Métodos para validar que el usuario que intenta entrar al Sistema. Método para
identificar al usuario. Se recomienda usar una contraseña segura y larga. Existen,
además, varias formas de autenticación, como autenticación biométrica, Smart Cards,
kerberos.
Dos pasos: Identificación y verificación
Formación de contraseñas:
Que sea aproximadamente 7 caracteres. Mayúsculas y minúsculas. Caracteres
especiales y números.
Antivirus y Worms:
Antivirus: Software que intenta proteger la computadora de virus. Funciona a base de
una base de datos de firmas, la cual se actualiza constantemente. Así mismo, se da un
scaneo heurístico, el cual consiste en detectar virus que aún no se han identificado,
cerrando o suspendiendo algún programa con comportamiento de virus
Worms: Código ejecutable que se esparce en una red, infectando toda esta.
Raramente requiere alguna acción para que se propague. No es necesario adjuntarla a
otro programa.
Denegación de servicio:
DoS attack: Consiste en sobrecargar la red o el servidor con múltiples tareas o
procesos, haciendo que la red se sature y que las computadoras se desconecten.
Firewall:
Protege la conexión de red local de intrusos. Controla, además, el tráfico de la red.
Criptografía:
Cifrado y descifrado de datos. Usar llave secreta o simétrica, que sirve tanto para cifrar
como para descifrar. Intermediario para la llave, surgen los centros de distribución de
llave. También hay llaves públicas, se difunden por internet. Varios modelos de llave
publica: RSA (token). Te garantiza línea de comunicación segura.