Get Started. It's Free
or sign up with your email address
Sistemas Operativos by Mind Map: Sistemas Operativos

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. Estructuras

6.1. Interfaz

6.1.1. Interprete de Comandos

6.1.2. Interfaz Gráfica de Usuario

6.2. Llamadas al Sistema

6.2.1. Es el mecanismo usado por una aplicación para solicitar un servicio al sistema operativo.

6.2.1.1. Tipos

6.2.1.1.1. Control de Procesos

6.2.1.1.2. Administracion de Archivos

6.2.1.1.3. Administracion de Dispositivos

6.2.1.1.4. Mantenimiento de informacion

6.2.1.1.5. Comunicacion

6.3. Tipo

6.3.1. Simple (Monolíticos)

6.3.1.1. Fue creada para proporcionar una máxima funcionalidad dentro del menor espacio posible.

6.3.2. En Niveles

6.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.

6.3.3. MicroKernels

6.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.

6.3.4. Modulos

6.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,

7. Sincronización de Procesos

7.1. Seccion Critica

7.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.

7.1.2. Para solucionar esto, se debe tener en cuenta

7.1.2.1. Exclusion Mutua

7.1.2.1.1. Si el proceso esta ejecutando su seccion critica, ningun otro proceso puede ejecutar su sección critica.

7.1.2.2. Expropiacion

7.1.2.2.1. Decirle que se acabo su tiempo

7.1.2.3. Espera Limitada

7.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.

7.1.3. Se gestiona en sistemas operativos por medio

7.1.3.1. Metodo de kernels apropiativos

7.1.3.1.1. Desaloja un proceso mientras se ejecute en modo kernel

7.1.3.2. Metodo de kernels no apropiativos

7.1.3.2.1. Permite que el proceso salga de dicho modo hasta que se bloquee, o hasta que se ceda voluntariamente.

7.1.4. Solucion de Peterson

7.1.4.1. Solucion practica en software

7.2. Semaforos

7.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.

7.3. Monitores

7.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.

7.3.1.1. Los procesos,  cuando desean  comunicarse o  sincronizarse utilizan  los recursos privados  del Monitor,  mediante invocación  de los procedimientos  públicos.

7.4. Mutex

7.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.

8. Memoria Principal

8.1. BackGround

8.1.1. El programa debe ser llevado desde el disco a la memoria y dentro de un proceso para que se ejecute.

8.1.2. La cache se encuentra entre la memoria principal y los registros de la CPU

8.1.3. La memoria principal puede tomar muchos ciclos, causando una parada

8.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.

8.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.

8.3. Pasos procesamiento de un programa de usuario.

8.3.1. Tiempo de Carga

8.3.2. Tiempo de Compilacion

8.3.3. Tiempo de Ejecucion

8.4. Direcciones

8.4.1. CPU

8.4.1.1. Direccion Logica (Virtual)

8.4.1.1.1. MMU - Pasa de logico a fisico

8.4.2. Memoria

8.4.2.1. Direccion Fisica

8.4.2.1.1. Los programas usan direcciones logicas, y el hardware de conversion (mapeo) de memoria, las convierte en direcciones fisicas.

8.5. Carga Dinamica

8.5.1. Un rutina no sera cargado en memoria, hasta que sea invocada por otra rutina o por el programa.

8.5.2. Las rutinas estaran guardas en disco, solo estaran en memoria cuando sean invocadas.

8.6. Montaje Dinamico

8.6.1. Enlace estático: bibliotecas de sistema y código de programa combinados Cargador en la imagen del programa binario

8.6.2. Enlace dinámico: se retrasa la conexión hasta el tiempo de ejecución

8.6.3. Stub

8.6.3.1. Pequeño trozo de código, utilizado para localizar la rutina

8.6.3.2. Se sustituye por la dirección de la rutina y ejecuta la rutina

8.6.4. Swapping (Intercambio)

8.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.

8.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.

8.6.4.3. Los cambios normalmente tienen establecidos un quantum de tiempo aceptable para una regular ejecucion.

8.7. Asignacion de Memoria Contigua

8.7.1. La memoria siempre esta dividida en 2

8.7.1.1. El espacio para el SO

8.7.1.1.1. Ubicado en baja memoria, normalmente con el vector de interrupcion.

8.7.1.2. El espacio para los procesos del usuario

8.7.1.2.1. Ubicada en alta memoria

8.8. Asignacion de memoria

8.8.1. Se realiza una asignación de particiones múltiples.

8.8.1.1. Se encontraran agujeros de varios tamaños en la memoria.

8.8.1.2. Cuando llega un proceso, se le asigna memoria desde un agujero lo suficientemente grande para acomodarlo.

8.8.2. Formas de ajustar la memoria

8.8.2.1. Primer ajuste: Establecer el proceso en el agujero que sea lo suficientemente grande.

8.8.2.2. Mejor ajuste: asigne el agujero más pequeño que sea lo suficientemente grande.

8.8.2.3. Lo peor: ajustarlo en el agujero mas grande.

8.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.

8.9. Fragmentacion

8.9.1. Fragmentación externa - el espacio de memoria total existe para satisfacer una solicitud, pero no es contigua.

8.9.1.1. Reducir la fragmentación externa por compactación.

8.9.1.1.1. Mueva el contenido de la memoria para colocar toda la memoria libre en un bloque grande.

8.9.1.1.2. Es posible si la reubicacion es dinamica

8.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.

8.10. Segmentacion

8.10.1. Esquema de administración de memoria que admite la vista de usuario de la memoria

8.10.1.1. Un programa es una colección de segmentos

8.10.1.2. Un segmento es una unidad lógica tal como: Programa principal, procedimiento, función, Método.

8.10.1.3. Base - contiene la dirección física inicial donde los segmentos van a residir en la memoria.

8.10.1.3.1. El registro de longitud de la tabla de segmentos (STLR) indica el número de segmentos utilizado por un programa.

8.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.

8.10.1.4. Limit - especifica la longitud del segmento

8.11. Paginacion

8.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.

8.11.1.1. Metodo basico

8.11.1.1.1. Divida la memoria física en bloques de tamaño fijo llamados marcos

8.11.1.1.2. Y dividir la memoria logica en bloques llamados paginas.

8.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.

8.11.1.1.4. Para ejecutar un programa de tamaño N páginas, necesita encontrar N marcos libres

8.11.2. Evita la fragmentación externa Evita el problema de trozos de memoria de tamaño variable

8.12. Tabla de Paginas

8.12.1. La tabla de páginas se guarda en la memoria principal

8.12.2. El registro base de la tabla de páginas (PTBR) apunta a la tabla de páginas

8.12.3. El registro de longitud de la tabla de páginas (PTLR) indica el tamaño de la tabla de páginas

9. Sistemas de Archivos

9.1. Estructura

9.1.1. Dispositivos

9.1.2. Control de E/S

9.1.3. Sistema basico de archivos

9.1.4. modulo de organizacion

9.1.5. sistema logico de archivos

9.1.6. Programas

9.2. Implementacion

9.2.1. El bloque de control de arranque contiene información que el sistema necesita para arrancar. Normalmente es un volumen.

9.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.

9.2.3. El bloque de control de archivos por archivo (FCB) contiene muchos archivos_ Número de inode, permisos, tamaño, fechas.

9.3. Particiones y montajes

9.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

9.3.2. La partición raíz contiene el sistema operativo, otras particiones pueden contener otros OS

9.4. Sistema de Archivos Virtuales (VFS)

9.4.1. VFS permite que se use la misma interfaz de llamada de sistema (la API) para diferentes tipos de sistemas de archivos

9.5. Implementacion directorio

9.5.1. Lista lineal : Nombres de archivo con puntero a los bloques de datos

9.5.1.1. Simple de programar Demora en ejecutar Tiempo de búsqueda lineal

9.5.2. Tabla hash: lista lineal con estructura de datos hash

9.5.2.1. Disminuye el tiempo de búsqueda en el directorio

9.5.2.2. Colisiones: situaciones en las que dos nombres de archivo tienen el mismo nombre ubicación

9.6. Metodos de Asignacion

9.6.1. Un método de asignación se refiere a cómo se asignan los bloques de disco para los archivos

9.6.1.1. Asignación contigua - cada archivo ocupa un conjunto de bloques contiguos

9.6.1.1.1. Mejor rendimiento en la mayoría de los casos

9.6.1.2. Sencilla - sólo ubicación inicial (bloque #) y longitud (número de Bloques)

9.6.1.2.1. fragmentación

9.7. Extensiones

9.7.1. Los sistemas de archivos basados en extensiones asignan bloques de disco en extensiones

9.7.2. Una extensión es un bloque contiguo de discos

9.7.2.1. Un archivo consta de una o más extensiones

9.7.3. Las extensiones se asignan para la asignación de archivos

9.8. Gestión del Espacio Libre

9.8.1. Agrupamiento

9.8.1.1. Modifique la lista enlazada para almacenar la dirección de los siguientes n-1 bloques libres en la primera libre

9.8.2. Contando

9.8.2.1. Mantener la dirección del primer bloque libre y contar los siguientes bloques libres

9.8.2.1.1. Debido a que el espacio es frecuentemente utilizado y liberado contiguamente, con  asignación contigua, extensiones o agrupación

10. Sistemas de almacenamiento masivo

10.1. Discos Magneticos

10.1.1. Los discos pueden ser removibles

10.1.2. El tiempo de posicionamiento (tiempo de acceso aleatorio) es el tiempo para mover el brazo del disco a la posición deseada.

10.1.3. Las unidades giran de 60 a 250 veces por segundo

10.1.4. Los discos magnéticos proporcionan la mayor parte del almacenamiento

10.2. Discos Estado Solido

10.2.1. Memoria no volátil utilizada como un disco duro

10.2.2. Muchas variaciones tecnológicas

10.2.3. Más caro por MB

10.2.4. Menos capacidad, Pero mucho más rápido

10.3. Cintas Magneticas

10.3.1. Relativamente permanente y contiene gran cantidad de datos

10.3.2. Acceso aleatorio ~ 1000 veces más lento que el disco

10.3.3. Se utiliza principalmente para copias de seguridad, almacenamiento de datos de uso infrecuente, transferencia

10.3.4. Se mantiene en el carrete y se enrolla o rebobina la cabeza de lectura / escritura

10.4. Estructura del Disco

10.4.1. Las unidades de disco se tratan como grandes matrices 1-dimensionales de bloques lógicos,

10.4.2. La matriz 1-dimensional de bloques lógicos se mapea en los sectores de

10.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.

10.4.4. La dirección lógica a física debe ser fácil

10.5. Calendarizacion en Disco

10.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.

10.5.2. Minimizar tiempo de búsqueda

10.5.3. Tiempo de búsqueda ≈ distancia de búsqueda

10.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.

10.5.5. Tipos de Calendarizacion

10.5.5.1. FCFS

10.5.5.1.1. Orden en que llegaron, en ese orden se atieden

10.5.5.2. SSTF

10.5.5.2.1. El que gaste menos tiempo o el mas cercano

10.5.5.3. SCAN

10.5.5.3.1. Algoritmo del Ascensor

10.5.5.4. C-SCAN

10.5.5.4.1. Solo atiende en una direccion

10.5.5.5. C-LOOK

10.5.5.5.1. No va hasta los extremos

10.6. Estructura RAID

10.6.1. RAID - matriz redundante de discos económicos

10.6.2. Múltiples unidades de disco proporciona confiabilidad a través de la redundancia

10.6.3. Tengo muchos discos, y mi sistema operativo lo ve como un solo disco.

11. Procesos

11.1. Un programa en ejecución

11.1.1. Estados

11.1.1.1. Nuevo

11.1.1.2. Inicio

11.1.1.3. Espera

11.1.1.4. Listo

11.1.1.5. Terminado

11.1.2. En memoria

11.1.2.1. Stack

11.1.2.2. Heap

11.1.2.3. Data

11.1.2.4. Text

11.1.3. Control de Procesos

11.1.3.1. Estado

11.1.3.2. Contador

11.1.3.2.1. Localiza la siguiente instruccion

11.1.3.3. Registro CPU

11.1.3.3.1. Contiene el registro de todos los procesos.

11.1.3.4. Prioridades

11.1.3.4.1. Calendario CPU

11.1.3.5. Informacion Manejo de Memoria

11.1.4. Cambio de Contexto

11.1.4.1. Bloque de control del proceso (BCP)

11.1.4.1.1. Programa

11.1.4.1.2. Estado

11.1.4.1.3. PID

11.1.4.1.4. Posición de Memoria

11.1.4.1.5. Controla

11.1.4.2. Cuando la CPU cambia a otro proceso, guarda el estado del anterior proceso y carga el estado guardado del proceso nuevo.

11.1.5. Candelarisadores

11.1.5.1. Largo Termino

11.1.5.1.1. Es el que controla los procesos que están listos en la cola de listos.

11.1.5.2. Corto Termino

11.1.5.2.1. Selecciona los procesos que seran ejecutados o los siguientes en ejecutar, y los que estan alocados en la CPU.

11.1.6. Tipo

11.1.6.1. Activo

11.1.6.2. Pasivo

12. Hilos

12.1. Es un proceso de bajo costo

12.1.1. Programacion multiproceso

12.1.1.1. Paralelismo

12.1.1.1.1. Tareas

12.1.1.1.2. Datos

12.1.1.1.3. Ejecuta varios procesos a la vez, sin ninguna interrupcion

12.1.1.2. Concurrencia

12.1.1.2.1. Ejecuta procesos compartidos en un mismo nucleo

12.1.2. Modelos Multihilo

12.1.2.1. Conformados por Hilos de Usuario y Hilos de Kernel

12.1.2.1.1. Uno a Uno

12.1.2.1.2. Muchos a Muchos

12.1.2.1.3. Muchos a Uno

12.1.2.1.4. 2 Nucleos

12.1.3. Señales

12.1.3.1. Se usan para notificar a un procesos sobre algun evento que ocurrio.

13. Scheduling ( Candelarizacion )

13.1. Criterio

13.1.1. Tiempo de espera

13.1.2. Tiempo de respuesta

13.1.3. Utilizacion CPU

13.1.4. Turnaround Time

13.1.4.1. Es el intervalo de tiempo desde que un proceso es cargado hasta que este finaliza su ejecución.

13.1.5. Rendimiento

13.1.5.1. Es el número de procesos que ejecutaron completamente por unidad de tiempo

13.2. Efecto Convoy

13.2.1. Los procesos pequeños esperan a los procesos largos.

13.3. Tipos

13.3.1. Proceso enviado, proceso iniciado

13.3.1.1. Los procesos son ejecutados en el orden que llegan a la cola de procesos listos.

13.3.2. Primero los procesos pequeños (SJF)

13.3.2.1. El algoritmo asocia a los procesos el largo de su próximo CPU-burst

13.3.2.2. Cuando el procesador queda disponible se le asigna al proceso que tenga el menor CPU-burst.

13.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.

13.3.3. Prioridad

13.3.3.1. A la CPU se le asigna el proceso con las mas alta prioridad

13.3.3.2. SJF se puede ver como un algoritmo de prioridad donde la prioridad esta dada por el próximo CPU-burst.

13.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.

13.3.4. Round Robin

13.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.

13.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.

13.3.4.3. Cambio de contexto

13.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.

13.4. Colas Multinivel

13.4.1. Cada cola puede tener su algoritmo de candelarizacion

13.4.2. Cada cola puede tener un proceso y estos colas pueden tener relacion

13.5. Distribución de periodos CPU (bursts)

14. DeadLocks - Bloqueos

14.1. Caracteristicas

14.1.1. Exclusion Mutua

14.1.1.1. Los procesos reclaman control exclusivo de los recursos que piden

14.1.1.1.1. Se previene

14.1.2. No expropiacion

14.1.2.1. Los recursos no pueden ser extraídos de los procesos que los tienen hasta su completa utilización

14.1.2.1.1. Se previene

14.1.3. Hold and Wait (Tome y Espere)

14.1.3.1. Los procesos mantienen los recursos que ya les han sido asignados mientras esperan por recursos adicionales

14.1.3.1.1. Se previene

14.1.4. Espera Circular

14.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

14.1.4.1.1. Se previene

14.2. Atender

14.2.1. Prevenirlos

14.2.1.1. Atacar Condiciones

14.2.1.1.1. 1 Instancia

14.2.1.1.2. Muchas Instancias

14.2.1.2. Tener Cuidado

14.2.2. Solucionarlos (Curar)

14.2.2.1. 1 Instancia

14.2.2.1.1. Solucion: Grafo

14.2.2.2. Muchas Instancias

14.2.2.2.1. Solucion: Algoritmo del Banquero

14.2.3. Nada (Avestruz)

14.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.

14.3.1. Los recursos pueden ser “apropiativos”, como la cpu y la memoria principal.

14.3.1.1. La secuencia de eventos necesarios para utilizar un recurso es la siguiente.

14.3.1.1.1. Solicitar el recurso.

14.3.1.1.2. Utilizar el recurso.

14.3.1.1.3. Liberar el recurso.

15. Memoria Virtual

15.1. Paginacion por demanda

15.1.1. se busca disminuir los tiempos de respuesta y aumentar la cantidad de programas en memoria.

15.1.1.1. intercambiador perezoso - Es un sistema paginado con intercambio en donde se intercambia paginas cuando no son necesarias

15.1.2. El proceso que se sigue es el siguiente:

15.1.2.1. Si la página requerida ya esta en memoria, simplemente se lee.

15.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.

15.2. Segmentacion por demanda

15.2.1. Solamente se cargan los segmentos que se necesiten en una ejecucion

15.2.1.1. El SO controla los segmentos por medio de un descriptor

15.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.

15.3. Es una tecnica de gestion de la memoria que permite que el SO disponga de mayor cantidad de memoria que este disponible fisicamente.

15.4. Algoritmos de reemplazo de página y marco

15.4.1. FIFO

15.4.2. Optimal Algoritmo

15.4.2.1. Implementación del contador

15.4.2.1.1. Cada entrada de página tiene un contador; Cada vez que se hace referencia a la página

15.4.2.2. Implementación de la pila

15.4.2.2.1. Mantenga una pila de números de página en un formulario de doble enlace:

15.4.3. LRU

15.4.3.1. LRU necesita hardware especial y aún lento

15.4.3.2. Bit de referencia

15.4.3.3. Algoritmo de segunda oportunidad

15.4.4. Algoritmos de conteo

15.4.4.1. Mantenga un contador del número de referencias que se han hecho a cada página

15.4.5. Algoritmos de búfer de página

15.4.5.1. Mantenga una piscina de marcos libres siempre

16. Interfaz de sistema de archivos

16.1. Concepto de archivo

16.1.1. Espacio de direcciones lógicas contiguas

16.1.2. Tipos: Datos - Numerico, Byte Programa

16.1.2.1. Depende su extension, el tipo de archivo

16.1.3. Contenido definido por el creador del archivo

16.1.4. Archivo logico mas pequeño

16.2. Atributos de los archivos

16.2.1. Nombre,  identificador, tipo, ubicacion, fecha, proteccion

16.2.1.1. La información sobre los archivos se mantiene en la estructura de directorios, que es Mantenido en el disco

16.3. Operaciones con archivos

16.3.1. Crear, escribir, leer, truncar, abrir, cerrar

16.3.1.1. Para abrir un archivo se necesita

16.3.1.1.1. Tabla de archivos abiertos: pistas de archivos abiertos

16.3.1.1.2. Puntero a la última ubicación de lectura / escritura

16.3.1.1.3. File-open count: contador del número de veces que un archivo está abierto

16.3.1.1.4. Ubicación del disco del archivo: caché de información de acceso a datos

16.3.1.2. Abrir un archivo con bloqueo

16.3.1.2.1. Tipos

16.4. Estructura de Registro de Archivos

16.4.1. Simple

16.4.1.1. Líneas Longitud fija Longitud variable

16.4.2. Complejo

16.4.2.1. Documento con formato  Archivo de carga reubicable

16.5. Estructura de un disco

16.5.1. El disco se puede subdividir en particiones

16.5.2. El disco o la partición se pueden utilizar sin procesar - sin un sistema de archivos

16.5.3. Entidad que contiene el sistema de archivos conocido como un volumen

16.6. Tipos de Sistemas de Archivos

16.6.1. Ejemplos en Solaris

16.6.1.1. Ufs, zfs - sistemas de archivos de propósito general

16.6.1.2. Ctfs - para la gestión de demonios

16.6.1.3. Tmpfs -  memoria para E / S rápida y temporal

16.7. Organizacion directorio

16.7.1. El directorio se organiza lógicamente para obtener

16.7.1.1. Eficiencia: localizar rápidamente un archivo

16.7.1.2. Nombrar - conveniente para los usuarios

16.7.1.3. Dos usuarios pueden tener el mismo nombre para archivos diferentes

16.7.1.4. El mismo archivo puede tener varios nombres diferentes

16.7.2. Tipos de Estructuras de directorios

16.7.2.1. Un nivel

16.7.2.2. Dos Niveles

16.7.2.3. Arbol

16.7.2.4. Grafo Aciclico

16.7.2.5. Grafo General

16.8. Comparticion de Archivos

16.8.1. El intercambio de archivos en sistemas multiusuario es deseable

16.8.2. La compartición puede hacerse mediante un esquema de protección

16.8.2.1. El propietario / creador del archivo debe ser capaz de controlar:

16.8.2.1.1. Tipos de acceso

16.8.2.1.2. por quién

16.8.2.1.3. Qué se puede hacer

16.8.2.1.4. Ej: 710 Cada digito define el acceso a un tipo de usuario

16.8.3. En sistemas distribuidos, los archivos pueden ser compartidos a través de una red

16.8.4. Network File System (NFS) es un sistema común de distribución compartida de archivos