Bloque II. Tema 3. Características técnicas y funcionales de los sistemas operativos: Windows, Linux y Unix

Índice de contenido

Bloque 2. Tema 3. Características técnicas y funcionales de los sistemas operativos: Windows, Linux y Unix        1

Arranque        1

Planificación        1

Tipos de planificadores        2

Algoritmos        2

Núcleos de los Sos        2

Tipos de núcleo        3

Unix        3

Procesos        3

GNU/Linux        4

Sistema de archivos        4

ZFS        4

Android        4

Arranque

Los x86 funcionan en modo real con acceso al primer megabyte de memoria y en modo protegido usando ya características avanzadas. Ya no se puede volver al modo real.

Ya en modo protegido se llama a startk_kernel() en init/main.c que inicia la CPI. Luego vienen la gestión de memoria y procesos y luego los E/S.

A continuación se crea el padre de todos los procesos, init, que comienza a crear demonios y partir de él se crean procesos de usuario.

El kernel organiza la memoria física en páginas. En la arquitectura x86 son de 4096 bytes o 4 kilobytes.

La función kmalloc() asigna segmentos contiguos de memoria.

En Linux la CPU puede estar en modo kernel o en modo usuario o restringido. Todos los procesos de usuario se ejecutan en modo de usuario, mientras que el kernel se ejecuta en modo kernel. Con la introducción en el kernel 2.6 de sistemas de preferencia en el kernel (kernel preemption) mucho código del modo kernel puede cambiar de contexto al igual que el código ejecutado en modo de usuario.

Planificación

La utilización del procesador es la fracción del tiempo promedio durante la cual el procesador está ocupado, es decir, la fracción de tiempo durante la cual el procesador se encuentra activo ejecutando algún proceso.

La productividad se refiere a la cantidad de trabajo completada por unidad de tiempo. Un modo de expresarla es definiéndola como el número de trabajos de usuario ejecutados por una unidad de tiempo. Cuanto mayor sea este número, más trabajo aparentemente está siendo ejecutado por el sistema.

El tiempo de retorno se define como el tiempo que transcurre desde el momento en que un trabajo es remitido al sistema hasta que es totalmente completado.

El tiempo de espera el tiempo total que se encuentra esperando a la asignación de algún recurso, a que tenga lugar algún evento, y se incluye el tiempo de espera hasta que le asignan el procesador.

El tiempo de respuesta en sistemas interactivos es el tiempo que transcurre desde el momento en que se introduce el último carácter de una orden hasta que aparece el primer resultado.

Tipos de planificadores

Desde el punto de vista del plazo temporal para el que estén pensados:

Algoritmos

Hay dos categorías generales, visto desde el punto de vista de ¡¡un processsooo que llegaaaaaaaaaar!! que no se puede apropiar de, o se puede apropiar de:

Los algoritmos son:

Núcleos de los Sos

Tienen como funciones básicas garantizar la carga y la ejecución de los procesos, la E/S y crear una interfaz entre el espacio del núcleo y los programas del espacio de usuario.

Tipos de núcleo

Cuatro grandes tipos de núcleo:

Unix

Procesos

Modelo de 5 estados de un proceso:

GNU/Linux

Sistema de archivos

ZFS

Es un sistema de archivos que sirve para implementar servidores de almacenamiento vistos como volúmenes únicos, que están constituidos de varios volúmenes físicos diferentes. ZFS hace uso de lo que denomina Storage Pools para manejar su almacenamiento físico.

Android

Fuente del glosario de términos en: http://www.xatakandroid.com/tutoriales/primeros-pasos-con-android-glosario-de-terminos-i

Las versiones de Android son:

  1. Cupcake. Versión 1.5
  2. Donut. Versión 1.6
  3. Eclair. Versiones 2.0 y 2.1
  4. Froyo. Versión 2.2
  5. Gingerbread. Versión 2.3 y 2.4
  6. Honeycomb. Versión para tablets, representa la versión 3.0

Memoria Virtual

Cuando se usa memoria virtual, una parte del hardware traduce las direcciones de memoria generadas por el software en:

La traducción de direcciones virtuales a reales es implementada por una Unidad de Manejo de Memoria MMU. La mayoría de las CPU las llevan en el mismo chip, y mantienen una tabla de las traducciones de direcciones virtuales a reales usadas recientemente, llamada Transaction Lookaside Buffer (TLB). El uso de este buffer hace que no se requieran referencias de memoria adicionales.

Paginación de memoria

Los sistemas de paginación de memoria dividen los programas en partes llamadas páginas. De la misma manera, la memoria se divide en trozos del mismo tamaño llamados muy convenientemente marcos de página, así, una página entra en su marco. De esta forma, la cantidad de memoria desperdiciada por un proceso está al final de su última página asignada, lo que:

Cada proceso tiene una tabla de páginas donde se encuentra la ubicación del marco que contiene a cada una de sus páginas. Las direcciones lógicas se forman como un número de página y un desplazamiento dentro de esas páginas.

Si no hubiera memoria virtual o no se necesitara, todas las páginas de un proceso y de todos los procesos deben estar en memoria simultáneamente. En su lugar, y explotando la cercanía de referencias -se espera que use referencias cercanas- algunas páginas van a memoria secundaria. El SO, usando la tabla de paginación sabe qué páginas se encuentran en memoria principal y cuales en secundaria.

Si no queda espacio para traer la página desde secundario, después de un fallo de página, aparece el problema del reemplazo, con sus algoritmos de reemplazo: