Thảo luận Bài 4

Trang 1 trong tổng số 9 trang 1, 2, 3, 4, 5, 6, 7, 8, 9  Next

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Thảo luận Bài 4

Bài gửi  Admin on 11/3/2013, 09:52

Thảo luận những vấn đề liên quan đến Bài 4.

Admin
Admin

Tổng số bài gửi : 278
Join date : 18/02/2009

Xem lý lịch thành viên http://hedieuhanh.forumvi.net

Về Đầu Trang Go down

Phân biệt Job Queue ( hàng chờ công việc) và Ready Queue (hàng chờ sẵn sàng)

Bài gửi  nguyenhoanglam_I22B on 12/3/2013, 12:05

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.

nguyenhoanglam_I22B

Tổng số bài gửi : 16
Join date : 12/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

CÂU 4: TRÌNH BÀY NHỮNG LÝ DO CỘNG TÁC GIỮA CÁC TIẾN TRÌNH?

Bài gửi  DoThiHaDuc(I22B) on 15/3/2013, 21:51

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ẻ.

DoThiHaDuc(I22B)

Tổng số bài gửi : 25
Join date : 11/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Phát biểu bài toán sản xuất - tiêu thụ

Bài gửi  NguyenHoangThien(I22B) on 15/3/2013, 21:56

Phát biểu bài toán:
• Giả sử có Bộ nhớ đệm (Buffer) bao gồm nhiều khoang (Items) được tiến trình Producer lần lượt đưa các sản phẩm S1, S2,... vào.
• Tiến trình Consumer lần lượt lấy sản phẩm ra theo đúng thứ tự.
• Công việc của Producer phải đồng bộ với Consumer: Không được đưa sản phẩm vào khi Buffer đầy, Không được lấy ra khi chưa có.

Ví dụ: trong phòng có 60 chỗ. Các nhân viên sản xuất vác gạo đến chất vào phòng. Khi phòng đầy thì các nhân viên vác gạo đến phải đứng chờ. Các nhân viên tiêu thụ đến lấy gạo. Khi phòng trống thì các nhân viên tiêu thụ phải chờ để nhân viên sản xuất chất gạo vào phòng.

NguyenHoangThien(I22B)

Tổng số bài gửi : 38
Join date : 15/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Phân biệt các loại trình điều phối

Bài gửi  NguyenHoangThien(I22B) on 15/3/2013, 22:02


Đ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ó 1 chiếc ô tô (CPU). Trong công ty có nhiều nhân viên cần đi công tác (nhiều process). Ô tô (CPU) phải phục vụ những nhân viên (process) đó --> Ô tô (CPU) luôn trong trạng thái bận
. Hướng I/O: tính toán ít, nhiều I/O
Ví dụ: Công ty có 1 chiếc ô tô (CPU), các nhân viên trong công ty chỉ ngồi nghiên cứu (nhiều I/O). Ô tô luôn để trong ga ra không có người sử dụng. Do đó 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.

Điều phối vừa (Medium-term scheduler) :
• Là Short-Term Scheduler được thêm chức năng rút các tiến trình khỏi bộ nhớ, dẫn đến làm giảm Độ đa chương, sau đó đưa lại chúng vào bộ nhớ vào thời điểm thích hợp để tiếp tục thực hiện từ vị trí bị tạm ngừng trước đó.
• Nhờ cách điều phối này, hỗn hợp các tiến trình trong Ready Queue có tính tối ưu hơn.
Ví dụ: Công ty có 1 ô tô (CPU). Trong công ty có nhiều nhân viên có nhu cầu đi công tác hơn là ngồi nghiên cứu và ngược lại. Do đó ban lãnh đạo công ty điều phối bằng cách cho nhân viên có nhu cầu công tác cao hơn sử dụng ô tô trong khi những nhân viên có nhu cầu nghiên cứu ở lại. Sau đó sẽ luân chuyển cho những nhân viên nghiên cứu đi công tác và những nhân viên đã đi công tác trở về trạng thái chờ hoặc về nghiên cứu.

NguyenHoangThien(I22B)

Tổng số bài gửi : 38
Join date : 15/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Mô hình chuyển trạng thái của các tiến trình!!!

