Saltar al contenido

Software de sistema

A-Level Ciencias de la Computación · Tema 5

Lección de video para este tema Abrir la página de video
20:46

Sistemas operativos

Nunca lo has visto, y nunca lo verás — pero siempre está ahí. Detrás de cada aplicación que abres, cada archivo que guardas, cada toque en la pantalla, un invisible…

Narración en inglés · subtítulos en inglés y 中文 que puedes cambiar

5.1

Sistemas operativos

Syllabus
Los candidatos deben ser capaces de: Notas y orientaciones
Explicar por qué un sistema informático requiere un Sistema Operativo (SO)
Explicar las tareas clave de gestión realizadas por el Sistema Operativo Incluye la gestión de memoria, gestión de archivos, gestión de seguridad, gestión del hardware (entrada/salida/periféricos), gestión de procesos
Demostrar comprensión de la necesidad de los programas utilitarios típicos proporcionados con un Sistema Operativo Incluye formateador de disco, antivirus, software de desfragmentación, análisis/repair de contenido de disco, compresión de archivos, software de copia de seguridad
Demostrar comprensión de las bibliotecas de programas Incluye: • el software en desarrollo a menudo se construye utilizando código existente de bibliotecas de programas • los beneficios para el desarrollador al utilizar archivos de biblioteca, incluyendo archivos de Biblioteca de Enlace Dinámico (DLL)

Fuente: Plan de estudios Cambridge International

Por qué una computadora necesita un SO

El hardware por sí solo solo puede buscar y ejecutar instrucciones: no sabe nada sobre archivos, programas, redes o usuarios. El sistema operativo (SO) es la capa de software que:

  • gestiona el hardware (procesador, memoria, E/S, almacenamiento) para los programas en ejecución.
  • proporciona servicios (sistema de archivos, red, cuentas de usuario) a través de una interfaz clara, para que los programas no tengan que comunicarse directamente con el hardware.
  • proporciona una interfaz de usuario (línea de comandos, GUI, táctil).
  • permite que varios programas compartan el hardware de forma segura — cada uno obtiene tiempo de CPU justo y se mantiene fuera de la memoria de los demás.

Sin un SO, cada programa necesitaría sus propios controladores, y solo un programa podría ejecutarse de forma segura a la vez.

"Describe el propósito de un SO" — lista de cinco puntos. El SO (1) proporciona una interfaz entre el usuario y el hardware; (2) oculta la complejidad del hardware al usuario y a los programas de aplicación; (3) gestiona los recursos de hardware: tiempo del procesador, memoria, almacenamiento y dispositivos de entrada/salida, compartiéndolos entre programas; (4) carga el software de aplicación en la memoria y lo ejecuta, proporcionando a cada programa la misma plataforma para ejecutarse; (5) permite que varios programas se ejecuten simultáneamente (multitarea) manteniendo seguros tanto sus procesos como los datos de los usuarios. Da cinco puntos diferentes; "ejecuta la computadora" o "gestiona recursos" por separado no otorga ningún punto.

Un sistema operativo de escritorio en pantalla
Un sistema operativo de escritorio gestiona la pantalla, los archivos y los programas para el usuario
Un smartphone sostenido en una mano, mostrando la pantalla de inicio de Android con sus iconos de aplicaciones
Un teléfono lo necesita tanto como una computadora: este es un sistema operativo móvil, Android

Tareas de gestión clave

El programa de estudios nombra cinco. Cada punto a continuación es una cosa que el SO realmente hace, lo cual es lo que pide una pregunta de "describe".

  • gestión de memoria — asigna memoria a cada programa cuando se carga, mantiene separada la memoria de cada programa (protección de memoria) para que uno no sobrescriba otro, libera la memoria cuando un programa termina, e intercambia páginas entre RAM y almacenamiento secundario (el disco) (memoria virtual / paginación) para que puedan estar abiertos más programas de los que permite la memoria física.
  • gestión de procesos — un programa en ejecución es un proceso. El SO crea y finaliza procesos, decide qué proceso obtendrá la CPU siguiente (planificación) y durante cuánto tiempo (una rebanada de tiempo), alterna entre ellos, resuelve conflictos cuando dos desean el mismo recurso, y puede matar uno que deja de responder.
  • gestión del hardware (entrada/salida y periféricos): se comunica con cada dispositivo a través de su controlador de dispositivo, cola y amortigua los datos enviados a dispositivos lentos como una impresora, responde a interrupciones de los dispositivos y comparte un dispositivo entre varios programas.
  • gestión de archivos: crea, nombra, copia, mueve y elimina archivos y carpetas, mantiene la estructura de directorio y un registro de dónde se almacena cada archivo en el disco, asigna espacio en disco a los archivos y aplica derechos de acceso (lectura / escritura / ejecución) para cada usuario.
  • gestión de seguridad: cuentas de usuario y contraseñas (autenticación), derechos de acceso, cifrado de datos almacenados, firewall, actualizaciones automáticas de seguridad y un registro de quién hizo qué.
Diagrama de concentrador con el sistema operativo en el centro conectado por radios a la gestión de memoria, proceso, archivo, dispositivo y seguridad, y la interfaz de usuario
Los trabajos principales que gestiona el sistema operativo
Un mapa de memoria con el sistema operativo y tres aplicaciones cada una en su propio bloque, separadas por direcciones límite; se permite el acceso dentro de un bloque pero se bloquea el acceso que sobrepasa un límite
La protección de memoria mantiene cada aplicación en su propio bloque de memoria

Cómo la gestión de memoria y de procesos apoya la multitarea (un favorito de cuatro puntos). La gestión de memoria carga varios programas en la memoria al mismo tiempo, cada uno en su propia área protegida, y lleva la cuenta de qué direcciones pertenecen a cuáles; la gestión de procesos comparte el procesador entre ellos — cada proceso se ejecuta durante una rebanada de tiempo, el SO guarda su estado y cambia al siguiente, y el cambio es tan rápido que todos los programas parecen ejecutarse juntos. Las interrupciones permiten que el SO recupere el procesador de un proceso siempre que un dispositivo necesite atención.

Interrupciones. Una interrupción de hardware proviene de un dispositivo: una tecla pulsada, un clic del ratón, una impresora sin papel, un disco que termina una transferencia, un fallo de alimentación. Una interrupción de software proviene de un programa: división por cero, una instrucción inválida, un intento de usar memoria a la que no tiene acceso o una solicitud de servicio al SO. El gestor de interrupciones del SO guarda el estado del proceso en ejecución, gestiona la interrupción y luego restaura el proceso (el tema 4 cubre los detalles de búsqueda-ejecución).

Software de utilidad

Programas utilitarios son software de sistema que mantienen, reparan u optimizan el ordenador en lugar de realizar tareas del usuario; el examinador acepta "realiza una tarea de mantenimiento específica que mejora el rendimiento o la seguridad". La mayoría de los SO los incluyen:

Programas de utilidad comunes: antivirus, respaldo, compresión de archivos y desfragmentador de discos
Programas de utilidad: antivirus, respaldo, compresión y desfragmentador
  • formateador de disco — prepara un disco nuevo (o borra uno viejo) para su uso: establece su sistema de archivos y particiones, eliminando cualquier dato existente.
  • comprobador de virus (antivirus) — escanea archivos y memoria, compara el código contra una base de datos de firmas de virus conocidos y vigila comportamientos sospechosos, luego aísla o elimina lo que encuentra; se ejecuta según un horario y en cada descarga, y necesita actualizaciones cuando aparecen nuevos virus.
  • software de desfragmentación (desfragmentador de disco) — un disco duro almacena un archivo en cualquier bloque libre que encuentre, por lo que tras muchas guardas y eliminaciones un archivo queda disperso (fragmentado) por el plato y el cabezal de lectura/escritura debe saltar entre las partes. El desfragmentador junta las partes de cada archivo y agrupa el espacio libre en una sola región, para que los archivos carguen más rápido y los nuevos no se fragmenten. No es necesario en un SSD, que no tiene cabezal móvil.
  • análisis de contenido de disco / software de reparación de discos — muestra qué está usando el espacio en disco (archivos grandes, duplicados o temporales) para que puedan ser eliminados; encuentra y repara sectores defectuosos, clústeres perdidos y errores del sistema de archivos.
  • compresión de archivos (compresión) — reduce el tamaño de los archivos para que ocupen menos almacenamiento y se transfieran más rápido; el archivado agrupa muchos archivos en uno solo.
  • software de copia de seguridad (backup) — copia archivos a otro medio (disco externo, red, nube) según un horario para poder restaurar datos tras una pérdida, corrupción o ataque de ransomware; una copia completa va seguida de copias incrementales que solo incluyen lo que cambió.
  • un cortafuegos (filtra el tráfico de red mediante reglas) y herramientas de cifrado, para seguridad; un monitor del sistema y actualizaciones automáticas.

Incluirlos con el SO ahorra al usuario instalar cada uno.

Qué hace cada programa de utilidad. Rendimiento: desfragmentación (acceso a archivos más rápido), reparación de discos (un disco con errores es lento o falla), análisis de contenido de disco (espacio libre al eliminar basura), compresión (más caben en el disco). Seguridad: verificador de virus, cortafuegos, cifrado y respaldo (la única recuperación ante ransomware). Una pregunta de "dibuja una línea" empareja cada programa de utilidad con exactamente un propósito — aprende los pares anteriores y usa los nombres del programa de estudios.

Ejemplo resuelto. Explica cómo la desfragmentación puede mejorar el rendimiento de una computadora (3 puntos).

Con el tiempo, un archivo se almacena en bloques dispersos a través del disco duro, por lo que leerlo requiere muchos movimientos del cabezal de lectura/escritura. El desfragmentador reordena los bloques para que cada archivo se almacene contiguamente y el espacio libre esté junto. Los archivos se leen entonces con menos movimientos del cabezal, por lo que cargan más rápido, y los nuevos archivos pueden escribirse en un espacio continuo.

Explorar

Dónde se sitúa el sistema operativo

Toca cada capa. El SO es la capa intermedia: se sitúa entre tus aplicaciones y el hardware, compartiendo la máquina de forma segura para que los programas nunca accedan al hardware directamente.

Vocabulario Entrenar
English Español
operating system/ˈɒpəreɪtɪŋ ˈsɪstəm/ sistema operativo
processor/ˈprəʊsesə/ procesador
multitasking/ˈmʌltitæskɪŋ/ multitarea
memory management/ˈmeməri ˈmænɪdʒmənt/ gestión de memoria
memory protection/ˈmeməri prəˈtekʃn/ protección de memoria
RAM/ræm/ RAM
secondary storage/ˈsekəndəri ˈstɔːrɪdʒ/ almacenamiento secundario
virtual memory/ˈvɜːtʃuːəl ˈmeməri/ memoria virtual
paging/ˈpeɪdʒɪŋ/ segmentación
process management/ˈprəʊses ˈmænɪdʒmənt/ Gestión de procesos
process/ˈprəʊses/ proceso
scheduling/ˈʃedjuːlɪŋ/ Programación
time slice/taɪm slaɪs/ Cuota de tiempo
device driver/dɪˈvaɪs ˈdraɪvə/ controlador de dispositivo
interrupts/ˈɪntərʌpts/ interrupciones
directory/daɪˈrektəri/ Directorio
access rights/ˈækses raɪts/ Permisos de acceso
authentication/ɔːˌθentɪˈkeɪʃn/ authentication
firewall/ˈfaɪəwɔːl/ Cortafuegos
hardware interrupt/ˈhɑːdweə ˈɪntərʌpt/ Interrupción de hardware
software interrupt/ˈsɒftweə ˈɪntərʌpt/ Interrupción de software
interrupt handler/ˈɪntərʌpt ˈhændlə/ Manejo de interrupciones
utility program/juːˈtɪlɪti ˈprəʊɡræm/ programa utilitario
antivirus/ˌæntɪˈvaɪrəs/ antivirus
backup/ˈbækʌp/ backup
compression/kəmˈpreʃn/ compresión
disk defragmenter/dɪsk ˌdiːˈfræɡmentə/ desfragmentador de disco
signatures/ˈsɪɡnɪtʃəz/ Firmas
fragmented/fræɡˈmentɪd/ Fragmentado
incremental backups/ˌɪŋkrɪˈmentl ˈbækʌps/ Copias de seguridad incrementales
program library/ˈprəʊɡræm ˈlaɪbrəri/ Biblioteca de programas
subroutines/ˈsʌbruːtiːnz/ Subrutinas
library routines/ˈlaɪbrəri ruːˈtiːnz/ Rutinas de biblioteca
static library/ˈstætɪk ˈlaɪbrəri/ Biblioteca estática
executable/ɪɡˈzekjʊtəbl/ Ejecutable
dynamic library/daɪˈnæmɪk ˈlaɪbrəri/ Biblioteca dinámica
translator/trænˈsleɪtə/ Traductor
machine code/məˈʃiːn kəʊd/ Código máquina
assembler/əˈsemblə/ Ensamblador
assembly language/əˈsemblɪ ˈlæŋɡwɪdʒ/ Lenguaje ensamblador
5.1

Bibliotecas de programas

Una biblioteca de programas es código preescrito (subrutinas, clases, módulos) que los programas reutilizan en lugar de escribirlo ellos mismos — p. ej., una biblioteca matemática, una de red, una de gráficos.

Un nuevo programa en desarrollo reutilizando rutinas listas de una biblioteca matemática, una biblioteca gráfica y una biblioteca de red
Un nuevo programa reutilizando rutinas listas de bibliotecas

Beneficios: ahorra tiempo (código listo para usar), confiable (bien probado, ampliamente usado) y estandarizado (comportamiento consistente).

La lista de beneficios del examinador, para el desarrollador. Las rutinas de la biblioteca ya están escritas y probadas, por lo que el desarrollo es más rápido y económico; son fiables y, al usarse en muchos programas, mayoritariamente libres de errores; el desarrollador no necesita especialización en esa área (gráficos, compresión, cifrado, búsqueda de rutas); el programa es más fácil de mantener porque el código común reside en un único lugar; y todo un equipo puede usar las mismas rutinas, obteniendo resultados consistentes. Inconvenientes: una rutina puede no hacer exactamente lo que necesitas y no puedes modificarla; tu programa depende de que la biblioteca esté disponible, sea correcta y segura — un error o una vulnerabilidad en la biblioteca es un error en tu programa; y debes aprender cómo invocarla.

  • una biblioteca estática se copia en el ejecutable durante la compilación (funciona por sí sola, pero es más grande y requiere recompilación para actualizarse).
  • una biblioteca dinámica (DLL, Dynamic Link Library; .so) se carga en tiempo de ejecución (ejecutables más pequeños, compartidos por muchos programas, se actualiza una vez para todos).
Una biblioteca estática se copia en el ejecutable durante la compilación, creando un programa independiente más grande; un archivo de biblioteca dinámica permanece separado, se carga durante la ejecución y lo comparten varios programas
Estático: la biblioteca se copia en el ejecutable. Dinámico: un archivo de biblioteca compartida se carga en tiempo de ejecución

Archivos de Dynamic Link Library (DLL). Una DLL es una biblioteca que se carga en la memoria solo cuando un programa la llama, en tiempo de ejecución, y permanece como un archivo separado en lugar de copiarse en el ejecutable. Beneficios: el ejecutable es más pequeño; varios programas en ejecución comparten una copia de la DLL en la memoria; una DLL se puede actualizar (corrección de errores, nuevo dispositivo) sin recompilar los programas que la usan; y la memoria se usa solo mientras se necesita la rutina. Inconvenientes: el programa no funcionará si falta la DLL, se mueve o es la versión incorrecta; una DLL actualizada puede romper un programa que dependía del comportamiento anterior; y una DLL falsa colocada en su lugar se ejecuta con los privilegios del programa.

Ejemplo resuelto. Un equipo que escribe software para un robot de restaurante usa una biblioteca de programas que incluye una rutina para encontrar el camino más corto entre mesas. Explica dos beneficios y un inconveniente para el equipo.

Beneficios: la rutina ya está escrita y probada, así que el equipo ahorra tiempo y puede confiar en el resultado; el equipo no necesita entender algoritmos de búsqueda de rutas por sí mismo y puede dedicar el tiempo a las características propias del robot. Inconveniente: la rutina puede no manejar las necesidades exactas del restaurante (mover sillas, pasillos de un solo sentido) y el equipo no puede alterarla, por lo que podrían tener que work around (adaptarse a) sus limitaciones.

Explorar

Laboratorio de conceptos informáticos

Clasificar ejemplos concretos según la idea informática que demuestran.

5.2

Traductores de lenguajes

Syllabus
Los candidatos deben ser capaces de: Notas y orientación
Demostrar comprensión de la necesidad de: • software ensamblador para la traducción de un programa en lenguaje ensamblador • un compilador para la traducción de un programa en lenguaje de alto nivel • un intérprete para la traducción y ejecución de un programa en lenguaje de alto nivel
Explicar las ventajas e inconvenientes del uso de un compilador o un intérprete, y justificar el uso de cada uno
Demostrar conocimiento de que los programas en lenguajes de alto nivel pueden ser parcialmente compilados y parcialmente interpretados, como Java (modo consola)
Describir las características de un entorno de desarrollo integrado (IDE) típico Incluyendo: • para la codificación, incluyendo indicaciones sensibles al contexto • para la detección inicial de errores, incluyendo verificaciones sintácticas dinámicas • para la presentación, incluyendo formato estético (prettyprint), expansión y colapso de bloques de código • para la depuración, incluyendo paso a paso, puntos de interrupción, variables, expresiones y ventana de informes

Fuente: Plan de estudios Cambridge International

Escribes código fuente; el ordenador ejecuta código máquina. Un traductor convierte entre ambos.

Ensamblador

Un ensamblador traduce el lenguaje ensamblador a código máquina: cada instrucción mnemotécnica (LDD, ADD, JMP) se convierte exactamente en una instrucción de código máquina, y las direcciones simbólicas y etiquetas se sustituyen por direcciones reales. Es necesario porque el procesador solo ejecuta código máquina, y el ensamblador se usa donde el programador necesita control directo del hardware (sistemas embebidos, controladores de dispositivos).

Compilador

Un compilador traduce un programa de alto nivel a código máquina una vez, antes de ejecutarse.

  • informa de todos los errores en tiempo de compilación; una vez limpio, produce un ejecutable independiente que se ejecuta sin tener el compilador instalado y puede ejecutarse múltiples veces.
  • generalmente más rápido en tiempo de ejecución (sin traducción mientras se ejecuta), pero ligado a una CPU/SO específico — recompilar para cada plataforma.

La descripción de dos puntos: un compilador traduce el programa completo de alto nivel a código máquina (código objeto) antes de ejecutarse, genera un archivo ejecutable e informa de todos los errores de sintaxis juntos como una lista al final de la traducción. No ejecuta el programa.

Intérprete

Un intérprete traduce y ejecuta un programa de alto nivel línea por línea, sin producir un ejecutable.

  • informa un error cuando llega a esa línea, luego se detiene; puedes corregirlo y continuar — bueno para el desarrollo.
  • el intérprete debe estar instalado para ejecutar el programa; generalmente más lento (cada ejecución vuelve a traducir), pero fácil de portar entre plataformas.

La descripción de dos puntos: un intérprete traduce una declaración del programa de alto nivel a la vez y la ejecuta inmediatamente antes de pasar a la siguiente; no se produce un archivo ejecutable; se detiene en el primer error que encuentra y lo informa. Tanto el código fuente como el intérprete deben estar presentes cada vez que se ejecuta el programa.

Un compilador traduce el código fuente una vez en un ejecutable que luego se ejecuta muchas veces sin traductor presente; un intérprete traduce y ejecuta el código fuente línea por línea, en cada ejecución
Un compilador traduce una vez en un programa independiente; un intérprete traduce línea por línea, cada ejecución

Elegir entre ellos

Usa un compilador cuando: Usa un intérprete cuando:
importa la velocidad en tiempo de ejecución quieres ciclos rápidos de edición-ejecución
distribuyes a usuarios sin herramientas de desarrollo escribes scripts multiplataforma
el programa se ejecuta muchas veces el programa es pequeño o se ejecuta una vez
enseñando a principiantes

Beneficios e inconvenientes, según los criterios de calificación.

Compilador Intérprete
velocidad de ejecución rápida — ya es código máquina más lenta — traducida en cada ejecución
lo que necesita el usuario solo el ejecutable; sin traductor, y el código fuente se mantiene privado el código fuente y el intérprete
encontrar errores todos los errores listados a la vez, después de traducir el programa completo cada error informado en la línea donde ocurre, mientras desarrollas
cambiar el código recompilar el programa completo después de cada cambio editar y ejecutar de nuevo inmediatamente
portabilidad el código máquina solo corre en una plataforma; recompilar para cada uno la misma fuente corre dondequiera que exista un intérprete

Ejemplo resuelto. Un desarrollador usa un intérprete mientras escribe un programa y un compilador cuando ha terminado. Explica cómo se usa cada uno (4 puntos).

Durante el desarrollo, el intérprete ejecuta el programa parcialmente escrito de inmediato, sin esperar una traducción completa; cuando encuentra un error informa la línea, así que el desarrollador lo corrige y ejecuta de nuevo inmediatamente — un ciclo rápido de edición-ejecución que es más fácil para depurar. Cuando el programa termina, el compilador traduce todo el programa en un ejecutable que se ejecuta más rápido, no necesita traductor en la computadora del usuario y no revela el código fuente, por lo que se puede vender al público.

Híbrido: Java

Java se compila a bytecode (una forma intermedia independiente de la plataforma), que una máquina virtual (la JVM) interpreta después — o utiliza compilación justo a tiempo para convertir las partes críticas en código nativo. Así los errores se detectan pronto, el bytecode se ejecuta en cualquier lugar con una JVM ("escribir una vez, ejecutar en cualquier parte") y los programas de larga duración alcanzan velocidad casi nativa. C# y Python usan diseños similares.

La frase del programa de estudios es "parcialmente compilado y parcialmente interpretado": la fase de compilación detecta errores de sintaxis y genera bytecode compacto y portable; la fase de interpretación permite que ese único archivo de bytecode se ejecute en cualquier máquina que tenga una máquina virtual, a costa de algo de velocidad. Java en modo consola (un programa de texto ejecutado desde la línea de comandos) es el ejemplo del programa de estudios.

El código fuente de Java se compila una vez en bytecode independiente de la plataforma (.class), que una JVM en Windows, macOS o Linux interpreta o compila JIT a código nativo
Java compila a bytecode portable que cualquier JVM ejecuta — escribe una vez, ejecuta en cualquier lugar

Ejemplo resuelto. El código fuente de Java se compila a bytecode, que una JVM luego interpreta. ¿Por qué usar ambos, en lugar de compilar directamente a código máquina? Un compilador produce código máquina para un procesador y sistema operativo, por lo que un programa compilado en una máquina no correrá en otra. El compilador de Java, en cambio, apunta a una máquina virtual, por lo que el bytecode que produce es idéntico en todas partes; cada plataforma luego proporciona su propia JVM para interpretar ese bytecode en sus propias instrucciones nativas. Por lo tanto, un solo archivo compilado corre en cualquier lugar que exista una JVM - "escribe una vez, ejecuta en cualquier lugar". El precio es la velocidad: interpretar bytecode es más lento que ejecutar código nativo, por eso una JVM real también usa compilación JIT para convertir bytecode ejecutado frecuentemente en código nativo mientras el programa se ejecuta. Nombra ambos lados - los puntos son por la portabilidad obtenida a costa de la velocidad.

Explorar

La ruta del compilador: desde el código fuente hasta el programa en ejecución

Paso a paso cómo funciona un compilador: traduce todo el programa una vez, antes de ejecutarlo. Contrástalo con un intérprete, que traduce y ejecuta línea por línea.

Vocabulario Entrenar
English Español
compiler/kəmˈpaɪlə/ Compilador
object code/ˈɒbdʒekt kəʊd/ código objeto
interpreter/ɪnˈtɜːprɪtə/ intérprete
bytecode/ˈbaɪtkəʊd/ bytecode
virtual machine/ˈvɜːtʃuːəl məˈʃiːn/ máquina virtual
just-in-time compilation/dʒʌst ɪn taɪm ˌkɒmpɪˈleɪʃn/ compilación just-in-time (JIT)
portable/ˈpɔːtəbl/ portable
integrated development environment/ˈɪntɪɡreɪtɪd dɪˈveləpmənt enˈvaɪrənmənt/ entorno de desarrollo integrado (IDE)
5.2

Entorno de Desarrollo Integrado (IDE)

Un entorno integrado de desarrollo (IDE) agrupa las herramientas para escribir, probar y depurar código en una única aplicación:

Un IDE agrupa el editor de código, un botón Ejecutar y un depurador en un solo programa
Un IDE agrupa el editor, un botón Ejecutar y un depurador

El programa de estudios agrupa las características en cuatro tipos. Aprende cuál característica pertenece a cuál, porque las preguntas te piden clasificarlas y describir una de cada grupo.

  • Para la codificación: instrucciones contextuales — al escribir, el IDE muestra los identificadores, palabras clave o parámetros que corresponden en ese momento del código; el autocompletado finaliza automáticamente el nombre; la indentación automática y el emparejamiento de corchetes mantienen el formato correcto mientras se escribe.
  • Para la detección inicial de errores: comprobaciones sintácticas dinámicas — el editor verifica la sintaxis mientras se escribe y subraya o resalta inmediatamente un error, antes de que el programa sea traducido; tras la traducción, aparecen mensajes de error con números de línea.
  • Para la presentación: formato estético (prettyprint) — las palabras clave, identificadores, cadenas y comentarios se muestran en colores o fuentes diferentes (resaltado de sintaxis) con indentación consistente, para que la estructura sea visible de un vistazo; expandir y contraer bloques de código — oculta el cuerpo de un bucle, una instrucción IF o una subrutina para ver solo el esquema general.
  • Para la depuración: puntos de interrupción — el programa se pausa al alcanzar una línea marcada; ejecución paso a paso — desde la pausa, ejecuta una línea a la vez; una ventana que muestra los valores actuales de las variables y expresiones a medida que cambian; y una ventana de informe que enumera errores, advertencias y salida.

Otras características: integración del traductor (compilar o ejecutar con una tecla, errores mostrados en línea), un depurador que controla las funciones de depuración anteriores, integración de control de versiones (git), gestión de proyectos, un sistema de ayuda, herramientas de refactorización (renombramiento seguro) e integración de pruebas unitarias.

Una ventana de IDE anotada con etiquetas numeradas: palabras clave coloreadas (prettyprint), un bloque de código contraído, un aviso emergente sugiriendo un nombre, un subrayado ondulante de la verificación de sintaxis dinámica, un punto de ruptura en el margen, una flecha en la línea actual durante el paso a paso, un panel de variables y una ventana de informe
Las características del IDE con los nombres del programa de estudios, en los lugares donde las verías en pantalla

Un IDE acelera el desarrollo poniendo escribir → ejecutar → depurar → corregir detrás de una sola interfaz. IDEs comunes: Visual Studio, PyCharm, Eclipse, VS Code.

Flujo de trabajo de un depurador: establece un punto de ruptura, ejecuta el programa, y cuando llega al punto de ruptura se pausa para que inspecciones las variables, luego paso a paso o continúa
Un depurador: establece un punto de ruptura, ejecuta, luego pausa para inspeccionar variables y paso a paso a través del código

Ejemplo resuelto. Una función Calculate() devuelve un valor inesperado cuando el programa se ejecuta. Describe cómo las funciones de depuración de un IDE típico ayudan a encontrar la causa (4 puntos).

Establece un punto de ruptura en la primera línea de Calculate(), para que el programa se pause allí en lugar de ejecutarse a través. Luego pasa paso a paso a través de la función línea por línea. Después de cada paso lee los valores de las variables y de cualquier expresión que hayas pedido al IDE que vigile, y compáralos con los valores que esperabas; la primera línea después de la cual un valor es incorrecto es donde está el error lógico. La ventana de informe muestra cualquier mensaje de error en tiempo de ejecución y la salida producida hasta ahora.

Ejemplo resuelto. Coloca cada característica en su grupo del programa de estudios: prettyprint, aviso sensible al contexto, verificación de sintaxis dinámica, punto de ruptura, expandir/contraer bloques de código, ventana de informe.

Codificación: aviso sensible al contexto. Detección inicial de errores: verificación de sintaxis dinámica. Presentación: prettyprint, expandir/contraer bloques de código. Depuración: punto de ruptura, ventana de informe.

Licencias de software utilizadas al traducir o distribuir código

Una licencia de software especifica el uso permitido, copia, modificación y redistribución de una obra protegida por derechos de autor. El Software Libre se refiere a las libertades de ejecutar, estudiar, modificar y compartir el software; puede venderse. Las licencias de código abierto permiten el acceso al código fuente y la modificación/redistribución bajo licencia. El software gratuito puede ser sin costo, pero reteniendo los derechos de código fuente y modificación. Para una pregunta sobre redistribución, identifique las condiciones reales de la licencia; consulte el tema 7 para comparaciones y justificaciones de elección.

Vocabulario Entrenar
English Español
debugger/ˈdiːbʌɡə/ depurador
context-sensitive prompts/ˈkɒntekst ˈsensɪtɪv prɒmpts/ indicaciones sensibles al contexto
auto-complete/ˈɔːtəʊ kəmˈpliːt/ autocompletado
dynamic syntax checks/daɪˈnæmɪk ˈsɪntæks tʃeks/ comprobaciones sintácticas dinámicas
prettyprint/ˈpretɪprɪnt/ formato legible del código
syntax highlighting/ˈsɪntæks ˈhaɪlaɪtɪŋ/ resaltado de sintaxis
breakpoints/ˈbreɪkpɔɪnts/ puntos de interrupción
single stepping/ˈsɪŋɡl ˈstepɪŋ/ ejecución paso a paso
report window/rɪˈpɔːt ˈwɪndəʊ/ ventana de informe
version control/ˈvɜːʃn kənˈtrəʊl/ control de versiones
refactoring/rɪˈfæktərɪŋ/ refactorización
unit test/ˈjuːnɪt test/ prueba unitaria
5.2

Definiciones aceptadas por el examinador

Una pregunta de definición se califica según un texto fijo. Aprende estas definiciones exactamente, y da solo una respuesta.

Término Definición
sistema operativo software que gestiona el hardware y los recursos del ordenador y proporciona una interfaz entre el usuario, los programas de aplicación y el hardware
software de utilidad software de sistema que realiza una tarea específica para mantener, optimizar o proteger el ordenador, como un antivirus o un desfragmentador
biblioteca de programas colección de rutinas preescritas y probadas (subrutinas, clases, módulos) que un programa puede utilizar en lugar de escribir las suyas propias
Biblioteca de Enlaces Dinámicos (DLL) biblioteca de programas cuyas rutinas se cargan en la memoria solo cuando el programa las llama, en tiempo de ejecución, y que son compartidas entre programas
ensamblador traductor que convierte un programa en lenguaje de ensamblaje en código máquina, una instrucción por cada instrucción
compilador traductor que convierte todo un programa en lenguaje de alto nivel en código máquina antes de ser ejecutado, produciendo un archivo ejecutable
intérprete traductor que traduce y ejecuta un programa en lenguaje de alto nivel una sentencia a la vez
entorno de desarrollo integrado (IDE) aplicación única que proporciona las herramientas para escribir, traducir, ejecutar y depurar un programa
indicación contextual ventana emergente que sugiere identificadores, palabras clave o parámetros que corresponden al punto actual del código
comprobación de sintaxis dinámica comprobación de la sintaxis del código mientras se escribe y señalización de errores antes de que el programa sea traducido
formateo estético visualización del código con palabras clave, identificadores y comentarios en diferentes colores o fuentes, y con sangrías consistentes
punto de interrupción línea marcada en la que el programa en ejecución se pausa para poder inspeccionar variables
paso a paso ejecución de un programa pausado una sentencia a la vez bajo el control del programador
5.2

Consejos para el examen

  • Enumere las funciones del SO según sus nombres del temario (gestión de memoria, procesos, hardware, archivos y seguridad) y explique qué hace cada una: decir simplemente "gestiona recursos" es demasiado vago.
  • Compare compilador vs. intérprete vs. ensamblador: qué traducen, cuándo lo hacen y cómo se informan los errores.
  • Explique qué proporciona un IDE utilizando los grupos del temario: codificación, detección inicial de errores, presentación y depuración.
  • Una respuesta sobre una "ventaja para el desarrollador" menciona el ahorro del desarrollador: tiempo, coste, experiencia, fiabilidad o mantenimiento. Una "desventaja" menciona una dependencia: disponibilidad, versión, compatibilidad o seguridad.
  • Para "describir el funcionamiento de" un traductor, proporcione tres cosas: qué se traduce (programa completo o una sentencia), cuándo (antes de ejecutar o durante la ejecución) y cómo se informan los errores (todos a la vez o en el primer error).

Errores comunes

  • Escribir "el OS controla el ordenador" o "gestiona recursos" sin dar una tarea de ejemplo. Cada punto vale por una tarea nombrada con lo que hace.
  • Decir que un intérprete "compila línea por línea". Un intérprete traduce y ejecuta cada sentencia; nunca produce un ejecutable.
  • Decir que un compilador ejecuta el programa. Solo traduce; el ejecutable se ejecuta después, sin el compilador.
  • Colocar una DLL "dentro" del ejecutable. Eso es una biblioteca estática; una DLL permanece como un archivo separado que se carga en tiempo de ejecución.
  • Decir que la desfragmentación "elimina" o "comprime" archivos, o que es necesaria en una SSD. Solo mueve bloques para que cada archivo se almacene de forma contigua.
  • Clasificar el formateo estético o el colapso de bloques bajo "depuración". Son características de presentación; la depuración incluye puntos de interrupción, paso a paso, observación de variables y ventana de informes.

Lecciones interactivas sobre este tema

Trátalo paso a paso, con ejercicios de verificación instantánea.

Exámenes Anteriores

Más temas en A-Level Ciencias de la Computación

Iniciar sesión o crear cuenta

IGCSE, A-Level & AP