Bài thi giữa kỳ ngày 29/10/2010
2 posters
Trang 1 trong tổng số 1 trang
Bài thi giữa kỳ ngày 29/10/2010
1.) Giải thích cơ chế Dual Mode
- 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.
2.)So sánh Job Queue và Ready Queue
Job Queue: là hàng chờ công việc, chứa các tiến trình chờ được vận hành.
Ready Queue: là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU.
Giống nhau:
- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:
- Dùng giải thuật điều phối chậm(Long - term Scheduler) để đưa các tiến trình từ Job Queue vào Ready Queue.
- Dùng giải thuật điều phối nhanh(Short - term Scheduler) chọn các tiến trình trong Ready Queue để cấp CPU.
- Ready Queue chứa hỗn hợp 2 loại tiến trình Hướng CPU và Hướng I/O sao cho tối ưu nhất vì đảm bảo được độ cân bằng tải (Load-Balancing) cần thiết.
VD: thầy giáo gọi tên 5 bạn trong lớp để lên danh sách chuẩn bị lên bảng làm bài tập(điều phối chậm, 5 bạn được đưa từ Job Queue(danh sách lớp) vào Ready Queue(danh sách làm bài)). Sau đó thầy gọi từng bạn trong danh sách đó lên bảng làm bài(điều phối nhanh).
3.) Cho ví dụ đời thường minh họa cho các khái niệm: Mutual exclusion, Time Shaing System, Caching, SJFS, Thread Pool, Busy Waiting, Buffer.
- Mutual Exclusion: Đã 1 bạn nộp bài và đang ký thì không ai khác được làm như vậy! Không thể có hơn 1 bạn cùng ký một lúc được
- Hệ chia thời gian(Time Sharing System)
Trong nhà hàng, người bồi bàn (CPU) phục vụ mỗi bàn ăn (Chương trình người dùng) trong 1 khoảng thời gian ngắn (chẳng hạn trong 10 giây), sau đó chuyển sang bàn khác.
- Caching: khi chúng ta ăn cơm, mỗi lần lấy thức ăn (CPU truy xuất thông tin) , thay vì vào trong xoong (Ram) để lấy thì ta dọn ra dĩa (cache), như vậy mỗi lần lấy thức ăn thì ta chỉ việc lấy trên dĩa (cache) thôi, không cần pải vào trong xoong (Ram) lấy.
- SJFS:
Có 1 đoàn xe của viên chức chính phủ đi qua, các phương tiện giao thông khác đang lưu thông trên đường đều phải nhường chỗ cho đoàn xe này đi qua hết mới đi trên phần đường đó.
- Thread Pool
Ở các nhà khách hoặc khách sạn, có thành lập một đội mang hành lý cho khách hàng. Nếu có yêu cầu từ khách hàng, đội sẽ cử ra 1 người mang hành lý cho khách, người này làm xong sẽ trở về đội và đợi phân công việc khác.
-Busy-waiting:
Khi đi qua ngã tư gặp đền đỏ, mọi người đều không ngừng nhìn lên đèn đỏ, để ý khi nào có đền xanh rồi mới đi tiếp.
- Buffering là quá trình lưu trữ dữ liệu tạm thời khi tốc độ của thiết bị không đáp ứng được tại thời điểm thực thi. Ví dụ thường gặp nhất là xem phim, hoặc nghe nhạc online. Buffering thường xảy ra vào một hai giây đầu tiên khi file film/nhạc được download và lưu trữ trong bộ nhớ tạm thời trên máy tinh của người sử dụng.
4.) Đồng bộ hóa 4 đèn hiệu P1 tới trước báo hiệu P2 và P3, P4 cùng chạy sau P1.
semaphore synch = 0;
.........P1.............................P2.............................P3 ........................P4
.........S1.......................wait(synch)..................wait(synch).............wait(synch)
signal(synch, 3)....................S2..............................S3.........................S4
khi S1 thực thi xong thì hàm signal tăng synch lên 3
hàm wait(synch) của P2 giảm synch xuống 1(synch = 2) sau đó chạy S2
hàm wait(synch) của P3 giảm synch xuống 1(synch = 1) sau đó chạy S3
hàm wait(synch) của P4 giảm synch xuống 1(synch = 0) sau đó chạy S4
S2, S3, S4 chạy gần như đồng thời.
5.) Giải thích code:
using System.Runtime.InteropServices;
// Khai báo thư viện Runtime.InteropServices dùng cho việc gọi các hàm API ở dưới
[DllImport(“user32.dll”)]
// Import file user32.dll trong thư viện Window để khai báo hàm FindWindow
static extern IntPtr FindWindow(string lpClassName, string lpWindowName)
// Khai báo hàm FindWindow gồm 2 đối số: lpClassName tên lớp của Window cần tìm (đối số 2); lpWindowName tên tiêu đề window cần tìm, và trả về kiểu IntPtr
[DllImport(“user32.dll”)]
// Import file user32.dll trong thư viện Window để khai báo hàm SendMessage
static extern IntPtr SendMessage(string hWnd, int Msg, int wParam, int lParam)
// Khai báo hàm SendMessage gồm 4 đối số: hWnd tên tiêu đề window vừa tìm được và trả về kiểu IntPtr.
const int WM_COMMAND = 0x0111;
// Khai báo hằng và gán địa chỉ 0x0111
private void button1_Click(Object sender, EventArgs e)
// Hàm xử lý sự kiện khi click vào nút button1 trên form
{
IntPtr hApp = FindWindow(null, “Speaking VN”);
// Tìm cửa sổ có tiêu đề là Speaking VN và gán mục quản vào biến hApp
SendMessage(hApp, WM_COMMAND, 32792, 0);
// Gửi thông điệp tới ID 32792 tới địa chỉ 0x0111 trong chương trình Speaking VN
}
- 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.
2.)So sánh Job Queue và Ready Queue
Job Queue: là hàng chờ công việc, chứa các tiến trình chờ được vận hành.
Ready Queue: là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU.
Giống nhau:
- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:
- Dùng giải thuật điều phối chậm(Long - term Scheduler) để đưa các tiến trình từ Job Queue vào Ready Queue.
- Dùng giải thuật điều phối nhanh(Short - term Scheduler) chọn các tiến trình trong Ready Queue để cấp CPU.
- Ready Queue chứa hỗn hợp 2 loại tiến trình Hướng CPU và Hướng I/O sao cho tối ưu nhất vì đảm bảo được độ cân bằng tải (Load-Balancing) cần thiết.
VD: thầy giáo gọi tên 5 bạn trong lớp để lên danh sách chuẩn bị lên bảng làm bài tập(điều phối chậm, 5 bạn được đưa từ Job Queue(danh sách lớp) vào Ready Queue(danh sách làm bài)). Sau đó thầy gọi từng bạn trong danh sách đó lên bảng làm bài(điều phối nhanh).
3.) Cho ví dụ đời thường minh họa cho các khái niệm: Mutual exclusion, Time Shaing System, Caching, SJFS, Thread Pool, Busy Waiting, Buffer.
- Mutual Exclusion: Đã 1 bạn nộp bài và đang ký thì không ai khác được làm như vậy! Không thể có hơn 1 bạn cùng ký một lúc được
- Hệ chia thời gian(Time Sharing System)
Trong nhà hàng, người bồi bàn (CPU) phục vụ mỗi bàn ăn (Chương trình người dùng) trong 1 khoảng thời gian ngắn (chẳng hạn trong 10 giây), sau đó chuyển sang bàn khác.
- Caching: khi chúng ta ăn cơm, mỗi lần lấy thức ăn (CPU truy xuất thông tin) , thay vì vào trong xoong (Ram) để lấy thì ta dọn ra dĩa (cache), như vậy mỗi lần lấy thức ăn thì ta chỉ việc lấy trên dĩa (cache) thôi, không cần pải vào trong xoong (Ram) lấy.
- SJFS:
Có 1 đoàn xe của viên chức chính phủ đi qua, các phương tiện giao thông khác đang lưu thông trên đường đều phải nhường chỗ cho đoàn xe này đi qua hết mới đi trên phần đường đó.
- Thread Pool
Ở các nhà khách hoặc khách sạn, có thành lập một đội mang hành lý cho khách hàng. Nếu có yêu cầu từ khách hàng, đội sẽ cử ra 1 người mang hành lý cho khách, người này làm xong sẽ trở về đội và đợi phân công việc khác.
-Busy-waiting:
Khi đi qua ngã tư gặp đền đỏ, mọi người đều không ngừng nhìn lên đèn đỏ, để ý khi nào có đền xanh rồi mới đi tiếp.
- Buffering là quá trình lưu trữ dữ liệu tạm thời khi tốc độ của thiết bị không đáp ứng được tại thời điểm thực thi. Ví dụ thường gặp nhất là xem phim, hoặc nghe nhạc online. Buffering thường xảy ra vào một hai giây đầu tiên khi file film/nhạc được download và lưu trữ trong bộ nhớ tạm thời trên máy tinh của người sử dụng.
4.) Đồng bộ hóa 4 đèn hiệu P1 tới trước báo hiệu P2 và P3, P4 cùng chạy sau P1.
semaphore synch = 0;
.........P1.............................P2.............................P3 ........................P4
.........S1.......................wait(synch)..................wait(synch).............wait(synch)
signal(synch, 3)....................S2..............................S3.........................S4
khi S1 thực thi xong thì hàm signal tăng synch lên 3
hàm wait(synch) của P2 giảm synch xuống 1(synch = 2) sau đó chạy S2
hàm wait(synch) của P3 giảm synch xuống 1(synch = 1) sau đó chạy S3
hàm wait(synch) của P4 giảm synch xuống 1(synch = 0) sau đó chạy S4
S2, S3, S4 chạy gần như đồng thời.
5.) Giải thích code:
using System.Runtime.InteropServices;
// Khai báo thư viện Runtime.InteropServices dùng cho việc gọi các hàm API ở dưới
[DllImport(“user32.dll”)]
// Import file user32.dll trong thư viện Window để khai báo hàm FindWindow
static extern IntPtr FindWindow(string lpClassName, string lpWindowName)
// Khai báo hàm FindWindow gồm 2 đối số: lpClassName tên lớp của Window cần tìm (đối số 2); lpWindowName tên tiêu đề window cần tìm, và trả về kiểu IntPtr
[DllImport(“user32.dll”)]
// Import file user32.dll trong thư viện Window để khai báo hàm SendMessage
static extern IntPtr SendMessage(string hWnd, int Msg, int wParam, int lParam)
// Khai báo hàm SendMessage gồm 4 đối số: hWnd tên tiêu đề window vừa tìm được và trả về kiểu IntPtr.
const int WM_COMMAND = 0x0111;
// Khai báo hằng và gán địa chỉ 0x0111
private void button1_Click(Object sender, EventArgs e)
// Hàm xử lý sự kiện khi click vào nút button1 trên form
{
IntPtr hApp = FindWindow(null, “Speaking VN”);
// Tìm cửa sổ có tiêu đề là Speaking VN và gán mục quản vào biến hApp
SendMessage(hApp, WM_COMMAND, 32792, 0);
// Gửi thông điệp tới ID 32792 tới địa chỉ 0x0111 trong chương trình Speaking VN
}
HaLinh(I92C)- Tổng số bài gửi : 24
Join date : 14/09/2010
Re: Bài thi giữa kỳ ngày 29/10/2010
Bài giải ở trên là mình tổng hợp từ những bài giải của các bạn và của mình trên diễn đàn. Đa số đã được thầy góp ý, chỉnh sửa. Hy vọng các bạn có cái nhìn tổng quan về bài thi vừa rồi, làm cơ sở để thi tốt trong kỳ thi cuối kỳ. Ví dụ buffering không biết là đúng hay sai, mong thầy và các bạn góp ý cho mình nhé. Cám ơn nhiều lắm
HaLinh(I92C)- Tổng số bài gửi : 24
Join date : 14/09/2010
Re: Bài thi giữa kỳ ngày 29/10/2010
Theo mình câu 2 thì chỉ ra điểm khác nhau là đủ, vì đề bài yêu cầu phân biệt Job Queue và Ready Queue chứ không phải là so sánh
tranquochoan_i92c- Tổng số bài gửi : 24
Join date : 25/10/2010
Re: Bài thi giữa kỳ ngày 29/10/2010
Thầy nói là phân biệt tức là so sánh đó bạn ^^. Linh nghỉ nên nêu đầy đủ tất cả các điểm giống nhau và khác nhau.
tranquochoan_i92c đã viết:Theo mình câu 2 thì chỉ ra điểm khác nhau là đủ, vì đề bài yêu cầu phân biệt Job Queue và Ready Queue chứ không phải là so sánh
HaLinh(I92C)- Tổng số bài gửi : 24
Join date : 14/09/2010
Similar topics
» Ngày hội Thi Giữa kỳ [29/11/2010] đã qua!!
» XIN PHEP NGHI HOC NGAY 29/11/2010
» Bài tập ngày 01-11-2010
» Đề thi lần 2 HDH Lop HCTH91C ngày 26/9/2010
» XIN PHEP NGHI HOC THU 2 NGAY 29/11/2010
» XIN PHEP NGHI HOC NGAY 29/11/2010
» Bài tập ngày 01-11-2010
» Đề thi lần 2 HDH Lop HCTH91C ngày 26/9/2010
» XIN PHEP NGHI HOC THU 2 NGAY 29/11/2010
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