Lý thuyết HĐH

Màu nền
Font chữ
Font size
Chiều cao dòng

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?

Để tạo môi trường giao tiếp giữa chương trình của người sử dụng và hệ điều hành, hệ điều hành đưa ra các lời gọi hệ thống. Chương trình của người sử dụng dùng các lời gọi hệ thống để liên lạc với hệ điều hành và yêu cầu các dịch vụ từ hệ điều hành.

Mỗi lời gọi hệ thống tương ứng với một thủ tục trong thư viện của hệ điều hành, do đó chương trình của người sử dụng có thể gọi thủ tục để thực hiện một lời gọi hệ thống. Lời gọi hệ thống còn được thiết dưới dạng các câu lệnh trong các ngôn ngữ lập trình cấp thấp. Lệnh gọi ngắt trong hợp ngữ (Int), và thủ tục gọi hàm API trong windows được xem là một lời gọi hệ thống.

Lời gọi hệ thống có thể được chia thành các loại: quản lý tiến trình, thao tác trên tập tin, thao tác trên thiết bị vào/ ra, thông tin liên tiến trình, ...

Sau đây là một số lời gọi hệ thống của hệ điều hành MS_DOS:

1          S = Load_and_exec(processname): tạo tiến trình con và thực hiện nó.

2          Fd = Open(filename, mode): mở file để đọc hoặc/và ghi.

3          N = Write(Fd, buffer, nbyte): ghi dữ liệu từ đệm vào file.

4          Addr = alloc_memory(nbyte): cấp phát một khối nhớ

5          Keep_pro(mem_size, status): kết thúc và thường trú chương trình.

Chú ý: Cần phải phân biệt sự khác nhau giữa Shell và System Call. Shell tạo môi trường giao tiếp giữa người sử dụng và hệ điều hành, System Call tạo môi trường giao tiếp giữa chương trình người sử dụng và hệ điều hành.   

TL:

Cuộc gọi hệ thống 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ữ hướng dẫn lắp ráp.

Ngôn ngữ định nghĩa để thay thế ngôn ngữ lắp ráp cho các hệ thống lập trình cho phéphệ thống các cuộc gọi được thực hiện trực tiếp (ví dụ, C. Bliss, PL/360)

Ba phương pháp thông thường được sử dụng để vượt qua các thông số giữa mộtchương trình đang chạy và hệ thống điều hành.

Pass thông số trong sổ đăng ký.

Lưu trữ các thông số trong một bảng trong bộ nhớ, và các bảng địa chỉ được thông quanhư một tham số trong sổ đăng ký.

Đẩy (cửa hàng) các thông số vào stack bằng chương trình, và bật ra khỏi ngăn xếp bởi hệ điều hành.

Mỗi hệ điều hành có của nó thiết lập của riêng các cuộc gọi hệ thống là hệ điều hành củaAPI

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ì ?

TL:

- Hệ điều hành là tập hợp các chương trình phần mềm chạy trên máy tính, dùng để điều hành, quản lý các thiết bị phần cứng, các tài nguyên, phần mềm trên máy tính. Hệ điều hành đóng vai trò trung gian trong việc giao tiếp giữa người sử dụng và phần cứng, phần mềm máy tính, cung cấp một môi trường cho phép người sử dụng phát triển và thực hiện các ứng dụng của họ một cách dễ dàng.

- Chức năng của HĐH

+ Tổ chức giao tiếp giữa người sd và hệ thống

+ Cung cấp tài nguyên(bộ nhớ, các thiết bị ngoại vi…) cho các chương trình và tổ chức thực hiện các chương trình đó.

+ Tổ chức lưu trữ thông tin trên bộ nhớ ngoài, cung cấp các công cụ tìm kiếm và truy cập thông tin.

+ Hỗ trợ phần mềm cho các thiết bị ngoại vi.

+ cung cấp các dịch vụ tiện ích.

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

TL: Multi-tasking (Đa tác vụ): Mỗi người sd có thể chạy nhiều chương trình tại cùng một thời điểm. Mỗi tác vụ là một tiến trình.Theo cách này người sd không cần phải đợi chờ một tiến trình kết thúc để khởi động một tiến trình khá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).

TL:

- Giống nhau: cả 3 đều là dơ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 thanh ghi và một vùng nhớ stạk riêng và cũng chia sẻ thời gian xử lý của tiến trình.

- Khác nhau:

+ Tiến trình: là 1 chương trình đang xử lý, sở hữ 1 tập các con trỏ lệnh, tập các thanh ghi, các biến và một tập các tài nguyên cần cho hoạt động của tiến trình.

+ Chương trình: là một thực thể thụ động chứa các chỉ thị diều khiển máy tính để tiến hành một hoạt động nào đó, khi thực hiện tác vụ này thì chương trình chuyển thành tiến trình.

+ Luồng: là tiến trình nhẹ, một đơn vị cơ bản sd cpu, cũng có thông tin về trạng thái giống với tiến trình và là một đơn vị nhỏ hơn của tiến trìh

            Có thể có nhiều luồn cùng chia sẻ 1 tiến trìn, hoạt động của luồng cũng giống hoạt động của tiến trình nhưng các luồng cùng chia sẽ các tài nguyên với các luồng khác, cùg chung 1 mã chương trình, còn tiến trình thì hoàn toàn độc lập.

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:

+ Số lượng người sd, số lượng tiến trình luôn lớn hơn số lượng CPU của máy tính rất nhiều

+Tại một thời điểm, chỉ có duy nhất một tiến trình được thực hiện trên một CPU

+  Nhu cầu sử dụng nhiều hơn tài nguyên (CPU) đang có

􀁺Do đó cần lập lịch để tối ưu hoá thời gian hữu dụng của CPU để phục vụ các ứng dụng

- 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 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: tổ chức một hàng đợi 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ác tiến trình sao cho hiệu quả 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 dài kỳ: á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

- Ngay 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 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 đàn chờ cấp phát tiến trình để bắt đầu thực hiện.

- Đánh giá thuật toán FCFS: Thuật toán này là mọi tiến trình đều được phục vụ theo trình tự xuất hiện cho đến khi kết thúc hoặc bị ngắt.

+ Ưu điểm: là giờ CPU không bị phân phối lại (không bị ngắt) và chi phí tổ chức thực hiện thấp nhất (vì không thay đổi thứ tự ưu tiên phục vụ, thứ tự ưu tiên là thứ tự của tiến trình tròng hàng đợi).

+ Nhược điểm: Thời gian trung bình chờ phục vụ  của các tiến trình là như nhau (không kể ngắn hay dài), do đó dẫn tới: thời gian chờ trung bình sẽ tăng vô hạn kho hệ thống tiếp cận tới hạn khả năng phục vụ của mình, Nếu đọ phát tán thời gian thực hiện tiến trình tăng thì thời gian chờ đợi trùng bình cũng tăng theo, Khi có tiến trình dài, ít bị ngắt thì tiến trình khác phải chờ đợi lâu hơn.

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

- Ngay 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 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 đàn chờ cấp phát tiến trình để bắt đầu thực hiện.

- Đánh giá thuật toán SJF: thứ tự ưu tiên thực hiện tiến trình dựa vào tổng thời gia thực hiện tiến trình. Tiến trình nào có tổng thời gan thực hiện ngắn nhất sẽ được ưu tiên phục vụ trước

+ ưu điểm: thời gian chờ trung bình của các tiến trình ngắn hơn so với FCFS, SJF nhanh chóng loại bỏ các tiến trình ngắn, giảm số lượng các tiến trình trong hàng đợi.

+ Nhược điểm: Chế độ phân phối lại giờ CPU cũng được áp dụng trong trường hợp ngắt các tiến trình dài đang thực hiện đê phục vụ các tiến trình ngăn hơn mới xuất hiện trong hàng đợi.

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

- Ngay 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 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 đàn chờ cấp phát tiến trình để bắt đầu thực hiện.

- Đánh giá thuật toán SRF:

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

- Ngay 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 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 đàn chờ cấp phát tiến trình để bắt đầu thực hiện.

- Đánh giá thuật toán RR: thuật toán này hệ thống quy định một lượng thời gian (time quantum) khoảng từ 10-100 ms.

- ưư điểm của phương pháp phục vụ đồng mức theo lớp sẽ cho phứp hệ thống ưu tiên những tiến trình ngắn (vì nó kết thúc sớm) nhưng không gây tổn hại lớn cho các tiến trình dài.

- Nhược điểm: do phải thường xuyên phân phối lại giơg CPU nên thời gian chờ trung bình của round robin có thể lớn hơ FCFS.

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.

- Tại một thời điểm xác định chỉ có duy nhất một tiến trình ở trạng thái Runnig

·        Trạng thái Ready (sẵn sàng): Ngay sau khi khởi tạo 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 processor để bắt đầu thực hiện.

·        Trạng thái Running(thực hiện): Là trạng thái mà tiến trình đang được sở hữu processor để hoạt động, hay nói cách khác là các chỉ thị của tiến trình đang được thực hiện/ xử lý bởi processor.

·        Trạng thái Blocked(khoá): Là trạng thái mà tiến trình đang chờ để được cấp phát thêm tài nguyên, để một sự kiện nào đó xảy ra, hay một quá trình vào/ra kết thúc.

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

Khối kiểm soát tiến trình (Process Control Block - PCB ) - Bảng thông tin về môi trường và trạng thái hoạt động của tiến trình:

Chứa các thông tin ứng với mỗi process. Process ID, parent process ID

• Credentials (user ID, group ID, effective ID,...)

• Trạng thái process : new, ready, running, waiting…

• Program counter: địa chỉ của lệnh kế tiếp sẽ thực thi

• Các thanh ghi CPU

• Thông tin dùng để định thời CPU: priority,...

• Thông tin bộ nhớ: base/limit register, page tables…

• Thông tin thống kê: CPU time, time limits…

• Thông tin trạng thái I/O: danh sách thiết bị I/O được cấp phát, danh sách các file đang mở,... 

• Con trỏ (pointer) đến PCBs khác. 

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.

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

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

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

o 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ớ)

1. Kỹ thuật phân vùng cố định (Fixed Partitioning)

- Bộ nhớ được chia thành n phần, kích thước các phần không nhất thiết phải bằng nhau, mỗi phần sử dụng một bộ nhớ độc lập. Mỗi phần có thể nạp một chương trình và tổ chức thực hiện đồng thời. Vì mỗi phần được coi là một bộ nhớ độc lập, nên các chương trình sẽ có một danh sách quản lý không gian nhớ tự do riêng. Chương trình được nạp vào phần nào thì sẽ ở đó cho đến khi kết thúc.

- Ưu điểm: Đơn giản, dễ tổ chức, giảm thời gian tìm kiếm

- Nhược điểm: Lãng phí bộ nhớ và xảy ra hiện tượng phân mảnh nội vi

2. Kỹ thuật phân vùng động (Dynamic Partitioning)

- Bộ nhớ có một bảng quản lý không gian nhớ tự do thống nhất. Khi thực hiện chương trình, hệ thống dựa vào kích thước chương trình để phân bổ không gian nhớ thích hợp tạo thành một vùng nhớ độc lập và tạo bảng quản lý riêng. Khi các chương trình kết thúc, bộ nhớ dành cho chương trình sẽ bị thu hồi.

               - Ưu điểm: Tận dụng được không gian nhớ tự do.

               - Nhược điểm: Không gây ra hiện tượng phân mảnh nội vi nhưng lại xuất hiện phân mảnh ngoại vi.

3. Kỹ thuật phân trang

- Phân bộ nhớ vật lý thành các khối (Block) có kích thước cố định và bằng nhau, gọi là khung trang. Không gian địa chỉ cũng được chia thành các khối có cùng kích thước với khung trang và được gọi là trang. Khi cần nạp một tiến trình dể xử lý các trang của tiến trình sẽ được nạp vào những khung trang còn trống. Một tiến trình có kích thước N trang sẽ yêu cầu N khung trang tự do

- Cơ chế MMU (Memory Management Unit) là cơ chế phần cứng hỗ trợ thực hiện chuyển đổi địa chỉ  trong cơ chế phân trang gọi là bảng trang. Mỗi phần tử trong bảng trang cho biết địa chỉ bắt đầu của vị trí lưu trữ trang tương ứng trong bộ nhớ vât lý

- Mỗi địa chỉ phát sinh bởi CPU được chia làm 2 phần:

               + Số hiệu trang (p)

               + Địa chỉ tương ứng trong trang (d)

               + Địa chỉ vật lý của trang = d + địa chỉ bắt đầu của trang

4. Kỹ thuật phân trang đơn (Simple Paging)

Phân bộ nhớ vật lý thành các khối (block) có kích thước cố định và bằng nhau, gọi là khung trang (page frame). Không gian địa chỉ cũng được chia thành các khối có cùng kích thước với khung trang, và được gọi là trang (page). Khi cần nạp một tiến trình để xử lý, các trang của tiến trình sẽ được nạp vào những khung trang còn trống. Một tiến trình kích thước N trang sẽ yêu cầu N khung trang tự do.

*Cơ chế MMU trong kỹ thuật phân trang:

Cơ chế phần cứng hỗ trợ thực hiện chuyển đổi địa chỉ trong cơ chế phân trang là bảng trang (pages table). Mỗi phần tử trong bảng trang cho biết các địa chỉ bắt đầu của vị trí lưu trữ trang tương ứng trong bộ nhớ vật lý ( số hiệu khung trang trong bộ nhớ vật lý đang chứa trang).

+Bảo vệ

Cơ chế bảo vệ trong hệ thống phân trang được thực hiện với các bit bảo vệ được gắn với mỗi khung trang. Thông thường , các bit nàyđược lưu trong bảng trang , vì mỗi truy xuất đến bộ nhớ đều phải tham khảo đến bảng trang để phát sinh địa chỉ vật lý. Khi đó, hệ thống có thể kiểm tra các thao tác truy xuất trên khung trang tương ứng có hợp lệ với thuộc tính bảo vệ của nó không.

Ngoài ra, một bit phụ trội được thêm vào trong cấu trúc một phần tử của bảng trang : bit hợp lệ-bất hợp lệ (valid-invalid).

- Hợp lệ : trang tương ứng thuộc về không gian địa chỉ của tiến trình.

- Bất hợp lệ : trang tương ứng không nằm trong không gian địa chỉ của tiến trình, điều +-00000này có nghĩa tiến trình đã truy xuấtđến một địa chỉ không được phép.

*Chia sẻ bộ nhớ trong cơ chế phân trang

Một ưu điểm của cơ chế phân trang là cho phép chia sẻ các trang giữa các tiến trình.Trong trường hợp này, sự chia sẻ được thực hiện bằng cách ánh xạ nhiều địa chỉ logic vào một địa chỉ vật lý duy nhất. Có thể áp dụng kỹ thuật này để cho phép có tiến trình chia sẻ một vùng code chung: nếu có nhiều tiến trình của cùng một chương trình, chỉ cần lưu trữ một đoạn code của chương trình này trong bộ nhớ, các tiến trình sẽ có thể cùng truy xuất đến các trang chứa code chung này. Lưu ý để có thể chia sẻ một đoạn code, đoạn code này phải có thuộc tính reenterable (cho phép một bản sao của chương trình được sử dụng đồng thời bởi nhiều tác vụ).

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

Khi có một tiến trình cần được nạp vào bộ nhớ mà trong bộ nhớ có nhiều hơn một khối nhớ trống (Free Block) có kích thước lớn hơn kích thước của tiến trình đó, 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ó 3 thuật toán mà hệ điều hành sử dụng trong trường hợp này, đó là: Best-fit, First-fit, và worst-fit. Cả 3 thuật toán này đều phải chọn một khối nhớ trống có kích thước bằng hoặc lớn hơn kích thước của tiến trình cần nạp vào, nhưng nó có các điểm khác nhau cơ bản sau đây:

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

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

3        Worst-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 21  Giải thích cơ chế phân đoạn (segmentation) trong quản lý bộ nhớ của hệ điều hành.

- Cơ chế MMU (Memory Management Unit) là cơ chế phần cứng hỗ trợ thực hiện chuyển đổi địa chỉ  trong cơ chế phân trang gọi là bảng trang. Mỗi phần tử trong bảng trang cho biết địa chỉ bắt đầu của vị trí lưu trữ trang tương ứng trong bộ nhớ vât lý

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.

Kỹthuậtmáyảo

- Định nghĩa: 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 hóa bộ nhớ như một bảng luu 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 khong gian đia chỉ ảo, việc chuyển đổi sang không gian vật lý do HĐH thực hiện với sự trợ giúp các cơ chế phần cứng cụ thê

- Máy ảo là sự phát triển lô-gic của kiến trúc phân lớp.

- Bằng cách Điều phối CPU và kỹ thuật Bộ nhớ ảo, có thể tạo cho người dùng ảo giác rằng người đó đang dùng bộ xử lý và bộ nhớ của riêng mình.

- Nói cách khác: Máy tính ảo của người dùng được giả lập trên nền máy tính vật lý.

- Ví dụ: Trên nền CPU loại PowerPC, Motorola, Alpha,... có thể giả lập máy tính ảo Intel chạy HĐH Windows và ngược lại. Khi đó, các lệnh của Intel được chuyển đổi sang lệnh vật lý trước khi thực hiện.

- HĐH máy ảo thương mại đầu tiên: VM/370 của IBM.

Ưuđiểm:

- Tính bảo mật cao do các máy ảo độc lập với nhau. Các tài nguyên của máy vật lý được bảo vệ hoàn toàn vì các máy ảo có Thiết bị ảo (Một ổ đĩa ảo, thậm chí toàn bộ máy ảo thực tế chỉ là một tập tin của máy vật lý). Có thể lấy từ Internet về một chương trình lạ và thử vận hành trên máy ảo mà không sợ bị ảnh hưởng (ví dụ do virus) vì nếu có sao cũng chỉ hỏng máy ảo.

- Dễ phát triển hệ thống (System Development) mà không sợ làm ảnh hưởng đến công việc toàn hệ máy đang vận hành. HĐH là chương trình phức tạp, cần liên tục thử nghiệm, tinh chỉnh, hoàn thiện và nâng cấp. Có thể tiến hành Phát triển hệ thống trên một máy ảo thay vì làm trên máy thực. 

Nhượcđiểm:

- Vấn đề lưu trữ vật lý. Thông thường, mỗi máy ảo chỉ dùng một tập tin để lưu tất cả những gì diễn ra trong máy ảo. Do đó nếu bị mất tập tin này xem như mất tất cả.

- Nếu máy tính có cấu hình phần cứng thấp nhưng cài quá nhiều chương trình máy ảo, máy sẽ chậm và ảnh hưởng đến các chương trình khác.

- Do tập trung vào một máy tính, nếu máy bị hư thì toàn bộ các máy tính ảo đã thiết lập trên nó cũng bị ảnh hưởng theo.

- Ở góc dộ bảo mật, nếu hacker nắm quyền điều khiển máy tính chứa các máy ảo thì hacker có thể kiểm soát được tất cả các máy ảo trong 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.

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 có 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 của các đoạn.

Phân trang theo yêu cầu ( demand paging)

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 có 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. Có 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ỉ của 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ỉ 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 giả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 đến một page được đánh dấu là bất hợp lệ thì sẽ phát sinh một lỗi trang. Như vậy lỗi trang là hiện tượng hệ thông cần truy xuất đến một page của tiến trình mà trang này chưa được nạp vào bộ nhớ, hay không thuộc không gian địa chỉ của tiến trình. Ở đây ta chỉ xét lỗi trang của trường hợp: Page cần truy xuất chưa được nạp vào bộ nhớ chính.

Khi nhận được tín hiệu lỗi trang, hệ điều hành phải tạm dừng tiến trình hiện tại để tiến hành việc xử lý lỗi trang. Khi xử lý lỗi trang hệ điều hành có thể gặp một trong hai tình huống sau:

1        Hệ thống còn frame trống : Hệ điều hành sẽ thực hiện các bước sau:

1.  Tìm vị trí của page cần truy xuất trên đĩa.

2.  Nạp page vừa tìm thấy vào bộ nhớ chính.

3.  Cập nhật lại bảng trang (PCT) tiến trình.

4.  Tái kích hoạt tiến trình để tiến trình tiếp tục hoạt động.

2        Hệ thống không còn frame trống :

1.      Tìm vị trí của page cần truy xuất trên đĩa.

2.      Tìm một page không hoạt động hoặc không thực sự cần thiết tại thời điểm hiện tại để swap out nó ra đĩa, lấy frame trống đó để nạp page mà hệ thống vừa cần truy xuất. Page bị swap out sẽ được hệ điều hành swap in trở lại bộ nhớ tại một thời điểm thích hợp sau này.

3.      Cập nhật PCT của tiến trình có page vừa bị swap out.

4.      Nạp trang vừa tìm thấy ở trên (bước 1) vào frame trống ở trên (bước 2).

5.      Cập nhật lại bảng trang (PCT) của tiến trình.

6.      Tái kích hoạt tiến trình để tiến trình tiếp tục hoạt động.

Xử lý lỗi trang là một trong những nhiệm vụ quan trọng và phức tạp của hệ thống và hệ điều hành. Để xử lý lỗi trang hệ thống phải tạm dừng các thao tác hiện tại, trong trường hợp này hệ thống phải lưu lại các thông tin cần thiết như: con trỏ lệnh, nội dung của các thanh ghi, các không gian địa chỉ bộ nhớ, …, các thông tin này là cơ sở để hệ thống tái kích hoạt tiến trình bị tạm dừng trước đó khi nó đã hoàn thành việc xử lý lỗi trang.

Ø  Khi xử  lý lỗi  trang, trong trường hợp hệ thống không còn frame trống hệ điều hành phải chú ý đến các vấn đề sau:

3        Nên chọn page nào trong số các page trên bộ nhớ chính để swap out: 

4        “Neo” một số page

5        Phải tránh được trường hợp hệ thống xảy ra hiện tượng “trì trệ hệ thống”

6        Đánh dấu các trang bị thay đổi

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.

- Trong trường hợp này hệ điều hành đã đưa vào  sử dụng các thuật toán thay trang cụ thể như: Optinal, LRU, FIFO.

            Các thuật toán thay trang khác nhau có các tiêu chí để chọn trang swap out khác nhau, nhưng tất cả đều hướng tới mục tiêu là: đơn giản và ít xảy ra lỗi trang nhất. Nó không quan tâm đến việc page được chọn để swap out là trang của tiến trình gây ra lỗi trang hay trang của một tiến trình nào đó trong hệ thống. Các thuật toán thay trang không xem xét đến các trang bị đánh dấu “neo”.

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àyvà giải thích bằng ví dụ thuật toán FIFO

- Thuật toán FIFO là thuật toán đơn giản và dễ cài đặt nhất. Với thuật toán này thì trang mà hệ điều hành chọn để swap out là trang được đưa vào bộ nhớ sớm nhất, hay ở trong bộ nhớ lâu nhất

VD:

2

3

2

1

5

2

4

5

3

2

5

2

Frame 1

2

2

2

2

5

5

5

5

3

3

3

3

Frame 2

3

3

3

3

2

2

2

2

2

5

5

Frame 3

1

1

1

4

4

4

4

4

2

F

F

F

F

F

F

Theo bảng trên thì trong trường hợp này đã xảy ra 6 lỗi trang, khi hệ điều hành cần nạp trang 5 vào bộ nhớ thì nó phải đưa trang 2 ra ngoài để lấy frame1 nạp trang 5, khi hệ điều hành cần nạp lại trang 2 vào bộ nhớ thì nó phải đưa trang 3 ra ngoài để lấy frame2 nạp trang 2, khi hệ điều hành cần nạp trang 4 vào bộ nhớ thì nó phải đưa trang 1 ra ngoài để lấy frame3 nạp trang 4, …

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àyvà giải thích bằng ví dụ thuật toán Tối ưu LRU.

- Theo thuật toán này thì trang được hệ điều hành chọn để thay thế là trang có khoảng thời gian từ lúc nó được truy xuất gần đây nhất đến thời điểm hiện tại là dài nhất, so với các trang đang ở trên bộ nhớ chính. Như vậy trong trường hợp này hệ điều hành phải ghi nhận thời điểm cuối cùng trang được truy xuất. Bảng sau đây minh hoạ cho việc chọn trang để swap out và thay thế của thuật toán LRU:

2

3

2

1

5

2

4

5

3

2

5

2

Frame 1

2

2

2

2

2

2

2

2

3

3

3

3

Frame 2

3

3

3

5

5

5

5

5

5

5

5

Frame 3

1

1

1

4

4

4

2

2

2

F

F

F

F

            Theo bảng trên thì trong trường hợp này xảy ra 4 lỗi trang, khi hệ điều hành cần nạp trang 5 vào bộ nhớ thì nó phải đưa trang 3 ra ngoài để lấy frame2 nạp trang 5, vì hệ điều hành thấy rằng trang 3, chứ không phải là trang 2, là trang vừa được truy xuất cách đây lâu nhất.

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àyvà giải thích bằng ví dụ thuật toán Tối ưu OPT.

- Theo thuật toán này thì trang được hệ điều hành chọn để thay thế là trang sẽ lâu được sử dụng nhất trong tương lai. Bảng sau đây minh hoạ cho việc chọn trang để swap out và thay thế của thuật toán Optinal:

2

3

2

1

5

2

4

5

3

2

5

2

Frame 1

2

2

2

2

2

2

4

4

4

2

2

2

Frame 2

3

3

3

3

3

3

3

3

3

3

3

Frame 3

1

1

5

5

5

5

5

5

5

5

F

F

F

            Theo bảng trên thì trong trường hợp này chỉ xảy ra 3 lỗi trang, khi hệ điều hành cần nạp trang 5 vào bộ nhớ thì nó phải đưa trang 1 ra ngoài để lấy frame3 nạp trang 5, vì hệ điều hành cho rằng trang 1 là trang sẽ lâu được s ử dụng trong t ương lai.

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?

- Phân biệt:

+ Phân mảnh nội: Kích thước vùng nhớ được cấp phát có thể hơi lớn hơn vùng nhớ yêu cầu. Ví dụ: cấp một khoảng trống 18,464 bytes cho một process yêu cầu 18,462 1001-bytes

Hiện tượng phân mảnh nội thường xảy ra khi bộ nhớ thực (physical memory) được chia thành các khối kích thước cố định(fixed-sized block) và các process được cấp phát theo đơn vị khối

+  Phân mảnh ngoại (external fragmentation)

Kích thước không gian bộ nhớ còn trống đủ để thỏa mãn một yêu cầu cấp phát, tuy nhiên không gian nhớ này không liên tục.

- phân trang đơn có thể xảy ra phân mảnh nội vi trong phạm vi các frame. Không xảy ra phân mảnh ngoại vi. Vì khi kích thước của tiến trình không phải là bội số của kích thước một khung trang thì sẽ  xảy ra hiện tượng phân mảnh nội vi ở khung trang chứa trang cuối cùng của tiến trình

- Phân đoạn: Không xảy ra phân mảnh nội vi, nhưng phân mảnh ngoại vi là có thể.

- Bộ nhớ ảo (page + Swap) có thể xảy ra phân mảnh nội vi trong phạm vi các frame. Không xảy ra phân mảnh ngoại vi.

-Bộ nhớ ảo (Segment + Swap)  Không xảy ra phân mảnh nội vi, nhưng phân mảnh ngoại vi là có thể.

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.

Một quá trình có thể được hoán đổi tạm thời ra khỏi bộ nhớ đến một cửa hàng sao lưu,và sau đó đưa trở lại vào bộ nhớ để thực hiện tiếp tục.

Sao lưu cửa hàng nhanh đĩa đủ lớn để chứa bản sao của tất cả các hình ảnh bộ nhớ chotất cả người dùng phải cung cấp truy cập trực tiếp những hình ảnh bộ nhớ.

Tung ra, cuộn biến thể trao đổi sử dụng cho các thuật toán lập lịch trình ưu tiên, ưu tiênthấp hơn quá trình trao đổi để quá trình có ưu tiên cao hơn có thể được nạp và thực thi.

Phần lớn thời gian trao đổi thời gian chuyển giao, thời gian chuyển giao tổng số tỷ lệ thuận với số lượng bộ nhớ trao đổi.

Phiên bản thay đổi của trao đổi tìm thấy trên nhiều hệ thống, tức là, UNIX và Microsoft Windows

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?

TL:

- Vì Đa số các loại thiết bị, đặc biệt là các thiết bị dạng khối, hỗ trợ cơ chế DMA (direct memory access). Để hiểu về cơ chế này, trước hết phải xem xét quá trình đọc đĩa mà không có DMA.DMA sẽ sử dụng thêm 1 thiết bị phụ trợ điều khiển việc truy nhập dữ liệu DMAC (Direct Memory Access Controller). Sử dụng DMA trong những TH trao đổi thông tin . Cơ chế DMA giúp cho CPU không bị lãng phí thời gian. Khi sử dụng, CPU gửi cho bộ điều khiển một số các thông số như địa chỉ trên đĩa của khối, địa chỉ trong bộ nhớ nơi định vị khối, số lượng byte dữ liệu để chuyển. Sau khi bộ điều khiển đã đọc toàn bộ dữ liệu từ thiết bị vào buffer của nó và kiểm tra checksum. Bộ điều khiển chuyển byte đầu tiên vào bộ nhớ chính tại địa chỉ được mô tả bởi địa chỉ bộ nhớ DMA. Sau đó nó tăng địa chỉ DMA và giảm số bytes phải chuyển. Quá trình này lập cho tới khi số bytes phải chuyển bằng 0, và bộ điều khiển tạo một ngắt. Như vậy không cần phải copy khối vào trong bộ nhớ, nó đã hiện hữu trong bộ nhớ

-   DMA  có lợi điểm với input thông qua bàn phím .Vì DMA không sử dụng thiết bị ngoại vi trong  TH truy xuât chậm.

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ácthiế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ÀOvừaRA”; 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ọaivi thuộc từng loại trên.

Tl

   - Hệ điêu hành chia thiết bị ngoại vi làm 2 loại: Thiết bị tuần tự và thiết bị khối .

+ Thiết  bị khối(- Thiết bị tương tác trong hệ thống máy tính): là các thiết bị giao tiếp với nhau. Ví dụ : đĩa, băng từ, card giao tiếp...

+ Thiết bị tuần tự(Thiết bị tương tác được với con người : dùng để giao tiếp giữa người và máy. Ví dụ : màn hình, bàn phím, chuột, máy in ...)

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

Tl:

-         “Polled I/O”:Cpu định thăm dò các cổng gắn thiết bị xem có trao đổi dữ liệu hay không.

-         “interrupt-driven I/O”: Mỗi thiết bị có một đường tín hiệu đặc biệt báo cho Cpu khi cần trao đổi dữ liệu.

Câu 35: 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.Thuật toán sẽ duyệt lần lượt theo các khối nhớ bắt đầu từ điểm khởi tạo như hình vẽ.

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

- Yêu cầu có seek time nhỏ nhất tính từ vị trí hiện tại của đầu đọc

􀁺Lập lịch SSTF là một dạng của lập lịch SJF có thể gây ra một số yêu cầu không bao giờ

được phục vụ (starvation)

􀁺Ví dụ minh họa: Tổng số bước di chuyển của đầu đọc là 236 cylinder.

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

􀁺Đầu đọc của đĩa di chuyển từ một phía (ví dụ bên ngoài hoặc bên trong đĩa) sang phía kia

để phục vụ các yêu cầu đọc, sau đó di chuyển ngược lại... quá trình này lặp đi lặp lại

􀁺Phương thức hoạt động tương tự thang máy nên thuật toán này còn được gọi là thuật toán thang máy (elevator algorithm)

􀁺Ví dụ minh họa: Đầu đọc phải dịch chuyển 208 cylinder.

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

- Đầu đọc chuyển từ một phía (trong/ngoài) sang phía kia và phục vụ các yêu cầu. Khi

sang đến phía kia, đầu đọc quay trở lại nhưng trong khi quay trở lại không phục vụ yêu cầu nào.

􀁺C-SCAN xem các cylinders như một danh sách vòng

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

􀁺Là một trường hợp của C-SCAN

􀁺C-SCAN: Đầu đọc chuyển giữa cylinder 0 và n (cynlinder cuối)

􀁺C-LOOK: Đầu đọc chuyển giữa cmin cmax trong đó cmin là cynlinder có số thứ tự nhỏ

nhất trong số các yêu cầu; cmax là cynlinder có số thứ tự nhỏ nhất trong số các yêu cầu

􀁺C-LOOK giảm quãng đường di chuyển của đầu đọc so với C-SCAN

Câu 43: Nguyên tắc/ phương thức chung để nâng cao hiệu năng của hệ thống.

Câu 48: Tại sao ta có thể nói “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?

Vì đó là một trong các chức năng chính của hệ điều hành. Hệ điều hành là quản lý tất cả những thiết bị nhập/xuất của máy tính. Hệ điều hành phải ra các chỉ thị điều khiển thiết bị, kiểm soát các ngắt và lỗi. Hệ điều hành phải cung cấp một cách giao tiếp đơn giản và tiện dụng giữa các thiết bị và phần còn lại của hệ thống và giao tiếp này phải độc lập với thiết bị.

Cơ chế Chương trình ứng dụng thực hiện I/O: Trong một chương trình ứng dụng, người dùng muốn đọc một khối từ một tập tin, hệ điều hành được kích hoạt để thực hiện yêu cầu này. Phần mềm độc lập thiết bị tìm kiếm trong cache, nếu khối cần đọc không có sẵn, nó sẽ gọi chương trình điều khiển thiết bị gửi yêu cầu đến phần cứng. Tiến trình bị ngưng lại cho đến khi thao tác đĩa hoàn tất. Khi thao tác này hoàn tất, phần cứng phát sinh một ngắt. Bộ phận kiểm soát ngắt kiểm tra biến cố này, ghi nhận trạng thái của thiết bị và đánh thức tiến trình bị ngưng để chấm dứt yêu cầu I/O và cho tiến trình của người sử dụng tiếp tục thực hiện.

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

Divice controler : Điều khiển công việc phần cơ của thiết bị , thuộc về phần cứng . Làm việc đồng thời song song và độc lập với CPU

- Phải nói về Device Controller như một mạch điện tử (phần cứng)

Divice driver : hổ trợ tương tác người dùng với thiết bị , thuộc về phần mềm .

+ Driver là các đoạn mã lệnh mà qua đó máy tính "hiểu" được mà điều khiển thiết bị đó nhằm phục vụ cho mục đích của mình.

Mỗi thiết bị có một Driver riêng biệt, thông qua driver người dùng có thể thao tác và cấu hình các thiết bị đó theo từng mục đích cá nhân riêng.

trình điều khiển thiết bị là phần mềm máy tính được viết riêng cho một thiết bị phần cứng cụ thể và một hệ điều hành cụ thể cho phép một chuơng trình, thường là hệ điều hành hoặc ứng dụng phần mềm, tương tác trong suốt với thiết bị đó. Trình điều khiển thiết bị cung cấp việc xử lý các ngắt cần thiết mà các giao tiếp phần cứng phụ thuộc thời gian bất đối xứng đòi hỏi.

Driver

Driver là chương trình điều khiển device. Khi hệ điều hành muốn tương tác với device nó phải thông qua driver. Các driver phổ biến thường được cài đặt sẵn trong nhân Linux, hoặc có thể được cài đặt như một module tách rời của nhân.

+Device

Phân loại device: block, character, virtual

Các device được phân chia thành 2 loại tùy thuộc vào cách thức đọc/ghi dữ liệu trên nó:

·    Block device như: HDD, CDROM, floppy disk, USB stick … tức là các thiết bị dung để lưu trữ dữ liệu lâu dài (thường được gọi là storage device). Dữ liệu trên các device này mỗi lần được đọc ghi theo từng block (khối) byte chẳng hạn 512 byte đối với FDD/HDD, chứ không phải theo từng bit một. Các khối dữ liệu trên các device này được đánh địa chỉ và có thể truy cập đến một địa chỉ bất kì.

·    Character device như: mouse, modem, printer, … Dữ liệu trên các device này được đọc/ghi theo từng bit một (chứ không phải từng khối byte). Các device này, chả hạn như mouse làm nhiệm vụ chuyển thao tác di chuột thành dữ liệu về vị trí của con trỏ trên màn hình, luôn có dư liệu thay đổi liên tục theo thời gian và không được lưu trữ để sau này dùng lại.

Ngoài ra Linux (cũng như các hệ điều hành khác) còn tạo thêm các “pseudo device” (device giả)

Câu 10+11+12+13..

c1) Độ ưu tiên:

- Mỗi process có độ ưu tiên.

- Process àcó độ ưu tiên cao nhất được cho thực thi: Không kể process mới   preemptive.ànonpreemptive. Kể cả process mới

- Process có độ ưu tiên thấp có thể chờ mãi mãi (starvation): Tăng độ ưu tiên của process chờ theo thời gian.

c2) First-In-First-Out (FIFO hay FCFS):

- Đến trước - Phục vụ trước (First-Come, First-Served Scheduling - FCFS)

- Đơn giản, dễ thực hiện.

- Các tiến trình trong Ready Queue được cấp CPU từ đầu dãy đến cuối dãy theo quy tắc FIFO (First-In, First-Out).

- Thời gian chờ trung bình khá lớn.

c3) Round Robin (RR):

- Dạng preemptive.

- Mỗi process được thực thi trong một đơn vị thời gian q (quantum)

- Nếu process chưa kết thúc trong thời gian q thì bị dừng, đưa về cuối hàng đợi ready.

- Process đang ở đầu của hàng đợi được chọn để thực thi (theo FIFO).

- Nếu q đủ lớn: trở thành FIFO.

- Nếu q nhỏ: chi phí chuyển trạng thái là đáng kể.

c4) Shortest Job First (SJF):

Ngắn hơn-Chạy trước (Shortest-Job-First Scheduling-SJFS)

- Đúng hơn phải được gọi là Shortest-Next-CPU-Burst, nghĩa là tiến trình có Khoảng CPU kế tiếp nhỏ hơn thì được chạy trước. Trong trường hợp bằng nhau, dùng thuật giải FCFS.

- Là giải thuật khá tối ưu, nhưng phải biết cách ước đoán khoảng CPU kế tiếp.

- SJFS không tiếm quyền (Non-Preemptive SJFS): Tiến trình hiện thời được thực hiện đến hết khoảng CPU của nó.

- SJFS có tiếm quyền (Preemptive SJFS): Tiến trình mới có Next CPU Burst nhỏ hơn khoảng thời gian CPU còn lại của tiến trình đang vận hành sẽ được chọn thay thế (Shortest Remaining First).

c5) Shortest Remaining Time (SRT):

- Dạng preemptive.

- Process có thời gian thực thi đến kết thúc (remaining time) nhỏ nhất được cho thực thi, kể cả process mới.

- Cần nhiều chi phí chuyển trạng thái, Process có thời gian thực thi lớn phải chờ lâu.

Bạn đang đọc truyện trên: Truyen2U.Pro

#dhd