Mục lục bài họcĐang ở d06-b3
← IB Computer Science
0/32 bài đã học xong
Chương 6 · Resource Management (HL) · Bài 3/4 của chương · bài 23/32 của IB Computer Science

System Resources and Their Limitations Across Device Types

Tài nguyên hệ thống và giới hạn của chúng theo loại thiết bị
← Mục lục bài học
Lý thuyết · English

The resources a system has. Every computing device is a bundle of resources that can run out: primary memory (RAM, where running programs and their data live); secondary storage (disk or flash, persistent but slow); processor speed and number of cores; cache, the small fast memory that hides RAM latency; network bandwidth; screen resolution; graphics and sound processors, specialised chips that take work off the main processor; and, for anything not plugged into the wall, battery. The exam expects you to name these and, more importantly, to say what happens when each one runs out.

Different devices are short of different things. A mainframe or large server has huge memory, storage and processing, runs thousands of users at once, and has almost no screen because nobody sits at it; its constraint is heat, power and the cost of downtime. A desktop PC is balanced, with a large screen and mains power; its limits show as slowness when RAM fills. A tablet or phone has a capable processor but a small screen, limited RAM, limited storage, wireless bandwidth that varies with signal, and above all a battery, so every piece of software must economise on power and the operating system aggressively suspends background apps. A digital camera has little general processing and memory but a dedicated image processor and fast storage; it does one job. An IoT sensor may have a few kilobytes of memory, no screen, a slow radio, and a battery that must last years, so it wakes briefly, sends a number and sleeps. The same task — say, viewing a document — is implemented differently on each: the desktop loads the whole file into memory, the phone streams pages as needed, the sensor could not do it at all.

Bottlenecks. Performance is set by whichever resource runs out first. A server at 96% processor use with idle disks needs a faster processor; one at 30% processor with a saturated disk and a high page-fault rate needs more RAM, and a faster processor would change nothing. Diagnosing the bottleneck before spending money is the skill examiners test: they give measurements and ask which upgrade helps. The rule is that upgrading any resource other than the bottleneck produces no improvement, and after the bottleneck is removed a different resource becomes the new one.

Consequences for software. Software written without regard to limits fails in predictable ways: an app that keeps a large data set in memory crashes on a phone; a page that assumes broadband is unusable on a slow link; a program that polls a sensor constantly drains the battery. Good design measures the target device's limits and works within them — loading lazily, compressing, caching, batching network requests and letting the device sleep.

Giải thích tiếng Việt

Các tài nguyên của một hệ thống. Mọi thiết bị tính toán là một gói các tài nguyên có thể cạn: bộ nhớ chính (RAM, nơi chương trình đang chạy và dữ liệu của nó cư trú); lưu trữ thứ cấp (đĩa hoặc flash, bền nhưng chậm); tốc độ bộ xử lý và số lõi; cache, bộ nhớ nhỏ và nhanh che độ trễ của RAM; băng thông mạng; độ phân giải màn hình; bộ xử lý đồ hoạ và âm thanh, các chip chuyên dụng gánh việc cho bộ xử lý chính; và, với mọi thứ không cắm vào tường, pin. Đề thi mong bạn gọi tên được chúng và, quan trọng hơn, nói được điều gì xảy ra khi mỗi thứ cạn.

Thiết bị khác nhau thiếu thứ khác nhau. Máy chủ lớn có bộ nhớ, lưu trữ và xử lý khổng lồ, phục vụ hàng nghìn người dùng cùng lúc, và gần như không có màn hình vì không ai ngồi trước nó; giới hạn của nó là nhiệt, điện và chi phí của thời gian ngừng. Máy bàn cân bằng, có màn hình lớn và điện lưới; giới hạn lộ ra dưới dạng chậm khi RAM đầy. Máy tính bảng hoặc điện thoại có bộ xử lý khá nhưng màn hình nhỏ, RAM và lưu trữ hạn chế, băng thông không dây thay đổi theo sóng, và trên hết là pin, nên mọi phần mềm phải tiết kiệm điện và hệ điều hành tạm dừng ứng dụng nền một cách quyết liệt. Máy ảnh số có ít xử lý và bộ nhớ chung nhưng có bộ xử lý ảnh chuyên dụng và lưu trữ nhanh; nó làm một việc. Cảm biến IoT có thể chỉ vài kilobyte bộ nhớ, không màn hình, sóng chậm, và pin phải sống nhiều năm, nên nó thức rất ngắn, gửi một con số rồi ngủ. Cùng một việc — ví dụ xem tài liệu — được cài khác nhau trên mỗi loại: máy bàn nạp cả tệp vào bộ nhớ, điện thoại tải từng trang khi cần, cảm biến không làm được.

Nút thắt cổ chai. Hiệu năng được quyết định bởi tài nguyên nào cạn trước. Máy chủ ở 96% bộ xử lý với đĩa rảnh cần bộ xử lý nhanh hơn; máy ở 30% bộ xử lý với đĩa bão hoà và tỷ lệ lỗi trang cao cần thêm RAM, và bộ xử lý nhanh hơn không thay đổi gì. Chẩn đoán nút thắt trước khi tiêu tiền là kỹ năng giám khảo kiểm tra: họ cho số đo và hỏi nâng cấp nào giúp. Quy tắc là nâng cấp bất kỳ tài nguyên nào ngoài nút thắt không cho cải thiện, và sau khi nút thắt được gỡ, một tài nguyên khác trở thành nút thắt mới.

Hệ quả cho phần mềm. Phần mềm viết mà không để ý giới hạn thất bại theo cách đoán được: ứng dụng giữ tập dữ liệu lớn trong bộ nhớ sập trên điện thoại; trang web giả định băng rộng không dùng được trên đường truyền chậm; chương trình thăm dò cảm biến liên tục làm cạn pin. Thiết kế tốt đo giới hạn của thiết bị đích và làm việc trong đó — nạp lười, nén, cache, gộp yêu cầu mạng, và để thiết bị ngủ.

MỖI LOẠI HỆ THỐNG THIẾU MỘT THỨ KHÁC NHAU tài nguyên MÁY CHỦ LỚN MÁY BÀN ĐIỆN THOẠI MÁY ẢNH CẢM BIẾN IoT bộ xử lý bộ nhớ chính lưu trữ màn hình mạng pin / điện thanh dài = có nhiều · thanh ngắn = giới hạn chặt (pin: dài = cắm điện, không lo) GIỚI HẠN QUYẾT ĐỊNH THIẾT KẾ — KHÔNG PHẢI TÀI NGUYÊN NHIỀU NHẤT máy chủ lớn: thiếu màn hình vì không ai ngồi trước nó · điện thoại: thiếu PIN nên mọi phần mềm phải tiết kiệm điện máy ảnh: thiếu bộ xử lý chung nhưng có chip xử lý ảnh riêng · cảm biến IoT: vài KB bộ nhớ, ngủ 99% thời gian cùng một ứng dụng phải viết khác: máy bàn nạp cả tệp vào bộ nhớ, điện thoại nạp từng phần, cảm biến gửi số rồi ngủ nút thắt cổ chai = tài nguyên hết trước tiên; nâng tài nguyên khác không giúp gì câu hỏi thi: nêu HAI giới hạn của loại hệ thống X và hệ quả cho phần mềm chạy trên nó
Hình là một bảng thanh so sánh sáu tài nguyên — bộ xử lý, bộ nhớ chính, lưu trữ, màn hình, mạng và pin — trên năm loại hệ thống từ máy chủ lớn tới cảm biến IoT; thanh dài nghĩa là có nhiều, thanh ngắn nghĩa là giới hạn chặt, riêng dòng pin thì thanh dài nghĩa là cắm điện và không phải lo. Điểm cần đọc ra không phải là máy chủ có nhiều nhất mọi thứ, mà là mỗi loại thiếu một thứ khác nhau: máy chủ lớn gần như không có màn hình vì không ai ngồi trước nó; điện thoại có bộ xử lý khá nhưng thiếu pin, nên mọi phần mềm trên nó phải tiết kiệm điện; máy ảnh số thiếu bộ xử lý chung và bộ nhớ nhưng có chip xử lý ảnh chuyên dụng và lưu trữ khá; cảm biến IoT chỉ có vài kilobyte bộ nhớ, màn hình gần bằng không và phải ngủ 99% thời gian để pin sống nhiều năm. Hộp dưới cùng rút ra hệ quả cho phần mềm: cùng một ứng dụng phải viết khác nhau — máy bàn nạp cả tệp vào bộ nhớ, điện thoại nạp từng phần, cảm biến gửi một con số rồi ngủ. Dòng đỏ nhắc khái niệm nút thắt cổ chai: tài nguyên hết trước tiên quyết định hiệu năng, và nâng tài nguyên khác không giúp gì. Dạng câu hỏi thi điển hình là nêu hai giới hạn của một loại hệ thống và hệ quả cho phần mềm chạy trên nó.
Ví dụ — Ví dụ 1 — chẩn đoán nút thắt từ số đo và chọn nâng cấp

Ba máy chủ có số đo giờ cao điểm. Máy 1: bộ xử lý 95%, đĩa 20%, lỗi trang thấp, mạng 30%. Máy 2: bộ xử lý 35%, đĩa 98%, lỗi trang rất cao, mạng 25%. Máy 3: bộ xử lý 40%, đĩa 30%, lỗi trang thấp, mạng 99%. Với mỗi máy hãy nêu nút thắt, nâng cấp đúng, và một nâng cấp sai nhìn có vẻ hợp lý.

Giải.

Máy 1 — bộ xử lý. 95% bộ xử lý với mọi thứ khác rảnh nghĩa là công việc thuần tính toán. Nâng cấp đúng: bộ xử lý nhanh hơn hoặc thêm lõi nếu phần mềm tận dụng được nhiều lõi. Nâng cấp sai có vẻ hợp lý: thêm RAM — RAM đang đủ vì lỗi trang thấp, nên thêm nữa không thay đổi gì.

Máy 2 — RAM, dù đĩa mới là thứ bão hoà. Đây là ca bẫy. Đĩa 98% cộng lỗi trang rất cao là dấu hiệu của thrashing: RAM không đủ nên hệ điều hành liên tục chuyển trang ra vào đĩa, và đĩa bận là hệ quả chứ không phải nguyên nhân. Nâng cấp đúng: thêm RAM, sau đó lỗi trang giảm và đĩa tự rảnh. Nâng cấp sai có vẻ hợp lý: đĩa nhanh hơn — nó làm thrashing bớt chậm một chút nhưng máy vẫn dành phần lớn thời gian chuyển trang; bộ xử lý nhanh hơn còn vô ích hơn vì bộ xử lý đang rảnh 65%.

Máy 3 — mạng. 99% mạng với mọi thứ khác rảnh: máy chủ xử lý xong nhưng không đẩy dữ liệu ra kịp. Nâng cấp đúng: đường mạng nhanh hơn, hoặc giảm lượng gửi bằng nén và cache ở phía khách. Nâng cấp sai có vẻ hợp lý: bộ xử lý hoặc RAM, đều rảnh.

Quy tắc chung. Nhìn số đo cao nhất trước, nhưng hỏi nó là nguyên nhân hay hệ quả — đĩa bận do thrashing là ví dụ kinh điển của hệ quả. Và sau khi gỡ một nút thắt, đo lại, vì tài nguyên khác sẽ trở thành nút thắt mới; máy 1 sau khi có bộ xử lý nhanh hơn có thể bắt đầu bão hoà mạng.

Ví dụ — Ví dụ 2 — cùng một ứng dụng trên ba thiết bị

Một ứng dụng xem bản đồ phải chạy trên máy bàn, điện thoại và một đồng hồ thông minh. Với mỗi thiết bị, nêu hai giới hạn quyết định và cách ứng dụng phải thay đổi để đáp ứng.

Giải.

Máy bàn — giới hạn lỏng nhất. Điện lưới và RAM lớn cho phép tải trước bản đồ cả thành phố vào bộ nhớ và vẽ ở độ phân giải cao; màn hình lớn cho phép nhiều lớp thông tin cùng lúc. Giới hạn thực tế duy nhất là băng thông khi tải lần đầu, giải quyết bằng cache trên đĩa. Ứng dụng có thể phung phí tài nguyên mà người dùng không nhận ra.

Điện thoại — pin và băng thông biến động. Hai giới hạn: pin, vì định vị GPS và màn hình sáng là hai thứ ngốn điện nhất trên điện thoại; và băng thông thay đổi theo sóng, có lúc bằng không. Ứng dụng phải: tải bản đồ theo ô nhỏ quanh vị trí hiện tại thay vì cả thành phố; cache các ô đã xem để dùng khi mất sóng; giảm tần suất đọc GPS khi đứng yên; và tôn trọng việc hệ điều hành tạm dừng nó khi ở nền. RAM hạn chế còn buộc bỏ các ô xa khỏi bộ nhớ.

Đồng hồ — mọi thứ đều thiếu. Màn hình vài centimet, bộ nhớ vài chục megabyte, pin nhỏ, và thường không có kết nối riêng. Ứng dụng không thể vẽ bản đồ: nó chỉ hiện mũi tên chỉ hướng và khoảng cách tới điểm rẽ tiếp theo, nhận dữ liệu đã tính sẵn từ điện thoại qua Bluetooth, và tắt màn hình giữa các lần rẽ. Về bản chất đây là một ứng dụng khác chỉ chung mục đích.

Điểm đánh giá. Bài tốt không nói điện thoại yếu hơn máy bàn mà nêu đúng tài nguyên giới hạn và nối nó với một quyết định thiết kế cụ thể. Giới hạn quyết định kiến trúc phần mềm, chứ không chỉ làm nó chậm hơn.

Bẫy hay mất điểm — Bẫy 1 — nâng cấp tài nguyên có số đo cao nhất. Đĩa bão hoà do thrashing là hệ quả của thiếu RAM; phải hỏi nguyên nhân hay hệ quả.
Bẫy 2 — nói máy chủ lớn có nhiều nhất mọi thứ. Nó gần như không có màn hình, và giới hạn của nó là nhiệt, điện, chi phí ngừng.
Bẫy 3 — coi giới hạn chỉ làm phần mềm chậm. Giới hạn quyết định kiến trúc: nạp từng phần, cache, ngủ — hoặc không làm được.
Phải nhớ — Chốt bài 3. Bốn thứ mang vào phòng thi. Một, tám tài nguyên và điều xảy ra khi mỗi thứ cạn. Hai, mỗi loại thiết bị thiếu một thứ khác: màn hình, pin, bộ nhớ, mạng. Ba, nút thắt là thứ cạn trước, nâng thứ khác vô ích, gỡ xong có nút thắt mới. Bốn, giới hạn quyết định thiết kế phần mềm, nêu cụ thể chứ không nói yếu hơn.

Đọc xong rồi — làm thử ngay

Bài tập của chương Resource Management (HL) gồm 14 câu trắc nghiệm và 5 đề tự luận. Đáp án hiện ngay khi chọn, miễn phí.

Làm bài tập chương →