
1. Son un Software
1.1. De tipo
1.1.1. Privado
1.1.2. Libre
1.2. Sus estados son
1.2.1. Abandonware
1.2.2. Freeware
1.2.3. Shareware
1.2.4. Dominio Publico
1.3. Conjunto de órdenes y programas que controlan los procesos básicos de una computadora y permiten el funcionamiento de otros programas.
2. Sistemas Pioneros o Base
2.1. UNIX
2.2. BSD
3. Principales Sistemas de la Actualidad
3.1. GNU/Linux
3.1.1. Es uno de los términos empleados para referirse a la combinación del núcleo o kernel libre similar a Unix denominado Linux con el sistema operativo GNU.
3.1.2. Creado por
3.1.2.1. Linus Torvalds
3.2. Windows
3.2.1. Creado por
3.2.1.1. Bill Gates
3.3. Mac
3.3.1. Creado por
3.3.1.1. Steve Jobs
4. FSF (Free Software Foundation)
4.1. Se dedica a eliminar las restricciones sobre la copia, redistribución, entendimiento, y modificación de programas de computadoras.
4.2. Fundada por
4.2.1. Richard Stallman
4.2.1.1. Tambien creador de GNU
4.2.1.1.1. Un sistema operativo de software libre, es decir, respeta la libertad de los usuarios.
5. Licencia GPL (General Public License)
5.1. Derivaciones
5.1.1. AGPL
5.1.1.1. Establece que se debe distribuir el software entre todos los usuarios que sean beneficiarios de un servicio de este.
5.1.2. LGPL
5.1.2.1. Es una licencia derivada de la GPL que dice que las modificaciones que se realicen a un software bajo esta licencia, no están amarrados a ella o a la GPL, entonces permite a los desarrolladores usar software GPL o LGPL sin estar obligados a que el producto final esté bajo dichas licencias.
5.2. Objetivo
5.2.1. Puedes instalar y usar un programa GPL en un ordenador o en tantos como te apetezca, sin limitación. También puedes modificar el programa para adaptarlo a lo que tu quieras que haga. Además, podrás distribuir el programa GPL tal cual o después de haberlo modificado.
6. Procesos
6.1. Un programa en ejecución
6.1.1. Estados
6.1.1.1. Nuevo
6.1.1.2. Inicio
6.1.1.3. Espera
6.1.1.4. Listo
6.1.1.5. Terminado
6.1.2. En memoria
6.1.2.1. Stack
6.1.2.2. Heap
6.1.2.3. Data
6.1.2.4. Text
6.1.3. Control de Procesos
6.1.3.1. Estado
6.1.3.2. Contador
6.1.3.2.1. Localiza la siguiente instruccion
6.1.3.3. Registro CPU
6.1.3.3.1. Contiene el registro de todos los procesos.
6.1.3.4. Prioridades
6.1.3.4.1. Calendario CPU
6.1.3.5. Informacion Manejo de Memoria
6.1.4. Cambio de Contexto
6.1.4.1. Bloque de control del proceso (BCP)
6.1.4.1.1. Programa
6.1.4.1.2. Estado
6.1.4.1.3. PID
6.1.4.1.4. Posición de Memoria
6.1.4.1.5. Controla
6.1.4.2. Cuando la CPU cambia a otro proceso, guarda el estado del anterior proceso y carga el estado guardado del proceso nuevo.
6.1.5. Candelarisadores
6.1.5.1. Largo Termino
6.1.5.1.1. Es el que controla los procesos que están listos en la cola de listos.
6.1.5.2. Corto Termino
6.1.5.2.1. Selecciona los procesos que seran ejecutados o los siguientes en ejecutar, y los que estan alocados en la CPU.
6.1.6. Tipo
6.1.6.1. Activo
6.1.6.2. Pasivo
7. Hilos
7.1. Es un proceso de bajo costo
7.1.1. Programacion multiproceso
7.1.1.1. Paralelismo
7.1.1.1.1. Tareas
7.1.1.1.2. Datos
7.1.1.1.3. Ejecuta varios procesos a la vez, sin ninguna interrupcion
7.1.1.2. Concurrencia
7.1.1.2.1. Ejecuta procesos compartidos en un mismo nucleo
7.1.2. Modelos Multihilo
7.1.2.1. Conformados por Hilos de Usuario y Hilos de Kernel
7.1.2.1.1. Uno a Uno
7.1.2.1.2. Muchos a Muchos
7.1.2.1.3. Muchos a Uno
7.1.2.1.4. 2 Nucleos
7.1.3. Señales
7.1.3.1. Se usan para notificar a un procesos sobre algun evento que ocurrio.
8. Estructuras
8.1. Interfaz
8.1.1. Interprete de Comandos
8.1.2. Interfaz Gráfica de Usuario
8.2. Llamadas al Sistema
8.2.1. Es el mecanismo usado por una aplicación para solicitar un servicio al sistema operativo.
8.2.1.1. Tipos
8.2.1.1.1. Control de Procesos
8.2.1.1.2. Administracion de Archivos
8.2.1.1.3. Administracion de Dispositivos
8.2.1.1.4. Mantenimiento de informacion
8.2.1.1.5. Comunicacion
8.3. Tipo
8.3.1. Simple (Monolíticos)
8.3.1.1. Fue creada para proporcionar una máxima funcionalidad dentro del menor espacio posible.
8.3.2. En Niveles
8.3.2.1. Su organización está dada como una jerarquía de capas donde cada una de ellas ofrece una interfaz clara y bien definida, la capa superior solamente utiliza los servicios y funciones que ofrece la capa inferior, es decir, la capa n sólo se comunica para obtener lo requerido con la capa n-1, donde la capa inferior es la más privilegiada.
8.3.3. MicroKernels
8.3.3.1. En este sistema las funciones centrales son manejadas por el núcleo(kernel) y la interfaz de usuario es manejada por el entorno(shell). El Microkernel se encarga de todo el código de un sistema, y de planificar los hilos(threads) con la finalidad de tener multitareas.
8.3.4. Modulos
8.3.4.1. Lo que caracteriza este tipo de estructura es que el kernel se compone por módulos, y cada uno de estos módulos se encuentra separado de forma independiente, tal que, si alguno falla no afecta a los otros, ni al núcleo,
9. Sincronización de Procesos
9.1. Seccion Critica
9.1.1. Es una porción de código de un programa en la que se accede a un recurso compartido (estructura de datos o dispositivo) que no debe ser accedido por más de un proceso o hilo en ejecución.
9.1.2. Para solucionar esto, se debe tener en cuenta
9.1.2.1. Exclusion Mutua
9.1.2.1.1. Si el proceso esta ejecutando su seccion critica, ningun otro proceso puede ejecutar su sección critica.
9.1.2.2. Expropiacion
9.1.2.2.1. Decirle que se acabo su tiempo
9.1.2.3. Espera Limitada
9.1.2.3.1. Existe un limite en el numero de veces que se permite que otros procesos entren a su sección critica, después de que el proceso ya haya realizado solicitud para ingresar a su sección critica.
9.1.3. Se gestiona en sistemas operativos por medio
9.1.3.1. Metodo de kernels apropiativos
9.1.3.1.1. Desaloja un proceso mientras se ejecute en modo kernel
9.1.3.2. Metodo de kernels no apropiativos
9.1.3.2.1. Permite que el proceso salga de dicho modo hasta que se bloquee, o hasta que se ceda voluntariamente.
9.1.4. Solucion de Peterson
9.1.4.1. Solucion practica en software
9.2. Semaforos
9.2.1. -Existen dos tipos de semáforos: Binarios y Contadores. -Un semáforo binario es un indicador (S) de condición que registra si un recurso está disponible o no.
9.3. Monitores
9.3.1. -Solo un hilo puede ejecutarse dentro del monitor. -Si un hilo trata de entrar al monitor cuando está ocupado, entonces se bloquea hasta que se desocupe.
9.3.1.1. Los procesos, cuando desean comunicarse o sincronizarse utilizan los recursos privados del Monitor, mediante invocación de los procedimientos públicos.
9.4. Mutex
9.4.1. Protege la sección crítica con una cerradura; A continuación, abre la cerradura con una variable booleana, que indica si la seccion critica está disponible o no.
10. Scheduling ( Candelarizacion )
10.1. Criterio
10.1.1. Tiempo de espera
10.1.2. Tiempo de respuesta
10.1.3. Utilizacion CPU
10.1.4. Turnaround Time
10.1.4.1. Es el intervalo de tiempo desde que un proceso es cargado hasta que este finaliza su ejecución.
10.1.5. Rendimiento
10.1.5.1. Es el número de procesos que ejecutaron completamente por unidad de tiempo
10.2. Efecto Convoy
10.2.1. Los procesos pequeños esperan a los procesos largos.
10.3. Tipos
10.3.1. Proceso enviado, proceso iniciado
10.3.1.1. Los procesos son ejecutados en el orden que llegan a la cola de procesos listos.
10.3.2. Primero los procesos pequeños (SJF)
10.3.2.1. El algoritmo asocia a los procesos el largo de su próximo CPU-burst
10.3.2.2. Cuando el procesador queda disponible se le asigna al proceso que tenga el menor CPU-burst.
10.3.2.3. – No expropiativo: una vez que se le asigna el procesador a un proceso no se le podrá quitar. – Expropiativo: Si un nuevo proceso aparece en la lista de procesos listos con menor CPU-burst, se le quita la CPU para asignarla al nuevo proceso.
10.3.3. Prioridad
10.3.3.1. A la CPU se le asigna el proceso con las mas alta prioridad
10.3.3.2. SJF se puede ver como un algoritmo de prioridad donde la prioridad esta dada por el próximo CPU-burst.
10.3.3.3. Se utiliza en general un esquema expropiativo ya que si un proceso con mayor prioridad que el que esta ejecutando arriba a la lista de procesos listos , será asignado al procesador.
10.3.4. Round Robin
10.3.4.1. Ejecuta cada proceso en un determinado tiempo (Quantum), entre 10 -100 milisegundos. Este tiempo hay que calcularlo para evitar perdida de tiempo con algunos procesos.
10.3.4.2. El quantum debe ser bastante mayor a lo que lleva realizar un cambio de contexto, sino se tendrá mucho overhead. A su vez, el tiempo de quantum incide en los tiempos de retorno.
10.3.4.3. Cambio de contexto
10.3.4.3.1. Cambio de contexto: Salvar registros del procesador en PCB del proceso saliente. Cargar los registros con los datos del PCB del proceso entrante.
10.4. Colas Multinivel
10.4.1. Cada cola puede tener su algoritmo de candelarizacion
10.4.2. Cada cola puede tener un proceso y estos colas pueden tener relacion
10.5. Distribución de periodos CPU (bursts)
11. DeadLocks - Bloqueos
11.1. Caracteristicas
11.1.1. Exclusion Mutua
11.1.1.1. Los procesos reclaman control exclusivo de los recursos que piden
11.1.1.1.1. Se previene
11.1.2. No expropiacion
11.1.2.1. Los recursos no pueden ser extraídos de los procesos que los tienen hasta su completa utilización
11.1.2.1.1. Se previene
11.1.3. Hold and Wait (Tome y Espere)
11.1.3.1. Los procesos mantienen los recursos que ya les han sido asignados mientras esperan por recursos adicionales
11.1.3.1.1. Se previene
11.1.4. Espera Circular
11.1.4.1. Existe una cadena circular de procesos en la que cada uno mantiene a uno o más recursos que son requeridos por el siguiente proceso de la cadena
11.1.4.1.1. Se previene
11.2. Atender
11.2.1. Prevenirlos
11.2.1.1. Atacar Condiciones
11.2.1.1.1. 1 Instancia
11.2.1.1.2. Muchas Instancias
11.2.1.2. Tener Cuidado
11.2.2. Solucionarlos (Curar)
11.2.2.1. 1 Instancia
11.2.2.1.1. Solucion: Grafo
11.2.2.2. Muchas Instancias
11.2.2.2.1. Solucion: Algoritmo del Banquero
11.2.3. Nada (Avestruz)
11.3. Cuando los recursos son compartidos entre usuarios. Pueden producirse bloqueos en los cuales los procesos de algunos usuarios nunca podrán llegar a su término.
11.3.1. Los recursos pueden ser “apropiativos”, como la cpu y la memoria principal.
11.3.1.1. La secuencia de eventos necesarios para utilizar un recurso es la siguiente.
11.3.1.1.1. Solicitar el recurso.
11.3.1.1.2. Utilizar el recurso.
11.3.1.1.3. Liberar el recurso.
12. Memoria Principal
12.1. BackGround
12.1.1. El programa debe ser llevado desde el disco a la memoria y dentro de un proceso para que se ejecute.
12.1.2. La cache se encuentra entre la memoria principal y los registros de la CPU
12.1.3. La memoria principal puede tomar muchos ciclos, causando una parada
12.2. Cuando se inicia un proceso, se le define su espacio en memoria, donde la base y el límite definen el espacio de las direcciones lógicas.
12.2.1. En memoria se guardan los registros del proceso, para lo cual el procesador tendrá una serie de direcciones para acceder rápidamente a ellos.
12.3. Pasos procesamiento de un programa de usuario.
12.3.1. Tiempo de Carga
12.3.2. Tiempo de Compilacion
12.3.3. Tiempo de Ejecucion
12.4. Direcciones
12.4.1. CPU
12.4.1.1. Direccion Logica (Virtual)
12.4.1.1.1. MMU - Pasa de logico a fisico
12.4.2. Memoria
12.4.2.1. Direccion Fisica
12.4.2.1.1. Los programas usan direcciones logicas, y el hardware de conversion (mapeo) de memoria, las convierte en direcciones fisicas.
12.5. Carga Dinamica
12.5.1. Un rutina no sera cargado en memoria, hasta que sea invocada por otra rutina o por el programa.
12.5.2. Las rutinas estaran guardas en disco, solo estaran en memoria cuando sean invocadas.
12.6. Montaje Dinamico
12.6.1. Enlace estático: bibliotecas de sistema y código de programa combinados Cargador en la imagen del programa binario
12.6.2. Enlace dinámico: se retrasa la conexión hasta el tiempo de ejecución
12.6.3. Stub
12.6.3.1. Pequeño trozo de código, utilizado para localizar la rutina
12.6.3.2. Se sustituye por la dirección de la rutina y ejecuta la rutina
12.6.4. Swapping (Intercambio)
12.6.4.1. Un proceso puede enviarsa temporalmente fuera de la memoria a un almacen de respaldo y luego volver a la memoria para su ejecución.
12.6.4.2. La mayor parte del tiempo de swap es el tiempo de transferencia; El tiempo de transferencia total es directamente Proporcional a la cantidad de memoria intercambiada.
12.6.4.3. Los cambios normalmente tienen establecidos un quantum de tiempo aceptable para una regular ejecucion.
12.7. Asignacion de Memoria Contigua
12.7.1. La memoria siempre esta dividida en 2
12.7.1.1. El espacio para el SO
12.7.1.1.1. Ubicado en baja memoria, normalmente con el vector de interrupcion.
12.7.1.2. El espacio para los procesos del usuario
12.7.1.2.1. Ubicada en alta memoria
12.8. Asignacion de memoria
12.8.1. Se realiza una asignación de particiones múltiples.
12.8.1.1. Se encontraran agujeros de varios tamaños en la memoria.
12.8.1.2. Cuando llega un proceso, se le asigna memoria desde un agujero lo suficientemente grande para acomodarlo.
12.8.2. Formas de ajustar la memoria
12.8.2.1. Primer ajuste: Establecer el proceso en el agujero que sea lo suficientemente grande.
12.8.2.2. Mejor ajuste: asigne el agujero más pequeño que sea lo suficientemente grande.
12.8.2.3. Lo peor: ajustarlo en el agujero mas grande.
12.8.3. A medida que se cargan procesos en memoria y se los elimina, el espacio de memoria libre se descompone en una serie de fragmentos pequeños.
12.9. Fragmentacion
12.9.1. Fragmentación externa - el espacio de memoria total existe para satisfacer una solicitud, pero no es contigua.
12.9.1.1. Reducir la fragmentación externa por compactación.
12.9.1.1.1. Mueva el contenido de la memoria para colocar toda la memoria libre en un bloque grande.
12.9.1.1.2. Es posible si la reubicacion es dinamica
12.9.2. Fragmentación interna: la memoria asignada puede ser ligeramente mayor que la memoria solicitada; Esta diferencia de tamaño hace perder un pequeño espacio de memoria sin utilizar.
12.10. Segmentacion
12.10.1. Esquema de administración de memoria que admite la vista de usuario de la memoria
12.10.1.1. Un programa es una colección de segmentos
12.10.1.2. Un segmento es una unidad lógica tal como: Programa principal, procedimiento, función, Método.
12.10.1.3. Base - contiene la dirección física inicial donde los segmentos van a residir en la memoria.
12.10.1.3.1. El registro de longitud de la tabla de segmentos (STLR) indica el número de segmentos utilizado por un programa.
12.10.1.3.2. El registro base de la tabla de segmentos (STBR) apunta a la tabla de segmentos de la ubicación en memoria.
12.10.1.4. Limit - especifica la longitud del segmento
12.11. Paginacion
12.11.1. Es un esquema de gestión de memoria, que permite que el espacio de direcciones físicas de un proceso pueda ser no contiguo.
12.11.1.1. Metodo basico
12.11.1.1.1. Divida la memoria física en bloques de tamaño fijo llamados marcos
12.11.1.1.2. Y dividir la memoria logica en bloques llamados paginas.
12.11.1.1.3. Se necesita configurar una tabla de páginas para traducir direcciones lógicas a físicas, este se encarga de llevar el control de los procesos en memoria.
12.11.1.1.4. Para ejecutar un programa de tamaño N páginas, necesita encontrar N marcos libres
12.11.2. Evita la fragmentación externa Evita el problema de trozos de memoria de tamaño variable
12.12. Tabla de Paginas
12.12.1. La tabla de páginas se guarda en la memoria principal
12.12.2. El registro base de la tabla de páginas (PTBR) apunta a la tabla de páginas
12.12.3. El registro de longitud de la tabla de páginas (PTLR) indica el tamaño de la tabla de páginas
13. Memoria Virtual
13.1. Paginacion por demanda
13.1.1. se busca disminuir los tiempos de respuesta y aumentar la cantidad de programas en memoria.
13.1.1.1. intercambiador perezoso - Es un sistema paginado con intercambio en donde se intercambia paginas cuando no son necesarias
13.1.2. El proceso que se sigue es el siguiente:
13.1.2.1. Si la página requerida ya esta en memoria, simplemente se lee.
13.1.2.2. Si no está en memoria, revisa si la referencia es válida. Si la referencia es inválida, se aborta. Si la referencia es válida, se intenta cargar la página.
13.2. Segmentacion por demanda
13.2.1. Solamente se cargan los segmentos que se necesiten en una ejecucion
13.2.1.1. El SO controla los segmentos por medio de un descriptor
13.2.1.2. Un proceso no necesita todos sus segmentos en memoria para ser ejecutado, el descriptor lleva un control de todos los segmentos por medio de un bit validez, el cual revisa si esta en memoria.
13.3. Es una tecnica de gestion de la memoria que permite que el SO disponga de mayor cantidad de memoria que este disponible fisicamente.
13.4. Algoritmos de reemplazo de página y marco
13.4.1. FIFO
13.4.2. Optimal Algoritmo
13.4.2.1. Implementación del contador
13.4.2.1.1. Cada entrada de página tiene un contador; Cada vez que se hace referencia a la página
13.4.2.2. Implementación de la pila
13.4.2.2.1. Mantenga una pila de números de página en un formulario de doble enlace:
13.4.3. LRU
13.4.3.1. LRU necesita hardware especial y aún lento
13.4.3.2. Bit de referencia
13.4.3.3. Algoritmo de segunda oportunidad
13.4.4. Algoritmos de conteo
13.4.4.1. Mantenga un contador del número de referencias que se han hecho a cada página
13.4.5. Algoritmos de búfer de página
13.4.5.1. Mantenga una piscina de marcos libres siempre
14. Sistemas de Archivos
14.1. Estructura
14.1.1. Dispositivos
14.1.2. Control de E/S
14.1.3. Sistema basico de archivos
14.1.4. modulo de organizacion
14.1.5. sistema logico de archivos
14.1.6. Programas
14.2. Implementacion
14.2.1. El bloque de control de arranque contiene información que el sistema necesita para arrancar. Normalmente es un volumen.
14.2.2. Bloque de control de volumen: contiene detalles del volumen, número total de bloques, número de bloques libres, tamaño de bloque.
14.2.3. El bloque de control de archivos por archivo (FCB) contiene muchos archivos_ Número de inode, permisos, tamaño, fechas.
14.3. Particiones y montajes
14.3.1. La partición puede ser un volumen que contenga un sistema de archivos en bruto. Una secuencia de bloques sin sistema de archivos
14.3.2. La partición raíz contiene el sistema operativo, otras particiones pueden contener otros OS
14.4. Sistema de Archivos Virtuales (VFS)
14.4.1. VFS permite que se use la misma interfaz de llamada de sistema (la API) para diferentes tipos de sistemas de archivos
14.5. Implementacion directorio
14.5.1. Lista lineal : Nombres de archivo con puntero a los bloques de datos
14.5.1.1. Simple de programar Demora en ejecutar Tiempo de búsqueda lineal
14.5.2. Tabla hash: lista lineal con estructura de datos hash
14.5.2.1. Disminuye el tiempo de búsqueda en el directorio
14.5.2.2. Colisiones: situaciones en las que dos nombres de archivo tienen el mismo nombre ubicación
14.6. Metodos de Asignacion
14.6.1. Un método de asignación se refiere a cómo se asignan los bloques de disco para los archivos
14.6.1.1. Asignación contigua - cada archivo ocupa un conjunto de bloques contiguos
14.6.1.1.1. Mejor rendimiento en la mayoría de los casos
14.6.1.2. Sencilla - sólo ubicación inicial (bloque #) y longitud (número de Bloques)
14.6.1.2.1. fragmentación
14.7. Extensiones
14.7.1. Los sistemas de archivos basados en extensiones asignan bloques de disco en extensiones
14.7.2. Una extensión es un bloque contiguo de discos
14.7.2.1. Un archivo consta de una o más extensiones
14.7.3. Las extensiones se asignan para la asignación de archivos
14.8. Gestión del Espacio Libre
14.8.1. Agrupamiento
14.8.1.1. Modifique la lista enlazada para almacenar la dirección de los siguientes n-1 bloques libres en la primera libre
14.8.2. Contando
14.8.2.1. Mantener la dirección del primer bloque libre y contar los siguientes bloques libres
14.8.2.1.1. Debido a que el espacio es frecuentemente utilizado y liberado contiguamente, con asignación contigua, extensiones o agrupación
15. Interfaz de sistema de archivos
15.1. Concepto de archivo
15.1.1. Espacio de direcciones lógicas contiguas
15.1.2. Tipos: Datos - Numerico, Byte Programa
15.1.2.1. Depende su extension, el tipo de archivo
15.1.3. Contenido definido por el creador del archivo
15.1.4. Archivo logico mas pequeño
15.2. Atributos de los archivos
15.2.1. Nombre, identificador, tipo, ubicacion, fecha, proteccion
15.2.1.1. La información sobre los archivos se mantiene en la estructura de directorios, que es Mantenido en el disco
15.3. Operaciones con archivos
15.3.1. Crear, escribir, leer, truncar, abrir, cerrar
15.3.1.1. Para abrir un archivo se necesita
15.3.1.1.1. Tabla de archivos abiertos: pistas de archivos abiertos
15.3.1.1.2. Puntero a la última ubicación de lectura / escritura
15.3.1.1.3. File-open count: contador del número de veces que un archivo está abierto
15.3.1.1.4. Ubicación del disco del archivo: caché de información de acceso a datos
15.3.1.2. Abrir un archivo con bloqueo
15.3.1.2.1. Tipos
15.4. Estructura de Registro de Archivos
15.4.1. Simple
15.4.1.1. Líneas Longitud fija Longitud variable
15.4.2. Complejo
15.4.2.1. Documento con formato Archivo de carga reubicable
15.5. Estructura de un disco
15.5.1. El disco se puede subdividir en particiones
15.5.2. El disco o la partición se pueden utilizar sin procesar - sin un sistema de archivos
15.5.3. Entidad que contiene el sistema de archivos conocido como un volumen
15.6. Tipos de Sistemas de Archivos
15.6.1. Ejemplos en Solaris
15.6.1.1. Ufs, zfs - sistemas de archivos de propósito general
15.6.1.2. Ctfs - para la gestión de demonios
15.6.1.3. Tmpfs - memoria para E / S rápida y temporal
15.7. Organizacion directorio
15.7.1. El directorio se organiza lógicamente para obtener
15.7.1.1. Eficiencia: localizar rápidamente un archivo
15.7.1.2. Nombrar - conveniente para los usuarios
15.7.1.3. Dos usuarios pueden tener el mismo nombre para archivos diferentes
15.7.1.4. El mismo archivo puede tener varios nombres diferentes
15.7.2. Tipos de Estructuras de directorios
15.7.2.1. Un nivel
15.7.2.2. Dos Niveles
15.7.2.3. Arbol
15.7.2.4. Grafo Aciclico
15.7.2.5. Grafo General
15.8. Comparticion de Archivos
15.8.1. El intercambio de archivos en sistemas multiusuario es deseable
15.8.2. La compartición puede hacerse mediante un esquema de protección
15.8.2.1. El propietario / creador del archivo debe ser capaz de controlar:
15.8.2.1.1. Tipos de acceso
15.8.2.1.2. por quién
15.8.2.1.3. Qué se puede hacer
15.8.2.1.4. Ej: 710 Cada digito define el acceso a un tipo de usuario
15.8.3. En sistemas distribuidos, los archivos pueden ser compartidos a través de una red
15.8.4. Network File System (NFS) es un sistema común de distribución compartida de archivos
16. Sistemas de almacenamiento masivo
16.1. Discos Magneticos
16.1.1. Los discos pueden ser removibles
16.1.2. El tiempo de posicionamiento (tiempo de acceso aleatorio) es el tiempo para mover el brazo del disco a la posición deseada.
16.1.3. Las unidades giran de 60 a 250 veces por segundo
16.1.4. Los discos magnéticos proporcionan la mayor parte del almacenamiento
16.2. Discos Estado Solido
16.2.1. Memoria no volátil utilizada como un disco duro
16.2.2. Muchas variaciones tecnológicas
16.2.3. Más caro por MB
16.2.4. Menos capacidad, Pero mucho más rápido
16.3. Cintas Magneticas
16.3.1. Relativamente permanente y contiene gran cantidad de datos
16.3.2. Acceso aleatorio ~ 1000 veces más lento que el disco
16.3.3. Se utiliza principalmente para copias de seguridad, almacenamiento de datos de uso infrecuente, transferencia
16.3.4. Se mantiene en el carrete y se enrolla o rebobina la cabeza de lectura / escritura
16.4. Estructura del Disco
16.4.1. Las unidades de disco se tratan como grandes matrices 1-dimensionales de bloques lógicos,
16.4.2. La matriz 1-dimensional de bloques lógicos se mapea en los sectores de
16.4.3. El mapeo continúa en orden a través de esa pista, entonces el resto de la En ese cilindro, y luego a través del resto de los cilindros desde.
16.4.4. La dirección lógica a física debe ser fácil
16.5. Calendarizacion en Disco
16.5.1. El sistema operativo es responsable de utilizar el hardware de manera eficiente Para las unidades de disco, esto significa tener un tiempo de acceso rápido y un ancho de banda de disco.
16.5.2. Minimizar tiempo de búsqueda
16.5.3. Tiempo de búsqueda ≈ distancia de búsqueda
16.5.4. El ancho de banda del disco es el número total de bytes transferidos, dividido por El tiempo total entre la primera solicitud de servicio y la finalización de la transferencia.
16.5.5. Tipos de Calendarizacion
16.5.5.1. FCFS
16.5.5.1.1. Orden en que llegaron, en ese orden se atieden
16.5.5.2. SSTF
16.5.5.2.1. El que gaste menos tiempo o el mas cercano
16.5.5.3. SCAN
16.5.5.3.1. Algoritmo del Ascensor
16.5.5.4. C-SCAN
16.5.5.4.1. Solo atiende en una direccion
16.5.5.5. C-LOOK
16.5.5.5.1. No va hasta los extremos
16.6. Estructura RAID
16.6.1. RAID - matriz redundante de discos económicos
16.6.2. Múltiples unidades de disco proporciona confiabilidad a través de la redundancia
16.6.3. Tengo muchos discos, y mi sistema operativo lo ve como un solo disco.