Bài gửi  NgoVanTuyen(I22B) on 15/3/2013, 22:24

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.

NgoVanTuyen(I22B)

Tổng số bài gửi : 32
Join date : 22/02/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Thời Khóa Biểu Lớp I22A

Bài gửi  TranVuSang (I22B) on 15/3/2013, 22:29

Xin chào các bạn bên lớp A, hôm nay mình vào trễ nên có đoạn đầu của bài thầy giảng mà mình chưa được nghe, nên mình muốn nghe thầy giảng lại bài này vì vậy mình muốn qua lớp các bạn học ké nhưng mình không biết thời khóa biểu của lớp bạn học thế nào? môn HĐH và 2 môn kia nữa.
Mong các bạn giúp đỡ, thanks

Admin
- I22A: Thứ 5, Thứ 7
- I22B: Thứ 2, Thứ 6

TranVuSang (I22B)

Tổng số bài gửi : 53
Join date : 09/03/2013
Age : 27

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Thảo luận Bài 4

Bài gửi  NguyenXuanLinh(HLT3) on 15/3/2013, 22:29

Thư thầy.
Em muốn hỏi là HĐH làm thể nào để bit được tiến trình nào được ưu tiên trước và tiến trình nào đc ưu tiên sau để sắp sếp ở Job Queue?

Admin
Trong Job Queue không cần thiết phải theo độ ưu tiên nào. Tiến trình nào vào trước thì đứng ở đầu.

NguyenXuanLinh(HLT3)

Tổng số bài gửi : 27
Join date : 11/03/2013
Age : 27
Đến từ : Hồ Chí Minh

Xem lý lịch thành viên http://www.ytuong24h.net

Về Đầu Trang Go down

CÂU 3: PHÂN BIỆT CÁC LOẠI TRÌNH ĐIỀU PHỐI ?

Bài gửi  DoThiHaDuc(I22B) on 15/3/2013, 22:34

Có 3 loại trình điều phối (Scheduler) sau:

1) Điều phối chậm (Long - Term Scheduler):
-- Chọn tiến trình từ Job Queue để đưa vào Ready Queue.
-- Kiểm soát độ đa chương (số tiến trình trong bộ nhớ).
-- Mục đích: Cân bằng tải cho toàn hệ thố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 tiến trình:
===>1. Hướng CPU (CPU - Bound) : tính toán nhiều, ít I/O.
VD: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận phục vụ cho nhiều người (nhiều tiến trình).
===>2. Hướng I/O (I/O - Bound) : tính toán ít , nhiều I/O.
VD: công ty có 1 chiếc xe ô tô (CPU), các nhân viên trong công ty chỉ ngồi nghiên cứu (I/O) không sử dụng đến ô tô, vậy quá lãng phí ô tô (CPU).

2) Đ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.

3) Điều phối vừa ( Medium - Term Scheduler):
-- Là Short -Term Scheduler được thêm chức năng rút các tiến trình khỏi bộ nhớ, dẫn đến làm giảm độ đa chương, sau đó đưa lại chúng vào bộ nhớ vào thời điểm thích hợp để tiếp tục thực hiện từ vị trí bị tạm ngừng trước đó.
-- Nhờ cách điều phối này, hỗn hợp các tiến trình trong Ready Queue có tính tối ưu hơn.

VD: 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ẽ gọi 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).

DoThiHaDuc(I22B)

Tổng số bài gửi : 25
Join date : 11/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

So sánh luồng với tiến trình!!!

Bài gửi  NgoVanTuyen(I22B) on 15/3/2013, 22:42

*Sự giống nhau:
- Đều có thông tin trạng thái
- Luồng cũng là tiến trình nhưng là tiến trình nhẹ (Light Weigh Process)
- Đa luồng hay đa tiến trình có thể liên quan đến một chương trình.
- Chia sẻ tài nguyên cho nhau, tăng tốc tính toán, đảm bảo tính đơn thể
- Do luồng cùng vận hành trong 1 vùng địa chỉ, vì vậy dễ dùng chung tài nguyên hơn đa tiến trình
Ví dụ: Mình cần mượn xe đi đâu đó thì mượn xe trong gia đình để đi thì dễ hơn mượn của người ngoài
- Do dùng chung tài nguyên với luồng cha nên việc tạo lập và chuyển đổi ngữ cảnh cũng nhanh hơn tiến trình
Ví dụ: Việc ngăn phòng riêng ra trong nhà thì dễ hơn việc xây thêm hay mua thêm một nhà khác.
- Cấp phát tài nguyên bộ nhớ cho tiến trình khá tốn kém.
- Lập trình đa luồng thì dễ hơn lập trình đa tiến trình.

*Sự khác nhau:
- Lập trình đa luồng dễ hơn lập trình đa tiến trình.
- Tạo mới một tiến trình khó hơn tạo mới một luồng.
- Luồng không cần gởi, nhận thông điệp.
- Luồng chuyển đổi ngữ cảnh nhanh và ít chiếm tài nguyên hơn tiến trình.
- Luồng chia sẻ tài nguyên dùng chung dể hơn tiến trình.

NgoVanTuyen(I22B)

Tổng số bài gửi : 32
Join date : 22/02/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Thảo luận Bài 4

Bài gửi  DoThiHaDuc(I22B) on 15/3/2013, 22:46

TranVuSang (I22B) đã viết:Xin chào các bạn bên lớp A, hôm nay mình vào trễ nên có đoạn đầu của bài thầy giản mà mình chưa được nghe, nên mình muốn nghe thầy giảng lại bài này vì vậy mình muốn qua lớp các bạn học ké nhưng mình không biết thời khóa biểu của lớp bạn học thế nào? môn HĐH và 2 môn kia nữa.
Mong các bạn giúp đỡ, thanks

Lớp A học :
- Hệ Thống Web : Thứ 2 và 6 thực hành.
- Cấu Trúc Dữ Liệu : Thứ 3 và 4 thực hành. (học cô, khác lớp B đó nha flower )
- Hệ Điều Hành : Thứ 5 và 7.

Vậy mai Sang chịu khó đi học rồi nhé! ^=^ (mai CTDL lớp mình được nghỉ thực hành Very Happy )

DoThiHaDuc(I22B)

Tổng số bài gửi : 25
Join date : 11/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Vai trò của khối kiểm soát tiến trình

Bài gửi  NguyenHoangKimVu (I11C) on 15/3/2013, 22:57

PCB là một cấu trúc ữ liệu được hệ điều hành duy trì cho mỗi tiến trình dùng để chứa các thông tin cần thiết về tiến trình đó. PCB chứa "Bản sao công việc của tiến trình".
Nó lưu lại trạng thái của tiến trình tại thời điểm đang xét. Trạng thái này bao gồm (các địa chỉ liên kết của tiến trình và dữ liệu, số hiệu tiến trình, bộ đếm lệnh, nội dung các thanh ghi, giới hạn bộ nhớ của tiến trình, danh sách các file đang mở, các thông tin về thời gian thống kê tiến trình hiện tại.
Ví dụ : Dùng chung 1 bảng, bạn thứ 2 lên bảng sửa bài thì phải xóa bài của bạn thứ 1 đã viết >> PHải viết vào vở để nội dung không bị mất khi người khác xóa.

NguyenHoangKimVu (I11C)

Tổng số bài gửi : 62
Join date : 25/08/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Thảo luận Bài 4

Bài gửi  TranVuSang (I22B) on 15/3/2013, 22:59

DoThiHaDuc(I22B) đã viết:
TranVuSang (I22B) đã viết:Xin chào các bạn bên lớp A, hôm nay mình vào trễ nên có đoạn đầu của bài thầy giản mà mình chưa được nghe, nên mình muốn nghe thầy giảng lại bài này vì vậy mình muốn qua lớp các bạn học ké nhưng mình không biết thời khóa biểu của lớp bạn học thế nào? môn HĐH và 2 môn kia nữa.
Mong các bạn giúp đỡ, thanks

Lớp A học :
- Hệ Thống Web : Thứ 2 và 6 thực hành.
- Cấu Trúc Dữ Liệu : Thứ 3 và 4 thực hành. (học cô, khác lớp B đó nha flower )
- Hệ Điều Hành : Thứ 5 và 7.

Vậy mai Sang chịu khó đi học rồi nhé! ^=^ (mai CTDL lớp mình được nghỉ thực hành Very Happy )
Thanks DoThiHaDuc(I22B) nha.hihi

TranVuSang (I22B)

Tổng số bài gửi : 53
Join date : 09/03/2013
Age : 27

Xem lý lịch thành viên

Về Đầu Trang Go down

Trình điều phối chậm và trình điều phối nhanh

Bài gửi  LeAnhToan48(I22B) on 15/3/2013, 22:59

-Điều phối chậm (long–term queue) : chọn 1 tiến trình từ job queue đưa sang qua Ready queue (chuyển từ New sang Ready). Scheduler lựa chọn kỹ các tiến trình nhằm phối hợp cân bằng giữa hai loại tiến trình . Mục đích nhằm cân bằng tải giữa hai tiến trình.

+ Hướng CPU(CPU-BOUND) tính toán nhiều , ít I/O.
+ Hướng I/O(I/O BOUND) tính toán ít , nhiều I/O.

Mục đích của cân bằng tải trong điều phối chậm:
- Nếu hướng CPU nhiều thì CPU luôn trong trạng thái bận, dẫn đến việc nhiều tiến trình buộc phải chờ.
- Nếu hướng I/O nhiều thì CPU luôn rỗi -> lãng phí CPU.
Vd: Trong công ty có 1 chiếc ô tô, có nhiều người có khuynh hướng sử dụng ô tô để phục vụ công viêc ở xa, nhưng cũng có nhiều người không sử dụng ô tô mà ở lại công ty để nghiên cứu. Vậy nên công ty phải cách để cân bằng giữa hướng ô tô và hướng nghiên cứu.

-Điều phối nhanh (Short-term scheduler) : Chọn tiến trình sẽ chiếm CPU để xử lý (chuyển từ trạng thái Ready sang trạng thái Runing).

Vd: trong một lớp học người giảng viên gọi nhiều bạn lên kiểm tra bài (điều phối chậm) đang trong job queue , ví dụ là 7 bạn được chọn để đưa vào Ready queue sau đó mới gọi liên tục 1 trong 7 bạn này lên bảng (trình điều phối nhanh) .
Vd: các học sinh đã được chọn để lên bảng thì họ đã biết công việc của mình là phải làm gì .

LeAnhToan48(I22B)

Tổng số bài gửi : 38
Join date : 08/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Thảo luận Bài 4

Bài gửi  LeAnhToan48(I22B) on 15/3/2013, 23:00

DoThiHaDuc(I22B) đã viết:Có 3 loại trình điều phối (Scheduler) sau:

1) Điều phối chậm (Long - Term Scheduler):
-- Chọn tiến trình từ Job Queue để đưa vào Ready Queue.
-- Kiểm soát độ đa chương (số tiến trình trong bộ nhớ).
-- Mục đích: Cân bằng tải cho toàn hệ thố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 tiến trình:
===>1. Hướng CPU (CPU - Bound) : tính toán nhiều, ít I/O.
VD: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận phục vụ cho nhiều người (nhiều tiến trình).
===>2. Hướng I/O (I/O - Bound) : tính toán ít , nhiều I/O.
VD: công ty có 1 chiếc xe ô tô (CPU), các nhân viên trong công ty chỉ ngồi nghiên cứu (I/O) không sử dụng đến ô tô, vậy quá lãng phí ô tô (CPU).

2) Đ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.

3) Điều phối vừa ( Medium - Term Scheduler):
-- Là Short -Term Scheduler được thêm chức năng rút các tiến trình khỏi bộ nhớ, dẫn đến làm giảm độ đa chương, sau đó đưa lại chúng vào bộ nhớ vào thời điểm thích hợp để tiếp tục thực hiện từ vị trí bị tạm ngừng trước đó.
-- Nhờ cách điều phối này, hỗn hợp các tiến trình trong Ready Queue có tính tối ưu hơn.

VD: 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ẽ gọi 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).

Bạn Đức chăm chỉ quá ta

LeAnhToan48(I22B)

Tổng số bài gửi : 38
Join date : 08/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Luân chuyển CPU giữa 2 tiến trình

Bài gửi  NguyenHoangKimVu (I11C) on 15/3/2013, 23:19


Tiến trình P0 chạy đến thời điểm 8h phải nhương CPU cho P1 và tại thời điểm này sẽ xảy ra ngắt (ngắt cứng hoặc ngắt mềm) -> để nhường cho P1 và sẽ ghi lại trạng thái của P0 vào PCB0
Đến 8h10, P1 sẽ lấy lại trạng thái ở PCB1 để vận hành.
Đến 8h30, xảy ra ngắt để nhường cho P0 và sẽ ghi lại trạng thái của P1 vào PCB1
Đến 8h40, P0 sẽ lấy lại trạng thái ở PCB0 để vận hành. Cứ thế cho đến khi kết thúc tiến trình

NguyenHoangKimVu (I11C)

Tổng số bài gửi : 62
Join date : 25/08/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

Bài toán producer/Consumer

Bài gửi  NguyenNhatHuy64(I22B) on 15/3/2013, 23:34

giả sử có 2 process A và B cùng làm việc với nhau thông qua vùng đệm(buffer).Gọi B là process producer(tiến trình sản xuất),gọi A là tiến trình tiêu thụ(consumer process).B tạo ra dữ liệu rồi sau đó ghi dữ liệu vào buffer.Sau đó process A lấy(đọc dữ liệu từ buffer) và sử dụng dữ liệu. buffer có kích thước hạn định nên buffer này sẽ tổ chức theo kiểu xoay vòng(giống như cấu trúc bánh xe vậy đó) nên buffer này có nhiều khoang(Item) lần lượt đưa sản phẩm vào rồi lấy ra đúng thứ tự.2 công việc này phải phối hợp đồng bộ với nhau,tức là không được đưa thêm vào buffer đầy(tạo sản phẩm nhanh nhưng lấy sp ra chậm) và không được lấy sản phẩm ra khi chưa có(tạo sp chậm nhưng lấy ra nhanh).
Ví dụ: 30 gói mì chứa vào thùng giấy,vừa khít với thùng giấy ấy và không chứa thêm được thùng nào nữa.và bạn muốn đưa mì vào thùng,chỉ khi bạn lấy một số gói ra khỏi thùng,và 1bỏ gói khác cung tương ứng(lấy 1 bỏ 1,lấy 10 bỏ vào 10,...) vào,như vậy nôm na,mì gói lấy ra là consumer,mì đưa vào là producer,và thùng giấy chính là buffer.

Admin
- "Mì gói" là Sản phẩm được đưa vào lấy ra !
- Người xếp "Mì gói" vào là Producer !
- Người lấy "Mì gói" ra dùng là Con sumer !

NguyenNhatHuy64(I22B)

Tổng số bài gửi : 16
Join date : 09/03/2013
Age : 24

Xem lý lịch thành viên

Về Đầu Trang Go down

Bổ sung: Job Queue và Ready Queue

Bài gửi  HuynhDucQuang(I22B) on 15/3/2013, 23:46

nguyenhoanglam_I22B đã viết:Job Queue: là hàng chờ công việc, chứa các tiến trình chờ được vận hành.
Ready Queue: là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU.
Giống nhau:- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:
- Dùng giải thuật điều phối chậm(Long - term Scheduler) để đưa các tiến trình từ Job Queue vào Ready Queue.
- Dùng giải thuật điều phối nhanh(Short - term Scheduler) chọn các tiến trình trong Ready Queue để cấp CPU.
Ngoài ra, Ready Queue chứa hỗn hợp 2 loại tiến trình Hướng CPU và Hướng I/O sao cho tối ưu nhất để cân bằng, tránh tình trạng lạm dụng quá nhiều CPU (do tiến trình Hướng CPU gây ra) hoặc để CPU rỗi (do tiến trình Hướng O/I gây ra --> phí tài nguyên CPU).

VD: Lấy chương trình "thần tượng âm nhạc" làm ví dụ. Mỗi một người dân ở VN là một tiến trình, và những người đi thi là những tiến trình cần tham gia (được đưa vào Job Queue). Khi vòng sơ khảo diễn ra ở HCM, thì ban tổ chức chỉ chọn những thí sinh ở HCM trên tổng danh sách Job Queue để đưa vào danh sách dự thi đợt 1 (Ready Queue). Tiếp theo thì BGK chỉ kêu 1 thí sinh trong số đó vào phòng để thử giọng.

Mong thầy cho em ý kiến về ví dụ trên.

Admin
Tốt !


Được sửa bởi HuynhDucQuang(I22B) ngày 15/3/2013, 23:58; sửa lần 1.

HuynhDucQuang(I22B)

Tổng số bài gửi : 38
Join date : 08/03/2013
Đến từ : 11H1010104

Xem lý lịch thành viên

Về Đầu Trang Go down

Hỏi code về Tiến trình tiêu thụ và tiến trình sản xuất

Bài gửi  TruongMinhTriet(I22B) on 15/3/2013, 23:55

Thầy và các bạn cho mình hỏi tại sao code:
Tiến trình Sản Xuất tăng giá trị của in bằng lệnh in = (in + 1) % BUFFER_SIZE mà không phải là bằng in = in + 1
Tiến trình Tiêu Thụ tăng giá trị của out bằng lệnh out = (out + 1) % BUFFER_SIZE mà không phải là bằng out = out + 1
?

Cảm ơn thầy và các bạn.

TruongMinhTriet(I22B)

Tổng số bài gửi : 13
Join date : 11/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Câu 1: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)

Bài gửi  dangmonghai(I12A) on 16/3/2013, 00:03



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.
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 khoảng 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ệ điều hành cũng ghi lại thông tin vào thanh ghi PCB2 như đã làm ở P1. Sau đó, hệ điều hành 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.

dangmonghai(I12A)

Tổng số bài gửi : 15
Join date : 18/02/2012

Xem lý lịch thành viên

Về Đầu Trang Go down

Câu 2:_Trình bày sơ đồ luân chuyển CPU giữa 2 tiến trình dưới sự điều phối của HĐH.

Bài gửi  TranVuSang (I22B) on 16/3/2013, 00:38




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 ?


Được sửa bởi TranVuSang (I22B) ngày 16/3/2013, 00:46; sửa lần 1.

TranVuSang (I22B)

Tổng số bài gửi : 53
Join date : 09/03/2013
Age : 27

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Thảo luận Bài 4

Bài gửi  NguyenXuanLinh(HLT3) on 16/3/2013, 00:39

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 !

NguyenXuanLinh(HLT3)

Tổng số bài gửi : 27
Join date : 11/03/2013
Age : 27
Đến từ : Hồ Chí Minh

Xem lý lịch thành viên http://www.ytuong24h.net

Về Đầu Trang Go down

Re: Thảo luận Bài 4

Bài gửi  NguyenXuanLinh(HLT3) on 16/3/2013, 00:44

xuanlinh đã viết:Thư thầy.
Em muốn hỏi là HĐH làm thể nào để bit được tiến trình nào được ưu tiên trước và tiến trình nào đc ưu tiên sau để sắp sếp ở Job Queue?

Admin
Trong Job Queue không cần thiết phải theo độ ưu tiên nào. Tiến trình nào vào trước thì đứng ở đầu.
Thầy cho em hỏi thêm là HĐH dựa vào tiêu chí nào để đưa tiến trình từ Job Queue qua Ready Queue. Và ở Ready Queue có sự ưu tiên hay không? Và nếu 1 tiến trình ở Job Queue sử dụng bộ nhớ lớn hơn khả năng cấp của HĐH thì lúc đó HĐH làm thế nào?

Admin
- Tiêu chí chọn các tiến trình trong Job Queue để đưa vào Ready Queue là có được hỗn hợp "Nếp-Tẻ" tối ưu ! (bàn thêm về 2 loại "gạo" này !)
- Thông thường, nếu tiến trình lớn quá, HĐH nạp phần đầu và sẽ cấp dần thêm cho nó (khi cần, hệ rút bỏ phần này để thêm phần khác và lúc cần đến phần đã bị rút bỏ, hệ nạp lại nó).

NguyenXuanLinh(HLT3)

Tổng số bài gửi : 27
Join date : 11/03/2013
Age : 27
Đến từ : Hồ Chí Minh

Xem lý lịch thành viên http://www.ytuong24h.net

Về Đầu Trang Go down

Re: Thảo luận Bài 4

Bài gửi  TranVuSang (I22B) on 16/3/2013, 00:53

NguyenHoangKimVu (I11C) đã viết:
Tiến trình P0 chạy đến thời điểm 8h phải nhương CPU cho P1 và tại thời điểm này sẽ xảy ra ngắt (ngắt cứng hoặc ngắt mềm) -> để nhường cho P1 và sẽ ghi lại trạng thái của P0 vào PCB0
Đến 8h10, P1 sẽ lấy lại trạng thái ở PCB1 để vận hành.
Đến 8h30, xảy ra ngắt để nhường cho P0 và sẽ ghi lại trạng thái của P1 vào PCB1
Đến 8h40, P0 sẽ lấy lại trạng thái ở PCB0 để vận hành. Cứ thế cho đến khi kết thúc tiến trình
Mình đồng ý với câu trả lời của bạn nhưng cho phép mình lí giải rõ hơn cho các bạn khác cùng hiểu nha.
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.

TranVuSang (I22B)

Tổng số bài gửi : 53
Join date : 09/03/2013
Age : 27

Xem lý lịch thành viên

Về Đầu Trang Go down

Câu 3:_Phân biệt các loại trình điều phối( Schedulers )

Bài gửi  TranVuSang (I22B) on 16/3/2013, 02:19

Có 3 loại điều phối: Điều phối chậm (Long-Term Scheduler), Điều phối nhanh (Short-Term Schedulers), và Điều phối vừa (Medium-Term Scheduler).

Điều phối chậm (Long-Term Scheduler): đây là trình điều phối làm việc lâu, nó cần phải có thời gian tính toán thật kỹ trước khi đưa ra quyết định chọn giá trị nào từ Job Queue để đưa sang Ready Queue. Và chức năng của nó là để kiểm soát độ đa chương, độ đa chương có nghĩa là số tiến trình ở trạng thái Ready. 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 ( CPU-Bound ) và hướng I/O ( I/O-Bound )
Hướng CPU : tiến trình này dùng CPU nhiều, nhập xuất ít.
Hướng I/O : tiến trình này nhập xuất rất nhiều, nó phải chờ nhập xuất đồng bộ rất nhiều.
Nhằm cân bằng tải cho toàn hệ thống. Nếu chỉ hướng I/O thì nhập xuất bận nhưng CPU lại không có việc làm và ngược lại.

Điều phối nhanh (Short-Term Schedulers): hay còn gọi là điều phối CPU, so với điều phối chậm thì nó làm việc rất nhanh, nếu như nó điều phối chậm thì cả hệ thống sẽ chậm. Nó sẽ tiến hành chọn tiến trình nào đó theo 1 tiêu chí nào đó từ Ready Queue để cấp cho CPU xử lý. Nó có tần suất công việc cao, thường cứ 100ms lại tốn 10ms để xác định tiến trình kế tiếp, như vậy 10/(100+10)=9% thời gian CPU được dùng để điều phối công việc.

Điều phối vừa ( Medium-Term Scheduler ): đây là điều phối nhanh nhưng nó lại mất nhiều thời gian để đẩy bớt các tuyến trình ảnh hưởng đến hiệu năng của hệ thống, 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í tạm ngừng trước đó.

Nhờ các điều phối này mà hỗn hợp các tiến trình trong Ready Queue có tính tối ưu hơn.

TranVuSang (I22B)

Tổng số bài gửi : 53
Join date : 09/03/2013
Age : 27

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Thảo luận Bài 4

Bài gửi  Sponsored content Today at 14:51


Sponsored content


Về Đầu Trang Go down

Trang 1 trong tổng số 9 trang 1, 2, 3, 4, 5, 6, 7, 8, 9  Next

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết