21
ĐÁ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ệ thng gọi cung cấp giao diện giữa một chương trình đang chạy và hệ thng điều hành. + Ni chung c sn như là ngôn ngữ bc cao. + Ngôn ngữ định r sự thay thế ca ngôn ngữ bc cao cho các hệ thng lp trình.N cho phép hệ thng 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ỉ ca 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 lp riêng các hệ thng gọi được gọi là hệ điều hành ca API. Giải thích: C thể ni hệ điều hành là một hệ thng 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 ca n là cung cấp một môi trường thun lợi để người sử dụng dễ dàng thực hiện các chương trình ứng dụng ca họ trên máy tính và khai thác triệt để các chức năng ca 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 ca 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ệ thng 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

Ly Thuyet HDH

Embed Size (px)

Citation preview

Page 1: Ly Thuyet HDH

ĐÁ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.

+ Noi chung co săn như là ngôn ngữ bâc cao.

+ Ngôn ngữ định ro sự thay thế cua ngôn ngữ bâc cao cho các hệ thông lâp trình.No 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ỉ cua 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 co thê thiết lâp riêng các hệ thông gọi được gọi là hệ điều hành cua API.

Giải thích: Co thể noi hệ điều hành là một hệ thông các chương trình đong 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 cua no 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 cua họ trên máy tính và khai thác triệt để các chức năng cua 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 cua 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 co 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 đo để chương trình, tiến trình đo nạp được vào bộ nhớ và hoạt động được.

Do đo hệ điều hành phải tổ chức cấp phát bộ nhớ sao cho hợp lý để đảm bảo tất cả các chương trình, tiến trình khi cần đều được nạp vào bộ nhớ để hoạt động. Ngoài ra hệ điều hành còn phải tổ chức bảo vệ các không gian nhớ đã cấp cho các chương trình, tiến trình để tránh sự truy câp bất hợp lệ và sự tranh chấp bộ nhớ giữa các chương trình, tiến trình, đặc biệt là các tiến trình đồng thời hoạt động trên hệ thông.

Trong mọi trường hợp tất cả các chương trình, tiến trình nếu cần được cấp phát tài nguyên để hoạt động thì sớm hay muộn no đều được cấp phát và được đưa vào trạng thái hoạt động.

Câu 3: Nêu định nghĩa “Hệ điều hành”. Hệ điều hành thực hiện những chức năng chính gì?

Page 2: Ly Thuyet HDH

Khái niệm HĐH : HĐH là chương trình trung gian giữa phần cứng máy tính và người sử

dụng, co chức năng điều khiển phần cứng và cung cấp các dịch vụ cơ bản cho các ứng dụng

Chức năng: - Phân chia thời gian xử lý trên CPU (định thời) - Phôi hợp và đồng bộ hoạt động giữa các quá trình .- Quản lý tài nguyên hệ thông hiệu quả .- Kiểm soát quá trình truy câp, bảo vệ hệ thông .- Duy trì sự nhất quán cua hệ thông, kiểm soát lỗi và phục hồi hệ thông khi co

lỗi xảy ra.- Cung cấp giao diện làm việc thuân tiện cho người dùng

Câu 4: Multi-tasking là gì? Giải thích sự khác nhau giữa các hình thức Multi-tasking (cooperative and pre-emtive multi-tasking).

Multi-tasking : Thực hiện nhiều nhiệm vụ cùng một lúc, CPU sẽ luân phiên xử lý các tiến trình trong một khoảng thời gian rồi chuyển sang cho tiến trình khác.

Multiprograming: co nhiều hơn một chương trình đang nằm trong bộ nhớ để được lựa chọn chuyển giao cho CPU thực thi.

Multiprocessing: sử dụng nhiều hơn 1 CPU để co thể xử lý song song cùng lúc nhiều tiến trình.

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, no cũng xử lý tuần tự đoạn code cua no, no 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ý cua 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 co 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ẽ co 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.

Page 3: Ly Thuyet HDH

- 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ẽ co 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 co nhiều processor ,mỗi processor co nhiệm vụ thựchiện một ch-ơng trình ,nh-ng mong muôn cua 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ỉ co 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 tạo và đưa vào hệ thông nhiều tiến trình cua một chương trình hoặc cuả nhiều chương trình khác nhau ,cấp phát đầy đu tài nguyên (trừ prcessor ) cho các tiến trình và các tiến trình đều ở trạng thái săn sàng.Tại một thời điểm HĐH chỉ cung cấp processor cho 1tiến trình,sau một thời gian th-c hiện HĐH sẽ thu hồi lại nguyên (trừ prcessor ) cho các tiến trình và các tiến trình đều ở trạng thái săn sàng.Tại một thời điểm HĐH chỉ cung cấp processor cho 1tiến trình,sau một thời gian th-c hiện HĐH sẽ thu hồi lại

- Processor cua tiến trình đo và cấp processor cho một tiến trình khác.Tiến trình đang hoạt động bây giờ sẽ chuyển sang trạng thái(ready or blocked).Nhưng trước khi chuyển trạng thái thì HĐH phải làm các việc sau đây:

- L-u ngữ cảnh cua processor ,bao gồm thanh ghi bộ đếm ch-ơng trình (PC:program count) và các thanh ghi khác . -

- Câp nhât PCB(process control block)cua tiến trình sao cho phù hợp với trạng thái mới cua tiến trình và các thông tin tính toán.

- Di chuyển PCB cua tiến trình đến một hàng đợi thích hợp ,để đáp ứng được các yêu cầu cua công tác điều phôi tiến trình . -

- Chọn một tiến trình khác để cho phép no thực hiện . - Câp nhât PCB cua tiến trình vừa đ-ợc chọn thực hiện ở trên ,chu yếu là thay

đổi trạng thái cua tiến trình đến trạng thái runing . -- Câp nhât các thông tin liên quan đến quan lí bộ nhớ đang được sử dụng .

Khôi phục lại ngữ cảnh cua processor và thay đổi giá trị cua bọ đếm ch-ơng trình và các thanh ghi khác sao cho phù hợp với tiến trình đ-ợc chọn ở trên,để tiến trình này co thể bắtđầu hoạt động.

- CPU thực hiện được đúng các lệnh cua process vì:Khi HĐH chuyển một tiến trình từ trạng thái running sang ready (hoặc block) thì HĐH đã đồng thời lưu giữ các thông tin về process trên các PCB .Mặt khác mỗi một PCB là một kho chứa tất cả mọi thông tin cua một process.Vì vây khi CPU phải thực hiện một process nào no chỉ việc lấy thông tin đã chứa trong các PCB tương ứng ra và thực hiện

Câu 8: Mục đích và nguyên tắc của việc lập lịch cho CPU (Process Scheduling)

Mục đích:

+ Làm cho thời gian thực hiện cua các tiến trình khác nhau tức là trong một khoảng thời gian sẽ co nhiều tiến trình thực hiện.

Page 4: Ly Thuyet HDH

+ 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 hoa thời gian một tiến trình chờ trong hàng đợi.

+ Tôi thiểu hoa 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 đo xác lâp một chính sách phục vụ cho các dòng xếp hàng đo.

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 cua lâp lịch: co 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 cua 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 cua no đã được đẩy vào bộ nhớ trong(tiến trình đã săn sàng nhân giờ phân bổ cua 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 đu 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 noi cách khác trạng thái ready là trạng thái cua 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

P3 3

-Giả định rằng các tiến trình đến theo thứ tự: P1, P2, P3 thì biểu đồ Gantt (Gantt Chart) cua lịch biểu như sau:

Page 5: Ly Thuyet HDH

-Thời gian chờ đợi cua các tiến trình: P1 = 0; P2 = 24; P3 = 27

-Thời gian chờ đợi trung bình: (0 + 24 + 27)/3 = 17

Câu 11: 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 SJF

- 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 đu 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 noi cách khác trạng thái ready là trạng thái cua 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 SJF

- Gắn với mỗi tiến trình là thời gian sử dụng CPU tiếp sau cua no.

- Thời gian này được sử dụng để lâp lịch các tiến trình với thời gian đợi ngắn nhất.

+ Hai phương pháp:

. Không ưu tiên trước (non-preemptive)– một tiến trình nếu sử dụng CPU thì không nhường cho tiến trình khác cho đến khi no kết thúc.

. Co ưu tiên trước – nếu một tiến trình đến co thời gian sử dụng CPU ngắn hơn thời gian còn lại của tiến trình đang thực hiện thì ưu tiên tiến trình mới đến trước. Phương pháp này còn được gọi là Shortest-Remaining-Time-First (SRTF)

- SJF là tôi ưu – cho thời gian chờ đợi trung bình cua các tiến trình là nhỏ nhất

Câu 12: 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 SRF

- 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 đu 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 noi cách khác trạng thái ready là trạng thái cua 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.

Câu 13: 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 RR

Page 6: Ly Thuyet HDH

- 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 đu 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 noi cách khác trạng thái ready là trạng thái cua 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 cua 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 cua ready queue.

- Ready queue được tổ chức dạng FIFO (FCFS)

- Nếu tiến trình co thời gian sử dụng CPU còn lại < q thì tiến trình sẽ giải phong CPU khi kết thúc và không co 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 co 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 no = 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 cua 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 cua tiến trình tại thời điểm đo.

-Tại một thời điểm, một tiến trình co 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ị cua 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ộtsự 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ỉ co một tiến trình co thể nhân trạng thái running trên một bộ xử lý bất kỳ. Trong khi đo, nhiều tiến trình co thể ở trạng thái blocked hay ready.

Sơ đồ cung chuyển đổi trạng thái:

Mới tạo Kết thúc

Ready Running

Blocked

Page 7: Ly Thuyet HDH

Câu 16: Giải thích vai trò của PCB (process control block).

Mỗi quá trình được hiện diện trong hệ điều hành bởi một khôi điều khiển quá

trình (Process Control Block-PCB) – cũng được gọi khôi điều khiển tác vụ. Một PCB

được hiển thị trong hình III-2. No chứa nhiều phần thông tin được gắn liền với một

quá trình xác định, gồm:

- Trạng thái quá trình (process state): trạng thái co thể là mới, sẳn sàng, đang chạy, chờ đợi, kết thúc, …

- Bộ đếm chương trình (program counter): bộ đếm hiển thị địa chỉ cua chỉ thị kế tiếp được thực thi cho quá trình này.

- Các thanh ghi (registers) CPU: các thanh ghi khác nhau về sô lượng và loại, phụ thuộc vào kiến trúc máy tính. Chúng gồm các bộ tổng (accumulators), các thanh ghi chỉ mục, các con trỏ ngăn xếp, và các thanh ghi đa năng (general-purpose registers), cùng với thông tin mã điều kiện (condition-code information). Cùng với bộ đếm chương trình, thông tin trạng thái này phải được lưu khi một ngắt xảy ra, cho phép quá trình được tiếp tục một cách phù hợp sau đo (Hình III.3).

- Thông tin lâp thời biểu CPU (CPU-scheduling information): thông tin gồm độ ưu tiên cua quá trình, các con trỏ chỉ tới các hàng đợi lâp thời biểu, và bất kỳ tham sô lâp thời biểu khác.

- Thông tin quản lý bộ nhớ (Memory-management information): thông tin này co thể gồm những thông tin như giá trị cua các thanh ghi nền và thanh ghi giới hạn, các bảng trang hay các bảng phân đoạn, phụ thuộc hệ thông bộ nhớ được dùng bởi hệ điều hành.

- Thông tin tính toán (accounting information): thông tin này gồm lượng CPU và thời gian thực được dùng, công việc hay sô quá trình,…

- Thông tin trạng thái nhâp/xuất (I/O status information): thông tin này gồm danh sách cua thiết bị nhâp/xuất được cấp phát quá trình này, một danh sách các tâp tin đ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 cua mọi hệ thông máy tính. Một hệ

thông máy tính co thể được chia thành bôn thành phần: phần cứng, hệ điều hành, các

Page 8: Ly Thuyet HDH

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 đo các tài nguyên được sử dụng để giải quyết yêu cầu cua người dùng.

- Người dùng (user): co 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 đo sẽ co 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 co 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( co 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 co một phân vùng tự do , tiến trình đầu tiên trong hàng đợi co kích thước phù hợp sẽ được đặt vào phân vùng

này và cho xử lý. - Nếu kích thước cua tiến trình không vừa đúng bằng kích thước phân vùng chứa no, phần bộ nhớ không sử dụng đến trong phân vùng sẽ bị lãng phí xảy ra hiện tượng phân mảnh nội vi. - Mức độ đa chương cua hệ thông bị giới hạn bởi sô lượng phân vùng.Vấn đề bảo vệ giữa các phân vùng: Để bảo vệ cần tổ chức hai thanh ghi : thanh ghi nền và thanh ghi giới hạn. -Khi tiến trình được tạo lâp, nạp vào thanh ghi nền địa chỉ bắt đầu cua phân vùng được cấp phát cho tiến trìnhvà nạp vào thanh ghi giới hạn kích thước cua tiến trình - Sau đo mỗi đị chỉ bộ nhớ được phát sinh sẽ tự động được cộng với địa chỉ chứa trong thanh ghi nền để cho ra địa chỉ tuyệt đôi trong bộ nhớ và các địa chỉ được đôi chiếu với thanh ghi giới hạn để bảo đảm tiến trình không truy xuất ngoài phạm vi được cấp phát cho no.

Kỹ thuât phân vùng động (Dynamic Partitioning)- Sô lượng các phân vùng trên bộ nhớ và kích thước cua mỗi phân vùng là co thể thay

đổi.- Phần user program trên bộ nhớ không được phân chia trước mà no chỉ được ấn định

sau khi đã co một tiến trình được nạp vào bộ nhớ chính. -Khi co một tiến trình được nạp vào bộ nhớ no được hệ điều hành cấp cho no không gian vừa đu để chứa tiến trình, phần còn lại để săn sàng cấp cho tiến trình khác sau này. - Khi một tiến trình kết thúc no được đưa ra ngoài và phần không gian bộ nhớ mà tiến trình này trả lại cho hệ điều hành sẽ được hệ điều hành cấp cho tiến trình khác, cả khi tiến trình này co kích thước nhỏ hơn kích thước cua không gian nhớ trông đo. - Khi co một tiến trình cần được nạp vào bộ nhớ mà trong bộ nhớ co nhiều hơn một khôi nhớ

Page 9: Ly Thuyet HDH

trông (Free Block) co kích thước lớn hơn kích thước cua tiến trình đo, thì hệ điều hành phải quyết định chọn một khôi nhớ trông phù hợp nào để nạp tiến trình sao cho việc lựa chọn này dẫn đến việc sử dụng bộ nhớ chính là hiệu quả nhất.

Câu 19. Trong kỹ thuật cấp phát bộ nhớ phân vùng động, khi nạp tiến trình mới vào bộ nhớ cần lựa chọn một vùng còn “ rỗng” nào đó. Nêu các phương pháp/thuật toán lựa chọn.

- Co 3 thuât toán mà hệ điều hành sử dụng trong trường hợp này, đo là: Best-fit, First-fit, và Word-fit. Cả 3 thuât toán này đều phải chọn một khôi nhớ trông co kích thước bằng hoặc lớn hơn kích thước cua tiến trình cần nạp vào, nhưng no co các điểm khác nhau cơ bản sau đây

-Best-fit: chọn khôi nhớ co kích thước vừa đúng bằng kích thước cua tiến trình cần được nạp vào bộ nhớ.

- 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 co kích thước đu 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 đu 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ị co độ 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 cua 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 cua một tiến trình co 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 co.

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 co 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>.

Page 10: Ly Thuyet HDH

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 cua 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.

- Khái niệm bộ nhớ ảo: Bộ nhớ ảo là một kỹ thuât cho phép xử lý một tiến trình không được nạp toàn bộ vào bộ nhớ vât lý. Bộ nhớ ảo mô hình hoá bộ nhớ như một bảng lưu trữ rất lớn và đồng nhất, tách biệt hẳn khái niệm không gian địa chỉ và không gian vât lý. Người sử dụng chỉ nhìn thấy và làm việc trong không gian địa chỉ ảo, việc chuyển đổi sang không gian vât lý do hệ điều hành thực hiện với sự trợ giúp cua các cơ chế phần cứng cụ thể.

- Cần kết hợp kỹ thuât swapping đển chuyển các phần cua chương trình vào-ra giữa bộ nhớ chính và bộ nhớ phụ khi cần thiết.

- Nhờ việc tách biệt bộ nhớ ảo và bộ nhớ vât lý, co thể tổ chức một bộ nhớ ảo co kích thước lớn hơn bộ nhớ vât lý.

- Bộ nhớ ảo cho phép giảm nhẹ công việc cua lâp trình viên vì họ không cần bân tâm đến giới hạn cua vùng nhớ vât lý, cũng như không cần tổ chức chương trình theo cấu trúc overlays.

Hình 3.25 Bộ nhớ ảo

Page 11: Ly Thuyet HDH

- Cài đặt bộ nhớ ảo

Bộ nhớ ảo thường được thực hiện với kỹ thuât phân trang theo yêu cầu (demand paging). Cũng co thể sử dụng kỹ thuât phân đoạn theo yêu cầu ( demand segmentation) để cài đặt bộ nhớ ảo, tuy nhiên việc cấp phát và thay thế các phân đoạn phức tạp hơn thao tác trên trang, vì kích thước không bằng nhau cua các đoạn.

Câu 23: Trong kỹ thuật bộ nhớ ảo thường sử dụng Phân trang theo yêu cầu (demand paging). Hãy giới thiệu cơ chế này.

Một hệ thông phân trang theo yêu cầu là hệ thông sử dụng kỹ thuât phân trang kết hợp với kỹ thuât swapping. Một tiến trình được xem như một tâp các trang, thường trú trên bộ nhớ phụ ( thường là đĩa). Khi cần xử lý, tiến trình sẽ được nạp vào bộ nhớ chính. Nhưng thay vì nạp toàn bộ chương trình, chỉ những trang cần thiết trong thời điểm hiện tại mới được nạp vào bộ nhớ. Như vây một trang chỉ được nạp vào bộ nhớ chính khi co yêu cầu.

Với mô hình này, cần cung cấp một cơ chế phần cứng giúp phân biệt các trang đang ở trong bộ nhớ chính và các trang trên đĩa. Co thể sử dụng lại bit valid-invalid nhưng với ngữ nghĩa mới:

valid : trang tương ứng là hợp lệ và đang ở trong bộ nhớ chính .

invalid : hoặc trang bất hợp lệ (không thuộc về không gian địa chỉ cua tiến trình) hoặc trang hợp lệ nhưng đang được lưu trên bộ nhớ phụ.

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ỉ cua 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ớ co hợp lệ hay không. Nếu co ,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 4Nế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 co thời gian tồn tại trong bộ nhớ lâu nhất(FIFO).

- Thay thế trang co lần sử dụng cuôi cùng , cách thời điểm hiện tại lâu nhất (LRU).

Page 12: Ly Thuyet HDH

- Thay thế trang co tần xuất sử dụng thấp nhất (LFU).

- Thay thế trang co 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, khi đo trang đầu danh sách sẽ được chọn để thay thế.

Thuât toán they thế trang FIFO dễ hiểu, dễ cài đặt. Tuy nhiên khi thực hiện không phải lúc nào cũng co kết qua tôt : trang được chọn để thay thế co thể là trang chức nhiều dữ liệu cần thiết, thường xuyên được sử dụng nên được nạp sớm, do vây khi bị chuyển ra bộ nhớ phụ sẽ nhanh chong gây ra lỗi trang.

Sô lượng lỗi trang xảy ra sẽ tăng lên khi sô lượng khung trang sử dụng tăng. Hiện tượng này gọi là nghịch lý Belady.

Câu 27: 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 Tối ưu OPT.

Thay thế trang sẽ lâu được sử dụng nhất trong tương lai.

Thuât toán này bảo đảm sô lượng lỗi trang phát sinh là thấp nhất , no cũng không gánh chịu nghịch lý Belady, tuy nhiên, đây là một thuât toán không khả thi trong thực tế, vì không thể biết trước chuỗi truy xuất cua tiến trình!

Câu 28: 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 LRU.

Với mỗi trang, ghi nhân thời điểm cuôi cùng trang được truy câp, trang được chọn để thay thế sẽ là trang lâu nhất chưa được truy xuất.

Thuât toán FIFO sử dụng thời điểm nạp để chọn trang thay thế, thuât toán tôi ưu lại dùng thời điểm trang sẽ được sử dụng, vì thời điểm này không thể xác định trước nên thuât toán LRU phải dùng thời điểm cuôi cùng trang được truy xuất – dùng quá khứ gần để dự đoán tương lai.

Thuât toán này đòi hỏi phải được cơ chế phần cứng hỗ trợ để xác định một thứ tự cho các trang theo thời điểm truy xuất cuôi cùng. Co thể cài đặt theo một trong hai cách

Câu 29: Phân biệt hai hiện tượng phân mảnh nội (internal fragmentation) và phân mảnh ngoài (external fragmentation), chúng xuất hiện khi nào và tại sao?

Kĩ thuât phân vùng cô định: Co phân mành trong vì một tiến trình được phân phôi kích thước nhỏ hơn so với dung lượng cua no.

Phân vùng động: Không phân mành trong do tiến trình chỉ được phân phôi kích thước bằng dung lượng cua no. Co phân mành ngoài.

Page 13: Ly Thuyet HDH

Phân trang: Phân mành trong khi kích thước tiến trình nhỏ hơn kích thước 1 trang.Không co phân mành ngoài.

Phân đoạn: Phân mành trong khi kích thước trong thay đổi. Co 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 đu lớn (Backing Store) để cung cấp bản sao cua 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 co 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 co 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 (nhom) là “VÀO’, “RA” và/hoặc vừa “VÀO vừa RA”; Dưới goc nhìn người thiết kế Hệ điều hành chúng ta co thể chia thiết bị ngoại vi thành 2 loại. Đo 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 cua “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.

Page 14: Ly Thuyet HDH

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ị trí hiện hành cua đầu đọc nhất. Ví dụ : cần đọc các khôi 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, 65, 67, 37, 14, 98, 122, 124 và 183 như hình sau :

Hình 4.12 Phương pháp SSTF

Với ví dụ này, thuât toán SSTF làm giảm sô khôi mà đầu đọc phải di chuyển là 208 khôi.

Câu 38: Hãy giải thích thuật toán Lập lịch cho đầu từ SCAN là gì, cho ví dụ để mô tả để tính được seek time.

Theo thuât toán này, đầu đọc sẽ di chuyển về một phía cua đĩa và từ đo di chuyển qua phía kia. Ví dụ : cần đọc các khôi 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, 37, 14, 0 , 65, 67, 98, 122, 124 và 183 như hình sau :

Thuât toán này còn được gọi là thuât toán thang máy. Hình ảnh thuât toán giông như hình ảnh cua một người quét tuyết, hay quét lá.

Câu 39: Hãy giải thích thuật toán Lập lịch cho đầu từ C-SCAN là gì, cho ví dụ để mô tả để tính được seek time.

Thuât toán này tương tự như thuât toán SCAN, chỉ khác là khi no di chuyển đến một đầu nào đo cua đĩa, no sẽ lâp tức trở về đầu bắt đầu cua đĩa. Lấy lại ví dụ trên, khi đo thứ tự truy xuất các khôi sẽ là : 53, 65, 67, 98, 122, 124, 183, 199, 0, 14, 37 như hình sau :

Hình 4.13 Phương pháp C-SCAN

Page 15: Ly Thuyet HDH

Câu 40: Hãy giải thích thuật toán Lập lịch cho đầu từ C-LOOK là gì, cho ví dụ để mô tả để tính được seek time.

Tương tự như Look nhưng đầu từ đọc/ghi không phục vụ đường về. Theo ví dụ trên, sơ đồ dịch chuyển đầu từ đọc/ghi theo thuât toán SSTF được thể hiện như sau:

Hình 5.10 - Thuật toán lập lịch C - LOOK

Chú ý: Thuât toán FCFS, SSTF được áp dụng phổ biến, các thuât toán kiểu Scan, Look chỉ được áp dụng cho những đĩa chịu tải lớn.

Câu 48: Tại sao ta co thể noi “Hệ điều hành thực hiện Vào/Ra”. Hãy giải thích cơ chế Chương trình ứng dụng thực hiện I/O như thế nào?

Câu 49: Phân biệt Device, Driver và Device Controller.

14 37 53 65 67 98 122 124 183