Memoria Flash ¿Cómo Funciona?

Discos SSD

Los discos SSD (Solid State Disk) utilizan una tecnología que permite leer y escribir en bloque de forma simultánea múltiples celdas, aumentando su velocidad notablemente.

El borrado efectivo (TRIM) se hace en bloques de celdas.

Aunque presentan algunas desventajas respecto a los discos duros tradicionales (durabilidad, persistencia de la información y precio por MB principalmente) tienden a reemplazarlos dada su incomparable velocidad, inmunidad a vibraciones y menor tamaño.

Los conectores actuales suelen ser de formato SATA o M.2, pudiendo conectarse directamente al bus PCIE.

El protocolo de acceso para aprovechar todas sus ventajas debe ser NVMe.

Pendrive

Es un invento atribuido al ingeniero israelí Dov Moran, en 1995, así como de las primeras unidades creadas por la empresa M-System, con tamaños de 8, 16, 32 y 64 MB.

El pendrive consta de un controlador que normalmente suele ser un microprocesador RISC soldado en la misma PBC a una memoria NAND Flash de tipo MLC. A estos se une también un puerto USB que hace las veces de conector.

Tarjetas SD

SD significa Secure Digital -nombre del fabricante-, es un formato de tarjeta de memoria flash MMC (Multimedia Card).

Forma

Podemos encontrar esta tarjeta con distintos factores de forma, siendo la más popular actualmente las microSD (11x15mm).

Capacidad

Estas tarjetas han evolucionado desde las SD (2GB máximo) hacia las SDHC (High Capacity -hasta 32GB) posteriormente a las SDXC (eXtended Capacity -Hasta 2TB).

Velocidad

También están clasificadas a nivel de velocidad máxima de transferencia:

            Clase 2,4,6,8,10: a 2,4,6,8,10 MB/s respectivamente

            Clase 1, y 3: a 10 y a 30 MB/s sólo para SDHC

            Clase v6, v10, v30, v60, v90: a 6, 10, 30, 60 y 90 MB/s respectivamente, en SDXC

Interfaz

Las interfaces bus de velocidad ultrarrápida (Ultra High Speed) se introdujeron en las tarjetas de memoria SDHC y SDXC denominadas UHS-I, UHS-II y UHS-III. Aunque UHS-I usa una fila de clavijas y UHS-II/III usa dos, físicamente.

Protocolos

Estas memorias pueden trabajar mediante dos protocolos serie distintos:

El protocolo MMC propiamente dicho (BUS-SD), y el protocolo SPI.

El primero de los protocolos es el más potente ya que permite más operaciones que el segundo, pero por otro lado, el segundo es más fácil de implementar. De hecho el protocolo SPI se puede considerar como una versión reducida del protocolo MultiMediaCard.

Memoria EMMC

La arquitectura eMMC integra los componentes MMC (memoria flash y controlador) en un paquete BGA (Ball Grid Array), para su utilización en circuitos impresos como sistema de almacenamiento embebido no volátil.

Es frecuente encontrar este tipo de memoria en teléfonos, tablets y mini ordenadores, a veces llamada simplemente memoria ROM.

Se trata de una memoria idéntica a la SD -excepto en formato, obviamente- pero que incorpora el controlador (por eso es embebida) para hacerla más rápida y compacta.

SSHD

SSHD es una unidad de almacenamiento secundario que combina los SSD con los HDD. Este nos ofrece el rendimiento de un SSD y la capacidad de un HDD. Estos discos contienen un búfer de alta capacidad e integran una memoria caché no volátil. Estos discos duros tienen los discos y el motor en descanso (no consumen energía ni generan calor) y en la memoria flash del búfer, al ser no volátil, se escriben los datos.

Hacer decisiones sobre qué elementos de datos se priorizan para la memoria flash NAND es el núcleo de esta tecnología.

Soportes ópticos

1.1.1.  Soportes Ópticos

La característica general de los medios ópticos es que el uso de la luz láser en los procesos de grabación y/o lectura de la información.

En el almacenamiento de datos sobre medios giratorios, se diferencian dos procedimientos: CAV (constant angular velocity) y CLV (constant linear velocity). El CAV se usa en disquetes y discos duros y mantiene una velocidad de giro constante, mientras que el CLV aumenta la velocidad de rotación a medida que el cabezal de lectura se desplaza hacia el exterior del disco, manteniendo idéntico el tiempo que tarda en girar. Los discos ópticos utilizan este último sistema.

Existen unidades de discos ópticos ROM y regrabables (RW) para todos los formatos.

La gran desventaja de todos los soportes ópticos es su baja fiabilidad.

CD (Compact Disk)

Físicamente, está formado por un disco de policarbonato de 120 mm de diámetro, 1,2 mm de espesor y pesa aproximadamente 14 gramos. Esta capa de policarbonato adopta unos pequeños surcos llamados pits y lands (crestas y valles) que representan los ceros y unos de la información.

El substrato de plástico se recubre por una finísima capa de aluminio reflectante que captura la forma de crestas y surcos de manera precisa. Para evitar que el aluminio se marque y arañe, lo que borraría los datos residentes en él, se añade una laca protectora, a través de la cual el láser puede leer los surcos perfectamente. Al no entrar nunca en contacto físico directo con ningún mecanismo, se estima que la duración de la información en un CD puede ser de 15 años.

En los CD, la información se codifica usando EFM, en el que un byte se almacena con 14 bits que se representan por crestas y valles.

Tiene una capacidad máxima de 840MB, aunque las unidades típicas son de 640 y 720MB

DVD (Digital Versatile Disc)

A primera vista, un CD y un DVD pueden parecer prácticamente iguales, pero el DVD posee unas prestaciones mucho mayores que las de un CD. El formato DVD permite una capacidad de almacenamiento entre 4.7 y 17 GB debido a una densidad de grabación mayor y a la posibilidad de grabar en dos capas y dos caras (4 pistas en total).

BLURAY

Su nombre proviene del tipo de láser utilizado (Blue Ray = Rayo azul).

Una capa de disco Blu-ray tiene 25 GB por capa, equivalente a 6 horas de video de alta definición más audio, pudiendo disponer de múltiples capas por cara (lo normal es un máximo de dos).

Soportes Magnéticos

1.1.1.  Unidades de Almacenamiento Magnético

La tecnología magnética para el almacenamiento de datos se lleva utilizando más de 70 años, tanto en el campo digital como en el analógico. Consiste en la aplicación de campos magnéticos a ciertos materiales cuyas partículas reaccionan ante esas influencias, orientándose en unas determinadas posiciones que se conservan tras dejar de aplicarse el campo magnético.

Dispositivos magnéticos son cintas, discos duros, disquetes, etc. Son sensibles a las temperaturas extremas y sobre todo a los campos magnéticos.

Los discos están constituidos por un plato con dos caras en el caso de los disquetes o por varios platos en el caso de los discos duros, es decir, varios discos de material magnético, los cuales se disponen sobre un eje central sobre el que se mueven. Por lo general, suelen girar a una velocidad que oscila entre las 3.000 y las 10.000 rpm, siendo la velocidad estándar 7.200 rpm. Estas unidades pueden alcanzar velocidades de transferencia de hasta 600 MB/s con interfaz SATA 3.

Componentes y características

Material de soporte magnético

Está elaborado con una aleación de plástico (disquetes) o aluminio (discos duros) recubierta superficialmente con una capa de material magnético, material con un coeficiente de rozamiento muy bajo y gran resistencia al calor.

Cabezal de Lectura / Escritura

El cabezal de lectura/escritura está formado por una serie de cabezas dispuestas en forma de pila y que se mueven al unísono. Es lo que se denomina HSA (Head Stack Assembly.) Estos cabezales se disponen sobre los platos a unas distancias muy pequeñas y con gran precisión, y son los responsables de la lectura/escritura de los datos en los discos. En el posible caso de un corte de energía eléctrica, se dispone de un mecanismo que impide que las cabezas toquen el superficie de los platos cuando detectan una reducción de la velocidad.

Motor de rotación de la unidad

Como ya se ha comentado, los platos de un disco duro tienen un movimiento de rotación y el encargado de realizarlo es el motor de rotación. Se alimenta de un generador de corriente que lleva incorporado, mientras que el sistema de regulación de la velocidad, se encuentra en la controladora.

Motor de posicionamiento de los cabezales

Es un motor eléctrico de gran precisión cuya misión es mover la cabeza de lectura/escritura a través de los platos del disco, en sentido radial para situarse sobre el sector y el cilindro adecuado.

Tarjeta controladora

Puede venir instalada en la parte inferior del sistema o ser fabricada independientemente. Se conecta a la fuente de alimentación y a la CPU y se encarga de controlar:

  • La velocidad de giro de los platos.
  • La posición de los cabezales de lectura/escritura
  • La lectura y grabación de datos.
  • El periférico que transmite por el bus, en caso de que se permitan varios (como en IDE o SCSI)
Estructura lógica
Pistas, Cilindros y Sectores

El disco está organizado en platos, que se dividen en delgados círculos concéntricos llamadas pistas. Las pistas están formadas por sectores, que son un conjunto de segmentos concéntricos de cada una de las pistas. En un sistema con varios platos y cabeza móvil, aquellas pistas que se acceden en una misma posición constituyen un cilindro. Dado que las cabezas están alineadas unas con otras, la controladora puede escribir en todas las pistas del cilindro sin mover el cabezal, por ello los discos con más platos son más rápidos.

Cluster (unidades de asignación)

Un cluster, o unidad de asignación, está formado al menos por un sector lógico y puede tener un tamaño mayor. Este tamaño se define al formatear el disco. Si se utiliza un tamaño de cluster grande, se efectuarán menos lecturas/escrituras por archivo, pero se desperdiciará más espacio (fragmentación interna). Si se utiliza un tamaño de cluster demasiado pequeño, los archivos grandes se fragmentan mucho, requiriendo muchas operaciones de lectura o escritura.

El tamaño de cluster estará por tanto determinado por el tipo de información que vayamos a almacenar en el disco, es decir, por el uso que le vayamos a dar.

Registro de arranque

El registro de arranque informa sobre la estructura del disco, tabla de particiones, fallos en el mismo, etc.

Actualmente existe una transición entre el sistema MBR (Master Boot Record) apoyado por las antiguas BIOS, y el GPT apoyado por el estándar UEFI.

Direccionamiento

El direccionamiento clásico (CHS=Cylinder, Head, Sector) para leer o escribir un dato en el disco, se efectúa dando al periférico los siguientes parámetros:

  • Número de unidad
  • Número de cilindro (C)
  • Número de pista (H)
  • Número del sector (S)

Actualmente se tiende a reemplazar el direccionamiento CHS por GUID (Global Unique ID), un número que identifica cada sector por un sólo número empezando por el cero.

El brazo sitúa rápidamente el cabezal encima de la pista correspondiente y espera a que el sector se posicione bajo la cabeza. Podemos considerar, entonces, dos tiempos:

  • Tiempo de búsqueda de la pista (tseek)
  • Tiempo de espera del sector (tlatencia)

Tipos de teclas

Tipos de teclas

Teclas de caracteres

Cada tecla al ser pulsada genera un código que es almacenado en una pequeña memoria caché de teclado. En cuanto el microprocesador atiende a este periférico toma todas las teclas del buffer y lo vacía.

Si el buffer se llena enviará una interrupción al procesador, el cual responderá con un pitido.

Todas las teclas tienen una pulsación simple y una pulsación repetida. Se pueden establecer:

  1. El tiempo que tarda en repetirse el carácter si mantenemos la tecla pulsada.
  2. La velocidad con que se repite una vez que ha empezado, hasta que soltamos la tecla.

Los caracteres que se escribirán no son en realidad las que vienen impresas sobre la tecla, aunque conviene que coincidan, sino las que el mapa de teclado del sistema operativo determina y con la fuente que el programa esté utilizando en un momento determinado.

Las teclas normales pueden ser combinadas con las flechas de mayúsculas, u otras para generar caracteres distintos.

Teclas con funcionalidad:

Flechas de desplazamiento, teclas de inicio, fin, insertar/sobrescribir, borrado a la derecha (delete) y suprimir son teclas que permiten desplazarse sobre el texto.

Junto con la tecla mayúsculas y control adquieren nuevos usos como por ejemplo:

            Flechas + Mayus = selección de caracteres

            Flechas + Mayus + Ctrl = selección de palabras

Tecla CTRL

Esta tecla se utiliza para generar combinaciones (se mantiene pulsada mientras pulsamos otra tecla), lo que genera un código doble en el teclado. El sistema operativo interpretará la combinación. Por ejemplo CTRL+C es una combinación ampliamente utilizada para copiar al portapapeles lo que haya seleccionado.

Tecla Alt Gr

Alternativa Gráfica: Cada carácter tiene asociados en realidad tres códigos de pulsación distintos:

  1. Pulsación “normal”
  2. Pulsación con flechas de mayúsculas (genera el carácter en mayúsculas)
  3. Pulsación con AltGr: Genera el carácter gráfico correspondiente si es el caso. Por ejemplo AltGr+E genera el símbolo del euro.

Teclas inertes

Se llaman así a todos los acentos y diacríticos que al ser pulsados no generan un carácter en pantalla, pero sí un código que se asociará a la siguiente tecla pulsada.

Teclas con luz

Son tres:

  • Bloqueo de Mayúsculas: En realidad lo que hace no es bloquear mayúsculas sino invertir la pulsación.
  • Bloqueo numérico: en caso de tener teclado numérico, este suele tener doble función, así que si queremos utilizar sólo números esta tecla debe estar encendida.
  • Bloqueo de desplazamiento: Es una tecla que se mantiene desde los inicios de la PC y no se elimina, con el “Scroll Lock/Bloq Despl” antes de que se inventasen las barras de desplazamiento, podías hacer scroll con los cursores en lugar de mover el cursor.

Teclas programables

Las teclas desde F1 hasta F12 son teclas de función, a las cuales se les puede añadir la funcionalidad que el programa decida.

Otras teclas programables no estándar se utilizan en combinación con el software controlador (driver) como por ejemplo teclas para el control de volumen o teclas multimedia en general.

Evolución de los microprocesadores

Aunque la tecnología en sí para hacerlo posible se gestó en la empresa Fairchild Semiconductors, Gordon Moore, autor de la célebre ley de Moore y Robert Noyce fundaron Intel y desarrollaron el Intel 4004 en 1971, bajo la supervisión de Federico Faggin que ya había probado con éxito el uso de tecnología MOS.

El 4004 integra 2300 transistores y tiene un bus de datos de 4 bits. Fue utilizado en la calculadora de la japonesa BUSICOM

Les siguió el desarrollo del 8008 (de ocho bits) y el 4040 (versión revisada del 4004).

El siguiente procesador, el 8080 marcó toda una revolución, ya que fue integrado en el Altair 8800 ordenador DIY con el que Steve Wozkniak y Steven Jobs desarrollaron el Apple I.

Poco después apareció el 8088 que fue usado por IBM para su archiclonado IBM-PC

Más tarde se introducirá el 8086, microprocesador para el que Intel necesitó la colaboración de AMD en su producción, ya que se requerían al menos dos litigantes para el concurso de proveedores de IBM e Intel no contaba con la infraestructura necesaria para responder a la demanda que se estaba produciendo ya.

Mientras tanto Motorola desarrollaba sus propios diseños que serían utilizados en los ordenadores Apple II y Mackintosh (entre otros) y Zilog (fundada por Federico Faggin) el Z-80 utilizado por todos los microordenadores para juegos que siguieron (Amstrad, Spectrum, MSX, etc.).

La tremenda competencia que surgió entre Intel y AMD hizo que desarrollasen procesadores de tecnología similar y mismo nombre: 80286, 80386, 80486.

En 1993 Intel patenta el primer nombre de microprocesador (los números no pueden ser patentados) para diferenciar su tecnología: Aparece el Intel Pentium.

Para esos momentos, la empresa Cyrix (más tarde absorbida por Texas Instrument y posteriormente por IBM) desarrolla procesadores también compatibles (utilizando ingeniería inversa) e IBM se alía con Apple y Motorola para desarrollar los microprocesadores PowerPC. La empresa DEC desarrolla el procesador Alfa con tecnología RISC de 64 bits.

Intel desarrolla durante la década de los noventa los pentium II, III, IV, y MMX, mientras que AMD prosigue con sus procesadores Athlon y sorprende a todos con el Athlon 64, con arquitectura de 64 bits en diciembre del 2003.

A partir de ese momento se empieza a hablar de arquitectura x86 y arquitectura AMD64 para referirse a los microprocesadores de 32 o 64 bits.

La respuesta de Intel fue en 2005 con el pentium D, procesador de 64 bits y doble núcleo.

A estas alturas ambas compañías habían empezado ya a diversificar su oferta de procesadores y a introducir técnicas de marketing para que las ventas de procesadores no estuviesen centradas solamente en el último desarrollo.

En Intel aparecen las líneas de procesadores desde muy bajo rendimiento hasta procesadores para servidores y estaciones de trabajo. De menor a mayor potencia:

Atom, Celeron, Pentium, I3, I5, I7 y Xeon. (AMD tiene también sus procesadores más o menos equivalentes )

En 2017 introducen también el I9 para competir con la serie Ryzen de AMD que los había vuelto a aventajar.

La empresa ARM (Advanced RISC Machines) había tomado el relevo de los procesadores RISC. En 2005 ya tiene una cuota de mercado del 98%. Su estrategia consiste en desarrollar núcleos de CPU y venderlos a otras empresas que los integran.

A partir de 2020 los núcleos ARM comienzan a integrarse en ordenadores portátiles Apple, en procesadores SoC (System on a Chip) en todo tipo de dispositivos móviles e incluso en servidores.

Las empresas Nvidia y ATI (Comprada por AMD) se especializan un GPUs (CPUs gráficas) y se empiezan a integrar núcleos especializados en gráficos, y núcleos neuromórficos para Inteligencia Artificial.

Las escalas de integración rondan los 7-5nm y Google anuncia la supremacía cuántica en 2019.

Gestión del Sistema Operativo Android ¿Cómo funciona ?

 

Este contenido se puede encuadrar en los temas:

TEMA 20 PES: Explotación y administración de Sistemas Operativos Monousuario y Multiusuario

TEMA 20 SAI: Explotación y administración de un Sistema Operativo Monousuario

¿Qué es Android?

Android es un sistema operativo monousuario desarrollado por Google, basado en el Kernel 2.5 de Linux y otro software de código abierto. Está orientado a la plataforma ARM aunque existe una rama de desarrollo independiente orientada a la arquitectura x86 (Chrome OS).

Android es software libre bajo licencia Apache y actualmente (año 2020) es el sistema operativo móvil más utilizado en el mundo.

Su nombre proviene de la famosa novela de Philip K. Dick Do Androids Dream of Electric Sheep? (¿sueñan los androides con ovejas eléctricas?) que fue adaptada en la película Blade Runner de Ridley Scott.

La compañía que lo desarrolló fue Android Inc, apoyada económicamente por Google y comprada por este en 2005, pero no fue presentado hasta el año 2007 tras la  fundación del Open Handset Alliance que engloba numerosos fabricantes de hardware relacionados con la telefonía móvil.

La estructura del sistema operativo Android se compone de aplicaciones que se ejecutan sobre un Middleware que las abstrae de la complejidad de las comunicaciones del sistema y de la máquina en particular, mediante un framework Java.

Bajo esta máquina virtual Java, se encuentra el núcleo del sistema escrito en lenguaje C y que incorpora una potente biblioteca que incluye un administrador de interfaz gráfica (surface manager), un framework OpenCore, una base de datos relacional SQLite, una API gráfica OpenGL, un motor de renderizado WebKit (Safari), un motor gráfico SGL – SSL y una biblioteca estándar de C (Bionic).

MÁQUINA VIRTUAL JAVA

Uno de los elementos clave de Android es la máquina virtual Java. En lugar de utilizar una tradicional máquina virtual Java (VM), tales como Java ME (Java Mobile Edition), Android utiliza su propia máquina virtual personalizada diseñada para asegurar que la multitarea se ejecuta de manera eficiente en un único dispositivo.

Inicialmente se utilizó la máquina virtual Dalvik con la librería de ejecución JIT (Just In Time) que traducía a bytecode Java cualquier aplicación en el momento de su ejecución.

En la versión 4.4 de Android se introdujo la máquina ART (Android RunTime) que compila la aplicación a Java bytecode en el momento de su instalación; a partir de la versión 5 ART reemplazó por completo a Dalvik.

Las aplicaciones (Apps) en Android se distribuyen por tanto en archivos .APK  (Android Application PacKage, similar al JAR del Java de Oracle) y son compiladas en el momento de su instalación por ART a Java bytecode.

La máquina virtual Java de Android no gestiona directamente la memoria o los procesos, sino que utiliza el núcleo de Linux subyacente para manejar la planificación de procesos y la gestión de la memoria.

Android funciona en modo multitarea ejecutando múltiples instancias de la máquina virtual java, una por cada proceso, lo que crea un entorno muy confiable, similar a un sandbox.

Gestión de Memoria en Android.

La plataforma de Android se basa en la premisa de que la memoria libre es memoria desperdiciada, de modo que intenta aprovechar la memoria disponible en todo momento.

Android Runtime (ART) y la máquina virtual Dalvik usan las funciones de paginación y mapeo de memoria (mmapping) para administrar la memoria.

Jerarquía de Memoria

La jerarquía de Memoria en Android se basa en la gestión de tres niveles: RAM, zRAM y ROM.

  • La memoria RAM es la memoria principal del dispositivo y se gestiona mediante paginación.
  • La zona libre de RAM se utiliza como una memoria de intercambio SWAP en la que se almacenan datos y programas de forma comprimida, aumentando así su aprovechamiento en término de capacidad, de ahí el nombre de zRAM, para diferenciarla.
  • La memoria ROM está compuesta por memoria EEPROM Flash Integrada (eMMC/embedded Multimedia Card) y opcionalmente una tarjeta SD.
  • Existe un nivel cero en esta jerarquía compuesto por la memoria caché y registros del microprocesador, pero Android no los gestiona directamente, sino que lo hace el microprocesador.

Paginación de la memoria.

La memoria RAM está dividida en páginas. Por lo general, cada página tiene 4 KB de memoria.

Las páginas se consideran libres o usadas. Las páginas libres son memoria RAM sin usar. Las páginas usadas son memoria RAM que el sistema está utilizando de manera activa y se agrupan en las siguientes categorías:

  • Almacenamiento en caché: Memoria con copia en un archivo del almacenamiento (por ejemplo, código o archivos asignados a la memoria). Hay dos tipos de esta memoria:
  1. Privada: Propiedad de un único proceso y no compartida.
  2. Compartida: Es utilizada conjuntamente por varios procesos.
  • Anónima: Memoria no respaldada por un archivo en almacenamiento, por ejemplo bloques de datos temporales.

Las páginas a su vez pueden ser Limpias o Sucias: Las páginas limpias contienen una copia exacta de un archivo (o parte de un archivo) respaldado en ROM. Una página limpia se «ensucia» cuando es modificada y por tanto ya no contiene una copia fidedigna en el soporte de almacenamiento.

Es posible liberar memoria descartando las páginas limpias porque están respaldadas, pero no se deben eliminar en ningún caso las páginas sucias, ya que se perdería información.

Algoritmo de Reemplazo de página.

El algoritmo de reemplazo de página es el mismo que utiliza el núcleo Linux 2.6 y que se denomina PFRA (Page Frame Reclamation Algorithm). Es una modificación del algoritmo LRU pero basado en listas y con prioridad para los procesos activos.

Las páginas de memoria en uso se dividen en dos listas por cada zona de memoria, una para aplicaciones en uso y otra para aplicaciones inactivas. Las páginas de memoria de la lista de inactivas pueden además ser marcadas como swappables o descartables dependiendo del tiempo de inactividad y previsión de uso.

El algoritmo PFRA sólo se ejecuta cuando la memoria empieza a escasear, momento en el cual selecciona todas las páginas marcadas como “descartables/limpias” y a continuación se seleccionan las páginas menos usadas recientemente (LRU) de la lista de aplicaciones inactivas.

Este algoritmo se ejecuta de forma incremental, intentando liberar el máximo de memoria pero cargando en zRAM páginas inactivas sucias, volcando a memoria masiva (limpiando) solo en las últimas iteraciones si no se alcanza liberar la memoria deseada.

La implementación en Android de este algoritmo la realiza el daemon kswapd que se ejecutará automáticamente al alcanzarse un umbral mínimo de memoria disponible y buscará alcanzar un umbral máximo determinado también de antemano.

Si tras la ejecución de kswapd aún no hay suficiente memoria para la carga de una determinada aplicación en memoria, se ejecutará un asistente de limpieza LMK (Low Memory Killer) que sacará de memoria procesos activos, según un nivel de prioridad asignado, comenzando con los procesos en segundo plano menos usados, y siguiendo incluso con la app de inicio, servicos, apps en primer plano, procesos del sistema, etc. siguiendo la jerarquía de procesos de Android.

Gestión de Procesos en Android.

Procesos:

Con frecuencia la documentación de Android se refiere a la gestión de procesos como  ciclo de vida de Android.

Android implementa la multitarea mediante la ejecución de múltiples hilos para cada proceso; el proceso más simple consta de un sólo hilo principal que sólo es lanzado en el caso de que no exista ninguna instancia del proceso en ejecución.

De igual forma un proceso puede utilizar múltiples hilos, uno por cada subproceso. También se da la situación en que un proceso comparte subprocesos con otros, lanzando para ello el sistema los hilos necesarios.

Tipos de procesos en Android.

El tipo de proceso en Android determina el comportamiento del planificador respecto a este: no es lo mismo un proceso “activo” y “visible” cuya finalización por parte del sistema tendría una experiencia muy negativa para el usuario, que por ejemplo un servicio del sistema.

Android por tanto, clasifica los procesos como:

  • Activos: Se están ejecutando y además son requeridos para la interacción con el usuario, bien sean procesos en primer plano o servicios dando soporte a éstos.
  • Visibles:  Un nivel por debajo de Activo, ya que un proceso visible estaría en segundo plano.
  • Servicio: Procesos que no son visibles de forma directa pero dan un servicio importante al usuario, por ejemplo mantener una conexión a Internet. Estos procesos no deben ser finalizados a no ser que su mantenimiento suponga una merma para un proceso activo.
  • Segundo Plano: Procesos en ejecución, pero no visibles, a los que el sistema intentará dotar de recursos siempre que haya disponibles.
  • Vacíos: Es una forma rápida de inicialización: por ejemplo un proceso que intenta ser lanzado pero el liberador de memoria está ocupado haciéndole hueco.

Planificación de procesos

La planificación en Android es expropiativa lo cual debe ser tenido en cuenta por el programador, ya que si no se definen bien los diferentes componentes de la aplicación esta puede ser finalizada mientras está efectuando una tarea relevante para el sistema o para el usuario.

El algoritmo utilizado por el planificador es Round-Robin con prioridad basada en una jerarquía de importancia según el tipo de proceso (visto anteriormente) y otros factores:

El sistema mantiene una lista pseudo-LRU (Last Recently Used) para evitar que los procesos se apropien de los recursos, pero ordenada según prioridades. La prioridad de un proceso se puede incrementar si este es un subproceso de mayor prioridad, es decir, la prioridad de un conjunto de procesos interdependientes se iguala a la prioridad del componente más prioritario del conjunto.

Cuando un proceso pasa al estado de espera o de finalización, este se almacena en caché (zRAM). El sentido de almacenar también los procesos finalizados es acelerar su carga en RAM si se vuelven a solicitar.

Android asegura la respuesta de cualquier app lanzada por el usuario, deteniendo y matando a los procesos que impiden la fluidez y liberando recursos para las aplicaciones más prioritarias.

Comunicación entre procesos

Los procesos en Android se comunican mediante paso de mensajes de tipo objeto. Esto se hace a través de llamadas al IPC Binder, que es la implementación en Android de su propio InterProcess Caller y que permite a los procesos en ejecución, comunicarse con otros procesos independientes del sistema para sincronizar su ejecución u obtener información necesaria.

Gestión de Usuarios en Android

Android sólo puede ser accedido por un usuario en un momento dado, es decir por el usuario principal.

En algunos sistemas (Samsung, Xiaomi) es posible mantener usuarios adicionales mediante la adicción de capas de software sobre el sistema operativo que emule el uso por varios usuarios, por ejemplo para control parental o para tener un doble uso del teléfono en casa y en el trabajo.

Sin embargo en el sistema sólo hay en realidad un único usuario, al que se le añaden o restringen permisos y visores sobre aplicaciones.

Este usuario al que se le ligan las distintas cuentas de proveedores (Google, Xiaomi, Amazon, etc) viene con los permisos restringidos por defecto.

Si es necesario dar mayores niveles de prioridad al usuario debemos acceder a la configuración del teléfono para activar los permisos completos. A este proceso se le suele llamar ruteo del teléfono, porque al hacerlo activamos los permisos completos del usuario root en el kernel Linux. Con frecuencia esta escalada de privilegios está restringida y apareja la pérdida de la garantía y de otras ventajas de la marca.

Fuentes del artículo:

https://es.wikipedia.org/wiki/Android

https://androidos.readthedocs.io/

https://developer.android.com/topic/performance/memory-management?hl=es

¿Qué es la Memoria Caché?

Memoria caché

Es una memoria rápida, cara y pequeña, formada por biestables.

Se encuentra situada entre el procesador y la memoria principal. En principio se puede considerar que funciona como un buffer de la memoria principal.

La caché se usa para almacenar una copia de aquellas palabras de la memoria principal que están siendo usadas actualmente (y que son las que se usarán con mayor probabilidad en un futuro cercano), ya que, debido a su reducido tamaño, no podemos almacenar toda la información que nuestro programa necesita.

La memoria caché trabaja almacenando los datos en sus chips, que son tomados de ella por la CPU cuando los necesita; al encontrarlos en la caché, se ahorra tener que ir a buscarlos a la RAM, redundando en un considerable ahorro de tiempo.

El procesador, cuando tiene que acceder a memoria, siempre mira antes si la información que busca se encuentra en la memoria caché. Pueden darse dos posibilidades:

  • La información solicitada se encuentra en la caché: lee la copia en caché
  • La información solicitada no se encuentra en la caché (fallo de caché): lee en la memoria principal la información buscada y guarda una copia en la caché. A la hora de escribir el nuevo dato en la caché pueden ocurrir dos cosas:
    • Hay espacio libre en la caché: se escribe el dato en las posiciones libres.
    • No hay espacio libre en la caché: hay que buscar el dato a sustituir por el que acaba de llegar. Si algún dato de los que se van a sacar ha sido modificado, se debe actualizar la copia en memoria del mismo.
  1. Niveles de caché

Los ordenadores actuales suelen montar hasta tres niveles de caché:

  • L1: caché interna asociada a los núcleos de la CPU. Es utilizada para almacenar y acceder a datos e instrucciones importantes y de uso frecuente, agilizando los procesos al ser el nivel que ofrece un tiempo de respuesta menor. Se divide en dos subniveles:
    • Nivel 1 Data Cache: se encarga de almacenar datos usados frecuentemente.
    • Nivel 1 Instruction Cache: se encarga de almacenar instrucciones usadas frecuentemente.
  • L2: caché interna al microprocesador, pero comúnmente compartida por varios núcleos al mismo tiempo.
  • L3: este nivel de caché suele ser de menor velocidad y mayor capacidad que las anteriores y frecuentemente se sitúa dentro del encapsulado del procesador, pero en su periferia, compartida por todos los núcleos del mismo.
  1. Localidad de referencia

Los programas manifiestan una propiedad que se explota en el diseño del sistema de gestión de memoria de los computadores en general y de la memoria caché en particular, la localidad de referencias: los programas tienden a reutilizar los datos e instrucciones que utilizaron recientemente. Una regla empírica que se suele cumplir en la mayoría de los programas revela que gastan el 90% de su tiempo de ejecución sobre sólo el 10% de su código. Una consecuencia de la localidad de referencia es que se puede predecir con razonable precisión las instrucciones y datos que el programa utilizará en el futuro cercano a partir del conocimiento de los accesos a memoria realizados en el pasado reciente. La localidad de referencia se manifiesta en una doble dimensión: temporal y espacial.

  1.  Localidad temporal

 las palabras de memoria accedidas recientemente tienen una alta

probabilidad de volver a ser accedidas en el futuro cercano. La localidad temporal de los programas

viene motivada principalmente por la existencia de bucles.

  1. Localidad espacial

 las palabras próximas en el espacio de memoria a las recientemente referenciadas tienen una alta probabilidad de ser también referenciadas en el futuro cercano. Es decir, que las palabras próximas en memoria tienden a ser referenciadas juntas en el tiempo. La localidad espacial viene motivada fundamentalmente por la linealidad de los programas (secuenciamiento lineal de las instrucciones) y el acceso a las estructuras de datos regulares.

  1. Diseño

En el diseño de la memoria caché se deben considerar varios factores que influyen directamente en el rendimiento de la memoria y por lo tanto en su objetivo de aumentar la velocidad de respuesta de la jerarquía de memoria. Estos factores son las políticas de ubicación, extracción, reemplazo y escritura.

  1. Política de ubicación

Decide dónde debe colocarse un bloque de memoria principal que entra en la memoria caché. Las más utilizadas son:

 

Directa: al bloque i-ésimo de memoria principal le corresponde la posición i módulo n, donde n es el número de bloques de la memoria caché. Cada bloque de la memoria principal tiene su posición en la caché y siempre en el mismo sitio. Su inconveniente es que cada bloque tiene asignada una posición fija en la memoria caché y ante continuas referencias a palabras de dos bloques con la misma localización en caché, hay continuos fallos habiendo sitio libre en la caché.

Asociativa: los bloques de la memoria principal se alojan en cualquier bloque de la memoria caché, comprobando solamente la etiqueta de todos y cada uno de los bloques para verificar acierto. Su principal inconveniente es la cantidad de comparaciones que realiza.

Asociativa por conjuntos: cada bloque de la memoria principal tiene asignado un conjunto de la caché, pero se puede ubicar en cualquiera de los bloques que pertenecen a dicho conjunto. Ello permite mayor flexibilidad que la correspondencia directa y menor cantidad de comparaciones que la totalmente asociativa.

  1. Política de extracción

La política de extracción determina cuándo y qué bloque de memoria principal hay que traer a memoria caché. Existen dos políticas muy extendidas:

 

  • Por demanda: un bloque solo se trae a memoria caché cuando ha sido referenciado y no se encuentre en memoria caché.
  • Con prebúsqueda: cuando se referencia el bloque i-ésimo de memoria principal, se trae además el bloque (i+1)-ésimo. Esta política se basa en la propiedad de localidad espacial de los programas.
    1. Política de reemplazo

Determina qué bloque de memoria caché debe abandonarla cuando no existe espacio disponible para un bloque entrante. Básicamente hay cuatro políticas:

 

  • Aleatoria: el bloque es reemplazado de forma aleatoria.
  • FIFO: se usa el algoritmo First In First Out (FIFO) (primero en entrar primero en salir) para determinar qué bloque debe abandonar la caché. Este algoritmo generalmente es poco eficiente.
  • Usado menos recientemente (LRU): sustituye el bloque que hace más tiempo que no se ha usado en la caché, traeremos a caché el bloque en cuestión y lo modificaremos ahí.
  • Usado con menor frecuencia (LFU): sustituye el bloque que ha experimentado menos referencias.

 

pasted image 0 1

¿Qué son las Topologías de Red?

Topologías de Red

La topología de una red es la configuración espacial en que se disponen sus líneas y sus nodos. Esta organización responde a los siguientes aspectos de diseño e implementación:

  • Funcionalidad
  • Escalabilidad
  • Optimización del coste

Las principales topologías de red son las siguientes o una mezcla de algunas de ellas:

Topologías cableadas

Topología en estrella

En la topología en estrella todos los equipos están conectados a un nodo central, que realiza las tareas de distribución, conmutación y control de flujo de todas las comunicaciones que circulan por la red.

En función de qué capa del modelo OSI trabaje el dispositivo que hace el papel de nodo en la estrella, se tendrá un tipo de red u otra. Puede ocupar este puesto un concentrador (hub), un conmutador (switch), un enrutador (router), un proxy, etc.

Topología en Malla

disponen conexiones entre nodos en función del tráfico, la distancia física entre ellos, etc. Mantienen la posibilidad de conectar nodos por circuitos alternativos cuando alguna de las conexiones falla. Esta estructura es la que usan, por ejemplo, las redes de conmutación de circuitos y de paquetes.

Topología en Bus

Todos los nodos se conectan a lo largo del medio físico, por ejemplo, un cable. Es una organización barata y sencilla, pero requiere medios para controlar y arbitrar el acceso al medio común.

Topología en Árbol

Utilizan una estructura de interconexión jerárquica.

Topología en Anillo

Todos los nodos están conectados a un medio físico que los une formando un círculo.

pasted image 0

Temario de Sistemas y Aplicaciones Informáticas (SAI)

Esta entrada está más actualizada y dispone de videos y muestras de temas en PDF en la siguiente página:

>Temario Sistemas y Aplicaciones Informáticas AbacusNT <











Tema 01 – Representación y comunicación de la información.
Tema 02 – Elementos funcionales de un ordenador digital. Arquitectura.
Tema 03 – Componentes, estructura y funcionamiento de la Unidad Central de Proceso.
Tema 04 – Memoria interna. Tipos. Direccionamiento. Características y funciones.
Tema 05 – Microprocesadores. Estructura. Tipos. Comunicación con el exterior.
Tema 06 – Sistemas de almacenamiento externo. Tipos. Características y funcionamiento.
Tema 07 – Dispositivos periféricos de entrada-salida. Características y funcionamiento.
Tema 08 – Componentes ‘hardware’ comerciales de un ordenador. Placa base. Tarjetas controladoras de dispositivo y de entrada-salida.

Tema 09 – Lógica de circuitos. Circuitos combinacionales y secuenciales.
Tema 10 – Representación interna de los datos.
Tema 11 – Organización lógica de los datos. Estructuras estáticas.
Tema 12 – Organización lógica de los datos. Estructuras dinámicas.

Tema 13 – Ficheros. Tipos. Características. Organizaciones.
Tema 14 – Utilización de ficheros según su organización.

Tema 15 – Sistemas operativos. Componentes. Estructura. Funciones. Tipos.
Tema 16 – Sistemas operativos: Gestión de procesos.
Tema 17 – Sistemas operativos: Gestión de memoria.
Tema 18 – Sistemas operativos: Gestión de entradas-salidas.
Tema 19 – Sistemas operativos: Gestión de archivos y dispositivos.
Tema 20 – Explotación y administración de un Sistema Operativo Monousuario.
Tema 21 – Explotación y administración de un Sistema Operativo Multiusuario.

Tema 22 – Sistemas informáticos. Estructura física y funcional.
Tema 23 – Instalación de un sistema informático. Entorno. Elementos. Conexión. Configuración. Medidas de seguridad.
Tema 24 – Planificación y explotación de un Sistema Informático.

Tema 25 – Diseño de algoritmos. Técnicas descriptivas.
Tema 26 – Lenguajes de programación. Tipos y características.
Tema 27 – Programación estructurada. Estructuras básicas. Funciones y procedimientos.
Tema 28 – Programación modular. Diseño de funciones. Recursividad. Librerías.
Tema 29 – Programación orientada a objetos. Objetos. Clases. Herencia. Poliformismos.
Tema 30 – Programación en tiempo real. Interrupciones. Sincronización y comunicación entre tareas.
Tema 31 – Utilidades para el desarrollo y pruebas de programas. Compiladores. Intérpretes. Depuradores.
Tema 32 – Técnicas para la verificación, prueba y documentación de programas.
Tema 33 – Programación en lenguaje ensamblador. Instrucciones básicas. Formatos. Direccionamientos.
Tema 34 – Lenguaje C: Características generales. Elementos del lenguaje. Estructura de un programa. Funciones de librería y usuario. Entorno de compilación. Herramientas para la elaboración y depuración de programas en lenguaje C.
Tema 35 – Lenguaje C: Manipulación de estructuras de datos dinámicas y estáticas. Entrada y salida de datos. Gestión de punteros. Punteros a funciones. Gráficos en C.

Tema 36 – Sistemas gestores de bases de datos. Funciones. Componentes. Arquitectura de referencia y operacionales. Tipos de sistemas.
Tema 37 – Modelo de datos relacional. Estructura. Operaciones. Álgebra relacional.
Tema 38 – Lenguajes para definición y manipulación de datos en sistemas de bases de datos relacionales. Tipos. Características. Lenguaje SQL.
Tema 39 – Desarrollo de aplicaciones mediante bases de datos relacionales.

Tema 40 – Explotación automática de documentación administrativa.
Tema 41 – Aplicaciones informáticas de propósito general y para la gestión comercial. Tipos. Funciones. Características.
Tema 42 – Instalación y explotación de aplicaciones informáticas.
Tema 43 – Utilización compartida de recursos, ficheros y datos entre aplicaciones informáticas.

Tema 44 – Análisis y diseño de aplicaciones informáticas.
Tema 45 – Análisis y diseño de servicios de presentación en un entorno gráfico.
Tema 46 – Diseño de interfaces gráficas de usuario.
Tema 47 – Diseño de interfaces en contexto de gestión.
Tema 48 – Lenguajes de alto nivel en entorno gráfico.
Tema 49 – Sistemas multimedia.
Tema 50 – Calidad y documentación en entornos gráficos.
Tema 51 – Ayudas automatizadas para el desarrollo de ‘software’ (herramientas CASE). Tipos. Estructura. Prestaciones.

Tema 52 – Sistemas en red. Tipos. Componentes y topologías.
Tema 53 – Transmisión de datos. Medios. Tipos. Técnicas. Perturbaciones.
Tema 54 – Arquitectura de sistemas de comunicación. Niveles. Funciones. Servicios.
Tema 55 – Conexión de ordenadores en red. Elementos ‘hardware’ necesarios. Tipos y características.
Tema 56 – ‘Software’ de sistemas en red. Componentes. Funciones y estructura.
Tema 57 – Redes de área local. ‘Hardware’. ‘Software’. Recursos compartidos.
Tema 58 – Redes de área extensa. Interconexión redes locales.
Tema 59 – Análisis e implantación de un sistema en red.
Tema 60 – Instalación y configuración de sistemas en red local.
Tema 61 – Integración de sistemas. Medios de interconexión estándares.
Tema 62 – Evaluación y mejora del rendimiento de sistemas en red.
Tema 63 – Seguridad de los sistemas en red.
Tema 64 – Explotación y administración de sistemas en red.
Tema 65 – Análisis comparativo entre un sistema operativo multiusuario y un sistema en red.

TEMARIO PES Informática

Esta entrada está más actualizada y dispone de videos y muestras de temas en PDF en la siguiente página:

>Temario Informática AbacusNT <











BLOQUE 01 – Hardware

Tema 01 – Representación y comunicación de la información
Tema 02 – Elementos funcionales de un ordenador digital
Tema 03 – Componentes, estructura y funcionamiento de la Unidad Central de Proceso
Tema 04 – Memoria interna. Tipos. Direccionamiento. Características y funciones
Tema 05 – Microprocesadores. Estructura. Tipos. Comunicación con el exterior
Tema 06 – Sistemas de almacenamiento externo. Tipos. Características y funcionamiento
Tema 07 – Dispositivos periféricos de entrada/salida. Características y funcionamiento
Tema 08 – ‘Hardware’ comercial de un ordenador. Placa base. Tarjetas controladoras de dispositivos y de entrada/salida

BLOQUE 02 – LOS DATOS, REPRESENTACIÓN INTERNA Y ORGANIZACIÓN LÓGICA

Tema 09 – Lógica de circuitos. Circuitos combinacionales y secuenciales
Tema 10 – Representación interna de los datos
Tema 11 – Organización lógica de los datos. Estructuras estáticas
Tema 12 – Organización lógica de los datos. Estructuras dinámicas

BLOQUE 03 – FICHEROS

Tema 13 – Ficheros. Tipos. Características. Organizaciones
Tema 14 – Utilización de ficheros según su organización

BLOQUE 04 – Gestión de Sistemas

Tema 15 – Sistemas operativos. Componentes. Estructura. Funciones. Tipos
Tema 16 – Sistemas operativos: Gestión de procesos
Tema 17 – Sistemas operativos: Gestión de memoria
Tema 18 – Sistemas operativos: Gestión de entradas/salidas
Tema 19 – Sistemas operativos: Gestión de archivos y dispositivos
Tema 20 – Explotación y Administración de sistemas operativos monousuario y multiusuario

