跳到主要内容

系统软件

A-Level 计算机科学 · 第 5 主题

训练
本章视频课 打开视频页面
21:02

Operating Systems

You have never seen it, and you never will — yet it is always there. Behind every app you open, every file you save, every tap on the screen, an invisible…

英文讲解 · 内嵌中英文字幕

5.1

操作系统

大纲
Candidates should be able to: Notes and guidance
Explain why a computer system requires an Operating System (OS)
Explain the key management tasks carried out by the Operating System Including memory management, file management, security management, hardware management (input/output/peripherals), process management
Show understanding of the need for typical utility software provided with an Operating System Including disk formatter, virus checker, defragmentation software, disk contents analysis / disk repair software, file compression, back-up software
Show understanding of program libraries Including: • software under development is often constructed using existing code from program libraries • the benefits to the developer of software constructed using library files, including Dynamic Link Library (DLL) files

来源:剑桥国际大纲

为什么一台计算机需要一个操作系统

硬件本身只能取指令并运行它们——它对文件、程序、网络或用户一无所知。操作系统(operating system,OS)是这样一个软件层,它:

  • 为运行中的程序管理硬件(处理器(processor)、内存、I/O、存储)。
  • 通过一个清晰的接口提供服务(文件系统、网络、用户账户),所以程序不必直接与硬件对话。
  • 提供一个用户界面(命令行、GUI、触控)。
  • 让几个程序安全地共享硬件——每个获得公平的 CPU 时间并被挡在其他程序的内存之外。

没有操作系统,每个程序都需要它自己的驱动,而且一次只能安全地运行一个程序。

"描述操作系统的用途"——五分清单。 操作系统(1)在用户与硬件之间提供一个接口;(2)向用户和应用程序隐藏硬件的复杂性;(3)管理硬件资源——处理器时间、内存、存储和输入/输出设备——并在程序之间分配它们;(4)把应用软件加载到内存并运行它,给每个程序同样的运行平台;(5)让几个程序同时运行(多任务处理(multitasking)),同时保证它们和用户数据的安全。给出五个不同的要点;只说"它运行计算机"或"它管理资源"不得分。

屏幕上一个桌面操作系统
一个桌面操作系统为用户管理屏幕、文件和程序
一只手拿着一部智能手机,屏幕上是带应用图标的 Android 主屏幕
手机同样需要操作系统:这是一个移动操作系统 Android

关键的管理任务

大纲列出五项。下面每个要点都是操作系统实际做的一件事,这正是"描述"题想要的。

  • 内存管理(memory management)——在程序加载时给它分配内存,使每个程序的内存彼此分开(内存保护(memory protection)),让一个程序不能覆盖另一个;程序结束时释放内存;并在 RAM(随机存取存储器)与辅助存储器(secondary storage,即磁盘)之间交换页面(虚拟内存(virtual memory)/分页(paging)),使打开的程序可以多于物理内存所能容纳的。
  • 进程管理(process management)——运行中的程序是一个进程(process)。操作系统创建和结束进程,决定下一个由哪个进程使用 CPU(调度(scheduling))以及用多久(一个时间片(time slice)),在它们之间切换,在两个进程争用同一资源时解决冲突,并能终止一个停止响应的进程。
  • 硬件管理(输入/输出与外围设备)——通过每个设备的设备驱动(device driver)与之通信,把发往打印机等慢速设备的数据排队和缓冲,响应来自设备的中断(interrupts),并让几个程序共用一台设备。
  • 文件管理——创建、命名、复制、移动和删除文件与文件夹,维护目录(directory)结构并记录每个文件存放在磁盘的哪里,给文件分配磁盘空间,并对每个用户执行访问权限(access rights)(读 / 写 / 执行)。
  • 安全管理——用户账户和密码(身份验证(authentication))、访问权限、存储数据的加密、防火墙、自动安全更新,以及谁做了什么的日志。
一个枢纽图,操作系统在中心,通过辐条连到内存、进程、文件、设备和安全管理以及用户界面
操作系统所管理的主要工作
一个内存映射,操作系统和三个应用程序各在它们自己的块中,由边界地址分隔;一个块内的访问被允许,但一个越过边界的访问被阻止
内存保护使每个应用程序保持在它自己的内存块中

内存管理与进程管理如何支持多任务处理(常见的四分题)。内存管理把几个程序同时加载到内存中,各在自己受保护的区域,并记录哪些地址属于哪个程序;进程管理在它们之间分配处理器——每个进程运行一个时间片,操作系统保存它的状态并切换到下一个,切换快到所有程序看起来在同时运行。中断让操作系统在设备需要处理时随时从进程手中收回处理器。

中断。 硬件中断(hardware interrupt)来自设备:按下一个键、点击鼠标、打印机缺纸、磁盘完成一次传输、电源故障。软件中断(software interrupt)来自程序:除以零、无效指令、试图使用不属于它的内存,或请求一项操作系统服务。操作系统的中断处理程序(interrupt handler)保存正在运行的进程的状态,处理中断,然后恢复该进程(专题 4 讲取指-执行的细节)。

实用软件

实用程序(utility programs)是维护、修复或优化计算机而不是完成用户任务的系统软件;考官接受"执行一项特定的维护任务,改善性能或安全"。大多数操作系统捆绑这些:

常见的实用程序:杀毒软件、备份、文件压缩和磁盘碎片整理
实用程序:杀毒软件、备份、压缩和碎片整理
  • 磁盘格式化程序——为一个新磁盘(或抹掉一个旧磁盘)做好使用准备:建立它的文件系统和分区,删除任何已有数据。
  • 病毒检查器(杀毒软件(antivirus))——扫描文件和内存,把代码与已知病毒签名(signatures)的数据库比对并监视可疑行为,然后隔离或删除发现的东西;按计划运行、每次下载时运行,并且需要随新病毒出现而更新。
  • 碎片整理软件(磁盘碎片整理(disk defragmenter))——硬盘把文件存放在它找到的任何空闲块中,所以经过多次保存和删除后,一个文件分散(碎片化(fragmented))在盘片各处,读写头必须在各碎片之间跳来跳去。碎片整理程序把每个文件的各部分挪到一起,并把空闲空间集中到一个区域,于是文件加载更快,新文件也不会碎片化。SSD 没有移动的磁头,不需要它。
  • 磁盘内容分析 / 磁盘修复软件——显示什么占用了磁盘空间(大文件、重复文件或临时文件),以便删除;找到并修复坏扇区、丢失簇和文件系统错误。
  • 文件压缩(压缩(compression))——缩小文件,使它们占用更少存储并更快传输;归档把许多文件打包成一个。
  • 备份软件(备份(backup))——按计划把文件复制到另一个介质(外部磁盘、网络、云端),使数据在丢失、损坏或勒索软件攻击后可以恢复;一次完整备份之后是只备份变化部分的增量备份(incremental backups)。
  • 防火墙(firewall)(按规则过滤网络流量)和加密工具,用于安全;一个系统监视器和自动更新

把这些与操作系统捆绑,省去用户安装每一个。

哪个实用程序做什么。 *性能:*碎片整理(更快的文件访问)、磁盘修复(有错误的磁盘会变慢或失效)、磁盘内容分析(删除垃圾释放空间)、压缩(磁盘能装更多)。*安全:*病毒检查器、防火墙、加密,以及备份(勒索软件之后唯一的恢复手段)。"连线"题把每个实用程序与恰好一个用途配对——记住上面的配对,并使用大纲的名称。

例题。 解释碎片整理如何改善计算机的性能(3 分)。

随着时间推移,一个文件被存放在分散于硬盘各处的块中,所以读取它需要读写头多次移动。碎片整理程序重新排列这些块,使每个文件连续存放,空闲空间集中在一起。此后读取文件的磁头移动更少,加载更快,新文件也能写入一段连续的空间。

探索

Where the operating system sits

Tap each layer. The OS is the middle layer — it sits between your applications and the hardware, sharing the machine safely so programs never touch the hardware directly.

词汇表 训练
英文 中文 拼音
operating system/ˈɒpəreɪtɪŋ ˈsɪstəm/ 操作系统 cāo zuò xì tǒng
processor/ˈprəʊsesə/ 处理器 chǔ lǐ qì
multitasking/ˈmʌltitæskɪŋ/ 多任务处理 duō rèn wù chǔ lǐ
memory management/ˈmeməri ˈmænɪdʒmənt/ 内存管理 nèi cún guǎn lǐ
memory protection/ˈmeməri prəˈtekʃn/ 内存保护 nèi cún bǎo hù
RAM/ræm/ 随机存取存储器 suí jī cún qǔ cún chǔ qì
secondary storage/ˈsekəndəri ˈstɔːrɪdʒ/ 辅助存储器 fǔ zhù cún chǔ qì
virtual memory/ˈvɜːtʃuːəl ˈmeməri/ 虚拟内存 xū nǐ nèi cún
paging/ˈpeɪdʒɪŋ/ 分页 fēn yè
process management/ˈprəʊses ˈmænɪdʒmənt/ 进程管理 jìn chéng guǎn lǐ
process/ˈprəʊses/ 进程 jìn chéng
scheduling/ˈʃedjuːlɪŋ/ 调度 diào dù
time slice/taɪm slaɪs/ 时间片 shí jiān piàn
device driver/dɪˈvaɪs ˈdraɪvə/ 设备驱动 shè bèi qū dòng
interrupts/ˈɪntərʌpts/ 中断 zhōng duàn
directory/daɪˈrektəri/ 目录 mù lù
access rights/ˈækses raɪts/ 访问权限 fǎng wèn quán xiàn
authentication/ɔːˌθentɪˈkeɪʃn/ 身份验证 shēn fèn yàn zhèng
firewall/ˈfaɪəwɔːl/ 防火墙 fáng huǒ qiáng
hardware interrupt/ˈhɑːdweə ˈɪntərʌpt/ 硬件中断 yìng jiàn zhōng duàn
software interrupt/ˈsɒftweə ˈɪntərʌpt/ 软件中断 ruǎn jiàn zhōng duàn
interrupt handler/ˈɪntərʌpt ˈhændlə/ 中断处理程序 zhōng duàn chǔ lǐ chéng xù
utility program/juːˈtɪlɪti ˈprəʊɡræm/ 实用程序 shí yòng chéng xù
antivirus/ˌæntɪˈvaɪrəs/ 杀毒软件 shā dú ruǎn jiàn
backup/ˈbækʌp/ 备份 bèi fèn
compression/kəmˈpreʃn/ 压缩 yā suō
disk defragmenter/dɪsk ˌdiːˈfræɡmentə/ 碎片整理 suì piàn zhěng lǐ
signatures/ˈsɪɡnɪtʃəz/ 签名 qiān míng
fragmented/fræɡˈmentɪd/ 碎片化 suì piàn huà
incremental backups/ˌɪŋkrɪˈmentl ˈbækʌps/ 增量备份 zēng liàng bèi fèn
练习卷 双页
5.1

程序库

一个程序库(program library)是预先写好的代码(子程序(subroutines)、类、模块),程序重用它而不是自己写——例如一个数学库、一个网络库、一个图形库。

一个正在开发的新程序,重用来自一个数学库、一个图形库和一个网络库的现成例程
一个新程序重用来自库的现成例程

好处:节省时间(现成的代码)、可靠(经过充分测试、广泛使用),以及标准化(一致的行为)。

考官的好处清单,针对开发者。 库例程(library routines)已经写好并测试过,所以开发更快、更便宜;它们可靠,而且被许多程序使用,基本没有错误;开发者不需要该领域的专长(图形、压缩、加密、路径搜索);程序更容易维护,因为公共代码只在一处;整个团队可以用同样的例程,得到一致的结果。**缺点:**例程可能不完全符合你的需要而你又无法修改它;你的程序依赖于库的可用、正确和安全——库中的一个错误或安全漏洞就是你程序中的错误;而且你必须学会如何调用它。

  • 一个静态库(static library)在编译时被复制到可执行文件中(独立,但更大且需要重建来更新)。
  • 一个动态库(dynamic library,DLL,动态链接库;.so)在运行时被加载(可执行文件更小、被许多程序共享、一次更新惠及所有)。
一个静态库在编译时被复制到可执行文件中,构成一个更大的独立程序;一个动态库文件(.dll 或 .so)保持分离、在运行时被加载,并被几个程序共享
静态:库被复制到可执行文件中。动态:一个共享库文件在运行时被加载

动态链接库(DLL)文件。 DLL 是一种只在程序调用它时才于运行时加载到内存的库,它保持为一个独立文件,而不是被复制进可执行文件。*好处:*可执行文件更小;几个运行中的程序共享内存中的一份 DLL;DLL 可以更新(修复错误、支持新设备)而不必重新编译使用它的程序;内存只在需要该例程时才被占用。*缺点:*如果 DLL 缺失、被移动或版本不对,程序就无法运行;更新后的 DLL 可能破坏依赖旧行为的程序;被替换成假的 DLL 会以程序的权限运行。

例题。 一个团队为餐厅机器人编写软件,使用了一个包含"寻找餐桌之间最短路径"例程的程序库。解释对团队的两个好处和一个缺点。

*好处:*例程已经写好并测试过,团队节省时间并可以信任结果;团队不必自己理解路径搜索算法,可以把时间花在机器人自身的功能上。*缺点:*例程可能无法处理餐厅的具体需求(移动的椅子、单行通道),而团队无法修改它,因此可能不得不绕开它的限制。

探索

Computing concept lab

Classify concrete examples by the computing idea they demonstrate.

词汇表 训练
英文 中文 拼音
program library/ˈprəʊɡræm ˈlaɪbrəri/ 程序库 chéng xù kù
subroutines/ˈsʌbruːtiːnz/ 子程序 zi chéng xù
library routines/ˈlaɪbrəri ruːˈtiːnz/ 库例程 kù lì chéng
static library/ˈstætɪk ˈlaɪbrəri/ 静态库 jìng tài kù
dynamic library/daɪˈnæmɪk ˈlaɪbrəri/ 动态库 dòng tài kù
5.2

语言翻译程序

大纲
Candidates should be able to: Notes and guidance
Show understanding of the need for: • assembler software for the translation of an assembly language program • a compiler for the translation of a high-level language program • an interpreter for translation and execution of a high-level language program
Explain the benefits and drawbacks of using either a compiler or interpreter and justify the use of each
Show awareness that high-level language programs may be partially compiled and partially interpreted, such as Java (console mode)
Describe features found in a typical Integrated Development Environment (IDE) Including: • for coding, including context-sensitive prompts • for initial error detection, including dynamic syntax checks • for presentation, including prettyprint, expand and collapse code blocks • for debugging, including single stepping, breakpoints, i.e. variables, expressions, report window

来源:剑桥国际大纲

你写源代码;计算机运行机器码(machine code)。一个翻译器(translator)在它们之间转换。

汇编器

一个汇编器(assembler)把汇编语言(assembly language)翻译成机器码:每条助记符指令(LDDADDJMP)恰好变成一条机器码指令,符号地址和标号被替换成真实地址。需要它是因为处理器只执行机器码;在程序员需要直接控制硬件的地方(嵌入式系统、设备驱动)使用汇编。

编译器

一个编译器(compiler)在运行之前一次性把一个高级程序翻译成机器码。

  • 它在编译时报告所有错误;一旦干净,它产生一个独立的可执行文件(executable),它在没有安装编译器的情况下运行,并能运行许多次。
  • 通常运行时更快(运行时没有翻译),但绑定到一个 CPU/OS——为每个平台重新编译。

两分的描述:*编译器在运行之前整个高级语言程序翻译成机器码(目标代码(object code)),生成一个可执行文件,并在翻译结束时把所有语法错误一起列出。*它不运行程序。

解释器

一个解释器(interpreter)一次一行地翻译并运行一个高级程序,不产生可执行文件。

  • 在到达那一行时报告一个错误,然后停止;你可以修正它并继续——对开发很好。
  • 必须安装解释器才能运行程序;通常更慢(每次运行都重新翻译),但容易跨平台移植(port)。

两分的描述:*解释器一次翻译高级语言程序的一条语句并立即执行它,再处理下一条;不生成可执行文件;遇到第一个错误就停下并报告。*每次运行程序时,源代码和解释器都必须在场。

一个编译器把源一次性翻译成一个可执行文件,它随后在没有翻译器在场的情况下运行许多次;一个解释器每次运行都一次一行地翻译并运行源
一个编译器一次性翻译成一个独立程序;一个解释器每次运行都逐行翻译

在它们之间选择

编译器当: 解释器当:
运行时速度重要 你想要快速的编辑-运行循环
分发给没有开发工具的用户 编写跨平台脚本
程序运行许多次 程序小或只运行一次
教初学者

好处与缺点,按标准答案的列法。

编译器 解释器
执行速度 快——已经是机器码 较慢——每次运行都要翻译
用户需要什么 只要可执行文件;不需要翻译器,源代码保持私密 源代码和解释器
发现错误 整个程序翻译完后一次列出所有错误 每个错误在出现的那一行报告,边开发边发现
修改代码 每次修改后重新编译整个程序 编辑后立即再运行
可移植性 机器码只能在一个平台运行;每个平台重新编译 同样的源代码在任何有解释器的地方运行

例题。 一个开发者在编写程序时使用解释器,在完成后使用编译器。解释每一个是如何使用的(4 分)。

开发期间,解释器立刻运行写了一部分的程序,不必等待完整翻译;遇到错误时它报告所在行,开发者修正后立即再运行——一个快速的编辑-运行循环,更便于调试。程序完成后,编译器把整个程序翻译成一个可执行文件,它运行更快、用户电脑上不需要翻译器、也不暴露源代码,因此可以卖给公众。

混合:Java

Java 被编译成字节码(bytecode,一种平台无关的中间形式),一个虚拟机(virtual machine,JVM)随即解释它——或使用即时编译(just-in-time compilation)把热点部分变成本地代码。所以错误被及早捕获、字节码在任何有 JVM 的地方运行("一次编写,到处运行"),并且长时间运行的程序达到接近本地的速度。C# 和 Python 用类似的设计。

大纲的说法是"部分编译、部分解释":编译阶段捕捉语法错误并生成紧凑、可移植(portable)的字节码;解释阶段让这一个字节码文件在任何装有虚拟机的机器上运行,代价是损失一些速度。控制台模式(从命令行运行的文本程序)下的 Java 是大纲的例子。

Java 源被一次性编译成平台无关的字节码(.class),Windows、macOS 或 Linux 上的一个 JVM 随即解释它或 JIT 编译它成本地代码
Java 编译成可移植的字节码,任何 JVM 都能运行它——一次编写,到处运行

例题。 Java 源代码被编译成字节码,再由 JVM 解释执行。为什么两者都用,而不直接编译成机器码?编译器生成的是针对某一种处理器和操作系统的机器码,所以在一台机器上编译的程序无法在另一台上运行。而 Java 的编译器面向的是一台虚拟机器,所以它产生的字节码在哪里都完全相同;各个平台再各自提供自己的 JVM,把这些字节码解释成本平台的原生指令。因此一个编译好的文件可以在任何有 JVM 的地方运行 - "一次编写,到处运行"。代价是速度:解释字节码比运行原生代码慢,这正是真实的 JVM 还会用 JIT 编译在运行时把频繁执行的字节码转成原生代码的原因。要把面都说出来 - 得分点是用速度换来的可移植性。

探索

The compiler route: source to running program

Step through how a compiler works — translating the whole program once, before it runs. Contrast it with an interpreter, which translates and runs one line at a time.

词汇表 训练
英文 中文 拼音
executable/ɪɡˈzekjʊtəbl/ 可执行文件 kě zhí xíng wén jiàn
translator/trænˈsleɪtə/ 翻译器 fān yì qì
machine code/məˈʃiːn kəʊd/ 机器码 jī qì mǎ
assembler/əˈsemblə/ 汇编器 huì biān qì
assembly language/əˈsemblɪ ˈlæŋɡwɪdʒ/ 汇编语言 huì biān yǔ yán
compiler/kəmˈpaɪlə/ 编译器 biān yì qì
object code/ˈɒbdʒekt kəʊd/ 目标代码 mù biāo dài mǎ
interpreter/ɪnˈtɜːprɪtə/ 解释器 jiě shì qì
bytecode/ˈbaɪtkəʊd/ 字节码 zì jié mǎ
virtual machine/ˈvɜːtʃuːəl məˈʃiːn/ 虚拟机 xū nǐ jī
just-in-time compilation/dʒʌst ɪn taɪm ˌkɒmpɪˈleɪʃn/ 即时编译 jí shí biān yì
portable/ˈpɔːtəbl/ 可移植的 kě yí zhí de
观看视频课 练习卷 双页
5.2

集成开发环境(IDE)

一个集成开发环境(integrated development environment,IDE)把写、测试和调试代码的工具带进一个应用程序:

一个 IDE 把代码编辑器、一个运行按钮和一个调试器聚集进一个程序
一个 IDE 捆绑编辑器、一个运行按钮和一个调试器

大纲把这些功能分成四类。记住每个功能属于哪一类,因为题目会要求你归类,并从每一类中描述一个。

  • 用于编码: 上下文相关提示(context-sensitive prompts)——在你输入时,IDE 弹出适合代码当前位置的标识符、关键字或参数;自动补全(auto-complete)替你补完名称;自动缩进和括号匹配在你输入时保持版面正确。
  • 用于初步错误检测: 动态语法检查(dynamic syntax checks)——编辑器在你输入时检查语法,并在程序翻译之前立即给错误加下划线或高亮;翻译之后,带行号的错误信息。
  • 用于呈现: 代码美化(prettyprint)——关键字、标识符、字符串和注释用不同的颜色或字体显示(语法高亮(syntax highlighting)),并保持一致的缩进,使结构一目了然;展开和折叠代码块——隐藏一个循环、一个 IF 或一个子程序的主体,只看轮廓。
  • 用于调试: 断点(breakpoints)——程序到达标记的行时暂停;单步执行(single stepping)——从暂停处一次运行一行;一个显示变量和表达式当前值及其变化的窗口;以及一个列出错误、警告和输出的报告窗口(report window)。

其他功能:翻译器集成(一键编译或运行,错误内联显示)、驱动上述调试功能的调试器(debugger)、版本控制(version control)集成(git)、项目管理、帮助系统、重构(refactoring)工具(安全重命名)和单元测试(unit test)集成。

一个 IDE 窗口,用编号标签标注:彩色关键字(代码美化)、一个折叠的代码块、一个建议名称的弹出提示、动态语法检查的波浪下划线、边栏中的断点圆点、单步执行时当前行上的箭头、一个变量面板和一个报告窗口
大纲点名的 IDE 功能,以及你在屏幕上看到它们的位置

一个 IDE 通过把写 → 运行 → 调试 → 修正放在一个接口后面来加速开发。常见的 IDE:Visual Studio、PyCharm、Eclipse、VS Code。

一个调试器工作流:设置一个断点、运行程序,当它到达断点时暂停,以便你检查变量,然后一次一行地单步或继续
一个调试器:设置一个断点、运行,然后暂停来检查变量并单步执行代码

例题。 程序运行时,函数 Calculate() 返回一个意外的值。描述典型 IDE 的调试功能如何帮助找出原因(4 分)。

Calculate() 的第一行设置一个断点,程序会在那里暂停而不是一直跑完。然后在函数中单步执行,一次一行。每一步之后读取变量的值以及你让 IDE 监视的任何表达式的值,与你预期的值比较;第一个使某个值出错的行之后就是逻辑错误所在。报告窗口显示任何运行时错误信息和到目前为止产生的输出。

例题。 把每个功能归入它的大纲类别:代码美化、上下文相关提示、动态语法检查、断点、展开/折叠代码块、报告窗口。

编码:上下文相关提示。初步错误检测:动态语法检查。呈现:代码美化、展开/折叠代码块。调试:断点、报告窗口。

词汇表 训练
英文 中文 拼音
integrated development environment/ˈɪntɪɡreɪtɪd dɪˈveləpmənt enˈvaɪrənmənt/ 集成开发环境 jí chéng kāi fā huán jìng
debugger/ˈdiːbʌɡə/ 调试器 tiáo shì qì
context-sensitive prompts/ˈkɒntekst ˈsensɪtɪv prɒmpts/ 上下文相关提示 shàng xià wén xiāng guān tí shì
auto-complete/ˈɔːtəʊ kəmˈpliːt/ 自动补全 zì dòng bǔ quán
dynamic syntax checks/daɪˈnæmɪk ˈsɪntæks tʃeks/ 动态语法检查 dòng tài yǔ fǎ jiǎn chá
prettyprint/ˈpretɪprɪnt/ 代码美化 dài mǎ měi huà
syntax highlighting/ˈsɪntæks ˈhaɪlaɪtɪŋ/ 语法高亮 yǔ fǎ gāo liàng
breakpoints/ˈbreɪkpɔɪnts/ 断点 duàn diǎn
single stepping/ˈsɪŋɡl ˈstepɪŋ/ 单步执行 dān bù zhí xíng
report window/rɪˈpɔːt ˈwɪndəʊ/ 报告窗口 bào gào chuāng kǒu
version control/ˈvɜːʃn kənˈtrəʊl/ 版本控制 bǎn běn kòng zhì
refactoring/rɪˈfæktərɪŋ/ 重构 chóng gòu
unit test/ˈjuːnɪt test/ 单元测试 dān yuán cè shì
5.2

考官认可的定义

定义题按固定措辞给分。把这些记准,并且只给一个答案。

术语 定义
操作系统 管理计算机硬件和资源,并在用户、应用程序与硬件之间提供接口的软件
实用软件 执行一项特定任务以维护、优化或保护计算机的系统软件,例如病毒检查器或碎片整理程序
程序库 一组预先写好并测试过的例程(子程序、类、模块),程序可以使用它们而不必自己编写
动态链接库(DLL) 其例程只在程序调用时于运行时加载到内存、并在程序之间共享的程序库
汇编器 把汇编语言程序转换成机器码的翻译器,每条指令对应一条
编译器 在运行之前把整个高级语言程序转换成机器码、生成可执行文件的翻译器
解释器 一次翻译并执行高级语言程序一条语句的翻译器
集成开发环境 提供编写、翻译、运行和调试程序所需工具的单一应用程序
上下文相关提示 建议适合代码当前位置的标识符、关键字或参数的弹出框
动态语法检查 在输入时检查代码的语法,并在程序翻译之前标出错误
代码美化 用不同的颜色或字体显示关键字、标识符和注释,并保持一致的缩进
断点 一个标记的行,运行中的程序在此暂停以便检查变量
单步执行 在程序员控制下,让暂停的程序一次运行一条语句
5.2

考试技巧

  • 用大纲名称列出操作系统的工作(内存、进程、硬件、文件和安全管理),并说出每项做什么——单说"管理资源"太含糊。
  • 比较编译器对解释器对汇编器:每个翻译什么、何时翻译,以及如何报告错误。
  • 用大纲的分类解释一个 IDE 提供什么:编码、初步错误检测、呈现、调试。
  • "对开发者的好处"要点出开发者省下的东西:时间、成本、专长、可靠性或维护。"缺点"要点出一种依赖:可用性、版本、契合度、安全。
  • "描述某翻译器的工作方式"要给出三件事:翻译什么(整个程序还是一条语句)、何时翻译(运行前还是运行中)、如何报告错误(一次全部还是在第一个错误处)。

常见错误

  • 写"操作系统控制计算机"或"管理资源"而没有任何具体任务。每一分都是一项有名称的任务加上它做什么。
  • 说解释器"逐行编译"。解释器翻译并执行每条语句;它从不生成可执行文件。
  • 说编译器运行程序。它只翻译;可执行文件稍后在没有编译器的情况下运行。
  • 把 DLL 放"在"可执行文件里。那是静态库;DLL 保持为运行时加载的独立文件。
  • 说碎片整理"删除"或"压缩"文件,或者 SSD 需要它。它只是移动块,使每个文件连续存放。
  • 把代码美化或折叠代码块归入"调试"。它们是呈现功能;调试是断点、单步执行、监视变量和报告窗口。

本主题的互动课程

逐步学习,并即时检测练习。

A-Level 计算机科学历年真题

A-Level 计算机科学的更多主题

登录或创建账号

IGCSE, A-Level & AP