viernes, 27 de marzo de 2009

Integrantes

Maria Leal
Raquel Mendoza
Anabel Sisiruca
Johan Rodriguez
Kervis Rodriguez

Sistemas Operativos

Es un software de sistema, es decir, un conjunto de programas de computación destinados a realizar muchas tareas entre las que destaca la administración eficaz de sus recursos.
Comienza a trabajar cuando en memoria se carga un programa especifico y aun antes de ello, que se ejecuta al iniciar el equipo, o al iniciar una máquina virtual, y gestiona el hardware de la máquina desde los niveles más básicos, brindando una interfaz con el usuario.
Un sistema operativo se puede encontrar normalmente en la mayoría de los aparatos electrónicos que utilicen microprocesadores para funcionar, ya que gracias a éstos podemos entender la máquina y que ésta cumpla con sus funciones (teléfonos móviles, reproductores de DVD, autoradios, computadoras, radios,etc).

Funciones básicas
Interfaces del usuario

Es la parte del sistema operativo que permite comunicarse con él, de tal manera que se puedan cargar programas, acceder archivos y realizar otras tareas. Existen tres tipos básicos de interfaces: las que se basan en comandos, las que utilizan menús y las interfaces gráficas de usuario.

Administración de recursos
Sirven para administrar los recursos de hardware y de redes de un sistema informático, como el CPU, memoria, dispositivos de almacenamiento secundario y periféricos de entrada y de salida.

Administración de archivos
Un sistema de información contiene programas de administración de archivos que controlan la creación, borrado y acceso de archivos de datos y de programas. También implica mantener el registro de la ubicación física de los archivos en los discos magnéticos y en otros dispositivos de almacenamiento secundarios.

Administración de tareas
Los programas de administración de tareas de un sistema operativo administran la realización de las tareas informáticas de los usuarios finales. Los programas controlan que áreas tiene acceso al CPU y por cuánto tiempo. Las funciones de administración de tareas pueden distribuir una parte específica del tiempo del CPU para una tarea en particular, e interrumpir al CPU en cualquier momento para sustituirla con una tarea de mayor prioridad.

Servicio de soporte
Los servicios de soporte de cada sistema operativo dependerán de la implementación particular de éste con la que estemos trabajando. Entre las más conocidas se pueden destacar las implementaciones de Unix, desarrolladas por diferentes empresas de software, los sistemas operativos de Apple Inc., como Mac OS X para las computadoras de Apple In., los sistemas operativos de Microsoft, y las implementaciones de software libre, como GNU/Linux o BSD producidas por empresas, universidades, administraciones públicas, organizaciones sin fines de lucro y/o comunidades de desarrollo.



Componentes del Sistema Operativo

Características

Administración de tareas
Monotarea: Solamente puede ejecutar un proceso (aparte de los procesos del propio S.O.) en un momento dado. Una vez que empieza a ejecutar un proceso, continuará haciéndolo hasta su finalización y/o interrupción.
Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de S.O. normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente.

Administración de usuarios
Monousuario: Si sólo permite ejecutar los programas de un usuario al mismo tiempo.
Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus programas, accediendo a la vez a los recursos de la computadora. Normalmente estos sistemas operativos utilizan métodos de protección de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.

Manejo de recursos
Centralizado: Si permite utilizar los recursos de una sola computadora.
Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, periféricos... ) de más de una computadora al mismo tiempo.

Comparacion windows, Linux y Mac OS X

Gestion de Memoria

Memoria

La memoria es uno de los principales recursos de la computadora, la cual debe de administrarse con mucho cuidado. Aunque actualmente la mayoría de los sistemas de cómputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones actuales tienen también altos requerimientos de memoria, lo que sigue generando escasez de memoria en los sistemas multitarea y/o multiusuario.La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste en llevar un registro de las partes de memoria que se estén utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando éstos la necesiten y liberándola cuando terminen, así como administrar el intercambio entre la memoria principal y el disco en los casos en los que la memoria principal no le pueda dar capacidad a todos los procesos que tienen necesidad de ella.
Jerarquía de la memoria

Los programas y datos necesitan estar en la memoria principal para ser ejecutados, o para poder ser referenciados. Los programas o datos que no se necesitan de inmediato pueden guardarse en la memoria secundaria hasta que se necesiten, y en ese momento se transfieren a la memoria principal para ser ejecutados o referenciados. Los soportes de memoria secundaria, como cintas o discos, son en general menos caros que la memoria principal, y su capacidad es mucho mayor. Normalmente, es mucho más rápido el acceso a la memoria principal que a la secundaria.
En los sistemas con varios niveles de memoria hay muchas transferencias constantes de programas y datos entre los distintos niveles. Estas transferencias consumen recursos del sistema, como tiempo de la CPU, que de otro modo podrían utilizarse provechosamente.


Tipos de Memoria

La memoria real o principal
Es donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos. Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la información contenida en ella es de más rápido acceso. Solo la memoria cache es más rápida que la principal, pero su costo es a su vez mayor.

Memoria virtual
El termino memoria virtual se asocia a dos conceptos que normalmente a parecen unidos:
el uso de almacenamiento secundario para ofrecer al conjunto de las aplicaciones la ilusión de tener mas memoria RAM de la que realmente hay en el sistema. Esta ilusión de existe tanto a nivel del sistema, es decir, teniendo en ejecución mas aplicaciones de las que realmente caben en la memoria principal, sin que por ello cada aplicación individual pueda usar mas memoria de la que realmente hay o incluso de forma mas general, ofreciendo a cada aplicación mas memoria de la que existe físicamente en la maquina.


Estrategias de la Administración de Memoria Virtual


Para cualquiera de las tres formas de organizar esta memoria virtual habrá que determinar:

  • Estrategias de obtención.

Determinan cuándo se debe transferir una página o un segmento del almacenamiento secundaria al primario. Las estrategias de obtención por demanda esperan a que un proceso en ejecución haga referencia a una página o a un segmento antes de traerla/lo. Los esquemas de obtención anticipada intentan determinar por adelantado a qué páginas o segmentos hará referencia un proceso. Si la probabilidad de una referencia es alta y hay espacio disponible, entonces se trae al almacenamiento primario la página o segmento antes de que se haga la referencia explícita

  • Estrategias de colocación.

Determinan en qué lugar de la memoria principal se debe colocar una página o un segmento entrante. Los sistemas de paginación vuelven trivial la decisión de colocación, porque una página entrante se puede ubicar en cualquier marco de página disponible. Los sistemas con segmentación requieren estrategias de colocación como las tratadas en el contexto de los sistemas de multiprogramación con particiones dinámicas.

  • Estrategias de reemplazo.
Sirven para decidir qué página o segmento se debe desplazar para dejar espacio a una página o segmento entrante cuando está completamente ocupada la memoria principal.

Gestión de Memoria
La gestión de memoria representa un vínculo delicado entre el rendimiento (tiempo de acceso) y la cantidad (espacio disponible). Siempre se busca obtener el mayor espacio disponible en la memoria, pero pocas veces existe la predisposición para comprometer el rendimiento.

Funciones de la gestion de memoria:

  • Permitir que la memoria se comparta en sistemas de multiprocesos.
  • Asignar bloques de espacio de memoria a distintas tareas.
  • Proteger los espacios de memoria utilizados por ejemplo, evitar que un usuario modifique una tarea realizada por otro usuario.
  • Optimizar la cantidad de memoria disponible, específicamente a través de sistemas de expansión de memoria.

Objetivos de la gestión de memoria
  • Reubicación es necesario que el programa funcione elcualquier caso, es decir sea reubicable ya que como no se puede predecir en queposición de memoria se va a cargar y ejecutar un programa.
Protección se debe hacer que todos los procesos se encuentren en constante protección para que al momento de acceder a cualquier espacio de memoria no se vea afectado ninguno de ellos.
  • Organización lógica son las diferentes funciones o trabajos(direcciones) que realizan cada uno de los procesos dentro de la memoria.
  • Organizacion fisica es una manera de mantener una transferencia de la información con la memoria principal.
  • Compartición se debe lograr que los procesos compartan memoria.
  • Algoritmos de asignación de memoria

    Consiste en dividir la memoria por 2 hasta conseguir ubicar el proceso. Cuando un proceso solicita memoria existirán varios huecos que pueden ser utilizados, el algoritmo determinará cual de ellos será asignado y su principal objetivo es acelerar la unión entre huecos existentes.

    Tipos de Algoritmo
    • Algoritmo del primer ajuste

    Consiste en recorrer la lista de particiones hasta encontrar un hueco suficientemente grande.

    Ventajas: rápido y después de la liberación es fácil unir huecos.

    Inconvenientes: fragmentación externa y huecos pequeños en la zona baja y grandes en la alta.

    • Algoritmo del ajuste siguiente

    Es una variante del anterior que comienza a buscar a partir de la posición anterior, de forma que los huecos grandes se reparten por igual en toda la memoria.

    Asignacion de almacenamiento
    La asignación de memoria consiste en el proceso de asignar memoria para propósitos espécificos, ya sea en tiempo de compilación o de ejecución. Si es en tiempo de compilación es estática, si es en tiempo de ejecución es dinámica y si son variables locales a un grupo de sentencias se denomina automática

    Se presentan dos casos:
    Para un solo usuario

    A nivel de programación


    Particiones Fijas
    Se divide la memoria en partes iguales para cada proceso y cuando una particion esta libre se le asigna a otro proceso y el S.O maneja una tabla que indica cuales espacios estan disponibles y cuales estan ocupados.

    Particiones Variables
    Se divide la memoria en partes diferentes de acuerdo a la necesidad de cada proceso disminuyendo el desperdicio de este recurso y al igual que en la fija cuando una particion esta libre se le asigna a otro proceso pero tiene que ser mayor la memoria disponible a la que se requiera y el S.O maneja una tabla que indica cuales espacios estan disponibles y cuales estan ocupados.

    Aqui en esta particion aparece la condensacion y compactacion de memoria

    Condesacion de memoria
    Es unir varios huecos para formar uno mas grande y asi darle mayor utilidad porque por si solo no funciona y no se le puede asignar a ningun proceso.

    Compactación de memoria
    Cuando un proceso llega y necesita memoria, el sistema operativo busca en la tabla de huecos alguno lo suficientemente grande para el proceso. Si el hueco es muy grande, lo parte en dos. Una parte es asignada al proceso y la otra se identifica como hueco. Cuando el proceso termina y la memoria es liberada, el espacio es identificado como un hueco más en la tabla y si el nuevo hueco es adyacente con otro, ambos huecos se unen formando un solo hueco más grande. En ese momento se debe de checar si no existen procesos a los que este nuevo hueco pueda darles cabida.

    Asignacion Contigua

    La memoria principal normalmente se divide en dos particiones:
    Sistema operativo residente, normalmente en la parte baja de memoria con los vectores de interrupción.
    Procesos de usuario en la parte alta.


    Asignación de partición simple

    Puede utilizarse un esquema de registro de relocalización y limite para proteger un proceso de usuario de otro y de cambios del código y datos del sistema operativo. El registro de relocalización contiene la dirección física mas pequeña; el registro limite contiene el rango de las direcciones lógicas cada dirección lógica debe ser menor al registro limite.


    Asignación de particiones múltiples

    Bloques de distintos tamaños están distribuidos en memoria , cuando llega un proceso se le asigna un hueco suficientemente grande para acomodarle.


    Asignación de partición dinámica

    El proceso de compactación es una instancia particular del problema de asignación de memoria dinámica, el cual es el cómo satisfacer una necesidad de tamaño n con una lista de huecos libres. Existen muchas soluciones para el problema. El conjunto de huecos es analizado para determinar cuál hueco es el más indicado para asignarse.

    Intercambio

    Consiste en trasladar el código y los datos de un proceso completo de memoria al sistema de almacenamiento secundario , para cargar otro previamente almacenado, no permite a un proceso utilizar mas memoria RAM de la que realmente existe en el sistema. Esta técnica puede ser ineficiente ya que se tiene que hacer el intercambio completo del proceso, aunque éste solo vaya a ejecutar una pequeña porción del código.

    Objetivo del Intercambio

    Es dar cabida a la ejecución de mas aplicaciones de las que pueden residir simultáneamente en la memoria del sistema.

    Fragmentación

    Es la memoria que queda desperdiciada al usar los métodos de gestión de memoria que se vieron en los métodos anteriores. Es generada cuando durante el reemplazo de procesos quedan huecos entre dos o más procesos de manera no contigua y cada hueco no es capaz de soportar ningún proceso de la lista de espera.

    Tipos de fragmentación

    Fragmentación Externa: existe el espacio total de memoria para satisfacer un requerimiento, pero no es contigua. Tanto el primer ajuste, como el mejor y el peor producen fragmentación externa.
    Fragmentación Interna: la memoria asignada puede ser ligeramente mayor que la requerida; esta referencia es interna a la partición, pero no se utiliza.

    Paginación

    Es una técnica de manejo de memoria, en la cual el espacio de memoria se divide en secciones físicas de igual tamaño, denominadas marcos de página. Los programas se dividen en unidades lógicas, denominadas páginas, que tienen el mismo tamaño que los marcos de páginas. De esta forma, se puede cargar una página de información en cualquier marco de página.Las páginas sirven como unidad de almacenamiento de información y de transferencia entre memoria principal y memoria auxiliar o secundaria. Cada marco se identifica por la dirección de marco, que esta en la posición física de la primera palabra en el marco de página.

    Características de la paginación
    El espacio de direcciones lógico de un proceso puede ser no contiguo.
    Se divide la memoria física en bloques de tamaño fijo llamados marcos (frames).
    Se divide la memoria en bloques de tamaño llamados paginas.
    Se mantiene información en los marcos libres.
    Para correr un programa de n paginas de tamaño, se necesitan encontrara n marcos y cargar el programa.
    Se establece una tabla de paginas para trasladar las direcciones lógicas a físicas.
    Se produce fragmentación interna.

    Ventajas de la paginación
    Es posible comenzar a ejecutar un programa, cargando solo una parte del mismo en memoria, y el resto se cargara bajo la solicitud.
    No es necesario que las paginas estén contiguas en memoria, por lo que no se necesitan procesos de compactación cuando existen marcos de paginas libres dispersos en la memoria.
    Es fácil controlar todas las páginas, ya que tienen el mismo tamaño.
    El mecanismo de traducción de direcciones (DAT) permite separar los conceptos de espacio de direcciones y espacios de memoria. Todo el mecanismo es transparente al usuario.
    Se libera al programador de la restricción de programar para un tamaño físico de memoria, con lo que se aumenta su productividad. Se puede programar en función de una memoria mucho más grande a la existente.
    Al no necesitarse cargar un programa completo en memoria para su ejecución, se puede aumentar el numero de programas multiprogramándose.
    Se elimina el problema de fragmentación externa.

    Desventajas de la paginación
    El costo de hardware y software se incrementa, por la nueva información que debe manejarse y el mecanismo de traducción de direcciones necesario. Se consume mucho mas recursos de memoria, tiempo en el CPU para su implantación.
    Se deben reservar áreas de memoria para las PMT de los procesos. Al no ser fija el tamaño de estas, se crea un problema semejante al de los programas (como asignar un tamaño óptimo sin desperdicio de memoria, u "ovearhead" del procesador).

    Segmentación
    Es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su división lógica; llevándose a cabo una agrupación lógica de la información en bloques de tamaño variable denominados segmentos. Cada uno de ellos tienen información lógica del programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones de programa consiste de una colección de segmentos, que generalmente reflejan la división lógica del programa

    Objetivos
    Modularidad de programas: cada rutina del programa puede ser un bloque sujeto a cambios y recopilaciones, sin afectar por ello al resto del programa.


    Estructuras de datos de largo variable: en donde cada estructura tiene su propio tamaño y este puede variar.

    Protección: se puede proteger los módulos del segmento contra accesos no autorizados.

    Comparición: dos o más procesos pueden ser un mismo segmento, bajo reglas de protección; aunque no sean propietarios de los mismos.

    Enlace dinámico entre segmentos: puede evitarse realizar todo el proceso de enlace antes de comenzar a ejecutar un programa. Los enlaces se establecerán solo cuando sea necesario.

    Entrada y Salida (E/S)

    Es la colección de interfaces que usan las distintas unidades funcionales (subsistemas) de un sistema de procesamiento de información para comunicarse unas con otras, o las señales (informació) enviadas a través de esas interfaces. Las entradas son las señales recibidas por la unidad, mientras que las salidas son las señales enviadas por ésta. El término puede ser usado para describir una acción; "realizar una entrada/salida" se refiere a ejecutar una operación de entrada o de salida. Los dispositivos de E/S los usa una persona u otro sistema para comunicarse con una computadora. De hecho, a los teclados y ratones se los considera dispositivos de entrada de una computadora, mientras que los monitores e impresoras son vistos como dispositivos de salida de una computadora. Los dispositivos típicos para la comunicación entre computadoras realizan las dos operaciones, tanto entrada como salida, y entre otros se encuentran los módemde s y tarjetas de red.

    Es importante notar que la designación un dispositivo, sea de entrada o de salida, cambia al cambiar la perspectiva desde el que se lo ve. Los teclados y ratones toman como entrada el movimiento físico que el usuario produce como salida y lo convierten a una señal eléctrica que la computadora pueda entender. La salida de estos dispositivos son una entrada para la computadora. De manera análoga, los monitores e impresoras toman como entrada las señales que la computadora produce como salida. Luego, convierten esas señales en representaciones inteligibles que puedan ser interpretadas por el usuario. La interpretación será, por ejemplo, por medio de la vista, que funciona como entrada.
    En arquitectura de computadoras, a la combinación de una unidad central de procesamiento (CPU) y memoria principal (aquélla que la CPU puede escribir o leer directamente mediante instrucciones individuales) se la considera el corazón de la computadora y cualquier movimiento de información desde o hacia ese conjunto se lo considera entrada/salida. La CPU y su circuitería complementaria proveen métodos de entrada/salida que se usan en programación de bajo nivel para la implementación de controladores de dispositivos.

    Los sistemas operativos y lenguajes de programación de más alto nivel brindan conceptos y primitivas de entrada/salida distintos y más abstractos. Por ejemplo, un sistema operativo brinda aplicativos que manejan el concepto de archivos. El lenguaje de programación C define funciones que les permiten a sus programas realizar E/S a través de streams, es decir, les permiten leer datos desde y escribir datos hacia sus programas.
    Una alternativa para las funciones primitivas especiales es la mónada de E/S, que permite que los programas describan su E/S y que las acciones se lleven a cabo fuera del programa. Esto resulta interesante, pues las funciones de E/S introducirían un efecto colateral para cualquier lenguaje de programación, pero ahora una programación puramente funcional resultaría práctica.

    Principales funciones de un sistema operativo al manejar dispositivos de entrada/salida (E/S):

    comunicarse con los dispositivos
    • manejar interrupciones
    • manejar errores
    • proporcionar interfaz sencilla y fácil de usar
    • tratar de generalizar interfaz independiente del dispositivo
    (ej. diskettes, disco duro, CD-ROM).

    Clasificación de los dispositivos E/S [Stallings]:

    1. Dispositivos legibles por los humanos: apropiados para la comunicación con el usuario (mouse, teclado, monitor, impresora)
    2. Dispositivos legibles por máquina: adecuados para comunicarse con equipos electrónicos (discos, cintas)
    3. Dispositivos de comunicaciones: apropiados para comunicarse con dispositivos lejanos (modem, tarjeta Ethernet).

    Diferencias de los dispositivos E/S:

    1.Aplicaciones (ej: disco que almacena archivos, disco que almacena páginas de memoria virtual)
    2.Complejidad del control (ej: impresora vs. disco)
    3.Unidad de transferencia (bytes o bloques)
    4.Representación de los errores (check sum, codificación)
    5.Condiciones de error (cómo y qué se informa)
    6.Velocidad de los datos (diferencia en varios órdenes de magnitud)

    Clasificación de los dispositivos E/S [Tanenbaum]:

    1.Dispositivos de bloques: dispositivos que almacenan la información en bloques de tamaño fijo (discos)
    2.Dispositivos de caracteres: maneja la información mediante un flujo de caracteres sin estructurarlos en bloques (mouse, teclado, impresora)


    Existen tres técnicas para realizar la E/S:

    1.E/S programada
    2.E/S dirigida por interrupciones
    3.E/S por acceso directo a la memoria

    E/S programada:

    El dispositivo E/S realiza la acción (no la CPU) colocando los bits necesarios en sus registros de status.
    No hay interrupciones.
    La CPU chequea los bits de status continuamente.


    E/S dirigida por interrupciones:

    La CPU es interrumpida cuando el dispositivo E/S está listo para intercambiar datos
    La CPU esta libre entre la solicitud de datos e interrupción
    No hay necesidad de esperar
    Consume mucha CPU ya que cada byte leído/escrito pasa por la CPU desde/hacia la memoria


    Interrupción precisa:

    •El contador de programa (PC) se guarda en un lugar conocido.
    •Todas las instrucciones previas a aquella a la que apunta PC ya se ejecutaron por completo.
    •No se ha ejecutado ninguna instrucción posterior a aquella a la que apunta PC.
    •Se conoce (y se guarda en un lugar conocido) el estado de ejecución de la instrucción a la que apunta PC.


    E/S con acceso directo a memoria:

    Transfiere un bloque de datos directamente hacia/desde la memoria
    Se envía una interrupción cuando los datos fueron transferidos
    La CPU sólo participa al inicio y al final de la acción.


    Objetivos del diseño:

    Eficiencia:
    -La mayoría de los dispositivos son muy lentos en comparación con la memoria y la CPU.
    -Se usa multiprogramación para aprovechar los tiempos de espera.
    -Intercambio se usa para introducir más procesos listos para la ejecución.
    -El principal esfuerzo en el diseño de E/S ha sido crear esquemas que mejoren su eficiencia.
    -El área que ha recibido más atención ha sido el disco duro, su rapidez no ha evolucionado de la misma manera que la velocidad de las CPUs y memorias.


    Evolución de las funciones E/S:

    1.El procesador controla directamente los dispositivos periféricos.
    2.Se añade una controladora del dispositivo de E/S. La CPU utiliza E/S programada.
    3.Se incorporan interrupciones.
    4.La controladora recibe el control directo del DMA, se transfieren datos hacia/desde la memoria sin usar CPU.
    5.La controladora posee un procesador separado con un conjunto de instrucciones especializadas para E/S. La CPU central le ordena al procesador de E/S la ejecución de un programa de E/S en la memoria principal.
    6.La controladora E/S posee adicionalmente su propia memoria local. La controladora es un computador independiente.


    Controladoras de dispositivos:

    Los dispositivos de E/S tienen componentes
    - mecánicos
    - electrónicos
    El componente electrónico se denomina:
    - controladora de dispositivo o
    - adaptador de dispositivo
    ( device controller)
    Muchas veces la controladora es capaz de manejar
    múltiples dispositivos idénticos.
    Muchas veces la controladora adopta un estándar
    (discos IDE o SCSI)


    Funciones típicas de las controladoras de dispositivos:

    •Convertir un flujo de bits en serie en un bloque de bytes
    •Corregir errores si es posible
    •Copiar datos a la memoria principal.


    Controladora de dispositivos:

    La controladora tiene registros que le sirven para comunicarse con la CPU.
    Al escribir:
    - para suministrar datos
    - para leer datos
    - encender o apagar dispositivo
    - etc.
    Al leer:
    - para averiguar el estado del dispositivo
    Además la controladora por lo general tiene un búfer.



    Sistema de archivos

    Son los que se encargan de estructurar la información guardada en una unidad de almacenamiento (normalmente un disco duro) de una computadora, que luego será representada ya sea textual o gráficamente utilizando un gestor de archivos. La mayoría de los sistemas operativos poseen su propio sistema de archivos.

    Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso a los datos como una cadena de bloques de un mismo tamaño, a veces llamados sectores, usualmente de 512
    bytes de longitud. El software del sistema de archivos es responsable de la organización de estos sectores en archivos y directorios y mantiene un registro de qué sectores pertenecen a qué archivos y cuáles no han sido utilizados. En la práctica, un sistema de archivos también puede ser utilizado para acceder a datos generados dinámicamente, como los recibidos a través de una conexión de red (sin la intervención de un dispositivo de almacenamiento)
    .
    Los sistemas de archivos tradicionales proveen métodos para crear, mover, renombrar y eliminar tanto archivos como directorios, pero carecen de métodos para crear, por ejemplo, enlaces adicionales a un directorio o archivo (
    enlace duro en Unix) o renombrar enlaces padres (".." en Unix).

    El acceso seguro a sistemas de archivos básicos puede estar basado en los esquemas de
    lista de control de acceso o capacidades. Las listas de control de acceso hace décadas que demostraron ser inseguras, por lo que los sistemas operativos experimentales utilizan el acceso por capacidades. Los sistemas operativos comerciales aún funcionan con listas de control de acceso.
    Rutas y nombre de archivos

    Generalmente un sistema de archivos tiene directorios que asocian un nombre de archivo a cada archivo, usualmente conectando el nombre de archivo a un índice en una tabla de asignación de archivos de algún tipo —como FAT en sistemas de archivos MS-DOS o los inodos de los sistemas Unix—.

    Normalmente los archivos y carpetas se organizan jerárquicamente
    La estructura de directorios suele ser jerárquica, ramificada o "en árbol", aunque en algún caso podría ser plana. En algunos sistemas de archivos los nombres de archivos son estructurados, con sintaxis especiales para
    extensiones de archivos y números de versión. En otros, los nombres de archivos son simplemente cadenas de texto y los metadatos
    de cada archivo son alojados separadamente.
    En los sistemas de archivos jerárquicos, usualmente, se declara la ubicación precisa de un archivo con una cadena de texto llamada "
    ruta" —o path en inglés—. La nomenclatura para rutas varía ligeramente de sistema en sistema, pero mantienen por lo general una misma estructura. Una ruta viene dada por una sucesión de nombres de directorios y subdirectorios, ordenados jerárquicamente de izquierda a derecha y separados por algún carácter especial que suele ser una barra ('/') o barra invertida ('\') y puede terminar en el nombre de un archivo presente en la última rama de directorios especificada.
    Resumen de características de los sistemas de Archivos
    Seguridad o permisos.
    listas de control de acceso (ACLs).
    UGO (Usuario, Grupo, Otros, o por sus siglas en inglés, User, Group, Others).
    Capacidades granuladas.
    Atributos extendidos (ej.: sólo añadir al archivo pero no modificar, no modificar nunca, etc.).
    Mecanismo para evitar la fragmentación.
    Capacidad de enlaces simbólicos o duros.
    Integridad del sistema de archivos (Journaling).
    Soporte para archivos dispersos.
    Soporte para cuotas de disco.
    Soporte de crecimiento del sistema de archivos nativo.
    Tipo de sistemas de archivos

    Sistemas de archivos de disco.

    Un sistema de archivo de disco está diseñado para el almacenamiento de archivos en una unidad de disco, que puede estar conectada directa o indirectamente a la computadora.
    Otros sistemas de archivos
    -HFS. HFS es el Sistema de Archivo de Mac. Se usa en todo tipo de medio de almacenamiento, desde CD's y DVD's hasta el Disco Duro.
    -HFS+. HFS+ es la variante moderna de HFS con soporte para una mayor capacidad de almacenamiento, unicode y mucho más.

    Sistemas de archivos de red.

    Un sistema de archivos de red es el que accede a sus archivos a través de una red. Dentro de esta clasificación encontramos dos tipos de sistemas de archivos: los sistemas de archivos distribuidos (no proporcionan E/S en paralelo) y los sistemas de archivos paralelos (proporcionan una E/S de datos en paralelo).

    Sistemas de archivos de propósito especial.

    Los sistemas de archivos de propósito especial son básicamente aquellos que no caen en ninguna de las dos clasificaciones anteriores.

    Sistemas Operativos Multiusuario