Propósito de la memoria virtual en un sistema operativo = Permitir que el sistema operativo ejecute programas más grandes que la memoria física disponible
Objetivos fundamentales de la memoria virtual:
- proporcionar a cada proceso un espacio de direcciones virtual amplio;
- permitir ejecutar programas cuyo espacio de direcciones supera la RAM disponible;
- aprovechar el disco como extensión de la memoria principal mediante paginación (o segmentación, según el sistema).
Cuando hay mucho intercambio de páginas (paging o swapping): el rendimiento puede disminuir notablemente debido al acceso al disco.
Planificador (scheduler) del sistema operativo -> Limita el uso de la CPU por cada proceso
Gestión de usuarios, permisos y seguridad = Controlar el acceso de los usuarios a los recursos del sistema
| Estados clásicos de un proceso UNIX: Running (ejecución). Ready (preparado). Sleeping / Waiting (bloqueado). Stopped. Zombie (proceso terminado pendiente de recogida). Un fichero abierto almacena información como: Descriptor de fichero. Modo de apertura. Desplazamiento (offset). Referencia al inode. Banderas de estado. No tiene estados como: Running. Sleeping. Ready. Kernel/User. |
El sistema operativo Darwin, base de macOS -> Es un software de código abierto
Darwin es la base de macOS y es un sistema operativo de código abierto.
Está construido principalmente sobre:
- el núcleo XNU (X is Not Unix),
- componentes de FreeBSD,
- componentes de Mach.
Darwin:
- NO Utiliza un núcleo desarrollado íntegramente por Apple. El núcleo XNU fue desarrollado por Apple, pero incorpora tecnologías procedentes de Mach y de BSD.
- La interfaz Aqua no forma parte de Darwin. Aqua pertenece a macOS. Darwin únicamente proporciona la base del sistema operativo.
- Darwin no es Linux. Es un sistema operativo tipo UNIX, certificado como UNIX en el caso de macOS, pero basado en XNU, no en el kernel Linux.
¿Cuál de las siguientes capas del sistema operativo móvil Firefox OS es la interfaz de usuario?: -> Gaia
La arquitectura de Firefox OS se dividía en tres capas:
Gaia
↑
Gecko
↑
Gonk
Gaia
Es la interfaz de usuario (UI).
Incluye:
- pantalla de inicio;
- aplicaciones del sistema;
- teclado;
- marcador telefónico;
- SMS;
- navegador;
- etc.
Todo estaba desarrollado con tecnologías web:
- HTML5
- CSS
- JavaScript
Esquema para el examen
Arquitectura Firefox OS
Gaia
Interfaz de usuario
(HTML5 + CSS + JavaScript)
──────────────
Gecko
Motor del navegador
APIs Web
──────────────
Gonk
Linux + Drivers + HAL
Truco para recordar
Piensa en:
Gaia
↓
La diosa de la Tierra.
Es lo que ves.
La superficie.
No confundir
| Capa | Función |
|---|---|
| Gaia | ⭐ Interfaz de usuario |
| Gecko | Motor de ejecución |
| Gonk | Kernel Linux + Hardware |
¿Cuál de las siguientes capas de iOS se encarga directamente de las funcionalidades relacionadas con la interfaz de usuario?: -> Capa Cocoa Touch.
La arquitectura de iOS se organiza en cuatro capas:
Cocoa Touch
↑
Media
↑
Core Services
↑
Core OS
La capa Cocoa Touch es la responsable de la interfaz de usuario (UI) y de la interacción con el usuario.
Incluye frameworks como:
- UIKit (históricamente el principal framework de interfaz gráfica).
- Gestión de eventos táctiles.
- Multitarea.
- Notificaciones.
- Gestos.
Core OS -> Es la capa más baja. Contiene:
- Sistema de archivos.
- Kernel XNU.
- Drivers.
- Seguridad.
- Gestión de memoria.
Core Services -> No gestiona directamente la interfaz.. Proporciona servicios básicos como:
- Foundation.
- Core Data.
- SQLite.
- Localización.
- Red.
Media -> Gestiona:
- audio;
- vídeo;
- gráficos;
- animaciones.
Frameworks:
- Core Animation.
- AVFoundation.
- Core Graphics.
- Metal.
Esquema para el examen
Arquitectura de iOS
Cocoa Touch
(UI)
──────────────
Media
(Audio, vídeo, gráficos)
──────────────
Core Services
(Servicios básicos)
──────────────
Core OS
(Kernel)
Truco para recordar
Touch
↓
Tocar la pantalla.
↓
Interfaz de usuario.
No confundir
| Capa | Función |
|---|---|
| Cocoa Touch | ⭐ Interfaz de usuario |
| Media | Audio y vídeo |
| Core Services | Servicios básicos |
| Core OS | Kernel |