hedieuhanh-p2

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

Câu 11: Phân loại các hệ phân tán theo khoảng cách và theo phương thức phục vụ. Phân biệt File Server với Client-Server

Giải:

Phân loại theo khoảng cách:

LAN (Local-Area Network): Nội bộ

WAN (Wide-Area Network): Diện rộng

MAN (Metropolitan-Area Network): Đô thị

Phân loại theo phương thức phục vụ:

File-Server: Máy chủ không tính toán, chỉ làm dịch vụ tập tin cho các máy khác

Peer-to-Peer: Mạng các máy ngang hàng

Client-Server: Máy khách (Client) gửi yêu cầu, Máy chủ (Server) tính toán và gửi trả lại kết quả.

Câu 12: Gom cụm đối xứng khác với Gom cụm phi đối xứng ở điểm nào?

Giải:

Gom cụm đối xứng (Symmetric Clustering): Các máy ngang hàng về chức năng, Mỗi máy thực hiện phần việc của mình và giám sát lẫn nhau.

Gom cụm phi đối xứng (Asymmetric Clustering): Một máy chạy trong Hot Standby Mode, nghĩa là chỉ giám sát công việc các máy khác nhưng sẽ đảm đương công việc của máy gặp sự cố.

Câu 13: Định nghĩa của IEEE về Hệ thời gian thực.

Giải:

Hệ thống thời gian thực (Real-Time Systems)

Thường dùng trong các thiết bị chuyên dụng như điều khiển các thử nghiệm khoa học, điều khiển trong y khoa, dây chuyền công nghiệp.

Ràng buộc tương đối chặt chẽ về thời gian: hard và soft real-time.

Hard real-time:

Hạn chế (hoặc không có) bộ nhớ phụ, tất cả dữ liệu nằm trong bộ nhớ chính (RAM) hoặc ROM

Yêu cầu thời gian đáp ứng, xử lý rất nghiêm ngặt, thường sử dụng trong điều khiển công nghiệp, công nghệ robotics.

Soft real-time:

Thường xuất hiện trong lĩnh vực multimedia, thực tế ảo (virtual reality) với yêu cầu mềm dẻo hơn về thời gian.

Câu 14: Quá trình khởi động máy tính và hệ điều hành.

Giải:

Sau khi bật nguồn, chương trình mồi Bootstrap lấy từ ROM hoặc EEPROM được khởi động với chức năng khởi hoạt các thiết bị hệ thống: Các thanh ghi CPU, Bộ nhớ, Disk Controllers,... sau đó khởi động hạt nhân của HĐH nạp từ đĩa cứng.

Hạt nhân (Kernel, Monitor) của HĐH khởi động tiến trình đầu tiên gọi là INIT (Initialization) và chờ các sự kiện (Event) có thể xảy ra.

Câu 15: Trình bày nguyên tắc xử lý ngắt của hệ điều hành.

Giải:

Hai loại ngắt chính:

Tín hiệu ngắt (Interrupt Signal) từ các thiết bị (Ngắt cứng) truyền qua System Bus.

Tín hiệu ngắt từ chương trình người dùng (Ngắt mềm) nhờ Lời gọi hệ thống (System Call hay Monitor Call). Lệnh đặc biệt này (ví dụ có tên INT hoặc SysCall) là cơ chế để tiến trình người dùng yêu cầu một dịch vụ của HĐH (ví dụ, yêu cầu thực hiện lệnh I/O).

Với mỗi loại ngắt, có đoạn mã riêng của HĐH dùng để xử lý.

Các HĐH hiện đại được dẫn dắt bởi các sự kiện. Nếu không có tiến trình nào vận hành, không có thiết bị I/O nào làm việc, HĐH im lặng chờ và theo dõi.

Thông thường, mỗi loại ngắt tương ứng với 1 dòng trong bảng (Véc-tơ ngắt) chứa con trỏ (Pointer) tới chương trình xử lý loại ngắt đó. Bảng này nằm ở vùng thấp của RAM (ví dụ: 100 bytes đầu tiên).

Cơ chế xử lý ngắt phải có trách nhiệm ghi lại địa chỉ lệnh bị ngắt để sau đó có thể quay lại. Địa chỉ này cùng với nhiều thông tin khác có thể được ghi vào Ngăn xếp hệ thống (System Stack) với nguyên tắc làm việc LIFO ( Last-In, First-Out ).

Câu 16: Trong 2 loại bộ nhớ là Bộ nhớ chính và Đĩa từ, loại nào là Bộ nhớ Sơ cấp, loại nào là Bộ nhớ Thứ cấp? Phân loại như vậy để làm gì?

Giải:

Bộ nhớ chính (Main Memory)

Chương trình máy tính phải được nạp vào RAM (Random-Access Memory) trước khi thực hiện.

Lệnh cần thực hiện phải được nạp vào thanh ghi (Register) của CPU.

Các tác tử (Operand) tương ứng cũng được lấy từ RAM.

Lý tưởng nhất là chương trình và dữ liệu đều nằm trong RAM nhưng không khả thi vì RAM quá nhỏ và là loại bộ nhớ không chắc (Volatile) do nội dung bị xoá khi mất điện.

RAM được sử dụng làm Bộ nhớ Sơ cấp (Primary Memory).

Bộ nhớ phụ (secondary storage): hệ thống lưu trữ thông tin bền vững (nonvolatile storage).

Đĩa từ (magnetic disks) là loại bộ nhớ phụ hay bộ nhớ thứ cấp.

Bề mặt đĩa chia thành các rãnh (tracks), các rãnh này được chia nhỏ hơn thành các cung từ (sectors).

Cylinder: tập các track tạo thành một hình trụ

Disk controller: bộ điều khiển quá trình giao tiếp giữa CPU và đĩa

Câu 17: Mục đích của nguyên tắc Caching là gì? Nêu 1 ví dụ từ đời thường sử dụng nguyên tắc đó.

Giải:

Là nguyên tắc quan trọng của hệ thống máy tính.

Thông tin từ RAM có thể được cơ chế phần cứng đưa vào bộ nhớ nhanh hơn gọi là Cache. Khi CPU cần chính thông tin đó, không cần phải truy xuất RAM, mà lấy ngay từ Cache.

Loại bộ nhớ này không do HĐH quản lý và cấp phát.

Thực tế, RAM (Bộ nhớ Sơ cấp) là loại Cache nhanh so với đĩa cứng (Bộ nhớ thứ cấp) và HĐH có chức năng quản lý sự lưu chuyển dữ liệu giữa 2 loại bộ nhớ này.

Câu 18: Phân tích Hai chế độ vận hành của máy tính.

Giải:

Hệ điều hành hiện đại dùng cơ chế Dual-Mode để duy trì 2 chế độ là User Mode và Monitor Mode (còn gọi là Supervisor Mode, System Mode hoặc Privileged Mode) để bảo vệ hệ thống và các tiến trình đang vận hành.

Một Mode Bit được đưa vào phần cứng của máy để chỉ báo chế độ làm việc hiện hành: 0 - Monitor Mode, 1 - User Mode.

Khi xảy ra ngắt, phần cứng chuyển từ User Mode sang Monitor Mode bằng cách đặt Mode Bit thành 0.

Hệ điều hành đặt Mode Bit bằng 1 trước khi trả điều khiển về tiến trình người dùng.

Một số lệnh máy chỉ thực hiện được trong Monitor Mode (Các lệnh ưu tiên).

Tiến trình người dùng có thể gián tiếp thực hiện các lệnh ưu tiên qua Lời gọi hệ thống (System Call).

MS-DOS không có Dual-Mode.

Bộ xử lý Pentium hỗ trợ Mode bit, do đó các HĐH Windows 2000/XP/2003/Vista và OS/2 tận dụng được tính năng này để bảo vệ máy tính tốt hơn.

Câu 19: Bảo vệ Nhập/Xuất bằng System Call như thế nào?

Giải:

System call – phương thức duy nhất mà process dùng để yêu cầu các dịch vụ cung cấp bởi OS

Các system call gây ra ngắt mềm (gọi là trap).

Quyền điều khiển được chuyển đến trình phục vụ ngắt, mode bit được thiết lập là monitor mode.

OS kiểm tra tính hợp lệ và đúng đắn của các đối số, thực hiện yêu cầu và trả quyền điều khiển về lệnh kế tiếp sau system call.

Câu 19.1: Bảo vệ CPU bằng Timer.

Giải:

CPU protection: bảo đảm OS phải duy trì được quyền điều khiển, tránh trường hợp user bị lặp vô hạn, không trả quyền điều khiển. Cơ chế thực hiện là timer.

Timer – kích khởi các ngắt quãng định kỳ

Bộ đếm timer sẽ giảm dần sau mỗi xung clock của máy tính.

Khi timer bằng 0 thì kích hoạt ngắt timer và OS sẽ nắm quyền điều khiển.

Timer cũng được sử dụng để hiện thực hệ thống time sharing.

Thiết lập timer gây ngắt định kỳ N ms (time slice, quantum)

Timer cũng được dùng để tính thời gian.

Lệnh nạp giá trị cho bộ đếm timerprivileged instruction.

Câu 20: Những bộ phận cấu thành của hệ điều hành.

Giải:

Quản lý Process (Process Management)

Quản lý bộ nhớ chính (Memory Management)

Quản lý Hệ Thống File (File Management)

Quản lý hệ thống I/O (I/O System Management)

Quản lý bộ nhớ phụ (Secondary Storage Management)

Hệ thống bảo vệ (Protection System)

Command-Interpreter System

Câu 21: Shell của hệ điều hành Windows được gọi là gì?

Giải:

Giao diện do Command-Interpreter hỗ trợ hay giao diện giao tiếp giữa User và Hệ Điều hành được gọi là Shell.

Một trong những “Vỏ” thân thiện đầu tiên xuất hiện trong hệ điều hành Mac OS cho máy tính Macintosh.

Câu 22: Phân loại và chức năng các dịch vụ của hệ điều hành.

Giải:

Thực hiện chương trình: HĐH phải biết nạp (Load) chương trình vào RAM và khởi động nó.

Thao tác Nhập/Xuất: Làm sạch màn hình, Định dạng đĩa, Tua băng về đầu,...

Thao tác với Hệ tập tin: Tạo lập/Loại bỏ/Đọc/ghi tập tin,...

Liên lạc giữa các tiến trình: Bằng thông điệp (Messages), Qua vùng nhớ chung. Trao đổi thông tin giữa các tiến trình Trên 1 máy/ Giữa các máy khác nhau trong mạng.

Phát hiện lỗi: Lỗi trong CPU, Bộ nhớ, Các thiết bị (Lỗi chẵn lẻ - Parity, Lỗi truy cập mạng, Lỗi hết giấy,...). Mỗi loại lỗi có cách xử trí riêng của HĐH.

Câu 23: Khái niệm System Call và 3 phương thức truyền tham số.

Giải:

System calls cung cấp giao diện làm việc giữa một chương trình đang thực thi và hệ điều hành

Thông thường là các thư viện hợp ngữ (assembly).

Các ngôn ngữ lập trình cấp cao thường có các thư viện lập trình thay cho các thư viện hợp ngữ của hệ thống, cho phép lập trình viên triệu gọi system calls trực tiếp (ví dụ: C/C++, Win32 API)

Ba phương pháp truyền thông số giữa process và hệ điều hành

Truyền thông số qua các thanh ghi (registers).

Truyền tham số qua một vùng nhớ chia sẻ, địa chỉ của vùng nhớ gửi đến OS qua thanh ghi.

Truyền tham số qua stack.

Câu 24: Hệ điều hành có các nhóm chương trình hệ thống nào?

Giải:

Quản lý tập tin/thư mục: Tạo lập, Loại bỏ, Sao chép, Đổi tên, In ấn, Liệt kê.

Cung cấp thông tin về trạng thái hệ thống: Ngày, Giờ, Bộ nhớ trống, Số Users.

Chỉnh lý tập tin: Soạn thảo văn bản (NotePad, WordPad).

Một số trình Biên dịch/Thông dịch: Assembler, C, C++, VB.

Nạp và thực hiện chương trình: Loaders, Linkage Editors.

Liên lạc: Gửi/Nhận thông điệp giữa các máy, Trình duyệt (Web Browser), Thư điện tử, Truyền file, Đăng nhập từ xa,...

Shell: (Command-Interpreter, Desktop Window).

Câu 25: Cấu trúc vi hạt của hệ điều hành.

Giải:

Chuyển một số chức năng của OS từ kernel sang user.

Thu gọn kernel  micro-kernel.

Micro-Kernel chỉ bao gồm các chức năng tối thiểu như quản lý process và bộ nhớ, cung cấp các cơ chế giao tiếp.

Quá trình giao tiếp được thực hiện giữa các user module qua cơ chế message passing.

Ưu điểm

Dễ dàng mở rộng micro-kernel OS.

Dễ dàng chuyển OS sang kiến trúc mới

Độ tin cậy cao hơn (rất ít code chạy trong kernel mode)

Bảo mật hơn

Câu 26: Ba cách sản sinh hệ điều hành.

Giải:

1. Mã nguồn HĐH được sửa tại một số chỗ, sau đó hệ được Biên dịch (Compile) và Hợp nhất (Link) lại.

2. Không sửa mã nguồn mà chỉnh nội dung một số bảng. Có thể hợp nhất lại hệ thống.

3. Sản sinh được thực hiện khi Khởi động lần đầu và (hoặc) khi Setup do HĐH hoàn toàn được dẫn dắt theo bảng cấu hình (Solaris, Windows).

Câu 27: Tiến trình khác Chương trình như thế nào?

Giải:

- Tiến trình (Process) là chuơng trình trong thời gian thực hiện (đặt dưới sự quản lý của HĐH).Có sự phân biệt Tiến trình hệ thống (của HĐH) với Tiến trình người dùng.

- Bản thân chương trình không là tiến trình vì là thực thể Thụ động (Passive), trong khi tiến trình là thực thể Hoạt động (Active) với nhiều thông tin về trạng thái trong đó có Bộ đếm chương trình (Program Counter) cho biết vị trí lệnh hiện hành.

Câu 28: Tại sao phải có Điều phối chậm, Điều phối nhanh và Điều phối vừa?

Giải:

Long-term scheduler (or job scheduler)

Chọn process nào sẽ được đưa vào ready queue (từ New chuyển sang Ready)

Short-term scheduler (or CPU scheduler)

Chọn process nào sẽ được chiếm CPU để xử lý (từ Ready chuyển sang Running)

Medium-term scheduler

Chuyển process từ bộ nhớ chính sang sang bộ nhớ thứ cấp (nhưng vẫn nằm trong không gian bộ nhớ ảo); khi nào cần thì nạp process từ bộ nhớ thứ cấp vào bộ nhớ chính.

Câu 29: Chuyển ngữ cảnh là gì?

Giải:

Chuyển ngữ cảnh (Context Switch)

Là chức năng của Dispatcher khi cần chuyển CPU từ tiến trình P0 này sang tiến trình P1 khác:

- Ghi môi trường và trạng thái làm việc của P0 vào PCB0

- Nạp môi trường và trạng thái làm việc của tiến trình P1 từ PCB1

Thời gian chuyển ngữ cảnh khá lớn: Từ 1-1000 s

Công nghệ Đa luồng (Bài 5) được dùng để giảm thời gian chuyển ngữ cảnh.

Hệ máy Sun UltraSPARC có nhiều bộ thanh ghi được dùng để hỗ trợ Context Switch bằng phần cứng: Chuyển ngữ cảnh đơn thuần chỉ là thay đổi con trỏ từ Bộ thanh ghi này sang Bộ thanh ghi khác.

Câu 30: Tại sao phải tổ chức cộng tác giữa các tiến trình?

Giải:

Chia sẻ thông tin (Information Sharing): Một tiến trình sử dụng thông tin do tiến trinh khác cung cấp.

Tăng tốc tính toán (Computation Speedup): Các tiến trình cùng làm việc song song trên 1 hoặc nhiều máy để giải quyết bài toán chung.

Đảm bảo tính đơn thể (Modularity): Chương trình được chia thành các đơn thể chức năng vận hành trong các tiến trình hoặc luồng khác nhau.

Đảm bảo tính tiện dụng (Convenience): Người dùng có nhu cầu làm nhiều việc một lúc: Soạn thảo, In ấn, Duyệt Web, Lấy file về, Biên dịch chương trình, Kiểm tra chính tả,...

Câu 31: Hai phương thức liên lạc giữa các tiến trình.

Giải:

Liên lạc trực tiếp (Direct Communications)

Theo địa chỉ đối xứng (Symmetric Scheme)

Send (P, Message) - Gửi thông điệp cho P

Receive (Q, Message) - Nhận thông điệp từ Q

Đặc điểm:

Liên kết được thiết lập tự động giữa mỗi cặp tiến trình.

Liên kết chỉ giữa 2 tiến trình.

Chỉ có 1 liên kết giữa mỗi cặp.

Tính đối xứng của liên lạc (2 bên đều biết đích xác tên của nhau khi Gửi/Nhận).

Theo địa chỉ phi đối xứng (Asymmetric Scheme)

Send (P, Message) - Gửi thông điệp cho P

Receive (id, Message) - Nhận thông điệp từ tiến trình bất kỳ, Biến id chứa số hiệu tiến trình gửi

Liên lạc gián tiếp (Indirect Communications)

Qua các Hộp thư (Mailboxes) hoặc Cổng (Ports).

Hộp thư là một thực thể qua đó thông điệp được gửi đến và lấy ra.

Mỗi hộp thư có định danh riêng.

Hai tiến trình phải chung nhau một hộp thư nào đó.

Hai loại hộp thư:

Hộp thư tiến trình (Process Mailbox): Nằm trong vùng địa chỉ của một tiến trình nào đó.

Hộp thư hệ điều hành (OS Mailbox): Nằm trong vùng địa chỉ của HĐH

Câu 32: Đồng bộ hoá liên lạc giữa các tiến trình.

Giải:

Đồng bộ hoá liên lạc (Synchronization)

Gửi thông điệp có chờ (Blocking Send)

Gửi thông điệp không chờ (Nonblocking Send)

Nhận thông điệp có chờ (Blocking Receive)

Nhận thông điệp không chờ (Nonblocking Receive)

Câu 33: Truyền thông điệp trong Windows .

Giải:

Các hàm API dùng để Gửi/Nhận thông điệp

SendMessage: Gửi có chờ

PostMessage: Gửi không chờ

SendMessageTimeout: Gửi có chờ nhưng với thời hạn

WaitMessage: Chờ thông điệp đến

GetMessage: Nhận có chờ

PeekMessage: Nhận không chờ

Câu 34: Phân loại hốc liên lạc trong hệ thống Client-Server.

Giải:

Có kết nối - Connection-Oriented (TCP - Transmission Control Protocol): Thiết lập sẵn mối liên kết giữa 2 máy trước khi truyền.

Không kết nối - Connectionless (UDP - User Datagram Protocol): Không phải thiết lập sẵn mối liên kết trước khi truyền, do đó dễ dàng liên lạc với nhiều máy một lúc, nhưng không đảm bảo bằng TCP.

Câu 35: Những ích lợi của đa luồng.

Giải:

Khả năng đáp ứng (Responsiveness) tốt hơn: Trong khi một luồng bị ách hoặc quá bận, luồng khác vẫn vận hành bình thường (Luồng chính của trình duyệt vẫn tương tác với người dùng trong khi dữ liệu được lấy về).

Chia sẻ tài nguyên (Resource Sharing): Theo mặc định, các luồng có thể dùng chung bộ nhớ và tài nguyên của luồng cha. Vài luồng cùng vận hành trong 1 vùng địa chỉ, do đó dễ dùng chung tài nguyên hơn so với trường hợp đa tiến trình.

Tiết kiệm (Economy): Cấp phát bộ nhớ và tài nguyên cho tiến trình là công việc tốn kém. Do luồng chung tài nguyên với cha và các luồng khác, việc tạo lập và chuyển ngữ cảnh cũng nhanh hơn (Solaris 2: Tạo tiến trình chậm hơn 30 lần, Chuyển ngữ cảnh chậm hơn 5 lần).

Tận dụng được thế mạnh của kiến trúc đa xử lý: Đa luồng làm tăng tính song song trên hệ máy nhiều CPU. Mỗi luồng có thể chạy bởi CPU riêng.

Câu 36: Nêu 2 ví dụ ứng dụng công nghệ đa luồng.

Giải:

Lập trình xử lý công việc bán vé máy bay, gửi và rút tiền ở ngân hàng đều cần đến công nghệ đa luồng.

Câu 37: Có những mô hình đa luồng nào?

Giải:

Mô hình Many – to – One là nhiều User level threads được ánh xạ vào một Kernel Thread. Việc quản lý được thực hiện ở User Level, khi có một thread bị block thì toàn bộ các Process cũng bị block theo.

Mô hình One – to – One là mỗi User level thread được gắn với một Kernel thread. Khi có một user thread mới được tạo ra thì cũng cần tạo một Kernel thread tương ứng, lúc này chi phí quá lớn.

Mô hình Many – to – Many nhiều User level thread được phân chia ánh xạ vào một số Kernel thread. Tránh được các khuyết điếm của 2 mô hình trên.

Câu 38: Hãy phân tích Nguyên lý Tập luồng.

Giải:

Tập luồng (Thread Pools):

Tiến trình cha tạo lập sẵn một tập luồng khi khởi động.

Các luồng trong tập luồng luôn sẵn sàng chờ công việc.

Khi tiến trình cha (ví dụ Web Server) nhận thêm một yêu cầu, một luồng được đánh thức và đưa vào vận hành.

Phục vụ xong, luồng được đưa trả về tập luồng.

Nếu số yêu cầu lớn hơn số luồng trong tập, tiến trình cha chờ đến khi có luồng được giải phóng.

Câu 39: Vì sao hệ điều hành phải có chức năng điều phối CPU?

Giải:

Trong các hệ đa chương thực thi nhiều chương trình đồng thời làm tăng hiệu suất hệ thống.

Tại mỗi thời điểm, chỉ có một process được thực thi. Do đó, cần phải giải quyết vấn đề phân chia, lựa chọn process thực thi sao cho được hiệu quả nhất  chiến lược định thời CPU.

Câu 40: Năm tiêu chí điều phối CPU là những tiêu chí nào?

Giải:

1. Công suất CPU (CPU Utilisation): Thực tế đạt từ 40% - 90% thời gian CPU. CPU càng bận càng tốt.

2. Thông suất hệ thống (Throughput): Số TT hoàn tất trong 1 đơn vị thời gian, ví dụ: 1 TT / giờ, 10 TT / giây.

3. Tổng thời gian làm việc (Turnaround Time): Kể từ khi bắt đầu đến khi kết thúc tiến trình (Bao gồm tổng thời gian chờ tại Ready Queue, tổng thời gian sử dụng CPU, tổng thời gian I/O, …).

4. Thời gian chờ (Waiting Time): Tổng thời gian chờ tại Ready Queue.

5. Thời gian đáp ứng (Response Time): Thời gian kể từ khi người dùng đặt yêu cầu cho đến khi có phản hồi đầu tiên.

Câu 41: Trình bày thuật giải điều phối FCFS.

Giải:

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

Câu 42: Trình bày thuật giải điều phối PS.

Giải:

- Mỗi tiến trình được cấp một số nguyên (Priority Number) dùng để ấn định Độ ưu tiên.

- CPU luôn dành cho tiến trình với độ ưu tiên cao hơn (Priority Number nhỏ hơn  Độ ưu tiên cao hơn ) với 2 phương án:

Có tiếm quyền ( Preemptive )

Không tiếm quyền ( Non-Preemptive )

- SJFS là trường hợp đặc biệt của PS với độ ưu tiên:

P= ( Khoảng CPU kế tiếp )

Câu 43: Trình bày thuật giải điều phối SJFS.

Giải:

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

Câu 44: Trình bày thuật giải điều phối RRS.

Giải:

- Như điều phối kiểu FCFS nhưng cho phép tiếm quyền khi tiến trình đang chạy bị hết thời lượng.

- Mỗi tiến trình được cấp 1 thời lượng CPU (Time Quantum), thường từ 10-100 mili giây. Sau khoảng thời gian này, nó bị tiếm quyền và được đưa vào cuối hàng chờ Ready. Tiến trình đầu tiên trong hàng chờ Ready được chọn kế tiếp.

- Nếu có n tiến trình và thời lượng là q , mỗi tiến trình nhận 1/n thời gian CPU bao gồm các đoạn không quá q đơn vị thời gian.

Câu 45: Trình bày thuật giải điều phối MQS.

Giải:

- Hàng chờ Ready được phân cấp thành nhiều mức có độ ưu tiên khác nhau, ví dụ: Mức các tiến trình tương tác (Interactive) chạy ở mặt trước ( Foreground ) có độ ưu tiên cao nhất và Mức các tiến trình lô ( Batch ) vận hành trong hậu trường (Background ) .

- Mỗi hàng chờ có thuật giải điều phối riêng, ví dụ: Foreground dùng RRS, Background dùng FCFS.

- Quan hệ giữa các mức:

Ưu tiên cố định: Xong hết các tiến trình mức trên rồi mới chuyển xuống mức dưới. Đang chạy tiến trình mức dưới mà xuất hiện tiến trình mới mức cao hơn, tiến trình mức dưới sẽ bị tiếm quyền cho tiến trình mới có độ ưu tiên cao hơn ( Hệ Solaris 2 dùng cách này ) .

Phân bổ theo tỉ lệ thời lượng: ví dụ: 80% thời lượng CPU dành cho Foreground, 20 % cho Background.

Câu 46: Trình bày thuật giải điều phối MFQS.

Giải:

- Như MQS nhưng cho phép Điều tiết tiến trình sang mức khác, ví dụ: những tiến trình hướng CPU được đưa xuống mức dưới, trong khi tiến trình hướng I/O hoặc chờ lâu được chuyển lên trên.

- MFQS đặc trưng bởi các thông số:

Số mức (số hàng chờ)

Thuật giải điều phối cho mỗi mức

Phương thức nâng cấp tiến trình

Phương thức hạ cấp tiến trình

Phương thức chọn hàng chờ (chọn mức) cho tiến trình mới

Câu 47: Phân tích khái niệm tài nguyên hệ thống.

Giải:

- Các tài nguyên hệ thống được chia thành nhiều Loại, mỗi loại có 1 hoặc nhiều Phiên bản (Instances). Các tài nguyên hệ thống này cấp phát cho các tiến trình theo yêu cầu.

- Tài nguyên cùng loại: Giả sử máy có 3 ổ băng từ và có 3 tiến trình đang chạy. Mỗi tiến trình đang giữ 1 ổ băng.

- Tài nguyên khác loại: Giả sử có 1 máy in, 1 ổ băng từ. Tiến trình P1 đang giữ ổ băng, P2 giữ máy in.

câu 48: Trình bày thứ tự sử dụng tài nguyên của tiến trình.

Giải:

Thứ tự sử dụng tài nguyên của tiến trình:

1. Yêu cầu (Request): Nếu không được đáp ứng do bị tiến trình khác giữ => tiến trình phải chờ.

2. Sử dụng (Use): Sau khi được cấp phát, tiến trình thao tác với tài nguyên (thực hiện I/O, in ra giấy, ...).

3. Trả lại (Release): Trả tài nguyên cho HĐH quản lý.

Câu 49: Định nghĩa Deadlock.

Giải:

Deadlock: là tình huống kẹt tiến trình (process) với một tập các process bị blocked, mỗi process giữ tài nguyên và đang chờ tài nguyên mà process khác trong tập đang có.

Ví dụ 1

Giả sử hệ thống có 2 file trên đĩa.

P1 và P2 mỗi process đang mở một file và yêu cầu mở file kia.

Ví dụ 2

Semaphore A và B, khởi tạo bằng 1

P0 P1

wait (A); wait(B)

wait (B); wait(A)

Câu 50: Bốn điều kiện dẫn đến Deadlock là những điều kiện gì?

Giải:

- Mutual exclusion: với mỗi tài nguyên, chỉ có một process sử dụng tại một thời điểm.

- Hold and wait: một process vẫn sở hữu tài nguyên đã được cấp phát trong khi yêu cầu một tài ngyên khác.

- No preemption: một tài nguyên không thể bị đoạt lại từ chính process đang sở hữu tài nguyên đó.

- Circular wait: tồn tại một chu kỳ khép kín các yêu cầu tài nguyên.

Câu 51: Trình bày các phương thức xử trí Deadlock.

Giải:

- Sử dụng quy tắc Ngăn chặn (Prevention) hoặc Tránh (Avoidance) để Deadlock không bao giờ xảy ra.

- Cho phép hệ thống bị Deadlock, sau đó Xác định (Detection) và tìm cách Khắc phục (Recover).

- Không xét vấn đề Deadlock, coi như không bao giờ xảy ra, còn nếu xảy ra thì Khởi động lại hệ thống (Cách này có thể có ý nghĩa thực tế vì không cần đưa vào HĐH các phương tiện xử trí thường trực).

Câu 52: Trình bày 4 cách ngăn chặn Deadlock.

Giải:

Để ngăn chặn Deadlock ta phải làm sao cho ít nhất 1 trong 4 điều kiện dẫn đến Deadlock không xảy ra. Cụ thể:

- Với Mutual Exclusion: Đảm bảo TN nào cũng dùng chung được cùng một lúc bởi nhiều tiến trình.

- Với Hold and Wait:

1- Khi TT yêu cầu TN, nó không được giữ 1 TN nào khác.

2- TT phải yêu cầu và được cấp tất cả các TN mà nó cần ngay đầu công việc.

- Với No Preemption:

1- Khi TT giữ TN mà xin thêm nhưng không được, các TN mà nó giữ phải bị tiếm quyền sử dụng và trả lại HĐH.

2- Khi TT xin thêm TN, nếu TN này đang được giữ bởi TT khác đang ở trạng thái chờ, TN của TT khác này bị tiếm quyền sử dụng để cấp cho TT đang xin.

- Với Circular Wait: Cấp TN theo một thứ tự nào đấy.

Câu 53: Thế nào là trạng thái an toàn của hệ thống?

Giải:

- Một trạng thái được gọi là an toàn “safe” nếu tồn tại ít nhất một cách mà trong một khoảng thời gian hữu hạn nào đó, hệ thống có thể cấp phát tài nguyên thỏa mãn cho tất cả process thực thi hoàn tất .

- Khi đó hệ thống tồn tại một Chuỗi an toàn {P1, P2, … , Pn } bao gồm tất cả các tiến trình sao cho với mỗi Pi, các tài nguyên mà nó yêu cầu có thể được đáp ứng bởi số lượng hiện có cộng thêm của tất cả các Pj mà j < i.

- Nếu các TN yêu cầu không có đủ, Pi phải chờ cho đến khi tất cả các Pj trả lại các TN mà chúng chiếm giữ.

- Khi Pi nhận được đủ TN cần thiết, nó sử dụng và trả lại HĐH để Pi+1 có thể vận hành, cứ như thế cho đến Pn

- Khi một process yêu cầu một tài nguyên đang sẵn có, hệ thống sẽ kiểm tra: nếu việc cấp phát này không dẫn đến tình trạng unsafe thì sẽ cấp phát ngay.

Câu 54: Tránh Deadlock bằng Banker’s Algorithm.

Giải:

Là thuật giải tránh Deadlock cho trường hợp mỗi loại tài nguyên có n phiên bản.

- Áp dụng cho hệ thống cấp phát tài nguyên trong đó mỗi loại tài nguyên có thể có nhiều instance.

- Mô phỏng nghiệp vụ ngân hàng (banking)

- Một số giả thiết

Mỗi process phải khai báo số lượng tối đa tài nguyên mỗi loại mà process đó cần để hoàn tất công việc.

Khi process yêu cầu một tài nguyên thì có thể phải đợi mặc dù tài nguyên được yêu cầu đang có sẵn

Khi process đã có được đầy đủ tài nguyên thì phải hoàn trả trong một khoản thời gian hữu hạn nào đó.

Câu 55: Phân biêt MQS và MFQS

Phân biệt thuật giải Multilevel Queue Scheduling với Multilevel Feedback Queue Scheduling. Cho các ví dụ minh họa.

Trả lời:

- Giống nhau: Thuật giải Multilevel Queue Scheduling (Điều phối hàng chờ nhiều mức) và Multilevel Feedback Queue Scheduling (Điều phối hàng chờ nhiều mức có điều tiết) cùng sử dụng nhiều mức hàng chờ với độ ưu tiên khác nhau, mỗi hàng chờ có thể sử dụng thuật giải riêng, ví dụ Round-Robin (RRS) hoặc FCFS.

- Khác nhau: Multilevel Feedback Queue Scheduling cho phép điều chuyển (điều tiết) tiến trình từ hàng chờ này sang hàng chờ kia (hạ cấp độ hay nâng cấp độ ưu tiên), nghĩa là mềm dẻo hơn Multilevel Queue Scheduling.

- Ví dụ minh họa: Phòng bán vé tàu hỏa có thể có nhiều cửa bán vé với mức ưu tiên khác nhau, trong khi chỉ có 1 người bán vé (1 CPU) phải luân chuyển giữa các cửa để phục vụ đủ loại người mua vé (các tiến trình) như người mua bình thường, người mua là thương binh, người mất sức lao động...

Câu 56: Nền tảng Phần cứng và Phần mềm tương ứng ra sao?

Mỗi hệ thống cần có sự kết hợp hài hòa giữa nền tảng phần cứng và phần mềm để tạo nên một hệ thống hoàn chỉnh! Nền tảng phần mềm khi xây dựng cần dựa trên một nền tảng phần cứng sẵn có.

Vd như: Hệ điều hành Window khi xây dựng cần dựa trên những tiêu chuẩn phần cứng nghiêm nghặt. Đó cũng chính là lý do tại sao IBM thuê microsoft viết HĐH cho những máy tính của họ trong những thập niên 80. và giải thích mối liên hệ khắn khít của microsoft và intel: một bên sản xuất phần cứng còn một bên xây dựng phần mềm.

Nếu nền tẳng phần cứng ko hỗ trợ tốt phần mềm thì phần mềm khi chạy sẽ bị lỗi. Nếu ko có nền tảng phần mềm hỗ trợ phần cứng thì chúng ta ko thể sử dụng hết các tính năng của phần cứng ! Đó là lý do tại sao các nhà sản xuất phải tạo driver cho các thiết bị của mình. Các drive bổ sung cho HĐH sẽ giúp các thiết bị của họ tương thích với HĐH!

Phần mềm giúp chúng ta sử dụng phần cứng 1 cách tối ưu nhất và mỗi nền tảng phần mềm phát triễn dựa trên 1 nền tảng phân cứng ổn định.

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