BLOQUE 05 – SISTEMAS INFORMÁTICOS

Tema 21 – Sistemas informáticos. Estructura física y funcional
Tema 22 – Planificación y explotación de sistemas informáticos. Configuración. Condiciones de instalación. Medidas de seguridad. Procedimientos de uso

BLOQUE 06 – ALGORITMOS Y PROGRAMACIÓN

Tema 23 – Diseño de algoritmos. Técnicas descriptivas
Tema 24 – Lenguajes de programación. Tipos. Características
Tema 25 – Programación estructurada. Estructuras básicas. Funciones y Procedimientos
Tema 26 – Programación modular. Diseño de funciones. Recursividad. Librerías
Tema 27 – Programación orientada a objetos. Objetos. Clases. Herencia. Polimorfismo. Lenguajes
Tema 28 – Programación en tiempo real. Interrupciones. Sincronización y comunicación entretareas. Lenguajes
Tema 29 – Utilidades para el desarrollo y prueba de programas. Compiladores. Interpretes. Depuradores
Tema 30 – Prueba y documentación de programas. Técnicas
Tema 31 – Lenguaje C: Características generales. Elementos del lenguaje. Estructura de un programa. Funciones de librería y usuario. Entorno de compilación. Herramientas para la elaboración y depuración de programas en lenguaje C
Tema 32 – Lenguaje C: Manipulación de estructuras de datos dinámicas y estáticas. Entrada y salida de datos. Gestión de punteros. Punteros a funciones
Tema 33 – Programación en lenguaje ensamblador. Instrucciones básicas. Formatos. Direccionamientos

BLOQUE 07 – BASES DE DATOS

Tema 34 – Sistemas gestores de base de datos. Funciones. Componentes. Arquitecturas de referencia y operacionales. Tipos de sistemas
Tema 35 – La definición de datos. Niveles de descripción. Lenguajes. Diccionario de datos
Tema 36 – La manipulación de datos. Operaciones. Lenguajes. Optimización de consultas
Tema 37 – Modelo de datos jerárquico y en red. Estructuras. Operaciones
Tema 38 – Modelo de datos relacional. Estructuras. Operaciones. Álgebra relacional
Tema 39 – Lenguajes para la definición y manipulación de datos en sistemas de base de datos relacionales. Tipos. Características. Lenguaje SQL
Tema 40 – Diseño de bases de datos relacionales
Tema 41 – Utilidades de los sistemas gestores de base de datos para el desarrollo de aplicaciones. Tipos. Características
Tema 42 – Sistemas de base de datos distribuidos
Tema 43 – Administración de sistemas de base de datos
Tema 44 – Técnicas y procedimientos para la seguridad de los datos

BLOQUE 08 – SISTEMAS DE INFORMACIÓN

Tema 45 – Sistemas de información. Tipos. Características. Sistemas de información en la empresa
Tema 46 – Aplicaciones informáticas de propósito general y para la gestión empresarial. Tipos. Funciones. Características
Tema 47 – Instalación y explotación de aplicaciones informáticas. Compartición de datos

BLOQUE 09 – INGENIERÍA DEL SOFTWARE, ANÁLISIS Y DISEÑO

Tema 48 – Ingeniería del ‘software’. Ciclo de desarrollo del ‘software’. Tipos de ciclos de desarrollo. Metodologías de desarrollo. Características distintivas de las principales metodologías de desarrollo utilizadas en la Unión Europea
Tema 49 – Análisis de sistemas: Modelización de tratamientos. Modelo de flujo de datos y control. Técnicas descriptivas. Documentación
Tema 50 – Análisis de sistemas: Modelización conceptual de datos. Técnicas descriptivas. Documentación
Tema 51 – Análisis de sistemas: Especificación funcional del sistema. Búsqueda y descripción de requisitos funcionales. Especificación de soluciones técnicas. Análisis de viabilidad técnica y económica
Tema 52 – Diseño lógico de funciones. Definición de funciones. Descomposición modular. Técnicas descriptivas. Documentación
Tema 53 – Diseño lógico de datos. Transformación del modelo conceptual a modelos lógicos. Análisis relacional de datos. Documentación
Tema 54 – Diseño de interfaces de usuario. Criterios de diseño. Descripción de interfaces. Documentación. Herramientas para la construcción de interfaces
Tema 55 – Diseño físico de datos y funciones. Criterios de diseño. Documentación
Tema 56 – Análisis y diseño orientado a objetos
Tema 57 – Calidad del software. Factores y métricas. Estrategias de prueba
Tema 58 – Ayudas automatizadas para el desarrollo de software (herramientas CASE). Tipos. Estructura. Prestaciones
Tema 59 – Gestión y control de proyectos informáticos. Estimación de recursos. Planificación temporal y organizativa. Seguimiento
Tema 60 – Sistemas basados en el conocimiento. Representación del conocimiento. Componentes y arquitectura

BLOQUE 10 – REDES Y COMUNICACIONES

Tema 61 – Redes y servicios de comunicaciones
Tema 62 – Arquitecturas de sistemas de comunicaciones. Arquitecturas basadas en niveles. Estándares
Tema 63 – Funciones y servicios del nivel físico. Tipos y medios de transmisión. Adaptación al mediode transmisión. Limitaciones a la transmisión. Estándares
Tema 64 – Funciones y servicios del nivel de enlace. Técnicas. Protocolos
Tema 65 – Funciones y servicios del nivel de red y del nivel de transporte. Técnicas. Protocolos
Tema 66 – Funciones y servicios en niveles sesión, presentación y aplicación. Protocolos. Estándares
Tema 67 – Redes de área local. Componentes. Topologías. Estándares. Protocolos
Tema 68 – Software de sistemas en red. Componentes. Funciones. Estructura
Tema 69 – Integración de sistemas. Medios de interconexión. Estándares. Protocolos de acceso a redes de área extensa
Tema 70 – Diseño de sistemas en red local. Parámetros de diseño. Instalación y configuración de sistemas en red local
Tema 71 – Explotación y administración de sistemas en red local. Facilidades de gestión
Tema 72 – La seguridad en sistemas en red. Servicios de seguridad. Técnicas y sistemas de protección. Estándares
Tema 73 – Evaluación y mejora de prestaciones en un sistema en red. Técnicas y procedimientos de medidas
Tema 74 – Sistemas multimedia