CAIE IGCSE CS revision - Unit 4 (2023)

来自A level and IG Revision Wiki
跳到导航 跳到搜索

【点此返回复习要点目录】


如遇到公式加载异常,请刷新页面!

Unit 4 Software 软件


4.1 Types of software and interrupts 软件类型和中断

  • 大纲要求

CAIE-IGCS-4.1要求.png

4.1.1 Describe the difference between system software and application software and provide examples of each 描述系统软件和应用软件的区别,并举例说明

• System software provides the services that the computer requires, including operating system and utility software 系统软件提供计算机所需的服务,包括操作系统和实用软件
• Application software provides the services that the user requires 应用软件提供用户需要的服务

  • System software:系统软件,指控制和协调计算机及外部设备,支持应用软件开发和运行的系统。
    • 系统软件的特征:
      • set of programs to control and manage the operation of computer hardware. 控制和管理计算机硬件操作
      • provides a platform on which other software can run. 提供一个可以运行其他软件的平台
      • required to allow hardware and software to run without problems. 需要让硬件和软件无问题地运行
      • provides a human computer interface (HCI). 提供人机界面(HCI)
      • controls the allocation and usage of hardware resources. 控制硬件资源的分配和使用
    • 常见例子:device drivers设备驱动、operating systems操作系统、utilities实用工具等。【参考4.1.2】


  • Application software:应用软件,指用于满足用户各类需求的软件。
    • 应用软件的特征:
      • used to perform various applications (apps) on a computer. 用于在计算机上执行各种应用程序
      • allows a user to perform specific tasks using the computer’s resources. 允许用户使用计算机资源运行特定任务
      • may be a single program (for example, NotePad) or a suite of programs (for example, Microsoft Office). 可以是单个程序(例如 NotePad)或一组程序(例如 Microsoft Office)
      • user can execute the software as and when they require. 用户可以在需要时执行软件。
    • 常见例子:word processor文字处理软件、database数据库、photo editing software照片处理软件、video editing software视频处理软件等。


  • Utility software:实用工具软件,指计算机上用来完成特定任务的软件。
    • Virus checkers(anti-virus software):杀毒软件,指用于隔离或删除被计算机病毒感染的文件的软件。
      • 杀毒软件的特点:
        • Check software or files before they are run or loaded on a computer. 在计算机上运行或加载软件或文件之前对其进行检查。
        • Compare a possible virus against a database of known viruses. 将可能的病毒与已知病毒的数据库进行比较。
        • Heuristic checking. 启发式检查。(具有一定的自主学习功能)
        • Any possible files or programs which are infected are put into quarantine. 任何可能被感染的文件或程序都会被隔离。
        • Need to be kept up to date. 需要保持最新。
        • Full system checks need to be carried out once a week. 每周需要进行一次完整的系统检查。
      • 使用杀毒软件的好处:
        • Guard against being infected by virus and malwares. 保护计算机不被计算机病毒或恶意软件感染。
      • 使用杀毒软件的坏处:
        • False positive. 误报(或误删)
    • Defragmentation software:碎片整理软件,指对HDD内的数据重新整合、排序使得数据块尽量保持连续的软件。
      • 注意:通过碎片整理,可以提高硬盘的使用效率。【参考3.3.3】
    • Back-up software:备份软件,指帮助将计算机数据原始文件存储到另一存储设备(或位置)以避免数据被误删、修改等问题的软件。
      • 备份软件的功能:
        • Restore data, files or the computer from the back-up. 从备份中恢复数据或文件。
        • Create a restore point. 创建还原点。
        • Options of where to save back-up files. 选择保存备份文件的位置。
    • Security software:安全软件,指用于管理计算机数据安全的软件。
      • 安全软件的功能:
        • Manage access control and user accounts. 管理访问控制和用户账户。
        • Link into other utility software, such as virus checkers and spyware checkers. 链接到其他实用软件,例如病毒检查程序和间谍软件检查程序。
        • Protect network interfaces. 保护网络接口。
        • Use encryption and decryption to ensure any intercepted data is meaningless without a decryption key. 使用加密和解密来确保任何截获的数据在没有解密密钥的情况下都无法破解。
        • Oversee the updating of software. 监督软件的更新。
    • Screensavers:屏保,指计算机长时间不用时,使得计算机屏幕上出现动态图像的程序。
      • 注意:最初开发用于保护旧式阴极射线管(CRT)显示器免受长时间保持同一画面而出现的“磷光燃烧”问题,而现在显示器主要是LCD或OLED屏幕,不再有该问题。
      • 屏保目前的功能:
        • A way of customising a device. 个性化设备的方式
        • Part of the computer’s security system. (automatically logged out and locked when screensavers are loaded.) 计算机安全系统的一部分(计算机在加载屏幕保护程序时自动注销并锁定)。
        • Activate background tasks that can only go on when the computer is in an ‘idle’ state. 激活只有在计算机处于空闲状态时才能继续的后台任务。
    • Device drivers:设备驱动,指与操作系统交流、将计算机中的数据转化为外部设备能够理解并处理的格式的软件。
      • 在USB“即插即用”的设备中,都携带有descriptors描述符,以便计算机识别这些设备。描述符里面记录了vendor id(VID)厂家标识、product id(PID)产品标识和unique serial number唯一序列号。


4.1.2 Describe the role and basic functions of an operating system 描述操作系统的作用和基本功能

• Including: 包括:
- managing files管理文件
- handling interrupts处理中断
- providing an interface提供界面
- managing peripherals and drivers管理外部设备和驱动程序
- managing memory管理内存
- managing multitasking管理多任务处理
- providing a platform for running applications提供运行应用程序的平台
- providing system security提供系统安全
- managing user accounts 管理用户账户

  • 操作系统的常见功能:
    • Human computer interface(HCI):人机界面。操作系统为人类与计算机的沟通提供了交流方式。
      • HCI人机界面的分类:
        • Command Line Interface (CLI):命令行界面,指人们通过键盘输入command指令来与计算机交流(告知计算机待办事项)的界面。比如DOS系统中的指令输入界面。
          • 使用CLI的优点:
            • the user is in direct communication with the computer. 用户直接与计算机交流。
            • the user is not restricted to a number of pre-determined options. 用户不受许多预先确定的选项的限制。
            • it is possible to alter computer configuration settings. 可以更改计算机配置设置。
            • uses a small amount of computer memory. 使用更少的计算机内存。
          • 使用CLI的问题:
            • the user needs to learn a number of commands to carry out basic operations. 用户需要学习一些命令来执行基本操作。
            • all commands need to be typed in which takes time and can be error-prone. 所有命令都需要输入,这需要时间并且容易出错。
            • each command must be typed in using the correct format, spelling, and so on. 必须使用正确的格式、拼写等来输入每个命令。
        • Graphical User Interface (GUI):图形用户界面,指使用一系列图标来表示程序或任务,用户通过点击相应的图标来与计算机交流(告知计算机待办事项)的界面。比如现在最常见的计算机桌面。
          • 使用GUI的优点:
            • the user doesn't need to learn any commands. 用户不需要学习任何命令。
            • it is more user-friendly: icons are used to represent applications. 对用户更友好:图标用于表示应用程序。
            • a pointing device (such as a mouse) is used to click on an icon to launch the application - this is simpler than typing in commands or a touch screen can be used where applications are chosen by simply touching the icon on the screen. 指向设备(例如鼠标)用于单击图标以启动应用程序 - 这比键入命令更简单,或者可以使用触摸屏,只需触摸屏幕上的图标即可选择应用程序。
          • 使用GUI的问题:
            • this type of interface uses up considerably more computer memory than a CLI interface. GUI界面比 CLI 界面占用更多的计算机内存。
            • the user is limited to the icons provided on the screen. 用户仅限于屏幕上提供的图标。
            • needs an operating system, such as Windows, to operate, which uses up considerable memory. 需要操作系统(例如 Windows)才能运行,这会占用大量内存。
    • Memory management:内存管理。操作系统管理并追踪着RAM的运转,确保各项程序不会调用同一内存位置。同时,也会管理虚拟内存的使用,即允许数据在RAM和HDD/SSD之间转移。
    • Security management:安全管理。保证数据的integrity完整性、confidentiality保密性和availability可获取性。
      • 常见功能:系统更新、杀毒软件及防火墙、关键位置保护、数据备份与恢复等
    • Hardware peripheral management:外部硬件管理。操作系统通过驱动来管理外部硬件与计算机之间的联系(包括输入和输出),并管理不同硬件设备的数据处理顺序。
    • File management:文件管理。
      • 操作系统进行文件管理的常见内容:
        • File naming conventions. 文件命名约定(包含文件名、类型、创建日期等内容)
        • Performing specific tasks (for example, delete, rename, copy, and move). 执行特定任务(例如,删除、重命名、复制和移动)
        • Maintaining the directory structures. 维护目录结构
        • Ensuring access control mechanisms are maintained (for example, password protection, or making files available for editing or locking them). 保证访问控制机制(如密码保护、文件可编辑、文件锁定等)
        • Ensuring memory allocation for a file by reading it from the HDD/SSD and loading it into memory. 通过从 HDD/SSD 读取文件并将其加载到内存中来确保文件的内存分配。
    • Interrupt:中断。【参考4.1.4】
    • Platform for running of application software:为应用软件运行提供平台。应用软件的运行需要操作系统来控制,并通过驱动来调用硬件。
    • Multitasking:多任务。操作系统允许计算机同时开展多项任务。操作系统可以为多项任务分配资源并设置优先级,根据优先级进行处理,进程在运行时可以通过中断来进行新的任务。
    • Management of user accounts:管理用户账户。操作系统允许多账户登录,会为每个账户设置用户名与密码,提供个性化体验,并分别管理文件。


4.1.3 Understand how hardware, firmware and an operating system are required to run applications software 了解运行应用软件需要硬件、固件和操作系统

• Applications are run on the operating system 应用程序在操作系统上运行
• The operating system is run on the firmware 操作系统在固件上运行
• The bootloader (firmware) is run on the hardware 引导加载程序(固件)在硬件上运行

  • Firmware:固件,指写入EPROM(可擦写可编程只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序。
    • 注意:通过装载固件,操作系统得以正常运转,通过驱动来管理硬件。
    • 常见例子:计算机的BIOS


  • 运行应用软件需要操作系统的支持。【参考4.1.1和4.1.2】


4.1.4 Describe the role and operation of interrupts 描述中断的作用和操作

• Including: 包括:
- how an interrupt is generated 如何产生中断
- how it is handled using an interrupt service routine 如何使用中断服务例程处理中断
- what happens as a result of the interrupts 作为中断的结果会发生什么
• Software interrupts include division by zero and two processes trying to access the same memory location 软件中断包括被零除和两个进程试图访问同一内存位置
• Hardware interrupts include pressing a key on the keyboard and moving the mouse 硬件中断包括按下键盘上的一个键和移动鼠标

  • Interrupt:中断,指设备或软件向微处理器发送的请求关注的信号。收到该信号后,微处理器会暂停所有进程来处理发起中断信号的进程,直到该进程处理完毕。
    • 用途:允许计算机开展多任务,通过设置优先级来同时处理这些任务。
    • 中断的分类:
      • Software interrupts:软件中断,比如被零除和两个进程试图访问同一内存位置。
      • Hardware interrupts:硬件中断,比如等待用户输入或点击。
    • 产生中断的原因:
      • A timing signal 定时信号
      • An input/output process 输入/输出进程
      • A hardware fault 硬件故障
      • User interaction 用户交互
      • Software errors that cause a problem 导致问题的软件错误
    • 处理中断的步骤:
      • 需要处理的进程发出请求中断的信号。
      • CPU接收到中断请求后,将之前正在运行的程序保存,包括保存PC等寄存器内的信息。
      • CPU调用interrupt service routine(ISR)中断服务例程来完成发出中断请求的进程,将必要的地址调入PC开始运行。
      • 当中断完全处理好后,重新装载之前的程序运行位置和状态,继续运行原来的程序。


  • Buffer:缓存,指暂时存放数据的空间。常用于弥补不同进程之间速度不同导致的数据大小差异。比如电影的下载速度快于播放速度时,下载好的数据会停留在缓存内等待播放。


4.2 Types of programming language, translators and integrated development environments (IDEs) 编程语言、翻译器和集成开发环境(IDE)的类型

  • 大纲要求

CAIE-IGCS-4.2要求.png

4.2.1 Explain what is meant by a high-level language and a low-level language, including the advantages and disadvantages of each 解释什么是高级语言和低级语言,包括各自的优点和缺点


• Advantages and disadvantages include: 优点和缺点包括:
- ease of reading and writing code, e.g. low-level is hard to read 易于阅读和编写代码,例如,底层代码难以阅读
- ease of debugging code 易于调试代码
- machine independence 机器独立性
- direct manipulation of hardware 直接操作硬件

  • Machine code:机器码。是一种二进制编程语言,可以直接被计算机理解,无需进行翻译。
    • 注意:其他编程语言都需要翻译成机器码才能被计算机理解。
    • 机器码的形式如下图所示:
CAIE-IGCS-4.2.1-1.png


  • High-level language:高级语言。编程者重点关注要解决的问题,无需了解计算机硬件或指令集。
    • 注意:高级编程语言更加接近人们日常使用的自然语言(英语),因此更加方便记忆和理解。
    • 常见例子:C++, Delphi, Java, Pascal, Python, Visual Basic等。
    • 使用高级语言的好处:
      • independent of the type of computer being used. 与正在使用的计算机类型无关
      • easier to read, write and understand programs. 更容易阅读、编写和理解程序
      • quicker to write programs. 更快地编写程序。
      • programs are easier and quicker to debug. 程序调试起来更容易、更快捷。
      • easier to maintain programs in use. 更容易维护正在使用的程序。
    • 使用高级语言的问题:
      • programs can be larger. 程序较大
      • programs can take longer to execute. 程序需要更长时间运行
      • programs may not be able make use of special hardware. 程序可能无法使用特殊硬件。


  • Low-level language:低级语言,指依赖于计算机硬件的编程语言。
    • 常见例子:machine code机器码、assembly language汇编语言等。
    • 使用低级语言的好处:
      • can make use of special hardware. 可以使用特殊硬件。
      • includes special machine-dependent instructions. 包括特殊的机器相关指令。
      • can write code that doesn't take up much space in primary memory. 可以编写不占用主存太多空间的代码。
      • can write code that performs a task very quickly. 可以编写快速执行任务的代码。
    • 使用低级语言的问题:
      • it takes a longer time to write and debug programs. 编写和调试程序需要更长的时间。
      • programs are more difficult to understand. 程序更难理解。


4.2.2 Understand that assembly language is a form of low-level language that uses mnemonics, and that an assembler is needed to translate an assembly language program into machine code 理解汇编语言是一种使用助记符的低级语言,需要汇编器将汇编语言程序翻译成机器码


  • assembly language:汇编语言,是一种low-level language低级语言,通过mnemonics助记符来表示操作码,需要使用assembler汇编器将其翻译成机器码后才能被计算机理解。
    • 注意:具体的汇编语言形式超出大纲要求范围,可在A-Level阶段继续学习。
    • 汇编语言的例子如下图所示:
CAIE-IGCS-4.2.2-1.png


4.2.3 Describe the operation of a compiler and an interpreter, including how high-level language is translated by each and how errors are reported 描述编译器和解释器的运行,包括各自如何翻译高级语言以及如何报告错误

• A compiler translates the whole code at once before executing it, producing an executable file 编译器在执行之前立即翻译整个代码,生成可执行文件
• An interpreter translates and executes the code line-by-line 解释器逐行翻译和执行代码
• A compiler provides an error report for the whole code if errors are detected 如果检测到错误,编译器会为整个代码提供错误报告
• An interpreter stops execution when an error is found 解释器在发现错误时停止执行

  • Translators:翻译器,用于将高级语言翻译成机器码,以便计算机能够理解。
    • 翻译器的分类:
      • Compiler:编译器,用于将高级语言编写的整个程序源代码一次性翻译成机器码的计算机程序。
        • 注意:使用编译器时,在编译后会生成一个executable file可执行文件(.exe)。
        • 注意:一旦编译完成,该机器码将可以反复使用,无需重复编译。但源代码发生变化后,为更新机器码,应该重新进行编译。
        • 注意:如果编译时存在错误,将返回error report错误报告(列表),而不会生成可执行文件。
      • Interpreter:解释器,用于将高级语言编写的程序源代码一行一行地分析并运行的计算机程序。
        • 注意:每次运行时都会重新翻译。
        • 注意:如果编译时存在错误,将暂停程序运行并返回错误信息及修改建议。
      • Assembler:汇编器,用于将汇编语言编写的程序源代码翻译成机器码的计算机程序。【参考4.2.2】


4.2.4 Explain the advantages and disadvantages of a compiler and an interpreter 解释编译器和解释器的优缺点

• To include an understanding that an interpreter is mostly used when developing a program and a compiler is used to translate the final program 理解解释器主要用于开发程序,而编译器用于翻译最终程序

  • 使用compiler编译器的好处:
    • a compiled program can be stored ready for use. 编译后的程序可以存储以备使用
    • a compiled program can be executed without the compiler. 编译后的程序可以在没有编译器的情况下运行
    • a compiled program takes up less space in memory when it is executed. 编译后的程序在运行时占用较少的内存空间
    • a compiled program is executed in a shorter time. 编译后的程序在运行时间更短
  • 使用compiler编译器的问题:
    • It takes a longer time to write, test and debug programs during development. 在开发过程中编写、测试和调试程序需要花费更长的时间


  • 使用interpreter解释器的好处:
    • easier and quicker to debug and test programs during development. 在开发过程中,调试和测试程序更容易也更快。
    • easier to edit programs during development. 在开发过程中更容易编辑程序。
  • 使用interpreter解释器的问题:
    • Programs cannot be run without the interpreter. 没有解释器就无法运行程序。
    • programs can take longer to execute. 程序可能需要更长的时间来运行。


  • 注意:根据compiler编译器和interpreter解释器各自的特点,interpreter解释器更适合在程序开发时使用(便于逐句寻找错误和理解语句的运行逻辑),compiler编译器更适合在程序生成时使用(便于生成可执行文件)。


4.2.5 Explain the role of an IDE in writing program code and the common functions IDEs provide 解释IDE在编写程序代码中的作用和IDE提供的常用功能

• Including: 包括:
- code editors代码编辑器
- run-time environment运行时环境
- translators翻译器
- error diagnostics错误诊断
- auto-completion自动填充
- auto-correction自动更正
- prettyprint 漂亮打印

  • Integrated Development Environment(IDE):集成开发环境,用于书写和测试使用高级语言编写的计算机程序。
    • 注意:有些IDE仅能支持一种语言,而有些IDE可以支持多种语言。
    • IDE的常用功能:
      • Code editor:代码编辑器。IDE界面中有可供书写和编辑代码的区域,无需额外打开文字编辑软件。
      • Translator:翻译器。绝大部分IDE可以提供翻译器来运行程序。翻译器可能是compiler编译器或interpreter解释器。
      • A run-time environment with a debugger:带有调试器的运行时环境。IDE可以检查写好的程序内是否存在逻辑错误,并检查程序运行结果是否和预期一致。
      • Error diagnostics and auto-completion:错误诊断与自动更正。IDE能够检查代码并发现可能的错误,在警告编程者的同时也会提供可能的解决方案。
      • Auto-completion:自动填充。IDE能够在代码编辑器内为variable names变量名和reserved words保留字提供上下文相关的提示和文本填充。
      • Auto-documenter:自动归档。IDE能够为内置的函数等提供相应解释。
      • prettyprinting:漂亮打印。关键字、函数名等具有特殊含义的字符会使用不同颜色的文字进行区分。