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