Thảo luận Bài 4
+111
DangLeHieu(I102C)
NguyenTuanHai_I12A
Đỗ Phan Diễm Hương I12A
TRANTHINHPHAT (I11C)
lengocthuthao89 (i11c)
NguyenthechinhI12A
DaoQuangTri38(I12A)
LyHuynhThanhYen (I11C)
BuiDaiNghia-102C
nguyenhuutho
TrinhThiPhuongThaoI12C
TranVanBao(I12A)
tranthithanhuyen85 (I11C)
KimHue36 (I11C)
phanngocthinh(i12a)
fantomas113
PhamDucPhuong(I12A)
VoTrongQuyet-I12A
vominhhai_09H1012028
nguyenvanhonglac_0066
leminhtam13(I12A)
TruongQuocTrung_I12A
HuaTranTuQuyen(I12A)
NguyenNgocDuy(I12A)
PhamMinhLuan(102C)
sonha89
Nguyen Doan Linh051(I11c)
HuynhMinhChanh(i91C)
ngophicamI12A
HuynhNguyenTrungHau_I12C
LeMinhDuc (I11C)
huynhtamhaoI12A
LuongGiaDuc(I12A)
HUYNHMINHHAI(I12A)
TranHuyCuong17 (I12A)
NguyenThanhCang(I12A)
lymydung_I12A
VuNguyenQuynhLam_I12C
TranHoangNhanI12C
BuiHuongTra(I12A)
NgoXuanQuoc_(102C)
NguyenVinhQuang_I12A
LeMInhTien(I11C)
nguyenthihongtham_I12C
maidangvu_I12A
NguyenVanBenI12C
NguyenVanThang25 (I12A)
phamduyI12A
NguyenHaCamThu(I12A)
TranTrungTinh(I12A)
trantrungnam-HC11TH2A
LacChiHao(I12A)
luthioanh-I12A
nguyen_tuan_phat_I12A
lacongchinh_I12A
lethanhsang_I12A
TranTrungHienI12C
plminhhoangI12A
ngothihanHC11TH2A
TranBinhCongLuanI12A
nguyenthanhphongHC11TH2A
quynhnhi.nguyen_I12A
LeXuanHau (I12C)
DaoThaiHuyI12A
levanhop.it
Nguyen Sy Hung I12A
thailongI12C
nguyenthingocmai_I12A
hoanghaiyen
Đinh Đông Dương
NguyenThiHue48(I12A)
phuongnguyen
nguyenthaihiep (I11C)
nguyenthimao_I12A
TranMinhTuan143(I12A)
NguyenHongHaiI12C
nguyenhuutrang_11h1010135
nguyenthanhnghi_I12C
quicly_I111c
NguyenThiHongYen(I12A)
NgoPhuQuoc_I12C
TranThiNgocQuynh(I12C)
hoxuanvu_I12A
LuongHueChanh_I12A
TranThiMyKhanh(I12A)
DoanNgocDan(I12A)
LeLamThang (113A)
tranvanthien27(I12C)
BuiPhamAnBinh(I12A)
LeThanhTung (I11C)
LeQuocKhanh-11H1010059
trinhvanminh_11h1010077
letanthanh18(I12A)
vothingocthuy87(I11C)
NguyenTriVienI12A
NguyenHoangThangI12A
LeThiMaiPhuongI12A
hoanggiangI12C
TranPhiLong (I11C)
phamphihung55
TranThiAnhDao89I12C
TrinhVinhThanh (I12A)
lequanghanh(102c)
Truc_Phuong(I111C)
LePhucHiep(102C)
NguyenXuanTri28
huynhvanhung(I12A)
VoThiHongNhung(I12A)
PhamQuangHien_I12A
minhtam_I12C
Admin
115 posters
Trang 5 trong tổng số 15 trang
Trang 5 trong tổng số 15 trang • 1, 2, 3, 4, 5, 6 ... 10 ... 15
Bài toán sản xuất-tiêu thụ
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ó.
- Giả sử chỉ có 1 Producer và 1 Consumer
+ Vấn đề chỉ đơn giản là kiểm tra hàng đợi nếu đầy thì ngưng sản xuất.
+ Ngược lại nếu hàng đợi hết thì ngừng tiêu thụ.
Khi đó bài toán được phát biểu theo kỹ thuật busy – waiting.
Sản xuất.
Tiêu thụ
- Trường hợp có trên 2 Producer, 2 Consumer.khi đó
- Ngoài việc kiểm tra hàng đợi, ta còn phải kiểm tra vị trí tiếp theo trong hàng đợi có bị Producer khác có sử dụng hay không.
- Ngược lại nhà tiêu thụ cũng phải kiểm tra hàng đợi tiếp theo có bị Consumer khác lấy rồi hay không.
- Và cùng lúc lấy ra và đưa vào sản phảm nhưng thời gian thực thi đồng thời.
- Như vậy với hơn 2 tiến trình cùng làm 1 việc hoặc Producer hoặc Consumer thì sẽ xảy ra tình trang tranh chấp nếu 2 tiến trình đồng thời cùng hoạt động (thuật ngữ gọi là vùng tương tranh). Để giải quyết vấn đề này ta phải quản lý buffer dùng chung bằng cách tạo ra 2 vùng là vùng đăng nhập(entry section) và vùng đăng xuất(exit section) – Chương 7.
Dưới đây là cấu trúc của phần quản lý buffer
Cuối cùng bài toán hoàn chỉnh được giải quyết như sau:
Sản xuất.
Tiêu thụ
– 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ó.
- Giả sử chỉ có 1 Producer và 1 Consumer
+ Vấn đề chỉ đơn giản là kiểm tra hàng đợi nếu đầy thì ngưng sản xuất.
+ Ngược lại nếu hàng đợi hết thì ngừng tiêu thụ.
Khi đó bài toán được phát biểu theo kỹ thuật busy – waiting.
Sản xuất.
- Code:
item nextProduced;
while (1) { //lặp vô hạn
/* tạo 1 sản phẩm và đưa vào nextProduced */
while (((in + 1) % BUFFER_SIZE) == out)
; // Quẩn tại đây khi buffer đầy
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE; // chia lấy phần dư của số nguyên
}
Tiêu thụ
- Code:
item nextConsumed;
while (1) {
while (in == out); // Quẩn tại đây khi buffer rỗng
nextConsumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
// Tiêu thụ sản phảm trong nextConsumed
}
- Trường hợp có trên 2 Producer, 2 Consumer.khi đó
- Ngoài việc kiểm tra hàng đợi, ta còn phải kiểm tra vị trí tiếp theo trong hàng đợi có bị Producer khác có sử dụng hay không.
- Ngược lại nhà tiêu thụ cũng phải kiểm tra hàng đợi tiếp theo có bị Consumer khác lấy rồi hay không.
- Và cùng lúc lấy ra và đưa vào sản phảm nhưng thời gian thực thi đồng thời.
- Như vậy với hơn 2 tiến trình cùng làm 1 việc hoặc Producer hoặc Consumer thì sẽ xảy ra tình trang tranh chấp nếu 2 tiến trình đồng thời cùng hoạt động (thuật ngữ gọi là vùng tương tranh). Để giải quyết vấn đề này ta phải quản lý buffer dùng chung bằng cách tạo ra 2 vùng là vùng đăng nhập(entry section) và vùng đăng xuất(exit section) – Chương 7.
Dưới đây là cấu trúc của phần quản lý buffer
- Code:
while (1) {
remainder section
entry section // Vùng đăng nhập
critical section //vùng tranh chấp
exit section // Vùng đăng xuất
remainder section
}
Cuối cùng bài toán hoàn chỉnh được giải quyết như sau:
Sản xuất.
- Code:
item nextProduced;
while (1) { //lặp vô hạn
/* tạo 1 sản phẩm và đưa vào nextProduced */
entry section
while (((in + 1) % BUFFER_SIZE) == out)
; // Quẩn tại đây khi buffer đầy
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE; // chia lấy phần dư của số nguyên
exit section
}
Tiêu thụ
- Code:
item nextConsumed;
while (1) {
while (in == out); // Quẩn tại đây khi buffer rỗng
entry section
nextConsumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
// Tiêu thụ sản phảm trong nextConsumed
exit section
}
thailongI12C- Tổng số bài gửi : 35
Join date : 17/02/2012
Câu 1 : Trình bày mô hình chuyển trạng thái của tiến trình ?
Tiến trình (Process) là chương trình trong thời gian thực hiện (đặt dưới sự quản lí HDH).
Có 2 loại tiến trình là : Tiến trình hệ thống (của hệ điều hành) và tiến trình người dùng.
Bản thân chương trình không phải là tiến trình vì chương trình là thực thể thụ động (Passive) còn 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.
Nhiều tiến trình có thể liên quan đến 1 chương trình và là các thực thể khác nhau khi vận hành.
Một tiến trình có thể sinh ra nhiều tiến trình con khác khi thực hiện.
Tiến trình cần cac tài nguyên (CPU, Memory, Tập tin, Thiết bị I/O,...) để hoàn thành công việc.
Tài nguyên (Resource) cấp cho tiến trình ngay từ đầu (khi tiến trình được tạo lập).
* Trạng thái tiến trình (Process State):
- Mới (New).
- Đang chạy (Running).
- Đang chờ (Waiting).
- Sẵn sàng (Ready).
- Kết thúc (Terminated).
* Sơ đồ chuyển trạng thái của tiến trình :
[img] [/img]
Có 2 loại tiến trình là : Tiến trình hệ thống (của hệ điều hành) và tiến trình người dùng.
Bản thân chương trình không phải là tiến trình vì chương trình là thực thể thụ động (Passive) còn 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.
Nhiều tiến trình có thể liên quan đến 1 chương trình và là các thực thể khác nhau khi vận hành.
Một tiến trình có thể sinh ra nhiều tiến trình con khác khi thực hiện.
Tiến trình cần cac tài nguyên (CPU, Memory, Tập tin, Thiết bị I/O,...) để hoàn thành công việc.
Tài nguyên (Resource) cấp cho tiến trình ngay từ đầu (khi tiến trình được tạo lập).
* Trạng thái tiến trình (Process State):
- Mới (New).
- Đang chạy (Running).
- Đang chờ (Waiting).
- Sẵn sàng (Ready).
- Kết thúc (Terminated).
* Sơ đồ chuyển trạng thái của tiến trình :
[img] [/img]
Câu 2 : Phân tích khái niệm chuyển ngữ cảnh (Context Switch) ?
Là chức năng của Dispatcher khi chuyển CPU từ tiến trình Po 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. Sau đó khôi phục môi trường và trạng thái làm việc của tiến trình P1 từ PCB1.Sau khi khôi phục thì tiến trình P1 mới chạy bình thường.
Chức năng PCB là một vùng nhớ lưu trữ các thông tin mô tả cho tiến trình, với các thành phần chủ yếu bao gồm:
- Định danh của tiến trình : xác định hoạt động hiện hành của tiến trình.
- Trạng thái tiến trình : xác định hoạt động hiện hành của tiến trình.
- Ngữ cảnh của tiến trình : mô tả các tài nguyên tiến trình đang trong quá trình như : trạng thái CPU, bộ xử lí, bộ nhớ chính, tài nguyên sử dụng, tài nguyên tạo lập.
- Thông tin giao tiếp : phản ánh các thông tin về quan hệ của tiến trình với các tiến trình khác trong hệ thống như : tiến trình cha, tiến trình con, độ ưu tiên.
- Thông tin thống kê : là những thông tin thống kê về hoạt động của tiến trình, như thời gian đã sử dụng CPU, thời gian chờ.
Thời gian chuyển ngữ cảnh khá lớn: Từ 1-1000 ms.
Công nghệ Đa luồng đượ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.
Chức năng PCB là một vùng nhớ lưu trữ các thông tin mô tả cho tiến trình, với các thành phần chủ yếu bao gồm:
- Định danh của tiến trình : xác định hoạt động hiện hành của tiến trình.
- Trạng thái tiến trình : xác định hoạt động hiện hành của tiến trình.
- Ngữ cảnh của tiến trình : mô tả các tài nguyên tiến trình đang trong quá trình như : trạng thái CPU, bộ xử lí, bộ nhớ chính, tài nguyên sử dụng, tài nguyên tạo lập.
- Thông tin giao tiếp : phản ánh các thông tin về quan hệ của tiến trình với các tiến trình khác trong hệ thống như : tiến trình cha, tiến trình con, độ ưu tiên.
- Thông tin thống kê : là những thông tin thống kê về hoạt động của tiến trình, như thời gian đã sử dụng CPU, thời gian chờ.
Thời gian chuyển ngữ cảnh khá lớn: Từ 1-1000 ms.
Công nghệ Đa luồng đượ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 4 : Trình bày những lí do của việc tổ chức 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 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ả,...
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ả,...
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 ?
Phát biểu bài toán:
Có 2 loại tiến trình : nhà sản xuất và nhà tiêu thụ.
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:
[img] [/img]
Có 2 loại tiến trình : nhà sản xuất và nhà tiêu thụ.
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:
[img] [/img]
Tạo lập tiến trình trong Windows ?
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
CreateProcess, CreateProcessWithLogon
WinExec
ShellExecute, ShellExecuteEx
Khái niệm tiến trình ? 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 được cung cấp trong bộ nhớ Ram và được sự quản lý của hệ điều hành.
Tiến trình hệ thống: là các tiến trình vận hành, quản lý tài nguyên của máy tính.
Tiến trình người dùng: là các tiến trình do người dùng cung cấp.
Mô hình chuyển trạng thái của tiến trình:
Một tiến trình P được đưa vào hàng đợi Job queue. Sau khi được hệ điều hành cho phép( thông qua sơ tuyển của điều phối Long-term) sẽ vào hàng đợi ready queue. Tại đây tiến trình P chưa được cấp CPU mà phải đợi trong khoảng thời gian ngắn sau đó mới được cập CPU( điều phối Short-term).
Tiến trình P sẽ trạng thái Waiting khi có yêu câu Nhập/Xuất hoặc chờ sự kiện khác diễn ra, đây là nhập xuất có chờ. Tiến trình sẽ về trạng thái Ready khi đã nhập/xuất xong hoặc sự kiện đã diễn ra xong.
Tiến trình P sẽ từ trạng thái Running-> Ready khi bị ngắt, phần lớn quá trình ngắt này là ngắt thời gian.
Tiến trình P sẽ từ trạng thái Running->Terminated khi có lệnh kết thúc, hoặc return.
Tiến trình hệ thống: là các tiến trình vận hành, quản lý tài nguyên của máy tính.
Tiến trình người dùng: là các tiến trình do người dùng cung cấp.
Mô hình chuyển trạng thái của tiến trình:
Một tiến trình P được đưa vào hàng đợi Job queue. Sau khi được hệ điều hành cho phép( thông qua sơ tuyển của điều phối Long-term) sẽ vào hàng đợi ready queue. Tại đây tiến trình P chưa được cấp CPU mà phải đợi trong khoảng thời gian ngắn sau đó mới được cập CPU( điều phối Short-term).
Tiến trình P sẽ trạng thái Waiting khi có yêu câu Nhập/Xuất hoặc chờ sự kiện khác diễn ra, đây là nhập xuất có chờ. Tiến trình sẽ về trạng thái Ready khi đã nhập/xuất xong hoặc sự kiện đã diễn ra xong.
Tiến trình P sẽ từ trạng thái Running-> Ready khi bị ngắt, phần lớn quá trình ngắt này là ngắt thời gian.
Tiến trình P sẽ từ trạng thái Running->Terminated khi có lệnh kết thúc, hoặc return.
Sơ đồ luân chuyển CPU giữa 2 tiến trình (CPU Switch From Process to Process)
Có 3 tiến trình cùng xảy ra đồng thời:
Trái: Tiến trình P0
Giữa: Tiến trình hệ thống
Phải: Tiến trình P1
Tại thời điểm T0: CPU cấp cho P0, P0 thực thi tới t1,P0 nghỉ tới t4, lúc này P1 cũng đang nghĩ tới t2
Tại thời điểm T1: CPU cấp cho HDH, P0 bị ngắt bởi hệ điều hành, thông tin của P0 được lưu vào khối kiểm soát tiến trình của P0(PCB0).CPU cũng mở khối kiểm soát tiến trình của P1(PCB1) để chuẩn bị cho P1 thực thi.
Tại thời điểm T2:CPU cấp cho P1, P1 thực thi tới t3
Tại thời điểm T3:CPU cấp cho Hệ điều hành, lưu thông tin vào khối kiểm soát P1(PCB1), mở khối kiểm soát của P0(PCB0).
Tại thời điểm T4: CPU cấp cho P0, P0 thực thi cho tới khi hoàn thành xong.
Liên lạc giữa các tiến trình
1. Nhu cầu liên lạc giữa các tiến trình
Trong môi trường đa chương, một tiến trình không đơn độc trong hệ thống , mà có thể ảnh hưởng đến các tiến trình khác , hoặc bị các tiến trình khác tác động. Nói cách khác, các tiến trình là những thực thể độc lập , nhưng chúng vẫn có nhu cầu liên lạc với nhau để :
Chia sẻ thông tin: nhiều tiến trình có thể cùng quan tâm đến những dữ liệu nào đó, do vậy hệ điều hành cần cung cấp một môi trường cho phép sự truy cập đồng thời đến các dữ liệu chung.
Hợp tác hoàn thành tác vụ: đôi khi để đạt được một sự xử lý nhanh chóng, người ta phân chia một tác vụ thành các công việc nhỏ có thể tiến hành song song. Thường thì các công việc nhỏ này cần hợp tác với nhau để cùng hoàn thành tác vụ ban đầu, ví dụ dữ liệu kết xuất của tiến trình này lại là dữ liệu nhập cho tiến trình khác …Trong các trường hợp đó, hệ điều hành cần cung cấp cơ chế để các tiến trình có thể trao đổi thông tin với nhau.
2. Các vấn đề nảy sinh trong việc liên lạc giữa các tiến trình
Do mỗi tiến trình sỡ hữu một không gian địa chỉ riêng biệt, nên các tiến trình không thể liên lạc trực tiếp dễ dàng mà phải nhờ vào các cơ chế do hệ điều hành cung cấp. Khi cung cấp cơ chế liên lạc cho các tiến trình, hệ điều hành thường phải tìm giải pháp cho các vấn đề chính yếu sau :
Liên kết tường minh hay tiềm ẩn (explicit naming/implicit naming) : tiến trình có cần phải biết tiến trình nào đang trao đổi hay chia sẻ thông tin với nó ? Mối liên kết được gọi là tường minh khi được thiết lập rõ ràng , trực tiếp giữa các tiến trình, và là tiềm ẩn khi các tiến trình liên lạc với nhau thông qua một qui ước ngầm nào đó.
Liên lạc theo chế độ đồng bộ hay không đồng bộ (blocking / non-blocking): khi một tiến trình trao đổi thông tin với một tiến trình khác, các tiến trình có cần phải đợi cho thao tác liên lạc hoàn tất rồi mới tiếp tục các xử lý khác ? Các tiến trình liên lạc theo cơ chế đồng bộ sẽ chờ nhau hoàn tất việc liên lạc, còn các tiến trình liên lạc theo cơ chế nonblocking thì không.
Liên lạc giữa các tiến trình trong hệ thống tập trung và hệ thống phân tán: cơ chế liên lạc giữa các tiến trình trong cùng một máy tính có sự khác biệt với việc liên lạc giữa các tiến trình giữa những máy tính khác nhau?
Hầu hết các hệ điều hành đưa ra nhiều cơ chế liên lạc khác nhau, mỗi cơ chế có những đặc tính riêng, và thích hợp trong một hoàn cảnh chuyên biệt
Trong môi trường đa chương, một tiến trình không đơn độc trong hệ thống , mà có thể ảnh hưởng đến các tiến trình khác , hoặc bị các tiến trình khác tác động. Nói cách khác, các tiến trình là những thực thể độc lập , nhưng chúng vẫn có nhu cầu liên lạc với nhau để :
Chia sẻ thông tin: nhiều tiến trình có thể cùng quan tâm đến những dữ liệu nào đó, do vậy hệ điều hành cần cung cấp một môi trường cho phép sự truy cập đồng thời đến các dữ liệu chung.
Hợp tác hoàn thành tác vụ: đôi khi để đạt được một sự xử lý nhanh chóng, người ta phân chia một tác vụ thành các công việc nhỏ có thể tiến hành song song. Thường thì các công việc nhỏ này cần hợp tác với nhau để cùng hoàn thành tác vụ ban đầu, ví dụ dữ liệu kết xuất của tiến trình này lại là dữ liệu nhập cho tiến trình khác …Trong các trường hợp đó, hệ điều hành cần cung cấp cơ chế để các tiến trình có thể trao đổi thông tin với nhau.
2. Các vấn đề nảy sinh trong việc liên lạc giữa các tiến trình
Do mỗi tiến trình sỡ hữu một không gian địa chỉ riêng biệt, nên các tiến trình không thể liên lạc trực tiếp dễ dàng mà phải nhờ vào các cơ chế do hệ điều hành cung cấp. Khi cung cấp cơ chế liên lạc cho các tiến trình, hệ điều hành thường phải tìm giải pháp cho các vấn đề chính yếu sau :
Liên kết tường minh hay tiềm ẩn (explicit naming/implicit naming) : tiến trình có cần phải biết tiến trình nào đang trao đổi hay chia sẻ thông tin với nó ? Mối liên kết được gọi là tường minh khi được thiết lập rõ ràng , trực tiếp giữa các tiến trình, và là tiềm ẩn khi các tiến trình liên lạc với nhau thông qua một qui ước ngầm nào đó.
Liên lạc theo chế độ đồng bộ hay không đồng bộ (blocking / non-blocking): khi một tiến trình trao đổi thông tin với một tiến trình khác, các tiến trình có cần phải đợi cho thao tác liên lạc hoàn tất rồi mới tiếp tục các xử lý khác ? Các tiến trình liên lạc theo cơ chế đồng bộ sẽ chờ nhau hoàn tất việc liên lạc, còn các tiến trình liên lạc theo cơ chế nonblocking thì không.
Liên lạc giữa các tiến trình trong hệ thống tập trung và hệ thống phân tán: cơ chế liên lạc giữa các tiến trình trong cùng một máy tính có sự khác biệt với việc liên lạc giữa các tiến trình giữa những máy tính khác nhau?
Hầu hết các hệ điều hành đưa ra nhiều cơ chế liên lạc khác nhau, mỗi cơ chế có những đặc tính riêng, và thích hợp trong một hoàn cảnh chuyên biệt
Vì sao phải cộng tác giữa các tiến trình ?
Những lý do cộng tác (Cooperation Reasons):
- 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, Duyệt Web, Biên dịch chương trình, kiểm tra chính tả...
- 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, Duyệt Web, Biên dịch chương trình, kiểm tra chính tả...
Tổng Hợp Các Câu Hỏi Và Giải Thích
1. Tiến trình là gì? Tiến trình khác chương trình thế nào? Nhiệm vụ chính của bộ phận Process Management
Tiến trình là một chương trình đang xử lí, sở hữu một tập con trỏ lệnh, tập các thanh ghi, các biến và một tập các tài nguyên cần cho hoạt động của tiến trình.
Chương trình là một thực thể thụ động chứa các chỉ thị điều khiển máy tính để tiến hành một hoạt động nào đó, khi thực hiện tác vụ này thì chương trình chuyển thành tiến trình – một thực thể hoạt động với con trỏ lệnh xác định chỉ thị tiếp theo sẽ thi hành và tập tài nguyên.
Bộ phận Process Management có nhiệm vụ:
o Tạo và hủy tiến trình người dùng và tiến trình hệ thống
o Hoãn và khôi phục tiến trình
o Cung cấp cơ chế cho việc đồng bộ hóa tiến trình
o Cung cấp cơ chế cho việc giao tiếp tiến trình
o Cung cấp cơ chế quản lý deadlock
2. Các công việc chính của bộ phận Memory Management, File Management và Secondary Storage Management?
o Memory Management
Theo dõi thành phần nào của của bộ nhớ đang được sử dụng và tiến trình nào đang sử dụng
Quyết định tiến trình nào hoặc dữ liệu nào sẽ được di chuyển ra khỏi hoặc đưa vào bộ nhớ
Cấp phát và hủy không gian bộ nhớ nếu cần.
o File Management
Tạo và xóa tập tin
Tạo và xóa thư mục
Hỗ trợ các thao tác cơ bản trên tập tin và thư mục
Ánh xạ tập tin vào trong bộ lưu trữ thứ cấp
Sao lưu trên các thiết bị ổn định
o Storage Management
Quản lí không gian trống
Cấp phát cho việc lưu trữ dữ liệu
Định thời yêu cầu truy cập bộ nhớ
3. Cho biết công việc chính của I/O Management và Hệ thống bảo vệ?
o I/O Management: Che dấu sự khác biệt của các thiết bị đối với người dùng
Cung cấp giao diện chung đến các trình điều khiển thiết bị (device driver)
Bộ điều khiển thiết bị phần cứng
Các cơ chế buffering, caching, spooling
o Hệ thống bảo vệ:
Cung cấp cơ chế kiểm soát đăng nhập và đăng xuất
Phân định sự truy cập tài nguyên hợp pháp, bất hợp pháp
Phương tiện thi hành các chính sách (cần bảo vệ dữ liệu của ai đối với ai)
4. System call là gì? Cho ví dụ? System program khác với Application program điểm nào? Liệt kê các system program cơ bản.
o System Call là một cơ chế mà các chương trình ứng dụng sử dụng để yêu cầu các dịch vụ có sẵn của hệ điều hành. Hay nói cách khác System Call cung cấp một giao diện cho các dịch vụ mà hệ điều hành cung cấp.
o Ví dụ về system call: Lệnh fork() trong Unix dùng để tạo ra một tiến trình mới.
o System Program là các chương trình cung cấp một môi trường thuận tiện để phát triển và thực thi chương trình. Application là chương trình được viết ra để giúp người sử dụng giải quyết một vấn đề nào đó hoặc thao tác trong công việc. Ví dụ như Web Browser, Microsoft Office Word
o Vài ví dụ về các System Program là: Compiler, Linker, Loader, Debugger
5. Kernel Mode và User Mode là gì? Cho biết sự khác nhau giữa chúng? Các trạng thái của một quá trình, vẽ sơ đồ và giải thích sự chuyển đổi.
o Kernel Mode: là một trong hai chế độ thao tác của CPU. Khi CPU ở trong Kernel Mode, nó có thể thực thi bất cứ chỉ thị nào và tham chiếu đến bất kì địa chỉ nhớ nào
o User Mode: Khi CPU ở trong User Mode, nó không thể truy cập tới phần cứng hoặc tham chiếu đến bộ nhớ một cách trực tiếp. Các đoạn mã trong User mode phải được chuyển đổi thành các hàm API hệ thống để có thể truy cập tới bộ nhớ và phần cứng.
6. Tại sao các hệ điều hành hiện đại hỗ trợ môi trường đa nhiệm? Phân biệt multitasking, multiprogramming và multiprocessing?
o Các hệ điều hành hiện đại hỗ trợ môi trường đa nhiệm vì: tăng hiệu suất sử dụng CPU và tăng tốc độ xử lý
o Multitasking (đa nhiệm): thực hiện nhiều nhiệm vụ cùng một lúc, CPU sẽ luân phiên xử lý các tiến trình trong một khoảng thời gian rồi chuyển sang cho tiến trình khác. VD: nghe nhạc và duyệt web đồng thời
o Multiprogramming (đa chương): có nhiều hơn một chương trình đang nằm trong bộ nhớ để được lựa chọn chuyển giao cho CPU thực thi. Ví dụ: mở Word, Excel, Powerpoint cùng lúc, trong khi chúng ta sử dụng Word thì Excel và Powerpoint vẫn thường trực trong bộ nhớ mặc dù chúng không thực hiện việc gì cả
o Multiprocessing (đa tiến trình): sử dụng nhiều hơn 1 CPU để có thể xử lý song song cùng lúc nhiều tiến trình.
7. Khái niệm tiến trình được xây dựng nhằm mục đích gì? Sự khác biệt, mối quan hệ giữa tiến trình và tiểu trình?
o Để hỗ trợ sự đa chương, máy tính phải có khả năng thực hiện nhiều tác vụ đồng thời. Nhưng việc điều khiển nhiều hoạt động song song ở cấp độ phần cứng là rất khó khăn. Vì thế các nhà thiết kế hệ điều hành đề xuất một mô hình song song gỉa lặp bằng cách chuyển đổi bộ xử lý qua lại giữa các chương trình để duy trì hoạt động của nhiều chương trình cùng lúc, điều này tạo cảm giác có nhiều hoạt động được thực hiện đồng thời. Trong mô hình này, tất cả các phần mềm trong hệ thống được tổ chức thành một số những tiến trình (process).
o Tiến trình có không gian địa chỉ và chỉ có một dòng xử lý. Các tiểu trình thì chia sẻ một không gian địa chỉ, và các dòng xử lý này hoạt động song song tương tự như các tiến trình phân biệt.
o Một tiến trình có thể có nhiều tiểu trình chạy đồng thời
8. Thông tin lưu trữ trong PCB và TCB? Tổ chức điều phối tiến trình? Ưu khuyết của các chiến lược điều phối?
o PCB: định danh, trạng thái, ngữ cảnh, thông tin giao tiếp, thông tin thống kê
o TCB:
Tiến trình là một chương trình đang xử lí, sở hữu một tập con trỏ lệnh, tập các thanh ghi, các biến và một tập các tài nguyên cần cho hoạt động của tiến trình.
Chương trình là một thực thể thụ động chứa các chỉ thị điều khiển máy tính để tiến hành một hoạt động nào đó, khi thực hiện tác vụ này thì chương trình chuyển thành tiến trình – một thực thể hoạt động với con trỏ lệnh xác định chỉ thị tiếp theo sẽ thi hành và tập tài nguyên.
Bộ phận Process Management có nhiệm vụ:
o Tạo và hủy tiến trình người dùng và tiến trình hệ thống
o Hoãn và khôi phục tiến trình
o Cung cấp cơ chế cho việc đồng bộ hóa tiến trình
o Cung cấp cơ chế cho việc giao tiếp tiến trình
o Cung cấp cơ chế quản lý deadlock
2. Các công việc chính của bộ phận Memory Management, File Management và Secondary Storage Management?
o Memory Management
Theo dõi thành phần nào của của bộ nhớ đang được sử dụng và tiến trình nào đang sử dụng
Quyết định tiến trình nào hoặc dữ liệu nào sẽ được di chuyển ra khỏi hoặc đưa vào bộ nhớ
Cấp phát và hủy không gian bộ nhớ nếu cần.
o File Management
Tạo và xóa tập tin
Tạo và xóa thư mục
Hỗ trợ các thao tác cơ bản trên tập tin và thư mục
Ánh xạ tập tin vào trong bộ lưu trữ thứ cấp
Sao lưu trên các thiết bị ổn định
o Storage Management
Quản lí không gian trống
Cấp phát cho việc lưu trữ dữ liệu
Định thời yêu cầu truy cập bộ nhớ
3. Cho biết công việc chính của I/O Management và Hệ thống bảo vệ?
o I/O Management: Che dấu sự khác biệt của các thiết bị đối với người dùng
Cung cấp giao diện chung đến các trình điều khiển thiết bị (device driver)
Bộ điều khiển thiết bị phần cứng
Các cơ chế buffering, caching, spooling
o Hệ thống bảo vệ:
Cung cấp cơ chế kiểm soát đăng nhập và đăng xuất
Phân định sự truy cập tài nguyên hợp pháp, bất hợp pháp
Phương tiện thi hành các chính sách (cần bảo vệ dữ liệu của ai đối với ai)
4. System call là gì? Cho ví dụ? System program khác với Application program điểm nào? Liệt kê các system program cơ bản.
o System Call là một cơ chế mà các chương trình ứng dụng sử dụng để yêu cầu các dịch vụ có sẵn của hệ điều hành. Hay nói cách khác System Call cung cấp một giao diện cho các dịch vụ mà hệ điều hành cung cấp.
o Ví dụ về system call: Lệnh fork() trong Unix dùng để tạo ra một tiến trình mới.
o System Program là các chương trình cung cấp một môi trường thuận tiện để phát triển và thực thi chương trình. Application là chương trình được viết ra để giúp người sử dụng giải quyết một vấn đề nào đó hoặc thao tác trong công việc. Ví dụ như Web Browser, Microsoft Office Word
o Vài ví dụ về các System Program là: Compiler, Linker, Loader, Debugger
5. Kernel Mode và User Mode là gì? Cho biết sự khác nhau giữa chúng? Các trạng thái của một quá trình, vẽ sơ đồ và giải thích sự chuyển đổi.
o Kernel Mode: là một trong hai chế độ thao tác của CPU. Khi CPU ở trong Kernel Mode, nó có thể thực thi bất cứ chỉ thị nào và tham chiếu đến bất kì địa chỉ nhớ nào
o User Mode: Khi CPU ở trong User Mode, nó không thể truy cập tới phần cứng hoặc tham chiếu đến bộ nhớ một cách trực tiếp. Các đoạn mã trong User mode phải được chuyển đổi thành các hàm API hệ thống để có thể truy cập tới bộ nhớ và phần cứng.
6. Tại sao các hệ điều hành hiện đại hỗ trợ môi trường đa nhiệm? Phân biệt multitasking, multiprogramming và multiprocessing?
o Các hệ điều hành hiện đại hỗ trợ môi trường đa nhiệm vì: tăng hiệu suất sử dụng CPU và tăng tốc độ xử lý
o Multitasking (đa nhiệm): thực hiện nhiều nhiệm vụ cùng một lúc, CPU sẽ luân phiên xử lý các tiến trình trong một khoảng thời gian rồi chuyển sang cho tiến trình khác. VD: nghe nhạc và duyệt web đồng thời
o Multiprogramming (đa chương): có nhiều hơn một chương trình đang nằm trong bộ nhớ để được lựa chọn chuyển giao cho CPU thực thi. Ví dụ: mở Word, Excel, Powerpoint cùng lúc, trong khi chúng ta sử dụng Word thì Excel và Powerpoint vẫn thường trực trong bộ nhớ mặc dù chúng không thực hiện việc gì cả
o Multiprocessing (đa tiến trình): sử dụng nhiều hơn 1 CPU để có thể xử lý song song cùng lúc nhiều tiến trình.
7. Khái niệm tiến trình được xây dựng nhằm mục đích gì? Sự khác biệt, mối quan hệ giữa tiến trình và tiểu trình?
o Để hỗ trợ sự đa chương, máy tính phải có khả năng thực hiện nhiều tác vụ đồng thời. Nhưng việc điều khiển nhiều hoạt động song song ở cấp độ phần cứng là rất khó khăn. Vì thế các nhà thiết kế hệ điều hành đề xuất một mô hình song song gỉa lặp bằng cách chuyển đổi bộ xử lý qua lại giữa các chương trình để duy trì hoạt động của nhiều chương trình cùng lúc, điều này tạo cảm giác có nhiều hoạt động được thực hiện đồng thời. Trong mô hình này, tất cả các phần mềm trong hệ thống được tổ chức thành một số những tiến trình (process).
o Tiến trình có không gian địa chỉ và chỉ có một dòng xử lý. Các tiểu trình thì chia sẻ một không gian địa chỉ, và các dòng xử lý này hoạt động song song tương tự như các tiến trình phân biệt.
o Một tiến trình có thể có nhiều tiểu trình chạy đồng thời
8. Thông tin lưu trữ trong PCB và TCB? Tổ chức điều phối tiến trình? Ưu khuyết của các chiến lược điều phối?
o PCB: định danh, trạng thái, ngữ cảnh, thông tin giao tiếp, thông tin thống kê
o TCB:
LeXuanHau (I12C)- Tổng số bài gửi : 33
Join date : 16/02/2012
2 phương thức liên lạc giữa các tiến trình
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
- 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
quynhnhi.nguyen_I12A- Tổng số bài gửi : 17
Join date : 07/03/2012
Phân biệt Điều phối chậm và Điều phối nhanh
Điều phối chậm (Long-term scheduler):
- Chọn tiến trình từ Job Queue đưa vào Ready Queue
- 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 :
1. Hướng CPU (CPU-Bound): 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).
2. Hướng I/O (I/O-Bound): tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU),không có ai đi công tác mà chỉ hoạt động ở 1 chỗ (I/O), không sử dụng đến ô tô. Như vậy quá lãng phí ô tô (CPU).
- Mục đích: là cân bằng tải cho toàn hệ thống
Đ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ứ 100ms lại tốn 10ms để 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.
Ví dụ: Lớp học thực hành môn Hệ Điều Hành, nhà trường chia ra làm 2 ca, nhưng ca 1 có quá nhiều bạn đi học (tức là có nhiều tiến trình). Giảng viên sẽ chỉ định một số bạn không đúng ca của mình ra khỏi lớp (rút tiến trình ra khỏi bộ nhớ). Sau khi ca 1 học xong, Giảng viên sẽ gọi các bạn thuộc ca 2 bên ngoài vào phòng học (đưa tiến trình vào bộ nhớ ở thời điểm thích hợp).
- Chọn tiến trình từ Job Queue đưa vào Ready Queue
- 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 :
1. Hướng CPU (CPU-Bound): 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).
2. Hướng I/O (I/O-Bound): tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU),không có ai đi công tác mà chỉ hoạt động ở 1 chỗ (I/O), không sử dụng đến ô tô. Như vậy quá lãng phí ô tô (CPU).
- Mục đích: là cân bằng tải cho toàn hệ thống
Đ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ứ 100ms lại tốn 10ms để 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.
Ví dụ: Lớp học thực hành môn Hệ Điều Hành, nhà trường chia ra làm 2 ca, nhưng ca 1 có quá nhiều bạn đi học (tức là có nhiều tiến trình). Giảng viên sẽ chỉ định một số bạn không đúng ca của mình ra khỏi lớp (rút tiến trình ra khỏi bộ nhớ). Sau khi ca 1 học xong, Giảng viên sẽ gọi các bạn thuộc ca 2 bên ngoài vào phòng học (đưa tiến trình vào bộ nhớ ở thời điểm thích hợp).
Tại sao phải có Điều phối chậm, Điều phối nhanh và Điều phối vừa?
q Long-term scheduler (or job scheduler)
Chọn process nào sẽ được đưa vào ready queue (từ New chuyển sang Ready)
q Short-term scheduler (or CPU scheduler)
Chọn process nào sẽ được chiếm CPU để xử lý (từ Ready chuyển sang Running)
q 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.
Thảo luận những vấn đề liên quan đến Bài 4[/quote]
Chọn process nào sẽ được đưa vào ready queue (từ New chuyển sang Ready)
q Short-term scheduler (or CPU scheduler)
Chọn process nào sẽ được chiếm CPU để xử lý (từ Ready chuyển sang Running)
q 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.
Thảo luận những vấn đề liên quan đến Bài 4[/quote]
PhamQuangHien_I12A- Tổng số bài gửi : 62
Join date : 22/02/2012
Age : 35
Đến từ : Quãng Ngãi
Phân biệt điều phối chậm và đ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
+ 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 nhằm cân bằng tải giữa hai tiến trình..
Ví dụ : Các nhân viên trong công ty đang làm việc (Job Queue) , giám đốc gọi các trưởng phòng vào họp để đưa ra y kiến cho hướng phát triển mới, các trưởng phòng suy nghỉ và chờ đến lượt mình để nêu lên ý kiến.(chuyện từ Job Queue sang Ready Queue)
-Đ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: Các trưởng phòng biết rõ mình phải làm gì nên đến lượt mình thì nhanh chóng phát biểu ý kiến đã soạn thảo trước đó.( chờ đến lượt = Ready -> phát biểu ý kiến = running).
Bài có gì sai mong các ban ý kiến giúp !
Admin
- Job Queue chứa các nhân viên của công ty sẵn sàng được Tuyển chọn lên gặp Giám đốc !
- Một "Phó giám đốc" với vai trò của Long-Term Scheduler có trách nhiệm chọn ra khoảng 10 nhân viên đủ 2 loại Hướng CPU (dùng máy tính nhiều) và Hướng I/O (ít dùng máy tính, hay đi Tiếp thị).
- Giám đốc (Short-Term Scheduler) sẽ liên tục chọn 1 trong 10 nhân viên kể trên theo nhu cầu công việc cụ thể của mình (giả sử phòng Giám đốc chỉ có 1 máy tính).
- Nếu Long-Term Scheduler tuyển nhiều nhân viên Hướng CPU quá, họ sẽ phải chờ nhau nhiều do chỉ có 1 máy tính. Nhưng nhiều nhân viên Hướng I/O quá (nhiều người đi tiếp thị), máy tính sẽ ít được dùng !
+ 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 nhằm cân bằng tải giữa hai tiến trình..
Ví dụ : Các nhân viên trong công ty đang làm việc (Job Queue) , giám đốc gọi các trưởng phòng vào họp để đưa ra y kiến cho hướng phát triển mới, các trưởng phòng suy nghỉ và chờ đến lượt mình để nêu lên ý kiến.(chuyện từ Job Queue sang Ready Queue)
-Đ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: Các trưởng phòng biết rõ mình phải làm gì nên đến lượt mình thì nhanh chóng phát biểu ý kiến đã soạn thảo trước đó.( chờ đến lượt = Ready -> phát biểu ý kiến = running).
Bài có gì sai mong các ban ý kiến giúp !
Admin
- Job Queue chứa các nhân viên của công ty sẵn sàng được Tuyển chọn lên gặp Giám đốc !
- Một "Phó giám đốc" với vai trò của Long-Term Scheduler có trách nhiệm chọn ra khoảng 10 nhân viên đủ 2 loại Hướng CPU (dùng máy tính nhiều) và Hướng I/O (ít dùng máy tính, hay đi Tiếp thị).
- Giám đốc (Short-Term Scheduler) sẽ liên tục chọn 1 trong 10 nhân viên kể trên theo nhu cầu công việc cụ thể của mình (giả sử phòng Giám đốc chỉ có 1 máy tính).
- Nếu Long-Term Scheduler tuyển nhiều nhân viên Hướng CPU quá, họ sẽ phải chờ nhau nhiều do chỉ có 1 máy tính. Nhưng nhiều nhân viên Hướng I/O quá (nhiều người đi tiếp thị), máy tính sẽ ít được dùng !
nguyenthanhphongHC11TH2A- Tổng số bài gửi : 26
Join date : 16/02/2012
Bổ sung lý do cộng tác của các tiến trình
Ng-Thi-Truc-Phuong(I111C) đã viết: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ả,...
- Một trong những lý do không kém phần quan trọng là hợp tác để cùng hoàn thành nhiệm vụ.
Re: Thảo luận Bài 4
NguyenXuanTri28 đã viết:Điều phối chậm (Long-term scheduler (or job 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
- 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), có 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) 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 ko cần sử dụng đến ô tô (I/O). Vậy quá lãng phí ô tô (CPU)
- Mục đích cân bằng tải
Điều phối nhanh (Short-term scheduler (or CPU 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.
Mình xin góp ý thêm về 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.
ngothihanHC11TH2A- Tổng số bài gửi : 23
Join date : 16/02/2012
Re: Thảo luận Bài 4
NguyenXuanTri28 đã viết:Điều phối chậm (Long-term scheduler (or job 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
- 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), có 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) 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 ko cần sử dụng đến ô tô (I/O). Vậy quá lãng phí ô tô (CPU)
- Mục đích cân bằng tải
Điều phối nhanh (Short-term scheduler (or CPU 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.
Mình xin góp ý thêm 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.
ngothihanHC11TH2A- Tổng số bài gửi : 23
Join date : 16/02/2012
Vì sao hệ điều hành phải có chức năng điều phối CPU?tiêu chí điều phối CPU là những tiêu chí nào?
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 trong chiến lược định thời CPU.
- tiêu chí điều phối CPU:
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.
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 trong chiến lược định thời CPU.
- tiêu chí điều phối CPU:
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.
PhamQuangHien_I12A- Tổng số bài gửi : 62
Join date : 22/02/2012
Age : 35
Đến từ : Quãng Ngãi
Trình Điều Phối
Trình điều phối gồm có:
Điều phối chậm (Long-term scheduler):
- Chọn tiến trình nào sẽ được đưa vào ready queue ( tức là 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
1. 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).
2. 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 thực hiện giao dịch tại chỗ (I/O), không sử dụng đến ô tô. Vậy quá lãng phí ô tô (CPU)
- Mục đích là cân bằng tải cho toàn hệ thống
Điều phối nhanh (Short-term scheduler (or CPU scheduler)) :
- Chọn tiến trình nào sẽ được chiếm CPU để xử lý (tức là từ Ready chuyển sang Running)
- Tần xuất công việc cao
Điều phối vừa (Medium-term scheduler) :
- Chuyển tiến trình 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.
Điều phối chậm (Long-term scheduler):
- Chọn tiến trình nào sẽ được đưa vào ready queue ( tức là 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
1. 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).
2. 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 thực hiện giao dịch tại chỗ (I/O), không sử dụng đến ô tô. Vậy quá lãng phí ô tô (CPU)
- Mục đích là cân bằng tải cho toàn hệ thống
Điều phối nhanh (Short-term scheduler (or CPU scheduler)) :
- Chọn tiến trình nào sẽ được chiếm CPU để xử lý (tức là từ Ready chuyển sang Running)
- Tần xuất công việc cao
Điều phối vừa (Medium-term scheduler) :
- Chuyển tiến trình 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.
phamphihung55- Tổng số bài gửi : 83
Join date : 16/02/2012
Age : 34
Chuyển ngữ cảnh là gì?
Chuyển ngữ cảnh là gì?
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.
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.
LuongHueChanh_I12A- Tổng số bài gửi : 11
Join date : 17/02/2012
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.
- 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ả...
plminhhoangI12A- Tổng số bài gửi : 19
Join date : 22/02/2012
Process control block(PCB)
Đại diện cho 1 process trong HĐH là khối điều khiển process(PCB).PCB là 1 cấu trúc dữ liệu chứa những thông tin quan trọng về process và có thể khác nhau trong các hệ thống khác nhau,trong đó thường có:
PCB là đối tượng quan trọng,nhờ nó HĐH có thể có được toàn bộ thông tin cơ bản nhất về 1 process.Khi HĐH chuyển(switch) BXL từ đang phục vụ process này sang phục vụ process khác,nó dùng vùng cho các thanh ghi trong PCB lưu thông tin giá trị các thanh ghi của hệ thống để có thể tiếp tục thực hiện process mỗi khi process đến lượt được sử dụng BXL.
Tóm lại,PCB là đối tượng chính đại diện cho process đối với HĐH.Vì HĐH phải có khả năng thực hiện các thao tác với cái PCB khác nhau một cách nhanh chóng,trong nhiều hệ thống có những thanh ghi đặc biệt luôn chỉ tới PCB của running process.Và cũng có những lệnh cài đặt ngay trong phần cứng để đảm bảo nhanh chóng ghi thông tin trạng thái vào PCB và tiếp theo là nhanh chóng đọc các thông tin đó.
- Trạng thái hiện tại của process
- ID(identifer) duy nhất cho process
- độ ưu tiên(priority) của process
- thông tin về bộ nhớ
- thông tin về các tài nguyên process đang sử dụng
- vùng để cho các thanh ghi
PCB là đối tượng quan trọng,nhờ nó HĐH có thể có được toàn bộ thông tin cơ bản nhất về 1 process.Khi HĐH chuyển(switch) BXL từ đang phục vụ process này sang phục vụ process khác,nó dùng vùng cho các thanh ghi trong PCB lưu thông tin giá trị các thanh ghi của hệ thống để có thể tiếp tục thực hiện process mỗi khi process đến lượt được sử dụng BXL.
Tóm lại,PCB là đối tượng chính đại diện cho process đối với HĐH.Vì HĐH phải có khả năng thực hiện các thao tác với cái PCB khác nhau một cách nhanh chóng,trong nhiều hệ thống có những thanh ghi đặc biệt luôn chỉ tới PCB của running process.Và cũng có những lệnh cài đặt ngay trong phần cứng để đảm bảo nhanh chóng ghi thông tin trạng thái vào PCB và tiếp theo là nhanh chóng đọc các thông tin đó.
plminhhoangI12A- Tổng số bài gửi : 19
Join date : 22/02/2012
Các loại tiến trình
Các tiến trình trong hệ thống có thể chia thành hai loại: tiến trình tuần tự và tiến trình song song. Tiến trình tuần tự là các tiến trình mà điểm khởi tạo của nó là điểm kết thúc của tiến trình trước đó. Tiến trình song song là các tiến trình mà điểm khởi tạo của tiến trình này mằn ở thân của các tiến trình khác, tức là có thể khởi tạo một tiến trình mới khi các tiến trình trước đó chưa kết thúc. Tiến trình song song được chia thành nhiều loại:
• Tiến trình song song độc lập: là các tiến trình hoạt động song song nhưng không có quan hệ thông tin với nhau, trong trường hợp này hệ điều hành phải thiết lập cơ chế bảo vệ dữ liệu của các tiến trình, và cấp phát tài nguyên cho các tiến trình một cách hợp lý.
• Tiến trình song song có quan hệ thông tin: trong quá trình hoạt động các tiến trình thường trao đổi thông tin với nhau, trong một số trường hợp tiến trình gởi thông báo cần phải nhận được tín hiệu từ tiến trình nhận để tiếp tục, điều này dễ dẫn đến bế tắc khi tiến trình nhận tín hiệu không ở trong trạng thái nhận hay tiến trình gởi không ở trong trạng thái nhận thông báo trả lời.
• Tiến trình song song phân cấp: Trong qua trình hoạt động một tiến trình có thể khởi tạo các tiến trình khác hoạt động song song với nó, tiến trình khởi tạo được gọi là tiến trình cha, tiến trình được tạo gọi là tiến trình con. Trong mô hình này hệ điều hành phải giải quyết vấn đề cấp phát tài nguyên cho các tiến trình con. Tiến trình con nhận tài nguyên ở đâu, từ tiến trình cha hay từ hệ thống. Để giải quyết vấn đề này hệ điều hành đưa ra 2 mô hình quản lý tài nguyên: Thứ nhất, mô hình tập trung, trong mô hình này hệ điều hành chịu trách nhiệm phân phối tài nguyên cho tất cả các tiến trình trong hệ thống. Thứ hai, mô hình phân tán, trong mô hình này hệ điều hành cho phép tiến trình con nhận tài nguyên từ tiến trình cha, tức là tiến trình khởi tạo có nhiệm vụ nhận tài nguyên từ hệ điều hành để cấp phát cho các tiến trình mà nó tạo ra, và nó có nhiệm vụ thu hồi lại tài nguyên đã cấp phát trả về cho hệ điều hành trước khi kết thúc.
• Tiến trình song song đồng mức: là các tiến trình hoạt động song song sử dụng chung tài nguyên theo nguyên tắc lần lượt, mỗi tiến trình sau một khoảng thời gian chiếm giữ tài nguyên phải tự động trả lại tài nguyên cho tiến trình kia.
• Tiến trình song song độc lập: là các tiến trình hoạt động song song nhưng không có quan hệ thông tin với nhau, trong trường hợp này hệ điều hành phải thiết lập cơ chế bảo vệ dữ liệu của các tiến trình, và cấp phát tài nguyên cho các tiến trình một cách hợp lý.
• Tiến trình song song có quan hệ thông tin: trong quá trình hoạt động các tiến trình thường trao đổi thông tin với nhau, trong một số trường hợp tiến trình gởi thông báo cần phải nhận được tín hiệu từ tiến trình nhận để tiếp tục, điều này dễ dẫn đến bế tắc khi tiến trình nhận tín hiệu không ở trong trạng thái nhận hay tiến trình gởi không ở trong trạng thái nhận thông báo trả lời.
• Tiến trình song song phân cấp: Trong qua trình hoạt động một tiến trình có thể khởi tạo các tiến trình khác hoạt động song song với nó, tiến trình khởi tạo được gọi là tiến trình cha, tiến trình được tạo gọi là tiến trình con. Trong mô hình này hệ điều hành phải giải quyết vấn đề cấp phát tài nguyên cho các tiến trình con. Tiến trình con nhận tài nguyên ở đâu, từ tiến trình cha hay từ hệ thống. Để giải quyết vấn đề này hệ điều hành đưa ra 2 mô hình quản lý tài nguyên: Thứ nhất, mô hình tập trung, trong mô hình này hệ điều hành chịu trách nhiệm phân phối tài nguyên cho tất cả các tiến trình trong hệ thống. Thứ hai, mô hình phân tán, trong mô hình này hệ điều hành cho phép tiến trình con nhận tài nguyên từ tiến trình cha, tức là tiến trình khởi tạo có nhiệm vụ nhận tài nguyên từ hệ điều hành để cấp phát cho các tiến trình mà nó tạo ra, và nó có nhiệm vụ thu hồi lại tài nguyên đã cấp phát trả về cho hệ điều hành trước khi kết thúc.
• Tiến trình song song đồng mức: là các tiến trình hoạt động song song sử dụng chung tài nguyên theo nguyên tắc lần lượt, mỗi tiến trình sau một khoảng thời gian chiếm giữ tài nguyên phải tự động trả lại tài nguyên cho tiến trình kia.
TranTrungHienI12C- Tổng số bài gửi : 19
Join date : 16/02/2012
Vai trò của khối kiểm soát tiến trình (Process Control Block)
•Trước khi CPU chuyển từ thực thi tiến trình này sang tiến trình khác, do các tiến trình cần phải sử dụng bộ nhớ để xử lý công việc của chúng, nên hệ điều hành cần phải chuyển toàn bộ dữ liệu của tiến trình đang xử lý trên bộ nhớ sang một vùng nhớ tạm trước khi chuyển sang xử lý tiến trình tiếp theo. Đây chính là chức năng chính của khối kiểm soát tiến trình.
•Các thông tin hệ điều hành cần lưu lại trước khi chuyển sang xử lý tiến trình khác bao gồm:
• 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.
•Các thông tin hệ điều hành cần lưu lại trước khi chuyển sang xử lý tiến trình khác bao gồm:
• 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.
ngothihanHC11TH2A- Tổng số bài gửi : 23
Join date : 16/02/2012
Trang 5 trong tổng số 15 trang • 1, 2, 3, 4, 5, 6 ... 10 ... 15
Similar topics
» THAO LUAN MON HOC
» BAI 6: THAO LUAN BAI 6
» Các bạn tích cực và có đóng góp với lớp
» Thảo luận Đề thi Cuối kỳ
» Thảo luận Bài 4
» BAI 6: THAO LUAN BAI 6
» Các bạn tích cực và có đóng góp với lớp
» Thảo luận Đề thi Cuối kỳ
» Thảo luận Bài 4
Trang 5 trong tổng số 15 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết