Thảo luận Bài 4
+47
PhanDiecLoi34 (113A)
CaoTheAnh01(113A)
nguyenduchuy19 (113A)
LUUDINHTOAN(I11C)
tranthanhphu49 (113A)
NguyenThiNgocPhuong(113A)
LuuCatTung (113A)
daoquochuy17 (113A)
TranVanTy(113A)
LeThanhNhan45 (113A)
MaiTrieuHung16 (113A)
trantrungnam-HC11TH2A
LeKimHoang (113A)
buidainghia(113A)
NguyenVuLinh12053_I11C
nguyenchithuc(113A)
NguyenThiKimNgan (113A)
nguyenvanlinheban_113a
TranMinhNhat61 (102c)
NguyenVuVien27 (113A)
NguyenVanQuyet57 (113A)
TranVanTien (I12A)
nguyendinhhieu13 (113A)
lechaukhoa(113A)
TranThiThuyQuyen (113A)
TranThanhPhu50 (113A)
VuMinhTan (113A)
DangThiKimKhanh (113A)
NguyenVanNghiem(HC11TH3A)
NguyenPhamTanPhat(113A)
LeVanNhan(I12A)
TranThiThuyHang79 (113A)
DoVanTan(113A)
dothanhnhan44 (113A)
nguyentuannghiaem _(113A)
TranThichThem (113A)
TrangSiMinhHai (113A)
huynhquanghao_I92C
HaHoangCongTien80 (113A)
NguyenThiThuThuy (113A)
Trannguyenkhoa26 (113A)
LeLamThang (113A)
VuDinhThao47 (113A)
PhamQuocAnh02 (113A)
NguyenNgocTrungNam (113A)
NguyenHuuLinh31(113A)
Admin
51 posters
Trang 5 trong tổng số 6 trang
Trang 5 trong tổng số 6 trang • 1, 2, 3, 4, 5, 6
Mô hình luân chuyển giữa 2 tiến trình :
- Phân tích vai trò của khối kiểm soát tiến trình PCB :
+ PCB là một cấu trúc dữ 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 & dữ liệu, số hiệu tiến trình, bộ đếm lệnh, nội dung các thanh ghi, giới hại 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)
+ PCB là một cấu trúc dữ 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 & dữ liệu, số hiệu tiến trình, bộ đếm lệnh, nội dung các thanh ghi, giới hại 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)
NguyenVuLinh12053_I11C- Tổng số bài gửi : 41
Join date : 07/08/2012
Chức năng của điều phối chậm, điều phối nhanh:
Điều phối chậm (Long-term scheduler):
- Chọn tiến trình nào sẽ được đưa vào Ready Queue ( tức là xác định các tiến trình để đưa từ hàng chờ công việc ở trạng thái New chuyển sang hàng chờ sẵn sàng ở trạng thái Ready.)
- Kiểm soát Độ đa chương (số tiến trình trong bộ nhớ)
- Do có nhiều thời gian (tới vài phút), loại Scheduler này có điều kiện để lựa chọn kỹ càng nhằm phối hợp cân đối 2 loại tiến trình:
1. Hướng CPU: tính toán nhiều, ít I/O.
Ví dụ: Trong 1 gia đình có 1 Tivi (CPU), mỗi thành viên trong gia đình (tiến trình) đều có 1 kênh yêu thích, người này phải chờ người kia xem xong mới xem được, vậy Tivi sẽ hoạt động và bận liên tục với nhiều thành viên trong gia đình..
2. Hướng I/O: tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU), các nhân viên trong công ty( tiến trình) chỉ ngồi thực hiện giao dịch tại chỗ (I/O), không sử dụng đến ô tô.Như vậy sẽ gây lãng phí ô tô (CPU).
- Mục đích là cân bằng tải cho toàn hệ thống. Nếu chỉ sử dụng theo hướng CPU, CPU phải làm việc liên tục, luôn bận, làm tốn thời gian của hệ thống. Ngược lại, nếu chỉ sử dụng theo hướng I/O, CPU không phải hoạt động, gây lãng phí tài nguyên, đồng thời làm chậm quá trình. Do vậy, trình điều phối chậm cần phải có để phối hợp cân đối 2 loại tiến trình CPU và I/O.
Điều phối nhanh (Short-term scheduler còn gọi là điều phối CPU) :
- Chọn tiến trình nào sẽ được chiếm CPU để xử lý (tức là từ trạng thái Ready chuyển sang Running)
- Có tần xuất công việc cao: cứ 100ms thì tốn 10ms để xác định tiến trình kế tiếp: 10/(100+10)=9% thời gian CPU được dùng để điều chối chương trình.
Vì đã qua giai đoạn tuyển chọn tốt trước đó nên thời gian tuyển chọn sẽ nhanh hơn.
Ví dụ: 1 công ty vận tải mới thành lập họ mua về rất nhiều xe tải . Giai đoạn đầu họ sẽ phân loại các xe tải này thành ra các nhóm xe thích hợp ,công việc này tốn nhiều thời gian (điều phối chậm) .Nhưng khi họ đã phân loại được ra các nhóm xe thì việc sử dụng, điều phối sẽ diễn ra nhanh chóng (điều phối nhanh).
Ngoài ra, kết hợp 2 loại trình điều phối trên, đưa ra các điều phối mà nhờ đó hỗn hợp các tiến trình trong Ready Queue có tính tối ưu hơn là điều phối vừa (Medium-term scheduler) :
- Điều phối vừa được thêm chức năng chuyển tiến trình từ bộ nhớ chính sang sang bộ nhớ thứ cấp (nhưng vẫn nằm trong không gian bộ nhớ ảo); khi nào cần thì nạp process từ bộ nhớ thứ cấp vào bộ nhớ chính: 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 đó.
Ví dụ: 1 Lớp học thực hành, nhưng sinh viên đông, không đủ máy để làm bài (có nhiều tiến trình). Giảng viên sẽ chỉ định một nhóm ra khỏi lớp (rút các tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong lớp học xong, giảng viên gọi lạ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).
- Chọn tiến trình nào sẽ được đưa vào Ready Queue ( tức là xác định các tiến trình để đưa từ hàng chờ công việc ở trạng thái New chuyển sang hàng chờ sẵn sàng ở trạng thái Ready.)
- Kiểm soát Độ đa chương (số tiến trình trong bộ nhớ)
- Do có nhiều thời gian (tới vài phút), loại Scheduler này có điều kiện để lựa chọn kỹ càng nhằm phối hợp cân đối 2 loại tiến trình:
1. Hướng CPU: tính toán nhiều, ít I/O.
Ví dụ: Trong 1 gia đình có 1 Tivi (CPU), mỗi thành viên trong gia đình (tiến trình) đều có 1 kênh yêu thích, người này phải chờ người kia xem xong mới xem được, vậy Tivi sẽ hoạt động và bận liên tục với nhiều thành viên trong gia đình..
2. Hướng I/O: tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU), các nhân viên trong công ty( tiến trình) chỉ ngồi thực hiện giao dịch tại chỗ (I/O), không sử dụng đến ô tô.Như vậy sẽ gây lãng phí ô tô (CPU).
- Mục đích là cân bằng tải cho toàn hệ thống. Nếu chỉ sử dụng theo hướng CPU, CPU phải làm việc liên tục, luôn bận, làm tốn thời gian của hệ thống. Ngược lại, nếu chỉ sử dụng theo hướng I/O, CPU không phải hoạt động, gây lãng phí tài nguyên, đồng thời làm chậm quá trình. Do vậy, trình điều phối chậm cần phải có để phối hợp cân đối 2 loại tiến trình CPU và I/O.
Điều phối nhanh (Short-term scheduler còn gọi là điều phối CPU) :
- Chọn tiến trình nào sẽ được chiếm CPU để xử lý (tức là từ trạng thái Ready chuyển sang Running)
- Có tần xuất công việc cao: cứ 100ms thì tốn 10ms để xác định tiến trình kế tiếp: 10/(100+10)=9% thời gian CPU được dùng để điều chối chương trình.
Vì đã qua giai đoạn tuyển chọn tốt trước đó nên thời gian tuyển chọn sẽ nhanh hơn.
Ví dụ: 1 công ty vận tải mới thành lập họ mua về rất nhiều xe tải . Giai đoạn đầu họ sẽ phân loại các xe tải này thành ra các nhóm xe thích hợp ,công việc này tốn nhiều thời gian (điều phối chậm) .Nhưng khi họ đã phân loại được ra các nhóm xe thì việc sử dụng, điều phối sẽ diễn ra nhanh chóng (điều phối nhanh).
Ngoài ra, kết hợp 2 loại trình điều phối trên, đưa ra các điều phối mà nhờ đó hỗn hợp các tiến trình trong Ready Queue có tính tối ưu hơn là điều phối vừa (Medium-term scheduler) :
- Điều phối vừa được thêm chức năng chuyển tiến trình từ bộ nhớ chính sang sang bộ nhớ thứ cấp (nhưng vẫn nằm trong không gian bộ nhớ ảo); khi nào cần thì nạp process từ bộ nhớ thứ cấp vào bộ nhớ chính: 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 đó.
Ví dụ: 1 Lớp học thực hành, nhưng sinh viên đông, không đủ máy để làm bài (có nhiều tiến trình). Giảng viên sẽ chỉ định một nhóm ra khỏi lớp (rút các tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong lớp học xong, giảng viên gọi lạ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).
NguyenVuLinh12053_I11C- Tổng số bài gửi : 41
Join date : 07/08/2012
Socket
- Sockets được định nghĩa là một điểm cuối giao tiếp, được xác định bởi địa chỉ IP và số hiệu cổng.
- Là một phương pháp dùng để giao tiếp giữa các tiến trình khác nhau trong mạng máy tính hay là trên một máy đơn.
-
Socket là một trong những phương thức giao tiếp giữa các quá trình
(inter-process communication) như pipe , message queue .... Giả sử ta
muốn thiết kế một hệ thống trao đổi file.
- Hệ thống này hoạt động
như sau : Tất cả dữ liệu được lưu trữ trên một máy chủ mạnh để bảo đảm
an toàn và dễ quản lý Giao tiếp socket giúp chúng ta hiện thực mô hình
client / server dễ dàng hơn.
VD: A muốn đến nhà B thì trước tiên phải
mở cửa đi ra ngoài. Sau đó A đi bộ đến nhà B. Bằng cách nào để đến nhà B
không quan tâm phải đi như thế nào.Khi đến nhà B thì A phải bấm chuông
để B ra mở cửa. Qúa trình kết nối giữa 2 ứng dụng trên mạng cũng giống
như vậy.Client mở một Sockets"Cái cửa' sau đó nó nhờ các lớp mạng tạo ra
kết nối tới Server(không quan tâm là kết nối thế nào). Tiếp theo Server
cũng tạo ra một sockets khác có địa chỉ "cái cửa thứ 2, nhưng có
chuông, số nhà hẻn hoi". Khi có kết nối đúng tới Server dựa vào thông
tin trên sockets của server(giống như client tìm đúng số nhà, bấm
chuông...) Thì server sẽ mở cổng ra và client/server sẽ bắt đầu trao đổi
dữ liệu.
- Là một phương pháp dùng để giao tiếp giữa các tiến trình khác nhau trong mạng máy tính hay là trên một máy đơn.
-
Socket là một trong những phương thức giao tiếp giữa các quá trình
(inter-process communication) như pipe , message queue .... Giả sử ta
muốn thiết kế một hệ thống trao đổi file.
- Hệ thống này hoạt động
như sau : Tất cả dữ liệu được lưu trữ trên một máy chủ mạnh để bảo đảm
an toàn và dễ quản lý Giao tiếp socket giúp chúng ta hiện thực mô hình
client / server dễ dàng hơn.
VD: A muốn đến nhà B thì trước tiên phải
mở cửa đi ra ngoài. Sau đó A đi bộ đến nhà B. Bằng cách nào để đến nhà B
không quan tâm phải đi như thế nào.Khi đến nhà B thì A phải bấm chuông
để B ra mở cửa. Qúa trình kết nối giữa 2 ứng dụng trên mạng cũng giống
như vậy.Client mở một Sockets"Cái cửa' sau đó nó nhờ các lớp mạng tạo ra
kết nối tới Server(không quan tâm là kết nối thế nào). Tiếp theo Server
cũng tạo ra một sockets khác có địa chỉ "cái cửa thứ 2, nhưng có
chuông, số nhà hẻn hoi". Khi có kết nối đúng tới Server dựa vào thông
tin trên sockets của server(giống như client tìm đúng số nhà, bấm
chuông...) Thì server sẽ mở cổng ra và client/server sẽ bắt đầu trao đổi
dữ liệu.
NguyenVuLinh12053_I11C- Tổng số bài gửi : 41
Join date : 07/08/2012
Để thực hiện liên lạc bằng socket, cần tiến hành các thao tác :
- Tạo lập hay mở một socket
- Gắn kết một socket với một địa chỉ
- Liên lạc : có hai kiểu liên lạc tùy thuộc vào chế độ nối kết:
a) Liên lạc trong chế độ không liên kết : liên lạc theo hình thức hộp thư:
- hai tiến trình liên lạc với nhau không kết nối trực tiếp
- mỗi thông điệp phải kèm theo địa chỉ người nhận.
Hình thức liên lạc này có đặc điểm được :
- người gởi không chắc chắn thông điệp của học được gởi đến người nhận,
- một thông điệp có thể được gởi nhiều lần,
- hai thông điệp đượ gởi theo một thứ tự nào đó có thể đến tay người nhận theo một thứ tự khác.
Một
tiến trình sau khi đã mở một socket có thể sử dụng nó để liên lạc với
nhiều tiến trình khác nhau nhờ sử hai primitive send và receive.
b) Liên lạc trong chế độ nối kết:
Một liên kết được thành lập giữa hai tiến trình. Trước khi mối liên
kết này được thiết lập, một trong hai tiến trình phải đợi có một tiến
trình khác yêu cầu kết nối.Có thể sử dụng socket để liên lạc theo mô
hình client-serveur. Trong mô hình này, server sử dụng lời gọi hệ thống
listen và accept để nối kết với client, sau đó , client và server có thể
trao đổi thông tin bằng cách sử dụng các primitive send và receive.
- Hủy một socket
Ví dụ :
Trong
nghi thức truyền thông TCP, mỗi mối nối giữa hai máy tính được xác định
bởi một port, khái niệm port ở đây không phải là một cổng giao tiếp
trên thiết bị vật lý mà chỉ là một khái niệm logic trong cách nhìn của
người lập trình, mỗi port được tương ứng với một số nguyên dương.
Cơ
chế socket có thể sử dụng để chuẩn hoá mối liên lạc giữa các tiến trình
vốn không liên hệ với nhau, và có thể hoạt động trong những hệ thống
khác nhau.
- Gắn kết một socket với một địa chỉ
- Liên lạc : có hai kiểu liên lạc tùy thuộc vào chế độ nối kết:
a) Liên lạc trong chế độ không liên kết : liên lạc theo hình thức hộp thư:
- hai tiến trình liên lạc với nhau không kết nối trực tiếp
- mỗi thông điệp phải kèm theo địa chỉ người nhận.
Hình thức liên lạc này có đặc điểm được :
- người gởi không chắc chắn thông điệp của học được gởi đến người nhận,
- một thông điệp có thể được gởi nhiều lần,
- hai thông điệp đượ gởi theo một thứ tự nào đó có thể đến tay người nhận theo một thứ tự khác.
Một
tiến trình sau khi đã mở một socket có thể sử dụng nó để liên lạc với
nhiều tiến trình khác nhau nhờ sử hai primitive send và receive.
b) Liên lạc trong chế độ nối kết:
Một liên kết được thành lập giữa hai tiến trình. Trước khi mối liên
kết này được thiết lập, một trong hai tiến trình phải đợi có một tiến
trình khác yêu cầu kết nối.Có thể sử dụng socket để liên lạc theo mô
hình client-serveur. Trong mô hình này, server sử dụng lời gọi hệ thống
listen và accept để nối kết với client, sau đó , client và server có thể
trao đổi thông tin bằng cách sử dụng các primitive send và receive.
- Hủy một socket
Ví dụ :
Trong
nghi thức truyền thông TCP, mỗi mối nối giữa hai máy tính được xác định
bởi một port, khái niệm port ở đây không phải là một cổng giao tiếp
trên thiết bị vật lý mà chỉ là một khái niệm logic trong cách nhìn của
người lập trình, mỗi port được tương ứng với một số nguyên dương.
Cơ
chế socket có thể sử dụng để chuẩn hoá mối liên lạc giữa các tiến trình
vốn không liên hệ với nhau, và có thể hoạt động trong những hệ thống
khác nhau.
NguyenVuLinh12053_I11C- Tổng số bài gửi : 41
Join date : 07/08/2012
Phân loại hốc liên lạc(Two types of Sockets)
-Có kết nối- Connection-Oriented(TCP-Transmission Control Protocol):Thiết lập sẵn mối liên kết giữa 2 máy trước khi truyền.
-Không kết nối - Connectionless(UDP- user Datagram Protocol):Không phải thiết lập sẵn mối liên kết trước khi truyền, do đó dể dàng liên lạc với nhiều máy một lúc, nhưng không đảm bảo bằng TCP
-Không kết nối - Connectionless(UDP- user Datagram Protocol):Không phải thiết lập sẵn mối liên kết trước khi truyền, do đó dể dàng liên lạc với nhiều máy một lúc, nhưng không đảm bảo bằng TCP
NguyenVuLinh12053_I11C- Tổng số bài gửi : 41
Join date : 07/08/2012
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.
TrangSiMinhHai (113A)- Tổng số bài gửi : 34
Join date : 17/07/2012
Age : 34
Đến từ : Xì Gòn
Re: Thảo luận Bài 4
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 =>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 =>thông dịch
NguyenThiNgocPhuong(113A)- Tổng số bài gửi : 34
Join date : 17/07/2012
Re: Thảo luận Bài 4
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.
Đ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.
NguyenThiNgocPhuong(113A)- Tổng số bài gửi : 34
Join date : 17/07/2012
Mô hình luân chuyển CPU giữa 2 tiến trình
* 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.
* 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.
Trình bày khái niệm và mô hình chuyển trạng thái của tuyến trình?
.khái niệm : Tiến trình là chương trình trong thời gian thực hiện dưới sự quản lý của hệ điều hành.
ví dụ: mỗi sinh viên trong lớp 11th3a là một tiến trình, Thầy cũng là 1 tiến trình.Thầy hướng dẫn quá trình học tập cho sinh viên cũng giống như hệ điều hành phân phối điều hành cpu cho tiến trình làm việc.
.Mô hình chuyển trạng thái của tiến trình?
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.
rất mong có sự đóng góp ý kiến của Thầy và các bạn!!!
NguyenVuLinh12053_I11C- Tổng số bài gửi : 41
Join date : 07/08/2012
Re: Thảo luận Bài 4
Địng nghĩa tiến trình và các trạng thái của nó
Bài gửi NguyenNgocTrungNam (113A) on 30/7/2012, 22:22
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ứ đó .
• 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ùngvì khi đó mới thực hiện những công việc khách hàng yêu cầu .
Admin
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ùngvì khi đó mới thực hiện những công việc khách hàng yêu cầu .
Bài gửi NguyenNgocTrungNam (113A) on 30/7/2012, 22:22
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ứ đó .
• 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ùngvì khi đó mới thực hiện những công việc khách hàng yêu cầu .
Admin
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ùngvì khi đó mới thực hiện những công việc khách hàng yêu cầu .
NguyenVuLinh12053_I11C- Tổng số bài gửi : 41
Join date : 07/08/2012
Re: Thảo luận Bài 4
Câu 3: Phân biệt các loại trình điều phối và chức năng
Bài gửi HaHoangCongTien80 (113A) on 31/7/2012, 06:22
Điều phối chậm (Long-term 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 (số tiến trình trong bộ nhớ).
• Do có nhiều thời gian (tới vài phút), loại scheduler này có điều kiện để lựa chọn kỹ càng nhằm phối hợp cân đối 2 loại tiến trình
+ Hướng CPU: tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận (phục vụ) cho nhiều người (nhiều tiến trình).
.+Hướng I/O: tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU), các nhân viên trong công ty chỉ ngồi nghiên cứu (I/O), không sử dụng đến ô tô. Vậy quá lãng phí ô tô (CPU)
Điều phối nhanh (Short-term scheduler ) :
• Còn gọi là Điều phối CPU.
• Chọn tiến trình từ Ready Queue để cấp CPU.
• Có tần suất công việc cao. Thường cứ 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ụ: Phòng thực hành nhỏ, nhưng nhiều sinh viên thực hành (nhiều tiến trình). Thầy sẽ mời 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 thực hành xong thầy sẽ mời các bạn bên ngoài vào phòng (đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).
Bài gửi HaHoangCongTien80 (113A) on 31/7/2012, 06:22
Điều phối chậm (Long-term 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 (số tiến trình trong bộ nhớ).
• Do có nhiều thời gian (tới vài phút), loại scheduler này có điều kiện để lựa chọn kỹ càng nhằm phối hợp cân đối 2 loại tiến trình
+ Hướng CPU: tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận (phục vụ) cho nhiều người (nhiều tiến trình).
.+Hướng I/O: tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU), các nhân viên trong công ty chỉ ngồi nghiên cứu (I/O), không sử dụng đến ô tô. Vậy quá lãng phí ô tô (CPU)
Điều phối nhanh (Short-term scheduler ) :
• Còn gọi là Điều phối CPU.
• Chọn tiến trình từ Ready Queue để cấp CPU.
• Có tần suất công việc cao. Thường cứ 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ụ: Phòng thực hành nhỏ, nhưng nhiều sinh viên thực hành (nhiều tiến trình). Thầy sẽ mời 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 thực hành xong thầy sẽ mời các bạn bên ngoài vào phòng (đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).
NguyenVuLinh12053_I11C- Tổng số bài gửi : 41
Join date : 07/08/2012
Phát biểu bài toán sản xuất và tiêu thụ
Phát biểu:
Bài toán sản xuất tiêu thụ được phát biểu chung như sau:
Có một bộ đệm(Buffer) và 2 tiến trình sản xuất Producer và tiến trình tiêu thụ Consumer.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 tieu 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 ra khi bộ đệm trống, và tiến trình Producer không thể sản xuất khi bộ đệm đầy.
Đồng bộ hóa bằng 2 đèn hiệu semFull và semEmpty.
CODE:
Producer()
{
//Chờ trong khi bộ đệm đầy
WaitForSingleObject(semFull, INFINITE);
// Sản xuất sản phẩm và đưa vào Buffer
ReleaseSemaphore(semEmpty);
//Bộ đệm đã có sản phẩm
}
CODE:
Consumer()
{
//Chờ đến khi có sản phẩm
WaitForSingleObject(semEmpty, INFINITE);
// Tiêu thụ sản phẩm
ReleaseSemaphore(semFull);
//Bộ đệm đã có chỗ trống
}
Bài toán sản xuất tiêu thụ được phát biểu chung như sau:
Có một bộ đệm(Buffer) và 2 tiến trình sản xuất Producer và tiến trình tiêu thụ Consumer.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 tieu 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 ra khi bộ đệm trống, và tiến trình Producer không thể sản xuất khi bộ đệm đầy.
Đồng bộ hóa bằng 2 đèn hiệu semFull và semEmpty.
CODE:
Producer()
{
//Chờ trong khi bộ đệm đầy
WaitForSingleObject(semFull, INFINITE);
// Sản xuất sản phẩm và đưa vào Buffer
ReleaseSemaphore(semEmpty);
//Bộ đệm đã có sản phẩm
}
CODE:
Consumer()
{
//Chờ đến khi có sản phẩm
WaitForSingleObject(semEmpty, INFINITE);
// Tiêu thụ sản phẩm
ReleaseSemaphore(semFull);
//Bộ đệm đã có chỗ trống
}
LeKimHoang (113A)- Tổng số bài gửi : 25
Join date : 16/07/2012
Bài toán sản xuất tiêu thụ
Bài toán sản xuất tiêu thụ được phát biểu chung như sau:
Có một bộ đệm(Buffer) và 2 tiến trình sản xuất Producer và tiến trình tiêu thụ Consumer.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 tieu 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 ra khi bộ đệm trống, và tiến trình Producer không thể sản xuất khi bộ đệm đầy.
Đồng bộ hóa bằng 2 đèn hiệu semFull và semEmpty.
CODE:
Producer()
{
//Chờ trong khi bộ đệm đầy
WaitForSingleObject(semFull, INFINITE);
// Sản xuất sản phẩm và đưa vào Buffer
ReleaseSemaphore(semEmpty);
//Bộ đệm đã có sản phẩm
}
CODE:
Consumer()
{
//Chờ đến khi có sản phẩm
WaitForSingleObject(semEmpty, INFINITE);
// Tiêu thụ sản phẩm
ReleaseSemaphore(semFull);
//Bộ đệm đã có chỗ trống
}
Có một bộ đệm(Buffer) và 2 tiến trình sản xuất Producer và tiến trình tiêu thụ Consumer.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 tieu 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 ra khi bộ đệm trống, và tiến trình Producer không thể sản xuất khi bộ đệm đầy.
Đồng bộ hóa bằng 2 đèn hiệu semFull và semEmpty.
CODE:
Producer()
{
//Chờ trong khi bộ đệm đầy
WaitForSingleObject(semFull, INFINITE);
// Sản xuất sản phẩm và đưa vào Buffer
ReleaseSemaphore(semEmpty);
//Bộ đệm đã có sản phẩm
}
CODE:
Consumer()
{
//Chờ đến khi có sản phẩm
WaitForSingleObject(semEmpty, INFINITE);
// Tiêu thụ sản phẩm
ReleaseSemaphore(semFull);
//Bộ đệm đã có chỗ trống
}
Vai trò của khối kiểm soát tiến trình (Process control block) trong việc quản lý tiến trình của Hệ điều hành
Trước khi CPU chuyển từ thực thi tiến trình này sang tiến trình khác, do các tiến trình cần phải sử dụng bộ nhớ để xử lý công việc của chúng, nên hệ điều hành cần phải chuyển toàn bộ dữ liệu của tiến trình đang xử lý trên bộ nhớ sang một vùng nhớ tạm trước khi chuyển sang xử lý tiến trình tiếp theo. Đây chính là chức năng chính của khối kiểm soát tiến trình.
Các thông tin hệ điều hành cần lưu lại trước khi chuyển sang xử lý tiến trình khác bao gồm:
• Credentials (user ID, group ID, effective ID,...)
• Trạng thái process : new, ready, running, waiting…
• Program counter: địa chỉ của lệnh kế tiếp sẽ thực thi
• Các thanh ghi CPU
• Thông tin dùng để định thời CPU: priority,...
• Thông tin bộ nhớ: base/limit register, page tables…
• Thông tin thống kê: CPU time, time limits…
• Thông tin trạng thái I/O: danh sách thiết bị I/O được cấp phát, danh sách các file đang mở,...
• Con trỏ (pointer) đến PCBs khác.
nguyenduchuy19 (113A)- Tổng số bài gửi : 20
Join date : 17/07/2012
Trình điều phối nhanh & chậm
_ Điều phối chậm(long –term queue) chọn 1 tiến trình từ job queue đưa sang qua Ready queue(chuyển từ New sang Ready). Scheduler lựa chọn kỹ các tiến trình nhằm phối hợp cân bằng giữa hai loại tiến trình
+ hướng CPU(CPU-BOUND) tính toán nhiều , ít I/O.
+ hướng I/O(I/O BOUND) tính toán ít , nhiều I/O.
Mục đích nhằm cân bằng tải giữa hai tiến trình..
VD: Trong cuộc thi Vietnam Idol, các thi sinh ngồi đợi bên ngoài đang trong Job Queue ( đều phối chậm),
sau đó giám khảo sẽ gọi 3 bạn vào Ready Queue rồi sẽ gọi liên tục 1 trong 3 bạn lên trình bày (điều phối nhanh)
_ Điều phối nhanh (Short-term scheduler): Chọn tiến trình sẽ chiếm CPU để xử lý (chuyển từ trạng thái Ready sang trạng thái Runing).
VD: Các thí sinh đã được gọi lên trình diễn thì đã biết mình phải làm gì
nguyenduchuy19 (113A)- Tổng số bài gửi : 20
Join date : 17/07/2012
các đặc tính của tiến trình
Điều phối hoạt động của các tiến trình là một vấn đề rất phức tạp, đòi hỏi hệ điều hành khi giải quyết phải xem xét nhiều yếu tố khác nhau để có thể đạt được những mục tiêu đề ra. Một số đặc tính của tiến trình cần được quan tâm như tiêu chuẩn điều phối :
a) Tính hướng xuất / nhập của tiến trình ( I/O-boundedness):
Khi một tiến trình nhận được CPU, chủ yếu nó chỉ sử dụng CPU đến khi phát sinh một yêu cầu nhập xuất ? Hoạt động của các tiến trình như thế thường bao gồm nhiều lượt sử dụng CPU , mỗi lượt trong một thời gian khá ngắn.
b) Tính hướng xử lý của tiến trình ( CPU-boundedness):
Khi một tiến trình nhận được CPU, nó có khuynh hướng sử dụng CPU đến khi hết thời gian dành cho nó ? Hoạt động của các tiến trình như thế thường bao gồm một số ít lượt sử dụng CPU , nhưng mỗi lượt trong một thời gian đủ dài.
c) Tiến trình tương tác hay xử lý theo lô :
Người sử dụng theo kiểu tương tác thường yêu cầu được hồi đáp tức thời đối với các yêu cầu của họ, trong khi các tiến trình của tác vụ được xử lý theo lô nói chung có thể trì hoãn trong một thời gian chấp nhận được.
d) Độ ưu tiên của tiến trình :
Các tiến trình có thể được phân cấp theo một số tiêu chuẩn đánh giá nào đó, một cách hợp lý, các tiến trình quan trọng hơn ( có độ ưu tiên cao hơn) cần được ưu tiên hơn.
e) Thời gian đã sử dụng CPU của tiến trình :
Một số quan điểm ưu tiên chọn những tiến trình đã sử dụng CPU nhiều thời gian nhất vì hy vọng chúng sẽ cần ít thời gian nhất để hoàn tất và rời khỏi hệ thống . Tuy nhiên cũng có quan điểm cho rằng các tiến trình nhận được CPU trong ít thời gian là những tiến trình đã phải chờ lâu nhất, do vậy ưu tiên chọn chúng.
f) Thời gian còn lại tiến trình cần để hoàn tất :
Có thể giảm thiểu thời gian chờ đợi trung bình của các tiến trình bằng cách cho các tiến trình cần ít thời gian nhất để hoàn tất được thực hiện trước. Tuy nhiên đáng tiếc là rất hiếm khi biết được tiến trình cần bao nhiêu thời gian nữa để kết thúc xử lý.
a) Tính hướng xuất / nhập của tiến trình ( I/O-boundedness):
Khi một tiến trình nhận được CPU, chủ yếu nó chỉ sử dụng CPU đến khi phát sinh một yêu cầu nhập xuất ? Hoạt động của các tiến trình như thế thường bao gồm nhiều lượt sử dụng CPU , mỗi lượt trong một thời gian khá ngắn.
b) Tính hướng xử lý của tiến trình ( CPU-boundedness):
Khi một tiến trình nhận được CPU, nó có khuynh hướng sử dụng CPU đến khi hết thời gian dành cho nó ? Hoạt động của các tiến trình như thế thường bao gồm một số ít lượt sử dụng CPU , nhưng mỗi lượt trong một thời gian đủ dài.
c) Tiến trình tương tác hay xử lý theo lô :
Người sử dụng theo kiểu tương tác thường yêu cầu được hồi đáp tức thời đối với các yêu cầu của họ, trong khi các tiến trình của tác vụ được xử lý theo lô nói chung có thể trì hoãn trong một thời gian chấp nhận được.
d) Độ ưu tiên của tiến trình :
Các tiến trình có thể được phân cấp theo một số tiêu chuẩn đánh giá nào đó, một cách hợp lý, các tiến trình quan trọng hơn ( có độ ưu tiên cao hơn) cần được ưu tiên hơn.
e) Thời gian đã sử dụng CPU của tiến trình :
Một số quan điểm ưu tiên chọn những tiến trình đã sử dụng CPU nhiều thời gian nhất vì hy vọng chúng sẽ cần ít thời gian nhất để hoàn tất và rời khỏi hệ thống . Tuy nhiên cũng có quan điểm cho rằng các tiến trình nhận được CPU trong ít thời gian là những tiến trình đã phải chờ lâu nhất, do vậy ưu tiên chọn chúng.
f) Thời gian còn lại tiến trình cần để hoàn tất :
Có thể giảm thiểu thời gian chờ đợi trung bình của các tiến trình bằng cách cho các tiến trình cần ít thời gian nhất để hoàn tất được thực hiện trước. Tuy nhiên đáng tiếc là rất hiếm khi biết được tiến trình cần bao nhiêu thời gian nữa để kết thúc xử lý.
nguyenduchuy19 (113A)- Tổng số bài gửi : 20
Join date : 17/07/2012
Các kiểu trình biên dịch
Trình biên dịch cùng bản và trình biên dịch chéo bản
Tất cả các trình biên dịch đều hoặc là biên dịch cùng bản hoặc là biên dịch chéo bản.
Một trình biên dịch có thể sản xuất ra mã chủ định để chạy trên cùng một kiểu máy tính và một kiểu hệ điều hành như là chạy trên trên máy mà trình biên dịch tự nó tiến hành được gọi là một trình biên dịch cùng bản.
Một loại khác, trình biên dịch có thể sản xuất ra mã mà được thiết kế để chạy trên các kiểu máy tính khác hay hệ điều hành khác. Trường hợp này gọi là trình biên dịch chéo bản. Các trình biên dịch chéo bản thì rất có ích khi gặp một hệ thống phần cứng mới trong lần đầu tiên. Trình biên dịch chéo bản cũng rất cần khi việc phát triển phần mềm cho các hệ thống vi điều khiển, mà chúng chỉ có vừa đủ kho lưu trữ cho mã máy cuối, không đủ để tải trình biên dịch. (như trường hợp dịch chương trình để chạy trên các palmtop và các điện thoại di động chẳng hạn).
Số bước chuyển dịch
Tất cả các trình biên dịch thì có thể là một bước hay nhiều bước
Trình biên dịch một bước: Với loại này, sự chuyển dịch hoàn tất trong một bước và do đó rất nhanh.
Thí dụ của các trình biên dịch trước đây cho Pascal hay Borland C là trình biên dịch một bước.
Các trình biên dịch cần nhiều hơn một bước để hoàn tất gọi là trình biên dịch nhiều bước. Các kiểu trình biên dịch nhiều bước bao gồm:
Trình biên dịch nguồn sang nguồn là loại trình biên dịch nhận vào mã nguồn là một ngôn ngữ cấp cao và chuyển dịch thành một ngôn ngữ cấp cao khác.
Thí dụ: Một trình biên dịch tự động song song hoá sẽ thường xuyên lấy chương trình trong ngôn ngữ cấp cao ở ngõ vào và chuyển dạng mã nguồn và chú giải nó với các chú giải mã song song (như OpenMP hay cấu trúc ngôn ngữ (như các câu lệnh DOALL của Fortran)).
Trình biên dịch phân đoạn biên dịch sang ngôn ngữ ASM của một máy lý thuyết như là vài tiến hành của Prolog. Loại máy Prolog này còn được gọi là máy trừu tượng Warren (hay WAM).
Thí dụ: Các trình biên dịch bytecode cho Java, Python và nhiều trình biên dịch khác nữa là một kiểu con của kiểu này.
Trình biên dịch động hay còn gọi là trình biên dịch JIT sẽ chuyển dịch các ứng dụng sang bytecode, sau đó, bytecode sẽ được dịch sang mã của ngôn ngữ máy tương thích trước khi thi hành.
Thí dụ: Trình biên dịch JIT được dùng bởi Smalltalk, Java, cũng như dùng bởi Ngôn ngữ trung gian thông dụng của Microsoft.NET.
Các đặc tính khác
Đặc biệt, một trình biên dịch có thể có thêm các chức năng sau đây:
Trình biên dịch mã liên kết là loại trình biên dịch cho phép thay thế các dòng kí tự trong (mã) nguồn bằng các khối mã nhị phân sẵn có. Các khối mã nhị phân này có thể có nhiều cấp độ khác nhau.
Thí dụ: các trình biên dịch trong hầu hết các kiến trúc của FORTH. Trong thực tế, một vài trình biên dịch FORTH có thể dịch các chương trình mà không cần đến hệ điều hành.
Trình biên dịch tăng tiến. Trong trình biên dịch tăng tiến, các hàm riêng lẻ có thể được dịch trong thời gian thi hành (runtime) mà các hàm này cũng bao gồm các chức năng thông dịch.
Thí dụ: Kiến trúc dịch tăng tiến xuất hiện từ 1962 và vẫn còn được sử dụng trong các hệ thống Lisp.
Trình biên dịch đa năng là trình biên dịch có thể được điều chỉnh để tạo ra mã cho các kiến trúc CPU khác nhau một cách tương đối dễ dàng. Mã đối tượng làm ra bởi các trình biên dịch này thường có chất lượng kém hơn là các mã được tạo ra từ các trình biên dịch chỉ chuyên dùng cho đúng loại CPU. Trình biên dịch đa năng thường cũng là trình biên dịch chéo bản.
Thí dụ: GCC là một loại trình biên dịch đa năng miễn phí rất phổ biến.
Trình biên dịch song song hóa là loại trình biên dịch có khả năng chuyển đổi một chương trình vào được viết theo kiểu liên tục sang một dạng thuận tiện trên kiến trúc của máy tính song song.
Tất cả các trình biên dịch đều hoặc là biên dịch cùng bản hoặc là biên dịch chéo bản.
Một trình biên dịch có thể sản xuất ra mã chủ định để chạy trên cùng một kiểu máy tính và một kiểu hệ điều hành như là chạy trên trên máy mà trình biên dịch tự nó tiến hành được gọi là một trình biên dịch cùng bản.
Một loại khác, trình biên dịch có thể sản xuất ra mã mà được thiết kế để chạy trên các kiểu máy tính khác hay hệ điều hành khác. Trường hợp này gọi là trình biên dịch chéo bản. Các trình biên dịch chéo bản thì rất có ích khi gặp một hệ thống phần cứng mới trong lần đầu tiên. Trình biên dịch chéo bản cũng rất cần khi việc phát triển phần mềm cho các hệ thống vi điều khiển, mà chúng chỉ có vừa đủ kho lưu trữ cho mã máy cuối, không đủ để tải trình biên dịch. (như trường hợp dịch chương trình để chạy trên các palmtop và các điện thoại di động chẳng hạn).
Số bước chuyển dịch
Tất cả các trình biên dịch thì có thể là một bước hay nhiều bước
Trình biên dịch một bước: Với loại này, sự chuyển dịch hoàn tất trong một bước và do đó rất nhanh.
Thí dụ của các trình biên dịch trước đây cho Pascal hay Borland C là trình biên dịch một bước.
Các trình biên dịch cần nhiều hơn một bước để hoàn tất gọi là trình biên dịch nhiều bước. Các kiểu trình biên dịch nhiều bước bao gồm:
Trình biên dịch nguồn sang nguồn là loại trình biên dịch nhận vào mã nguồn là một ngôn ngữ cấp cao và chuyển dịch thành một ngôn ngữ cấp cao khác.
Thí dụ: Một trình biên dịch tự động song song hoá sẽ thường xuyên lấy chương trình trong ngôn ngữ cấp cao ở ngõ vào và chuyển dạng mã nguồn và chú giải nó với các chú giải mã song song (như OpenMP hay cấu trúc ngôn ngữ (như các câu lệnh DOALL của Fortran)).
Trình biên dịch phân đoạn biên dịch sang ngôn ngữ ASM của một máy lý thuyết như là vài tiến hành của Prolog. Loại máy Prolog này còn được gọi là máy trừu tượng Warren (hay WAM).
Thí dụ: Các trình biên dịch bytecode cho Java, Python và nhiều trình biên dịch khác nữa là một kiểu con của kiểu này.
Trình biên dịch động hay còn gọi là trình biên dịch JIT sẽ chuyển dịch các ứng dụng sang bytecode, sau đó, bytecode sẽ được dịch sang mã của ngôn ngữ máy tương thích trước khi thi hành.
Thí dụ: Trình biên dịch JIT được dùng bởi Smalltalk, Java, cũng như dùng bởi Ngôn ngữ trung gian thông dụng của Microsoft.NET.
Các đặc tính khác
Đặc biệt, một trình biên dịch có thể có thêm các chức năng sau đây:
Trình biên dịch mã liên kết là loại trình biên dịch cho phép thay thế các dòng kí tự trong (mã) nguồn bằng các khối mã nhị phân sẵn có. Các khối mã nhị phân này có thể có nhiều cấp độ khác nhau.
Thí dụ: các trình biên dịch trong hầu hết các kiến trúc của FORTH. Trong thực tế, một vài trình biên dịch FORTH có thể dịch các chương trình mà không cần đến hệ điều hành.
Trình biên dịch tăng tiến. Trong trình biên dịch tăng tiến, các hàm riêng lẻ có thể được dịch trong thời gian thi hành (runtime) mà các hàm này cũng bao gồm các chức năng thông dịch.
Thí dụ: Kiến trúc dịch tăng tiến xuất hiện từ 1962 và vẫn còn được sử dụng trong các hệ thống Lisp.
Trình biên dịch đa năng là trình biên dịch có thể được điều chỉnh để tạo ra mã cho các kiến trúc CPU khác nhau một cách tương đối dễ dàng. Mã đối tượng làm ra bởi các trình biên dịch này thường có chất lượng kém hơn là các mã được tạo ra từ các trình biên dịch chỉ chuyên dùng cho đúng loại CPU. Trình biên dịch đa năng thường cũng là trình biên dịch chéo bản.
Thí dụ: GCC là một loại trình biên dịch đa năng miễn phí rất phổ biến.
Trình biên dịch song song hóa là loại trình biên dịch có khả năng chuyển đổi một chương trình vào được viết theo kiểu liên tục sang một dạng thuận tiện trên kiến trúc của máy tính song song.
TranMinhNhat61 (102c)- Tổng số bài gửi : 55
Join date : 16/07/2012
Câu 5: Trình bày 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ả,...
• 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ả,...
TranMinhNhat61 (102c)- Tổng số bài gửi : 55
Join date : 16/07/2012
Liên lạc trực tiếp và gián tiếp giữa các tiến trình.
*Liên lạc trực tiếp:
- Theo địa chỉ đối xứng
Send (P, Message) - Gửi nhận 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 ( cả 2 bên đều biết chính xác tên của nhau khi gửi, nhận)
- Theo địa chỉ phi đối xứng
Send (P, Message) - Gửi nhận 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:
- 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: nằm triong vùng địa chỉ của một tiến trình nào đó.
+ Hộp thư hệ điều hành: nằm trong vùng địa chỉ của hệ điều hành.
- Theo địa chỉ đối xứng
Send (P, Message) - Gửi nhận 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 ( cả 2 bên đều biết chính xác tên của nhau khi gửi, nhận)
- Theo địa chỉ phi đối xứng
Send (P, Message) - Gửi nhận 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:
- 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: nằm triong vùng địa chỉ của một tiến trình nào đó.
+ Hộp thư hệ điều hành: nằm trong vùng địa chỉ của hệ điều hành.
TranThiThuyHang79 (113A)- Tổng số bài gửi : 46
Join date : 24/07/2012
Age : 34
Đến từ : Tiền Giang
Tiến trình khác Chương trình như thế nào?
- Tiến trình là chương trình trong thời gian thực hiện (dưới sự quản lý của HĐH). Có sự phân biệt tiến trình hệ thống với tiến trình người dùng.
- Bản thân chương trình không là tiến trình vì là thực thể thụ động, trong khi tiến trình là thực thể hoạt động với nhiều thông 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.
- Bản thân chương trình không là tiến 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ông 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.
TranThiThuyHang79 (113A)- Tổng số bài gửi : 46
Join date : 24/07/2012
Age : 34
Đến từ : Tiền Giang
Thế nào là tiến trình
Tiến trình (tiếng Latinh: processus, tức là "sự chuyển động" là một sự việc xảy ra tự nhiên hay sự liên tiếp các thao tác có mục đích hoặc sự kiện.
Trong khoa học máy tính, tiến trình là một thực thể điều khiển đoạn mã lệnh có riêng một không gian địa chỉ, có ngăn xếp (stack) riêng rẽ, có bảng chứa các số miêu tả file (file descriptor) dược mở cùng tiến trình và đặc biệt là có một định danh PID (process identifier) duy nhất trong toàn bộ hệ thống vào thời điểm tiến trình đang chạy
Trong khoa học máy tính, tiến trình là một thực thể điều khiển đoạn mã lệnh có riêng một không gian địa chỉ, có ngăn xếp (stack) riêng rẽ, có bảng chứa các số miêu tả file (file descriptor) dược mở cùng tiến trình và đặc biệt là có một định danh PID (process identifier) duy nhất trong toàn bộ hệ thống vào thời điểm tiến trình đang chạy
CaoTheAnh01(113A)- Tổng số bài gửi : 28
Join date : 16/07/2012
Phân biệt điều phối chậm và điều phối nhanh
Điều phối chậm (Long-term scheduler (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.
PhanDiecLoi34 (113A)- Tổng số bài gửi : 33
Join date : 17/07/2012
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.
PhanDiecLoi34 (113A)- Tổng số bài gửi : 33
Join date : 17/07/2012
Phân biệt các loại trình điều phối và chức năng
Điều phối chậm (Long-term 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 (số tiến trình trong bộ nhớ).
• Do có nhiều thời gian (tới vài phút), loại scheduler này có điều kiện để lựa chọn kỹ càng nhằm phối hợp cân đối 2 loại tiến trình
+ Hướng CPU: tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận (phục vụ) cho nhiều người (nhiều tiến trình).
.+Hướng I/O: tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU), các nhân viên trong công ty chỉ ngồi nghiên cứu (I/O), không sử dụng đến ô tô. Vậy quá lãng phí ô tô (CPU)
Điều phối nhanh (Short-term scheduler ) :
• Còn gọi là Điều phối CPU.
• Chọn tiến trình từ Ready Queue để cấp CPU.
• Có tần suất công việc cao. Thường cứ 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ụ: Phòng thực hành nhỏ, nhưng nhiều sinh viên thực hành (nhiều tiến trình). Thầy sẽ mời 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 thực hành xong thầy sẽ mời các bạn bên ngoài vào phòng (đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).
• 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 (số tiến trình trong bộ nhớ).
• Do có nhiều thời gian (tới vài phút), loại scheduler này có điều kiện để lựa chọn kỹ càng nhằm phối hợp cân đối 2 loại tiến trình
+ Hướng CPU: tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận (phục vụ) cho nhiều người (nhiều tiến trình).
.+Hướng I/O: tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU), các nhân viên trong công ty chỉ ngồi nghiên cứu (I/O), không sử dụng đến ô tô. Vậy quá lãng phí ô tô (CPU)
Điều phối nhanh (Short-term scheduler ) :
• Còn gọi là Điều phối CPU.
• Chọn tiến trình từ Ready Queue để cấp CPU.
• Có tần suất công việc cao. Thường cứ 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ụ: Phòng thực hành nhỏ, nhưng nhiều sinh viên thực hành (nhiều tiến trình). Thầy sẽ mời 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 thực hành xong thầy sẽ mời các bạn bên ngoài vào phòng (đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).
NguyenHuuLinh31(113A)- Tổng số bài gửi : 33
Join date : 19/07/2012
Trang 5 trong tổng số 6 trang • 1, 2, 3, 4, 5, 6
Similar topics
» Giải giúp bài RRS này nhé
» Thảo luận các vấn đề của Môn học
» Thảo luận Bài 3
» Thảo luận bài 4
» Thảo luận Bài 7
» Thảo luận các vấn đề của Môn học
» Thảo luận Bài 3
» Thảo luận bài 4
» Thảo luận Bài 7
Trang 5 trong tổng số 6 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết