Bạn chưa bao giờ nhìn thấy nó, và sẽ không bao giờ nhìn thấy — nhưng nó luôn hiện diện. Sau mỗi ứng dụng bạn mở, mỗi tập tin bạn lưu, mỗi lần chạm vào màn hình, là một… vô hình.
English narration · English + 中文 subtitles burned in · Giọng đọc tiếng Anh · phụ đề tiếng Anh + 中文 được ghi trực tiếp
5.1
Operating systems · Hệ điều hành
Syllabus · Chương trình
English
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
Tiếng Việt
Thí sinh cần có thể:
Ghi chú và hướng dẫn
Giải thích tại sao một hệ thống máy tính cần Hệ điều hành (OS)
Giải thích các nhiệm vụ quản lý chính do Hệ điều hành thực hiện
Bao gồm quản lý bộ nhớ, quản lý tệp, quản lý bảo mật, quản lý phần cứng (nhập/lấy/ngoại vi), quản lý tiến trình
Thể hiện sự hiểu biết về nhu cầu đối với các phần mềm tiện ích tiêu chuẩn đi kèm với Hệ điều hành
Bao gồm trình định dạng đĩa, trình kiểm tra virus, phần mềm giải nén, phân tích nội dung đĩa / phần mềm sửa chữa đĩa, nén tệp, phần mềm sao lưu
Thể hiện sự hiểu biết về thư viện chương trình
Bao gồm: • phần mềm đang phát triển thường được xây dựng bằng cách sử dụng mã hiện có từ thư viện chương trình • lợi ích dành cho nhà phát triển khi phần mềm được xây dựng bằng các tệp thư viện, bao gồm cả Thư viện liên kết động (DLL)
Source: Cambridge International syllabus · Nguồn: Chương trình Cambridge International
English
Why a computer needs an OS
Hardware on its own can only fetch and run instructions — it knows nothing about files, programs, networks or users. The operating system 操作系统 (OS) is the software layer that:
manages the hardware (processor 处理器, memory, I/O, storage) for the running programs.
provides services (file system, network, user accounts) through a clear interface, so programs need not talk to the hardware directly.
provides a user interface (command line, GUI, touch).
lets several programs share the hardware safely — each gets fair CPU time and is kept out of the others' memory.
Without an OS, every program would need its own drivers, and only one program could safely run at a time.
"Describe the purpose of an OS" — the five-mark list. The OS (1) provides an interface between the user and the hardware; (2) hides the complexity of the hardware from the user and from application programs; (3) manages the hardware resources — processor time, memory, storage and input/output devices — and shares them between programs; (4) loads application software into memory and runs it, giving every program the same platform to run on; (5) lets several programs run at once (multitasking 多任务处理) while keeping them, and the users' data, secure. Give five different points; "it runs the computer" or "it manages resources" alone earns nothing.
Key management tasks
The syllabus names five. Each point below is one thing the OS actually does, which is what a "describe" question wants.
memory management 内存管理 — allocates memory to each program when it is loaded, keeps every program's memory separate (memory protection 内存保护) so one cannot overwrite another, frees the memory when a program ends, and swaps pages between RAM 随机存取存储器 and secondary storage 辅助存储器 (the disk) (virtual memory 虚拟内存 / paging 分页) so more programs can be open than physical memory allows.
process management 进程管理 — a running program is a process 进程. The OS creates and ends processes, decides which process gets the CPU next (scheduling 调度) and for how long (a time slice 时间片), switches between them, resolves conflicts when two want the same resource, and can kill one that stops responding.
hardware management (input/output and peripherals) — talks to each device through its device driver 设备驱动, queues and buffers data going to slow devices such as a printer, responds to interrupts 中断 from devices, and shares one device between several programs.
file management — creates, names, copies, moves and deletes files and folders, keeps the directory 目录 structure and a record of where each file is stored on the disk, allocates disk space to files, and enforces access rights 访问权限 (read / write / execute) for each user.
security management — user accounts and passwords (authentication 身份验证), access rights, encryption of stored data, a firewall, automatic security updates, and a log of who did what.
How memory and process management support multitasking (a four-mark favourite). Memory management loads several programs into memory at the same time, each in its own protected area, and keeps track of which addresses belong to which; process management shares the processor between them — each process runs for a time slice, the OS saves its state and switches to the next, and the switching is so fast that all the programs appear to run together. Interrupts let the OS take the processor back from a process whenever a device needs attention.
Interrupts. A hardware interrupt 硬件中断 comes from a device: a key pressed, a mouse click, a printer out of paper, a disk finishing a transfer, a power failure. A software interrupt 软件中断 comes from a program: division by zero, an invalid instruction, an attempt to use memory it does not own, or a request for an OS service. The OS's interrupt handler 中断处理程序 saves the state of the running process, deals with the interrupt, then restores the process (topic 4 covers the fetch–execute detail).
Utility software
Utility programs 实用程序 are system software that maintain, repair or optimise the computer rather than doing a user's task; the examiner accepts "performs a specific maintenance task that improves performance or security". Most OSes bundle these:
disk formatter — prepares a new disk (or wipes an old one) for use: sets up its file system and partitions, deleting any existing data.
virus checker (antivirus 杀毒软件) — scans files and memory, compares code against a database of known virus signatures 签名 and watches for suspicious behaviour, then quarantines or deletes what it finds; runs on a schedule and on every download, and needs updating as new viruses appear.
defragmentation software (disk defragmenter 碎片整理) — a hard disk stores a file in whatever free blocks it finds, so after many saves and deletes a file is scattered (fragmented 碎片化) across the platter and the read/write head must jump between the pieces. The defragmenter moves the pieces of each file next to each other and gathers the free space into one region, so files load faster and new files are not fragmented. Not needed on an SSD, which has no moving head.
disk contents analysis / disk repair software — shows what is using the disk space (large, duplicate or temporary files) so they can be removed; finds and repairs bad sectors, lost clusters and file-system errors.
file compression (compression 压缩) — shrinks files so they need less storage and transfer faster; archiving bundles many files into one.
back-up software (backup 备份) — copies files to another medium (external disk, network, cloud) on a schedule so data can be restored after loss, corruption or a ransomware attack; a full copy is followed by incremental backups 增量备份 of only what changed.
a firewall 防火墙 (filters network traffic by rules) and encryption tools, for security; a system monitor and automatic updates.
Bundling these with the OS saves the user installing each one.
Which utility does what.Performance: defragmentation (faster file access), disk repair (a disk with errors is slow or fails), disk contents analysis (free space by deleting junk), compression (more fits on the disk). Security: virus checker, firewall, encryption, and backup (the only recovery from ransomware). A "draw one line" question pairs each utility with exactly one purpose — learn the pairs above and use the syllabus names.
Worked example. Explain how defragmentation can improve the performance of a computer (3 marks).
Over time a file is stored in blocks scattered across the hard disk, so reading it needs many movements of the read/write head. The defragmenter rearranges the blocks so each file is stored contiguously and the free space is together. Files are then read with fewer head movements, so they load faster, and new files can be written into one continuous space.
Tiếng Việt
Tại sao máy tính cần hệ điều hành
Phần cứng nếu độc lập chỉ có thể lấy và chạy các lệnh — nó không biết gì về tệp, chương trình, mạng hoặc người dùng. Hệ điều hành (OS) là lớp phần mềm mà:
quản lý phần cứng (bộ xử lý, bộ nhớ, I/O, lưu trữ) cho các chương trình đang chạy.
cung cấp dịch vụ (hệ thống tập tin, mạng, tài khoản người dùng) thông qua một giao diện rõ ràng, giúp các chương trình không cần tương tác trực tiếp với phần cứng.
cung cấp giao diện người dùng (dòng lệnh, giao diện đồ họa, cảm ứng).
cho phép nhiều chương trình chia sẻ phần cứng an toàn — mỗi chương trình nhận được thời gian CPU công bằng và được cách ly khỏi bộ nhớ của chương trình khác.
Không có hệ điều hành, mỗi chương trình sẽ cần trình điều khiển riêng, và chỉ có thể chạy an toàn một chương trình tại một thời điểm.
"Mô tả mục đích của hệ điều hành" — danh sách năm điểm. Hệ điều hành (1) cung cấp giao diện giữa người dùng và phần cứng; (2) che giấu độ phức tạp của phần cứng khỏi người dùng và các chương trình ứng dụng; (3) quản lý tài nguyên phần cứng — thời gian xử lý, bộ nhớ, lưu trữ và thiết bị đầu vào/đầu ra — và chia sẻ chúng giữa các chương trình; (4) tải phần mềm ứng dụng vào bộ nhớ và thực thi, mang lại cho mọi chương trình cùng một nền tảng để chạy; (5) cho phép nhiều chương trình chạy đồng thời (đa nhiệm) trong khi giữ cho chúng và dữ liệu của người dùng an toàn. Đưa ra năm điểm khác nhau; "nó chạy máy tính" hoặc "nó quản lý tài nguyên" đơn lẻ sẽ không được điểm.
Hệ điều hành máy tính để bàn quản lý màn hình, tập tin và chương trình cho người dùngĐiện thoại cũng cần có nó: đây là hệ điều hành di động, Android
Các tác vụ quản lý chính
Chương trình học liệt kê năm việc này. Mỗi ý dưới đây là một thứ mà hệ điều hành thực sự làm, đó chính là những gì câu hỏi "mô tả" yêu cầu.
quản lý bộ nhớ — phân bổ bộ nhớ cho mỗi chương trình khi nó được tải, giữ cho bộ nhớ của mỗi chương trình tách biệt (bảo vệ bộ nhớ) để một chương trình không thể ghi đè lên chương trình khác, giải phóng bộ nhớ khi chương trình kết thúc, và hoán đổi trang giữa RAM và lưu trữ phụ (đĩa) (bộ nhớ ảo / phân trang) để có thể mở nhiều chương trình hơn dung lượng bộ nhớ vật lý cho phép.
quản lý tiến trình — một chương trình đang chạy là một tiến trình. Hệ điều hành tạo và kết thúc tiến trình, quyết định tiến trình nào sẽ nhận CPU tiếp theo (lập lịch) và trong bao lâu (một thời slice), chuyển đổi giữa chúng, giải quyết xung đột khi hai tiến trình muốn sử dụng cùng một tài nguyên, và có thể终止 một tiến trình không còn phản hồi.
quản lý phần cứng (đầu vào/đầu ra và thiết bị ngoại vi) — giao tiếp với từng thiết bị thông qua trình điều khiển thiết bị, xếp hàng và đệm dữ liệu gửi đến các thiết bị chậm như máy in, phản hồi ngắt từ thiết bị, và chia sẻ một thiết bị giữa nhiều chương trình.
quản lý tập tin — tạo, đặt tên, sao chép, di chuyển và xóa tập tin và thư mục, duy trì cấu trúc thư mục và bản ghi vị trí lưu trữ của từng tập tin trên đĩa, phân bổ không gian đĩa cho tập tin, và áp đặt quyền truy cập (đọc / ghi / thực thi) cho từng người dùng.
quản lý bảo mật — tài khoản người dùng và mật khẩu (xác thực), quyền truy cập, mã hóa dữ liệu đã lưu trữ, tường lửa, bản cập nhật bảo mật tự động, và nhật ký về ai đã làm gì.
Những công việc chính mà hệ điều hành quản lýBảo vệ bộ nhớ giữ cho mỗi ứng dụng nằm trong khối bộ nhớ riêng của nó
Cách quản lý bộ nhớ và tiến trình hỗ trợ đa nhiệm (một câu hỏi phổ biến bốn điểm). Quản lý bộ nhớ tải nhiều chương trình vào bộ nhớ cùng lúc, mỗi chương trình trong khu vực được bảo vệ riêng, và theo dõi xem địa chỉ nào thuộc về chương trình nào; quản lý tiến trình chia sẻ bộ xử lý giữa chúng — mỗi tiến trình chạy trong một thời slice, hệ điều hành lưu trạng thái của nó và chuyển sang tiến trình tiếp theo, và việc chuyển đổi diễn ra nhanh đến mức tất cả các chương trình dường như đang chạy song song. Ngắt cho phép hệ điều hành thu lại bộ xử lý từ một tiến trình bất cứ khi nào thiết bị cần chú ý.
Ngắt. Một ngắt phần cứng đến từ thiết bị: nhấn phím, click chuột, hết giấy máy in, hoàn thành truyền dữ liệu đĩa, mất điện. Một ngắt phần mềm đến từ chương trình: chia cho số không, lệnh hợp lệ, cố gắng sử dụng bộ nhớ không thuộc sở hữu, hoặc yêu cầu dịch vụ của hệ điều hành. Bộ xử lý ngắt của hệ điều hành lưu trạng thái của tiến trình đang chạy, xử lý ngắt, sau đó khôi phục tiến trình (chủ đề 4 bao gồm chi tiết fetch–execute).
Phần mềm tiện ích
Các chương trình tiện ích là phần mềm hệ thống duy trì, sửa chữa hoặc tối ưu hóa máy tính thay vì thực hiện tác vụ của người dùng; giám khảo chấp nhận "thực hiện một tác vụ bảo trì cụ thể cải thiện hiệu suất hoặc bảo mật". Hầu hết các hệ điều hành đều đóng gói những công cụ này:
Các chương trình tiện ích: diệt virus, sao lưu, nén và sắp xếp lại ổ đĩa
định dạng ổ đĩa — chuẩn bị một ổ đĩa mới (hoặc xóa hoàn toàn một ổ đĩa cũ) để sử dụng: thiết lập hệ thống tập tin và phân vùng của nó, xóa bất kỳ dữ liệu nào đã tồn tại.
trình kiểm tra virus (diệt virus) — quét tập tin và bộ nhớ, so sánh mã đối với cơ sở dữ liệu các kí hiệu virus đã biết và theo dõi hành vi đáng ngờ, sau đó cô lập hoặc xóa những gì tìm thấy; chạy theo lịch trình và mỗi lần tải xuống, và cần được cập nhật khi xuất hiện virus mới.
phần mềm phân mảnh (defragmentation software) (định dạng lại ổ cứng) — một ổ cứng lưu trữ tệp trong bất kỳ khối trống nào nó tìm thấy, vì vậy sau nhiều lần lưu và xóa, một tệp sẽ bị phân tán (fragmented) khắp đĩa và đầu đọc/ghi phải di chuyển giữa các mảnh. Phần mềm định dạng lại di chuyển các mảnh của mỗi tệp sát nhau và gom không gian trống thành một vùng, giúp tệp tải nhanh hơn và tệp mới không bị phân mảnh. Không cần thiết trên SSD, vốn không có đầu cơ khí di chuyển.
phần mềm phân tích/sửa chữa nội dung ổ cứng — hiển thị những gì đang chiếm dung lượng ổ cứng (tệp lớn, trùng lặp hoặc tạm thời) để có thể xóa; phát hiện và sửa lỗi sector xấu, cluster mất và lỗi hệ thống tệp.
nén tệp (file compression) (nén) — thu nhỏ tệp để tiết kiệm bộ nhớ và truyền tải nhanh hơn; đóng gói (archiving) gộp nhiều tệp vào một tệp duy nhất.
phần mềm sao lưu (back-up software) (backup) — sao chép tệp sang phương tiện khác (ổ ngoài, mạng, đám mây) theo lịch trình để dữ liệu có thể được khôi phục sau khi mất, hư hỏng hoặc tấn công ransomware; bản sao đầy đủ được tiếp theo bởi sao lưu tăng dần (incremental backups) chỉ chứa phần thay đổi.
firewall (lọc lưu lượng mạng theo quy tắc) và công cụ mã hóa, nhằm bảo mật; cùng với công cụ giám sát hệ thống và cập nhật tự động.
Việc đóng gói các công cụ này với hệ điều hành giúp người dùng không cần cài đặt từng cái riêng lẻ.
Mỗi công cụ làm gì.Hiệu suất: phân mảnh (truy cập tệp nhanh hơn), sửa ổ cứng (ổ có lỗi sẽ chậm hoặc hỏng), phân tích nội dung ổ (giải phóng không gian bằng cách xóa rác), nén (lưu được nhiều hơn vào ổ). Bảo mật: kiểm tra virus, firewall, mã hóa và backup (chỉ có backup là cách khôi phục từ ransomware). Câu hỏi "vẽ một đường nối" ghép mỗi công cụ với đúng một mục đích — hãy học các cặp trên và sử dụng tên gọi trong chương trình.
Ví dụ minh họa. Giải thích cách phân mảnh có thể cải thiện hiệu suất máy tính (3 điểm).
Theo thời gian, một tệp được lưu trong các khối phân tán khắp ổ cứng, nên việc đọc nó đòi hỏi nhiều lần di chuyển của đầu đọc/ghi. Công cụ định dạng lại sắp xếp lại các khối sao cho mỗi tệp được lưu liền kề (contiguously) và không gian trống được gom lại. Tệp sau đó được đọc với ít lần di chuyển đầu hơn, nên tải nhanh hơn, và tệp mới có thể được ghi vào một không gian liên tục.
Explore · Khám phá
Where the operating system sits · Vị trí của hệ điều hành
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. · Chạm vào mỗi lớp. OS là lớp giữa — nó nằm giữa ứng dụng của bạn và phần cứng, chia sẻ máy an toàn để chương trình không bao giờ chạm trực tiếp vào phần cứng.
A program library 程序库 is pre-written code (subroutines 子程序, classes, modules) that programs reuse instead of writing it themselves — e.g. a maths library, a network library, a graphics library.
Benefits: saves time (off-the-shelf code), reliable (well-tested, widely used), and standardised (consistent behaviour).
The examiner's benefit list, for the developer. The library routines 库例程 are already written and tested, so development is faster and cheaper; they are reliable and, being used by many programs, largely error-free; the developer needs no expertise in that area (graphics, compression, encryption, path-finding); the program is easier to maintain because common code lives in one place; and a whole team can use the same routines, giving consistent results. Drawbacks: a routine may not do exactly what you need and you cannot change it; your program depends on the library being available, correct and secure — a bug or a security hole in the library is a bug in your program; and you must learn how to call it.
a static library 静态库 is copied into the executable at compile time (stands alone, but larger and needs rebuilding to update).
a dynamic library 动态库 (DLL, Dynamic Link Library; .so) is loaded at run time (smaller executables, shared by many programs, updated once for all).
Dynamic Link Library (DLL) files. A DLL is a library that is loaded into memory only when a program calls it, at run time, and stays as a separate file rather than being copied into the executable. Benefits: the executable is smaller; several running programs share one copy of the DLL in memory; a DLL can be updated (bug fix, new device) without recompiling the programs that use it; and memory is used only while the routine is needed. Drawbacks: the program will not run if the DLL is missing, moved or the wrong version; an updated DLL can break a program that relied on the old behaviour; and a fake DLL put in its place runs with the program's rights.
Worked example. A team writing the software for a restaurant robot uses a program library that includes a routine to find the shortest path between tables. Explain two benefits and one drawback to the team.
Benefits: the routine is already written and tested, so the team saves time and can trust the result; the team need not understand path-finding algorithms themselves and can spend the time on the robot's own features. Drawback: the routine may not handle the restaurant's exact needs (moving chairs, one-way aisles) and the team cannot alter it, so they may have to work around its limits.
Tiếng Việt
Một thư viện chương trình là đoạn mã đã được viết sẵn (subroutines, classes, modules) mà các chương trình tái sử dụng thay vì tự viết lại — ví dụ: thư viện toán học, thư viện mạng, thư viện đồ họa.
Một chương trình mới tái sử dụng các thủ tục có sẵn từ thư viện
Lợi ích: tiết kiệm thời gian (mã có sẵn), đáng tin cậy (đã được kiểm tra kỹ, được sử dụng rộng rãi), và chuẩn hóa (hành vi nhất quán).
Danh sách lợi ích dành cho nhà phát triển. Các thủ tục thư viện đã được viết và kiểm tra sẵn, nên quá trình phát triển diễn ra nhanh hơn và rẻ hơn; chúng đáng tin cậy và, do được nhiều chương trình sử dụng, hầu như không có lỗi; nhà phát triển không cần chuyên môn sâu về lĩnh vực đó (đồ họa, nén, mã hóa, tìm đường); chương trình dễ bảo trì hơn vì mã chung nằm ở một nơi; và cả nhóm có thể sử dụng cùng các thủ tục, mang lại kết quả nhất quán. Nhược điểm: một thủ tục có thể không làm chính xác những gì bạn cần và bạn không thể thay đổi nó; chương trình của bạn phụ thuộc vào việc thư viện luôn có sẵn, chính xác và an toàn — một lỗi hoặc lỗ hổng bảo mật trong thư viện cũng là lỗi trong chương trình của bạn; và bạn phải học cách gọi nó.
một thư viện tĩnh (static library) được sao chép vào file thực thi tại thời điểm biên dịch (tự chạy độc lập, nhưng lớn hơn và cần biên dịch lại để cập nhật).
một thư viện động (dynamic library) (DLL, Dynamic Link Library; .so) được tải vào bộ nhớ tại thời điểm chạy (file thực thi nhỏ hơn, được chia sẻ bởi nhiều chương trình, chỉ cần cập nhật một lần cho tất cả).
Tĩnh: thư viện được sao chép vào file thực thi. Động: một file thư viện được chia sẻ được tải vào bộ nhớ tại thời điểm chạy
Tệp Dynamic Link Library (DLL). Một DLL là thư viện được tải vào bộ nhớ chỉ khi một chương trình gọi nó, tại thời điểm chạy, và vẫn giữ dưới dạng file riêng biệt chứ không được sao chép vào file thực thi. Lợi ích: file thực thi nhỏ hơn; nhiều chương trình đang chạy chia sẻ một bản sao DLL trong bộ nhớ; DLL có thể được cập nhật (sửa lỗi, thêm thiết bị) mà không cần biên dịch lại các chương trình sử dụng nó; và bộ nhớ chỉ được sử dụng khi thủ tục cần thiết. Nhược điểm: chương trình sẽ không chạy nếu thiếu DLL, bị di chuyển hoặc sai phiên bản; một DLL được cập nhật có thể làm hỏng chương trình dựa trên hành vi cũ; và một DLL giả mạo được thay thế sẽ chạy với quyền hạn của chương trình đó.
Ví dụ minh họa. Một nhóm đang viết phần mềm cho robot nhà hàng sử dụng một thư viện chương trình bao gồm thủ tục tìm đường đi ngắn nhất giữa các bàn. Hãy giải thích hai lợi ích và một nhược điểm đối với nhóm.
Lợi ích: thủ tục đã được viết và kiểm tra sẵn, nên nhóm tiết kiệm thời gian và có thể tin tưởng vào kết quả; nhóm không cần hiểu thuật toán tìm đường mà bản thân họ có thể dành thời gian cho các tính năng riêng của robot. Nhược điểm: thủ tục có thể không xử lý chính xác nhu cầu của nhà hàng (di chuyển ghế, lối đi một chiều) và nhóm không thể thay đổi nó, nên họ có thể phải tìm cách khắc phục các giới hạn của nó.
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
Tiếng Việt
Thí sinh cần có thể:
Ghi chú và hướng dẫn
Thể hiện sự hiểu biết về nhu cầu: • phần mềm trình biên dịch assembly để dịch một chương trình ngôn ngữ Assembly • một trình biên dịch để dịch một chương trình ngôn ngữ bậc cao • một trình giải thích để dịch và thực thi một chương trình ngôn ngữ bậc cao
Giải thích những ưu điểm và nhược điểm của việc sử dụng trình biên dịch hoặc trình giải thích và biện minh cho việc sử dụng từng loại
Thể hiện nhận thức rằng các chương trình ngôn ngữ bậc cao có thể được biên dịch một phần và giải thích một phần, chẳng hạn như Java (chế độ console)
Mô tả các tính năng thường thấy trong một môi trường phát triển tích hợp (IDE)
Bao gồm: • cho việc lập trình, bao gồm các yêu cầu hỗ trợ ngữ cảnh • cho việc phát hiện lỗi ban đầu, bao gồm kiểm tra cú pháp động • cho việc trình bày, bao gồm căn chỉnh đẹp, mở rộng và thu gọn khối code • cho việc gỡ lỗi, bao gồm bước đơn, điểm dừng, tức là biến, biểu thức, cửa sổ báo cáo
Source: Cambridge International syllabus · Nguồn: Chương trình Cambridge International
English
You write source code; the computer runs machine code 机器码. A translator 翻译器 converts between them.
Assembler
An assembler 汇编器 translates assembly language 汇编语言 into machine code: each mnemonic instruction (LDD, ADD, JMP) becomes exactly one machine-code instruction, and symbolic addresses and labels are replaced by real addresses. It is needed because the processor executes only machine code, and assembly is used where the programmer needs direct control of the hardware (embedded systems, device drivers).
Compiler
A compiler 编译器 translates a high-level program into machine code once, before it runs.
it reports all errors at compile time; once clean, it produces a stand-alone executable 可执行文件 that runs without the compiler installed and can be run many times.
generally faster at run time (no translation while running), but tied to one CPU/OS — recompile for each platform.
The two-mark description: a compiler translates the whole high-level program into machine code (object code 目标代码) before it is run, produces an executable file, and reports all the syntax errors together as a list at the end of translation. It does not run the program.
Interpreter
An interpreter 解释器 translates and runs a high-level program one line at a time, producing no executable.
it reports an error when it reaches that line, then stops; you can fix it and continue — good for development.
the interpreter must be installed to run the program; generally slower (each run re-translates), but easy to port across platforms.
The two-mark description: an interpreter translates one statement of the high-level program at a time and executes it immediately before moving to the next; no executable file is produced; it stops at the first error it meets and reports it. Both the source code and the interpreter must be present every time the program runs.
Choosing between them
Use a compiler when:
Use an interpreter when:
run-time speed matters
you want fast edit–run cycles
distributing to users without dev tools
writing cross-platform scripts
the program runs many times
the program is small or run once
teaching beginners
Benefits and drawbacks, as the mark scheme lists them.
compiler
interpreter
execution speed
fast — already machine code
slower — translated on every run
what the user needs
only the executable; no translator, and the source code stays private
the source code and the interpreter
finding errors
all errors listed at once, after the whole program is translated
each error reported at the line where it occurs, as you develop
changing the code
recompile the whole program after every change
edit and run again immediately
portability
machine code runs on one platform only; recompile for each
the same source runs wherever an interpreter exists
Worked example. A developer uses an interpreter while writing a program and a compiler when it is finished. Explain how each is used (4 marks).
During development the interpreter runs the partly written program at once, without waiting for a complete translation; when it meets an error it reports the line, so the developer fixes it and runs again immediately — a fast edit–run cycle that is easier for debugging. When the program is finished, the compiler translates the whole program into an executable that runs faster, needs no translator on the user's computer, and does not reveal the source code, so it can be sold to the public.
Hybrid: Java
Java is compiled into bytecode 字节码 (a platform-independent intermediate form), which a virtual machine 虚拟机 (the JVM) then interprets — or uses just-in-time compilation 即时编译 to turn hot parts into native code. So errors are caught early, the bytecode runs anywhere with a JVM ("write once, run anywhere"), and long-running programs reach near-native speed. C# and Python use similar designs.
The syllabus phrase is "partially compiled and partially interpreted": the compiler stage catches syntax errors and produces compact, portable 可移植的 bytecode; the interpreting stage lets that one bytecode file run on any machine that has a virtual machine, at the cost of some speed. Java in console mode (a text program run from the command line) is the syllabus's example.
Worked example. Java source is compiled to bytecode, which a JVM then interprets. Why use both, instead of compiling straight to machine code? A compiler produces machine code for one processor and operating system, so a program compiled on one machine will not run on another. Java's compiler instead targets a virtual machine, so the bytecode it produces is identical everywhere; each platform then supplies its own JVM to interpret that bytecode into its own native instructions. One compiled file therefore runs anywhere a JVM exists - "write once, run anywhere". The price is speed: interpreting bytecode is slower than running native code, which is why a real JVM also uses JIT compilation to turn frequently-run bytecode into native code while the program runs. Name both sides - the marks are for portability bought at the cost of speed.
Tiếng Việt
Bạn viết mã nguồn; máy tính chạy mã máy. Một bộ dịch chuyển đổi giữa chúng.
Assembler
Một trình biên dịch assembly chuyển đổi ngôn ngữ assembly thành mã máy: mỗi câu lệnh mnemonic (LDD, ADD, JMP) trở thành đúng một câu lệnh mã máy, và các địa chỉ ký hiệu cùng nhãn được thay thế bằng địa chỉ thực. Điều này cần thiết vì bộ xử lý chỉ thi hành mã máy, và assembly thường được sử dụng khi lập trình viên cần kiểm soát trực tiếp phần cứng (hệ thống nhúng, trình điều khiển thiết bị).
Trình biên dịch
Một trình biên dịch chuyển đổi chương trình mức cao thành mã máy một lần duy nhất, trước khi chạy.
nó báo cáo tất cả các lỗi ở thời điểm biên dịch; sau khi không còn lỗi, nó tạo ra một file thực thi độc lập có thể chạy mà không cần cài đặt trình biên dịch và có thể chạy nhiều lần.
thường nhanh hơn trong quá trình chạy (không cần dịch trong lúc thực thi), nhưng bị giới hạn cho một CPU/Hệ điều hành cụ thể — phải biên dịch lại cho từng nền tảng.
Mô tả hai điểm: một trình biên dịch chuyển đổi toàn bộ chương trình mức cao thành mã máy (mã đối tượng) trước khi chạy, tạo ra file thực thi, và báo cáo tất cả các lỗi cú pháp cùng nhau dưới dạng danh sách ở cuối quá trình dịch. Nó không chạy chương trình.
Trình giải thích
Một trình giải thích dịch và chạy một chương trình mức cao dòng theo dòng, không tạo ra file thực thi.
nó báo cáo lỗi khi đến đúng dòng đó, rồi dừng lại; bạn có thể sửa lỗi và tiếp tục — rất tốt cho việc phát triển.
trình giải thích phải được cài đặt để chạy chương trình; thường chậm hơn (mỗi lần chạy đều phải dịch lại), nhưng dễ dàng di chuyển sang các nền tảng khác.
Mô tả hai điểm: một trình giải thích dịch một câu lệnh của chương trình mức cao mỗi lần và thi hành ngay lập tức trước khi chuyển sang câu tiếp theo; không tạo ra file thực thi; nó dừng lại tại lỗi đầu tiên gặp phải và báo cáo lỗi đó. Cả mã nguồn và trình giải thích đều phải có mặt mỗi khi chương trình chạy.
Trình biên dịch dịch một lần thành chương trình độc lập; trình giải thích dịch dòng theo dòng, ở mỗi lần chạy
Lựa chọn giữa chúng
Sử dụng trình biên dịch khi:
Sử dụng trình giải thích khi:
tốc độ chạy quan trọng
bạn muốn chu kỳ chỉnh sửa – chạy nhanh
phân phối cho người dùng không có công cụ phát triển
viết script đa nền tảng
chương trình chạy nhiều lần
chương trình nhỏ hoặc chỉ chạy một lần
giảng dạy người mới bắt đầu
Ưu điểm và nhược điểm, như bảng điểm quy định.
Trình biên dịch
Trình giải thích
tốc độ thực thi
nhanh — đã là mã máy
chậm — được dịch ở mỗi lần chạy
những gì người dùng cần
chỉ cần file thực thi; không cần công cụ dịch, và mã nguồn giữ bí mật
mã nguồn và trình giải thích
tìm kiếm lỗi
tất cả lỗi được liệt kê cùng lúc, sau khi toàn bộ chương trình được dịch
từng lỗi được báo cáo tại dòng xảy ra, trong quá trình phát triển
thay đổi mã
biên dịch lại toàn bộ chương trình sau mỗi lần thay đổi
chỉnh sửa và chạy lại ngay lập tức
khả năng di chuyển
mã máy chỉ chạy trên một nền tảng; phải biên dịch lại cho từng nền tảng
cùng một mã nguồn có thể chạy bất cứ nơi nào có trình giải thích
Ví dụ minh họa. Một nhà phát triển sử dụng trình giải thích trong khi viết chương trình và trình biên dịch khi hoàn tất. Giải thích cách sử dụng từng loại (4 điểm).
Trong quá trình phát triển, trình giải thích chạy chương trình đang viết dở ngay lập tức, không chờ bản dịch hoàn chỉnh; khi gặp lỗi, nó báo cáo dòng code, giúp nhà phát triển sửa lỗi và chạy lại ngay — chu kỳ chỉnh sửa – chạy nhanh này giúp việc debug dễ dàng hơn. Khi chương trình hoàn tất, trình biên dịch chuyển đổi toàn bộ chương trình thành file thực thi chạy nhanh hơn, không cần công cụ dịch trên máy tính người dùng, và không tiết lộ mã nguồn, nên có thể bán cho công chúng.
Kết hợp: Java
Java được biên dịch thành bytecode (dạng trung gian độc lập với nền tảng), sau đó một máy ảo (JVM) sẽ giải thích — hoặc sử dụng biên dịch tức thì (just-in-time) để biến các đoạn code nóng thành mã gốc. Do đó, lỗi được bắt sớm, bytecode chạy được trên mọi nền tảng có JVM ("viết một lần, chạy mọi nơi"), và các chương trình chạy lâu đạt tốc độ gần như mã gốc. C# và Python cũng sử dụng thiết kế tương tự.
Cụm từ trong chương trình học là "được biên dịch một phần và giải thích một phần": giai đoạn biên dịch bắt lỗi cú pháp và tạo ra bytecode di động gọn nhẹ; giai đoạn giải thích cho phép file bytecode đó chạy trên mọi máy tính có máy ảo, với giá là giảm bớt tốc độ. Java ở chế độ console (chương trình văn bản chạy từ dòng lệnh) là ví dụ tiêu biểu trong chương trình học.
Java biên dịch sang bytecode di động mà mọi JVM đều chạy được — viết một lần, chạy mọi nơi
Ví dụ minh họa. Mã nguồn Java được biên dịch thành bytecode, sau đó JVM giải thích. Tại sao lại dùng cả hai thay vì biên dịch thẳng sang mã máy? Trình biên dịch tạo ra mã máy cho một bộ xử lý và hệ điều hành cụ thể, nên một chương trình được biên dịch trên một máy sẽ không chạy được trên máy khác. Trình biên dịch của Java lại nhắm vào một máy ảo, do đó bytecode nó tạo ra giống hệt nhau trên mọi nơi; mỗi nền tảng sau đó cung cấp JVM riêng để giải thích bytecode đó thành các lệnh gốc của chính nó. Vì vậy, một file đã biên dịch có thể chạy ở bất cứ đâu có JVM — "viết một lần, chạy mọi nơi". Giá phải trả là tốc độ: giải thích bytecode chậm hơn chạy mã gốc, đó là lý do JVM thực tế cũng sử dụng biên dịch JIT để biến bytecode thường xuyên chạy thành mã gốc trong khi chương trình đang thực thi. Hãy nêu cả hai mặt — điểm số được trao cho khả năng di động vì đánh đổi tốc độ."
Explore · Khám phá
The compiler route: source to running program · Quá trình biên dịch: từ nguồn đến chương trình đang chạy
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. · Trình bày cách trình biên dịch hoạt động — dịch toàn bộ chương trình một lần trước khi chạy. So sánh với trình giải thích, người dịch và chạy từng dòng một.
Integrated Development Environment (IDE) · Môi trường phát triển tích hợp (IDE)
English
An integrated development environment 集成开发环境 (IDE) brings the tools to write, test and debug code into one application:
The syllabus groups the features into four kinds. Learn which feature belongs to which, because questions ask you to sort them and to describe one from each group.
For coding:context-sensitive prompts 上下文相关提示 — as you type, the IDE pops up the identifiers, keywords or parameters that fit at that point in the code; auto-complete 自动补全 finishes the name for you; automatic indentation and bracket matching keep the layout right as you type.
For initial error detection:dynamic syntax checks 动态语法检查 — the editor checks the syntax as you type and underlines or highlights a mistake immediately, before the program is translated; after translation, error messages with line numbers.
For presentation:prettyprint 代码美化 — keywords, identifiers, strings and comments shown in different colours or fonts (syntax highlighting 语法高亮) with consistent indentation, so the structure is visible at a glance; expand and collapse code blocks — hide the body of a loop, an IF or a subroutine so you see the outline.
For debugging:breakpoints 断点 — the program pauses when it reaches a marked line; single stepping 单步执行 — from the pause, run one line at a time; a window that shows the current values of variables and expressions as they change; and a report window 报告窗口 that lists errors, warnings and output.
Other features: translator integration (compile or run with one key, errors shown inline), a debugger 调试器 that drives the debugging features above, version control 版本控制 integration (git), project management, a help system, refactoring 重构 tools (safe renaming) and unit test 单元测试 integration.
An IDE speeds development by putting writing → running → debugging → fixing behind one interface. Common IDEs: Visual Studio, PyCharm, Eclipse, VS Code.
Worked example. A function Calculate() returns an unexpected value when the program runs. Describe how the debugging features of a typical IDE help find the cause (4 marks).
Set a breakpoint on the first line of Calculate(), so the program pauses there instead of running through. Then single-step through the function one line at a time. After each step read the values of the variables and of any expression you have asked the IDE to watch, and compare them with the values you expected; the first line after which a value is wrong is where the logic error is. The report window shows any run-time error message and the output produced so far.
Worked example. Put each feature in its syllabus group: prettyprint, context-sensitive prompt, dynamic syntax check, breakpoint, expand/collapse code blocks, report window.
Một môi trường phát triển tích hợp (IDE) tập hợp các công cụ để viết, kiểm tra và gỡ lỗi mã nguồn vào một ứng dụng duy nhất:
Một IDE bao gồm trình soạn thảo, nút Chạy và bộ gỡ lỗi
Chương trình học nhóm các tính năng này thành bốn loại. Hãy học cách phân loại từng tính năng, vì các câu hỏi sẽ yêu cầu bạn sắp xếp chúng và mô tả một tính năng từ mỗi nhóm.
Dành cho việc lập trình:gợi ý có ngữ cảnh — khi bạn gõ, IDE sẽ hiện lên các định danh, từ khóa hoặc tham số phù hợp tại vị trí đó trong mã; tự động điền đầy đủ hoàn thành tên thay cho bạn; tự động thụt lề và đối xứng ngoặc giữ cho bố cục chính xác khi bạn gõ.
Dành cho phát hiện lỗi ban đầu:kiểm tra cú pháp động — trình soạn thảo kiểm tra cú pháp khi bạn gõ và gạch dưới hoặc làm nổi bật ngay một lỗi, trước khi chương trình được dịch; sau khi dịch, hiển thị thông báo lỗi kèm số dòng.
Dành cho trình bày:hiển thị đẹp mã nguồn — các từ khóa, định danh, chuỗi và bình luận được hiển thị bằng màu sắc hoặc phông chữ khác nhau (làm nổi bật cú pháp) với độ thụt lề nhất quán, giúp cấu trúc rõ ràng ngay lập tức; mở rộng và thu gọn khối mã — ẩn phần thân của vòng lặp, lệnh IF hoặc hàm con để bạn chỉ thấy dàn ý.
Dành cho gỡ lỗi:ngâm điểm dừng — chương trình tạm dừng khi đạt đến dòng đã đánh dấu; bước từng dòng — từ trạng thái tạm dừng, chạy từng dòng một; cửa sổ hiển thị giá trị hiện tại của biến và biểu thức khi chúng thay đổi; và cửa sổ báo cáo liệt kê các lỗi, cảnh báo và kết quả đầu ra.
Các tính năng khác: tích hợp trình dịch (biên dịch hoặc chạy bằng một phím tắt, lỗi hiển thị trực tiếp), bộ gỡ lỗi điều khiển các tính năng gỡ lỗi nêu trên, tích hợp kiểm soát phiên bản (git), quản lý dự án, hệ thống trợ giúp, công cụ tái cấu trúc (đổi tên an toàn) và tích hợp kiểm thử đơn vị.
Các tính năng của IDE mang tên theo chương trình học, nằm ở vị trí mà bạn thường thấy trên màn hình
IDE tăng tốc quá trình phát triển bằng cách đặt quy trình viết → chạy → gỡ lỗi → sửa chữa sau cùng một giao diện. Các IDE phổ biến: Visual Studio, PyCharm, Eclipse, VS Code.
Bộ gỡ lỗi: thiết lập điểm dừng, chạy, sau đó tạm dừng để kiểm tra biến và bước qua mã nguồn từng dòng
Ví dụ minh họa. Một hàm Calculate() trả về một giá trị bất ngờ khi chương trình chạy. Mô tả cách các tính năng gỡ lỗi của một IDE điển hình giúp tìm ra nguyên nhân (4 điểm).
Đặt điểm dừng ở dòng đầu tiên của Calculate(), để chương trình tạm dừng tại đó thay vì chạy xuyên qua. Sau đó bước từng dòng qua hàm đó một dòng một. Sau mỗi bước, đọc giá trị của các biến và của bất kỳ biểu thức nào bạn đã yêu cầu IDE giám sát, và so sánh chúng với giá trị bạn mong đợi; dòng đầu tiên sau đó mà giá trị không đúng là nơi chứa lỗi logic. Cửa sổ báo cáo hiển thị mọi thông báo lỗi thời gian thực và kết quả đầu ra tạo ra cho đến lúc đó.
Ví dụ minh họa. Đặt mỗi tính năng vào đúng nhóm chương trình học của nó: hiển thị đẹp mã nguồn, gợi ý có ngữ cảnh, kiểm tra cú pháp động, điểm dừng, mở rộng/thu gọn khối mã, cửa sổ báo cáo.
Lập trình: gợi ý có ngữ cảnh. Phát hiện lỗi ban đầu: kiểm tra cú pháp động. Trình bày: hiển thị đẹp mã nguồn, mở rộng/thu gọn khối mã. Gỡ lỗi: điểm dừng, cửa sổ báo cáo.
Definitions the examiner accepts · Các định nghĩa mà giám khảo chấp nhận
English
A definition question is marked against fixed wording. Learn these exactly, and give one answer only.
Term
Definition
operating system
software that manages the computer's hardware and resources and provides an interface between the user, the application programs and the hardware
utility software
system software that performs a specific task to maintain, optimise or protect the computer, such as a virus checker or a defragmenter
program library
a collection of pre-written, tested routines (subroutines, classes, modules) that a program can use instead of writing its own
Dynamic Link Library (DLL)
a program library whose routines are loaded into memory only when the program calls them, at run time, and are shared between programs
assembler
a translator that converts an assembly language program into machine code, one instruction for each instruction
compiler
a translator that converts the whole of a high-level language program into machine code before it is run, producing an executable file
interpreter
a translator that translates and executes a high-level language program one statement at a time
integrated development environment
a single application that provides the tools for writing, translating, running and debugging a program
context-sensitive prompt
a pop-up that suggests identifiers, keywords or parameters that fit at the current point in the code
dynamic syntax check
checking the syntax of the code as it is typed and flagging an error before the program is translated
prettyprint
displaying code with keywords, identifiers and comments in different colours or fonts and with consistent indentation
breakpoint
a marked line at which the running program pauses so that variables can be inspected
single stepping
running a paused program one statement at a time under the programmer's control
Tiếng Việt
Câu hỏi định nghĩa được chấm dựa trên văn phong cố định. Hãy học thuộc những định nghĩa này và chỉ đưa ra một đáp án duy nhất.
Thuật ngữ
Định nghĩa
hệ điều hành
phần mềm quản lý phần cứng và tài nguyên của máy tính, đồng thời cung cấp giao diện giữa người dùng, các chương trình ứng dụng và phần cứng
phần mềm tiện ích
phần mềm hệ thống thực hiện một tác vụ cụ thể để bảo trì, tối ưu hóa hoặc bảo vệ máy tính, chẳng hạn như trình quét virus hoặc trình giải nén tập tin
thư viện chương trình
một tập hợp các routine (hàm con, lớp, module) đã được viết sẵn và kiểm tra, mà một chương trình có thể sử dụng thay vì phải tự viết riêng
Dynamic Link Library (DLL)
một thư viện chương trình mà các routine của nó chỉ được tải vào bộ nhớ khi chương trình gọi chúng, tại thời gian chạy, và được chia sẻ giữa các chương trình
trình biên dịch assemblies
trình dịch chuyển đổi một chương trình ngôn ngữ assembly thành mã máy, một lệnh cho mỗi lệnh
trình biên dịch
trình dịch chuyển đổi toàn bộ một chương trình ngôn ngữ cấp cao thành mã máy trước khi chạy, tạo ra một tệp có thể thực thi
trình diễn giải
trình dịch dịch và thực thi một chương trình ngôn ngữ cấp cao từng câu lệnh một
môi trường phát triển tích hợp
một ứng dụng duy nhất cung cấp các công cụ để viết, dịch, chạy và gỡ lỗi một chương trình
gợi ý có ngữ cảnh
một hộp thoại nổi lên đề xuất các định danh, từ khóa hoặc tham số phù hợp tại vị trí hiện tại trong mã
kiểm tra cú pháp động
kiểm tra cú pháp của mã khi đang được gõ và báo hiệu lỗi trước khi chương trình được dịch
hiển thị đẹp mã nguồn
hiển thị mã nguồn với các từ khóa, định danh và bình luận bằng màu sắc hoặc phông chữ khác nhau cùng với độ thụt lề nhất quán
điểm dừng
một dòng đã được đánh dấu mà tại đó chương trình đang chạy tạm dừng để bạn có thể kiểm tra các biến
Bước đơn
chạy một chương trình đã tạm dừng từng câu lệnh một dưới sự kiểm soát của lập trình viên
5.2
Exam tips · Mẹo làm bài thi
English
List the OS's jobs by their syllabus names (memory, process, hardware, file and security management) and say what each does — "manages resources" alone is too vague.
Compare compiler vs interpreter vs assembler: what each translates, when it translates it, and how errors are reported.
Explain what an IDE provides using the syllabus groups: coding, initial error detection, presentation, debugging.
A "benefit to the developer" answer names the developer's saving: time, cost, expertise, reliability or maintenance. A "drawback" names a dependence: availability, version, fit, security.
For "describe the operation of" a translator, give three things: what is translated (whole program or one statement), when (before running or while running), and how errors are reported (all at once or at the first error).
Common mistakes
Writing "the OS controls the computer" or "manages resources" with no example task. Each mark is one named task with what it does.
Saying an interpreter "compiles line by line". An interpreter translates and executes each statement; it never produces an executable.
Saying a compiler runs the program. It only translates; the executable runs later, without the compiler.
Putting a DLL "inside" the executable. That is a static library; a DLL stays a separate file loaded at run time.
Saying defragmentation "deletes" or "compresses" files, or is needed on an SSD. It only moves blocks so each file is stored contiguously.
Filing prettyprint or collapsing blocks under "debugging". They are presentation features; debugging is breakpoints, single stepping, watching variables and the report window.
Tiếng Việt
Liệt kê các nhiệm vụ của hệ điều hành theo tên chương trình (quản lý bộ nhớ, tiến trình, phần cứng, tệp tin và bảo mật) và mô tả chi tiết từng cái làm gì — chỉ nói "quản lý tài nguyên" là quá chung chung.
So sánh trình biên dịch vs trình giải thích vs trìnhIOException: mỗi cái dịch mã sang thứ gì, khi nào thực hiện việc dịch, và cách báo cáo lỗi như thế nào.
Giải thích một môi trường phát triển tích hợp (IDE) cung cấp những gì dựa trên các nhóm chương trình: viết code, phát hiện lỗi ban đầu, định dạng hiển thị, gỡ lỗi.
Một câu trả lời về "lợi ích cho nhà phát triển" phải nêu ra sự tiết kiệm của họ: thời gian, chi phí, chuyên môn, độ tin cậy hoặc công việc bảo trì. Một "nhược điểm" phải nêu ra sự phụ thuộc: khả năng truy cập, phiên bản, sự phù hợp, hoặc bảo mật.
Đối với câu hỏi "mô tả hoạt động của" một trình dịch, hãy đưa ra ba yếu tố: cái gì được dịch (toàn bộ chương trình hay từng câu lệnh), khi nào (trước khi chạy hay trong lúc chạy), và cách báo cáo lỗi (tất cả cùng lúc hay chỉ ở lỗi đầu tiên).
Lỗi thường gặp
Việc viết "hệ điều khiển máy tính" hoặc "quản lý tài nguyên" mà không có ví dụ cụ thể sẽ bị mất điểm. Mỗi điểm số ứng với một nhiệm vụ được đặt tên rõ ràng và mô tả chức năng của nó.
Nói rằng trình giải thích "biên dịch từng dòng" là sai. Trình giải thích vừa dịch mã vừa thực thi từng câu lệnh; nó không bao giờ tạo ra một tệp thực thi.
Nói rằng trình biên dịch chạy chương trình là sai. Nó chỉ thực hiện việc dịch mã; tệp thực thi được chạy sau đó, mà không cần có mặt trình biên dịch nữa.
Đặt một DLL "bên trong" tệp thực thi là sai. Đó là thư viện tĩnh; một DLL luôn là một tệp riêng biệt được tải vào bộ nhớ khi chương trình chạy.
Nói rằng việc phân mảnh lại "xóa" hoặc "nén" tệp, hoặc cho rằng nó cần thiết trên ổ SSD là sai. Nó chỉ di chuyển các khối dữ liệu sao cho mỗi tệp được lưu trữ liên tiếp nhau.
Phân loại các tính năng "định dạng đẹp" (prettyprint) hoặc thu gọn khối code vào mục "gỡ lỗi" là sai. Chúng là tính năng định dạng hiển thị; còn gỡ lỗi bao gồm breakpoints, bước đi đơn lẻ (single stepping), theo dõi biến và cửa sổ báo cáo.
More topics in A-Level Computer Science · Khoa học máy tính A-Level · Nhiều chủ đề hơn trong A-Level Computer Science · Khoa học máy tính A-Level
Pick one and the site follows you — notes, papers, videos and practice all open on it. · Chọn một môn và trang sẽ điều hướng theo — ghi chú, tài liệu, video và bài tập đều mở ở đó.
Type to search notes, lessons, code, vocabulary and past-paper questions across every subject. · Nhập để tìm ghi chú, bài học, mã, từ vựng và câu hỏi đề thi cũ trên mọi môn học.