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 7 trong tổng số 15 trang
Trang 7 trong tổng số 15 trang • 1 ... 6, 7, 8 ... 11 ... 15
Một số cổng (port) thông dụng trong "thế giới" Internet
1.Cổng 80: Khi một người sử dụng địa chỉ IP hay HostName của các bạn trong bộ duyệt, bộ duyệt sẽ quan sát địa chỉ IP trên cổng 80 theo mặc định cho những trang Web.
2.Cổng 81: Khi một người sử dụng nhập địa chỉ IP hay HostName của các bạn trong bộ duyệt, bộ duyệt sẽ quan sát địa chỉ IP trên cổng 80. Nếu Cổng thì bị tắc nghẽn, Cổng 81 được sử dụng như một Cổng xen kẽ cho một website hosting nào đó.
3.Cổng 21: Khi người nào đó thử nối tới dịch vụ FTP của các bạn, khách hàng FTP sẽ cố gắng kết nối trên Cổng 21 theo mặc định. Thì cổng 21 mở cho những khách FTP đăng nhập và nối tới server của các bạn
4.Cổng 22: Nếu bạn chạy một SSH Secure Shell, cổng này được yêu cầu cho Khách hàng SSH để nối tới người phục vụ của các bạn.
5.Cổng 23 :Nếu bạn chạy một người phục vụ Telnet, cổng này được yêu cầu cho Khách hàng Telnet để nối tới người phục vụ của các bạn. Telnet có thể được sử dụng cho những cổng khác kiểm tra những công tác dịch vụ, nhưng để sử dụng telnet cho admin và đăng nhập từ xa thì cổng 23 phải mở.
6.Cổng 25: Khi người nào đó gửi một thư từ thông báo tới server SMTP của các bạn, thư từ sẽ cố gắng để đi vào tới server của các bạn trên Cổng 25. Đây là tiêu chuẩn SMTP (thủ tục vận chuyển Thư từ Đơn giản)
7.Cổng 53: DNS
8.Cổng 2525: Khi người nào đó gửi một thư từ thông báo tới server SMTP của bạn, thư từ sẽ để đi vào tới server của các bạn trên Cổng 25. Cổng 2525 xen kẽ được dùng bởi TZO cho những công tác lưu trữ và truyền lại. Đây là một cổng không tiêu chuẩn, nhưng sẻ hữu ích nếu SMTP (thủ tục vận chuyển Thư từ Đơn giản) bị tắc nghẽn
9.Cổng 110: Khi bạn chạy một máy tính, những người sử dụng sẽ vào theo đường POP3 (Nghi thức cơ quan bưu điện) hay IMAP4 (giao thức truy nhập Thông báo Internet) khôi phục thư từ của họ. POP3 là nghi thức tốt nhất để truy nhập những hòm thư
10.Cổng 119: Khi bạn chạy một server Tin tức, điển hình những khách hàng Tin tức muốn nối tới người phục vụ Tin tức của các bạn sẽ nối trên cổng 119. Cái này chuyển những nhu cầu để mở để chạy server tin tức của mình.
11.Cổng 3389: Chuyển 3389 Là Máy để bàn Từ xa được sử dụng cho Windows. Nếu bạn muốn từ xa kết nối tới máy tính của các bạn để điều khiển từ xa, việc sử dụng máy để bàn Từ xa freeXP yêu cầu cổng 3389 để mở.
12.Cổng 389 : LDAP hay giao thức truy nhập Thư mục Lightweight đang trở nên phổ biến chúng cho sự Truy nhập Thư mục, hay Tên, điện thoại Gửi những Thư mục. Chẳng hạn
LDAP: // LDAP.Bigfoot. Com là một người phục vụ thư mục LDAP.
13.Cổng 143 : IMAP4 hay giao thức truy nhập Thông báo Internet đang trở nên phổ biến hơn và được sử dụng khôi phục Thư từ Internet từ một server từ xa. từ đó tất cả các thông báo đều được cất giữ trên server, Nó dễ dàng trực tuyến, ngoại tuyến và sự sử dụng offline
14.Cổng 443 : Khi bạn chạy một người phục vụ an toàn, những Clients SSL muốn nối tới những server An toàn ,các bạn nối trên cổng 443. Những cổng này được cần để mở để chạy …..
15.Cổng 1503 & 1720 :MS NetMeeting và VOIP cho phép bạn tới host Internet hay gọi là VideoConference. NetMeeting là một sản phẩm tự do mà có thể là được tìm thấy trên Website Microsoft Tại địa chỉ http: // www.microsoft.com /
16.Cổng 5590: Khi bạn chạy một Server VNC để từ xa kiểm soát PC của các bạn, nó sử dụng cổng 5900. VNC sẻ hữu ích nếu bạn muốn từ xa kiểm soát server của các bạn../
17.Cổng 5631: Khi một người phục vụ PCAnywhere được thiết lập nhận được những yêu cầu từ xa, nó tiếp tục nghe TCP cổng 5631. Hostand được cho phép bạn để chạy một PCAnywhere, PCAnywhere này sử dụng Internet để nối với nhau và từ xa kiểm soát PC của các bạn.
Nguồn: (Tổng hợp từ internet)
2.Cổng 81: Khi một người sử dụng nhập địa chỉ IP hay HostName của các bạn trong bộ duyệt, bộ duyệt sẽ quan sát địa chỉ IP trên cổng 80. Nếu Cổng thì bị tắc nghẽn, Cổng 81 được sử dụng như một Cổng xen kẽ cho một website hosting nào đó.
3.Cổng 21: Khi người nào đó thử nối tới dịch vụ FTP của các bạn, khách hàng FTP sẽ cố gắng kết nối trên Cổng 21 theo mặc định. Thì cổng 21 mở cho những khách FTP đăng nhập và nối tới server của các bạn
4.Cổng 22: Nếu bạn chạy một SSH Secure Shell, cổng này được yêu cầu cho Khách hàng SSH để nối tới người phục vụ của các bạn.
5.Cổng 23 :Nếu bạn chạy một người phục vụ Telnet, cổng này được yêu cầu cho Khách hàng Telnet để nối tới người phục vụ của các bạn. Telnet có thể được sử dụng cho những cổng khác kiểm tra những công tác dịch vụ, nhưng để sử dụng telnet cho admin và đăng nhập từ xa thì cổng 23 phải mở.
6.Cổng 25: Khi người nào đó gửi một thư từ thông báo tới server SMTP của các bạn, thư từ sẽ cố gắng để đi vào tới server của các bạn trên Cổng 25. Đây là tiêu chuẩn SMTP (thủ tục vận chuyển Thư từ Đơn giản)
7.Cổng 53: DNS
8.Cổng 2525: Khi người nào đó gửi một thư từ thông báo tới server SMTP của bạn, thư từ sẽ để đi vào tới server của các bạn trên Cổng 25. Cổng 2525 xen kẽ được dùng bởi TZO cho những công tác lưu trữ và truyền lại. Đây là một cổng không tiêu chuẩn, nhưng sẻ hữu ích nếu SMTP (thủ tục vận chuyển Thư từ Đơn giản) bị tắc nghẽn
9.Cổng 110: Khi bạn chạy một máy tính, những người sử dụng sẽ vào theo đường POP3 (Nghi thức cơ quan bưu điện) hay IMAP4 (giao thức truy nhập Thông báo Internet) khôi phục thư từ của họ. POP3 là nghi thức tốt nhất để truy nhập những hòm thư
10.Cổng 119: Khi bạn chạy một server Tin tức, điển hình những khách hàng Tin tức muốn nối tới người phục vụ Tin tức của các bạn sẽ nối trên cổng 119. Cái này chuyển những nhu cầu để mở để chạy server tin tức của mình.
11.Cổng 3389: Chuyển 3389 Là Máy để bàn Từ xa được sử dụng cho Windows. Nếu bạn muốn từ xa kết nối tới máy tính của các bạn để điều khiển từ xa, việc sử dụng máy để bàn Từ xa freeXP yêu cầu cổng 3389 để mở.
12.Cổng 389 : LDAP hay giao thức truy nhập Thư mục Lightweight đang trở nên phổ biến chúng cho sự Truy nhập Thư mục, hay Tên, điện thoại Gửi những Thư mục. Chẳng hạn
LDAP: // LDAP.Bigfoot. Com là một người phục vụ thư mục LDAP.
13.Cổng 143 : IMAP4 hay giao thức truy nhập Thông báo Internet đang trở nên phổ biến hơn và được sử dụng khôi phục Thư từ Internet từ một server từ xa. từ đó tất cả các thông báo đều được cất giữ trên server, Nó dễ dàng trực tuyến, ngoại tuyến và sự sử dụng offline
14.Cổng 443 : Khi bạn chạy một người phục vụ an toàn, những Clients SSL muốn nối tới những server An toàn ,các bạn nối trên cổng 443. Những cổng này được cần để mở để chạy …..
15.Cổng 1503 & 1720 :MS NetMeeting và VOIP cho phép bạn tới host Internet hay gọi là VideoConference. NetMeeting là một sản phẩm tự do mà có thể là được tìm thấy trên Website Microsoft Tại địa chỉ http: // www.microsoft.com /
16.Cổng 5590: Khi bạn chạy một Server VNC để từ xa kiểm soát PC của các bạn, nó sử dụng cổng 5900. VNC sẻ hữu ích nếu bạn muốn từ xa kiểm soát server của các bạn../
17.Cổng 5631: Khi một người phục vụ PCAnywhere được thiết lập nhận được những yêu cầu từ xa, nó tiếp tục nghe TCP cổng 5631. Hostand được cho phép bạn để chạy một PCAnywhere, PCAnywhere này sử dụng Internet để nối với nhau và từ xa kiểm soát PC của các bạn.
Nguồn: (Tổng hợp từ internet)
NguyenVanThang25 (I12A)- Tổng số bài gửi : 29
Join date : 15/02/2012
Age : 37
xin bổ sung thêm 1 ví dụ nhỏ nửa !!! về sự cộng tác giữa các tiến trình
VD: Trong lớp chúng ta có thể cộng tác với nhau về học tập , cùng nhau trao đổi , nghiên cứu. khi đó 1 đề tài của thầy tuấn cho 1 ngừơi thì không tài nào kham hết nổi cả, nên chúng ta sẽ chia nhỏ ra để làm bằng cách phân theo nhóm, mỗi ngừoi đều có việc. từ đó công việc sẽ giải quyết được tốt hơn, nhanh hơn chính xác hơn, đựợc những kết quả đó ta có thể chia sẽ cho nhau.
huynhvanhung(I12A)- Tổng số bài gửi : 43
Join date : 17/02/2012
Age : 36
Đến từ : TP.HCM
Tiến trình là gì ? Mô hình chuyển trạng thái của các tiến trình
Tiến trình là 1 chương trình đang hoạt động hay 1 thực thể đang hoạt động
Một tiến trình sẽ trải qua 5 trạng thái sau :
- New : tiến trình vừa được tạo lập.
- Running: các lệnh đang được thực hiện.
- Waiting: Tiến trình chờ 1 sự kiện nào đó phải xảy ra (kết thúc nhập xuất hay tín hiệu từ các tiến trình khác)
- Ready : tiến trình chờ được cấp CPU để xử lý
- Terminated : Tiến trình thực hiện xong công việc
Các tiến trình mới sau khi được HDH tạo ra sẽ được đưa vào hàng đợi job queue lúc này các tiến trình đang ở trạng thái new .Sau đó HDH sẽ dùng điều p[hối chậm (Long-Term Scheduler) để sơ tuyển ra 1 tập hợp các tiên trình tốt nhất để chuyển qua trạng thái ready (tập hợp này sẽ gồm 2 loại là tiến trình hướng I/O và hướng CPU)
Sau khi các tiến trình đã được chuyển sang trạng thái ready thì HDH lại tiếp tục dùng điều phối nhanh (Short-Term Scheduler) để chọn ra tiến trình thích hợp chuyển sang trạng thái running .
Các tiến trình khi đang ở trạng thái running thì sẽ có 3 trường hợp xảy ra :
+ Tiến trình sẽ được cấp phát CPU để xử lý các lệnh .Nếu xử lý hoàn tất tất cả các lệnh thì chuyển sang trạng thái Terminated kết thúc quá trình xử lý
+ Tiến trình có nhu cầu I/O hay có yêu cầu liên lạc với tiến trình khác .Lúc này tiến trình sẽ được chuyển sang trạng thái waiting nếu là I/O thì sẽ vào hàng đợi device queue. Sau khi kết thúc I/O hay tín hiệu từ tiến trình khác thì tiến trình lại được đưa vào trạng thái ready và tiếp tục chu trình xử lý như đa nói ở trên.
+ Như ta đã biết thì mỗi tiến trình HDH chỉ giới hạn trong 1 khoảng thời gian nhất định (đa thời gian) nên khi hết thời gian thì dù tiến trình chưa thực hiện hết lệnh cũng bị ngắt và chuyển về trang thái ready và lại thực hiện lại quá trình cũ.
Một tiến trình sẽ trải qua 5 trạng thái sau :
- New : tiến trình vừa được tạo lập.
- Running: các lệnh đang được thực hiện.
- Waiting: Tiến trình chờ 1 sự kiện nào đó phải xảy ra (kết thúc nhập xuất hay tín hiệu từ các tiến trình khác)
- Ready : tiến trình chờ được cấp CPU để xử lý
- Terminated : Tiến trình thực hiện xong công việc
Các tiến trình mới sau khi được HDH tạo ra sẽ được đưa vào hàng đợi job queue lúc này các tiến trình đang ở trạng thái new .Sau đó HDH sẽ dùng điều p[hối chậm (Long-Term Scheduler) để sơ tuyển ra 1 tập hợp các tiên trình tốt nhất để chuyển qua trạng thái ready (tập hợp này sẽ gồm 2 loại là tiến trình hướng I/O và hướng CPU)
Sau khi các tiến trình đã được chuyển sang trạng thái ready thì HDH lại tiếp tục dùng điều phối nhanh (Short-Term Scheduler) để chọn ra tiến trình thích hợp chuyển sang trạng thái running .
Các tiến trình khi đang ở trạng thái running thì sẽ có 3 trường hợp xảy ra :
+ Tiến trình sẽ được cấp phát CPU để xử lý các lệnh .Nếu xử lý hoàn tất tất cả các lệnh thì chuyển sang trạng thái Terminated kết thúc quá trình xử lý
+ Tiến trình có nhu cầu I/O hay có yêu cầu liên lạc với tiến trình khác .Lúc này tiến trình sẽ được chuyển sang trạng thái waiting nếu là I/O thì sẽ vào hàng đợi device queue. Sau khi kết thúc I/O hay tín hiệu từ tiến trình khác thì tiến trình lại được đưa vào trạng thái ready và tiếp tục chu trình xử lý như đa nói ở trên.
+ Như ta đã biết thì mỗi tiến trình HDH chỉ giới hạn trong 1 khoảng thời gian nhất định (đa thời gian) nên khi hết thời gian thì dù tiến trình chưa thực hiện hết lệnh cũng bị ngắt và chuyển về trang thái ready và lại thực hiện lại quá trình cũ.
LeThanhTung (I11C)- Tổng số bài gửi : 50
Join date : 28/08/2011
Các vấn đề trong 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?
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?
LeThanhTung (I11C)- Tổng số bài gửi : 50
Join date : 28/08/2011
Trình bày mô hình chuyển trạng thái của tiến trình
-Định nghĩa tiến trình (Process Definition):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 .
-Trạng thái của tiến trình:có 5 trạng thái:
+ 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 .
Chú ý: cùng một lúc có thể có nhiều tiến trình ở trạng thái: New hoặc Waitting.
VD đời thường:
-Trong 1 siêu thị: quản lý là hệ điều hành,nhân viên trong siêu thị là tiến trình phục vụ hệ thống,còn khách hàng là người sử dụng tiến trình.
-Trạng thái của tiến trình:có 5 trạng thái:
+ 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 .
Chú ý: cùng một lúc có thể có nhiều tiến trình ở trạng thái: New hoặc Waitting.
VD đời thường:
-Trong 1 siêu thị: quản lý là hệ điều hành,nhân viên trong siêu thị là tiến trình phục vụ hệ thống,còn khách hàng là người sử dụng tiến trình.
NguyenVanBenI12C- Tổng số bài gửi : 24
Join date : 16/02/2012
Vai trò của khối kiểm soát tiến trình (Process control block) trong việc quản lý tiến trình của Hệ điều hành
• 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.
TranMinhTuan143(I12A)- Tổng số bài gửi : 38
Join date : 22/02/2012
Đoạn Code Thể Hiện quá Trình Tiến Trình Cha Sản Sinh Một Tiến Trình Con
Đoạn code được trình bày bằng ngôn ngữ C
#include
void main (int argc, char *argv[])
{
int pid;
/* Tạo tiến trình con */
pid = fork(); /* Số hiệu tiến trình -> pid */
if (pid < 0) { /* Không tạo được */
fprintf (stderr, “Fork Failed !”);
exit(-1);
}
else if (pid == 0) { /* Tiến trình con đang chạy*/
execlp (“/bin/ls”, ”ls”, NULL);
}
else { /* Tiến trình cha đang chạy */
/* Chờ con với số hiệu (pid) kết thúc */
wait (NULL);
printf (“Child Complete”);
exit(0);
}
}
#include
void main (int argc, char *argv[])
{
int pid;
/* Tạo tiến trình con */
pid = fork(); /* Số hiệu tiến trình -> pid */
if (pid < 0) { /* Không tạo được */
fprintf (stderr, “Fork Failed !”);
exit(-1);
}
else if (pid == 0) { /* Tiến trình con đang chạy*/
execlp (“/bin/ls”, ”ls”, NULL);
}
else { /* Tiến trình cha đang chạy */
/* Chờ con với số hiệu (pid) kết thúc */
wait (NULL);
printf (“Child Complete”);
exit(0);
}
}
maidangvu_I12A- Tổng số bài gửi : 28
Join date : 28/02/2012
HỆ ĐIỀU HÀNH TUẦN 4
Câu 1: Trình bày mô hình chuyển trạng thái của tiến trình. Định nghĩa thế nào là tiến trình
Định nghĩa : Tiến trình là một quá trình chuyển từ trạng thái này qua trạng thái khác do một processor thực hiện dưới tác động của một hàm hành động xuất phát từ một trạng thái ban đầu nào đó.
Mô hình chuyển trạng thái của tiến trình :
Hệ điều hành chỉ cho phép tiến trình tồn tại ờ hai trạng thái : Not Running và Running.
Khi tạo ra một tiến trình mới, tiến trình đó sẽ ở trạng thái Not Running, tiến trình ở trạng thái này chờ được chuyển sang trạng thái Running.
Khi tiến trình đang thực hiện bị ngắt thì bộ điều phối tiến trình sẽ thu hồi lại processor và chọn một tiến trình ở trạng thái Not running để cấp processor cho nó và chuyển nó sang trạng thái Running. Tiến trình bị thu hồi processor sẽ được chuyển về lại trạng thái Not running.
Có 5 trạng thái của tiến trình :
• Khởi tạo : (còn gọi là mới) : Khi một tiến trình đầu tiên được tạo ra, nó sẽ được gán vào trạng thái ‘created’ hoặc ‘new’. Ở Trạng thái này, tiến trình đang chờ để được đưa vào trạng thái ‘ready’ . Quá trình này sẽ được chấp nhận hoặc trì hoãn bởi một lịch trình dài hạn.
• Trạng thái sẵn sàng (ready) hoặc đang chờ(waiting): Một quá trình "ready" hoặc "waiting" đã được nạp vào bộ nhớ chính và đang chờ được thực hiện trên một CPU. Có thể có nhiều trạng thái "ready" tại bất kỳ điểm nào của hệ thống nhưng chỉ có một quá trình có thể được thực hiện tại một thời điểm.
• Running : Một quá trình di chuyển vào tình trạng running khi nó được chọn để thực hiện. Quá trình này được thực hiện bởi một trong các CPU (hoặc lõi) của hệ thống.
• Block : Một quá trình bị chặn trên một số sự kiện (chẳng hạn như hoàn thành hoạt động I / O hoặc một tín hiệu).
• Kết thúc : Một tiến trình được hoàn thành. Trong một số trường hợp, quá trình di chuyển sang trạng thái "kết thúc". Nếu một quá trình không được loại bỏ khỏi bộ nhớ sau khi nhập vào trạng thái này, nó có thể trở thành một quá trình Zombie.
Câu 2: Phân tích khái niệm chuyễn ngữ cảnh. Chuyển CPU tới một quá trình khác yêu cầu lưu trạng thái của quá trình cũ và nạp trạng thái được lưu cho quá trình mới. Tác vụ này được xem như chuyển ngữ cảnh (context switch). Ngữ cảnh của quá trình được hiện diện trong PCB của quá trình; Nó chứa giá trị các thanh ghi, trạng thái quá trình và thông tin quản lý bộ nhớ. Khi chuyển ngữ cảnh xảy ra, nhân lưu ngữ cảnh của quá trình cũ trong PCB của nó và nạp ngữ cảnh được lưu của quá trình mới được định thời để chạy. Thời gian chuyển ngữ cảnh là chi phí thuần vì hệ thống không thực hiện công việc có ích trong khi chuyển. Tốc độ của nó khác từ máy này tới máy khác phụ thuộc vào tốc độ bộ nhớ, số lượng thanh ghi phải được chép và sự tồn tại của các chỉ thị đặc biệt (như chỉ thị để nạp và lưu tất cả thanh ghi). Điển hình dãy tốc độ từ 1 tới 1000 mili giây.
Chỉ rõ chức năng của khối PCB( Process Control Block) :
PCB : Khối Điều khiển tiến trình (cũng được gọi là Khối Kiểm soát công tác hoặc Cấu trúc nhiệm vụ) là một cấu trúc dữ liệu trong các hệ điều hành hạt nhân có chứa các thông tin cần thiết để quản lý một quá trình cụ thể. PCB là biểu hiện của một quá trình trong một hệ điều hành.
PCB bao gồm :
1. Trạng thái tiến trình : trạng thái này có thể là : mới, sẵn sàng , chạy, chờ đợi và tạm dừng.
2. Truy cập chương trình : Truy cập cho biết địa chỉ của lệnh tiếp theo được thực hiện cho quá trình này.
3. Thanh ghi CPU : Các thanh ghi thay đổi về số lượng và loại, tùy thuộc vào kiến trúc máy tính. Chúng bao gồm ắc quy, chỉ số của thanh ghi, con trỏ ngăn xếp, và thanh ghi chung cộng với thông tin bất kỳ của mã số.
4. Thông tin lịch trình của CPU: gồm một quá trình ưu tiên con trỏ đến hàng đợi của ịch trình, và các thông số lịch trình khác.
5. Quản lý bộ nhớ thông tin bao gồm các thông tin như : giá trị của sổ đăng ký cơ sở và giới hạn, bảng trang, hoặc các bảng phân đoạn, tùy thuộc vào bộ nhớ hệ thống được sử dụng bởi hệ điều hành.
6. Các thông tin hoạch toán : gồm số lượng của CPU và thời gian thực sử dụng, thời hạn, số tài khoản, số công việc hoặc quá trình.
7. I/ O thông tin trạng thái bao gồm danh sách các thiết bị I/O phân bổ cho quá trình này, một danh sách các tập tin mở.
Câu 3: Giới thiệu các loại trình điều phối. ( Shceduler) 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 (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.
• Hướng I/O: tính toán ít, nhiều I/O
• 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.
Đ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.
• Khi gửi một lá thư, khi cần phải chuyển đến người nhận một cách nhanh chóng, ta lựa chọn phương pháp chuyển phát nhanh, thời gian tới sớm, chi phí cao hơn (cần điều phối nhanh). Ngược lại, công việc không cần thiết, ta chọn gửi thư phương pháp thường, tới đích chậm hơn do mất nhiều thời gian điều phối, chi phí ít hơn.
Câu 4: Trình bày những lý do của cộng tác giữa các tiến trình :
Chia sẽ thông tin (Information Sharing): Mỗi tiến trình sử dụng thôn 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 1 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 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 dung có nhu cầu làm nhiều việc một luc. Soạn thảo, in ấn, duyệt web, lấy file về, kiểm tra chính tả…
Tại sao phải cần cộng tác : nhằm mục đích chia sẽ công việc, dễ dàng hơn trong việc thực hiện công việc do có sự hỗ trợ nhau trong công việc. Nó tương tự như dây chuyển sản xuất mà các doanh nghiệp sản xuất áp dụng. Mội một khâu làm một nhiệm vụ riêng nhưng có lien hệ mật thiết với các khâu khác trong giay chuyền và như một mắt xích không thể thiếu.
Câu 5: Phát biểu bài toán sản xuất tiêu thụ để minh họa một hệ thống bao gồm nhiều tiến trình đồng hành cộng tác cùng chia sẽ tài nguyên.
Tiến trình sản xuất tạo ra dòng thông tin để tiến trình tiêu thụ sử dụng.
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 Consummer 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 và không được lấy ra khi chưa có sản phầm nào.
Định nghĩa : Tiến trình là một quá trình chuyển từ trạng thái này qua trạng thái khác do một processor thực hiện dưới tác động của một hàm hành động xuất phát từ một trạng thái ban đầu nào đó.
Mô hình chuyển trạng thái của tiến trình :
Hệ điều hành chỉ cho phép tiến trình tồn tại ờ hai trạng thái : Not Running và Running.
Khi tạo ra một tiến trình mới, tiến trình đó sẽ ở trạng thái Not Running, tiến trình ở trạng thái này chờ được chuyển sang trạng thái Running.
Khi tiến trình đang thực hiện bị ngắt thì bộ điều phối tiến trình sẽ thu hồi lại processor và chọn một tiến trình ở trạng thái Not running để cấp processor cho nó và chuyển nó sang trạng thái Running. Tiến trình bị thu hồi processor sẽ được chuyển về lại trạng thái Not running.
Có 5 trạng thái của tiến trình :
• Khởi tạo : (còn gọi là mới) : Khi một tiến trình đầu tiên được tạo ra, nó sẽ được gán vào trạng thái ‘created’ hoặc ‘new’. Ở Trạng thái này, tiến trình đang chờ để được đưa vào trạng thái ‘ready’ . Quá trình này sẽ được chấp nhận hoặc trì hoãn bởi một lịch trình dài hạn.
• Trạng thái sẵn sàng (ready) hoặc đang chờ(waiting): Một quá trình "ready" hoặc "waiting" đã được nạp vào bộ nhớ chính và đang chờ được thực hiện trên một CPU. Có thể có nhiều trạng thái "ready" tại bất kỳ điểm nào của hệ thống nhưng chỉ có một quá trình có thể được thực hiện tại một thời điểm.
• Running : Một quá trình di chuyển vào tình trạng running khi nó được chọn để thực hiện. Quá trình này được thực hiện bởi một trong các CPU (hoặc lõi) của hệ thống.
• Block : Một quá trình bị chặn trên một số sự kiện (chẳng hạn như hoàn thành hoạt động I / O hoặc một tín hiệu).
• Kết thúc : Một tiến trình được hoàn thành. Trong một số trường hợp, quá trình di chuyển sang trạng thái "kết thúc". Nếu một quá trình không được loại bỏ khỏi bộ nhớ sau khi nhập vào trạng thái này, nó có thể trở thành một quá trình Zombie.
Câu 2: Phân tích khái niệm chuyễn ngữ cảnh. Chuyển CPU tới một quá trình khác yêu cầu lưu trạng thái của quá trình cũ và nạp trạng thái được lưu cho quá trình mới. Tác vụ này được xem như chuyển ngữ cảnh (context switch). Ngữ cảnh của quá trình được hiện diện trong PCB của quá trình; Nó chứa giá trị các thanh ghi, trạng thái quá trình và thông tin quản lý bộ nhớ. Khi chuyển ngữ cảnh xảy ra, nhân lưu ngữ cảnh của quá trình cũ trong PCB của nó và nạp ngữ cảnh được lưu của quá trình mới được định thời để chạy. Thời gian chuyển ngữ cảnh là chi phí thuần vì hệ thống không thực hiện công việc có ích trong khi chuyển. Tốc độ của nó khác từ máy này tới máy khác phụ thuộc vào tốc độ bộ nhớ, số lượng thanh ghi phải được chép và sự tồn tại của các chỉ thị đặc biệt (như chỉ thị để nạp và lưu tất cả thanh ghi). Điển hình dãy tốc độ từ 1 tới 1000 mili giây.
Chỉ rõ chức năng của khối PCB( Process Control Block) :
PCB : Khối Điều khiển tiến trình (cũng được gọi là Khối Kiểm soát công tác hoặc Cấu trúc nhiệm vụ) là một cấu trúc dữ liệu trong các hệ điều hành hạt nhân có chứa các thông tin cần thiết để quản lý một quá trình cụ thể. PCB là biểu hiện của một quá trình trong một hệ điều hành.
PCB bao gồm :
1. Trạng thái tiến trình : trạng thái này có thể là : mới, sẵn sàng , chạy, chờ đợi và tạm dừng.
2. Truy cập chương trình : Truy cập cho biết địa chỉ của lệnh tiếp theo được thực hiện cho quá trình này.
3. Thanh ghi CPU : Các thanh ghi thay đổi về số lượng và loại, tùy thuộc vào kiến trúc máy tính. Chúng bao gồm ắc quy, chỉ số của thanh ghi, con trỏ ngăn xếp, và thanh ghi chung cộng với thông tin bất kỳ của mã số.
4. Thông tin lịch trình của CPU: gồm một quá trình ưu tiên con trỏ đến hàng đợi của ịch trình, và các thông số lịch trình khác.
5. Quản lý bộ nhớ thông tin bao gồm các thông tin như : giá trị của sổ đăng ký cơ sở và giới hạn, bảng trang, hoặc các bảng phân đoạn, tùy thuộc vào bộ nhớ hệ thống được sử dụng bởi hệ điều hành.
6. Các thông tin hoạch toán : gồm số lượng của CPU và thời gian thực sử dụng, thời hạn, số tài khoản, số công việc hoặc quá trình.
7. I/ O thông tin trạng thái bao gồm danh sách các thiết bị I/O phân bổ cho quá trình này, một danh sách các tập tin mở.
Câu 3: Giới thiệu các loại trình điều phối. ( Shceduler) 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 (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.
• Hướng I/O: tính toán ít, nhiều I/O
• 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.
Đ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.
• Khi gửi một lá thư, khi cần phải chuyển đến người nhận một cách nhanh chóng, ta lựa chọn phương pháp chuyển phát nhanh, thời gian tới sớm, chi phí cao hơn (cần điều phối nhanh). Ngược lại, công việc không cần thiết, ta chọn gửi thư phương pháp thường, tới đích chậm hơn do mất nhiều thời gian điều phối, chi phí ít hơn.
Câu 4: Trình bày những lý do của cộng tác giữa các tiến trình :
Chia sẽ thông tin (Information Sharing): Mỗi tiến trình sử dụng thôn 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 1 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 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 dung có nhu cầu làm nhiều việc một luc. Soạn thảo, in ấn, duyệt web, lấy file về, kiểm tra chính tả…
Tại sao phải cần cộng tác : nhằm mục đích chia sẽ công việc, dễ dàng hơn trong việc thực hiện công việc do có sự hỗ trợ nhau trong công việc. Nó tương tự như dây chuyển sản xuất mà các doanh nghiệp sản xuất áp dụng. Mội một khâu làm một nhiệm vụ riêng nhưng có lien hệ mật thiết với các khâu khác trong giay chuyền và như một mắt xích không thể thiếu.
Câu 5: Phát biểu bài toán sản xuất tiêu thụ để minh họa một hệ thống bao gồm nhiều tiến trình đồng hành cộng tác cùng chia sẽ tài nguyên.
Tiến trình sản xuất tạo ra dòng thông tin để tiến trình tiêu thụ sử dụng.
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 Consummer 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 và không được lấy ra khi chưa có sản phầm nào.
nguyenthihongtham_I12C- Tổng số bài gửi : 17
Join date : 16/02/2012
Age : 34
Đến từ : Dak Lak
Hốc liên lạc (Sockets)
- Sockets được định nghĩa là một điểm cuối giao tiếp, được xác định bởi địa chỉ IP và số hiệu cổng.
- Là một phương pháp dùng để giao tiếp giữa các tiến trình khác nhau trong mạng máy tính hay là trên một máy đơn.
- Socket là một trong những phương thức giao tiếp giữa các quá trình (inter-process communication) như pipe , message queue .... Giả sử ta muốn thiết kế một hệ thống trao đổi file.
- Hệ thống này hoạt động như sau : Tất cả dữ liệu được lưu trữ trên một máy chủ mạnh để bảo đảm an toàn và dễ quản lý Giao tiếp socket giúp chúng ta hiện thực mô hình client / server dễ dàng hơn.
Ví dụ: A muốn đến nhà B thì trước tiên phải mở cửa đi ra ngoài. Sau đó A đi đến nhà B (đi bằng phương tiện nào để đến nhà B không quan tâm). Khi đến nhà B thì A phải bấm chuông để B ra mở cửa. Qúa trình kết nối giữa 2 ứng dụng trên mạng cũng giống như vậy. Client mở một Sockets “cái cửa” sau đó nó nhờ các lớp mạng tạo ra kết nối tới Server (không quan tâm là kết nối thế nào). Tiếp theo Server cũng tạo ra một sockets khác có địa chỉ "cái cửa thứ 2, nhưng có chuông, số nhà". Khi có kết nối đúng tới Server dựa vào thông tin trên sockets của server (giống như client tìm đúng số nhà, bấm chuông...) Thì server sẽ mở cổng ra và client/server sẽ bắt đầu trao đổi dữ liệu.
Các thuộc tính của socket:
- Domaine: định nghĩa dạng thức địa chỉ và các nghi thức sử dụng. Có nhiều domaines, ví dụ UNIX, INTERNET, XEROX_NS, ...
- Type: các đặc điểm liên lạc:
Để thực hiện liên lạc bằng socket, cần tiến hành các thao tác ::
- Tạo lập hay mở một socket
- Gắn kết một socket với một địa chỉ
- Liên lạc : có hai kiểu liên lạc tùy thuộc vào chế độ nối kết:
- Hủy một socket
- Là một phương pháp dùng để giao tiếp giữa các tiến trình khác nhau trong mạng máy tính hay là trên một máy đơn.
- Socket là một trong những phương thức giao tiếp giữa các quá trình (inter-process communication) như pipe , message queue .... Giả sử ta muốn thiết kế một hệ thống trao đổi file.
- Hệ thống này hoạt động như sau : Tất cả dữ liệu được lưu trữ trên một máy chủ mạnh để bảo đảm an toàn và dễ quản lý Giao tiếp socket giúp chúng ta hiện thực mô hình client / server dễ dàng hơn.
Ví dụ: A muốn đến nhà B thì trước tiên phải mở cửa đi ra ngoài. Sau đó A đi đến nhà B (đi bằng phương tiện nào để đến nhà B không quan tâm). Khi đến nhà B thì A phải bấm chuông để B ra mở cửa. Qúa trình kết nối giữa 2 ứng dụng trên mạng cũng giống như vậy. Client mở một Sockets “cái cửa” sau đó nó nhờ các lớp mạng tạo ra kết nối tới Server (không quan tâm là kết nối thế nào). Tiếp theo Server cũng tạo ra một sockets khác có địa chỉ "cái cửa thứ 2, nhưng có chuông, số nhà". Khi có kết nối đúng tới Server dựa vào thông tin trên sockets của server (giống như client tìm đúng số nhà, bấm chuông...) Thì server sẽ mở cổng ra và client/server sẽ bắt đầu trao đổi dữ liệu.
Các thuộc tính của socket:
- Domaine: định nghĩa dạng thức địa chỉ và các nghi thức sử dụng. Có nhiều domaines, ví dụ UNIX, INTERNET, XEROX_NS, ...
- Type: các đặc điểm liên lạc:
- + Sự tin cậy
+ Sự bảo toàn thứ tự dữ liệu
+ Lặp lại dữ liệu
+ Chế độ nối kết
+ Bảo toàn giới hạn thông điệp
+ Khả năng gởi thông điệp khẩn
Để thực hiện liên lạc bằng socket, cần tiến hành các thao tác ::
- Tạo lập hay mở một socket
- Gắn kết một socket với một địa chỉ
- Liên lạc : có hai kiểu liên lạc tùy thuộc vào chế độ nối kết:
- + Liên lạc trong chế độ không liên kết
+ Liên lạc trong chế độ nối kết
- Hủy một socket
TranThiNgocQuynh(I12C)- Tổng số bài gửi : 14
Join date : 16/02/2012
Tiến trình khác Chương trình như thế nào?
- Tiến trình (Process) là chuơng trình trong thời gian thực hiện (đặt dưới sự quản lý của HĐH).Có sự phân biệt Tiến trình hệ thống (của HĐH) với Tiến trình người dùng.
- Bản thân chương trình không là tiến trình vì là thực thể Thụ động (Passive), trong khi tiến trình là thực thể Hoạt động (Active) với nhiều thông tin về trạng thái trong đó có Bộ đếm chương trình (Program Counter) cho biết vị trí lệnh hiện hành.
- Bản thân chương trình không là tiến trình vì là thực thể Thụ động (Passive), trong khi tiến trình là thực thể Hoạt động (Active) với nhiều thông tin về trạng thái trong đó có Bộ đếm chương trình (Program Counter) cho biết vị trí lệnh hiện hành.
LeMInhTien(I11C)- Tổng số bài gửi : 40
Join date : 07/09/2011
Trình bày những 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ề,...
VD:Nhu cầu nối mạng internet .
- 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ề,...
VD:Nhu cầu nối mạng internet .
NguyenVinhQuang_I12A- Tổng số bài gửi : 21
Join date : 17/02/2012
Phân biệt điều phối chậm với điều phối nhanh.
- Điều phối chậm:
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 (vài phút), loại Scheduler này có điều kiện để lựa chọn kỹ cáctiến trình cần nhằm phối hợp cân đối 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:
Cân bằng tải cho nhiều hệ thống.
- Điều phối nhanh:
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.
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 (vài phút), loại Scheduler này có điều kiện để lựa chọn kỹ cáctiến trình cần nhằm phối hợp cân đối 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:
Cân bằng tải cho nhiều hệ thống.
- Điều phối nhanh:
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.
NguyenVinhQuang_I12A- Tổng số bài gửi : 21
Join date : 17/02/2012
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.
NguyenVinhQuang_I12A- Tổng số bài gửi : 21
Join date : 17/02/2012
Vai trò của khối kiểm soát tiến trình (Process control block) trong việc quản lý tiến trình của Hệ điều hành
Trả lời:
• 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.
• 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.
TranMinhTuan143(I12A)- Tổng số bài gửi : 38
Join date : 22/02/2012
Mục tiêu điều phối tiến trình,Các đặc tính của tiến trình.
trả lời:
Mục tiêu điều phối tiến trình
Bộ điều phối không cung cấp cơ chế, mà đưa ra các quyết định. Các hệ điều hành xây dựng nhiều chiến lược khác nhau để thực hiện việc điều phối, nhưng tựu chung cần đạt được các mục tiêu sau :
a) Sự công bằng ( Fairness) :
Các tiến trình chia sẻ CPU một cách công bằng, không có tiến trình nào phải chờ đợi vô hạn để được cấp phát CPU
b) Tính hiệu qủa (Efficiency) :
Hệ thống phải tận dụng được CPU 100% thời gian.
c) Thời gian đáp ứng hợp lý (Response time) :
Cực tiểu hoá thời gian hồi đáp cho các tương tác của người sử dụng
d) Thời gian lưu lại trong hệ thống ( Turnaround Time) :
Cực tiểu hóa thời gian hoàn tất các tác vụ xử lý theo lô.
e) Thông lượng tối đa (Throughput ) :
Cực đại hóa số công việc được xử lý trong một đơn vị thời gian.
Tuy nhiên thường không thể thỏa mãn tất cả các mục tiêu kể trên vì bản thân chúng có sự mâu thuẫn với nhau mà chỉ có thể dung hòa chúng ở mức độ nào đó.
Các đặc tính của tiến trình:
Điều phối hoạt động của các tiến trình là một vấn đề rất phức tạp, đòi hỏi hệ điều hành khi giải quyết phải xem xét nhiều yếu tố khác nhau để có thể đạt được những mục tiêu đề ra. Một số đặc tính của tiến trình cần được quan tâm như tiêu chuẩn điều phối :
a) Tính hướng xuất / nhập của tiến trình ( I/O-boundedness):
Khi một tiến trình nhận được CPU, chủ yếu nó chỉ sử dụng CPU đến khi phát sinh một yêu cầu nhập xuất ? Hoạt động của các tiến trình như thế thường bao gồm nhiều lượt sử dụng CPU , mỗi lượt trong một thời gian khá ngắn.
b) Tính hướng xử lý của tiến trình ( CPU-boundedness):
Khi một tiến trình nhận được CPU, nó có khuynh hướng sử dụng CPU đến khi hết thời gian dành cho nó ? Hoạt động của các tiến trình như thế thường bao gồm một số ít lượt sử dụng CPU , nhưng mỗi lượt trong một thời gian đủ dài.
c) Tiến trình tương tác hay xử lý theo lô :
Người sử dụng theo kiểu tương tác thường yêu cầu được hồi đáp tức thời đối với các yêu cầu của họ, trong khi các tiến trình của tác vụ được xử lý theo lô nói chung có thể trì hoãn trong một thời gian chấp nhận được.
d) Độ ưu tiên của tiến trình :
Các tiến trình có thể được phân cấp theo một số tiêu chuẩn đánh giá nào đó, một cách hợp lý, các tiến trình quan trọng hơn ( có độ ưu tiên cao hơn) cần được ưu tiên hơn.
e) Thời gian đã sử dụng CPU của tiến trình :
Một số quan điểm ưu tiên chọn những tiến trình đã sử dụng CPU nhiều thời gian nhất vì hy vọng chúng sẽ cần ít thời gian nhất để hoàn tất và rời khỏi hệ thống . Tuy nhiên cũng có quan điểm cho rằng các tiến trình nhận được CPU trong ít thời gian là những tiến trình đã phải chờ lâu nhất, do vậy ưu tiên chọn chúng.
f) Thời gian còn lại tiến trình cần để hoàn tất :
Có thể giảm thiểu thời gian chờ đợi trung bình của các tiến trình bằng cách cho các tiến trình cần ít thời gian nhất để hoàn tất được thực hiện trước. Tuy nhiên đáng tiếc là rất hiếm khi biết được tiến trình cần bao nhiêu thời gian nữa để kết thúc xử lý.
Mục tiêu điều phối tiến trình
Bộ điều phối không cung cấp cơ chế, mà đưa ra các quyết định. Các hệ điều hành xây dựng nhiều chiến lược khác nhau để thực hiện việc điều phối, nhưng tựu chung cần đạt được các mục tiêu sau :
a) Sự công bằng ( Fairness) :
Các tiến trình chia sẻ CPU một cách công bằng, không có tiến trình nào phải chờ đợi vô hạn để được cấp phát CPU
b) Tính hiệu qủa (Efficiency) :
Hệ thống phải tận dụng được CPU 100% thời gian.
c) Thời gian đáp ứng hợp lý (Response time) :
Cực tiểu hoá thời gian hồi đáp cho các tương tác của người sử dụng
d) Thời gian lưu lại trong hệ thống ( Turnaround Time) :
Cực tiểu hóa thời gian hoàn tất các tác vụ xử lý theo lô.
e) Thông lượng tối đa (Throughput ) :
Cực đại hóa số công việc được xử lý trong một đơn vị thời gian.
Tuy nhiên thường không thể thỏa mãn tất cả các mục tiêu kể trên vì bản thân chúng có sự mâu thuẫn với nhau mà chỉ có thể dung hòa chúng ở mức độ nào đó.
Các đặc tính của tiến trình:
Điều phối hoạt động của các tiến trình là một vấn đề rất phức tạp, đòi hỏi hệ điều hành khi giải quyết phải xem xét nhiều yếu tố khác nhau để có thể đạt được những mục tiêu đề ra. Một số đặc tính của tiến trình cần được quan tâm như tiêu chuẩn điều phối :
a) Tính hướng xuất / nhập của tiến trình ( I/O-boundedness):
Khi một tiến trình nhận được CPU, chủ yếu nó chỉ sử dụng CPU đến khi phát sinh một yêu cầu nhập xuất ? Hoạt động của các tiến trình như thế thường bao gồm nhiều lượt sử dụng CPU , mỗi lượt trong một thời gian khá ngắn.
b) Tính hướng xử lý của tiến trình ( CPU-boundedness):
Khi một tiến trình nhận được CPU, nó có khuynh hướng sử dụng CPU đến khi hết thời gian dành cho nó ? Hoạt động của các tiến trình như thế thường bao gồm một số ít lượt sử dụng CPU , nhưng mỗi lượt trong một thời gian đủ dài.
c) Tiến trình tương tác hay xử lý theo lô :
Người sử dụng theo kiểu tương tác thường yêu cầu được hồi đáp tức thời đối với các yêu cầu của họ, trong khi các tiến trình của tác vụ được xử lý theo lô nói chung có thể trì hoãn trong một thời gian chấp nhận được.
d) Độ ưu tiên của tiến trình :
Các tiến trình có thể được phân cấp theo một số tiêu chuẩn đánh giá nào đó, một cách hợp lý, các tiến trình quan trọng hơn ( có độ ưu tiên cao hơn) cần được ưu tiên hơn.
e) Thời gian đã sử dụng CPU của tiến trình :
Một số quan điểm ưu tiên chọn những tiến trình đã sử dụng CPU nhiều thời gian nhất vì hy vọng chúng sẽ cần ít thời gian nhất để hoàn tất và rời khỏi hệ thống . Tuy nhiên cũng có quan điểm cho rằng các tiến trình nhận được CPU trong ít thời gian là những tiến trình đã phải chờ lâu nhất, do vậy ưu tiên chọn chúng.
f) Thời gian còn lại tiến trình cần để hoàn tất :
Có thể giảm thiểu thời gian chờ đợi trung bình của các tiến trình bằng cách cho các tiến trình cần ít thời gian nhất để hoàn tất được thực hiện trước. Tuy nhiên đáng tiếc là rất hiếm khi biết được tiến trình cần bao nhiêu thời gian nữa để kết thúc xử lý.
TranMinhTuan143(I12A)- Tổng số bài gửi : 38
Join date : 22/02/2012
Hãy nêu những Lý Do Cộng Tác(Cooperating Processes)?
Những Lý Do Cộng Tác(Cooperating Processes):
-Chia sẽ thông tin(Information Reasons): 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 làm 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ốc độ tăng lên đáng kể, phục vụ khách hàng tốt hơn.
-Nâng tính đơn thể của hệ điều hành lên cao.
-Chia sẽ thông tin(Information Reasons): 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 làm 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ốc độ tăng lên đáng kể, phục vụ khách hàng tốt hơn.
-Nâng tính đơn thể của hệ điều hành lên cao.
TranMinhTuan143(I12A)- Tổng số bài gửi : 38
Join date : 22/02/2012
Re: Thảo luận Bài 4
---------------------------------------------------------------------------------------------------------------------------------LeQuocKhanh-11H1010059 đã viế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:
Producer:
item nextProduced;
while (1)
{
while(((in+1)%BUFFER_SIZE)==out); //quẩn tại đây khi buffer đầy.
buffer[in] = nextProduced;
in = (in+1)%BUFFER_SIZE;
}
Custumner:
item nextConsumed;
while (1)
{
while(in==out); //quẩn khi buffer rỗng
nextConsumed = buffer[out];
out = (out+1)%BUFFER_SIZE;
}
Bài toán Sản Xuất - Tiêu thụ được phát biểu theo kỹ thuật busy – waiting thế này tuy hay nhưng còn một số bất cập cần cải tiến:
- 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).
Dưới đây là cấu trúc của phần quản lý buffer
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
}
Chúng ta có thể giải quyết vấn đề này bằng thuật toán dưới
+ Sản xuất
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ụ
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
}
(Sưu tầm từ Internet)
NgoXuanQuoc_(102C)- Tổng số bài gửi : 42
Join date : 17/02/2011
Age : 36
Re: Thảo luận Bài 4
Admin đã viết:Thảo luận những vấn đề liên quan đến Bài 4
mình có vấn đè chưa hiểu mong các bạn và thầy giải đáp giúp:
1) Trong cây Ram có bộ nhớ Rom hay không và có dung lượng là bao nhiêu?
2) Ram và HDD đều có dung lượng lưu trữ nhưng tạo sao không có Ram thì máy không chạy còn không có ổ cứng thì máy vẫn chạy.
3) Tại sao lại phân biệt hệ diều hành 32bit và 64bit.
nguyenthanhphongHC11TH2A- Tổng số bài gửi : 26
Join date : 16/02/2012
Lý do cộng tác giữa các tiến trình (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, Lấy file về,...
VD:Nhu cầu nối mạng internet của chúng ta.
- 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ề,...
VD:Nhu cầu nối mạng internet của chúng ta.
quynhnhi.nguyen_I12A- Tổng số bài gửi : 17
Join date : 07/03/2012
Lý do cộng tác giữa các tiến trình và ví dụ minh họa
Giữa các tiến trình cần sự cộng tác với nhau để đảm bảo các tiến trình được xử lí hoạt động đạt hiệu quả tối đa.
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ụ thực tế: Trong một nhóm kỹ sư xe máy tham gia nghiên cứu một dự án cải tiến mẫu xe máy mới. Nhóm kỹ thuật viên này chia tài liệu về dự án mới cho mỗi thành viên trong nhóm. Thành viên thứ nhất nghiên cứu về cách thay đổi mẫu mã của xe, thành viên thứ hai nghiên cứu về cách tiết kiệm xăng cho xe. Sau đó các thành viên này tập hợp những thông tin mình nghiên cứu được để hoàn thiện một chiếc xe máy mới.
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.
Ví dụ thực tế: Mỗi người kỹ sư sẽ áp dụng những nghiên cứu của mình trên mỗi xe riêng để kiểm thử kết quả nghiên cứu.
Đả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ụ thực tế: Trong một dây chuyền lắp ráp một chiếc xe máy, mỗi người kỹ sư sẽ lắp ráp bộ phận do mình phụ trách. Điều này đảm bảo được tính đơn thể của sự cộng tác tiến trình.
Đảm bảo tính tiện dụng (Convenience): Đảm bảo tính tiện dụng cho người dùng, người dùng sẽ được sử dụng nhiều tính năng mới.
Ví dụ thực tế: Sau khi chiếc xe cải tiến, người sử dụng sẽ được hưởng nhiều tính năng mới như: Mẫu mã đẹp, ít hao xăng, xe chạy khỏe hơn, ....
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ụ thực tế: Trong một nhóm kỹ sư xe máy tham gia nghiên cứu một dự án cải tiến mẫu xe máy mới. Nhóm kỹ thuật viên này chia tài liệu về dự án mới cho mỗi thành viên trong nhóm. Thành viên thứ nhất nghiên cứu về cách thay đổi mẫu mã của xe, thành viên thứ hai nghiên cứu về cách tiết kiệm xăng cho xe. Sau đó các thành viên này tập hợp những thông tin mình nghiên cứu được để hoàn thiện một chiếc xe máy mới.
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.
Ví dụ thực tế: Mỗi người kỹ sư sẽ áp dụng những nghiên cứu của mình trên mỗi xe riêng để kiểm thử kết quả nghiên cứu.
Đả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ụ thực tế: Trong một dây chuyền lắp ráp một chiếc xe máy, mỗi người kỹ sư sẽ lắp ráp bộ phận do mình phụ trách. Điều này đảm bảo được tính đơn thể của sự cộng tác tiến trình.
Đảm bảo tính tiện dụng (Convenience): Đảm bảo tính tiện dụng cho người dùng, người dùng sẽ được sử dụng nhiều tính năng mới.
Ví dụ thực tế: Sau khi chiếc xe cải tiến, người sử dụng sẽ được hưởng nhiều tính năng mới như: Mẫu mã đẹp, ít hao xăng, xe chạy khỏe hơn, ....
BuiHuongTra(I12A)- Tổng số bài gửi : 12
Join date : 16/02/2012
Age : 36
Đến từ : Phú Yên
So sánh Job Queue và Ready Queue
Job Queue: là hàng chờ công việc, chứa các tiến trình chờ được vận hành.
Ready Queue: là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU.
Giống nhau:
- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:
- Dùng giải thuật điều phối chậm(Long - term Scheduler) để đưa các tiến trình từ Job Queue vào Ready Queue.
- Dùng giải thuật điều phối nhanh(Short - term Scheduler) chọn các tiến trình trong Ready Queue để cấp CPU.
vd:trò chơi hãy chọn giá đúng
nhận phiếu tham gia tò chơi, chọn khoảng 5 người đưa vào ready queue trả lời nhanh, để tại 1 thời điểm chọn 1 người tham chơi chính thức.
Ready Queue: là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU.
Giống nhau:
- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:
- Dùng giải thuật điều phối chậm(Long - term Scheduler) để đưa các tiến trình từ Job Queue vào Ready Queue.
- Dùng giải thuật điều phối nhanh(Short - term Scheduler) chọn các tiến trình trong Ready Queue để cấp CPU.
vd:trò chơi hãy chọn giá đúng
nhận phiếu tham gia tò chơi, chọn khoảng 5 người đưa vào ready queue trả lời nhanh, để tại 1 thời điểm chọn 1 người tham chơi chính thức.
NguyenHaCamThu(I12A)- Tổng số bài gửi : 22
Join date : 02/03/2012
Thuật giải điều phối
*\Thuật giải điều phối FCFS:
-Tới trước – Phục vụ trước (First-Come, First-Served Scheduling)
- Đơn giản, dễ thực hiện
- Các tiến trình trong Ready Queue được cấp CPU từ đầu đến cuối dãy theo qui tắc FIFO(First In,First Out)
- Thời gian chờ là khá lớn
* \Thuật giải điều phối PS:
- Mỗi tiến trình được cấp một số nguyên(Priority Number) dùng để ấn định Độ ưu tiên
- CPU luôn dành tiến trình với độ ưu tiên cao hơn (Priority Number nhỏ hơn=Độ ưu tiên cao hơn) với 2 phương án:
Có tiếm quyền(Preemptive)
Không tiếm quyền (Non- Preemptive)
- SJFS là truờng hợp đặc biệt của PS với độ ưu tiên: P=(Khoảng CPU kế tiếp)
* \Thuật giải điều phối SJFS:
-Ngắn hơn-Chạy trước(Shortest-Job-First Scheduling-SJFS)
- Tiến trình có khoảng CPU kế tiếp nhỏ hơn thì được chạy trước (Shortest-Next-CPU-Burst). Trong trường hợp bằng nhau, dung thuật giải FCFS Là giải thuật khá tối ưu, nhưng phải biết cách ước đoán khoảng CPU kế tiếp
- SJFS không tiếm quyền(Non-Preemptive SJFS) tiến trình hiện thời được thực hiện đến hết khoảng CPU của nó
- SJFS có tiếm quyền(Preemptive SJFS) tiến trình mới có Next CPU Burst nhỏ hơn khoảng thời gian CPU còn lại của tiến trình đang vận hành sẽ được chọn thay thế (Shortest Remaining First)
* \Thuật giải điều phối RRS:
- Như điều phối kiểu FCFS nhưng cho phép tiếm quyền khi tiến trình đang chạy bị hết thời lượng
- Mỗi tiến trình được cấp 1 thời lượng CPU (Time Quantum), thường từ 10-100 mili giây. Sau khoảng thời gian này, nó bị tiếm quyền và được đưa vào cuối hàng chờ Ready . Tiến trình đầu tiên trong hàng chờ Ready được chọn kế tiếp
- Nếu có n tiến trình và thời lượng là q, mỗi tiến trình nhận 1/n thời gian CPU bao gồm các đoạn không quá q đơn vị thời gian
* \Thuật giải điều phối MQS:
- Hàng chờ Ready được phân thành nhiều mức có cấp độ ưu tiên khác nhau
ví dụ: mức các tiến trình tương tác (Interactive)chạy ở mặt trước (Foreground) có độ ưu tiên cao nhất và mức các tiến trình lô(Batch) vận hành trong hậu trường (Background)
- Mỗi hàng chờ có thuật giải điều phối riêng
ví dụ:Foreground dung RRS, Background dung FCFS
- Quan hệ giữa các mức: Ưu tiên xong hết các tiến trình mức trên rổi mới chuyển xuống mức dưới. Đang chạy tiến trình mức dưới mà xuất hiện tiến trình mới mức cao hơn, tiến trình mức dưới sẽ bị tiếm quyền cho tiến trình mới có độ ưu tiên cao hơn(Hệ Solaris 2 dùng cách này).Phân bổ theo tỉ lệ thời lượng:
ví dụ:80% thời lượng CPU dành cho Foreground, 20% cho Background
*\ Thuật giải điều phối MFQS:
- Như MQS nhưng cho phép điều tiết tiến trình sang mức khác, ví dụ: những tiến trình hướng CPU được đưa xuống mức dưới , trong khi tiến trình hướng I/O hoặc chờ lâu được chuyển lên trên
- MFQS đặc trưng bởi các thong số:
Số mức (số hang chờ),điều phối cho mỗi mức.Phương thức nâng cấp tiến trình, hạ cấp tiến trình,chọn hàng chờ (chọn mức)cho tiến trình mới
-Tới trước – Phục vụ trước (First-Come, First-Served Scheduling)
- Đơn giản, dễ thực hiện
- Các tiến trình trong Ready Queue được cấp CPU từ đầu đến cuối dãy theo qui tắc FIFO(First In,First Out)
- Thời gian chờ là khá lớn
* \Thuật giải điều phối PS:
- Mỗi tiến trình được cấp một số nguyên(Priority Number) dùng để ấn định Độ ưu tiên
- CPU luôn dành tiến trình với độ ưu tiên cao hơn (Priority Number nhỏ hơn=Độ ưu tiên cao hơn) với 2 phương án:
Có tiếm quyền(Preemptive)
Không tiếm quyền (Non- Preemptive)
- SJFS là truờng hợp đặc biệt của PS với độ ưu tiên: P=(Khoảng CPU kế tiếp)
* \Thuật giải điều phối SJFS:
-Ngắn hơn-Chạy trước(Shortest-Job-First Scheduling-SJFS)
- Tiến trình có khoảng CPU kế tiếp nhỏ hơn thì được chạy trước (Shortest-Next-CPU-Burst). Trong trường hợp bằng nhau, dung thuật giải FCFS Là giải thuật khá tối ưu, nhưng phải biết cách ước đoán khoảng CPU kế tiếp
- SJFS không tiếm quyền(Non-Preemptive SJFS) tiến trình hiện thời được thực hiện đến hết khoảng CPU của nó
- SJFS có tiếm quyền(Preemptive SJFS) tiến trình mới có Next CPU Burst nhỏ hơn khoảng thời gian CPU còn lại của tiến trình đang vận hành sẽ được chọn thay thế (Shortest Remaining First)
* \Thuật giải điều phối RRS:
- Như điều phối kiểu FCFS nhưng cho phép tiếm quyền khi tiến trình đang chạy bị hết thời lượng
- Mỗi tiến trình được cấp 1 thời lượng CPU (Time Quantum), thường từ 10-100 mili giây. Sau khoảng thời gian này, nó bị tiếm quyền và được đưa vào cuối hàng chờ Ready . Tiến trình đầu tiên trong hàng chờ Ready được chọn kế tiếp
- Nếu có n tiến trình và thời lượng là q, mỗi tiến trình nhận 1/n thời gian CPU bao gồm các đoạn không quá q đơn vị thời gian
* \Thuật giải điều phối MQS:
- Hàng chờ Ready được phân thành nhiều mức có cấp độ ưu tiên khác nhau
ví dụ: mức các tiến trình tương tác (Interactive)chạy ở mặt trước (Foreground) có độ ưu tiên cao nhất và mức các tiến trình lô(Batch) vận hành trong hậu trường (Background)
- Mỗi hàng chờ có thuật giải điều phối riêng
ví dụ:Foreground dung RRS, Background dung FCFS
- Quan hệ giữa các mức: Ưu tiên xong hết các tiến trình mức trên rổi mới chuyển xuống mức dưới. Đang chạy tiến trình mức dưới mà xuất hiện tiến trình mới mức cao hơn, tiến trình mức dưới sẽ bị tiếm quyền cho tiến trình mới có độ ưu tiên cao hơn(Hệ Solaris 2 dùng cách này).Phân bổ theo tỉ lệ thời lượng:
ví dụ:80% thời lượng CPU dành cho Foreground, 20% cho Background
*\ Thuật giải điều phối MFQS:
- Như MQS nhưng cho phép điều tiết tiến trình sang mức khác, ví dụ: những tiến trình hướng CPU được đưa xuống mức dưới , trong khi tiến trình hướng I/O hoặc chờ lâu được chuyển lên trên
- MFQS đặc trưng bởi các thong số:
Số mức (số hang chờ),điều phối cho mỗi mức.Phương thức nâng cấp tiến trình, hạ cấp tiến trình,chọn hàng chờ (chọn mức)cho tiến trình mới
NguyenHaCamThu(I12A)- Tổng số bài gửi : 22
Join date : 02/03/2012
Quản lý tiến trình trong linux
Phân loại tiến trình: 3 loại
Interactive process (tiến trình đối thoại)
Là tiến trình khởi động và quản lý bởi shell, kể cả các tiến trình foreground hoặc background.
Batch process
Tiến trình không gắn liền với terminal (tty) và được nằm trong hàng đợi để lần lượt thực hiện.
Daemon process (Disk And Execution MONitor)
Là tiến trình chạy ở chế độ ngầm và được khởi động từ đầu. Các daemon thường được hệ thống phát sinh tự động và có thể hoạt động liên tục hay phát sinh định kỳ.
Hầu hết các dịch vụ mạng là các tiến trình daemon, tên tiến trình kết thúc bằng ký tự “d” như: inetd, named, httpd…
Hiển thị thông tin tiến trình – lệnh ps
Để biết thông tin các tiến trình hiện hành ta sử dụng:
ps [option]
1. -e: hiển thị thông tin về mỗi tiến trình.
-l: hiển thị thông tin đầy đủ tiến trình.
-f: hiển thị thông tin về tiến trình cha.
-a: hiển thị tất cả các tiến trình.
Lưu ý: dòng lệnh ps –aux: liệt kê danh sách các tiến trình đang chạy cùng các thông tin của nó như:
Chủ nhân của tiến trình (owner), mã số nhận diện tiến trình (PID), thời gian hiện sử dụng CPU (%CPU), mức chiếm dụng bộ nhớ của tiến trình (%MEM), trạng thái tiến trình (STAT) và các thông tin khác.
Một số trạng thái của tiến trình thường gặp: R-đang thi hành, S-đang bị đóng, Z-ngừng thi hành, W-không đủ bộ nhớ…
Hiển thị thông tin sử dụng tài nguyên – lệnh top
Hiển thị một danh sách các tiến trình hệ thống theo thời gian thực. Nó thống kê số lượng các tiến trình cùng trạng thái của chúng, tình trạng sử dụng CPU, bộ nhớ …
top [option]
1. -d time: chỉ ra khoảng thời gian trễ time giữa 2 lần cập nhật thông tin trạng thái (mặc định là 5 giây)
-p [pid]: chỉ theo dõi các tiến trình có mã pid
-c: hiển thị đầy đủ dòng lệnh thay vì hiển thị tên lệnh tạo tiến trình.
-a: hiển thị tất cả các tiến trình.
Một điểm khác biệt giữa top và ps là nó cho phép ta thi hành các lệnh của bản thân nó trong quá trình nó đang hiển thị thông tin.
Dừng một tiến trình – lệnh kill
Lệnh kill thường được sử dụng để ngừng thi hành một tiến trình.
kill [signal]
1. signal: là một số hay tên của tín hiệu được gởi tới tiến trình.
PID: mã số nhận diện tiến trình muốn dừng.
Lệnh kill có thể gởi bất kỳ tín hiệu signal nào tới một tiến trình, nhưng theo mặc định nó gởi tín hiệu 15, TERM (là tín hiệu kết thúc chương trình).
Lệnh kill -9 PID: ngừng thi hành tiến trình mà không bị các tiến trình khác can thiệp (tín hiệu 9, KILL).
Super-user mới có quyền dừng tất cả các tiến trình, còn người sử dụng chỉ được dừng các tiến trình của mình.
Các signal thường dùng lệnh kill bao gồm:
Tên Giá trị Tác động
SIGHUP 1 - Hangup (gọi lại tiến trình)
SIGINT 2 - Ngắt từ bàn phím (Ctrl+C)
SIGKILL 9 - Hủy tiến trình
SIGTERM 15 - Kết thúc tiến trình
SIGSTOP 17,19,23: - Dừng tiến trình.
Khi kết thúc một tiến trình hay một chuỗi các tiến trình, thông thường nên tiến hành thử với tín hiệu ít gây nguy hiểm nhất, SIGTERM, nếu không được mới sử dụng các tín hiệu INT hay KILL.
Hiển thị các tiến trình ngầm, thay đổi chế độ cho các tiến trình
Lệnh jobs: Hiển thị các tiến trình ngầm (background)
Ký hiệu + chỉ ra tác vụ đang được xử lý
Ký hiệu – chỉ ra tác vụ sẽ được xử lý kế tiếp
fg: chuyển các tiến trình background -> foreground
$ fg %3 (mã số tác vụ của tiến trình ngầm)
bg: chuyển các tiến trình foreground -> background.
Lưu ý: phải tạm dừng bằng cách nhấn tổ hợp phím (ctrl+z), và sau đó mới chuyển nó sang chế độ ngầm bằng lệnh bg
$ cat vd.txt > abcdef
ctrl + z
$ bg
(lệnh cat sẽ nạp chuỗi abcdef vào file vd.txt, có nhiều cách kết thúc quá trình nạp chuỗi này, nhưng muốn dùng lệnh bg thì phải kết thúc bằng tổ hợp phím ctrl+z)
Một số lệnh xem về hệ thống : free, ps, w, vmstat, iostat, ifstat, netstat v.v
Interactive process (tiến trình đối thoại)
Là tiến trình khởi động và quản lý bởi shell, kể cả các tiến trình foreground hoặc background.
Batch process
Tiến trình không gắn liền với terminal (tty) và được nằm trong hàng đợi để lần lượt thực hiện.
Daemon process (Disk And Execution MONitor)
Là tiến trình chạy ở chế độ ngầm và được khởi động từ đầu. Các daemon thường được hệ thống phát sinh tự động và có thể hoạt động liên tục hay phát sinh định kỳ.
Hầu hết các dịch vụ mạng là các tiến trình daemon, tên tiến trình kết thúc bằng ký tự “d” như: inetd, named, httpd…
Hiển thị thông tin tiến trình – lệnh ps
Để biết thông tin các tiến trình hiện hành ta sử dụng:
ps [option]
1. -e: hiển thị thông tin về mỗi tiến trình.
-l: hiển thị thông tin đầy đủ tiến trình.
-f: hiển thị thông tin về tiến trình cha.
-a: hiển thị tất cả các tiến trình.
Lưu ý: dòng lệnh ps –aux: liệt kê danh sách các tiến trình đang chạy cùng các thông tin của nó như:
Chủ nhân của tiến trình (owner), mã số nhận diện tiến trình (PID), thời gian hiện sử dụng CPU (%CPU), mức chiếm dụng bộ nhớ của tiến trình (%MEM), trạng thái tiến trình (STAT) và các thông tin khác.
Một số trạng thái của tiến trình thường gặp: R-đang thi hành, S-đang bị đóng, Z-ngừng thi hành, W-không đủ bộ nhớ…
Hiển thị thông tin sử dụng tài nguyên – lệnh top
Hiển thị một danh sách các tiến trình hệ thống theo thời gian thực. Nó thống kê số lượng các tiến trình cùng trạng thái của chúng, tình trạng sử dụng CPU, bộ nhớ …
top [option]
1. -d time: chỉ ra khoảng thời gian trễ time giữa 2 lần cập nhật thông tin trạng thái (mặc định là 5 giây)
-p [pid]: chỉ theo dõi các tiến trình có mã pid
-c: hiển thị đầy đủ dòng lệnh thay vì hiển thị tên lệnh tạo tiến trình.
-a: hiển thị tất cả các tiến trình.
Một điểm khác biệt giữa top và ps là nó cho phép ta thi hành các lệnh của bản thân nó trong quá trình nó đang hiển thị thông tin.
Dừng một tiến trình – lệnh kill
Lệnh kill thường được sử dụng để ngừng thi hành một tiến trình.
kill [signal]
1. signal: là một số hay tên của tín hiệu được gởi tới tiến trình.
PID: mã số nhận diện tiến trình muốn dừng.
Lệnh kill có thể gởi bất kỳ tín hiệu signal nào tới một tiến trình, nhưng theo mặc định nó gởi tín hiệu 15, TERM (là tín hiệu kết thúc chương trình).
Lệnh kill -9 PID: ngừng thi hành tiến trình mà không bị các tiến trình khác can thiệp (tín hiệu 9, KILL).
Super-user mới có quyền dừng tất cả các tiến trình, còn người sử dụng chỉ được dừng các tiến trình của mình.
Các signal thường dùng lệnh kill bao gồm:
Tên Giá trị Tác động
SIGHUP 1 - Hangup (gọi lại tiến trình)
SIGINT 2 - Ngắt từ bàn phím (Ctrl+C)
SIGKILL 9 - Hủy tiến trình
SIGTERM 15 - Kết thúc tiến trình
SIGSTOP 17,19,23: - Dừng tiến trình.
Khi kết thúc một tiến trình hay một chuỗi các tiến trình, thông thường nên tiến hành thử với tín hiệu ít gây nguy hiểm nhất, SIGTERM, nếu không được mới sử dụng các tín hiệu INT hay KILL.
Hiển thị các tiến trình ngầm, thay đổi chế độ cho các tiến trình
Lệnh jobs: Hiển thị các tiến trình ngầm (background)
Ký hiệu + chỉ ra tác vụ đang được xử lý
Ký hiệu – chỉ ra tác vụ sẽ được xử lý kế tiếp
fg: chuyển các tiến trình background -> foreground
$ fg %3 (mã số tác vụ của tiến trình ngầm)
bg: chuyển các tiến trình foreground -> background.
Lưu ý: phải tạm dừng bằng cách nhấn tổ hợp phím (ctrl+z), và sau đó mới chuyển nó sang chế độ ngầm bằng lệnh bg
$ cat vd.txt > abcdef
ctrl + z
$ bg
(lệnh cat sẽ nạp chuỗi abcdef vào file vd.txt, có nhiều cách kết thúc quá trình nạp chuỗi này, nhưng muốn dùng lệnh bg thì phải kết thúc bằng tổ hợp phím ctrl+z)
Một số lệnh xem về hệ thống : free, ps, w, vmstat, iostat, ifstat, netstat v.v
TranHoangNhanI12C- Tổng số bài gửi : 45
Join date : 16/02/2012
Re: Thảo luận Bài 4
Minh sưu tầm được 1 bài tập khá hay về Quản lý tiến trình. Mọi người cùng tham khảo nha:
1./ Xét tập hợp các tiến trình sau:
Hãy cho biết kết quả điều phối theo các chiến lược
• FIFO
• SJF
• Round Robin với q = 2
• Độ ưu tiên độc quyền
• Độ ưu tiên không độc quyền
• tính thời gian chờ cho từng tiến trình và thời gian chờ trung bình trong các chiến lược trên.
Giải
a./ FIFO
Thời gian chờ:
P1: 0
P2: 10 – 1 = 9
P3: 11 – 2.5 = 8.5
P4: 13 – 3 = 10
P5: 14 – 4.5 = 9.5
Thời gian chờ trung bình = 37/5 = 7.45
b./ SJF
Thời gian chờ:
P1: 0
P2: 10 – 1 = 9
P3: 12 – 2.5 = 9.5
P4: 11 – 3 = 8
P5: 14 – 4.5 = 9.5
Thời gian chờ trung bình = 36/5 =7.2
c./ Round Robin
Thời gian chờ:
P1: 1 + 5 + 2 + 1 = 9
P2: 2 – 1 = 1
P3: 5 – 2.5 = 2.5
P4: 7 – 3 = 4
P5: 8 + 2 + 2 – 4.5 = 7.5
Thời gian chờ trung bình = 25/5 = 5
d./ Độ ưu tiên độc quyền
Thời gian chờ:
P1: 0
P2: 10 – 9 = 1
P3: 16 – 2.5 = 13.5
P4: 18 – 3 = 5
P5: 11 – 4.5 = 6.5
Thời gian chờ trung bình = 44/5 = 8.8
e./ Độ ưu tiên không độc quyền
Thời gian chờ:
P1: 1 + 7 = 8
P2: 0
P3: 9.5 – 2.5 = 7
P4: 18 – 3 = 15
P5: 0
Thời gian chờ trung bình = 25/5 = 5
Chú ý:
- FIFO vào trước thực hiện trước.
- SJF tiến trình nào có chiều dài CPU burst ngắn thì thực hiện trước.
- RR mỗi tiến trình chỉ được thực hiện trong một thời gian q nhất định, các tiến trình lần lượt thực hiện xoay vòng.
- Điều phối theo độ ưu tiên độc quyền: có độ ưu tiên nhỏ thực hiện trước.
- Điều phối ưu tiên không độc quyền: giống như trên nhưng nếu đang thực hiện mà xuất hiện tiến trình có độ ưu tiên nhỏ hơn thì phải dừng để nhường cho tiến trình kia thực hiện.
1./ Xét tập hợp các tiến trình sau:
Hãy cho biết kết quả điều phối theo các chiến lược
• FIFO
• SJF
• Round Robin với q = 2
• Độ ưu tiên độc quyền
• Độ ưu tiên không độc quyền
• tính thời gian chờ cho từng tiến trình và thời gian chờ trung bình trong các chiến lược trên.
Giải
a./ FIFO
Thời gian chờ:
P1: 0
P2: 10 – 1 = 9
P3: 11 – 2.5 = 8.5
P4: 13 – 3 = 10
P5: 14 – 4.5 = 9.5
Thời gian chờ trung bình = 37/5 = 7.45
b./ SJF
Thời gian chờ:
P1: 0
P2: 10 – 1 = 9
P3: 12 – 2.5 = 9.5
P4: 11 – 3 = 8
P5: 14 – 4.5 = 9.5
Thời gian chờ trung bình = 36/5 =7.2
c./ Round Robin
Thời gian chờ:
P1: 1 + 5 + 2 + 1 = 9
P2: 2 – 1 = 1
P3: 5 – 2.5 = 2.5
P4: 7 – 3 = 4
P5: 8 + 2 + 2 – 4.5 = 7.5
Thời gian chờ trung bình = 25/5 = 5
d./ Độ ưu tiên độc quyền
Thời gian chờ:
P1: 0
P2: 10 – 9 = 1
P3: 16 – 2.5 = 13.5
P4: 18 – 3 = 5
P5: 11 – 4.5 = 6.5
Thời gian chờ trung bình = 44/5 = 8.8
e./ Độ ưu tiên không độc quyền
Thời gian chờ:
P1: 1 + 7 = 8
P2: 0
P3: 9.5 – 2.5 = 7
P4: 18 – 3 = 15
P5: 0
Thời gian chờ trung bình = 25/5 = 5
Chú ý:
- FIFO vào trước thực hiện trước.
- SJF tiến trình nào có chiều dài CPU burst ngắn thì thực hiện trước.
- RR mỗi tiến trình chỉ được thực hiện trong một thời gian q nhất định, các tiến trình lần lượt thực hiện xoay vòng.
- Điều phối theo độ ưu tiên độc quyền: có độ ưu tiên nhỏ thực hiện trước.
- Điều phối ưu tiên không độc quyền: giống như trên nhưng nếu đang thực hiện mà xuất hiện tiến trình có độ ưu tiên nhỏ hơn thì phải dừng để nhường cho tiến trình kia thực hiện.
TranHoangNhanI12C- Tổng số bài gửi : 45
Join date : 16/02/2012
Những điều cần biết về Khối kiểm soát tiến trình (Process Control Block - PCB)
  HĐH quản lý các tiến trình thông qua khối kiểm soát tiến trình(Process Control Block - PCB). Thành phần chủ yếu của PCB bao gồm:
  - Định dạng của tiến trình: phân biệt các 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, hoặc để phục vụ cho hoạt động hiện tại hoặc để làm cơ sở phục hồi hoạt động cho tiến trình, bao gồm các thông tin:
     * 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 hiện tại với các tiến trình khác trong hệ thống:
     * Tiến trình cha: tiến trình tạo lập tiến trình hiện tại.
     * Tiến trình con: các tiến trình do tiến trình hiện tại tạo lập.
     * Độ ưu tiên: giúp bộ phận điều phối có thông tin để lựa chọn tiến trình được cấp CPU.
  - 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ờ, ... Các thông tin này sẽ đánh giá tình hình hệ thống và dự đoán các tình huống tương lai.
  - Định dạng của tiến trình: phân biệt các 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, hoặc để phục vụ cho hoạt động hiện tại hoặc để làm cơ sở phục hồi hoạt động cho tiến trình, bao gồm các thông tin:
     * 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 hiện tại với các tiến trình khác trong hệ thống:
     * Tiến trình cha: tiến trình tạo lập tiến trình hiện tại.
     * Tiến trình con: các tiến trình do tiến trình hiện tại tạo lập.
     * Độ ưu tiên: giúp bộ phận điều phối có thông tin để lựa chọn tiến trình được cấp CPU.
  - 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ờ, ... Các thông tin này sẽ đánh giá tình hình hệ thống và dự đoán các tình huống tương lai.
VuNguyenQuynhLam_I12C- Tổng số bài gửi : 14
Join date : 15/02/2012
Age : 36
Đến từ : Bình Thuận
Trang 7 trong tổng số 15 trang • 1 ... 6, 7, 8 ... 11 ... 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 7 trong tổng số 15 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết