Các câu hỏi và lời giải chương 4
Trang 1 trong tổng số 1 trang
Các câu hỏi và lời giải chương 4
Các câu hỏi và lời giải chương 4
4.1. 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.
4.2. Hãy minh hoạ bằng hình vẽ quá trình chuyển trạng thái của tiến trình.
Giải:
4.3. Chức năng và nội dung của Khối kiểm soát tiến trình.
Giải:
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.
4.4. Phân biệt 3 loại hàng chờ điều phối.
Giải:
Hàng chờ công việc (Job Queue): Danh sách các tiến trình ở trạng thái New.
Hàng chờ sẵn sàng (Ready Queue): Danh sách các tiến trình ở trạng thái Ready.
Hàng chờ thiết bị (Device Queue): Danh sách các tiến trình chờ thiết bị Nhập/Xuất cụ thể.
4.5. 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.
4.6. 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.
4.7. Tạo lập tiến trình trong Windows.
Giải:
Các hàm API dùng tạo mới tiến trình và khởi động chương trình tương ứng:
CreateProcess, CreateProcessWithLogon
WinExec
ShellExecute, ShellExecuteEx
4.8. 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ả,...
4.9. Phát biểu bài toán Sản xuất-Tiêu thụ và trình bày Thuật giải với Bộ đệm thực thi bằng mảng xoay vòng.
Giải:
Phát biểu bài toán:
Giả sử có Bộ nhớ đệm (Buffer) bao gồm nhiều khoang (Items) được tiến trình Producer lần lượt đưa các sản phẩm S1, S2,... vào.
Tiến trình Consumer lần lượt lấy sản phẩm ra theo đúng thứ tự.
Công việc của Producer phải đồng bộ với Consumer: Không được đưa sản phẩm vào khi Buffer đầy, Không được lấy ra khi chưa có.
Trình bày giải thuật:
4.10. 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
4.11. Đồ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)
4.12. 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ờ
4.13. 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.
4.1. 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.
4.2. Hãy minh hoạ bằng hình vẽ quá trình chuyển trạng thái của tiến trình.
Giải:
4.3. Chức năng và nội dung của Khối kiểm soát tiến trình.
Giải:
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.
4.4. Phân biệt 3 loại hàng chờ điều phối.
Giải:
Hàng chờ công việc (Job Queue): Danh sách các tiến trình ở trạng thái New.
Hàng chờ sẵn sàng (Ready Queue): Danh sách các tiến trình ở trạng thái Ready.
Hàng chờ thiết bị (Device Queue): Danh sách các tiến trình chờ thiết bị Nhập/Xuất cụ thể.
4.5. 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.
4.6. 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.
4.7. Tạo lập tiến trình trong Windows.
Giải:
Các hàm API dùng tạo mới tiến trình và khởi động chương trình tương ứng:
CreateProcess, CreateProcessWithLogon
WinExec
ShellExecute, ShellExecuteEx
4.8. 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ả,...
4.9. Phát biểu bài toán Sản xuất-Tiêu thụ và trình bày Thuật giải với Bộ đệm thực thi bằng mảng xoay vòng.
Giải:
Phát biểu bài toán:
Giả sử có Bộ nhớ đệm (Buffer) bao gồm nhiều khoang (Items) được tiến trình Producer lần lượt đưa các sản phẩm S1, S2,... vào.
Tiến trình Consumer lần lượt lấy sản phẩm ra theo đúng thứ tự.
Công việc của Producer phải đồng bộ với Consumer: Không được đưa sản phẩm vào khi Buffer đầy, Không được lấy ra khi chưa có.
Trình bày giải thuật:
4.10. 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
4.11. Đồ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)
4.12. 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ờ
4.13. 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.
107H1035-PhanThaiHoa- Tổng số bài gửi : 24
Join date : 06/05/2009
Similar topics
» Các câu hỏi và lời giải chương 8
» Các câu hỏi và lời giải chương 5
» Các câu hỏi và lời giải chương 6
» Các câu hỏi và lời giải chương 1
» Các câu hỏi và lời giải chương 7
» Các câu hỏi và lời giải chương 5
» Các câu hỏi và lời giải chương 6
» Các câu hỏi và lời giải chương 1
» Các câu hỏi và lời giải chương 7
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết