Aquí hay una computadora completamente nueva. Cada parte física funciona — el procesador, la memoria, la pantalla, el teclado. Enciéndela y no pasa nada. No hay escritorio…
Narración en inglés · subtítulos en inglés y 中文 que puedes cambiar
4.1
Hardware y software
Un sistema informático está formado por dos partes que trabajan juntas.
El hardware son las partes físicas; el software son los programas.
El hardware son las partes físicas del ordenador: los componentes que se pueden tocar. Ejemplos: la CPU, la memoria, el teclado, la pantalla y el disco duro.
El software son los programas que controlan el ordenador y le indican al hardware qué hacer.
El hardware no puede hacer nada útil por sí solo. El software necesita hardware para ejecutarse. Ambos son necesarios.
La placa base y las piezas unidas a ella son hardware — las partes físicas que se pueden tocarUn sistema operativo es software — los programas que dicen al hardware qué hacer
1 Describir la diferencia entre el software del sistema y el software de aplicación, y proporcionar ejemplos de cada uno
• El software del sistema proporciona los servicios que necesita el ordenador, incluido el sistema operativo y el software de utilidad • El software de aplicación proporciona los servicios que necesita el usuario
2 Describir el papel y las funciones básicas de un sistema operativo
• Incluyendo: – gestión de archivos – gestión de interrupciones – proporcionación de una interfaz – gestión de periféricos y controladores – gestión de memoria – gestión de multitarea – proporcionación de una plataforma para ejecutar aplicaciones – provisión de seguridad del sistema – gestión de cuentas de usuario
3 Entender cómo se requieren hardware, firmware y un sistema operativo para ejecutar software de aplicación
• Las aplicaciones se ejecutan sobre el sistema operativo • El sistema operativo se ejecuta sobre el firmware • El bootloader (firmware) se ejecuta sobre el hardware
4 Describir el papel y el funcionamiento de las interrupciones
• Incluyendo: – cómo se genera una interrupción – cómo se gestiona mediante una rutina de servicio de interrupciones – qué sucede como resultado de las interrupciones • Las interrupciones por software incluyen la división por cero y dos procesos intentando acceder a la misma ubicación de memoria • Las interrupciones por hardware incluyen presionar una tecla en el teclado y mover el ratón
Fuente: Plan de estudios Cambridge International
El software se divide en dos tipos.
El software se divide en software de sistema (hace funcionar el ordenador) y software de aplicación (permite al usuario realizar una tarea)
Software de sistema
El software de sistema controla el propio ordenador y proporciona una base para ejecutar otros programas. Ejemplos:
un sistema operativo (ver más abajo);
un compilador y un enlazador (herramientas que convierten programas en un formato ejecutable para el ordenador);
un controlador de dispositivo — software que permite al sistema operativo controlar un componente de hardware;
software de utilidad — herramientas pequeñas que gestionan el ordenador (por ejemplo, antivirus, copias de seguridad, limpieza de disco).
Por debajo del sistema operativo se encuentra el firmware: software almacenado permanentemente en ROM o flash que se ejecuta en el momento en que el ordenador se enciende. El BIOS y el bootloader son firmware: comprueban el hardware y luego cargan el sistema operativo. Así, las capas se apilan hardware → firmware → sistema operativo → software de aplicación, cada una ejecutándose sobre la capa inferior.
Software de aplicación
Software de aplicación permite al usuario realizar una tarea útil. Ejemplos:
software de procesamiento de texto (redacción de documentos);
software de hoja de cálculo (manipulación de números en una cuadrícula);
sistema de gestión de bases de datos (almacenamiento y búsqueda de datos);
providing a user interface/prəˈvaɪdɪŋ ə ˈjuːzə ˈɪntəfeɪs/
Proporcionar una interfaz de usuario
user interface/ˈjuːzə ˈɪntəfeɪs/
Interfaz de usuario
managing peripherals/ˈmænɪdʒɪŋ pəˈrɪfərəlz/
Gestión de periféricos
peripherals/pəˈrɪfərəlz/
Periféricos
managing multitasking/ˈmænɪdʒɪŋ ˈmʌltitæskɪŋ/
Gestión de multitarea
multitasking/ˈmʌltitæskɪŋ/
multitarea
providing a platform/prəˈvaɪdɪŋ ə ˈplætfɔːm/
Proporcionar una plataforma
platform/ˈplætfɔːm/
Plataforma
4.1
El sistema operativo
Un sistema operativo (SO) es el principal software de sistema. Controla todo el ordenador y permite que el hardware, el software de aplicación y el usuario trabajen juntos. Sin un SO, el ordenador es muy difícil de usar.
El sistema operativo se sitúa entre el hardware y el software de aplicación y el usuario, permitiendo que trabajen juntos
El OS tiene muchos roles:
gestión de archivos — guardar, abrir, nombrar, mover y eliminar archivos;
manejo de interrupciones (ver más abajo);
proporcionar una interfaz de usuario para que el usuario pueda controlar el ordenador;
gestión de la memoria — decidir qué se mantiene en RAM y dónde;
gestión de periféricos y sus controladores: control de dispositivos como impresoras;
gestión de multitarea: permitir que varios programas se ejecuten simultáneamente;
proporcionar una plataforma para ejecutar software de aplicación;
gestión de la seguridad — cuentas de usuario, contraseñas y permisos de acceso.
Ejemplo resuelto. Identifica la función del sistema operativo en cada caso: (a) un estudiante guarda un ensayo en una carpeta llamada Historia; (b) un controlador de impresora envía un documento a la impresora; (c) la música sigue reproduciéndose mientras el estudiante navega por la web; (d) un estudiante debe iniciar sesión antes de utilizar un computador escolar.
(a) gestión de archivos; (b) gestión de periféricos y sus controladores; (c) gestión de la multitarea (el sistema operativo distribuye el tiempo del procesador y la memoria entre los dos programas); (d) gestión de la seguridad (cuentas de usuario y derechos de acceso). En un examen, nombra la función y relaciónala con el ejemplo dado.
4.1
Interrupciones
Una interrupción es una señal enviada al procesador para indicarle que algo requiere atención inmediata.
Una interrupción puede provenir de tres fuentes:
hardware — por ejemplo, se presiona una tecla, o una impresora se queda sin papel;
software — por ejemplo, un programa intenta dividir por cero;
el usuario — por ejemplo, el usuario pulsa una tecla de «cancelar».
Cuando llega una interrupción, el procesador detiene lo que está haciendo, guarda su posición y atendiendo (resolviendo) la interrupción. Cuando esto está hecho, vuelve a lo que estaba haciendo antes. Esto permite que el ordenador reaccione rápidamente a eventos importantes.
En una interrupción, la CPU guarda su posición, ejecuta la rutina de servicio de interrupciones, luego restaura su posición y continúa
Las interrupciones tienen diferentes prioridades. El procesador comprueba si hay interrupciones al final de cada ciclo de búsqueda–ejecución. Si una interrupción tiene una prioridad mayor que la tarea actual, el procesador guarda la tarea actual y ejecuta la rutina de servicio de interrupción (ISR) correspondiente. Una interrupción de menor prioridad espera en una cola hasta que el procesador esté libre.
Ejemplo resuelto. Un estudiante está escribiendo un documento mientras este se imprime y la impresora se queda sin papel. Describe cómo gestiona esto la computadora.
La impresora envía una interrupción de hardware al procesador.
Al final de su ciclo actual, el procesador comprueba la prioridad de la interrupción. Es mayor que la de la tarea actual, por lo que el procesador guarda el estado de esta tarea (los valores de sus registros).
Ejecuta la rutina de servicio de interrupción de la impresora, que hace que el sistema operativo muestre un mensaje como «Sin papel».
Después restaura el estado guardado y continúa con el procesador de textos, para que el estudiante pueda seguir escribiendo.
Cuando se añade papel, la impresora envía otra interrupción y la impresión continúa.
Explorar
Cómo la CPU maneja una interrupción
Paso a paso de una interrupción. La CPU pausa lo que está haciendo, atiende el evento urgente, luego continúa exactamente donde se detuvo — así es como un procesador gestiona simultáneamente el teclado, la impresora y el temporizador.
central processing unit/ˈsentrəl ˈprəʊsesɪŋ ˈjuːnɪt/
unidad central de procesamiento
programming language/ˈprəʊɡræmɪŋ ˈlæŋɡwɪdʒ/
lenguaje de programación
high-level language/haɪ ˈlevl ˈlæŋɡwɪdʒ/
lenguaje de alto nivel
low-level language/ləʊ ˈlevl ˈlæŋɡwɪdʒ/
lenguaje de bajo nivel
machine code/məˈʃiːn kəʊd/
código máquina
assembly language/əˈsemblɪ ˈlæŋɡwɪdʒ/
lenguaje de ensamblaje
specific/spəˈsɪfɪk/
Específico
translator/trænˈsleɪtə/
traductor
4.2
Lenguajes de programación
Syllabus
Los candidatos deben ser capaces de:
Notas y orientación
1 Explicar qué se entiende por lenguaje de alto nivel y un lenguaje de bajo nivel, incluyendo las ventajas e inconvenientes de cada uno
• Las ventajas e inconvenientes incluyen: – facilidad para leer y escribir código, p. ej., el lenguaje de bajo nivel es difícil de leer; – facilidad para depurar código; – independencia de la máquina; – manipulación directa del hardware
2 Entender que el lenguaje ensamblador es una forma de lenguaje de bajo nivel que utiliza mnemotécnicos, y que se necesita un ensamblador para traducir un programa en lenguaje ensamblador a código máquina
3 Describir el funcionamiento de un compilador y un intérprete, incluyendo cómo cada uno traduce un lenguaje de alto nivel y cómo se informan los errores
• Un compilador traduce todo el código de una vez antes de ejecutarlo, produciendo un archivo ejecutable • Un intérprete traduce y ejecuta el código línea por línea • Un compilador proporciona un informe de errores para todo el código si se detectan errores • Un intérprete detiene la ejecución cuando encuentra un error
4 Explicar las ventajas e inconvenientes de un compilador y un intérprete
• Incluye la comprensión de que un intérprete se utiliza principalmente durante el desarrollo de un programa y un compilador se utiliza para traducir el programa final
5 Explicar el papel de un IDE en la escritura de código de programas y las funciones comunes que ofrecen los IDEs
• Incluyendo: – editores de código; – entorno de tiempo de ejecución; – traductores; – diagnósticos de errores; – autocompletado; – autocorrección; – formateo automático (prettyprint)
Fuente: Plan de estudios Cambridge International
Todos los ordenadores procesan datos mediante la unidad central de procesamiento (CPU). Para que la CPU realice tareas, las personas escriben programas en un lenguaje de programación. Hay dos tipos.
Lenguajes de alto nivel
Un lenguaje de alto nivel se escribe con palabras similares al inglés (por ejemplo, Python). Es:
fácil para las personas leer, escribir y corregir;
independiente del ordenador — el mismo programa puede ejecutarse en diferentes tipos de ordenadores.
Lenguajes de bajo nivel
Un lenguaje de bajo nivel está cercano a lo que utiliza realmente el hardware. Incluye:
código máquina: instrucciones escritas en binario (0s y 1s), que la CPU ejecuta directamente;
lenguaje ensamblador: código máquina escrito con códigos de palabras cortas (mnemotécnicos) en lugar de binario.
Un lenguaje de bajo nivel se relaciona con el tipo específico de CPU, por lo que un programa escrito para una CPU puede no funcionar en otra. Se utiliza cuando el programador necesita control total del hardware o código muy rápido y pequeño.
Los lenguajes de alto nivel están cerca del lenguaje humano y se ejecutan en cualquier ordenador; los lenguajes de bajo nivel (ensamblador y código máquina) están cerca del hardware y vinculados a un tipo específico de CPU
Explorar
Laboratorio de conceptos informáticos
Clasificar ejemplos concretos según la idea informática que demuestran.
La CPU solo puede ejecutar código máquina. Un programa de alto nivel debe convertirse primero en código máquina. El software que realiza esta conversión es un traductor. Hay tres tipos: un compilador y un intérprete (para código de alto nivel), y un ensamblador (para código de bajo nivel).
Compilador
Un compilador traduce el entero programa en código máquina antes de ser ejecutado. Después de traducirse, el código máquina puede ejecutarse muchas veces sin necesidad de volver a traducirlo.
la traducción ocurre una sola vez, en su totalidad;
proporciona un informe de errores para todo el código fuente, junto con los errores de traducción que detecta;
el programa terminado se ejecuta rápido y no necesita el compilador para correr.
Intérprete
Un intérprete traduce y ejecuta el programa línea por línea.
se detiene en el primer error que encuentra, lo cual ayuda durante las pruebas;
el programa se ejecuta más lento, porque se traduce cada vez que corre;
el intérprete debe estar presente cada vez que el programa se ejecuta.
Utilice un compilador cuando desee compartir un programa finalizado y rápido. Utilice un intérprete cuando esté escribiendo y probando un programa y desee encontrar errores fácilmente.
Comparación resuelta — ¿cuándo ocurre la ejecución?
Pruébalo. Utiliza los modelos de compilador de programa completo e intérprete línea por línea del temario. Considera esta breve descripción de fuente; no es un programa en un lenguaje particular.
Línea
Descripción de fuente
1
Una instrucción válida muestra Start
2
Una suma incompleta falta un valor después del signo más
3
Una instrucción válida muestra Done
La línea 2 contiene un error de traducción. ¿Qué se muestra antes de que se reporte ese error con cada traductor? ¿Se ejecutará la línea 3? Explica el orden de traducción y ejecución.
Rastro del compilador. Toda la fuente se traduce antes de la ejecución. El error en la línea 2 hace que la compilación falle. Se proporciona un informe de error para toda la fuente. El nuevo programa no se ejecuta, por lo que ni Start ni Done se muestran.
Rastro del intérprete. La línea 1 se traduce y ejecuta, mostrando Start. El intérprete encuentra el error en la línea 2 y detiene la ejecución allí. La línea 3 no se alcanza, por lo que Done no se muestra.
Estos rastros ilustran el modelo del temario; las herramientas de lenguaje reales pueden combinar enfoques. Un traductor informa errores que puede detectar, no todos los errores en la lógica del programa.
Transferencia — desarrollo y lanzamiento. Un equipo quiere localizar errores mientras prueba secciones cortas. Más tarde, los clientes deben ejecutar el programa terminado repetidamente sin instalar su traductor. Elige un traductor para cada etapa y explica por qué. En el entorno de desarrollo integrado (IDE), nombra una herramienta para ingresar la fuente y una para investigar un error reportado. Finalmente, decide si una traducción exitosa demuestra que un total calculado es correcto.
Respuesta resuelta. En el modelo del temario, un intérprete es adecuado para el desarrollo: la traducción y ejecución línea por línea se detienen en un error encontrado, ayudando al equipo a localizarlo. Un compilador es adecuado para el lanzamiento: la compilación exitosa crea un archivo ejecutable que se puede ejecutar repetidamente sin el compilador. La fuente inalterada no necesita ser traducida nuevamente en cada ejecución. Un editor de código ingresa y cambia la fuente; los diagnósticos de error ayudan a localizar y explicar los errores reportados; el entorno de tiempo de ejecución permite al equipo probar el programa. Un total incorrecto aún puede resultar de una lógica defectuosa tras una traducción exitosa. Prueba con entradas conocidas, compara resultados reales y esperados, e investiga el cálculo.
Ensamblador
Un ensamblador traduce un programa de lenguaje de ensamblaje de bajo nivel (escrito en mnemotecnias como LDA, ADD) en código máquina. Cada mnemotecnia se convierte en una instrucción de máquina: una traducción directa uno a uno, a diferencia de un compilador o intérprete, que trabajan con código de alto nivel.
Un compilador traduce el programa entero una vez en código máquina; un intérprete traduce y ejecuta una línea a la vez
Ejemplo resuelto. Un equipo está escribiendo un programa. Durante el desarrollo quieren encontrar y corregir errores rápidamente; cuando lo distribuyan quieren que los clientes lo ejecuten con rapidez sin ver el código fuente. ¿Qué traductor conviene en cada etapa? Durante el desarrollo, utiliza un intérprete: traduce y ejecuta una línea a la vez y se detiene en el primer error, por lo que es fácil localizarlo. Para distribuirlo, utiliza un compilador: traduce todo el programa una vez a código máquina, que después se ejecuta rápidamente sin necesidad de un traductor, y el cliente recibe solo el ejecutable en lugar del código fuente. Ambos no son rivales: indica la etapa y da la razón, porque «un compilador es más rápido» por sí solo no da puntos.
integrated development environment/ˈɪntɪɡreɪtɪd dɪˈveləpmənt enˈvaɪrənmənt/
entorno de desarrollo integrado
code editor/kəʊd ˈedɪtə/
Editor de código
error diagnostics/ˈerə ˌdaɪəɡˈnɒstɪks/
Diagnóstico de errores
run time environment/rʌn taɪm enˈvaɪrənmənt/
Entorno de ejecución
assembler/əˈsemblə/
Ensamblador
auto-completion/ˈɔːtəʊ kəmˈpliːʃn/
Completado automático
auto-correction/ˈɔːtəʊ kəˈrekʃn/
Corrección automática
prettyprinting/ˈpretɪprɪntɪŋ/
Formateo de impresión
4.2
Entorno de desarrollo integrado (IDE)
Un entorno de desarrollo integrado (IDE) es software que te ayuda a escribir programas. Reúne muchas herramientas útiles en un solo lugar:
un editor de código — para escribir tu programa;
un entorno de tiempo de ejecución — para ejecutar el programa y probarlo;
un traductor — un compilador o intérprete para convertir su código en código máquina;
diagnósticos de error — mensajes que te ayudan a encontrar y entender los errores;
autocompletado y autocorrección — el IDE completa o corrige el código mientras escribes;
formato estético — organizar el código ordenadamente con color y sangría para que sea fácil de leer.
Código fuente en un editor: un IDE combina editor, depurador y herramientas de ejecución en un solo lugar
4.2
Consejos para el examen
El hardware son las partes físicas; el software son los programas. El software de sistema hace funcionar el ordenador (SO, controladores, utilidades); el software de aplicación realiza una tarea para el usuario.
Un compilador traduce el programa completo de una vez (el programa finalizado se ejecuta rápido y todos los errores se reportan al final); un intérprete traduce línea por línea (se detiene en el primer error, se ejecuta más lento y es necesario cada vez).
Los lenguajes de alto nivel están cerca del inglés y se ejecutan en cualquier ordenador; los lenguajes de bajo nivel (ensamblador, código máquina) están vinculados a un tipo específico de CPU.
Una interrupción es una señal que hace que la CPU se detenga, guarde su posición, atienda el evento y luego continúe desde donde lo dejó.
Aprenda los roles del sistema operativo: gestión de archivos, memoria, periféricos, multitarea, seguridad e interfaz de usuario.
Lecciones interactivas sobre este tema
Trátalo paso a paso, con ejercicios de verificación instantánea.