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 1 trong tổng số 15 trang
Trang 1 trong tổng số 15 trang • 1, 2, 3 ... 8 ... 15
Địng nghĩa tiến trình và các trạng thái của nó
Tiến trình là chương trình trong thời gian thực hiện - đặt dưới sự quản lý của HĐH .
Phân biệt tiến trình :
- Tiến trình hệ thống : khi khởi động máy các chương trình mặc định của hệ điều hành sẽ tự động chạy lên vd như windows Explore , desktop window manager ...
- Tiến trình người dùng : khi user cần sử dụng chương trình phục vụ cho cong việc thì sẽ kích hoạt chương trình cần dùng lên . vd : yahoo, word , ...
Các trạng thái tiến trình :
- Mới (New )- Tiến trình vửa được tạo lập
- Đang chạy (Running )- Các lệnh thực thi .
- Đang chờ ( waitting ) - Các lệnh đang chờ thực thi.
- Sẵn sàng (ready ) - Tiến trình chờ để ấn dịnh sẵn trong CPU .
- Kết thức ( Termnated )- Tiến trình vửa thực hiện xong .
Vd đời thường ( mình tự nghĩa ra nếu không chính xác ,thầy và các bạn đừng chê )
- Trong nhà hàng :
Bàn ghế, Khăn, Chén, Đũa,... là Tài nguyên hệ thống, và không thể là Tiến trình được !
Mình sửa lại ví dụ của mình - (thầy đã giảng lại trên lớp )
Trong nhà hàng :
Mình soạn bài trước ở nhà không đúng thì các bạn cứ góp ý , thanks .
Phân biệt tiến trình :
- Tiến trình hệ thống : khi khởi động máy các chương trình mặc định của hệ điều hành sẽ tự động chạy lên vd như windows Explore , desktop window manager ...
- Tiến trình người dùng : khi user cần sử dụng chương trình phục vụ cho cong việc thì sẽ kích hoạt chương trình cần dùng lên . vd : yahoo, word , ...
Các trạng thái tiến trình :
- Mới (New )- Tiến trình vửa được tạo lập
- Đang chạy (Running )- Các lệnh thực thi .
- Đang chờ ( waitting ) - Các lệnh đang chờ thực thi.
- Sẵn sàng (ready ) - Tiến trình chờ để ấn dịnh sẵn trong CPU .
- Kết thức ( Termnated )- Tiến trình vửa thực hiện xong .
Vd đời thường ( mình tự nghĩa ra nếu không chính xác ,thầy và các bạn đừng chê )
- Trong nhà hàng :
- các dụng cụ bàn ,ghế, khăn, chén , đũa .. là vd như tiến trình của hệ thống vì kkhi mở cửa đã chuẩn bị sẵn tất cá các thứ đó .
- Khi khách yêu cầu các món ăn cũng như nước uống thì là vd của tiến trình người dùng vì khi đó mới thực hiện những công việc khách hàng yêu cầu .
Bàn ghế, Khăn, Chén, Đũa,... là Tài nguyên hệ thống, và không thể là Tiến trình được !
Mình sửa lại ví dụ của mình - (thầy đã giảng lại trên lớp )
Trong nhà hàng :
- các nhân viên đang làm việc là vd như tiến trình của hệ thống vì khi mở cửa đã chuẩn bị sẵn tất cá các thứ đó .
- Khi khách yêu cầu các món ăn cũng như nước uống thì là vd của tiến trình người dùng vì khi đó mới thực hiện những công việc khách hàng yêu cầu .
Mình soạn bài trước ở nhà không đúng thì các bạn cứ góp ý , thanks .
Được sửa bởi minhtam_I12C ngày 7/3/2012, 23:32; sửa lần 1.
minhtam_I12C- Tổng số bài gửi : 14
Join date : 15/02/2012
Quản Lý Tiến Trình
Tiến trình ?
* TIẾN TRÌNH LÀ MỘT BỘ PHẬN CỦA MỘT CHƯƠNG TRÌNH ĐANG THỰC HIỆN, ĐÝỢC SỞ HỮU 1 CON TRỎ LỆNH, TẬP CÁC THANH GHI VÀ CÁC BIẾN
• ĐỂ HOÀN THÀNH TÁC VỤ CỦA MÌNH, MỘT TIẾN TRÌNH CÓ THỂ CẦN ĐẾN MỘT SỐ TÀI NGUYÊN NHƯ CPU, BỘ NHỚ CHÍNH, CÁC TẬP TIN VÀ THIẾT BỊ NHẬP/XUẤT.
- TIẾN TRÌNH BAO GỒM 3 THÀNH PHẦN: CODE, DATA, STACK
§ Code: Thành phần câu lệnh thực hiện
§ Data: Thành phần dữ liệu
§ Stack: Thành phần lýu thông tin tạm thời
- CÁC CÂU LỆNH TRONG CODE CHỈ DÙNG DATA VÀ STACK RIÊNG CỦA MÌNH NGOẠI TRỪ CÁC VÙNG DÙNG CHUNG
V TIẾN TRÌNH ĐƯỢC HỆ THỐNG PHÂN BIỆT BẰNG SỐ HIỆU PID (PROCCESS INDENTIFICATION)
Các loại tiến trình
-> 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 ĐÓ.
Mô Hình Tiến Trình
*TẠO HIỆN TƯỢNG SONG SONG GIẢ.
*CHIA CHÝÕNG TRÌNH THÀNH NHIỀU TIẾN TRÌNH.
HĐH CHIA CHƯƠNG TRÌNH THÀNH NHIỀU TIẾN TRÌNH, KHỞI TẠO VÀ ĐÝA VÀO HỆ THỐNG NHIỀU TIẾN TRÌNH CỦA MỘT CHÝÕNG TRÌNH HOẶC CỦA NHIỀU CHƯƯNG TRÌNH KHÁC NHAU, CẤP PHÁT ĐẦY ĐỦ TÀI NGUYÊN (TRỪ PROCESSOR) CHO TIẾN TRÌNH VÀ ĐÝA CÁC TIẾN TRÌNH SANG TRẠNG TRÁI SẴN SÀNG. HĐH BẮT ĐẦU CẤP PROCESSOR CHO MỘT TIẾN TRÌNH TRONG SỐ CÁC TIẾN TRÌNH Ở TRẠNG THÁI SẴN SÀNG ĐỂ TIẾN TRÌNH NÀY HOẠT ĐỘNG, SAU MỘT KHOẢNG THỜI GIAN NÀO ĐÓ HĐH THU HỒI PROCESSOR CỦA TIẾN TRÌNH NÀY ĐỂ CẤP CHO MỘT TIẾN TRÌNH SẴN SÀNG KHÁC, SAU ĐÓ HĐH LẠI THU HỒI PROCESSOR TỪ TIẾN TRÌNH MÀ NÓ VỪA CẤP ĐỂ CẤP CHO TIẾN TRÌNH KHÁC, CÓ THỂ LÀ TIẾN TRÌNH MÀ TRÝỚC ĐÂY BỊ HĐH THU HỒI PROCESSOR KHI NÓ CHÝA KẾT THÚC, VÀ CỨ NHÝ THẾ CHO ĐẾN KHI TẤT CẢ CÁC TIẾN TRÌNH MÀ HĐH KHỞI TẠO ĐỀU H/ĐỘNG VÀ K/THÚC ĐÝỢC.
TRONG MÔ HÌNH TIẾN TRÌNH NÀY, KHOẢNG THỜI GIAN CHUYỂN PROCESSOR TỪ TIẾN TRÌNH NÀY SANG TIẾN TRÌNH KHÁC HAY KHOẢNG THỜI GIAN GIỮA HAI LẦN ĐÝỢC CẤP PHÁT PROCESSOR CỦA 1 TIẾN TRÌNH LÀ RẤT NHỎ NÊN HỆ THỐNG CÓ CẢM GIÁC CÁC TIẾN TRÌNH HOẠT ĐỘNG SONG SONG NHAU ( SONG SONG GIẢ )
Mô Hình Tiến Trình
ÝU ĐIỂM:
- TIẾT KIỆM BỘ NHỚ.
- KHAI THÁC TỐI ÝU TÀI NGUYÊN MÁY.
- TIẾT KIỆM ĐÝỢC BỘ NHỚ VÌ KHÔNG PHẢI NẠP TẤT CẢ CHƯƠNG TRÌNH VÀO BỘ NHỚ MÀ CHỈ NẬP CÁC TIẾN TRÌNH CẦN THIẾT NHẤT, SAU ĐÓ TÙY THEO YÊU CẦU MÀ CÓ THỂ NẠP TIẾP CÁC TIẾN TRÌNH KHÁC.
- CHO PHÉP CÁC CHƯƠNG TRÌNH HOẠT ĐỘNG SONG SONG NÊN TỐC ĐỘ XỬ LÝ CỦA TOÀN HỆ THỐNG TĂNG LÊN VÀ KHAI THÁC TỐI ĐA THỜI GIAN XỬ LÝ CỦA PROCESSOR.
Tiểu trình và tiến trình ?
* THÔNG THÝỜNG MỖI TIẾN TRÌNH CÓ 1 KHÔNG GIAN ĐỊA CHỈ VÀ 1 DÒNG XỬ LÝ
- MONG MUỐN CÓ NHIỀU DÒNG XỬ LÝ CÙNG CHIA SẺ 1 KHÔNG GIAN ĐỊA CHỈ VÀ CÁC DÒNG XỬ LÝ HOẠT ĐỘNG SONG SONG NHÝ CÁC TIẾN TRÌNH ĐỘC LẬP
- XUẤT HIỆN HĐH CÓ CÕ CHẾ THỰC THI MỚI GỌI LÀ TIỂU TRÌNH
* TIỂU TRÌNH LÀ MỘT ĐÕN VỊ XỬ LÝ CÕ BẢN TRONG HỆ THỐNG, TÝÕNG TỰ GIỐNG TIẾN TRÌNH. TỨC LÀ NÓ CŨNG PHẢI XỬ LÝ TUẦN TỰ CÁC CHỈ THỊ MÁY CỦA NÓ, NÓ CŨNG SỞ HỮU CON TRỌ LỆNH, MỘT TẬP CÁC THANH GHI VÀ MỘT KHÔNG GIAN STACK RIÊNG.
Tiểu trình và tiến trình ?
MỘT TIẾN TRÌNH ĐÕN CÓ THỂ BAO GỒM NHIỀU TIỂU TRÌNH. CÁC TIỂU TRÌNH TRONG MỘT TIẾN TRÌNH CHIA SẺ MỘT KHÔNG GIAN ĐỊA CHỈ CHUNG NÊN CÓ THỂ CHIA SẺ CÁC BIẾN TOÀN CỤC CỦA TIẾN TRÌNH VÀ TRUY XUẤT LÊN CÁC VÙNG NHỚ STACK CỦA NHAU.
Các Trạng Thái Của Tiến Trình
- TIẾN TRÌNH HAI TRẠNG THÁI
Các Trạng Thái Của Tiến Trình
- TIẾN TRÌNH BA TRẠNG THÁI
Các Trạng Thái Của Tiến Trình
- TIẾN TRÌNH BỐN TRẠNG THÁI
Các Trạng Thái Của Tiến Trình
- TIẾN TRÌNH NĂM TRẠNG THÁI
Cấu Trúc Dữ Liệu Của Khối Quản Lý Tiến Trình
HỆ ĐIỀU HÀNH QUẢN LÝ CÁC TIẾN TRÌNH TRONG HỆ THỐNG THÔNG QUA KHỐI QUẢN LÝ TIẾN TRÌNH (PROCESS CONTROL BLOCK -PCB). 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 (1) : GIÚP PHÂN BIỆT CÁC TIẾN TRÌNH
- TRẠNG THÁI TIẾN TRÌNH (2): 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 (3): 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 VỀ:
- TRẠNG THÁI CPU: BAO GỒM NỘI DUNG CÁC THANH GHI, QUAN TRỌNG NHẤT LÀ CON TRỎ LỆNH IP LÝU TRỮ ĐỊA CHỈ C�U LỆNH KẾ TIẾP TIẾN TRÌNH SẼ XỬ LÝ. CÁC THÔNG TIN NÀY CẦN ĐÝỢC LÝU TRỮ KHI XẢY RA MỘT NGẮT, NHẰM CÓ THỂ CHO PHÉP PHỤC HỒI HOẠT ĐỘNG CỦA TIẾN TRÌNH Đ�NG NHÝ TRÝỚC KHI BỊ NGẮT.
- BỘ XỬ LÝ: DÙNG CHO MÁY CÓ CẤU HÌNH NHIỀU CPU, XÁC ĐỊNH SỐ HIỆU CPU MÀ TIẾN TRÌNH ĐANG SỬ DỤNG.
- BỘ NHỚ CHÍNH: DANH SÁCH CÁC KHỐI NHỚ ĐÝỢC CẤP CHO TIẾN TRÌNH.
- TÀI NGUYÊN SỬ DỤNG: DANH SÁCH CÁC TÀI MGUYÊN HỆ THỐNG MÀ TIẾN TRÌNH ĐANG SỬ DỤNG.
- TÀI NGUYÊN TẠO LẬP: DANH SÁCH CÁC TÀI NGUYÊN ĐÝỢC TIẾN TRÌNH TẠO LẬP.
- THÔNG TIN GIAO TIẾP (4): 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 :
- TIẾN TRÌNH CHA: TIẾN TRÌNH TẠO LẬP TIẾN TRÌNH NÀY .
- TIẾN TRÌNH CON: CÁC TIẾN TRÌNH DO TIẾN TRÌNH NÀY TẠO LẬP .
- ĐỘ ÝU TIÊN : GIÚP BỘ Đ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Ê (5): Đ�Y 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 CÓ THỂ CÓ ÍCH CHO CÔNG VIỆC Đ�NH GI� TÌNH HÌNH HỆ THỐNG VÀ DỰ ĐO�N C�C TÌNH HUỐNG TƯƠNG LAI.
Các Thao Tác Điều Khiển Tiến Trình
A. KHỞI TẠO TIẾN TRÌNH
- HĐH GÁN PID VÀ ĐÝA VÀO DANH SÁCH QUẢN LÝ CỦA HỆ THỐNG
- CẤP PHÁT KHÔNG GIAN BỘ NHỚ
- KHỞI TẠO CÁC THÔNG TIN CẦN THIẾT CHO KHỐI ĐIỀU KHIỂN TIẾN TRÌNH: CÁC PID CỦA TT CHA (NẾU CÓ), THÔNG TIN TRẠNG THÁI, ĐỘ ÝU TIÊN, NGỮ CẢNH CỦA PROCESSOR
- CUNG CẤP ĐẦY ĐỦ CÁC TÀI NGUYÊN (TRỪ PROCESSOR)
- ĐƯA TIẾN TRÌNH VÀO DANH SÁCH TT NÀO ĐÓ: READY LIST, SUSPEND LIST, WAITING LIST
Các Thao Tác Điều Khiển Tiến Trình
B. KẾT THÚC TIẾN TRÌNH HĐH THỰC HIỆN CÁC THAO TÁC:
- THU HỒI TÀI NGUYÊN ĐÃ CẤP PHÁT CHO TIẾN TRÌNH
- LOẠI BỎ TIẾN TRÌNH RA KHỎI DANH SÁCH QUẢN LÝ CỦA HỆ THỐNG
- HỦY BỎ KHỐI ĐIỀU KHIỂN TIẾN TRÌNH
Các Thao Tác Điều Khiển Tiến Trình
C. THAY ĐỔI TRẠNG THÁI CỦA TIẾN TRÌNH HĐH THỰC HIỆN:
- LƯU NGỮ CẢNH CỦA PROCESSOR
- CẬP NHẬT PCB (PROCESS CONTROL BLOCK) CỦA TIẾN TRÌNH SAO CHO PHÙ HỢP VỚI TRẠNG THÁI CỦA TIẾN TRÌNH
- DI CHUYỂN PCB CỦA TIẾN TRÌNH ĐẾN 1 HÀNG ĐỢI THÍCH HỢP
- CHỌN TIẾN TRÌNH KHÁC ĐỂ CHO PHÉP NÓ THỰC HIỆN
- CẬP NHẬT PCB CỦA TIẾN TRÌNH VỪA THỰC HIỆN
- CẬP NHẬT THÔNG TIN LIÊN QUAN ĐẾN QUẢN LÝ BỘ NHỚ
- KHÔI PHỤC LẠI NGỮ CẢNH CỦA PROCESSOR
Tài nguyên găng (Critical Resource)
- TÀI NGUYÊN GĂNG?
§ Những tài nguyên đýợc HĐH chia sẻ cho nhiều tiến trình hoạt động đồng thời dùng chung mà có nguy cõ tranh chấp giữa các tiến trình này khi sử dụng chúng
- TÀI NGUYÊN GĂNG CÓ THỂ LÀ TÀI NGUYÊN PHẦN CỨNG HOẶC PHẦN MỀM, CÓ THỂ LÀ TÀI NGUYÊN PHÂN CHIA ĐÝỢC HOẶC KHÔNG PHÂN CHIA ĐÝỢC
Đoạn găng(Critical Section)
- CÁC ĐOẠN CODE TRONG CÁC CHÝÕNG TRÌNH DÙNG ĐỂ TRUY CẬP ĐẾN TÀI NGUYÊN GĂNG ĐÝỢC GỌI LÀ ĐOẠN GĂNG.
- ĐỂ HẠN CHẾ LỖI CÓ THỂ XẢY RA DO SỬ DỤNG TÀI NGUYÊN GĂNG, TẠI 1 THỜI ĐIỂM HĐH CHỈ CHO 1 TIẾN TRÌNH NẰM TRONG ĐOẠN GĂNG
- HĐH CÓ CÕ CHẾ ĐIỀU ĐỘ TIẾN TRÌNH QUA ĐOẠN GĂNG
Yêu cầu của công tác điều độ tiến trình qua đoạn găng
- TẠI 1 THỜI ĐIỂM CHỈ CHO PHÉP 1 TIẾN TRÌNH NẰM TRONG ĐOẠN GĂNG, CÁC TIẾN TRÌNH KHÁC CÓ NHU CẦU VÀO ĐOẠN GĂNG PHẢI CHỜ
- TIẾN TRÌNH CHỜ NGOÀI ĐOẠN GĂNG KHÔNG ĐÝỢC NGĂN CẢN CÁC TIẾN TRÌNH KHÁC VÀO ĐOẠN GĂNG
- KHÔNG CÓ TIẾN TRÌNH NÀO PHẢI CHỜ LÂU ĐỂ ĐÝỢC VÀO ĐOẠN GĂNG
- ĐÁNH THỨC CÁC TIẾN TRÌNH TRONG HÀNG ĐỢI ĐỂ TẠO ĐIỀU KIỆN CHO NÓ VÀO ĐOẠN GĂNG KHI TÀI NGUYÊN GĂNG ĐÝỢC GIẢI PHÓNG
a. Các giải pháp phần cứng
DÙNG CẶP CHỈ THỊ STI(SETTING INTERRUPT)
VÀ CLI (CLEAN INTERRUPT)
VÍ DỤ:
PROCEDURE P(I: INTEGER)
BEGIN
REPEAT
CLI;
<ĐOẠN GĂNG CỦA P>;
STI;
<ĐOẠN KHÔNG GĂNG>;
UNTIL .F.
END;
VD:Tiến trình quản lý hồ sơ trong văn phòng
Chúng ta đã bao giờ mất hàng giờ đồng hồ để tìm kiếm lại hồ sơ của mình? Khi sếp muốn nhận được hồ sơ XYZ ngay, chúng ta có thể tự tin là bất kỳ hồ sơ nào ông ấy muốn, chúng ta có thể cung cấp trong vòng 5 phút? hoặc giả sử như một nhân viên có người nhà bị tai nạn xe, anh ta không đi làm được, cả phòng chúng ta nháo nhào tìm hồ sơ của nhân viên ấy theo yêu cầu của khách hàng? Trường hợp xấu như, một nhân viên nghỉ việc, anh ta chẳng làm đơn gì cả, bây giờ chúng ta không biết hồ sơ của anh ta thế nào… Nếu bị rơi vào các trường hợp như trên, có lẽ chúng ta đã chưa tổ chức được một hệ thống quản lý hồ sơ hiệu quả.
=>Quản lý hồ sơ giấy
Nên lập một danh mục tất cả các loại hồ sơ giấy và máy tính của mỗi nhân viên.
Danh mục hồ sơ của mỗi nhân viên và danh mục hồ sơ của chúng ta chính là hồ sơ toàn bộ phận của chúng ta đấy.
Khi nhân viên lập xong danh mục hồ sơ của họ, hãy kiểm tra lại danh mục hồ sơ của họ, và ký tên duyệt danh mục này.
Hãy tổ chức cứ mỗi tháng 1-2 lần, chúng ta yêu cầu nhân viên cập nhật hồ sơ vào danh mục.
=>Quản lý hồ sơ máy, CD…
Cách quản lý hồ sơ thông thường là lập theo các cấp folder khác nhau.
Nên có mục input để quản lý các thông tin đầu vào. Đây là phần chức đựng các thông tin nhưng chưa xử lý.
Có một thư mục thùng rác riêng (không phải là mục Recycle của máy tính) để lưu các thông tin cần xoá, chỉ xoá các thông tin này sau 3 tháng.
Hãy ra một quy định hướng dẫn cho tất cả nhân viên làm giống nhau: Input; Output; Quy định backup dữ liệu; Quy định sao lưu dữ liệu định kỳ; Quy định quét virus định kỳ; Quy định thời gian kiểm tra và quét dữ liệu, sao lưu lại dữ liệu định kỳ.
Một số lỗi thường gặp trong quản lý hồ sơ trên máy tính:
Không đặt chế độ autosave trong 1 phút (MS.Office).
Lưu hồ sơ trong ổ C (nên lưu ở ổ D, vì ổ C có thể bị mất do vô tình fomat (cài lại máy).
Lưu hồ sơ lung tung, không biết tìm hồ sơ ở đâu.
Phần mềm phục hồi hồ sơ:
Dùng phần mềm chuyên phục hồi dữ liệu trên ổ cứng.
Dùng phần mềm chuyên phục hồi dữ liệu bị hư trên đĩa CD.
Dùng phần mềm chuyên tìm lại mật khẩu bị mất.
Quyền truy cập thông tin, hồ sơ trên máy tính
Ai được quyền xem thông tin?
Ai được quyền chỉnh sửa, cập nhật thông tin?
Hãy tạo thêm một cột trong bảng thông tin với nội dung: nhưng người được quyền truy cập và/hoặc chỉnh sửa.
PhamQuangHien_I12A
Tổng số bài gửi: 8
Join date: 22/02/2012
Age: 22
Đến từ: Quãng Ngãi
* TIẾN TRÌNH LÀ MỘT BỘ PHẬN CỦA MỘT CHƯƠNG TRÌNH ĐANG THỰC HIỆN, ĐÝỢC SỞ HỮU 1 CON TRỎ LỆNH, TẬP CÁC THANH GHI VÀ CÁC BIẾN
• ĐỂ HOÀN THÀNH TÁC VỤ CỦA MÌNH, MỘT TIẾN TRÌNH CÓ THỂ CẦN ĐẾN MỘT SỐ TÀI NGUYÊN NHƯ CPU, BỘ NHỚ CHÍNH, CÁC TẬP TIN VÀ THIẾT BỊ NHẬP/XUẤT.
- TIẾN TRÌNH BAO GỒM 3 THÀNH PHẦN: CODE, DATA, STACK
§ Code: Thành phần câu lệnh thực hiện
§ Data: Thành phần dữ liệu
§ Stack: Thành phần lýu thông tin tạm thời
- CÁC CÂU LỆNH TRONG CODE CHỈ DÙNG DATA VÀ STACK RIÊNG CỦA MÌNH NGOẠI TRỪ CÁC VÙNG DÙNG CHUNG
V TIẾN TRÌNH ĐƯỢC HỆ THỐNG PHÂN BIỆT BẰNG SỐ HIỆU PID (PROCCESS INDENTIFICATION)
Các loại tiến trình
-> 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 ĐÓ.
Mô Hình Tiến Trình
*TẠO HIỆN TƯỢNG SONG SONG GIẢ.
*CHIA CHÝÕNG TRÌNH THÀNH NHIỀU TIẾN TRÌNH.
HĐH CHIA CHƯƠNG TRÌNH THÀNH NHIỀU TIẾN TRÌNH, KHỞI TẠO VÀ ĐÝA VÀO HỆ THỐNG NHIỀU TIẾN TRÌNH CỦA MỘT CHÝÕNG TRÌNH HOẶC CỦA NHIỀU CHƯƯNG TRÌNH KHÁC NHAU, CẤP PHÁT ĐẦY ĐỦ TÀI NGUYÊN (TRỪ PROCESSOR) CHO TIẾN TRÌNH VÀ ĐÝA CÁC TIẾN TRÌNH SANG TRẠNG TRÁI SẴN SÀNG. HĐH BẮT ĐẦU CẤP PROCESSOR CHO MỘT TIẾN TRÌNH TRONG SỐ CÁC TIẾN TRÌNH Ở TRẠNG THÁI SẴN SÀNG ĐỂ TIẾN TRÌNH NÀY HOẠT ĐỘNG, SAU MỘT KHOẢNG THỜI GIAN NÀO ĐÓ HĐH THU HỒI PROCESSOR CỦA TIẾN TRÌNH NÀY ĐỂ CẤP CHO MỘT TIẾN TRÌNH SẴN SÀNG KHÁC, SAU ĐÓ HĐH LẠI THU HỒI PROCESSOR TỪ TIẾN TRÌNH MÀ NÓ VỪA CẤP ĐỂ CẤP CHO TIẾN TRÌNH KHÁC, CÓ THỂ LÀ TIẾN TRÌNH MÀ TRÝỚC ĐÂY BỊ HĐH THU HỒI PROCESSOR KHI NÓ CHÝA KẾT THÚC, VÀ CỨ NHÝ THẾ CHO ĐẾN KHI TẤT CẢ CÁC TIẾN TRÌNH MÀ HĐH KHỞI TẠO ĐỀU H/ĐỘNG VÀ K/THÚC ĐÝỢC.
TRONG MÔ HÌNH TIẾN TRÌNH NÀY, KHOẢNG THỜI GIAN CHUYỂN PROCESSOR TỪ TIẾN TRÌNH NÀY SANG TIẾN TRÌNH KHÁC HAY KHOẢNG THỜI GIAN GIỮA HAI LẦN ĐÝỢC CẤP PHÁT PROCESSOR CỦA 1 TIẾN TRÌNH LÀ RẤT NHỎ NÊN HỆ THỐNG CÓ CẢM GIÁC CÁC TIẾN TRÌNH HOẠT ĐỘNG SONG SONG NHAU ( SONG SONG GIẢ )
Mô Hình Tiến Trình
ÝU ĐIỂM:
- TIẾT KIỆM BỘ NHỚ.
- KHAI THÁC TỐI ÝU TÀI NGUYÊN MÁY.
- TIẾT KIỆM ĐÝỢC BỘ NHỚ VÌ KHÔNG PHẢI NẠP TẤT CẢ CHƯƠNG TRÌNH VÀO BỘ NHỚ MÀ CHỈ NẬP CÁC TIẾN TRÌNH CẦN THIẾT NHẤT, SAU ĐÓ TÙY THEO YÊU CẦU MÀ CÓ THỂ NẠP TIẾP CÁC TIẾN TRÌNH KHÁC.
- CHO PHÉP CÁC CHƯƠNG TRÌNH HOẠT ĐỘNG SONG SONG NÊN TỐC ĐỘ XỬ LÝ CỦA TOÀN HỆ THỐNG TĂNG LÊN VÀ KHAI THÁC TỐI ĐA THỜI GIAN XỬ LÝ CỦA PROCESSOR.
Tiểu trình và tiến trình ?
* THÔNG THÝỜNG MỖI TIẾN TRÌNH CÓ 1 KHÔNG GIAN ĐỊA CHỈ VÀ 1 DÒNG XỬ LÝ
- MONG MUỐN CÓ NHIỀU DÒNG XỬ LÝ CÙNG CHIA SẺ 1 KHÔNG GIAN ĐỊA CHỈ VÀ CÁC DÒNG XỬ LÝ HOẠT ĐỘNG SONG SONG NHÝ CÁC TIẾN TRÌNH ĐỘC LẬP
- XUẤT HIỆN HĐH CÓ CÕ CHẾ THỰC THI MỚI GỌI LÀ TIỂU TRÌNH
* TIỂU TRÌNH LÀ MỘT ĐÕN VỊ XỬ LÝ CÕ BẢN TRONG HỆ THỐNG, TÝÕNG TỰ GIỐNG TIẾN TRÌNH. TỨC LÀ NÓ CŨNG PHẢI XỬ LÝ TUẦN TỰ CÁC CHỈ THỊ MÁY CỦA NÓ, NÓ CŨNG SỞ HỮU CON TRỌ LỆNH, MỘT TẬP CÁC THANH GHI VÀ MỘT KHÔNG GIAN STACK RIÊNG.
Tiểu trình và tiến trình ?
MỘT TIẾN TRÌNH ĐÕN CÓ THỂ BAO GỒM NHIỀU TIỂU TRÌNH. CÁC TIỂU TRÌNH TRONG MỘT TIẾN TRÌNH CHIA SẺ MỘT KHÔNG GIAN ĐỊA CHỈ CHUNG NÊN CÓ THỂ CHIA SẺ CÁC BIẾN TOÀN CỤC CỦA TIẾN TRÌNH VÀ TRUY XUẤT LÊN CÁC VÙNG NHỚ STACK CỦA NHAU.
Các Trạng Thái Của Tiến Trình
- TIẾN TRÌNH HAI TRẠNG THÁI
Các Trạng Thái Của Tiến Trình
- TIẾN TRÌNH BA TRẠNG THÁI
Các Trạng Thái Của Tiến Trình
- TIẾN TRÌNH BỐN TRẠNG THÁI
Các Trạng Thái Của Tiến Trình
- TIẾN TRÌNH NĂM TRẠNG THÁI
Cấu Trúc Dữ Liệu Của Khối Quản Lý Tiến Trình
HỆ ĐIỀU HÀNH QUẢN LÝ CÁC TIẾN TRÌNH TRONG HỆ THỐNG THÔNG QUA KHỐI QUẢN LÝ TIẾN TRÌNH (PROCESS CONTROL BLOCK -PCB). 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 (1) : GIÚP PHÂN BIỆT CÁC TIẾN TRÌNH
- TRẠNG THÁI TIẾN TRÌNH (2): 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 (3): 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 VỀ:
- TRẠNG THÁI CPU: BAO GỒM NỘI DUNG CÁC THANH GHI, QUAN TRỌNG NHẤT LÀ CON TRỎ LỆNH IP LÝU TRỮ ĐỊA CHỈ C�U LỆNH KẾ TIẾP TIẾN TRÌNH SẼ XỬ LÝ. CÁC THÔNG TIN NÀY CẦN ĐÝỢC LÝU TRỮ KHI XẢY RA MỘT NGẮT, NHẰM CÓ THỂ CHO PHÉP PHỤC HỒI HOẠT ĐỘNG CỦA TIẾN TRÌNH Đ�NG NHÝ TRÝỚC KHI BỊ NGẮT.
- BỘ XỬ LÝ: DÙNG CHO MÁY CÓ CẤU HÌNH NHIỀU CPU, XÁC ĐỊNH SỐ HIỆU CPU MÀ TIẾN TRÌNH ĐANG SỬ DỤNG.
- BỘ NHỚ CHÍNH: DANH SÁCH CÁC KHỐI NHỚ ĐÝỢC CẤP CHO TIẾN TRÌNH.
- TÀI NGUYÊN SỬ DỤNG: DANH SÁCH CÁC TÀI MGUYÊN HỆ THỐNG MÀ TIẾN TRÌNH ĐANG SỬ DỤNG.
- TÀI NGUYÊN TẠO LẬP: DANH SÁCH CÁC TÀI NGUYÊN ĐÝỢC TIẾN TRÌNH TẠO LẬP.
- THÔNG TIN GIAO TIẾP (4): 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 :
- TIẾN TRÌNH CHA: TIẾN TRÌNH TẠO LẬP TIẾN TRÌNH NÀY .
- TIẾN TRÌNH CON: CÁC TIẾN TRÌNH DO TIẾN TRÌNH NÀY TẠO LẬP .
- ĐỘ ÝU TIÊN : GIÚP BỘ Đ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Ê (5): Đ�Y 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 CÓ THỂ CÓ ÍCH CHO CÔNG VIỆC Đ�NH GI� TÌNH HÌNH HỆ THỐNG VÀ DỰ ĐO�N C�C TÌNH HUỐNG TƯƠNG LAI.
Các Thao Tác Điều Khiển Tiến Trình
A. KHỞI TẠO TIẾN TRÌNH
- HĐH GÁN PID VÀ ĐÝA VÀO DANH SÁCH QUẢN LÝ CỦA HỆ THỐNG
- CẤP PHÁT KHÔNG GIAN BỘ NHỚ
- KHỞI TẠO CÁC THÔNG TIN CẦN THIẾT CHO KHỐI ĐIỀU KHIỂN TIẾN TRÌNH: CÁC PID CỦA TT CHA (NẾU CÓ), THÔNG TIN TRẠNG THÁI, ĐỘ ÝU TIÊN, NGỮ CẢNH CỦA PROCESSOR
- CUNG CẤP ĐẦY ĐỦ CÁC TÀI NGUYÊN (TRỪ PROCESSOR)
- ĐƯA TIẾN TRÌNH VÀO DANH SÁCH TT NÀO ĐÓ: READY LIST, SUSPEND LIST, WAITING LIST
Các Thao Tác Điều Khiển Tiến Trình
B. KẾT THÚC TIẾN TRÌNH HĐH THỰC HIỆN CÁC THAO TÁC:
- THU HỒI TÀI NGUYÊN ĐÃ CẤP PHÁT CHO TIẾN TRÌNH
- LOẠI BỎ TIẾN TRÌNH RA KHỎI DANH SÁCH QUẢN LÝ CỦA HỆ THỐNG
- HỦY BỎ KHỐI ĐIỀU KHIỂN TIẾN TRÌNH
Các Thao Tác Điều Khiển Tiến Trình
C. THAY ĐỔI TRẠNG THÁI CỦA TIẾN TRÌNH HĐH THỰC HIỆN:
- LƯU NGỮ CẢNH CỦA PROCESSOR
- CẬP NHẬT PCB (PROCESS CONTROL BLOCK) CỦA TIẾN TRÌNH SAO CHO PHÙ HỢP VỚI TRẠNG THÁI CỦA TIẾN TRÌNH
- DI CHUYỂN PCB CỦA TIẾN TRÌNH ĐẾN 1 HÀNG ĐỢI THÍCH HỢP
- CHỌN TIẾN TRÌNH KHÁC ĐỂ CHO PHÉP NÓ THỰC HIỆN
- CẬP NHẬT PCB CỦA TIẾN TRÌNH VỪA THỰC HIỆN
- CẬP NHẬT THÔNG TIN LIÊN QUAN ĐẾN QUẢN LÝ BỘ NHỚ
- KHÔI PHỤC LẠI NGỮ CẢNH CỦA PROCESSOR
Tài nguyên găng (Critical Resource)
- TÀI NGUYÊN GĂNG?
§ Những tài nguyên đýợc HĐH chia sẻ cho nhiều tiến trình hoạt động đồng thời dùng chung mà có nguy cõ tranh chấp giữa các tiến trình này khi sử dụng chúng
- TÀI NGUYÊN GĂNG CÓ THỂ LÀ TÀI NGUYÊN PHẦN CỨNG HOẶC PHẦN MỀM, CÓ THỂ LÀ TÀI NGUYÊN PHÂN CHIA ĐÝỢC HOẶC KHÔNG PHÂN CHIA ĐÝỢC
Đoạn găng(Critical Section)
- CÁC ĐOẠN CODE TRONG CÁC CHÝÕNG TRÌNH DÙNG ĐỂ TRUY CẬP ĐẾN TÀI NGUYÊN GĂNG ĐÝỢC GỌI LÀ ĐOẠN GĂNG.
- ĐỂ HẠN CHẾ LỖI CÓ THỂ XẢY RA DO SỬ DỤNG TÀI NGUYÊN GĂNG, TẠI 1 THỜI ĐIỂM HĐH CHỈ CHO 1 TIẾN TRÌNH NẰM TRONG ĐOẠN GĂNG
- HĐH CÓ CÕ CHẾ ĐIỀU ĐỘ TIẾN TRÌNH QUA ĐOẠN GĂNG
Yêu cầu của công tác điều độ tiến trình qua đoạn găng
- TẠI 1 THỜI ĐIỂM CHỈ CHO PHÉP 1 TIẾN TRÌNH NẰM TRONG ĐOẠN GĂNG, CÁC TIẾN TRÌNH KHÁC CÓ NHU CẦU VÀO ĐOẠN GĂNG PHẢI CHỜ
- TIẾN TRÌNH CHỜ NGOÀI ĐOẠN GĂNG KHÔNG ĐÝỢC NGĂN CẢN CÁC TIẾN TRÌNH KHÁC VÀO ĐOẠN GĂNG
- KHÔNG CÓ TIẾN TRÌNH NÀO PHẢI CHỜ LÂU ĐỂ ĐÝỢC VÀO ĐOẠN GĂNG
- ĐÁNH THỨC CÁC TIẾN TRÌNH TRONG HÀNG ĐỢI ĐỂ TẠO ĐIỀU KIỆN CHO NÓ VÀO ĐOẠN GĂNG KHI TÀI NGUYÊN GĂNG ĐÝỢC GIẢI PHÓNG
a. Các giải pháp phần cứng
DÙNG CẶP CHỈ THỊ STI(SETTING INTERRUPT)
VÀ CLI (CLEAN INTERRUPT)
VÍ DỤ:
PROCEDURE P(I: INTEGER)
BEGIN
REPEAT
CLI;
<ĐOẠN GĂNG CỦA P>;
STI;
<ĐOẠN KHÔNG GĂNG>;
UNTIL .F.
END;
VD:Tiến trình quản lý hồ sơ trong văn phòng
Chúng ta đã bao giờ mất hàng giờ đồng hồ để tìm kiếm lại hồ sơ của mình? Khi sếp muốn nhận được hồ sơ XYZ ngay, chúng ta có thể tự tin là bất kỳ hồ sơ nào ông ấy muốn, chúng ta có thể cung cấp trong vòng 5 phút? hoặc giả sử như một nhân viên có người nhà bị tai nạn xe, anh ta không đi làm được, cả phòng chúng ta nháo nhào tìm hồ sơ của nhân viên ấy theo yêu cầu của khách hàng? Trường hợp xấu như, một nhân viên nghỉ việc, anh ta chẳng làm đơn gì cả, bây giờ chúng ta không biết hồ sơ của anh ta thế nào… Nếu bị rơi vào các trường hợp như trên, có lẽ chúng ta đã chưa tổ chức được một hệ thống quản lý hồ sơ hiệu quả.
=>Quản lý hồ sơ giấy
Nên lập một danh mục tất cả các loại hồ sơ giấy và máy tính của mỗi nhân viên.
Danh mục hồ sơ của mỗi nhân viên và danh mục hồ sơ của chúng ta chính là hồ sơ toàn bộ phận của chúng ta đấy.
Khi nhân viên lập xong danh mục hồ sơ của họ, hãy kiểm tra lại danh mục hồ sơ của họ, và ký tên duyệt danh mục này.
Hãy tổ chức cứ mỗi tháng 1-2 lần, chúng ta yêu cầu nhân viên cập nhật hồ sơ vào danh mục.
=>Quản lý hồ sơ máy, CD…
Cách quản lý hồ sơ thông thường là lập theo các cấp folder khác nhau.
Nên có mục input để quản lý các thông tin đầu vào. Đây là phần chức đựng các thông tin nhưng chưa xử lý.
Có một thư mục thùng rác riêng (không phải là mục Recycle của máy tính) để lưu các thông tin cần xoá, chỉ xoá các thông tin này sau 3 tháng.
Hãy ra một quy định hướng dẫn cho tất cả nhân viên làm giống nhau: Input; Output; Quy định backup dữ liệu; Quy định sao lưu dữ liệu định kỳ; Quy định quét virus định kỳ; Quy định thời gian kiểm tra và quét dữ liệu, sao lưu lại dữ liệu định kỳ.
Một số lỗi thường gặp trong quản lý hồ sơ trên máy tính:
Không đặt chế độ autosave trong 1 phút (MS.Office).
Lưu hồ sơ trong ổ C (nên lưu ở ổ D, vì ổ C có thể bị mất do vô tình fomat (cài lại máy).
Lưu hồ sơ lung tung, không biết tìm hồ sơ ở đâu.
Phần mềm phục hồi hồ sơ:
Dùng phần mềm chuyên phục hồi dữ liệu trên ổ cứng.
Dùng phần mềm chuyên phục hồi dữ liệu bị hư trên đĩa CD.
Dùng phần mềm chuyên tìm lại mật khẩu bị mất.
Quyền truy cập thông tin, hồ sơ trên máy tính
Ai được quyền xem thông tin?
Ai được quyền chỉnh sửa, cập nhật thông tin?
Hãy tạo thêm một cột trong bảng thông tin với nội dung: nhưng người được quyền truy cập và/hoặc chỉnh sửa.
PhamQuangHien_I12A
Tổng số bài gửi: 8
Join date: 22/02/2012
Age: 22
Đến từ: Quãng Ngãi
PhamQuangHien_I12A- Tổng số bài gửi : 62
Join date : 22/02/2012
Age : 35
Đến từ : Quãng Ngãi
Biên dịch và thông dịch
Thông dịch(Interpretion) là lần lượt thi hành từng lệnh 1 thông qua 1 chương trình gọi là Trình thông dịch(Interpretor). "Thường được viết ở ngôn ngữ cấp thấp được lưu thành file với đuôi mở rộng *.bat(batch)"
Biên dịch(Compilation) là dịch 1 lần toàn bộ chương trình thông qua 1 chương trình gọi là Trình biên dịch (Compiler)==> Tạo ra file thực thi *.exe (sẽ chạy 1 lần mà không cần phải thông dịch lại).
Trong thông dịch thì mã nguồn không được dịch trước thành ngôn ngữ máy mà mỗi lần cần chạy chương trình thì mã nguồn mới được dịch để thực thi từng dòng 1 (line by line). Tất cả các ngôn ngữ không biện dịch ra mã máy điều phải sử dụng trình thông dịch (PHP, WScripts, Perl, Linux Shell, Python....). Các ngôn ngữ theo trình thông dịch thường được gọi là script (kịch bản)
ví dụ:Thông dịch giống như 1 người thông dịch viên đi dịch cuộc nói chuyện của 2 người. phải biết người này nói gì thì mới dịch được. Người thông dịch viên này thường chi biết 2 thứ tiếng ( là tiếng bản sứ và tiếng cần dịch).
Biện dịch là người ngồi 1 nơi và dịch sách dịch 1 lúc toàn bộ nội dung của cuồn sách đó.
Bạn chạy chương trình vb hay c++ c# chưa? nếu bạn không debug tức chỉ đơn thuần là bấm run ( f5 cho vb và c++, f6 cho c#..). thì cái đó máy sẽ đọc hết 1 lược các câu lệnh rồi mới build thành từng chương trình=>biên dịch
Nhưng khi bạn debug (tức break point tại điểm nào đó ( có hình vòng tròn đỏ ở ngoài) thì tức là bạn đang thông dịch câu lệnh đó. máy sẽ đọc từng câu lệnh =>thong dịch
Biên dịch(Compilation) là dịch 1 lần toàn bộ chương trình thông qua 1 chương trình gọi là Trình biên dịch (Compiler)==> Tạo ra file thực thi *.exe (sẽ chạy 1 lần mà không cần phải thông dịch lại).
Trong thông dịch thì mã nguồn không được dịch trước thành ngôn ngữ máy mà mỗi lần cần chạy chương trình thì mã nguồn mới được dịch để thực thi từng dòng 1 (line by line). Tất cả các ngôn ngữ không biện dịch ra mã máy điều phải sử dụng trình thông dịch (PHP, WScripts, Perl, Linux Shell, Python....). Các ngôn ngữ theo trình thông dịch thường được gọi là script (kịch bản)
ví dụ:Thông dịch giống như 1 người thông dịch viên đi dịch cuộc nói chuyện của 2 người. phải biết người này nói gì thì mới dịch được. Người thông dịch viên này thường chi biết 2 thứ tiếng ( là tiếng bản sứ và tiếng cần dịch).
Biện dịch là người ngồi 1 nơi và dịch sách dịch 1 lúc toàn bộ nội dung của cuồn sách đó.
Bạn chạy chương trình vb hay c++ c# chưa? nếu bạn không debug tức chỉ đơn thuần là bấm run ( f5 cho vb và c++, f6 cho c#..). thì cái đó máy sẽ đọc hết 1 lược các câu lệnh rồi mới build thành từng chương trình=>biên dịch
Nhưng khi bạn debug (tức break point tại điểm nào đó ( có hình vòng tròn đỏ ở ngoài) thì tức là bạn đang thông dịch câu lệnh đó. máy sẽ đọc từng câu lệnh =>thong dịch
VoThiHongNhung(I12A)- Tổng số bài gửi : 20
Join date : 20/02/2012
Trình bày những lý do cộng tác giữa các tiến trình( Cooperation Reasons)
- 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 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 văn bản, in ấn, duyệt web,lấy file về biên dịch chương trình kiểm tra chính tả.
VD:Nhu cầu nối mạng internet của chúng ta.
----- 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 văn bản, in ấn, duyệt web,lấy file về biên dịch chương trình kiểm tra chính tả.
VD:Nhu cầu nối mạng internet của chúng ta.
huynhvanhung(I12A)- Tổng số bài gửi : 43
Join date : 17/02/2012
Age : 36
Đến từ : TP.HCM
Phân biệt các loại trình điều phối
Trình điều phối (Schduler) có 3 loại trình điều phối :
---Điều phối chậm (long - term schduler)
+ 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 tiến trinh2.
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) tính toán ít , nhiều I/O
VD: công ty có 1 chiếc xe ô to (CPU) các nhân viên trong công ty chỉ ngồi nghiên cứu I/O không sử dụng đến ô tô ; vậy quá lãng phí ô tô (CPU).
Mục đích cân bằng tải cho toàn hệ thống.
-- điều phối nhanh (short - term schedule)
-- 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 đề sát đị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.
Ví dụ: Phòng thực hành nhỏ, nhưng nhiều bạn đi học thực hành (nhiều tiến trình). Thầy (HĐH) sẽ đẩy một số bạn ra khỏi lớp (rút tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong phòng học xong Thầy sẽ đẩy các bạn bên ngoài vào phòng học (đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).
---Điều phối chậm (long - term schduler)
+ 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 tiến trinh2.
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) tính toán ít , nhiều I/O
VD: công ty có 1 chiếc xe ô to (CPU) các nhân viên trong công ty chỉ ngồi nghiên cứu I/O không sử dụng đến ô tô ; vậy quá lãng phí ô tô (CPU).
Mục đích cân bằng tải cho toàn hệ thống.
-- điều phối nhanh (short - term schedule)
-- 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 đề sát đị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.
Ví dụ: Phòng thực hành nhỏ, nhưng nhiều bạn đi học thực hành (nhiều tiến trình). Thầy (HĐH) sẽ đẩy một số bạn ra khỏi lớp (rút tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong phòng học xong Thầy sẽ đẩy các bạn bên ngoài vào phòng học (đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).
huynhvanhung(I12A)- Tổng số bài gửi : 43
Join date : 17/02/2012
Age : 36
Đến từ : TP.HCM
Phân biệt điều phối chậm với đ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.
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.
- 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.
NguyenXuanTri28- Tổng số bài gửi : 39
Join date : 05/09/2011
Cộng tác giữa các tiến trình
Các tiến trình phải cộng tác với nhau để chia sẻ thông tin với nhau,tăng tốc độ tính toán,đảm bảo tính đơn thể tốt hơn.
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.
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.
NguyenXuanTri28- Tổng số bài gửi : 39
Join date : 05/09/2011
Sự khác nhau giữ tíên trình khác chương 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ý của HĐH). Có sự phân biệt Tiến trình hệ thống(của HĐH) với Tíê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ể Họat độ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í 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ể Họat độ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í hiện hành.
NguyenXuanTri28- Tổng số bài gửi : 39
Join date : 05/09/2011
Phân biệt Job Queue ( hàng chờ công việc) và Ready Queue (hàng chờ sẵn sàng)
Job Queue: là hàng chờ công việc, chứa các tiến trình chờ được vận hành.
Ready Queue: là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU.
Giống nhau:- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:
- Dùng giải thuật điều phối chậm(Long - term Scheduler) để đưa các tiến trình từ Job Queue vào Ready Queue.
- Dùng giải thuật điều phối nhanh(Short - term Scheduler) chọn các tiến trình trong Ready Queue để cấp CPU.
Ready Queue: là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU.
Giống nhau:- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:
- Dùng giải thuật điều phối chậm(Long - term Scheduler) để đưa các tiến trình từ Job Queue vào Ready Queue.
- Dùng giải thuật điều phối nhanh(Short - term Scheduler) chọn các tiến trình trong Ready Queue để cấp CPU.
NguyenXuanTri28- Tổng số bài gửi : 39
Join date : 05/09/2011
Đồng bộ hoá liên lạc giữa các tiến trình.
Đồng bộ hoá liên lạc (Synchronization)
- Gửi thông điệp có chờ (Blocking Send)
- Gửi thông điệp không chờ (Nonblocking Send)
- Nhận thông điệp có chờ (Blocking Receive)
- Nhận thông điệp không chờ (Nonblocking Receive)
- Gửi thông điệp có chờ (Blocking Send)
- Gửi thông điệp không chờ (Nonblocking Send)
- Nhận thông điệp có chờ (Blocking Receive)
- Nhận thông điệp không chờ (Nonblocking Receive)
Truyền thông điệp trong Windows
Các hàm API dùng để Gửi/Nhận thông điệp
+ SendMessage : Gửi có chờ
+ PostMessage : Gửi không chờ
+ SendMessageTimeout : Gửi có chờ nhưng với thời hạn
+ WaitMessage : Chờ thông điệp đến
+ GetMessage : Nhận có chờ
+ PeekMessage : Nhận không chờ
+ SendMessage : Gửi có chờ
+ PostMessage : Gửi không chờ
+ SendMessageTimeout : Gửi có chờ nhưng với thời hạn
+ WaitMessage : Chờ thông điệp đến
+ GetMessage : Nhận có chờ
+ PeekMessage : Nhận không chờ
Khối quản lí tiến trình
Một khối điều khiển tiến trình (Process Control Block - PCB) là một cấu trúc dữ liệu trong nhân hệ điều hành chứa thông tin cần thiết để quản lý một tiến trình nhất định.
Tuỳ thuộc vào cài đặt nhưng nói chung PCB trực tiếp hoặc gián tiếp chứa những thông tin như sau:
• Định danh của tiến trình (process identifier hay PID)
• Giá trị các thanh ghi của tiến trình, trong đó đáng chú ý là con trỏ chương trình và con trỏ stack
• Không gian địa chỉ của tiến trình
• Độ ưu tiên (trong đó tiến trình có giá trị cao hơn được ưu tiên trước, ví dụ nice trong các hệ điều hành Unix)
• Thông tin kế toán tiến trình, ví dụ như thời điểm thực thi gần nhất, bao nhiêu thời gian CPU đã sử dụng...
• Con trỏ tới PCB tiếp theo, nghĩa là con trỏ tới tiến trình tiếp theo được chạy
• Thông tin V/R (ví dụ các thiết bị V/R được cấp phát cho tiến trình, danh sách các tệp đang mở...)
Khi chuyển ngữ cảnh, tiến trình đang thực hiện bị dừng lại và một tiến trình khác có cơ hội thực hiện. Nhân dừng việc thực hiện của tiến trình, sao chép các giá trị trong thanh ghi vào PCB và cập nhật thanh ghi với các giá trị của PCB của tiến trình mới.
Vị trí của PCB
Vì PCB chứa những thông tin tối quan trọng đối với tiến trình, nó phải được giữ trong một vùng bộ nhớ được bảo vệ. Trong một số hệ điều hành,, PCB được đặt ở đầu của ngăn xếp nhân của tiến trình
Tuỳ thuộc vào cài đặt nhưng nói chung PCB trực tiếp hoặc gián tiếp chứa những thông tin như sau:
• Định danh của tiến trình (process identifier hay PID)
• Giá trị các thanh ghi của tiến trình, trong đó đáng chú ý là con trỏ chương trình và con trỏ stack
• Không gian địa chỉ của tiến trình
• Độ ưu tiên (trong đó tiến trình có giá trị cao hơn được ưu tiên trước, ví dụ nice trong các hệ điều hành Unix)
• Thông tin kế toán tiến trình, ví dụ như thời điểm thực thi gần nhất, bao nhiêu thời gian CPU đã sử dụng...
• Con trỏ tới PCB tiếp theo, nghĩa là con trỏ tới tiến trình tiếp theo được chạy
• Thông tin V/R (ví dụ các thiết bị V/R được cấp phát cho tiến trình, danh sách các tệp đang mở...)
Khi chuyển ngữ cảnh, tiến trình đang thực hiện bị dừng lại và một tiến trình khác có cơ hội thực hiện. Nhân dừng việc thực hiện của tiến trình, sao chép các giá trị trong thanh ghi vào PCB và cập nhật thanh ghi với các giá trị của PCB của tiến trình mới.
Vị trí của PCB
Vì PCB chứa những thông tin tối quan trọng đối với tiến trình, nó phải được giữ trong một vùng bộ nhớ được bảo vệ. Trong một số hệ điều hành,, PCB được đặt ở đầu của ngăn xếp nhân của tiến trình
NguyenXuanTri28- Tổng số bài gửi : 39
Join date : 05/09/2011
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
PhamQuangHien_I12A- Tổng số bài gửi : 62
Join date : 22/02/2012
Age : 35
Đến từ : Quãng Ngãi
Mô hình chuyển trạng thái của các tiến trình
Mô hình chuyển trạng thái của các tiến trình
Mới (New): tiến trình đang được tạo lập.
Đang chạy (Runing): các chỉ thị của tiến trình đang được xử lý.
Đang chờ (Waiting): tiến trình chờ được cấp phát 1 tài nguyên, hay chờ 1 sự kiện xảy ra.
Sẵn sàng (Ready): tiến trình chờ được cấp phát CPU.
Kết thúc (Terminated): tiến trình hoàn tất xủ lý.
Tại 1 thời điểm chỉ có 1 tiến trình có thể nhận trạng thái running trên bộ xử lý bất kỳ. Trong khi đó nhiều tiến trình có thể ở trạng thái blocked hay ready.
Các cung chuyển tiếp trong sơ đồ trạng thái biễu diễn sáu sự chuyển trạng thái có thể xảy ra trong các điều kiện sau:
Tiến trình mới tạo được đưa vào hệ thống.
Bộ điều phối cho tiến trình 1 khoảng thời gian sử dụng CPU.
Tiến trình kết thúc.
Tiến trình yêu cầu 1 tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó hoặc tiến trình phải chờ 1 sự kiện hay thao tác nhâp/xuất.
Bộ điều phối chọn 1 tiến trình khác để cho xử lý.
Tài nguyên mà tiền trình yêu cầu trở nên sẵn sàng để cấp phát hay sự kiện hoặc thao tác nhập/xuất tiến trình đang đợi hoàn tất.
[u]
Mới (New): tiến trình đang được tạo lập.
Đang chạy (Runing): các chỉ thị của tiến trình đang được xử lý.
Đang chờ (Waiting): tiến trình chờ được cấp phát 1 tài nguyên, hay chờ 1 sự kiện xảy ra.
Sẵn sàng (Ready): tiến trình chờ được cấp phát CPU.
Kết thúc (Terminated): tiến trình hoàn tất xủ lý.
Tại 1 thời điểm chỉ có 1 tiến trình có thể nhận trạng thái running trên bộ xử lý bất kỳ. Trong khi đó nhiều tiến trình có thể ở trạng thái blocked hay ready.
Các cung chuyển tiếp trong sơ đồ trạng thái biễu diễn sáu sự chuyển trạng thái có thể xảy ra trong các điều kiện sau:
Tiến trình mới tạo được đưa vào hệ thống.
Bộ điều phối cho tiến trình 1 khoảng thời gian sử dụng CPU.
Tiến trình kết thúc.
Tiến trình yêu cầu 1 tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó hoặc tiến trình phải chờ 1 sự kiện hay thao tác nhâp/xuất.
Bộ điều phối chọn 1 tiến trình khác để cho xử lý.
Tài nguyên mà tiền trình yêu cầu trở nên sẵn sàng để cấp phát hay sự kiện hoặc thao tác nhập/xuất tiến trình đang đợi hoàn tất.
[u]
Truc_Phuong(I111C)- Tổng số bài gửi : 44
Join date : 26/08/2011
Đến từ : Trà Vinh
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.
PhamQuangHien_I12A- Tổng số bài gửi : 62
Join date : 22/02/2012
Age : 35
Đến từ : Quãng Ngãi
Phát biểu bài toán sản xuất và tiêu thụ
Bài toán sản xuất và tiêu thụ được phát biểu chung như sau:
Có 1 bộ nhớ đệm (Buffer và 2 tiến trình sản xuất Producer và tiến trình tiêu thụ Comsumer. Tiến trình Producer lần lượt sản xuất các sản phẩm S1, S2 vào khoang của bộ đệm Buffer.
Tiến trình tiêu thụ lần lượt lấy các sản phẩm ra khỏi bộ đêm. Công việc của Producer và Consumer cần được đồng bộ hóa: tiến trình Consumer không thể lấy sản phẩm khi Buffer trống và tiến trình Producer không thể sản xuất khi bộ đêm đầy.
Đồng bộ hóa dùng 2 đèn hiệu Semfull và SemEmty
Producer()
{
// chờ trong khi bộ đệm đầy
waitforsingle (SemFull, INITE)
// sản xuất sản phẩm
Releave (SemEmty)
// bộ đệm đã có sản phẩm
}
Admin
Code viết sai quá ! Cần đi học đều !
Có 1 bộ nhớ đệm (Buffer và 2 tiến trình sản xuất Producer và tiến trình tiêu thụ Comsumer. Tiến trình Producer lần lượt sản xuất các sản phẩm S1, S2 vào khoang của bộ đệm Buffer.
Tiến trình tiêu thụ lần lượt lấy các sản phẩm ra khỏi bộ đêm. Công việc của Producer và Consumer cần được đồng bộ hóa: tiến trình Consumer không thể lấy sản phẩm khi Buffer trống và tiến trình Producer không thể sản xuất khi bộ đêm đầy.
Đồng bộ hóa dùng 2 đèn hiệu Semfull và SemEmty
Producer()
{
// chờ trong khi bộ đệm đầy
waitforsingle (SemFull, INITE)
// sản xuất sản phẩm
Releave (SemEmty)
// bộ đệm đã có sản phẩm
}
Admin
Code viết sai quá ! Cần đi học đều !
Truc_Phuong(I111C)- Tổng số bài gửi : 44
Join date : 26/08/2011
Đến từ : Trà Vinh
Thầy Cho Em một ví dụ cụ thể để các bạn cùng hiểu rõ hơn
minhtam_I12C đã viết:Tiến trình là chương trình trong thời gian thực hiện - đặt dưới sự quản lý của HĐH .
Phân biệt tiến trình :
- Tiến trình hệ thống : khi khởi động máy các chương trình mặc định của hệ điều hành sẽ tự động chạy lên vd như windows Explore , desktop window manager ...
- Tiến trình người dùng : khi user cần sử dụng chương trình phục vụ cho cong việc thì sẽ kích hoạt chương trình cần dùng lên . vd : yahoo, word , ...
Các trạng thái tiến trình :
- Mới (New )- Tiến trình vửa được tạo lập
- Đang chạy (Running )- Các lệnh thực thi .
- Đang chờ ( waitting ) - Các lệnh đang chờ thực thi.
- Sẵn sàng (ready ) - Tiến trình chờ để ấn dịnh sẵn trong CPU .
- Kết thức ( Termnated )- Tiến trình vửa thực hiện xong .
Vd đời thường ( mình tự nghĩa ra nếu không chính xác ,thầy và các bạn đừng chê )
- Trong nhà hàng :
- các dụng cụ bàn ,ghế, khăn, chén , đũa .. là vd như tiến trình của hệ thống vì kkhi mở cửa đã chuẩn bị sẵn tất cá các thứ đó .
Admin
- Khi khách yêu cầu các món ăn cũng như nước uống thì là vd của tiến trình người dùng vì khi đó mới thực hiện những công việc khách hàng yêu cầu .
Bàn ghế, Khăn, Chén, Đũa,... là Tài nguyên hệ thống, và không thể là Tiến trình được !
Mình soạn bài trước ở nhà không đúng thì các bạn cứ góp ý , thanks .
lequanghanh(102c)- Tổng số bài gửi : 61
Join date : 18/02/2011
Age : 38
Đến từ : Phương Đông - Trà Đông - Bắc Trà My - Quảng Nam
Những lý do cộng tác giữa các tiến trình
Chia sẻ thông tin (Information Sharing): Một tiến trình sử dụng thông tin do tiến trình khác cung cấp.
Ví dụ: các bạn trong lớp chia nhóm học. Nhóm một nghiên cứu chương 1, nhóm hai nghiên cứu chương 2. Sau đó, hai nhóm trao đổi thông tin cho nhau. Kết quả hai nhóm mau chóng tìm hiểu hết hai chương.
Tăng tốc tính toán (Computation Speedup): Các tiến trình cùng làm việc song song trên 1 hoặc nhiều máy để giải quyết bài toán chung.
Đảm bảo tính đơn thể (Modularity): Chương trình được chia thành các đơn thể chức năng vận hành trong các tiến trình hoặc luồng khác nhau.
Ví dụ: mỗi bạn học một bài, đảm bảo tính đơn thể.
Đảm bảo tính tiện dụng (Convenience): Người dùng có nhu cầu làm nhiều việc một lúc: Soạn thảo, In ấn, Duyệt Web, Lấy file về, Biên dịch chương trình, Kiểm tra chính tả,...
Ví dụ: các bạn trong lớp chia nhóm học. Nhóm một nghiên cứu chương 1, nhóm hai nghiên cứu chương 2. Sau đó, hai nhóm trao đổi thông tin cho nhau. Kết quả hai nhóm mau chóng tìm hiểu hết hai chương.
Tăng tốc tính toán (Computation Speedup): Các tiến trình cùng làm việc song song trên 1 hoặc nhiều máy để giải quyết bài toán chung.
Đảm bảo tính đơn thể (Modularity): Chương trình được chia thành các đơn thể chức năng vận hành trong các tiến trình hoặc luồng khác nhau.
Ví dụ: mỗi bạn học một bài, đảm bảo tính đơn thể.
Đảm bảo tính tiện dụng (Convenience): Người dùng có nhu cầu làm nhiều việc một lúc: Soạn thảo, In ấn, Duyệt Web, Lấy file về, Biên dịch chương trình, Kiểm tra chính tả,...
Truc_Phuong(I111C)- Tổng số bài gửi : 44
Join date : 26/08/2011
Đến từ : Trà Vinh
Phân tích khái niệm chuyển ngữ cảnh
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 MS.
-> PCB là vùng nhớ để lưu các thông tin về môi trường và trạng thái hoạt động của tiến trì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.
+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 MS.
-> PCB là vùng nhớ để lưu các thông tin về môi trường và trạng thái hoạt động của tiến trì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.
TrinhVinhThanh (I12A)- Tổng số bài gửi : 10
Join date : 18/02/2012
Định nghĩa tiến trình - phân biệt tiến trình với chương 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ý của hệ điều hành) .
Phân biệt tiến trình với chương trình:
Bản than tiến trình không là chương trình vì là thực thể thụ động , trong khi tiến trình là thực thể hoạt động với nhiều thôn g tin về trạng thái trong đó có bộ đếm chương trình cho biết vị trí lệnh hiện hành .
- Nhiều tiến trình có thể liên quan đến một chương trình và là các thực thể khác nhau khi vận hành .
- Mỗi tiến trình có thể sinh ra nhiều tiến trình con khác khi vận hành.
- Tiến trình cần các 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 cấp cho tiến trinh ngay từ đầu (khi tiến trình được tạo lập) hoặc trong thời gian vận hành và được thu hồi hết khi tiến trình kết thúc .
- Tiến trình là thực thể hoạt động , chương trình là thực thể thụ động , tiến trình có thông – Điểm khác nhau giữa tiến trình và chương trình : tiến trình có thông tin trạng thái để phản ánh tiến trình đang ở trạng thái nào .
Phân biệt tiến trình với chương trình:
Bản than tiến trình không là chương trình vì là thực thể thụ động , trong khi tiến trình là thực thể hoạt động với nhiều thôn g tin về trạng thái trong đó có bộ đếm chương trình cho biết vị trí lệnh hiện hành .
- Nhiều tiến trình có thể liên quan đến một chương trình và là các thực thể khác nhau khi vận hành .
- Mỗi tiến trình có thể sinh ra nhiều tiến trình con khác khi vận hành.
- Tiến trình cần các 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 cấp cho tiến trinh ngay từ đầu (khi tiến trình được tạo lập) hoặc trong thời gian vận hành và được thu hồi hết khi tiến trình kết thúc .
- Tiến trình là thực thể hoạt động , chương trình là thực thể thụ động , tiến trình có thông – Điểm khác nhau giữa tiến trình và chương trình : tiến trình có thông tin trạng thái để phản ánh tiến trình đang ở trạng thái nào .
TranThiAnhDao89I12C- Tổng số bài gửi : 25
Join date : 17/02/2012
Phân biệt điều phối chậm vớ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ác tiế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 toàn 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 (đưa sang trạng thái Running).
- Có tần suất công việc cao.
còn thiếu sót gì mong các bạn bổ sung thêm dùm mình nha
- 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ác tiế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 toàn 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 (đưa sang trạng thái Running).
- Có tần suất công việc cao.
còn thiếu sót gì mong các bạn bổ sung thêm dùm mình nha
phamphihung55- Tổng số bài gửi : 83
Join date : 16/02/2012
Age : 34
ĐỊNH NGHĨA TIẾN TRÌNH , SO SÁNH TIẾN TRÌNH VỚI CHƯƠNG 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ý của hệ điều hành) .
So sánh tiến trình với chương trình:
Bản than tiến trình không là chương trình vì là thực thể thụ động , trong khi tiến trình là thực thể hoạt động với nhiều thôn g tin về trạng thái trong đó có bộ đếm chương trình cho biết vị trí lệnh hiện hành .
- Nhiều tiến trình có thể liên quan đến một chương trình và là các thực thể khác nhau khi vận hành .
- Mỗi tiến trình có thể sinh ra nhiều tiến trình con khác khi vận hành.
- Tiến trình cần các 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 cấp cho tiến trinh ngay từ đầu (khi tiến trình được tạo lập) hoặc trong thời gian vận hành và được thu hồi hết khi tiến trình kết thúc .
- Tiến trình là thực thể hoạt động , chương trình là thực thể thụ động , tiến trình có thông –
Điểm khác nhau
* tiến trình có thông tin trạng thái để phản ánh tiến trình đang ở trạng thái nào
* Có tiến trình mình mới tạo nên chương trình và cũng từ chương trình lại phát sinh nhiều tiến trình khác sinh ra chương trình mới
So sánh tiến trình với chương trình:
Bản than tiến trình không là chương trình vì là thực thể thụ động , trong khi tiến trình là thực thể hoạt động với nhiều thôn g tin về trạng thái trong đó có bộ đếm chương trình cho biết vị trí lệnh hiện hành .
- Nhiều tiến trình có thể liên quan đến một chương trình và là các thực thể khác nhau khi vận hành .
- Mỗi tiến trình có thể sinh ra nhiều tiến trình con khác khi vận hành.
- Tiến trình cần các 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 cấp cho tiến trinh ngay từ đầu (khi tiến trình được tạo lập) hoặc trong thời gian vận hành và được thu hồi hết khi tiến trình kết thúc .
- Tiến trình là thực thể hoạt động , chương trình là thực thể thụ động , tiến trình có thông –
Điểm khác nhau
* tiến trình có thông tin trạng thái để phản ánh tiến trình đang ở trạng thái nào
* Có tiến trình mình mới tạo nên chương trình và cũng từ chương trình lại phát sinh nhiều tiến trình khác sinh ra chương trình mới
phamphihung55- Tổng số bài gửi : 83
Join date : 16/02/2012
Age : 34
Trình bày mô hình chuyển trạng thái của tiến trình
Có 5 trạng thái sau:
New: tiến trình đang được tạo lập.
Running: các chỉ thị của tiến trình đang được xử lý.
Blocked: tiến trình chờ được cấp phát một tài nguyên, hay chờ một sự kiện xảy ra .
Ready: tiến trình chờ được cấp phát CPU để xử lý.
Kết thúc: tiến trình hoàn tất xử lý.
Tiến trình P1: vào hàng đợi Job-Queue ở trạng thái New, sẽ đợi 1 khoảng thời gian của quá trình điều phối chậm (Scheduler Long Term) của hệ điều hành(HĐH) để chọn tiến trình, sau khi được O.S chọn, P1 chuyển sang hàng đợi reday quueue và ở trạng thái Ready. Lúc này P1 chỉ đợi cấp CPU và running.
Sau một khỏang thời gian running, tiến trình P2 xuất hiện. Lúc này, hệ điều hành sẽ ghi lại thông tin của P1 vào thanh PCB1 bao gồm những thông tin: con trỏ, trạng thái của P1, số hiệu của tiến trình P1, Bộ đếm P1, nội dung của P1…Và chuyển P1 sang hàng đợi Waiting và chuyển trạng thái Ready. Lúc này, P2 sẽ được cấp CPU và running. Và sau một khỏang thời gian running, P2 cũng sẽ chuyển sang hàng đợi waiting và chuyển trạng thái ready, lúc này HĐH cũng ghi lại thông tin vào thanh ghi PCB2 như đã làm ở P1. Sau đó, HĐH sẽ load lại thông tin của PCB1 và P1 sẽ tiếp tục running. Quá trình này cũng sẽ lập lại cho P2. Đển khi P1 và P2 kết thúc.
Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái running trên một bộ xử lý
bất kỳ. Trong khi đó, nhiều tiến trình có thể ở trạng thái blocked hay ready.
Các cung chuyển tiếp trong sơ đồ trạng thái biễu diễn sáu sự chuyển trạng thái có thể xảy
ra trong các điều kiện sau :
• Tiến trình mới tạo được đưa vào hệ thống
• Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU
• Tiến trình kết thúc
• Tiến trình yêu cầu một tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó ; hoặc tiến trình phải chờ một sự kiện hay thao tácnhập/xuất.
• Bộ điều phối chọn một tiến trình khác để cho xử lý .
• Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát ; hay sự kiện hoặc thao tác nhập/xuất tiến trình đang đợi hoàn tất.
New: tiến trình đang được tạo lập.
Running: các chỉ thị của tiến trình đang được xử lý.
Blocked: tiến trình chờ được cấp phát một tài nguyên, hay chờ một sự kiện xảy ra .
Ready: tiến trình chờ được cấp phát CPU để xử lý.
Kết thúc: tiến trình hoàn tất xử lý.
Tiến trình P1: vào hàng đợi Job-Queue ở trạng thái New, sẽ đợi 1 khoảng thời gian của quá trình điều phối chậm (Scheduler Long Term) của hệ điều hành(HĐH) để chọn tiến trình, sau khi được O.S chọn, P1 chuyển sang hàng đợi reday quueue và ở trạng thái Ready. Lúc này P1 chỉ đợi cấp CPU và running.
Sau một khỏang thời gian running, tiến trình P2 xuất hiện. Lúc này, hệ điều hành sẽ ghi lại thông tin của P1 vào thanh PCB1 bao gồm những thông tin: con trỏ, trạng thái của P1, số hiệu của tiến trình P1, Bộ đếm P1, nội dung của P1…Và chuyển P1 sang hàng đợi Waiting và chuyển trạng thái Ready. Lúc này, P2 sẽ được cấp CPU và running. Và sau một khỏang thời gian running, P2 cũng sẽ chuyển sang hàng đợi waiting và chuyển trạng thái ready, lúc này HĐH cũng ghi lại thông tin vào thanh ghi PCB2 như đã làm ở P1. Sau đó, HĐH sẽ load lại thông tin của PCB1 và P1 sẽ tiếp tục running. Quá trình này cũng sẽ lập lại cho P2. Đển khi P1 và P2 kết thúc.
Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái running trên một bộ xử lý
bất kỳ. Trong khi đó, nhiều tiến trình có thể ở trạng thái blocked hay ready.
Các cung chuyển tiếp trong sơ đồ trạng thái biễu diễn sáu sự chuyển trạng thái có thể xảy
ra trong các điều kiện sau :
• Tiến trình mới tạo được đưa vào hệ thống
• Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU
• Tiến trình kết thúc
• Tiến trình yêu cầu một tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó ; hoặc tiến trình phải chờ một sự kiện hay thao tácnhập/xuất.
• Bộ điều phối chọn một tiến trình khác để cho xử lý .
• Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát ; hay sự kiện hoặc thao tác nhập/xuất tiến trình đang đợi hoàn tất.
TranThiAnhDao89I12C- Tổng số bài gửi : 25
Join date : 17/02/2012
Phân biệt điều phối chậm vớ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ác tiế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 toàn 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 (đưa sang trạng thái Running).
- 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 cần chuyển sang Running, như vậy 10/(100 10)=9% thời gian CPU để đ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ác tiế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 toàn 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 (đưa sang trạng thái Running).
- 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 cần chuyển sang Running, như vậy 10/(100 10)=9% thời gian CPU để điều phối công việc.
TranThiAnhDao89I12C- Tổng số bài gửi : 25
Join date : 17/02/2012
Trang 1 trong tổng số 15 trang • 1, 2, 3 ... 8 ... 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 1 trong tổng số 15 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết