ĐÁP ÁN HỆ ĐIỀU HÀNH
Câu 1: Ý nghĩa của System Call. Hãy giải thích bình thường các phần mềm ứng dụng
“khai thác” phần cứng của máy như thế nào?
• Ý nghĩa của System Call
- HĐH cung cấp 1 giao tiếp sử dụng được gọi là "System Call", mỗi system call là 1
hàm thực hiện 1 chức năng xác định.
- Hệ thống gọi cung cấp giao diện giữa một chương trình đang chạy và hệ thống điều
hành.
+ Nói chung có sẵn như là ngôn ngữ bậc cao.
+ Ngôn ngữ định rõ sự thay thế của ngôn ngữ bậc cao cho các hệ thống lập trình.Nó
cho phép hệ thống gọi được thực hiện trực tiếp (ví dụ, C. Bliss, PL/360)
- Ba phương pháp truyền tham số khi sử dụng system call
+ Truyền thông số qua thanh ghi .
+ Truyền tham số thông qua một vùng nhớ, địa chỉ của vùng nhớ được gửi đến hệ
điều hành qua thanh ghi .
+ Truyền tham số qua stack
- Mỗi hệ điều hành có thể thiết lập riêng các hệ thống gọi được gọi là hệ điều hành của
API.
• Giải thích:
Có thể nói hệ điều hành là một hệ thống các chương trình đóng vai trò trung gian giữa
người sử dụng và phần cứng máy tính. Mục tiêu chính của nó là cung cấp một môi trường
thuận lợi để người sử dụng dễ dàng thực hiện các chương trình ứng dụng của họ trên máy
tính và khai thác triệt để các chức năng của phần cứng máy tính. Để đạt được mục tiêu trên
hệ điều hành phải thực hiện 2 chức năng chính sau đây:
+ Giả lập một máy tính mở rộng: Giúp người sử dụng khai thác các chức năng của phần
cứng máy tính dễ dàng và hiệu quả hơn.
+ Quản lý tài nguyên của hệ thống: Tài nguyên hệ thống có thể là: processor memory,
I/O device, printer, file,…. Khi người sử dụng cần thực hiện một chương trình hay khi một
chương trình cần nạp thêm một tiến trình mới vào bộ nhớ thì hệ điều hành phải cấp phát không
gian nhớ cho chương trình, tiến trình đó để chương trình, tiến trình đó nạp được vào bộ nhớ và
hoạt động được.
Câu 5: Sự giống nhau và khác nhau giữa Chương trình, Tiến trình và Luồng (Program,
Process and Thread).
• Sự giống nhau:
- Tiểu trình cũng là đơn vị xử lý cơ bản trong hệ thống, nó cũng xử lý tuần tự đoạn
code của nó, nó cũng sở hữu một con trỏ lệnh, một tập các thanh ghi và một vùng nhớ stack
riêng và các tiểu trình cũng chia sẻ thời gian xử lý của processor như các tiến trình.
• Sự khác nhau giữa tiến trình và chương trình và Luồng
- Chương trình là một thực thể thụ động chứa lệnh & dữ liệu để tiến hành một
tác vụ( công việc). Khi thực hiện các lệnh, chương trình chuyển thành tiến trình.
- Tiến trình là một thực thể hoạt động.
- Luồng(Thread): trong hệ thống có thể tồn tại nhiều dòng xử lý cùng chia sẻ
một không gian địa chỉ bộ nhớ, các dòng xử lý này hoạt động song song với nhau.
Câu 7: Hãy giải thích cơ chế CPU chuyển từ việc thực hiện process này sang process
khác. Làm sao có thể đảm bảo được việc thực hiện đúng các lệnh của process tương ứng?
- Làm cho thời gian thực hiện các tiến trình khác nhau là ít nhất tức là trong
một khoảng thời gian sẽ có nhiều tiến trình được thực hiện.
- Khai thác CPU làm việc một cách hiệu quả nhất.Tức là lúc nào CPU cũng
trong trạng thái bận.
- Tối thiểu hoá thời gian một tiến trình chờ trong hàng đợi.
- Tối thiểu hoá thời gian từ khi gửi một yêu cầu tới hệ thống cho tới khi nhận
đ-ợc câu trả lời từ hệ thống.
- Đảm bảo tất cả các tiến trình đều đ-ợc thực hiện
- HĐH hiện nay th-ờng là HĐH đa nhiệm,tức là cùng một lúc sẽ có nhiều tiến
trình cùng đ-ợc thực hiện .Về nguyên tắc để thực hiện đ-ợc điều này thì hệ thống phải có
nhiều processor ,mỗi processor có nhiệm vụ thựchiện một ch-ơng trình ,nh-ng mong
muốn của HĐH cũng nh- ng-ời sử dụng là thực hiện đa ch-ơng trình trên các hệ thống chỉ
có 1 processor
- Để thực hiện đ-ợc điều này HĐH phải phân phối processor cho các tiến trình
sao cho phù hợp .
- Trong mô hình tiến trình HĐH chia ch-ơng trình thành nhiều tiến trình khởi
gian sẽ có nhiều tiến trình thực hiện.
+ Khai thác CPU một cách hiệu quả tức là lúc nào CPU cũng ở trong trạng thái bận.
+ Tối thiểu hóa thời gian một tiến trình chờ trong hàng đợi.
+ Tối thiểu hóa thời gian từ khi gửi một yêu cầu tới hệ thống cho tới khi nhận được câu
trả lời từ hệ thống .
+ Đảm bảo tất cả các tiến trình đều được thực hiện.
Nguyên tắc: tổ chức dòng xếp hàng cho các tiến trình,sau đó xác lập một chính sách phục
vụ cho các dòng xếp hàng đó.
Câu 9: Ý nghĩa căn bản của Lập lịch, Sự khác nhau giữa Lập lịch dài kì và lập lịch
ngắn hạn?
- Ý nghĩa của lập lịch: có nghĩa là tổ chức một hàng đợi các tiến trình sẵn sàng để
phân phối giờ CPU cho chúng dựa trên độ ưu tiên của các tiến trình sao cho hiệu suất sử dụng là
tối ưu nhất.
- Lập lịch dài kì: áp dụng với những tiến trình đã được lập danh sách và SPOOL,
- Lập lịch ngắn hạn: áp dụng với những tiến trình mà mã nguồn của nó đã được đẩy
vào bộ nhớ trong(tiến trình đã sẵn sàng nhận giờ phân bổ của CPU).
Câu 10: Giới thiệu sơ lược 5 cách lựa chọn tiến trình từ “ready to run” để thực hiện.
Đánh giá thuật toán FCFS.
- Sơ lược 5 cách lựa chọn tiến trình từ “ready to run” để thực hiện”
Ngay sau khi khởi tạo các tiến trình, đưa tiến trình vào hệ thống và cấp phát đầy đủ tài
nguyên (trừ processor)cho tiến trình , hệ điều hành đưa tiến trình vào trạng thái Ready.Hay nói
cách khác trạng thái ready là trạng thái của một tiến trình trong hệ thống đang chờ được cấp
phát processor để bắt đầu thực hiện.
- Đánh giá thuật toán FCFS.
-Tiến trình nào yêu cầu CPU trước sẽ được phân phối CPU trước→ Giải thuật FCFS là
không được ưu tiên
-Là giải thuật đơn giản nhất
-Process Burst Time (thời gian xử lý-thời gian sử dụng CPU, ms)
P1 24
P2 3
Đánh giá thuật toán RR
- Sơ lược 5 cách lựa chọn tiến trình từ “ready to run” để thực hiện”
Ngay sau khi khởi tạo các tiến trình, đưa tiến trình vào hệ thống và cấp phát đầy đủ tài
nguyên (trừ processor)cho tiến trình , hệ điều hành đưa tiến trình vào trạng thái Ready.Hay nói
cách khác trạng thái ready là trạng thái của một tiến trình trong hệ thống đang chờ được cấp
phát processor để bắt đầu thực hiện.
Đánh giá thuật toán RR
Mỗi tiến trình sử dụng một lượng nhỏ thời gian của CPU (time quantum – thời gian định
lượng, q), thường là 10-100 ms.
- Sau thời gian thực hiện q, tiến trình đưa vào cuối của ready queue.
- Ready queue được tổ chức dạng FIFO (FCFS)
- Nếu tiến trình có thời gian sử dụng CPU còn lại < q thì tiến trình sẽ giải phóng
CPU khi kết thúc và không có mặt trong ready queue. Trình lập lịch sẽ chọn tiến trình kế tiếp
trong ready queue.
- Nếu tiến trình có thời gian sử dụng CPU còn lại > q thì bộ định thời (timer) sẽ đếm
lùi và gây ngắt HĐH khi nó = 0. Việc chuyển ngữ cảnh được thực hiện để chuyển điều khiển
CPU cho tiến trình ở đầu hàng đợi, và tiến trình hiện tại được đưa xuống cuối ready queue.
Câu 15: Giải thích ngắn gọn trạng thái của các tiến trình, các mô hình tiến trình hệ
thống (process models) chung.
-Trạng thái của tiến trình tại một thời điểm được xác định bởi hoạt động hiện thời của
tiến trình tại thời điểm đó.
-Tại một thời điểm, một tiến trình có thể nhận một trong các trạng thái sau đây :
+Mới tạo : tiến trình đang được tạo lập.
+Running : các chỉ thị của tiến trình đang được xử lý.
+Blocked:tiến trình chờ được cấp phát một tài nguyên, hay chờ một
sự kiện xảy ra (hoàn thành nhập xuất hay nhận một tín hiệu) .
+ Ready : tiến trình chờ được cấp phát CPU để xử lý.
+ Kết thúc : tiến trình hoàn tất xử lý.
-Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái running trên một bộ xử lý
bất kỳ. Trong khi đó, nhiều tiến trình có thể ở trạng thái blocked hay ready.
đang mở,
- PCB đơn giản phục vụ như kho chứa cho bất cứ thông tin khác nhau từ quá
trình này tới quá trình khác.
Câu 17: Giới thiệu và giải thích ngắn gọn các thành phần (components) của Hệ điều
hành.
Một hệ điều hành là một thành phần quan trọng của mọi hệ thống máy tính. Một hệ
thống máy tính có thể được chia thành bốn thành phần: phần cứng, hệ điều hành, các
chương trình ứng dụng và người dùng.
- Phần cứng (Hardware): bao gồm bộ xử lý trung tâm (CPU), bộ nhớ, thiết bị
xuất/nhập, cung cấp tài nguyên cơ bản cho hệ thống.
- Các chương trình ứng dụng (application programs): trình biên dịch
(compiler), trình soạn thảo văn bản (text editor), hệ cơ sở dữ liệu (database system), trình
duyệt Web, định nghĩa cách mà trong đó các tài nguyên được sử dụng để giải quyết yêu
cầu của người dùng.
- Người dùng (user): có nhiều loại người dùng khác nhau, thực hiện những
yêu cầu khác nhau, do đó sẽ có nhiều ứng dụng khác nhau.
- Hệ điều hành (operating system): hay còn gọi là chương trình hệ thống, điều
khiển và hợp tác việc sử dụng phần cứng giữa những chương trình ứng dụng khác nhau
cho những người dùng khác nhau. Hệ điều hành có thể được khám phá từ hai phía: người
dùng và hệ thống.
Câu 18: Nêu vắn tắt các kĩ thuật cấp phát bộ nhớ (nạp chương trình vào bộ nhớ).
• Kỹ thuật phân vùng cố định (Fixed Partitioning)
- Quản lý bộ nhớ với những phân đọan cố định .Hệ điều hành chia bộ nhớ thành n
vùng nhớ cố định( có thể không bằng nhau)
- Việc phân chia này được thực hiện vào lúc khởi động hệ thống và không thay đổi suốt
quá trình chạy.Với tổ chức như vậy cần duy trì một hàng đợi duy nhất để lưu trữ những tiến
trình chưa được cấp phát bộ nhớ
- Tất cả tiến trình được đặt trong một hàng đợi duy nhất. Khi có một phân vùng tự
do , tiến trình đầu tiên trong hàng đợi có kích thước phù hợp sẽ được đặt vào phân vùng
này và cho xử lý.
- First-fit: trong trường hợp này hệ điều hành sẽ bắt đầu quét qua các khối nhớ trống bắt
đầu từ khối nhớ trống đầu tiên trong bộ nhớ, và sẽ chọn khối nhớ trống đầu tiên có kích thước
đủ lớn để nạp tiến trình.
-Word -fit: tương tự như First-fit nhưng ở đây hệ điều hành bắt đầu quét từ khối nhớ
trống kế sau khối nhớ vừa được cấp phát và chọn khối nhớ trống kế tiếp đủ lớn để nạp tiến
trình.
Câu 20: Phân tích hai khái niệm Page và Paging (trang và phân trang).
-Page: Một trong các cơ cấu đơn giản để thực thi không gian địa chỉ ảo thì bao gồm việc
phân đoạn bộ nhớ thành những đơn vị có độ lớn bằng nhau: những đơn vị tách chia này gọi là
những trang (pages). Các độ lớn trang tiện dụng thì khoảng 1kB, 4kB hay 8kB. Địa chỉ và trạng
thái của mỗi trang được dẫn tới trong một bảng trang (pape table), bảng này tồn tại cho mỗi
chương trình ở trong bộ nhớ chính.
-Paging: Không gian địa chỉ logic của một tiến trình có thể không kề nhau tiến trình
được phân phối bộ nhớ vật lý bất kỳ lúc nào khi bộ nhớ sẵn có.
Câu 21: Giả thích cơ chế phân đoạn (segmentation) trong quản lý bộ nhớ của hệ điều
hành.
Ý tưởng: quan niệm không gian địa chỉ là một tập các phân đoạn (segments) – các phân
đoạn là những phần bộ nhớ kích thước khác nhau và có liên hệ logic với nhau. Mỗi phân đoạn có
một tên gọi (số hiệu phân đoạn) và một độ dài. Người dùng sẽ thiết lập mỗi địa chỉ với hai giá
trị : <số hiệu phân đoạn, offset>.
Hình 3.18 Mô hình phân đoạn bộ nhớ
Cơ chế MMU trong kỹ thuật phân đoạn:
Hình 3.19 Cơ chế phần cứng hổ trợ kĩ thuật phân đoạn
Cần phải xây dựng một ánh xạ để chuyển đổi các địa chỉ 2 chiều được người dùng định
nghĩa thành địa chỉ vật lý một chiều. Sự chuyển đổi này được thực hiện qua một bảng phân
đoạn. Mỗi thành phần trong bảng phân đoạn bao gồm một thanh ghi nền và một thanh ghi giới
hạn. Thanh ghi nền lưu trữ địa chỉ vật lý nơi bắt đầu phân đoạn trong bộ nhớ, trong khi thanh
ghi giới hạn đặc tả chiều dài của phân đoạn.
Câu 22: Mô tả ngắn gọn “Bộ nhớ ảo” – Virtual memory. Bộ nhớ ảo có lợi và thiệt hại gì
đối với việc tối ưu hoá sử dụng CPU.
Một phần tử trong bảng trang mộ tả cho một trang không nằm trong bộ nhớ chính, sẽ
được đánh dấu invalid và chứa địa chỉ của trang trên bộ nhớ phụ
Câu 24: Trong kỹ thuật sử dụng Bộ nhớ ảo Hệ điều hành cần có bộ phận quản lý việc
hoán chuyển các trang/đoạn giữa bộ nhớ thực và bộ nhớ ảo và có thể xảy ra “Lỗi trang”
(page fault). Hệ điều hành gải quyết vấn đề đó như thế nào và mục tiêu cần đạt được?
Khi hệ thống truy xuất tới một trang nhưng trang này chưa được nạp vào bộ nhớ trong sẽ
sinh ra lỗi trang.Hệ điều hành sẽ xử lý lỗi theo các bước sau:
- Step 1: Kiểm tra việc truy xuất tới bộ nhớ có hợp lệ hay không. Nếu có ,goto
Step2.Ngược lại kết thúc chương trình.
- Step 2: Tìm vị trí chứa trang cần truy xuất trên đĩa từ.
- Step 3: Tìm một trang vật lý trống trong bộ nhớ chính.Nếu tìm thấy go to step 4
Nếu không ,chọn một trang đang sử dụng và chuyển nội dung trang này ra bộ nhớ ngoài
(lưu nội dung trang này vào đĩa từ ),cập nhật bảng quản lý trang tương ứng.
- Step 4: Chuyển trang muốn truy xuất từ bộ nhớ ngoài vào bộ nhớ trong :nạp trang cần
truy xuất vào trang vật lý trống ,cập nhật nội dung bảng quản lý trang.
- Step 5 : Tải kích hoạt chương trình
Câu 25: Đánh giá các thuật toán thay trang (Page Replacement) trong kỹ thuật sử dụng
Bộ nhớ ảo.
Các thuật toán thay thế trang được áp dụng như trong sơ đồ quản lý bộ nhớ theo kiểu
phân trang gồm:
- Thay thế trang có thời gian tồn tại trong bộ nhớ lâu nhất(FIFO).
- Thay thế trang có lần sử dụng cuối cùng , cách thời điểm hiện tại lâu nhất (LRU).
- Thay thế trang có tần xuất sử dụng thấp nhất (LFU).
- Thay thế trang có tần xuất sử dụng nhiều nhất (MFU- Most Frequently Used).
Câu 26: Nêu ngắn gọn các thuật toán Thay thế trang trong kỹ thuật bộ nhớ ảo, Trình
bày và giải thích bằng ví dụ thuật toán FIFO.
Ghi nhận thời điểm một trang được mang vào bộ nhớ chính. Khi cần thay thế trang, trang ở
trong bộ nhớ lâu nhất sẽ được chọn
Để áp dụng thuật toán FIFO, thực tế không nhất thiết phải ghi nhận thời điểm mỗi trang được
nạp vào bộ nhớ, mà chỉ cần tổ chức quản lý các trang trong bộ nhớ trong một danh sách FIFO,
Phân đoạn: Phân mành trong khi kích thước trong thay đổi. Có phân mành ngoài thì vùng rỗi
nhỏ hơn đoạn cần thiết
Câu 30: Giải thích khái niệm “hoán chuyển” (swapping); Ý nghĩa, ứng dựng của việc
áp dụng kĩ thuật này.
Swapping: Sử dụng một thiết bị nhớ thứ cấp đủ lớn (Backing Store) để cung cấp bản sao
của tất cả hình ảnh bộ nhớ cho tất cả người sử dụng. Trong các hệ điều hành sử dụng swapping,
tồn tại module hệ thống swapper có chức năng: chọn tiến trình swap out (chọn tiến trình để đưa
ra backing store), chọn tiến trình swap in(chọn tiến trình từ backing store để đưa vào bộ nhớ
trong), định vị & quản lý không gian chuyển
Câu 31: Hãy giải thích vì sao DMA thường được “ưu ái” sử dụng như là phương thức
thực thi trao đổi với ngoại vi? DMA có lợi điểm gì không đối với input thông qua bàn phím?
Giải thích tại sao hoặc tại sao không?
Câu 33: Khi học môn “Tin học đại cương” chúng ta đã được biết đến một cách chia các
thiết bị ngoại vi thành 2 hoặc 3 loại (nhóm) là “VÀO’, “RA” và/hoặc vừa “VÀO vừa RA”;
Dưới góc nhìn người thiết kế Hệ điều hành chúng ta có thể chia thiết bị ngoại vi thành 2 loại.
Đó là gì và cách chia này dựa trên căn cứ nào? Hãy nêu ví dụ một số ngọai vi thuộc từng loại
trên.
Câu 34: Giải thích sự khác biệt giữa “polled I/O” và “interrupt-driven I/O”. Nêu những
ưu điểm của “interrup-driven I/O” so với “polled I/O”.
Câu 36: Hãy giải thích thuật toán Lập lịch cho đầu từ FCFS là gì, cho ví dụ để mô tả để
tính được seek time.
Phương pháp lập lịch đơn giản nhất là FCFS(first-come,first-served). Thuật toán này rất
dể lập trình nhưng không cung cấp được một dịch vụ tốt. Ví dụ : cần phải đọc các khối theo thứ
tự như sau :
98, 183, 37, 122, 14, 124, 65, và 67
Giả sử hiện tại đầu đọc đang ở vị trí 53. Như vậy đầu đọc lần lượt đi qua các khối 53, 98,
183, 37, 122, 14, 124, 65, và 67 như hình sau :
Câu 37: Hãy giải thích thuật toán Lập lịch cho đầu từ SSTF là gì, cho ví dụ để mô tả để
tính được seek time.
Thuật toán này sẽ di chuyển đầu đọc đến các khối cần thiết theo vị trí lần lượt gần với vị
Câu 49: Phân biệt Device, Driver và Device Controller.
14 37 53 65 67 98
12
2
12
4
18
3