Thảo luận Bài 4
+47
PhanDiecLoi34 (113A)
CaoTheAnh01(113A)
nguyenduchuy19 (113A)
LUUDINHTOAN(I11C)
tranthanhphu49 (113A)
NguyenThiNgocPhuong(113A)
LuuCatTung (113A)
daoquochuy17 (113A)
TranVanTy(113A)
LeThanhNhan45 (113A)
MaiTrieuHung16 (113A)
trantrungnam-HC11TH2A
LeKimHoang (113A)
buidainghia(113A)
NguyenVuLinh12053_I11C
nguyenchithuc(113A)
NguyenThiKimNgan (113A)
nguyenvanlinheban_113a
TranMinhNhat61 (102c)
NguyenVuVien27 (113A)
NguyenVanQuyet57 (113A)
TranVanTien (I12A)
nguyendinhhieu13 (113A)
lechaukhoa(113A)
TranThiThuyQuyen (113A)
TranThanhPhu50 (113A)
VuMinhTan (113A)
DangThiKimKhanh (113A)
NguyenVanNghiem(HC11TH3A)
NguyenPhamTanPhat(113A)
LeVanNhan(I12A)
TranThiThuyHang79 (113A)
DoVanTan(113A)
dothanhnhan44 (113A)
nguyentuannghiaem _(113A)
TranThichThem (113A)
TrangSiMinhHai (113A)
huynhquanghao_I92C
HaHoangCongTien80 (113A)
NguyenThiThuThuy (113A)
Trannguyenkhoa26 (113A)
LeLamThang (113A)
VuDinhThao47 (113A)
PhamQuocAnh02 (113A)
NguyenNgocTrungNam (113A)
NguyenHuuLinh31(113A)
Admin
51 posters
Trang 1 trong tổng số 6 trang
Trang 1 trong tổng số 6 trang • 1, 2, 3, 4, 5, 6
Thảo luận câu 1 Bài 4.
câu I Trình bày khái niệm và mô hình chuyển trạng thái của tuyến trình?
.khái niệm : Tiến trình là chương trình trong thời gian thực hiện dưới sự quản lý của hệ điều hành.
ví dụ: mỗi sinh viên trong lớp 11th3a là một tiến trình, Thầy cũng là 1 tiến trình.Thầy hướng dẫn quá trình học tập cho sinh viên cũng giống như hệ điều hành phân phối điều hành cpu cho tiến trình làm việc.
.Mô hình chuyển trạng thái của tiến trình?
Tiến trình P1: vào hàng đợi Job-Queue ở trạng thái New, sẽ đợi 1 khoảng thời gian của quá trình điều phối chậm (Scheduler Long Term) của hệ điều hành(HĐH) để chọn tiến trình, sau khi được O.S chọn, P1 chuyển sang hàng đợi reday quueue và ở trạng thái Ready. Lúc này P1 chỉ đợi cấp CPU và running.
Sau một khỏang thời gian running, tiến trình P2 xuất hiện. Lúc này, hệ điều hành sẽ ghi lại thông tin của P1 vào thanh PCB1 bao gồm những thông tin: con trỏ, trạng thái của P1, số hiệu của tiến trình P1, Bộ đếm P1, nội dung của P1…Và chuyển P1 sang hàng đợi Waiting và chuyển trạng thái Ready. Lúc này, P2 sẽ được cấp CPU và running. Và sau một khỏang thời gian running, P2 cũng sẽ chuyển sang hàng đợi waiting và chuyển trạng thái ready, lúc này HĐH cũng ghi lại thông tin vào thanh ghi PCB2 như đã làm ở P1. Sau đó, HĐH sẽ load lại thông tin của PCB1 và P1 sẽ tiếp tục running. Quá trình này cũng sẽ lập lại cho P2. Đển khi P1 và P2 kết thúc.
Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái running trên một bộ xử lý
bất kỳ. Trong khi đó, nhiều tiến trình có thể ở trạng thái blocked hay ready.
Các cung chuyển tiếp trong sơ đồ trạng thái biễu diễn sáu sự chuyển trạng thái có thể xảy
ra trong các điều kiện sau :
• Tiến trình mới tạo được đưa vào hệ thống
• Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU
• Tiến trình kết thúc
• Tiến trình yêu cầu một tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó ; hoặc tiến trình phải chờ một sự kiện hay thao tácnhập/xuất.
• Bộ điều phối chọn một tiến trình khác để cho xử lý .
• Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát ; hay sự kiện hoặc thao tác nhập/xuất tiến trình đang đợi hoàn tất.
rất mong có sự đóng góp ý kiến của Thầy và các bạn!!!
.khái niệm : Tiến trình là chương trình trong thời gian thực hiện dưới sự quản lý của hệ điều hành.
ví dụ: mỗi sinh viên trong lớp 11th3a là một tiến trình, Thầy cũng là 1 tiến trình.Thầy hướng dẫn quá trình học tập cho sinh viên cũng giống như hệ điều hành phân phối điều hành cpu cho tiến trình làm việc.
.Mô hình chuyển trạng thái của tiến trình?
Tiến trình P1: vào hàng đợi Job-Queue ở trạng thái New, sẽ đợi 1 khoảng thời gian của quá trình điều phối chậm (Scheduler Long Term) của hệ điều hành(HĐH) để chọn tiến trình, sau khi được O.S chọn, P1 chuyển sang hàng đợi reday quueue và ở trạng thái Ready. Lúc này P1 chỉ đợi cấp CPU và running.
Sau một khỏang thời gian running, tiến trình P2 xuất hiện. Lúc này, hệ điều hành sẽ ghi lại thông tin của P1 vào thanh PCB1 bao gồm những thông tin: con trỏ, trạng thái của P1, số hiệu của tiến trình P1, Bộ đếm P1, nội dung của P1…Và chuyển P1 sang hàng đợi Waiting và chuyển trạng thái Ready. Lúc này, P2 sẽ được cấp CPU và running. Và sau một khỏang thời gian running, P2 cũng sẽ chuyển sang hàng đợi waiting và chuyển trạng thái ready, lúc này HĐH cũng ghi lại thông tin vào thanh ghi PCB2 như đã làm ở P1. Sau đó, HĐH sẽ load lại thông tin của PCB1 và P1 sẽ tiếp tục running. Quá trình này cũng sẽ lập lại cho P2. Đển khi P1 và P2 kết thúc.
Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái running trên một bộ xử lý
bất kỳ. Trong khi đó, nhiều tiến trình có thể ở trạng thái blocked hay ready.
Các cung chuyển tiếp trong sơ đồ trạng thái biễu diễn sáu sự chuyển trạng thái có thể xảy
ra trong các điều kiện sau :
• Tiến trình mới tạo được đưa vào hệ thống
• Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU
• Tiến trình kết thúc
• Tiến trình yêu cầu một tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó ; hoặc tiến trình phải chờ một sự kiện hay thao tácnhập/xuất.
• Bộ điều phối chọn một tiến trình khác để cho xử lý .
• Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát ; hay sự kiện hoặc thao tác nhập/xuất tiến trình đang đợi hoàn tất.
rất mong có sự đóng góp ý kiến của Thầy và các bạn!!!
NguyenHuuLinh31(113A)- Tổng số bài gửi : 33
Join date : 19/07/2012
Địng nghĩa tiến trình và các trạng thái của nó
Tiến trình là chương trình trong thời gian thực hiện - đặt dưới sự quản lý của HĐH .
Phân biệt tiến trình :
- Tiến trình hệ thống : khi khởi động máy các chương trình mặc định của hệ điều hành sẽ tự động chạy lên vd như windows Explore , desktop window manager ...
- Tiến trình người dùng : khi user cần sử dụng chương trình phục vụ cho cong việc thì sẽ kích hoạt chương trình cần dùng lên . vd : yahoo, word , ...
Các trạng thái tiến trình :
- Mới (New )- Tiến trình vửa được tạo lập
- Đang chạy (Running )- Các lệnh thực thi .
- Đang chờ ( waitting ) - Các lệnh đang chờ thực thi.
- Sẵn sàng (ready ) - Tiến trình chờ để ấn dịnh sẵn trong CPU .
- Kết thức ( Termnated )- Tiến trình vửa thực hiện xong .
Vd đời thường ( mình tự nghĩa ra nếu không chính xác ,thầy và các bạn đừng chê )
- Trong nhà hàng :
• các dụng cụ bàn ,ghế, khăn, chén , đũa .. là vd như tiến trình của hệ thống vì kkhi mở cửa đã chuẩn bị sẵn tất cá các thứ đó .
• Khi khách yêu cầu các món ăn cũng như nước uống thì là vd của tiến trình người dùngvì khi đó mới thực hiện những công việc khách hàng yêu cầu .
Admin
Bàn ghế, Khăn, Chén, Đũa,... là Tài nguyên hệ thống, và không thể là Tiến trình được !
Mình sửa lại ví dụ của mình - (thầy đã giảng lại trên lớp )
Trong nhà hàng :
• các nhân viên đang làm việc là vd như tiến trình của hệ thống vì khi mở cửa đã chuẩn bị sẵn tất cá các thứ đó .
• Khi khách yêu cầu các món ăn cũng như nước uống thì là vd của tiến trình người dùngvì khi đó mới thực hiện những công việc khách hàng yêu cầu .
Phân biệt tiến trình :
- Tiến trình hệ thống : khi khởi động máy các chương trình mặc định của hệ điều hành sẽ tự động chạy lên vd như windows Explore , desktop window manager ...
- Tiến trình người dùng : khi user cần sử dụng chương trình phục vụ cho cong việc thì sẽ kích hoạt chương trình cần dùng lên . vd : yahoo, word , ...
Các trạng thái tiến trình :
- Mới (New )- Tiến trình vửa được tạo lập
- Đang chạy (Running )- Các lệnh thực thi .
- Đang chờ ( waitting ) - Các lệnh đang chờ thực thi.
- Sẵn sàng (ready ) - Tiến trình chờ để ấn dịnh sẵn trong CPU .
- Kết thức ( Termnated )- Tiến trình vửa thực hiện xong .
Vd đời thường ( mình tự nghĩa ra nếu không chính xác ,thầy và các bạn đừng chê )
- Trong nhà hàng :
• các dụng cụ bàn ,ghế, khăn, chén , đũa .. là vd như tiến trình của hệ thống vì kkhi mở cửa đã chuẩn bị sẵn tất cá các thứ đó .
• Khi khách yêu cầu các món ăn cũng như nước uống thì là vd của tiến trình người dùngvì khi đó mới thực hiện những công việc khách hàng yêu cầu .
Admin
Bàn ghế, Khăn, Chén, Đũa,... là Tài nguyên hệ thống, và không thể là Tiến trình được !
Mình sửa lại ví dụ của mình - (thầy đã giảng lại trên lớp )
Trong nhà hàng :
• các nhân viên đang làm việc là vd như tiến trình của hệ thống vì khi mở cửa đã chuẩn bị sẵn tất cá các thứ đó .
• Khi khách yêu cầu các món ăn cũng như nước uống thì là vd của tiến trình người dùngvì khi đó mới thực hiện những công việc khách hàng yêu cầu .
NguyenNgocTrungNam (113A)- Tổng số bài gửi : 35
Join date : 16/07/2012
Phân biệt Job Queue ( hàng chờ công việc) và Ready Queue (hàng chờ sẵn sàng)
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:- Đề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: 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:- Đề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.
NguyenNgocTrungNam (113A)- Tổng số bài gửi : 35
Join date : 16/07/2012
câu 1 : trình bày khái niệm và mô hình chuyển trạng thái của tiến trình
New : tiến trình đang được tạo lập.
Running : các chỉ thị của tiến trình đang được xử lý.
waiting : tiến trình chờ được cấp phát một tài nguyên, hay chờ sự kiện xảy ra.
ready : tiến trình chờ được cấp phát CPU để xử lý.
terminated :tiến trình hoàn tất sử lý.
ví dụ ta lấy hai tiến trình p1 và p2 như sau :
Tiến trình P1: vào hàng đợi Job-Queue ở trạng thái New, sẽ đợi 1 khoảng thời gian của quá trình điều
phối chậm (Scheduler Long Term) của hệ điều hành(HĐH) để chọn tiến trình, sau khi được O.S chọn, P1
chuyển sang hàng đợi reday quueue và ở trạng thái Ready. Lúc này P1 chỉ đợi cấp CPU và running.
Sau một khỏang thời gian running, tiến trình P2 xuất hiện. Lúc này, hệ điều hành sẽ ghi lại thông tin của
P1 vào thanh PCB1 bao gồm những thông tin: con trỏ, trạng thái của P1, số hiệu của tiến trình P1, Bộ
đếm P1, nội dung của P1…Và chuyển P1 sang hàng đợi Waiting và chuyển trạng thái Ready. Lúc này, P2
sẽ được cấp CPU và running. Và sau một khoảng thời gian running, P2 cũng sẽ chuyển sang hàng đợi
waiting và chuyển trạng thái ready, lúc này HĐH cũng ghi lại thông tin vào thanh ghi PCB2 như đã làm
ở P1. Sau đó, HĐH sẽ load lại thông tin của PCB1 và P1 sẽ tiếp tục running. Quá trình này cũng sẽ lập
lại cho P2. đến khi P1 và P2 kết thúc
ví dụ : mỗi người trong lớp là một tiến trình. lúc 18' kém 15 đang ở trong trạng thái vào lớp, từ 18' các bạn bắt đầu vào học và bắt đầu ghi chép. đến 21' các bạn ra về
Được sửa bởi PhamQuocAnh02 (113A) ngày 30/7/2012, 23:08; sửa lần 1.
PhamQuocAnh02 (113A)- Tổng số bài gửi : 27
Join date : 16/07/2012
Thảo luận bài 4
Tại sao cần phải cân đối hướng CPU và hướng I/O?
VuDinhThao47 (113A)- Tổng số bài gửi : 11
Join date : 23/07/2012
Những lý do cộng tác giữa các tiến trình
Chia sẻ thông tin (Information Sharing): Một tiến trình sử dụng thông tin do tiến trình khác cung cấp.
Ví dụ: các bạn trong lớp chia nhóm học. Nhóm một nghiên cứu chương 1, nhóm hai nghiên cứu chương 2. Sau đó, hai nhóm trao đổi thông tin cho nhau. Kết quả hai nhóm mau chóng tìm hiểu hết hai chương.
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.
Ví dụ: mỗi bạn học một bài, đảm bảo tính đơn thể.
Đả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ả...
Ví dụ: các bạn trong lớp chia nhóm học. Nhóm một nghiên cứu chương 1, nhóm hai nghiên cứu chương 2. Sau đó, hai nhóm trao đổi thông tin cho nhau. Kết quả hai nhóm mau chóng tìm hiểu hết hai chương.
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.
Ví dụ: mỗi bạn học một bài, đảm bảo tính đơn thể.
Đả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ả...
NguyenNgocTrungNam (113A)- Tổng số bài gửi : 35
Join date : 16/07/2012
Câu 2: Trình bày mô hình luân chuyển CPU giữa hai tiến trình và phân tích vai trò của khối kiểm soát tiến trình PCB
giả sử lúc 8 giờ tiến trình P0 đang chạy, đến 8'15 tiến trình bị ngắt,HĐH sẽ lưu trạng thái P0 vào PCB0. HĐH nạp lại trạng thái từ PCB1 cho tiến trình P1, P1 tiếp tục chạy. đến 8'30 P1 không chạy nữa nó do nó hết thời gian cấp phép và nó được lưu trạng thái vào PCB1 và HĐH lại nạp trạng thái PCB0 và PCB0 lại được chạy
ví dụ: có bạn A lên bảng làm bài tạp viết a= b+c, lúc sau thầy bảo bạn A xuống và bạn B lên. trước đó bạn A lưu bài làm vào vở của bạn ấy. bạn B lên làm bài tập viết x=z*z và sau đó thầy lại bảo bạn B về chỗ và bạn A lại lên, trước đó bạn B đã lưu bài làm của mình vào vở của bạn ấy và khi bạn A lên sẽ thực hiện tiếp công việc của mình còn đang dang dở
Phân tích vai trò của khối kiểm soát tiến trình
PhamQuocAnh02 (113A)- Tổng số bài gửi : 27
Join date : 16/07/2012
Re: Thảo luận Bài 4
trả lời: Để cân bằng tải cho toàn hệ thốngVuDinhThao47 (113A) đã viết:Tại sao cần phải cân đối hướng CPU và hướng I/O?
LeLamThang (113A)- Tổng số bài gửi : 35
Join date : 15/02/2012
Câu hỏi lý thuyết của bài 4
Câu 1: Trình bày khái niệm và mô hình chuyển trạng thái của tiến trình
Câu 2: Trình bày mô hình luân chuyển CPU giữa 2 tiến trình va phân tích vai trò của khối kiểm soát tiến trình PCB
Câu 3: Phân biệt hàng chờ công việc với hàng chờ sẵn sàng. qua đó làm rõ chức năng của điều phối chậm và điều phối nhanh ( Chú ý: nhấn mạnh điều phối chậm, tại sao lại cần? ...)
Câu 4 Thông qua bài toán sản xuất và tiêu thụ, hãy trình bày những lý do cộng tác trong công việc của các tiến trình. Chú ý: phải phát biểu được bài toán với 2 loại tiến trình sản xuất và tiêu thụ.
Câu 2: Trình bày mô hình luân chuyển CPU giữa 2 tiến trình va phân tích vai trò của khối kiểm soát tiến trình PCB
Câu 3: Phân biệt hàng chờ công việc với hàng chờ sẵn sàng. qua đó làm rõ chức năng của điều phối chậm và điều phối nhanh ( Chú ý: nhấn mạnh điều phối chậm, tại sao lại cần? ...)
Câu 4 Thông qua bài toán sản xuất và tiêu thụ, hãy trình bày những lý do cộng tác trong công việc của các tiến trình. Chú ý: phải phát biểu được bài toán với 2 loại tiến trình sản xuất và tiêu thụ.
Trannguyenkhoa26 (113A)- Tổng số bài gửi : 35
Join date : 16/07/2012
Age : 35
Câu 4
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:
§ 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:
Trannguyenkhoa26 (113A)- Tổng số bài gửi : 35
Join date : 16/07/2012
Age : 35
Câu 2 : Trình bày mô hình luân chuyển CPU giữa 2 tiến trình và phân tích vai trò của khối kiểm soát tiến trình PCB
- Mô hình luân chuyển giữa 2 tiến trình :
- Phân tích vai trò của khối kiểm soát tiến trình PCB :
+ PCB là một cấu trúc dữ liệu được hệ điều hành duy trì cho mỗi tiến trình dùng để chứa các thông tin cần thiết về tiến trình đó. PCB chứa "Bản sao công việc của tiến trình".
+ Nó lưu lại trạng thái của tiến trình tại thời điểm đang xét . Trạng thái này bao gồm (các địa chỉ liên kết của tiến trình & dữ liệu, số hiệu tiến trình, bộ đếm lệnh, nội dung các thanh ghi, giới hại bộ nhớ của tiến trình, danh sách các file đang mở, các thông tin về thời gian thống kê tiến trình hiện tại)
- Phân tích vai trò của khối kiểm soát tiến trình PCB :
+ PCB là một cấu trúc dữ liệu được hệ điều hành duy trì cho mỗi tiến trình dùng để chứa các thông tin cần thiết về tiến trình đó. PCB chứa "Bản sao công việc của tiến trình".
+ Nó lưu lại trạng thái của tiến trình tại thời điểm đang xét . Trạng thái này bao gồm (các địa chỉ liên kết của tiến trình & dữ liệu, số hiệu tiến trình, bộ đếm lệnh, nội dung các thanh ghi, giới hại bộ nhớ của tiến trình, danh sách các file đang mở, các thông tin về thời gian thống kê tiến trình hiện tại)
NguyenThiThuThuy (113A)- Tổng số bài gửi : 18
Join date : 17/07/2012
Age : 36
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. Có nhiều thời gian xử lý hơn.
Ready Queue: + là hàng chờ sẵn sàng, chứa các tiến trình chờ được 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.
+ Có ít thời gian so với Job Queue.
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.
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).
VD của thầy: khoảng 20 bạn (sơ tuyển), sau đó trong 20 bạn này mới chọn ra 5 bạn để đưa vào Ready Queue, tiếp theo, mỗi thời điểm chỉ lấy 1 bạn lên bảng trong số đó.
- Trò chơi "Ai là triệu phú" sử dụng nguyên lý này.
Ready Queue: + là hàng chờ sẵn sàng, chứa các tiến trình chờ được 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.
+ Có ít thời gian so với Job Queue.
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.
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).
VD của thầy: khoảng 20 bạn (sơ tuyển), sau đó trong 20 bạn này mới chọn ra 5 bạn để đưa vào Ready Queue, tiếp theo, mỗi thời điểm chỉ lấy 1 bạn lên bảng trong số đó.
- Trò chơi "Ai là triệu phú" sử dụng nguyên lý này.
Trannguyenkhoa26 (113A)- Tổng số bài gửi : 35
Join date : 16/07/2012
Age : 35
Câu 1 : Trình bày khái niệm và mô hình chuyển trạng thái của tiến trình
- Khái niệm :
Tiến trình là chương trình trong thời gian thực hiện - đặt dưới sự quản lý của HĐH .
Phân biệt tiến trình :
+ Tiến trình hệ thống : khi khởi động máy các chương trình mặc định của hệ điều hành sẽ tự động chạy lên vd như windows Explore , desktop window manager ...
+ Tiến trình người dùng : khi user cần sử dụng chương trình phục vụ cho công việc thì sẽ kích hoạt chương trình cần dùng lên . vd : yahoo, word , ...
Các trạng thái tiến trình :
+ New: tiến trình đang được tạo lập.
+ Running : các chỉ thị của tiến trình đang được xử lý.
+ Waiting: tiến trình chờ được cấp phát một tài nguyên, hay chờ một sự kiện xảy ra .
+ Ready : tiến trình chờ được cấp phát CPU để xử lý.
+ Terminated: tiến trình hoàn tất xử lý.
Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái running trên một bộ xử lý bất kỳ. Trong khi đó, nhiều tiến trình có thể ở trạng thái blocked hay ready.
Các cung chuyển tiếp trong sơ đồ trạng thái biễu diễn sáu sự chuyển trạng thái có thể xảy ra trong các điều kiện sau :
• Tiến trình mới tạo được đưa vào hệ thống
• Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU
• Tiến trình kết thúc
• Tiến trình yêu cầu một tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó ; hoặc tiến trình phải chờ một sự kiện hay thao tác nhập/xuất.
• Bộ điều phối chọn một tiến trình khác để cho xử lý .
• Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát ; hay sự kiện hoặc thao tác nhập/xuất tiến trình đang đợi hoàn tất.
- Mô hình chuyển trạng thái của tiến trình :
Tiến trình là chương trình trong thời gian thực hiện - đặt dưới sự quản lý của HĐH .
Phân biệt tiến trình :
+ Tiến trình hệ thống : khi khởi động máy các chương trình mặc định của hệ điều hành sẽ tự động chạy lên vd như windows Explore , desktop window manager ...
+ Tiến trình người dùng : khi user cần sử dụng chương trình phục vụ cho công việc thì sẽ kích hoạt chương trình cần dùng lên . vd : yahoo, word , ...
Các trạng thái tiến trình :
+ New: tiến trình đang được tạo lập.
+ Running : các chỉ thị của tiến trình đang được xử lý.
+ Waiting: tiến trình chờ được cấp phát một tài nguyên, hay chờ một sự kiện xảy ra .
+ Ready : tiến trình chờ được cấp phát CPU để xử lý.
+ Terminated: tiến trình hoàn tất xử lý.
Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái running trên một bộ xử lý bất kỳ. Trong khi đó, nhiều tiến trình có thể ở trạng thái blocked hay ready.
Các cung chuyển tiếp trong sơ đồ trạng thái biễu diễn sáu sự chuyển trạng thái có thể xảy ra trong các điều kiện sau :
• Tiến trình mới tạo được đưa vào hệ thống
• Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU
• Tiến trình kết thúc
• Tiến trình yêu cầu một tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó ; hoặc tiến trình phải chờ một sự kiện hay thao tác nhập/xuất.
• Bộ điều phối chọn một tiến trình khác để cho xử lý .
• Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát ; hay sự kiện hoặc thao tác nhập/xuất tiến trình đang đợi hoàn tất.
- Mô hình chuyển trạng thái của tiến trình :
NguyenThiThuThuy (113A)- Tổng số bài gửi : 18
Join date : 17/07/2012
Age : 36
Câu 3: Phân biệt các loại trình điều phối và chức năng
Điều phối chậm (Long-term scheduler) :
• Chọn process nào sẽ được đưa vào ready queue (từ New chuyển sang Ready)
• Kiểm soát Độ đa chương (số tiến trình trong bộ nhớ).
• Do có nhiều thời gian (tới vài phút), loại scheduler này có điều kiện để lựa chọn kỹ càng nhằm phối hợp cân đối 2 loại tiến trình
+ Hướng CPU: tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận (phục vụ) cho nhiều người (nhiều tiến trình).
.+Hướng I/O: tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU), các nhân viên trong công ty chỉ ngồi nghiên cứu (I/O), không sử dụng đến ô tô. Vậy quá lãng phí ô tô (CPU)
Điều phối nhanh (Short-term scheduler ) :
• Còn gọi là Điều phối CPU.
• Chọn tiến trình từ Ready Queue để cấp CPU.
• Có tần suất công việc cao. Thường cứ 100 ms lại tốn 10 ms để xác định tiến trình kế tiếp, như vậy 10/(100+10)=9% thời gian CPU được dùng để điều phối công việc.
Điều phối vừa (Medium-term scheduler) :
• Là Short-Term Scheduler được thêm chức năng rút các tiến trình khỏi bộ nhớ, dẫn đến làm giảm Độ đa chương, sau đó đưa lại chúng vào bộ nhớ vào thời điểm thích hợp để tiếp tục thực hiện từ vị trí bị tạm ngừng trước đó.
• Nhờ cách điều phối này, hỗn hợp các tiến trình trong Ready Queue có tính tối ưu hơn.
Ví dụ: Phòng thực hành nhỏ, nhưng nhiều sinh viên thực hành (nhiều tiến trình). Thầy sẽ mời một số bạn ra khỏi lớp (rút tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong phòng thực hành xong thầy sẽ mời các bạn bên ngoài vào phòng (đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).
• Chọn process nào sẽ được đưa vào ready queue (từ New chuyển sang Ready)
• Kiểm soát Độ đa chương (số tiến trình trong bộ nhớ).
• Do có nhiều thời gian (tới vài phút), loại scheduler này có điều kiện để lựa chọn kỹ càng nhằm phối hợp cân đối 2 loại tiến trình
+ Hướng CPU: tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận (phục vụ) cho nhiều người (nhiều tiến trình).
.+Hướng I/O: tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU), các nhân viên trong công ty chỉ ngồi nghiên cứu (I/O), không sử dụng đến ô tô. Vậy quá lãng phí ô tô (CPU)
Điều phối nhanh (Short-term scheduler ) :
• Còn gọi là Điều phối CPU.
• Chọn tiến trình từ Ready Queue để cấp CPU.
• Có tần suất công việc cao. Thường cứ 100 ms lại tốn 10 ms để xác định tiến trình kế tiếp, như vậy 10/(100+10)=9% thời gian CPU được dùng để điều phối công việc.
Điều phối vừa (Medium-term scheduler) :
• Là Short-Term Scheduler được thêm chức năng rút các tiến trình khỏi bộ nhớ, dẫn đến làm giảm Độ đa chương, sau đó đưa lại chúng vào bộ nhớ vào thời điểm thích hợp để tiếp tục thực hiện từ vị trí bị tạm ngừng trước đó.
• Nhờ cách điều phối này, hỗn hợp các tiến trình trong Ready Queue có tính tối ưu hơn.
Ví dụ: Phòng thực hành nhỏ, nhưng nhiều sinh viên thực hành (nhiều tiến trình). Thầy sẽ mời một số bạn ra khỏi lớp (rút tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong phòng thực hành xong thầy sẽ mời các bạn bên ngoài vào phòng (đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).
HaHoangCongTien80 (113A)- Tổng số bài gửi : 22
Join date : 17/07/2012
1. Trình bày khái niệm và mô hình chuyển trạng thái của tiến trình
Tiến trình là chương trình trong thời gian thực hiện - đặt dưới sự quản lý của HĐH .
Phân biệt tiến trình :
- Tiến trình hệ thống : khi khởi động máy các chương trình mặc định của hệ điều hành sẽ tự động chạy lên. VD: Windows Explore , desktop window manager ...
- Tiến trình người dùng : khi user cần sử dụng chương trình phục vụ cho công việc thì sẽ kích hoạt chương trình cần dùng lên . VD : yahoo, word , ...
Các trạng thái tiến trình :
- New: tiến trình đang được tạo lập.
- Running : các chỉ thị của tiến trình đang được xử lý.
- Waiting: tiến trình chờ được cấp phát một tài nguyên, hay chờ một sự kiện xảy ra .
- Ready : tiến trình chờ được cấp phát CPU để xử lý.
- Terminated: tiến trình hoàn tất xử lý.
Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái running trên một bộ xử lý bất kỳ. Trong khi đó, nhiều tiến trình có thể ở trạng thái blocked hay ready.
Các cung chuyển tiếp trong sơ đồ trạng thái biễu diễn sáu sự chuyển trạng thái có thể xảy ra trong các điều kiện sau :
- Tiến trình mới tạo được đưa vào hệ thống
- Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU
- Tiến trình kết thúc
- Tiến trình yêu cầu một tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó ; hoặc tiến trình phải chờ một sự kiện hay thao tác nhập/xuất.
- Bộ điều phối chọn một tiến trình khác để cho xử lý .
- Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát ; hay sự kiện hoặc thao tác nhập/xuất tiến trình đang đợi hoàn tất.
Phân biệt tiến trình :
- Tiến trình hệ thống : khi khởi động máy các chương trình mặc định của hệ điều hành sẽ tự động chạy lên. VD: Windows Explore , desktop window manager ...
- Tiến trình người dùng : khi user cần sử dụng chương trình phục vụ cho công việc thì sẽ kích hoạt chương trình cần dùng lên . VD : yahoo, word , ...
Các trạng thái tiến trình :
- New: tiến trình đang được tạo lập.
- Running : các chỉ thị của tiến trình đang được xử lý.
- Waiting: tiến trình chờ được cấp phát một tài nguyên, hay chờ một sự kiện xảy ra .
- Ready : tiến trình chờ được cấp phát CPU để xử lý.
- Terminated: tiến trình hoàn tất xử lý.
Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái running trên một bộ xử lý bất kỳ. Trong khi đó, nhiều tiến trình có thể ở trạng thái blocked hay ready.
Các cung chuyển tiếp trong sơ đồ trạng thái biễu diễn sáu sự chuyển trạng thái có thể xảy ra trong các điều kiện sau :
- Tiến trình mới tạo được đưa vào hệ thống
- Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU
- Tiến trình kết thúc
- Tiến trình yêu cầu một tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó ; hoặc tiến trình phải chờ một sự kiện hay thao tác nhập/xuất.
- Bộ điều phối chọn một tiến trình khác để cho xử lý .
- Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát ; hay sự kiện hoặc thao tác nhập/xuất tiến trình đang đợi hoàn tất.
huynhquanghao_I92C- Tổng số bài gửi : 21
Join date : 15/11/2010
Re: Thảo luận Bài 4
Câu hỏi thảo luận:
- Tại sao hướng CPU hết là không tốt?
- Tại sao hướng I/O hết là không tốt?
Cho ví dụ minh họa.
- Tại sao hướng CPU hết là không tốt?
- Tại sao hướng I/O hết là không tốt?
Cho ví dụ minh họa.
TrangSiMinhHai (113A)- Tổng số bài gửi : 34
Join date : 17/07/2012
Age : 34
Đến từ : Xì Gòn
Phát biểu bài toán sản xuất và tiêu thụ
Phát biểu:
Bài toán sản xuất tiêu thụ được phát biểu chung như sau:
Có một bộ đệm(Buffer) và 2 tiến trình sản xuất Producer và tiến trình tiêu thụ Consumer.Tiến trình Producer lần lượt sản xuất các sản phẩm S1, S2 vào khoang của bộ đệm Buffer.Tiến trình tieu thụ lần lượt lấy các sản phẩm ra khỏi bộ đệm.Công việc của Producer và Consumer cần được đồng bộ hóa tiến trình Consumer không thể lấy sản phẩm ra khi bộ đệm trống, và tiến trình Producer không thể sản xuất khi bộ đệm đầy.
Đồng bộ hóa bằng 2 đèn hiệu semFull và semEmpty.
CODE:
Producer()
{
//Chờ trong khi bộ đệm đầy
WaitForSingleObject(semFull, INFINITE);
// Sản xuất sản phẩm và đưa vào Buffer
ReleaseSemaphore(semEmpty);
//Bộ đệm đã có sản phẩm
}
CODE:
Consumer()
{
//Chờ đến khi có sản phẩm
WaitForSingleObject(semEmpty, INFINITE);
// Tiêu thụ sản phẩm
ReleaseSemaphore(semFull);
//Bộ đệm đã có chỗ trống
}
Bài toán sản xuất tiêu thụ được phát biểu chung như sau:
Có một bộ đệm(Buffer) và 2 tiến trình sản xuất Producer và tiến trình tiêu thụ Consumer.Tiến trình Producer lần lượt sản xuất các sản phẩm S1, S2 vào khoang của bộ đệm Buffer.Tiến trình tieu thụ lần lượt lấy các sản phẩm ra khỏi bộ đệm.Công việc của Producer và Consumer cần được đồng bộ hóa tiến trình Consumer không thể lấy sản phẩm ra khi bộ đệm trống, và tiến trình Producer không thể sản xuất khi bộ đệm đầy.
Đồng bộ hóa bằng 2 đèn hiệu semFull và semEmpty.
CODE:
Producer()
{
//Chờ trong khi bộ đệm đầy
WaitForSingleObject(semFull, INFINITE);
// Sản xuất sản phẩm và đưa vào Buffer
ReleaseSemaphore(semEmpty);
//Bộ đệm đã có sản phẩm
}
CODE:
Consumer()
{
//Chờ đến khi có sản phẩm
WaitForSingleObject(semEmpty, INFINITE);
// Tiêu thụ sản phẩm
ReleaseSemaphore(semFull);
//Bộ đệm đã có chỗ trống
}
TranThichThem (113A)- Tổng số bài gửi : 41
Join date : 18/07/2012
Age : 34
Ý Nghĩa Của Hàm Fork ()
Hàm fork() là hàm chỉ có trong HĐH Unix mà trong Windows không có . Fork tạo ra một process con (child process) là copy (nhân bản) của chính process tạo ra nó (parent process) (làm mình nhớ đến clone() để tạo copy một object trong OOP). Để phân biệt giữa parent process và child process chính là giá trị trả về của hàm fork. Ở parent process thì hàm fork sẽ trả về chính là processID của tiến trình con, còn ở child process thì fork sẽ trả về 0. Fork sẽ trả về 2 lần ở tiến trình cha và tiến trình con.
#include
#include
pid_t fork(void);
Ngay khi hàm fork được gọi thì ngay lập tức phải suy nghĩ song song 2 process. Tất cả những instruction tiếp theo sau lệnh fork đều được thực hiện ở cả hai process (parent and child). Nghĩa là mã lệnh thực thi của cả 2 tiến trình là giống nhau. Hai tiến trình này có không gian địa chỉ riêng rẽ (virtual memory 4G bộ nhớ), stack riêng rẽ, vùng dữ liệu riêng mà. Ở tiến trình con thì sẽ có thêm PPID (parent processID) chính là processID của tiến trình cha.
pid_t childpid;
childpid = fork();
switch (childpid) {
case -1: // Can not fork new process
break;
case 0: // Child process
break;
default: // Parent process
break;
}
Thế nếu muốn nhân bản nhiều child process thì làm thế nào. Khi ấy sẽ không thể suy nghĩ rằng hãy đặt các lệnh fork liên tiếp( fork(); fork() ). Vì ngay sau khi thực hiện lệnh fork thì tiến trình cha đã được nhân bản và tiến trình con cũng sẽ thực hiện lệnh fork tiếp và nhân bản chính tiến trình con đó. Khi ấy ta sẽ có một cây nhị phân tăng theo cấp số nhân 2. Thay vì đó ta hãy đặt lệnh fork tạo process con tiếp theo ở đoạn mã của tiến trình cha.
switch (childpid) {
. . .
default: // Parent process
newchildpid = fork(); // Tạo new child process của tiến trình cha ở đây
switch ( newchildpid )
. . .
break;
}
Tạo các con theo cùng bậc thì chúng ta lại code theo “chiều dọc” (các đoạn switch lồng nhau).
#include
#include
pid_t fork(void);
Ngay khi hàm fork được gọi thì ngay lập tức phải suy nghĩ song song 2 process. Tất cả những instruction tiếp theo sau lệnh fork đều được thực hiện ở cả hai process (parent and child). Nghĩa là mã lệnh thực thi của cả 2 tiến trình là giống nhau. Hai tiến trình này có không gian địa chỉ riêng rẽ (virtual memory 4G bộ nhớ), stack riêng rẽ, vùng dữ liệu riêng mà. Ở tiến trình con thì sẽ có thêm PPID (parent processID) chính là processID của tiến trình cha.
pid_t childpid;
childpid = fork();
switch (childpid) {
case -1: // Can not fork new process
break;
case 0: // Child process
break;
default: // Parent process
break;
}
Thế nếu muốn nhân bản nhiều child process thì làm thế nào. Khi ấy sẽ không thể suy nghĩ rằng hãy đặt các lệnh fork liên tiếp( fork(); fork() ). Vì ngay sau khi thực hiện lệnh fork thì tiến trình cha đã được nhân bản và tiến trình con cũng sẽ thực hiện lệnh fork tiếp và nhân bản chính tiến trình con đó. Khi ấy ta sẽ có một cây nhị phân tăng theo cấp số nhân 2. Thay vì đó ta hãy đặt lệnh fork tạo process con tiếp theo ở đoạn mã của tiến trình cha.
switch (childpid) {
. . .
default: // Parent process
newchildpid = fork(); // Tạo new child process của tiến trình cha ở đây
switch ( newchildpid )
. . .
break;
}
Tạo các con theo cùng bậc thì chúng ta lại code theo “chiều dọc” (các đoạn switch lồng nhau).
TranThichThem (113A)- Tổng số bài gửi : 41
Join date : 18/07/2012
Age : 34
TRÌNH ĐIỀU PHỐI CHẬM VÀ TRÌNH ĐIỀU PHỐI NHANH
-Điều phối chậm (long–term queue) : chọn 1 tiến trình từ job queue đưa sang qua Ready queue (chuyển từ New sang Ready). Scheduler lựa chọn kỹ các tiến trình nhằm phối hợp cân bằng giữa hai loại tiến trình . Mục đích nhằm cân bằng tải giữa hai tiến trình.
+ Hướng CPU(CPU-BOUND) tính toán nhiều , ít I/O.
+ Hướng I/O(I/O BOUND) tính toán ít , nhiều I/O.
Mục đích của cân bằng tải trong điều phối chậm:
- Nếu hướng CPU nhiều thì CPU luôn trong trạng thái bận, dẫn đến việc nhiều tiến trình buộc phải chờ.
- Nếu hướng I/O nhiều thì CPU luôn rỗi -> lãng phí CPU.
Vd: Trong công ty có 1 chiếc ô tô, có nhiều người có khuynh hướng sử dụng ô tô để phục vụ công viêc ở xa, nhưng cũng có nhiều người không sử dụng ô tô mà ở lại công ty để nghiên cứu. Vậy nên công ty phải cách để cân bằng giữa hướng ô tô và hướng nghiên cứu.
-Điều phối nhanh (Short-term scheduler) : Chọn tiến trình sẽ chiếm CPU để xử lý (chuyển từ trạng thái Ready sang trạng thái Runing).
Vd: trong một lớp học người giảng viên gọi nhiều bạn lên kiểm tra bài (điều phối chậm) đang trong job queue , ví dụ là 7 bạn được chọn để đưa vào Ready queue sau đó mới gọi liên tục 1 trong 7 bạn này lên bảng (trình điều phối nhanh) .
Vd: các học sinh đã được chọn để lên bảng thì họ đã biết công việc của mình là phải làm gì .
+ Hướng CPU(CPU-BOUND) tính toán nhiều , ít I/O.
+ Hướng I/O(I/O BOUND) tính toán ít , nhiều I/O.
Mục đích của cân bằng tải trong điều phối chậm:
- Nếu hướng CPU nhiều thì CPU luôn trong trạng thái bận, dẫn đến việc nhiều tiến trình buộc phải chờ.
- Nếu hướng I/O nhiều thì CPU luôn rỗi -> lãng phí CPU.
Vd: Trong công ty có 1 chiếc ô tô, có nhiều người có khuynh hướng sử dụng ô tô để phục vụ công viêc ở xa, nhưng cũng có nhiều người không sử dụng ô tô mà ở lại công ty để nghiên cứu. Vậy nên công ty phải cách để cân bằng giữa hướng ô tô và hướng nghiên cứu.
-Điều phối nhanh (Short-term scheduler) : Chọn tiến trình sẽ chiếm CPU để xử lý (chuyển từ trạng thái Ready sang trạng thái Runing).
Vd: trong một lớp học người giảng viên gọi nhiều bạn lên kiểm tra bài (điều phối chậm) đang trong job queue , ví dụ là 7 bạn được chọn để đưa vào Ready queue sau đó mới gọi liên tục 1 trong 7 bạn này lên bảng (trình điều phối nhanh) .
Vd: các học sinh đã được chọn để lên bảng thì họ đã biết công việc của mình là phải làm gì .
TrangSiMinhHai (113A)- Tổng số bài gửi : 34
Join date : 17/07/2012
Age : 34
Đến từ : Xì Gòn
Lý do của việc cộng tác giữa các tiến trình với nhau
- Chia sẽ thông tin(Information Sharing): Một tiến trình sử dụng thông tin do tiến trình khác cung cấp.
- Tăng tốc tính toán (Computation Speedup): Các tiến trình làm việc song song trên cùng một hoặc nhiều máy tính để 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 riê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ó khả năng làm nhiều việc cùng một lúc: Soạn thảo, In ấn, Lấy file về,...
- Tăng tốc tính toán (Computation Speedup): Các tiến trình làm việc song song trên cùng một hoặc nhiều máy tính để 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 riê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ó khả năng làm nhiều việc cùng một lúc: Soạn thảo, In ấn, Lấy file về,...
TrangSiMinhHai (113A)- Tổng số bài gửi : 34
Join date : 17/07/2012
Age : 34
Đến từ : Xì Gòn
thảo luận bài 4
tại sao tiến trình chỉ hướng cpu là không tốt? chỉ hướng I/O không tốt? ví dụ.
theo mình nghĩ nếu tiến trình chỉ hướng cpu thì bắt buộc cpu làm việc với cường độ lớn và khả năng giảm tuổi thọ cpu là rất lớn. Còn tiến trình chỉ hướng I/O thì lúc đó cpu sẽ rảnh không làm gì thật là lãng phí tài nguyên nên cần có sự dung hòa giữa hướng cpu và hướng I/O để hiệu suất công việc thật có hiệu quả.
ví dụ: trong một nhóm có 2 bạn làm đề tài mà chỉ có 1 bạn trong đó làm việc, còn người kia không làm gì thì công việc không kết thúc sớm và không có hiệu quả.Nhưng ngược lại, nếu hai bạn phân công công việc cho nhau cả hai cùng làm thì công viêc sẽ nhanh hơn và đạt kết quả tốt hơn.
theo mình nghĩ nếu tiến trình chỉ hướng cpu thì bắt buộc cpu làm việc với cường độ lớn và khả năng giảm tuổi thọ cpu là rất lớn. Còn tiến trình chỉ hướng I/O thì lúc đó cpu sẽ rảnh không làm gì thật là lãng phí tài nguyên nên cần có sự dung hòa giữa hướng cpu và hướng I/O để hiệu suất công việc thật có hiệu quả.
ví dụ: trong một nhóm có 2 bạn làm đề tài mà chỉ có 1 bạn trong đó làm việc, còn người kia không làm gì thì công việc không kết thúc sớm và không có hiệu quả.Nhưng ngược lại, nếu hai bạn phân công công việc cho nhau cả hai cùng làm thì công viêc sẽ nhanh hơn và đạt kết quả tốt hơn.
nguyentuannghiaem _(113A)- Tổng số bài gửi : 9
Join date : 19/07/2012
Phân biệt các loại trình điều phối và chức năng
Điều phối chậm (Long-term scheduler) :
• Chọn process nào sẽ được đưa vào ready queue (từ New chuyển sang Ready)
• Kiểm soát Độ đa chương (số tiến trình trong bộ nhớ).
• Do có nhiều thời gian (tới vài phút), loại scheduler này có điều kiện để lựa chọn kỹ càng nhằm phối hợp cân đối 2 loại tiến trình
+ Hướng CPU: tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận (phục vụ) cho nhiều người (nhiều tiến trình).
.+Hướng I/O: tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU), các nhân viên trong công ty chỉ ngồi nghiên cứu (I/O), không sử dụng đến ô tô. Vậy quá lãng phí ô tô (CPU)
Điều phối nhanh (Short-term scheduler ) :
• Còn gọi là Điều phối CPU.
• Chọn tiến trình từ Ready Queue để cấp CPU.
• Có tần suất công việc cao. Thường cứ 100 ms lại tốn 10 ms để xác định tiến trình kế tiếp, như vậy 10/(100+10)=9% thời gian CPU được dùng để điều phối công việc.
Điều phối vừa (Medium-term scheduler) :
• Là Short-Term Scheduler được thêm chức năng rút các tiến trình khỏi bộ nhớ, dẫn đến làm giảm Độ đa chương, sau đó đưa lại chúng vào bộ nhớ vào thời điểm thích hợp để tiếp tục thực hiện từ vị trí bị tạm ngừng trước đó.
• Nhờ cách điều phối này, hỗn hợp các tiến trình trong Ready Queue có tính tối ưu hơn.
Ví dụ: Phòng thực hành nhỏ, nhưng nhiều sinh viên thực hành (nhiều tiến trình). Thầy sẽ mời một số bạn ra khỏi lớp (rút tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong phòng thực hành xong thầy sẽ mời các bạn bên ngoài vào phòng (đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).
• Chọn process nào sẽ được đưa vào ready queue (từ New chuyển sang Ready)
• Kiểm soát Độ đa chương (số tiến trình trong bộ nhớ).
• Do có nhiều thời gian (tới vài phút), loại scheduler này có điều kiện để lựa chọn kỹ càng nhằm phối hợp cân đối 2 loại tiến trình
+ Hướng CPU: tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận (phục vụ) cho nhiều người (nhiều tiến trình).
.+Hướng I/O: tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU), các nhân viên trong công ty chỉ ngồi nghiên cứu (I/O), không sử dụng đến ô tô. Vậy quá lãng phí ô tô (CPU)
Điều phối nhanh (Short-term scheduler ) :
• Còn gọi là Điều phối CPU.
• Chọn tiến trình từ Ready Queue để cấp CPU.
• Có tần suất công việc cao. Thường cứ 100 ms lại tốn 10 ms để xác định tiến trình kế tiếp, như vậy 10/(100+10)=9% thời gian CPU được dùng để điều phối công việc.
Điều phối vừa (Medium-term scheduler) :
• Là Short-Term Scheduler được thêm chức năng rút các tiến trình khỏi bộ nhớ, dẫn đến làm giảm Độ đa chương, sau đó đưa lại chúng vào bộ nhớ vào thời điểm thích hợp để tiếp tục thực hiện từ vị trí bị tạm ngừng trước đó.
• Nhờ cách điều phối này, hỗn hợp các tiến trình trong Ready Queue có tính tối ưu hơn.
Ví dụ: Phòng thực hành nhỏ, nhưng nhiều sinh viên thực hành (nhiều tiến trình). Thầy sẽ mời một số bạn ra khỏi lớp (rút tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong phòng thực hành xong thầy sẽ mời các bạn bên ngoài vào phòng (đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).
dothanhnhan44 (113A)- Tổng số bài gửi : 17
Join date : 17/07/2012
Re: Thảo luận Bài 4
TrangSiMinhHai (113A) đã viết:Câu hỏi thảo luận:
- Tại sao hướng CPU hết là không tốt?
- Tại sao hướng I/O hết là không tốt?
Cho ví dụ minh họa.
nếu hướng CPU thì CPU sẽ luôn trong trình trạng làm việc .
còn nếu hướng I/O hết thì CPU sẽ luôn rãnh rỗi như vậy sẽ rất lãng phí CPU .
DoVanTan(113A)- Tổng số bài gửi : 26
Join date : 16/07/2012
Age : 35
Đến từ : Trà Vinh
Re: Thảo luận Bài 4
hướng CPU: sử dụng nhiều CPUVuDinhThao47 (113A) đã viết:Tại sao cần phải cân đối hướng CPU và hướng I/O?
hướng I/O: ít sử dụng CPU, làm lãng phí tài nguyên
Vậy, cần phải cân bằng hướng CPU và hướng I/O để hệ thống được ổn định và tối ưu nhất
TranThiThuyHang79 (113A)- Tổng số bài gửi : 46
Join date : 24/07/2012
Age : 34
Đến từ : Tiền Giang
Trang 1 trong tổng số 6 trang • 1, 2, 3, 4, 5, 6
Similar topics
» Giải giúp bài RRS này nhé
» Thảo luận các vấn đề của Môn học
» Thảo luận Bài 3
» Thảo luận bài 4
» Thảo luận Bài 7
» Thảo luận các vấn đề của Môn học
» Thảo luận Bài 3
» Thảo luận bài 4
» Thảo luận Bài 7
Trang 1 trong tổng số 6 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết