Thảo luận Bài 4
+74
PhanThanhLiem(I22A)
NguyenVanQuoc (I22B)
HaTrungMinhPhuc(I22B)
NguyenBaoLoc70(I22A)
PhamThiThao (I22B)
phungvanduong24(I12A)
NguyenMinhTuan94(I22A)
NguyenTuHuy(I22A)
ChauQuangCam (I22B)
NguyenCaoTri (I22B)
NguyenKhanhDuy18 (I22B)
TrỉnhToQuyen(I12A)
NguyenVanPhat(I22B)
TranDangKhoa(I22A)
TranQuocLoc(I22A)
LuGiaLam(I22A)
Ng0HaiQuan(i22B)
CAOTHANHLUAN(I22B)
PhamQuocCuong (I22A)
DuongTrungQuan
dangthihoangly(I12A)
truongtph.i11c
NguyenTienDat (I22A)
BuiTrongHung41(I11C)
LeThiKimNgan67(I11C)
luquoctuan(I22A)
QuangMinhTuan(I22B)
NguyenNgocDan(I22B)
TranVanVan(I22A)
HoangThanhThien(I22B)
ToThiMy(I22A)
NguyenThiPhongLan(I22A)
TruongTranThanhTu(I22B)
Dao Duy Thanh(I22B)
NguyenTanDat(I22B)
NguyenVanTu(I22A)
VoMinhThang(I22B)
VoMinhDien(I22B)
HongGiaPhu (I22A)
nguyenthithutrang (I11C)
nguyenvankhoa59(122B)
NguyenThanhTung(I22B)
PhanPhamDanPhuong(I22B)
NguyenVanLanh (I22A)
TranVanDucHieu(I22B)
NguyenManhHuy(I22B)
MaiXuanSon (I22B)
VoDucDiDaiXuan(I22A)
LeVanVan (I22B)
vivanbieu(I22B)
TranThienTam (I22A)
NguyenThiThom(I22A)
TranDacTruong( I22A )
LeSonCa(I22B)
Huynh Xuan Dat(I22A)
TruongNhuNgoc (I22A)
NguyenMinhTam(I22B)
BuiHuuDang(I22B)
BuiThucTuan(I22B)
HongThuanPhong(I22B)
DangQuangBinh(I22B)
dangmonghai(I12A)
TruongMinhTriet(I22B)
HuynhDucQuang(I22B)
NguyenNhatHuy64(I22B)
LeAnhToan48(I22B)
NguyenHoangKimVu (I11C)
NguyenXuanLinh(HLT3)
TranVuSang (I22B)
NgoVanTuyen(I22B)
NguyenHoangThien(I22B)
DoThiHaDuc(I22B)
nguyenhoanglam_I22B
Admin
78 posters
Trang 2 trong tổng số 9 trang
Trang 2 trong tổng số 9 trang • 1, 2, 3, 4, 5, 6, 7, 8, 9
Thầy ơi giải thích giúp em
Hôm qua,thầy có nói về vấn đề tại sao không lấy hết các tiến trình từ trạng thái new sang trạng thái ready,em chưa rõ lắm thầy giải thích lại giúp em với.....
DangQuangBinh(I22B)- Tổng số bài gửi : 20
Join date : 12/03/2013
Age : 34
Đến từ : I22B
Re: Thảo luận Bài 4
xuanlinh đã viết:TruongMinhTriet(I22B) đã viết:Thầy và các bạn cho mình hỏi tại sao code:
Tiến trình Sản Xuất giá trị của in = (in + 1) % BUFFER_SIZE mà không phải là in = in + 1
Tiến trình Tiêu Thụ giá trị của out = (out + 1) % BUFFER_SIZE mà không phải là out = out + 1
Cảm ơn thầy và các bạn đã giải đáp.
Vì nếu in=in+1 hay out=out+1 như thế sẽ lớn hơn kích thước BUFFER_SIZE. Như vậy là vượt quá phạm vi nhớ. Nên cần phải viết là in = (in + 1) % BUFFER_SIZE để lúc in hay out chạy đến ô nhớ cuối cùng thì quay trở lại vị trí đầu tiên là 0
Admin
Lần này, nhiều bạn giỏi hơn các khoá trước đấy !
Cảm ơn về lời giải thích của bạn nhưng theo mình sau khi tăng "in" hay "out" lên 1 thì mình có thể kiểm tra giá trị của "in" hoặc "out" có lớn hơn BUFFER_SIZE hay ko sau đó mình chạy lại lặp củng đc mà, có nhất thiết phải in = (in + 1) % BUFFER_SIZE or out = (out + 1) % BUFFER_SIZE ????
TruongMinhTriet(I22B)- Tổng số bài gửi : 13
Join date : 11/03/2013
Re: Thảo luận Bài 4
Có ba tuyến thời gian, dành cho 3 thực thể trong máy tính : P0, P1 và Operating system(thực thể điều phối).
Tuyến thời gian công việc của P0 xuất phát, thời gian từ trên xuống, phía trên là sớm hơn, phía dưới là muộn hơn. Giả sử lúc 8h sáng tiến trình P0 bắt đầu khởi động, nó chạy đến 8h5 thì ngắt hoặc là lời gọi hệ thống xảy ra thì nó không được chạy nữa, lúc này HĐH bắt được tín hiệu và nó phải xử lý sự kiện đó, CPU lúc này sẽ dành cho tiến trình HĐH, và việc của HĐH là “save state into PCB0” có nghĩa là ghi trạng thái của P0 vào PCB0, PCB0 chính là khối kiểm soát tiến trình dành cho P0, tiếp theo HĐH lại lấy trạng thái lại từ PCB1 “reload state from PCB1” nạp lại trạng thái của PCB1 mà PCB1 chứa trạng thái của P1 và lúc này P1 sẽ được chạy và P0 không được chạy nữa. Đến khoảng 8h10, sau khi khôi phục lại được trạng thái thì P1 sẽ được chạy tiếp cho đến 8h15 phút. Đến 8h15 phút thì P1 không được chạy nữa do nhu cầu về xử lý ngắt “interrupt or system call” phát ra từ P1, lúc này HĐH sẽ tiến hành ghi trạng thái của P1 vào PCB1, sau đó khôi phục trạng thái hệ thống từ PCB0 để P0 lại được chạy tiếp. Lúc này 8h20 thì P0 lại được chạy tiếp.
VD: Thầy(operating system) mời 2 bạn A và B lên bảng làm lại bài tập của ngày hôm qua và bạn A lên làm trước. Mỗi bạn có 5 phút để làm bài, trước khi bạn A lên làm tiếp bài tập của A ngày hôm qua thì thầy cần 5 phút để ghi lại trạng thái mà bạn A đã làm được ngày hôm qua lên bảng, sau đó A lên bảng làm tiếp phần bài của mình, khi A làm được 5 phút thì hết thời gian, lúc này thầy sẽ ghi nhận lại kết quả mà A đã làm thêm được và thầy xóa bảng đi cho A về chỗ và gọi B lên làm tiếp bài của B ngày hôm qua và thầy cũng cần 5 phút để ghi lại trạng thái mà B đã làm được ngày hôm qua lên bảng và lúc này thầy xóa đi hết kết quả mà A đã làm nãy giờ để B làm tiếp phần bài tập của B sau khi thầy đã ghi xong trạng thái làm việc của B ngày hôm qua lên bảng, cứ thế xoay vòng.
Thật tiếc là mình không biết cách làm cho hình nó nhỏ lại, có bạn nào biết chỉ mình với.
Mong các bạn đóng góp ý kiến thêm.
Admin
- Thày cần đến 5 phút để ghi "trạng thái" của mỗi bạn thì hơi "lâu" quá ! Chắc phải chụp ảnh cho nhanh.
- Thày ghi trạng thái vào đâu ?[/quote]
Theo em:
Thầy sẽ ghi lại trạng thái của bạn A và B vào sổ (PCB) để lưu lại trang thái A và B.
Tuyến thời gian công việc của P0 xuất phát, thời gian từ trên xuống, phía trên là sớm hơn, phía dưới là muộn hơn. Giả sử lúc 8h sáng tiến trình P0 bắt đầu khởi động, nó chạy đến 8h5 thì ngắt hoặc là lời gọi hệ thống xảy ra thì nó không được chạy nữa, lúc này HĐH bắt được tín hiệu và nó phải xử lý sự kiện đó, CPU lúc này sẽ dành cho tiến trình HĐH, và việc của HĐH là “save state into PCB0” có nghĩa là ghi trạng thái của P0 vào PCB0, PCB0 chính là khối kiểm soát tiến trình dành cho P0, tiếp theo HĐH lại lấy trạng thái lại từ PCB1 “reload state from PCB1” nạp lại trạng thái của PCB1 mà PCB1 chứa trạng thái của P1 và lúc này P1 sẽ được chạy và P0 không được chạy nữa. Đến khoảng 8h10, sau khi khôi phục lại được trạng thái thì P1 sẽ được chạy tiếp cho đến 8h15 phút. Đến 8h15 phút thì P1 không được chạy nữa do nhu cầu về xử lý ngắt “interrupt or system call” phát ra từ P1, lúc này HĐH sẽ tiến hành ghi trạng thái của P1 vào PCB1, sau đó khôi phục trạng thái hệ thống từ PCB0 để P0 lại được chạy tiếp. Lúc này 8h20 thì P0 lại được chạy tiếp.
VD: Thầy(operating system) mời 2 bạn A và B lên bảng làm lại bài tập của ngày hôm qua và bạn A lên làm trước. Mỗi bạn có 5 phút để làm bài, trước khi bạn A lên làm tiếp bài tập của A ngày hôm qua thì thầy cần 5 phút để ghi lại trạng thái mà bạn A đã làm được ngày hôm qua lên bảng, sau đó A lên bảng làm tiếp phần bài của mình, khi A làm được 5 phút thì hết thời gian, lúc này thầy sẽ ghi nhận lại kết quả mà A đã làm thêm được và thầy xóa bảng đi cho A về chỗ và gọi B lên làm tiếp bài của B ngày hôm qua và thầy cũng cần 5 phút để ghi lại trạng thái mà B đã làm được ngày hôm qua lên bảng và lúc này thầy xóa đi hết kết quả mà A đã làm nãy giờ để B làm tiếp phần bài tập của B sau khi thầy đã ghi xong trạng thái làm việc của B ngày hôm qua lên bảng, cứ thế xoay vòng.
Thật tiếc là mình không biết cách làm cho hình nó nhỏ lại, có bạn nào biết chỉ mình với.
Mong các bạn đóng góp ý kiến thêm.
Admin
- Thày cần đến 5 phút để ghi "trạng thái" của mỗi bạn thì hơi "lâu" quá ! Chắc phải chụp ảnh cho nhanh.
- Thày ghi trạng thái vào đâu ?[/quote]
Theo em:
Thầy sẽ ghi lại trạng thái của bạn A và B vào sổ (PCB) để lưu lại trang thái A và B.
HongThuanPhong(I22B)- Tổng số bài gửi : 6
Join date : 12/03/2013
Re: Thảo luận Bài 4
in là in tại vị trí ,ví dụ BUFFER_SIZE =10 có vị trí từ 0 đến 9,nên mình sẽ dùng in =(in +1)% BUFFER_SIZE,tương tự out cũng vậyTruongMinhTriet(I22B) đã viết:xuanlinh đã viết:TruongMinhTriet(I22B) đã viết:Thầy và các bạn cho mình hỏi tại sao code:
Tiến trình Sản Xuất giá trị của in = (in + 1) % BUFFER_SIZE mà không phải là in = in + 1
Tiến trình Tiêu Thụ giá trị của out = (out + 1) % BUFFER_SIZE mà không phải là out = out + 1
Cảm ơn thầy và các bạn đã giải đáp.
Vì nếu in=in+1 hay out=out+1 như thế sẽ lớn hơn kích thước BUFFER_SIZE. Như vậy là vượt quá phạm vi nhớ. Nên cần phải viết là in = (in + 1) % BUFFER_SIZE để lúc in hay out chạy đến ô nhớ cuối cùng thì quay trở lại vị trí đầu tiên là 0
Admin
Lần này, nhiều bạn giỏi hơn các khoá trước đấy !
Cảm ơn về lời giải thích của bạn nhưng theo mình sau khi tăng "in" hay "out" lên 1 thì mình có thể kiểm tra giá trị của "in" hoặc "out" có lớn hơn BUFFER_SIZE hay ko sau đó mình chạy lại lặp củng đc mà, có nhất thiết phải in = (in + 1) % BUFFER_SIZE or out = (out + 1) % BUFFER_SIZE ????
DangQuangBinh(I22B)- Tổng số bài gửi : 20
Join date : 12/03/2013
Age : 34
Đến từ : I22B
Re: Thảo luận Bài 4
TruongMinhTriet(I22B) đã viết:xuanlinh đã viết:TruongMinhTriet(I22B) đã viết:Thầy và các bạn cho mình hỏi tại sao code:
Tiến trình Sản Xuất giá trị của in = (in + 1) % BUFFER_SIZE mà không phải là in = in + 1
Tiến trình Tiêu Thụ giá trị của out = (out + 1) % BUFFER_SIZE mà không phải là out = out + 1
Cảm ơn thầy và các bạn đã giải đáp.
Vì nếu in=in+1 hay out=out+1 như thế sẽ lớn hơn kích thước BUFFER_SIZE. Như vậy là vượt quá phạm vi nhớ. Nên cần phải viết là in = (in + 1) % BUFFER_SIZE để lúc in hay out chạy đến ô nhớ cuối cùng thì quay trở lại vị trí đầu tiên là 0
Admin
Lần này, nhiều bạn giỏi hơn các khoá trước đấy !
Cảm ơn về lời giải thích của bạn nhưng theo mình sau khi tăng "in" hay "out" lên 1 thì mình có thể kiểm tra giá trị của "in" hoặc "out" có lớn hơn BUFFER_SIZE hay ko sau đó mình chạy lại lặp củng đc mà, có nhất thiết phải in = (in + 1) % BUFFER_SIZE or out = (out + 1) % BUFFER_SIZE ????
Theo mình nghĩ nếu tăng lên 1 sau đó viết thêm code kiểm tra là không cần thiết và dài dòng.Ví dụ Buffer=10,in =9+1 tương đương buffer.tới đây kiểm tra thấy in=buffer bạn sẽ trỏ in về vị trí đầu đúng không.trong khi đó ta %(modulo) cho buffer thì sẽ không cần phải so sánh và trỏ về vị trí đầu tiên làm gì.Mình hiểu vậy,có gì sai mong các bạn chỉ giáo nhé.À cái này hình như giống thuật toán thêm phần tử vô hàng đợi(queue)khi hàng đợi bị tràn thì phải đó,mình không nhớ rõ lắm.
LeAnhToan48(I22B)- Tổng số bài gửi : 38
Join date : 08/03/2013
Re: Thảo luận Bài 4
Làm như cách bạn nói cũng đc. Nhưng như thế chương trình lại phải làm thêm 1 lệnh so sánh - > tăng độ phức tạp của giải thuật -> tăng thời gian xử lý.TruongMinhTriet(I22B) đã viết:xuanlinh đã viết:TruongMinhTriet(I22B) đã viết:Thầy và các bạn cho mình hỏi tại sao code:
Tiến trình Sản Xuất giá trị của in = (in + 1) % BUFFER_SIZE mà không phải là in = in + 1
Tiến trình Tiêu Thụ giá trị của out = (out + 1) % BUFFER_SIZE mà không phải là out = out + 1
Cảm ơn thầy và các bạn đã giải đáp.
Vì nếu in=in+1 hay out=out+1 như thế sẽ lớn hơn kích thước BUFFER_SIZE. Như vậy là vượt quá phạm vi nhớ. Nên cần phải viết là in = (in + 1) % BUFFER_SIZE để lúc in hay out chạy đến ô nhớ cuối cùng thì quay trở lại vị trí đầu tiên là 0
Admin
Lần này, nhiều bạn giỏi hơn các khoá trước đấy !
Cảm ơn về lời giải thích của bạn nhưng theo mình sau khi tăng "in" hay "out" lên 1 thì mình có thể kiểm tra giá trị của "in" hoặc "out" có lớn hơn BUFFER_SIZE hay ko sau đó mình chạy lại lặp củng đc mà, có nhất thiết phải in = (in + 1) % BUFFER_SIZE or out = (out + 1) % BUFFER_SIZE ????
Trên là cách viết để làm giảm tối đa độ phức tạp và giảm thời gian để xử lý.
Mô hình chuyển trạng thái của tiến trình
1. khái niệm tiến trình
Tiến trình (Process): chương trình đang thực hiện
- Mỗi tiến trình có một tập tài nguyên và môi trường
riêng (con trỏ lệnh, Stack, thanh ghi, không gian địa chỉ)
- Các tiến trình độc lập với nhau, chúng có thể
liên lạc thông qua các cơ chế truyền tin giữa các tiến trình.
2. khái niệm trạng thái tiến trình
Tại một thời điểm, một tiến trinh có thể nhận một trong các trạng thái sau:
- Mới tạo: tiến trình đang được tạo lập.
- Running: tiến trình đang được xử lý.
- Ready: tiến trình đang sẵn sàng, chờ cấp CPU để xử lý
- waiting: tiến trình bị chặn, không thể tiếp tục.
- Kết thúc: tiến trình hoàn tất xử lý.
3. khối kiểm soát tiến trình
HĐH quản lý tiến trình thông qua khối quản lý tiến trình (Process Control Block:PCB)
PCB: vùng nhớ lưu trữ các thông tin mô tả cho tiếntrình như:
1. Định danh của tiến trình: phân biệt giữa các tiến
trình.
2. Trạng thái tiến trình: hoạt động hiện hành của tiến trình.
3. Ngữ cảnh của tiến trình: mô tả tài nguyên của tiến trình đang sở hữu, bao gồm:
- Trạng thái CPU: gồm nội dung các thanh ghi, con trỏ lệnh (IP) lưu trữ địa chỉ câu lệnh kế tiếp . Lưu trữ nội dung thanh ghi khi xảy ra ngắt.
- Bộ xử lý: xác định số hiệu CPU mà tiến trình đang sử dụng (máy có cấu hình nhiều CPU).
- Bộ nhớ chính: danh sách các vùng nhớ được cấp cho tiến trình.
- Tài nguyên sử dụng: danh sách các tài nguyê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.
4. Thông tin giao tiếp:
- 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 ra
- Độ ưu tiên: thông tin giúp bộ điều phối lựa chọn tiến trình được cấp CPU
5. Thông tin thống kê: là những thông tin về hoạt động của tiến trình như thời gian sử dụng CPU, thời gian chờ
Tiến trình (Process): chương trình đang thực hiện
- Mỗi tiến trình có một tập tài nguyên và môi trường
riêng (con trỏ lệnh, Stack, thanh ghi, không gian địa chỉ)
- Các tiến trình độc lập với nhau, chúng có thể
liên lạc thông qua các cơ chế truyền tin giữa các tiến trình.
2. khái niệm trạng thái tiến trình
Tại một thời điểm, một tiến trinh có thể nhận một trong các trạng thái sau:
- Mới tạo: tiến trình đang được tạo lập.
- Running: tiến trình đang được xử lý.
- Ready: tiến trình đang sẵn sàng, chờ cấp CPU để xử lý
- waiting: tiến trình bị chặn, không thể tiếp tục.
- Kết thúc: tiến trình hoàn tất xử lý.
3. khối kiểm soát tiến trình
HĐH quản lý tiến trình thông qua khối quản lý tiến trình (Process Control Block:PCB)
PCB: vùng nhớ lưu trữ các thông tin mô tả cho tiếntrình như:
1. Định danh của tiến trình: phân biệt giữa các tiến
trình.
2. Trạng thái tiến trình: hoạt động hiện hành của tiến trình.
3. Ngữ cảnh của tiến trình: mô tả tài nguyên của tiến trình đang sở hữu, bao gồm:
- Trạng thái CPU: gồm nội dung các thanh ghi, con trỏ lệnh (IP) lưu trữ địa chỉ câu lệnh kế tiếp . Lưu trữ nội dung thanh ghi khi xảy ra ngắt.
- Bộ xử lý: xác định số hiệu CPU mà tiến trình đang sử dụng (máy có cấu hình nhiều CPU).
- Bộ nhớ chính: danh sách các vùng nhớ được cấp cho tiến trình.
- Tài nguyên sử dụng: danh sách các tài nguyê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.
4. Thông tin giao tiếp:
- 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 ra
- Độ ưu tiên: thông tin giúp bộ điều phối lựa chọn tiến trình được cấp CPU
5. Thông tin thống kê: là những thông tin về hoạt động của tiến trình như thời gian sử dụng CPU, thời gian chờ
BuiThucTuan(I22B)- Tổng số bài gửi : 14
Join date : 09/03/2013
Age : 34
Câu 4: Trình bày những 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 chương trình nó sẽ bao gồm nhiều tiến trình bên trong, chúng sẽ phối hợp cộng tác với nhau thì hiệu quả sẽ tốt hơn là chỉ 1 tiến trình làm việc đơn lẽ. Tiến trình này sẽ cung cấp thông tin cho tiến trình kia thực hiện.
VD: Khi họp nhóm để giải quyết một bài học khó chẳng hạng, ví dụ nhóm có 10 bạn, mỗi bạn học chủ yếu 1 phần sau đó họp lại và cùng chia sẽ những kinh nghiệm mà mình học được cho những bạn khác và học hỏi những kinh nghiệm của những bạn khác thì kiến thức sẽ phong phú hơn là tự học tất cả.
_Tăng tốc tính toán(Computation Speedup): do có nhiều tiến trình cùng làm việc như vậy thì tiến trình này làm việc này thì tiến trình khác làm việc khác và luân phiên nhau sử dụng CPU thì tốc độ hoàn thành công việc sẽ nhanh hơn.
VD: Trong bữa cơm gia đình của 1 gia đình có 4 người, nếu chỉ có 1 người vừa nấu cơm, nấu canh, kho cá, luột rau… thì bữa cơm sẽ lâu hoàn thành hơn là mỗi người làm 1 việc, và luân phiên nhau sử dụng bếp lửa(CPU).
_Đảm bảo tính đơn thể(Modularity): mỗi 1 tiến trình chỉ làm 1 chức năng riêng,tách biệt những chức năng của hệ thống thành nhiều chức năng riêng, để mỗi tiến trình làm 1 chức năng thì sẽ hiệu quả hơn là 1 tiến trình làm tất cả, đảm bảo tính đúng đắn và hiệu quả của công việc.
VD: Một công ty có các phòng ban: kinh doanh, marketing, nhân sự…thì nhân viên marketing sẽ bán hàng giỏi hơn nhân viên phòng kinh doanh và nhân sự, và nhân viên phòng nhân sự thì quản lý các giấy tờ sổ sách liên quan đến nhân viên tốt hơn là marketing và kinh doanh, và kinh doanh thì lại giỏi hơn nhân viên 2 phòng còn lại trong việc đàm phán và tìm ra giải pháp kinh doanh tốt hơn( tìm địa điểm tiêu thụ hàng hóa, đàm phán giá cả…)
_Đảm bảo tính tiện dụng(Convenience): người dùng có nhu cầu làm nhiều việc cùng 1 lúc: soạn thảo, in ấn, duyệt web,… nếu chúng ta có thể xây dựng hệ thống đáp ứng được nhu cầu của người dùng thì người dùng sẽ thích sử dụng hệ thống của chúng ta hơn
VD: Khi họp nhóm để giải quyết một bài học khó chẳng hạng, ví dụ nhóm có 10 bạn, mỗi bạn học chủ yếu 1 phần sau đó họp lại và cùng chia sẽ những kinh nghiệm mà mình học được cho những bạn khác và học hỏi những kinh nghiệm của những bạn khác thì kiến thức sẽ phong phú hơn là tự học tất cả.
_Tăng tốc tính toán(Computation Speedup): do có nhiều tiến trình cùng làm việc như vậy thì tiến trình này làm việc này thì tiến trình khác làm việc khác và luân phiên nhau sử dụng CPU thì tốc độ hoàn thành công việc sẽ nhanh hơn.
VD: Trong bữa cơm gia đình của 1 gia đình có 4 người, nếu chỉ có 1 người vừa nấu cơm, nấu canh, kho cá, luột rau… thì bữa cơm sẽ lâu hoàn thành hơn là mỗi người làm 1 việc, và luân phiên nhau sử dụng bếp lửa(CPU).
_Đảm bảo tính đơn thể(Modularity): mỗi 1 tiến trình chỉ làm 1 chức năng riêng,tách biệt những chức năng của hệ thống thành nhiều chức năng riêng, để mỗi tiến trình làm 1 chức năng thì sẽ hiệu quả hơn là 1 tiến trình làm tất cả, đảm bảo tính đúng đắn và hiệu quả của công việc.
VD: Một công ty có các phòng ban: kinh doanh, marketing, nhân sự…thì nhân viên marketing sẽ bán hàng giỏi hơn nhân viên phòng kinh doanh và nhân sự, và nhân viên phòng nhân sự thì quản lý các giấy tờ sổ sách liên quan đến nhân viên tốt hơn là marketing và kinh doanh, và kinh doanh thì lại giỏi hơn nhân viên 2 phòng còn lại trong việc đàm phán và tìm ra giải pháp kinh doanh tốt hơn( tìm địa điểm tiêu thụ hàng hóa, đàm phán giá cả…)
_Đảm bảo tính tiện dụng(Convenience): người dùng có nhu cầu làm nhiều việc cùng 1 lúc: soạn thảo, in ấn, duyệt web,… nếu chúng ta có thể xây dựng hệ thống đáp ứng được nhu cầu của người dùng thì người dùng sẽ thích sử dụng hệ thống của chúng ta hơn
TranVuSang (I22B)- Tổng số bài gửi : 53
Join date : 09/03/2013
Age : 35
Re: Thảo luận Bài 4
theo em là PCBTranVuSang (I22B) đã viết:
Có ba tuyến thời gian, dành cho 3 thực thể trong máy tính : P0, P1 và Operating system(thực thể điều phối).
Tuyến thời gian công việc của P0 xuất phát, thời gian từ trên xuống, phía trên là sớm hơn, phía dưới là muộn hơn. Giả sử lúc 8h sáng tiến trình P0 bắt đầu khởi động, nó chạy đến 8h5 thì ngắt hoặc là lời gọi hệ thống xảy ra thì nó không được chạy nữa, lúc này HĐH bắt được tín hiệu và nó phải xử lý sự kiện đó, CPU lúc này sẽ dành cho tiến trình HĐH, và việc của HĐH là “save state into PCB0” có nghĩa là ghi trạng thái của P0 vào PCB0, PCB0 chính là khối kiểm soát tiến trình dành cho P0, tiếp theo HĐH lại lấy trạng thái lại từ PCB1 “reload state from PCB1” nạp lại trạng thái của PCB1 mà PCB1 chứa trạng thái của P1 và lúc này P1 sẽ được chạy và P0 không được chạy nữa. Đến khoảng 8h10, sau khi khôi phục lại được trạng thái thì P1 sẽ được chạy tiếp cho đến 8h15 phút. Đến 8h15 phút thì P1 không được chạy nữa do nhu cầu về xử lý ngắt “interrupt or system call” phát ra từ P1, lúc này HĐH sẽ tiến hành ghi trạng thái của P1 vào PCB1, sau đó khôi phục trạng thái hệ thống từ PCB0 để P0 lại được chạy tiếp. Lúc này 8h20 thì P0 lại được chạy tiếp.
VD: Thầy(operating system) mời 2 bạn A và B lên bảng làm lại bài tập của ngày hôm qua và bạn A lên làm trước. Mỗi bạn có 5 phút để làm bài, trước khi bạn A lên làm tiếp bài tập của A ngày hôm qua thì thầy cần 5 phút để ghi lại trạng thái mà bạn A đã làm được ngày hôm qua lên bảng, sau đó A lên bảng làm tiếp phần bài của mình, khi A làm được 5 phút thì hết thời gian, lúc này thầy sẽ ghi nhận lại kết quả mà A đã làm thêm được và thầy xóa bảng đi cho A về chỗ và gọi B lên làm tiếp bài của B ngày hôm qua và thầy cũng cần 5 phút để ghi lại trạng thái mà B đã làm được ngày hôm qua lên bảng và lúc này thầy xóa đi hết kết quả mà A đã làm nãy giờ để B làm tiếp phần bài tập của B sau khi thầy đã ghi xong trạng thái làm việc của B ngày hôm qua lên bảng, cứ thế xoay vòng.
Admin
- Thày cần đến 5 phút để ghi "trạng thái" của mỗi bạn thì hơi "lâu" quá ! Chắc phải chụp ảnh cho nhanh.
- Thày ghi trạng thái vào đâu ?
Admin
PCB là với trường hợp máy tính.
TranVuSang (I22B)- Tổng số bài gửi : 53
Join date : 09/03/2013
Age : 35
Câu 1: Lý do tại sao phải quản lý tiến trình ,trình bày mô hình chuyển trạng thái của tiến trình(khái niệm tiến trình,sơ đồ chuyển trạng thái tiến trình,khối kiểm soát tiến trình PCB)
1. Mô hình tiến trình:
- Để hổ trợ sự đa chương, máy tính phải có khả năng nhiều tác vụ cùng 1 lúc.
- Tuy nhiên, việc điều khiển nhiều hoạt động song song ở cấp độ phần cứng là rất khó khăn.
- Vì thế, các nhà thiết kế hệ điều hành đề xuất 1 mô hình song song giả lập bằng cách chuyển đổi bộ xử lý qua lại giữa các chương trình để duy trì hoạt động giữa chương trình cùng 1 lúc.
- Điều này , tạo cảm giác có nhiều cảm giác được thực hiện đồng thời.
- Tất cả các phần mềm trong hệ thống, được tổ chức thành 1 số những tiến trình.
- Tiến trình là 1 chương trình đang xử lý sỡ hữu 1 con trỏ lệnh, 1 tập các thanh ghi và các biến.
- Một tiến trình có thể cần đến 1 số tài nguyên như sau: CPU ; Bộ nhớ chính ; Các tập tin và thiết bị nhập xuất.
2. Các trạng thái của tiến trình:
- Tại 1 thời điểm tiến trình có thể nhận 1 trong những các trạng thái sau:
- Mới tạo đang được tiến trình tạo lập.
- Running các chỉ thị của tiến trình đang được xử lý.
- Block tiến trình chờ được cấp phát CPU để xử lý .
- Kết thúc là 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 1 bộ xử lý bất kỳ. Trong khi đó, nhiều tiến trình khác có thể ở trạng thái Block hoặc Ready.
Bước 1: Tiến trình mới được đưa vào hệ thống.
Bước 2: Bộ điều phối cấp phát cho tiến trình 1 khoảng thời gian sử dụng cho CPU.
Bước 3: Tiến trình kết thúc.
Bước 4: 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 1 sự kiện hay thao tác nhập và xuất.
Bước 5: Bộ điều phối chọn 1 tiến trình khác để cho xử lý.
Bước 6: Tài nguyên mà tiến trình yêu cầu đã sẵn sàng để cấp phát hoặc sự kiện, thao tác nhập xuất đang được tiến trình hoàn tất.
3. Điều phối tiến trình:
1) - Mục tiêu: Mục tiêu của hệ phân chia thời gian là chuyển đổi CPU qua lại giữa các tiến trình 1 cách thường xuyên để nhiều người sử dụng có thể tương tác cùng 1 lúc với từng chương trình trong quá trình xử lý.
- Như vậy, bộ điều phối sẽ sử dụng 1 giải thuật để lựa chọn tiến trình được xử lý tiếp theo.
a)- Sự công bằng: Các tiến trình chia sẻ CPU 1 cách công bằng, không có tiến trình nào chờ đợi vô hạn để được cấp CPU.
b)- Tính hiệu quả: Hệ thống phải tận dụng CPU 100% thời gian.
c)- Thời gian đáp ứng hợp lí: 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: Cực tiểu hoá thời gian hoàn tất các tác dụng xử lí theo lô.
e)- Thông lượng tối đa: Cực đại hoá số công việc được xử lý trong 1 đơn vị thời gian.
2)- Các đặc điểm của tiến trình
a) Tính hướng xuất nhập của tiến trình.
b) Tính hướng xử lý của tiến trình.
c) Tiến trình tương tác hay xử lí theo lô.
d) Độ ưu tiên của tiến trình.
e) Thời gian đã sử dụng CPU của tiến trình.
f) Thời gian còn lại tiến trình cần để hoàn tất.
Còn sai sót chỗ nào muôn Thầy và các bạn bổ sung và góp ý.Thanks
- Để hổ trợ sự đa chương, máy tính phải có khả năng nhiều tác vụ cùng 1 lúc.
- Tuy nhiên, việc điều khiển nhiều hoạt động song song ở cấp độ phần cứng là rất khó khăn.
- Vì thế, các nhà thiết kế hệ điều hành đề xuất 1 mô hình song song giả lập bằng cách chuyển đổi bộ xử lý qua lại giữa các chương trình để duy trì hoạt động giữa chương trình cùng 1 lúc.
- Điều này , tạo cảm giác có nhiều cảm giác được thực hiện đồng thời.
- Tất cả các phần mềm trong hệ thống, được tổ chức thành 1 số những tiến trình.
- Tiến trình là 1 chương trình đang xử lý sỡ hữu 1 con trỏ lệnh, 1 tập các thanh ghi và các biến.
- Một tiến trình có thể cần đến 1 số tài nguyên như sau: CPU ; Bộ nhớ chính ; Các tập tin và thiết bị nhập xuất.
2. Các trạng thái của tiến trình:
- Tại 1 thời điểm tiến trình có thể nhận 1 trong những các trạng thái sau:
- Mới tạo đang được tiến trình tạo lập.
- Running các chỉ thị của tiến trình đang được xử lý.
- Block tiến trình chờ được cấp phát CPU để xử lý .
- Kết thúc là 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 1 bộ xử lý bất kỳ. Trong khi đó, nhiều tiến trình khác có thể ở trạng thái Block hoặc Ready.
Bước 1: Tiến trình mới được đưa vào hệ thống.
Bước 2: Bộ điều phối cấp phát cho tiến trình 1 khoảng thời gian sử dụng cho CPU.
Bước 3: Tiến trình kết thúc.
Bước 4: 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 1 sự kiện hay thao tác nhập và xuất.
Bước 5: Bộ điều phối chọn 1 tiến trình khác để cho xử lý.
Bước 6: Tài nguyên mà tiến trình yêu cầu đã sẵn sàng để cấp phát hoặc sự kiện, thao tác nhập xuất đang được tiến trình hoàn tất.
3. Điều phối tiến trình:
1) - Mục tiêu: Mục tiêu của hệ phân chia thời gian là chuyển đổi CPU qua lại giữa các tiến trình 1 cách thường xuyên để nhiều người sử dụng có thể tương tác cùng 1 lúc với từng chương trình trong quá trình xử lý.
- Như vậy, bộ điều phối sẽ sử dụng 1 giải thuật để lựa chọn tiến trình được xử lý tiếp theo.
a)- Sự công bằng: Các tiến trình chia sẻ CPU 1 cách công bằng, không có tiến trình nào chờ đợi vô hạn để được cấp CPU.
b)- Tính hiệu quả: Hệ thống phải tận dụng CPU 100% thời gian.
c)- Thời gian đáp ứng hợp lí: 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: Cực tiểu hoá thời gian hoàn tất các tác dụng xử lí theo lô.
e)- Thông lượng tối đa: Cực đại hoá số công việc được xử lý trong 1 đơn vị thời gian.
2)- Các đặc điểm của tiến trình
a) Tính hướng xuất nhập của tiến trình.
b) Tính hướng xử lý của tiến trình.
c) Tiến trình tương tác hay xử lí theo lô.
d) Độ ưu tiên của tiến trình.
e) Thời gian đã sử dụng CPU của tiến trình.
f) Thời gian còn lại tiến trình cần để hoàn tất.
Còn sai sót chỗ nào muôn Thầy và các bạn bổ sung và góp ý.Thanks
Được sửa bởi BuiHuuDang(I22B) ngày 20/3/2013, 10:37; sửa lần 1.
BuiHuuDang(I22B)- Tổng số bài gửi : 14
Join date : 13/03/2013
Re: Thảo luận Bài 4
vậy em nghĩ nó nằm trong thẻ nhớ của máy chụp ảnh ạh. Sau đó thầy có thể chuyển nó sang máy tính và chiếu lên bản khi A hoặc B lên bản làm tiếp.TranVuSang (I22B) đã viết:theo em là PCBTranVuSang (I22B) đã viết:
Có ba tuyến thời gian, dành cho 3 thực thể trong máy tính : P0, P1 và Operating system(thực thể điều phối).
Tuyến thời gian công việc của P0 xuất phát, thời gian từ trên xuống, phía trên là sớm hơn, phía dưới là muộn hơn. Giả sử lúc 8h sáng tiến trình P0 bắt đầu khởi động, nó chạy đến 8h5 thì ngắt hoặc là lời gọi hệ thống xảy ra thì nó không được chạy nữa, lúc này HĐH bắt được tín hiệu và nó phải xử lý sự kiện đó, CPU lúc này sẽ dành cho tiến trình HĐH, và việc của HĐH là “save state into PCB0” có nghĩa là ghi trạng thái của P0 vào PCB0, PCB0 chính là khối kiểm soát tiến trình dành cho P0, tiếp theo HĐH lại lấy trạng thái lại từ PCB1 “reload state from PCB1” nạp lại trạng thái của PCB1 mà PCB1 chứa trạng thái của P1 và lúc này P1 sẽ được chạy và P0 không được chạy nữa. Đến khoảng 8h10, sau khi khôi phục lại được trạng thái thì P1 sẽ được chạy tiếp cho đến 8h15 phút. Đến 8h15 phút thì P1 không được chạy nữa do nhu cầu về xử lý ngắt “interrupt or system call” phát ra từ P1, lúc này HĐH sẽ tiến hành ghi trạng thái của P1 vào PCB1, sau đó khôi phục trạng thái hệ thống từ PCB0 để P0 lại được chạy tiếp. Lúc này 8h20 thì P0 lại được chạy tiếp.
VD: Thầy(operating system) mời 2 bạn A và B lên bảng làm lại bài tập của ngày hôm qua và bạn A lên làm trước. Mỗi bạn có 5 phút để làm bài, trước khi bạn A lên làm tiếp bài tập của A ngày hôm qua thì thầy cần 5 phút để ghi lại trạng thái mà bạn A đã làm được ngày hôm qua lên bảng, sau đó A lên bảng làm tiếp phần bài của mình, khi A làm được 5 phút thì hết thời gian, lúc này thầy sẽ ghi nhận lại kết quả mà A đã làm thêm được và thầy xóa bảng đi cho A về chỗ và gọi B lên làm tiếp bài của B ngày hôm qua và thầy cũng cần 5 phút để ghi lại trạng thái mà B đã làm được ngày hôm qua lên bảng và lúc này thầy xóa đi hết kết quả mà A đã làm nãy giờ để B làm tiếp phần bài tập của B sau khi thầy đã ghi xong trạng thái làm việc của B ngày hôm qua lên bảng, cứ thế xoay vòng.
Admin
- Thày cần đến 5 phút để ghi "trạng thái" của mỗi bạn thì hơi "lâu" quá ! Chắc phải chụp ảnh cho nhanh.
- Thày ghi trạng thái vào đâu ?
Admin
PCB là với trường hợp máy tính.
TranVuSang (I22B)- Tổng số bài gửi : 53
Join date : 09/03/2013
Age : 35
Re: Thảo luận Bài 4
Theo em là thầy ghi nhớ vào não.TranVuSang (I22B) đã viết:theo em là PCBTranVuSang (I22B) đã viết:
Có ba tuyến thời gian, dành cho 3 thực thể trong máy tính : P0, P1 và Operating system(thực thể điều phối).
Tuyến thời gian công việc của P0 xuất phát, thời gian từ trên xuống, phía trên là sớm hơn, phía dưới là muộn hơn. Giả sử lúc 8h sáng tiến trình P0 bắt đầu khởi động, nó chạy đến 8h5 thì ngắt hoặc là lời gọi hệ thống xảy ra thì nó không được chạy nữa, lúc này HĐH bắt được tín hiệu và nó phải xử lý sự kiện đó, CPU lúc này sẽ dành cho tiến trình HĐH, và việc của HĐH là “save state into PCB0” có nghĩa là ghi trạng thái của P0 vào PCB0, PCB0 chính là khối kiểm soát tiến trình dành cho P0, tiếp theo HĐH lại lấy trạng thái lại từ PCB1 “reload state from PCB1” nạp lại trạng thái của PCB1 mà PCB1 chứa trạng thái của P1 và lúc này P1 sẽ được chạy và P0 không được chạy nữa. Đến khoảng 8h10, sau khi khôi phục lại được trạng thái thì P1 sẽ được chạy tiếp cho đến 8h15 phút. Đến 8h15 phút thì P1 không được chạy nữa do nhu cầu về xử lý ngắt “interrupt or system call” phát ra từ P1, lúc này HĐH sẽ tiến hành ghi trạng thái của P1 vào PCB1, sau đó khôi phục trạng thái hệ thống từ PCB0 để P0 lại được chạy tiếp. Lúc này 8h20 thì P0 lại được chạy tiếp.
VD: Thầy(operating system) mời 2 bạn A và B lên bảng làm lại bài tập của ngày hôm qua và bạn A lên làm trước. Mỗi bạn có 5 phút để làm bài, trước khi bạn A lên làm tiếp bài tập của A ngày hôm qua thì thầy cần 5 phút để ghi lại trạng thái mà bạn A đã làm được ngày hôm qua lên bảng, sau đó A lên bảng làm tiếp phần bài của mình, khi A làm được 5 phút thì hết thời gian, lúc này thầy sẽ ghi nhận lại kết quả mà A đã làm thêm được và thầy xóa bảng đi cho A về chỗ và gọi B lên làm tiếp bài của B ngày hôm qua và thầy cũng cần 5 phút để ghi lại trạng thái mà B đã làm được ngày hôm qua lên bảng và lúc này thầy xóa đi hết kết quả mà A đã làm nãy giờ để B làm tiếp phần bài tập của B sau khi thầy đã ghi xong trạng thái làm việc của B ngày hôm qua lên bảng, cứ thế xoay vòng.
Admin
- Thày cần đến 5 phút để ghi "trạng thái" của mỗi bạn thì hơi "lâu" quá ! Chắc phải chụp ảnh cho nhanh.
- Thày ghi trạng thái vào đâu ?
Admin
PCB là với trường hợp máy tính.
DangQuangBinh(I22B)- Tổng số bài gửi : 20
Join date : 12/03/2013
Age : 34
Đến từ : I22B
Câu 5:_Phát biểu bài toán sản xuất – tiêu thụ. Để minh họa 1 ứng dụng có nhiều tiến trình phối hợp cộng tác với nhau.
Có 2 loại tiến trình sản xuất và tiến trình tiêu thụ, và mỗi loại lại có nhiều tiến trình con thuộc loại đó. Tiến trình sản xuất là tiến trình tạo ra dòng thông tin để cấp cho tiến trình tiêu thụ sử dụng, còn tiến trình tiêu thụ là lấy thông tin từ tiến trình sản xuất để sử dụng. Bài toán sử dụng 1 vùng nhớ đệm trong Ram là Buffer để chứa những thông tin từ tiến trình sản xuất, và tiến trình tiêu thụ lấy những thông tin của tiến trình sản xuất từ Buffer để sử dụng. Mỗi 1 tiến trình con của tiến trình sản xuất sẽ đưa những thông tin của nó vào vùng nhớ đệm, do vùng nhớ đệm Buffer là vùng nhớ có giới hạn nên nó chỉ chứa được một số thông tin từ tiến trình sản xuất, vì thế các tiến trình sản xuất và tiến trình tiêu thụ phải đồng bộ với nhau, tiến trình sản xuất không được đưa thông tin vào vùng nhớ đệm khi vùng nhớ đệm đã đầy, và tiến trình tiêu thụ không lấy được thông tin để nó sử dụng nếu không còn thông tin nào trong vùng nhớ đệm.
Minh họa 1 ứng dụng:
Giả sử đây là vùng nhớ đệm Buffer trong Ram, vùng này có dung lượng hạn chế được đánh số từ 0 đến Buffer_Size – 1. Buffer_Size là 1 hằng số. Tiến trình sản xuất trao đổi thông tin với tiến trình tiêu thụ thông qua vùng nhớ đệm này. Có 2 con trỏ In và Out, con trỏ In trỏ đến vùng trống kế tiếp, con trỏ Out trỏ đến sản phẩm kế tiếp cần tiêu thụ. Hiện tại Buffer này còn 2 sản phẩm là s2 và s3, s1 đã được tiêu thụ rồi. Một nhà tiêu thụ nào đó muốn lấy s2 đi thì con trỏ Out trỏ đến s2, sau khi lấy s2 đi thì ông tăng giá trị của con trỏ Out lên 1 để nó trỏ tới s3, còn nhà sản xuất muốn thêm 1 sản phẩm khác vào đây thì ông phải xác định vùng trống kế tiếp vùng trống vừa lấp đầy là vùng trống nào bằng con trỏ In và ông sẽ xếp s4 vào kế s3. Công việc của 2 nhà sản xuất và tiêu thụ cứ thê tuần hoàn. Đến khi con trỏ In chạy đến vị trí trống cuối cùng và đặt sản phẩm vào đây rồi thì khi con trỏ In tăng lên 1 nó sẽ trở về vị trí đầu là s1, s1 lúc này đã được tiêu thụ và việc của con trỏ In là cho nhà sản xuất biết chỗ này còn trống có thể đặt sản phẩm vào đây. Cả 2 nhà sản xuất và tiêu thụ phải làm việc đồng bộ với nhau, nếu Buffer đầy thì nhà sản xuất không thể xếp thêm sản phẩm nào nữa, còn nếu Buffer rỗng thì nhà tiêu thụ cũng sẽ không tiêu thụ được 1 sản phẩm nào nữa.
VD:VD: Khi ta ăn cơm, ta gắp thức ăn từ các đĩa thức ăn(trình sản xuất|Producer) bỏ vào chén(Buffer). Do cái chén nó nhỏ mà ta cứ gắp thức ăn vào hoài mà không ăn thì nó sẽ đầy và ta ko thể gắp thức ăn vào nữa vì thế ta phải ăn(trình tiêu thụ|Consumer) những gì có trong chén, vừa ăn nếu ta thích món nào nữa thì ta mới có thể gắp thêm bỏ vào chén.
Mong thầy và các bạn đóng góp ý kiến thêm.
Minh họa 1 ứng dụng:
Giả sử đây là vùng nhớ đệm Buffer trong Ram, vùng này có dung lượng hạn chế được đánh số từ 0 đến Buffer_Size – 1. Buffer_Size là 1 hằng số. Tiến trình sản xuất trao đổi thông tin với tiến trình tiêu thụ thông qua vùng nhớ đệm này. Có 2 con trỏ In và Out, con trỏ In trỏ đến vùng trống kế tiếp, con trỏ Out trỏ đến sản phẩm kế tiếp cần tiêu thụ. Hiện tại Buffer này còn 2 sản phẩm là s2 và s3, s1 đã được tiêu thụ rồi. Một nhà tiêu thụ nào đó muốn lấy s2 đi thì con trỏ Out trỏ đến s2, sau khi lấy s2 đi thì ông tăng giá trị của con trỏ Out lên 1 để nó trỏ tới s3, còn nhà sản xuất muốn thêm 1 sản phẩm khác vào đây thì ông phải xác định vùng trống kế tiếp vùng trống vừa lấp đầy là vùng trống nào bằng con trỏ In và ông sẽ xếp s4 vào kế s3. Công việc của 2 nhà sản xuất và tiêu thụ cứ thê tuần hoàn. Đến khi con trỏ In chạy đến vị trí trống cuối cùng và đặt sản phẩm vào đây rồi thì khi con trỏ In tăng lên 1 nó sẽ trở về vị trí đầu là s1, s1 lúc này đã được tiêu thụ và việc của con trỏ In là cho nhà sản xuất biết chỗ này còn trống có thể đặt sản phẩm vào đây. Cả 2 nhà sản xuất và tiêu thụ phải làm việc đồng bộ với nhau, nếu Buffer đầy thì nhà sản xuất không thể xếp thêm sản phẩm nào nữa, còn nếu Buffer rỗng thì nhà tiêu thụ cũng sẽ không tiêu thụ được 1 sản phẩm nào nữa.
VD:VD: Khi ta ăn cơm, ta gắp thức ăn từ các đĩa thức ăn(trình sản xuất|Producer) bỏ vào chén(Buffer). Do cái chén nó nhỏ mà ta cứ gắp thức ăn vào hoài mà không ăn thì nó sẽ đầy và ta ko thể gắp thức ăn vào nữa vì thế ta phải ăn(trình tiêu thụ|Consumer) những gì có trong chén, vừa ăn nếu ta thích món nào nữa thì ta mới có thể gắp thêm bỏ vào chén.
Mong thầy và các bạn đóng góp ý kiến thêm.
TranVuSang (I22B)- Tổng số bài gửi : 53
Join date : 09/03/2013
Age : 35
Lý do cộng tác trong cv trong cv giữa các tiến trình
Những lý do cộng tác :
vd Microsoft office
- Chia sẻ thông tin : tiến trình này sử dụng thông tin của tiến trình khác
Tăng tốc tính toán :các tiến trình làm việc ss hoặc tính toán để tăng tốc
Đảm bảo tính đơn thể :bao gồm nhiều đơn thể vận hành trong tiến trình
Đảm bảo tính tiện dụng :sẽ sử dụng nhiều tính năng trong 1 chương trình .
vd Microsoft office
NguyenMinhTam(I22B)- Tổng số bài gửi : 35
Join date : 08/03/2013
Trình bày mô hình luân chuyển cpu giửa 2 tiến trình và phân tích vai trò của PCB
PCB là cấu trúc dl được hdh duy trì trong mỗi tiến trình.dù để chứa thông tin of tiến trình đang hoạt động đó.Nói nôm na PCB sẽ là chứa bản sao cv of tiến trình
PCB sẽ lưu lại trạng thái của tiến trình tại thời điểm đang xét.
VD: thầy gọi bạn A lên bảng giải bài tập, sau đó thay lai bảo bạn A xuống và mời bạn B lên,truoc do bai tap do ban a da lam truoc trong tap,.nên ban a da luu,ban B lên làm bài khác xong đi xuống,thầy mời bạn A lên làm tiếp. Bạn A sẽ lấy thông tin đã lưu trong tập trước đó ,lên làm tiếp bài tập đang làm dở
PCB sẽ lưu lại trạng thái của tiến trình tại thời điểm đang xét.
VD: thầy gọi bạn A lên bảng giải bài tập, sau đó thay lai bảo bạn A xuống và mời bạn B lên,truoc do bai tap do ban a da lam truoc trong tap,.nên ban a da luu,ban B lên làm bài khác xong đi xuống,thầy mời bạn A lên làm tiếp. Bạn A sẽ lấy thông tin đã lưu trong tập trước đó ,lên làm tiếp bài tập đang làm dở
NguyenMinhTam(I22B)- Tổng số bài gửi : 35
Join date : 08/03/2013
PCB là gì ? Tại sao phải có PCB?
PCB dùng để lưu lại trạng thái làm việc của các tiến trình ở một thời điểm nào đó, khôi phục lại trạng thái của tiến trình.
Còn tại sao phải có PCB thì mình chưa rõ, có bạn nào giúp mình trả lời hok
Còn tại sao phải có PCB thì mình chưa rõ, có bạn nào giúp mình trả lời hok
TruongNhuNgoc (I22A)- Tổng số bài gửi : 21
Join date : 10/03/2013
Re: Thảo luận Bài 4
[quote="
VD:VD: Khi ta ăn cơm, ta gắp thức ăn từ các đĩa thức ăn(trình sản xuất|Producer) bỏ vào chén(Buffer). Do cái chén nó nhỏ mà ta cứ gắp thức ăn vào hoài mà không ăn thì nó sẽ đầy và ta ko thể gắp thức ăn vào nữa vì thế ta phải ăn(trình tiêu thụ|Consumer) những gì có trong chén, vừa ăn nếu ta thích món nào nữa thì ta mới có thể gắp thêm bỏ vào chén.
Mong thầy và các bạn đóng góp ý kiến thêm.[/quote]
vd hay đấy
VD:VD: Khi ta ăn cơm, ta gắp thức ăn từ các đĩa thức ăn(trình sản xuất|Producer) bỏ vào chén(Buffer). Do cái chén nó nhỏ mà ta cứ gắp thức ăn vào hoài mà không ăn thì nó sẽ đầy và ta ko thể gắp thức ăn vào nữa vì thế ta phải ăn(trình tiêu thụ|Consumer) những gì có trong chén, vừa ăn nếu ta thích món nào nữa thì ta mới có thể gắp thêm bỏ vào chén.
Mong thầy và các bạn đóng góp ý kiến thêm.[/quote]
vd hay đấy
Huynh Xuan Dat(I22A)- Tổng số bài gửi : 25
Join date : 13/03/2013
Age : 34
Re: Thảo luận Bài 4
DoThiHaDuc(I22B) đã viết:Cộng tác giữa các tiến trình gồm 4 lý do chính sau:
- Chia sẻ thông tin (Information Sharing): một tiến trình sử dụng thông tin do tiến trình đó cung cấp.
- Tăng tốc tính toán (Computation Seepdup): 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ể (Modurality): 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 1 lúc như: 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ụ : Học nhóm – Học riêng lẻ.
Mình có một ví dụ cho câu này nữa nè!
Diễn đàn của chúng ta là một tiến trình. Sau mỗi buổi học, chúng ta sẽ cùng nhau thảo luận các câu hỏi, các vấn đề trên diễn đàn để mọi người cùng hiểu sâu hơn về bài học ->đó là chia sẻ thông tin. Chỉ cần lên diễn đàn, tham gia thảo luận hoặc xem các thông tin mà mọi người đã thảo luận thì chúng ta cũng có thể hiểu bài tốt hơn hoặc thu thập thêm những điều chưa biết mà không cần mất quá nhiều thời gian tìm kiếm thông tin cho vấn đề đó, và mỗi người sẽ có thời gian để tìm hiểu kỹ hơn, đầy đủ hơn những câu hỏi chưa được trả lời để chia sẻ trên diễn đàn ->tăng tốc tính toán. Và ở mỗi bài học sẽ có rất nhiều câu hỏi, mỗi bạn sẽ có những hiểu biết, những thông tin khác nhau để trả lời và đưa ra những ý kiến của riêng mình->đảm bảo tính đơn thể và khi lên diễn đàn thì mọi người đều có thể xem thông tin hay tham gia thảo luận... đó là đảm bảo tính tiện dụng.
LeSonCa(I22B)- Tổng số bài gửi : 12
Join date : 10/03/2013
Re: Thảo luận Bài 4
Theo mình nghĩ bạn đã có câu trả lời rồi đó "dùng để lưu lại trạng thái làm việc của các tiến trình ở một thời điểm nào đó". Tại vì một tiến trình không thể liên tục sử dụng CPU mà phải nhường CPU cho những tiến trình khác và mỗi tiến trình chỉ có thể sử dụng CPU trong 1 khoảng thời gian nào đó mà thôi nên khi tiến trình đó chưa được CPU xử lý xong thì HĐH phải xử lý ngắt tại thời điểm mà công việc còn dở dang vì thế phải cần PCB để lưu lại trạng thái lúc đó nếu không thì tiến trình đó phải bắt đầu lại từ đầu khi sử dụng CPU.TruongNhuNgoc (I22A) đã viết:PCB dùng để lưu lại trạng thái làm việc của các tiến trình ở một thời điểm nào đó, khôi phục lại trạng thái của tiến trình.
Còn tại sao phải có PCB thì mình chưa rõ, có bạn nào giúp mình trả lời hok
Không biết có đúng chưa vậy các bạn.
TranVuSang (I22B)- Tổng số bài gửi : 53
Join date : 09/03/2013
Age : 35
Tại sao phải tổ chức cộng tác giữa các tiến trình?
- Chia sẻ thông tin (Information Sharing): Một tiến trình sử dụng thông tin do tiến trinh khác cung cấp.
- Tăng tốc tính toán (Computation Speedup): Các tiến trình cùng làm việc song song trên 1 hoặc nhiều máy để giải quyết bài toán chung.
- Đảm bảo tính đơn thể (Modularity): Chương trình được chia thành các đơn thể chức năng vận hành trong các tiến trình hoặc luồng khác nhau.
- Đảm bảo tính tiện dụng (Convenience): Người dùng có nhu cầu làm nhiều việc một lúc: Soạn thảo, In ấn, Duyệt Web, Lấy file về, Biên dịch chương trình, Kiểm tra chính tả,...
- Tăng tốc tính toán (Computation Speedup): Các tiến trình cùng làm việc song song trên 1 hoặc nhiều máy để giải quyết bài toán chung.
- Đảm bảo tính đơn thể (Modularity): Chương trình được chia thành các đơn thể chức năng vận hành trong các tiến trình hoặc luồng khác nhau.
- Đảm bảo tính tiện dụng (Convenience): Người dùng có nhu cầu làm nhiều việc một lúc: Soạn thảo, In ấn, Duyệt Web, Lấy file về, Biên dịch chương trình, Kiểm tra chính tả,...
TranDacTruong( I22A )- Tổng số bài gửi : 25
Join date : 17/03/2013
Chuyển ngữ cảnh là gì?
Chuyển ngữ cảnh (Context Switch)
-Là chức năng của Dispatcher khi cần chuyển CPU từ tiến trình P0 này sang tiến trình P1 khác:
+ Ghi môi trường và trạng thái làm việc của P0 vào PCB0
+ Nạp môi trường và trạng thái làm việc của tiến trình P1 từ PCB1
- Thời gian chuyển ngữ cảnh khá lớn: Từ 1-1000 s
- Công nghệ Đa luồng đượ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.
-Là chức năng của Dispatcher khi cần chuyển CPU từ tiến trình P0 này sang tiến trình P1 khác:
+ Ghi môi trường và trạng thái làm việc của P0 vào PCB0
+ Nạp môi trường và trạng thái làm việc của tiến trình P1 từ PCB1
- Thời gian chuyển ngữ cảnh khá lớn: Từ 1-1000 s
- Công nghệ Đa luồng đượ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.
TranDacTruong( I22A )- Tổng số bài gửi : 25
Join date : 17/03/2013
Hai phương thức liên lạc giữa các tiến trình.
Liên lạc trực tiếp (Direct Communications)
-Theo địa chỉ đối xứng (Symmetric Scheme)
Send (P, Message) - Gửi thông điệp cho P
Receive (Q, Message) - Nhận thông điệp từ Q
Đặc điểm:
+ Liên kết được thiết lập tự động giữa mỗi cặp tiến trình.
+ Liên kết chỉ giữa 2 tiến trình.
+ Chỉ có 1 liên kết giữa mỗi cặp.
+ Tính đối xứng của liên lạc (2 bên đều biết đích xác tên của nhau khi Gửi/Nhận).
-Theo địa chỉ phi đối xứng (Asymmetric Scheme)
Send (P, Message) - Gửi thông điệp cho P
Receive (id, Message) - Nhận thông điệp từ tiến trình bất kỳ, Biến id chứa số hiệu tiến trình gửi
Liên lạc gián tiếp (Indirect Communications)
- Qua các Hộp thư (Mailboxes) hoặc Cổng (Ports).
- Hộp thư là một thực thể qua đó thông điệp được gửi đến và lấy ra.
- Mỗi hộp thư có định danh riêng.
- Hai tiến trình phải chung nhau một hộp thư nào đó.
- Hai loại hộp thư:
+ Hộp thư tiến trình (Process Mailbox): Nằm trong vùng địa chỉ của một tiến trình nào đó.
+ Hộp thư hệ điều hành (OS Mailbox): Nằm trong vùng địa chỉ của HĐH
-Theo địa chỉ đối xứng (Symmetric Scheme)
Send (P, Message) - Gửi thông điệp cho P
Receive (Q, Message) - Nhận thông điệp từ Q
Đặc điểm:
+ Liên kết được thiết lập tự động giữa mỗi cặp tiến trình.
+ Liên kết chỉ giữa 2 tiến trình.
+ Chỉ có 1 liên kết giữa mỗi cặp.
+ Tính đối xứng của liên lạc (2 bên đều biết đích xác tên của nhau khi Gửi/Nhận).
-Theo địa chỉ phi đối xứng (Asymmetric Scheme)
Send (P, Message) - Gửi thông điệp cho P
Receive (id, Message) - Nhận thông điệp từ tiến trình bất kỳ, Biến id chứa số hiệu tiến trình gửi
Liên lạc gián tiếp (Indirect Communications)
- Qua các Hộp thư (Mailboxes) hoặc Cổng (Ports).
- Hộp thư là một thực thể qua đó thông điệp được gửi đến và lấy ra.
- Mỗi hộp thư có định danh riêng.
- Hai tiến trình phải chung nhau một hộp thư nào đó.
- Hai loại hộp thư:
+ Hộp thư tiến trình (Process Mailbox): Nằm trong vùng địa chỉ của một tiến trình nào đó.
+ Hộp thư hệ điều hành (OS Mailbox): Nằm trong vùng địa chỉ của HĐH
TranDacTruong( I22A )- Tổng số bài gửi : 25
Join date : 17/03/2013
Cộng tác giữa các tiến trình
Xin được góp 1 ví dụ khác theo ý của mình : trong 1 bữa tiệc tất niên xóm, mỗi người tham gia là 1 tiến trình.
Chia sẻ thông tin (Information Sharing): trong quá trình làm những người có bí quyết nấu ăn ngon hay thông tin bổ ích chia sẽ với những người khác để họ tốt hơn.
Tăng tốc tính toán (Computation Speedup): thay vì 1 người làm hết tất cả thì rất nhiều người cùng nhau góp sức làm chung sẽ đạt hiệu quả cao hơn, nhanh hơn.
Đảm bảo tính đơn thể (Modularity): làm chung như vậy thì mỗi người sẽ chia nhau làm phần việc mà mình thấy giỏi hơn, sở trường của mình để hoàn thành tốt hơn.
Đảm bảo tính tiện dụng (Convenience): nếu trong lúc làm phần việc của mình mà ai có nhu cầu giúp người khác thì vẫn được.
Chia sẻ thông tin (Information Sharing): trong quá trình làm những người có bí quyết nấu ăn ngon hay thông tin bổ ích chia sẽ với những người khác để họ tốt hơn.
Tăng tốc tính toán (Computation Speedup): thay vì 1 người làm hết tất cả thì rất nhiều người cùng nhau góp sức làm chung sẽ đạt hiệu quả cao hơn, nhanh hơn.
Đảm bảo tính đơn thể (Modularity): làm chung như vậy thì mỗi người sẽ chia nhau làm phần việc mà mình thấy giỏi hơn, sở trường của mình để hoàn thành tốt hơn.
Đảm bảo tính tiện dụng (Convenience): nếu trong lúc làm phần việc của mình mà ai có nhu cầu giúp người khác thì vẫn được.
NguyenThiThom(I22A)- Tổng số bài gửi : 28
Join date : 11/03/2013
Một tiến trình yêu cầu Hệ điều hành chuyển trạng thái cho nó “ngủ” 5 giây. Hệ điều hành có đảm bảo được là sẽ kích hoạt tiến trình này đúng 5 giây sau đó không? Tại sao?
Một tiến trình yêu cầu Hệ điều hành chuyển trạng thái cho nó “ngủ” 5 giây. Hệ điều hành có đảm bảo được là sẽ kích hoạt tiến trình này đúng 5 giây sau đó không? Tại sao?
Trả lời: Khi một tiến trình yêu cầu hệ diều hành cho nó chuyển trạng thái 5 giây thì hệ điều hành sẽ cho phép nó được nghỉ nhưng hệ điều hành sẽ không đảm bảo sẽ kích hoạt nó sau đúng 5 giây được vì khi tiến trình đó nghỉ thì hệ điều hành sẽ cho phép tiến trình khác đang được đứng trong hàng đợi được thực hiện và thời gian thực hiện của tiến trình này phải là khoảng thời gian nhỏ nhất trong tất cả các tiến trình đang đứng trong hàng đợi, khi đó sẽ có 3 khả năng xảy ra:
1/ Nếu khoảng thời gian này vừa đúng 5 giây thì hệ điều hành sẽ cho phép tiến trình mà lúc trước đã yêu cầu hệ điều hành cho phép nó ngủ làm việc tiếp vì khi đó khoảng thời gian mà tiến trình đó thực hiện sẽ là nhỏ nhất trong tất cả các tiến trình đang đợi trong hàng đợi.
2/ Nếu khoảng thời gian thực hiện của tiến trình này mà vượt quá 5 giây thì tiến trình đang ngủ 5 giây sẽ không thể thực hiện được khi mà tiến trình đang được thực hiện vẫn chưa thực hiên xong cho nên vì thế mà hệ điều hành trong trường hợp này không thể đảm bảo việc cho tiến trình đó khởi động lại sau đúng 5 giây
3/ Nếu khoảng thời gian thực hiện của tiến trình này mà nhỏ hơn 5 giây thì khi đó hệ điều hành sẽ cho phép một tiến trình khác được thực hiện (đây chính là tiến trình mà có thời gian thực hiên lớn hơn tiến trình vừa mới thực hiện nhưng mà lại là tiến trình có khoảng thời gian nhỏ hơn các tiến trình còn lại trong hàng đợi trừ tiến trình đang được ngủ 5 giây ) .Vì vậy trong trường hợp này thì hệ điều hành cũng không thể cho phép tiến trình đang được ngủ 5 giây đó thực hiện được đúng sau 5 giây
Trả lời: Khi một tiến trình yêu cầu hệ diều hành cho nó chuyển trạng thái 5 giây thì hệ điều hành sẽ cho phép nó được nghỉ nhưng hệ điều hành sẽ không đảm bảo sẽ kích hoạt nó sau đúng 5 giây được vì khi tiến trình đó nghỉ thì hệ điều hành sẽ cho phép tiến trình khác đang được đứng trong hàng đợi được thực hiện và thời gian thực hiện của tiến trình này phải là khoảng thời gian nhỏ nhất trong tất cả các tiến trình đang đứng trong hàng đợi, khi đó sẽ có 3 khả năng xảy ra:
1/ Nếu khoảng thời gian này vừa đúng 5 giây thì hệ điều hành sẽ cho phép tiến trình mà lúc trước đã yêu cầu hệ điều hành cho phép nó ngủ làm việc tiếp vì khi đó khoảng thời gian mà tiến trình đó thực hiện sẽ là nhỏ nhất trong tất cả các tiến trình đang đợi trong hàng đợi.
2/ Nếu khoảng thời gian thực hiện của tiến trình này mà vượt quá 5 giây thì tiến trình đang ngủ 5 giây sẽ không thể thực hiện được khi mà tiến trình đang được thực hiện vẫn chưa thực hiên xong cho nên vì thế mà hệ điều hành trong trường hợp này không thể đảm bảo việc cho tiến trình đó khởi động lại sau đúng 5 giây
3/ Nếu khoảng thời gian thực hiện của tiến trình này mà nhỏ hơn 5 giây thì khi đó hệ điều hành sẽ cho phép một tiến trình khác được thực hiện (đây chính là tiến trình mà có thời gian thực hiên lớn hơn tiến trình vừa mới thực hiện nhưng mà lại là tiến trình có khoảng thời gian nhỏ hơn các tiến trình còn lại trong hàng đợi trừ tiến trình đang được ngủ 5 giây ) .Vì vậy trong trường hợp này thì hệ điều hành cũng không thể cho phép tiến trình đang được ngủ 5 giây đó thực hiện được đúng sau 5 giây
TranDacTruong( I22A )- Tổng số bài gửi : 25
Join date : 17/03/2013
Re: Thảo luận Bài 4
TruongNhuNgoc (I22A) đã viết:PCB dùng để lưu lại trạng thái làm việc của các tiến trình ở một thời điểm nào đó, khôi phục lại trạng thái của tiến trình.
Còn tại sao phải có PCB thì mình chưa rõ, có bạn nào giúp mình trả lời hok
Như cái tên Khối kiểm soát tiến trình ,phải có nó để điều khiển các tiến trình 1 cách hợp lý,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.
TranThienTam (I22A)- Tổng số bài gửi : 27
Join date : 08/03/2013
Trang 2 trong tổng số 9 trang • 1, 2, 3, 4, 5, 6, 7, 8, 9
Trang 2 trong tổng số 9 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết