Thảo luận Bài 4
+111
DangLeHieu(I102C)
NguyenTuanHai_I12A
Đỗ Phan Diễm Hương I12A
TRANTHINHPHAT (I11C)
lengocthuthao89 (i11c)
NguyenthechinhI12A
DaoQuangTri38(I12A)
LyHuynhThanhYen (I11C)
BuiDaiNghia-102C
nguyenhuutho
TrinhThiPhuongThaoI12C
TranVanBao(I12A)
tranthithanhuyen85 (I11C)
KimHue36 (I11C)
phanngocthinh(i12a)
fantomas113
PhamDucPhuong(I12A)
VoTrongQuyet-I12A
vominhhai_09H1012028
nguyenvanhonglac_0066
leminhtam13(I12A)
TruongQuocTrung_I12A
HuaTranTuQuyen(I12A)
NguyenNgocDuy(I12A)
PhamMinhLuan(102C)
sonha89
Nguyen Doan Linh051(I11c)
HuynhMinhChanh(i91C)
ngophicamI12A
HuynhNguyenTrungHau_I12C
LeMinhDuc (I11C)
huynhtamhaoI12A
LuongGiaDuc(I12A)
HUYNHMINHHAI(I12A)
TranHuyCuong17 (I12A)
NguyenThanhCang(I12A)
lymydung_I12A
VuNguyenQuynhLam_I12C
TranHoangNhanI12C
BuiHuongTra(I12A)
NgoXuanQuoc_(102C)
NguyenVinhQuang_I12A
LeMInhTien(I11C)
nguyenthihongtham_I12C
maidangvu_I12A
NguyenVanBenI12C
NguyenVanThang25 (I12A)
phamduyI12A
NguyenHaCamThu(I12A)
TranTrungTinh(I12A)
trantrungnam-HC11TH2A
LacChiHao(I12A)
luthioanh-I12A
nguyen_tuan_phat_I12A
lacongchinh_I12A
lethanhsang_I12A
TranTrungHienI12C
plminhhoangI12A
ngothihanHC11TH2A
TranBinhCongLuanI12A
nguyenthanhphongHC11TH2A
quynhnhi.nguyen_I12A
LeXuanHau (I12C)
DaoThaiHuyI12A
levanhop.it
Nguyen Sy Hung I12A
thailongI12C
nguyenthingocmai_I12A
hoanghaiyen
Đinh Đông Dương
NguyenThiHue48(I12A)
phuongnguyen
nguyenthaihiep (I11C)
nguyenthimao_I12A
TranMinhTuan143(I12A)
NguyenHongHaiI12C
nguyenhuutrang_11h1010135
nguyenthanhnghi_I12C
quicly_I111c
NguyenThiHongYen(I12A)
NgoPhuQuoc_I12C
TranThiNgocQuynh(I12C)
hoxuanvu_I12A
LuongHueChanh_I12A
TranThiMyKhanh(I12A)
DoanNgocDan(I12A)
LeLamThang (113A)
tranvanthien27(I12C)
BuiPhamAnBinh(I12A)
LeThanhTung (I11C)
LeQuocKhanh-11H1010059
trinhvanminh_11h1010077
letanthanh18(I12A)
vothingocthuy87(I11C)
NguyenTriVienI12A
NguyenHoangThangI12A
LeThiMaiPhuongI12A
hoanggiangI12C
TranPhiLong (I11C)
phamphihung55
TranThiAnhDao89I12C
TrinhVinhThanh (I12A)
lequanghanh(102c)
Truc_Phuong(I111C)
LePhucHiep(102C)
NguyenXuanTri28
huynhvanhung(I12A)
VoThiHongNhung(I12A)
PhamQuangHien_I12A
minhtam_I12C
Admin
115 posters
Trang 14 trong tổng số 15 trang
Trang 14 trong tổng số 15 trang • 1 ... 8 ... 13, 14, 15
Phân tích vai trò của khối kiểm soát tiến trình.
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).
Vd: 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.
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).
Vd: 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.
quynhnhi.nguyen_I12A- Tổng số bài gửi : 17
Join date : 07/03/2012
So sánh Job Queue và Ready Queue
Job Queue: là hàng chờ công việc, chứa các tiến trình chờ được vận hành.
Ready Queue: là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU.
Giống nhau:
- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:
- Dùng giải thuật điều phối chậm(Long - term Scheduler) để đưa các tiến trình từ Job Queue vào Ready Queue.
- Dùng giải thuật điều phối nhanh(Short - term Scheduler) chọn các tiến trình trong Ready Queue để cấp CPU.
vd:trò chơi hãy chọn giá đúng
nhận phiếu tham gia tò chơi, chọn khoảng 5 người đưa vào ready queue trả lời nhanh, để tại 1 thời điểm chọn 1 người tham chơi chính thức.
Ready Queue: là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU.
Giống nhau:
- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:
- Dùng giải thuật điều phối chậm(Long - term Scheduler) để đưa các tiến trình từ Job Queue vào Ready Queue.
- Dùng giải thuật điều phối nhanh(Short - term Scheduler) chọn các tiến trình trong Ready Queue để cấp CPU.
vd:trò chơi hãy chọn giá đúng
nhận phiếu tham gia tò chơi, chọn khoảng 5 người đưa vào ready queue trả lời nhanh, để tại 1 thời điểm chọn 1 người tham chơi chính thức.
quynhnhi.nguyen_I12A- Tổng số bài gửi : 17
Join date : 07/03/2012
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 (đặt dưới sự quản lý của hệ điều hành). Có sự phận biệt tiến trình hệ thống (của HĐH) với tiến trình người dùng.
- Bản thân chương trình không là tiến trình vì là thực thể thụ động, trong khi tiến trình là thực thể hoạt động với nhiều thông tin 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 trạng thái trong đó có bộ đếm chương trình cho biết vị trí lệnh hiện hành.
nguyenhuutho- Tổng số bài gửi : 31
Join date : 09/03/2012
Re: Thảo luận Bài 4
UDP (User Datagram Protocol) là một trong những giao thức cốt lõi của giao thức TCP/IP. Dùng UDP, chương trình trên mạng máy tính có thể gởi những dữ liệu ngắn được gọi là datagram tới máy khác. UDP không cung cấp sự tin cậy và thứ tự truyền nhận mà TCP làm; các gói dữ liệu có thể đến không đúng thứ tự hoặc bị mất mà không có thông báo. Tuy nhiên UDP nhanh và hiệu quả hơn đối với các mục tiêu như kích thước nhỏ và yêu cầu khắt khe về thời gian. Do bản chất không trạng thái của nó nên nó hữu dụng đối với việc trả lời các truy vấn nhỏ với số lượng lớn người yêu cầu.
Tại sao vẩn dùng UDP? ( Theo mình tóm gọn như sau)
- Không cần thiết lập kết nối: dành cho ứng dụng chỉ chạy từ một phía
- Không duy trì trạng thái kết nối: Ứng dụng phục vụ nhiều người hơn
- Tiêu đề gói nhỏ: 8byte
- Không kiểm xoát tốc độ gửi: Gửi trước sau hy nhanh chậm thì tùy ý
- Không cần độ chính xác cao: Dữ liệu bị lỗi vẫn chấp nhận được
TCP (Transmission Control Protocol - "Giao thức điều khiển truyền vận") là một trong các giao thức cốt lõi của bộ giao thức TCP/IP. Sử dụng TCP, các ứng dụng trên các máy chủ được nối mạng có thể tạo các "kết nối" với nhau, mà qua đó chúng có thể trao đổi dữ liệu hoặc các gói tin. Giao thức này đảm bảo chuyển giao dữ liệu tới nơi nhận một cách đáng tin cậy và đúng thứ tự. TCP còn phân biệt giữa dữ liệu của nhiều ứng dụng (chẳng hạn, dịch vụ Web và dịch vụ thư điện tử) đồng thời chạy trên cùng một máy chủ.
So sánh một cách đơn giản :
Giống nhau : đều là các giao thức mạng TCP/IP, đều có chức năng kết nối các máy lại với nhau, và có thể gửi dữ liệu cho nhau....
Khác nhau (cơ bản):
các header của TCP và UDP khác nhau ở kích thước (20 và 8 byte) nguyên nhân chủ yếu là do TCP phải hộ trợ nhiều chức năng hữu ích hơn(như khả năng khôi phục lỗi). UDP dùng ít byte hơn cho phần header và yêu cầu xử lý từ host ít hơn
TCP :
- Dùng cho mạng WAN
- Không cho phép mất gói tin
- Đảm bảo việc truyền dữ liệu
- Tốc độ truyền thấp hơn UDP
UDP:
- Dùng cho mạng LAN
- Cho phép mất dữ liệu
- Không đảm bảo.
- Tốc độ truyền cao, VolP truyền tốt qua UDP
Tại sao vẩn dùng UDP? ( Theo mình tóm gọn như sau)
- Không cần thiết lập kết nối: dành cho ứng dụng chỉ chạy từ một phía
- Không duy trì trạng thái kết nối: Ứng dụng phục vụ nhiều người hơn
- Tiêu đề gói nhỏ: 8byte
- Không kiểm xoát tốc độ gửi: Gửi trước sau hy nhanh chậm thì tùy ý
- Không cần độ chính xác cao: Dữ liệu bị lỗi vẫn chấp nhận được
TCP (Transmission Control Protocol - "Giao thức điều khiển truyền vận") là một trong các giao thức cốt lõi của bộ giao thức TCP/IP. Sử dụng TCP, các ứng dụng trên các máy chủ được nối mạng có thể tạo các "kết nối" với nhau, mà qua đó chúng có thể trao đổi dữ liệu hoặc các gói tin. Giao thức này đảm bảo chuyển giao dữ liệu tới nơi nhận một cách đáng tin cậy và đúng thứ tự. TCP còn phân biệt giữa dữ liệu của nhiều ứng dụng (chẳng hạn, dịch vụ Web và dịch vụ thư điện tử) đồng thời chạy trên cùng một máy chủ.
So sánh một cách đơn giản :
Giống nhau : đều là các giao thức mạng TCP/IP, đều có chức năng kết nối các máy lại với nhau, và có thể gửi dữ liệu cho nhau....
Khác nhau (cơ bản):
các header của TCP và UDP khác nhau ở kích thước (20 và 8 byte) nguyên nhân chủ yếu là do TCP phải hộ trợ nhiều chức năng hữu ích hơn(như khả năng khôi phục lỗi). UDP dùng ít byte hơn cho phần header và yêu cầu xử lý từ host ít hơn
TCP :
- Dùng cho mạng WAN
- Không cho phép mất gói tin
- Đảm bảo việc truyền dữ liệu
- Tốc độ truyền thấp hơn UDP
UDP:
- Dùng cho mạng LAN
- Cho phép mất dữ liệu
- Không đảm bảo.
- Tốc độ truyền cao, VolP truyền tốt qua UDP
Cấu trúc dữ liệu khối quản lý tiến trình
Hệ điều hành quản lý các tiến trình trong hệ thống thông qua khối quản lý tiến trình (process control block -PCB). PCB là một vùng nhớ lưu trữ các thông tin mô tả cho tiến trình, với các thành phần chủ yếu bao gồm :
Định danh của tiến trình (1) : giúp phân biệt các tiến trình
Trạng thái tiến trình (2): xác định hoạt động hiện hành của tiến trình.
Ngữ cảnh của tiến trình (3): mô tả các tài nguyên tiến trình đang trong quá trình, hoặc để phục vụ cho hoạt động hiện tại, hoặc để làm cơ sở phục hồi hoạt động cho tiến trình, bao gồm các thông tin về:
Trạng thái CPU: bao gồm nội dung các thanh ghi, quan trọng nhất là con trỏ lệnh IP lưu trữ địa chỉ lệnh kế tiếp tiến trình sẽ xử lý. Các thông tin này cần được lưu trữ khi xảy ra một ngắt, nhằm có thể cho phép phục hồi hoạt động của tiến trình đúng như trước khi bị ngắt.
Bộ xử lý: dùng cho máy có cấu hình nhiều CPU, xác định số hiệu CPU mà tiến trình đang sử dụng.
Bộ nhớ chính: danh sách các khối nhớ được cấp cho tiến trình.
Tài nguyên sử dụng: danh sách các tài mguyên hệ thống mà tiến trình đang sử dụng.
Tài nguyên tạo lập: danh sách các tài nguyên được tiến trình tạo lập.
Thông tin giao tiếp (4): phản ánh các thông tin về quan hệ của tiến trình với các tiến trình khác trong hệ thống :
Tiến trình cha: tiến trình tạo lập tiến trình này .
Tiến trình con: các tiến trình do tiến trình này tạo lập .
Độ ưu tiên : giúp bộ điều phối có thông tin để lựa chọn tiến trình được cấp CPU.
Thông tin thống kê (5): đây là những thông tin thống kê về hoạt động của tiến trình, như thời gian đã sử dụng CPU,thời gian chờ. Các thông tin này có thể có ích cho công việc đánh giá tình hình hệ thống và dự đoán các tình huống tương lai.
Định danh của tiến trình (1) : giúp phân biệt các tiến trình
Trạng thái tiến trình (2): xác định hoạt động hiện hành của tiến trình.
Ngữ cảnh của tiến trình (3): mô tả các tài nguyên tiến trình đang trong quá trình, hoặc để phục vụ cho hoạt động hiện tại, hoặc để làm cơ sở phục hồi hoạt động cho tiến trình, bao gồm các thông tin về:
Trạng thái CPU: bao gồm nội dung các thanh ghi, quan trọng nhất là con trỏ lệnh IP lưu trữ địa chỉ lệnh kế tiếp tiến trình sẽ xử lý. Các thông tin này cần được lưu trữ khi xảy ra một ngắt, nhằm có thể cho phép phục hồi hoạt động của tiến trình đúng như trước khi bị ngắt.
Bộ xử lý: dùng cho máy có cấu hình nhiều CPU, xác định số hiệu CPU mà tiến trình đang sử dụng.
Bộ nhớ chính: danh sách các khối nhớ được cấp cho tiến trình.
Tài nguyên sử dụng: danh sách các tài mguyên hệ thống mà tiến trình đang sử dụng.
Tài nguyên tạo lập: danh sách các tài nguyên được tiến trình tạo lập.
Thông tin giao tiếp (4): phản ánh các thông tin về quan hệ của tiến trình với các tiến trình khác trong hệ thống :
Tiến trình cha: tiến trình tạo lập tiến trình này .
Tiến trình con: các tiến trình do tiến trình này tạo lập .
Độ ưu tiên : giúp bộ điều phối có thông tin để lựa chọn tiến trình được cấp CPU.
Thông tin thống kê (5): đây là những thông tin thống kê về hoạt động của tiến trình, như thời gian đã sử dụng CPU,thời gian chờ. Các thông tin này có thể có ích cho công việc đánh giá tình hình hệ thống và dự đoán các tình huống tương lai.
Bài Toán Sản Xuất và tiêu thụ
Bài toán sản xuất – tiêu thụ được cụ thể hóa trong hệ thống phân tán như
sau:
- Vùng đệm chung có N mục được thay bằng N thông điệp
- Khởi đầu, quá trình tiêu thụ gởi N thông điệp rỗng cho quá trình sản
xuất.
- Khi quá trình sản xuất muốn ghi 1 mục, nó lấy một thông điệp rỗng để
ghi và gởi lại cho quá trình tiêu thụ.
Trong mô hình này, số thông điệp còn lại luôn là một giá trị hằng, nên
chúng có thể được lưu giữ trên một vùng nhớ có kích thước xác định.
void producer(void)
{ int item;
message m;
while (TRUE)
{
item = produce_item(); /* generate someth
receive(consumer, &m); /* wait for an emp
build_message(&m, item); /* construct a mes
send(consumer, &m); /* send item to co
}
}
void consumer(void)
{
int item, i;
message m;
for (i = 0; i < N; i++) send(producer, &m);
while (TRUE)
{
receive(producer, &m);
item = extract_item(&m);
send(producer, &m);
consume_item(item);
}
}
Nếu quá trình sản xuất thực hiện nhanh hơn quá trình tiêu thụ, số thông
điệp trống sẽ hết. Nên quá trình sản xuất sẽ bị chặn và đợi cho đến khi có
thông điệp trống. Ngược lại, tất cả thông điệp sẽ trống và đợi quá trình
sản xuất ghi dữ liệu. Tương tự quá trình tiêu thụ bị chặn và đợi một thông
điệp full.
Vấn đề còn lại và xác định địa chỉ cho thông điệp. Có hai phương pháp
cho định địa chỉ. Thứ nhất, mỗi quá trình có một địa chỉ và địa chỉ thông
điệp xác định theo địa chỉ quá trình. Ví dụ: địa chỉ của một quá trình xác định theo địa chỉ socket (địa chỉ máy + địa chỉ cổng I/O). Cách còn lại là
sử dụng một hộp thư (mailbox) của mỗi máy để lưu giữ thông điệp.
sau:
- Vùng đệm chung có N mục được thay bằng N thông điệp
- Khởi đầu, quá trình tiêu thụ gởi N thông điệp rỗng cho quá trình sản
xuất.
- Khi quá trình sản xuất muốn ghi 1 mục, nó lấy một thông điệp rỗng để
ghi và gởi lại cho quá trình tiêu thụ.
Trong mô hình này, số thông điệp còn lại luôn là một giá trị hằng, nên
chúng có thể được lưu giữ trên một vùng nhớ có kích thước xác định.
void producer(void)
{ int item;
message m;
while (TRUE)
{
item = produce_item(); /* generate someth
receive(consumer, &m); /* wait for an emp
build_message(&m, item); /* construct a mes
send(consumer, &m); /* send item to co
}
}
void consumer(void)
{
int item, i;
message m;
for (i = 0; i < N; i++) send(producer, &m);
while (TRUE)
{
receive(producer, &m);
item = extract_item(&m);
send(producer, &m);
consume_item(item);
}
}
Nếu quá trình sản xuất thực hiện nhanh hơn quá trình tiêu thụ, số thông
điệp trống sẽ hết. Nên quá trình sản xuất sẽ bị chặn và đợi cho đến khi có
thông điệp trống. Ngược lại, tất cả thông điệp sẽ trống và đợi quá trình
sản xuất ghi dữ liệu. Tương tự quá trình tiêu thụ bị chặn và đợi một thông
điệp full.
Vấn đề còn lại và xác định địa chỉ cho thông điệp. Có hai phương pháp
cho định địa chỉ. Thứ nhất, mỗi quá trình có một địa chỉ và địa chỉ thông
điệp xác định theo địa chỉ quá trình. Ví dụ: địa chỉ của một quá trình xác định theo địa chỉ socket (địa chỉ máy + địa chỉ cổng I/O). Cách còn lại là
sử dụng một hộp thư (mailbox) của mỗi máy để lưu giữ thông điệp.
Ví Dụ về NGỮ CẢNH & CHUYỂN NGỮ CẢNH
Ngữ cảnh:
Thầy kêu bạn A lên bảng giải bài tâp theo cách 1. Bạn A sẽ lên bảng giải bài tâp theo cách 1 (ghi nội dung lên bảng)
Chuyển ngữ cảnh:
(Sau khi bạn A giải bài tập xong)
Thầy kêu bạn B lên bảng giải bài tập theo cách 2.
--> Bạn B sẽ xóa bài của bạn A (xóa nội dung trên bảng) và giải bài tập theo cách 2 (ghi nội dung mới lên bảng).
Sau khi bạn B giải xong.
--> Thầy lại kêu bạn A lên bảng viết lại cách giải bài tập theo cách 1 (trả lại nội dung ban đầu)
.
Thầy kêu bạn A lên bảng giải bài tâp theo cách 1. Bạn A sẽ lên bảng giải bài tâp theo cách 1 (ghi nội dung lên bảng)
Chuyển ngữ cảnh:
(Sau khi bạn A giải bài tập xong)
Thầy kêu bạn B lên bảng giải bài tập theo cách 2.
--> Bạn B sẽ xóa bài của bạn A (xóa nội dung trên bảng) và giải bài tập theo cách 2 (ghi nội dung mới lên bảng).
Sau khi bạn B giải xong.
--> Thầy lại kêu bạn A lên bảng viết lại cách giải bài tập theo cách 1 (trả lại nội dung ban đầu)
.
Liên lạc giữa các tiến trình qua Socket
Nhu cầu liên lạc giữa các tiến trình
Trong môi trường đa chương, một tiến trình không đơn độc trong hệ thống , mà có thể ảnh hưởng đến các tiến trình khác , hoặc bị các tiến trình khác tác động. Nói cách khác, các tiến trình là những thực thể độc lập , nhưng chúng vẫn có nhu cầu liên lạc với nhau để :
Chia sẻ thông tin: nhiều tiến trình có thể cùng quan tâm đến những dữ liệu nào đó, do vậy hệ điều hành cần cung cấp một môi trường cho phép sự truy cập đồng thời đến các dữ liệu chung.
Hợp tác hoàn thành tác vụ: đôi khi để đạt được một sự xử lý nhanh chóng, người ta phân chia một tác vụ thành các công việc nhỏ có thể tiến hành song song. Thường thì các công việc nhỏ này cần hợp tác với nhau để cùng hoàn thành tác vụ ban đầu, ví dụ dữ liệu kết xuất của tiến trình này lại là dữ liệu nhập cho tiến trình khác. Trong các trường hợp đó, hệ điều hành cần cung cấp cơ chế để các tiến trình có thể trao đổi thông tin với nhau.
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.
Các thuộc tính của socket:
- Domaine: định nghĩa dạng thức địa chỉ và các nghi thức sử dụng. Có nhiều domaines, ví dụ UNIX, INTERNET, XEROX_NS, ...
- Type: định nghĩa các đặc điểm liên lạc:
a) Sự tin cậy
b) Sự bảo toàn thứ tự dữ liệu
c) Lặp lại dữ liệu
d) Chế độ nối kết
e) Bảo toàn giới hạn thông điệp
f) Khả năng gởi thông điệp khẩn
Để thực hiện liên lạc bằng socket, cần tiến hành các thao tác :
- Tạo lập hay mở một socket
- Gắn kết một socket với một địa chỉ
- Liên lạc : có hai kiểu liên lạc tùy thuộc vào chế độ nối kết:
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.
Trong môi trường đa chương, một tiến trình không đơn độc trong hệ thống , mà có thể ảnh hưởng đến các tiến trình khác , hoặc bị các tiến trình khác tác động. Nói cách khác, các tiến trình là những thực thể độc lập , nhưng chúng vẫn có nhu cầu liên lạc với nhau để :
Chia sẻ thông tin: nhiều tiến trình có thể cùng quan tâm đến những dữ liệu nào đó, do vậy hệ điều hành cần cung cấp một môi trường cho phép sự truy cập đồng thời đến các dữ liệu chung.
Hợp tác hoàn thành tác vụ: đôi khi để đạt được một sự xử lý nhanh chóng, người ta phân chia một tác vụ thành các công việc nhỏ có thể tiến hành song song. Thường thì các công việc nhỏ này cần hợp tác với nhau để cùng hoàn thành tác vụ ban đầu, ví dụ dữ liệu kết xuất của tiến trình này lại là dữ liệu nhập cho tiến trình khác. Trong các trường hợp đó, hệ điều hành cần cung cấp cơ chế để các tiến trình có thể trao đổi thông tin với nhau.
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.
Các thuộc tính của socket:
- Domaine: định nghĩa dạng thức địa chỉ và các nghi thức sử dụng. Có nhiều domaines, ví dụ UNIX, INTERNET, XEROX_NS, ...
- Type: định nghĩa các đặc điểm liên lạc:
a) Sự tin cậy
b) Sự bảo toàn thứ tự dữ liệu
c) Lặp lại dữ liệu
d) Chế độ nối kết
e) Bảo toàn giới hạn thông điệp
f) Khả năng gởi thông điệp khẩn
Để thực hiện liên lạc bằng socket, cần tiến hành các thao tác :
- Tạo lập hay mở một socket
- Gắn kết một socket với một địa chỉ
- Liên lạc : có hai kiểu liên lạc tùy thuộc vào chế độ nối kết:
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.
Liên lạc giữa các tiến trình qua Sockets trong hệ thống khách chủ, phân biệt giao thức TCP với UDP
Hốc liên lạc(Sockets)
-Hốc là điểm đầu của liên kết truyền thông, được đặc trưng bởi cặp số (IP Address, Port) trong mạng Clinet-Server.
-Server chờ yêu cầu từ Client bằng cách nghe vào cổng (Port) định trước:
+Telnet Server nghe vào cổng 23
+FTP Server nghe vào cổng 21
+Web server nghe vào cổng 80
-Thông thường các cổng với số hiệu dưới 1024 là các cổng chuẩn của hệ thống
- Khi Client phát sinh yêu cầu kết nối, nó được cấp 1 cổng nào đó sau 1024
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
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.
-Hốc là điểm đầu của liên kết truyền thông, được đặc trưng bởi cặp số (IP Address, Port) trong mạng Clinet-Server.
-Server chờ yêu cầu từ Client bằng cách nghe vào cổng (Port) định trước:
+Telnet Server nghe vào cổng 23
+FTP Server nghe vào cổng 21
+Web server nghe vào cổng 80
-Thông thường các cổng với số hiệu dưới 1024 là các cổng chuẩn của hệ thống
- Khi Client phát sinh yêu cầu kết nối, nó được cấp 1 cổng nào đó sau 1024
Liên lạc giữa 2 máy qua sockets
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
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.
BuiDaiNghia-102C- Tổng số bài gửi : 5
Join date : 21/02/2012
Mô tả rõ ràng hơn về TCP và UDP
Muốn truyền dữ liệu hay thông tin qua lại trên mạng thì có một số máy tính phải phát tín hiệu, các máy khác nhận tín hiệu.
Trong quá trình đó có thế sẽ xảy ra lỗi.
Cũng giống như việc gửi và phát thư từ, bưu kiện chẳng hạn. Việc truyền thông tin trên mạng cũng có nhiều qui cách "bưu kiện" hay biểu diễn dữ liệu khác nhau.
Tập hợp các quy tắc chuẩn dành cho việc biểu diễn dữ liệu, phát tín hiệu, chứng thực và phát hiện lỗi dữ liệu - những việc cần thiết để gửi thông tin qua các kênh truyền thông, nhờ đó mà các máy tính (và các thiết bị) có thể kết nối và trao đổi thông tin với nhau gọi là giao thức (Protocol)
Khi bạn gửi một bưu kiện thì bưu kiện của bạn sẽ phải qua nhiều giai đoạn: bưu cục, xe vận chuyển, sân bay, máy bay, bưu điện nơi đến, người đưa thư.... Thông tin truyền trên mạng cũng vậy.
Có rất nhiều giao thức khác nhau. Đây là một số giao thức thông dụng.
* IP (Internet Protocol)
* UDP (User Datagram Protocol)
* TCP (Transmission Control Protocol)
* DHCP (Dynamic Host Configuration Protocol)
* HTTP (Hypertext Transfer Protocol)
* FTP (File Transfer Protocol)
* Telnet (Telnet Remote Protocol)
* SSH (Secure Shell Remote Protocol)
* POP3 (Post Office Protocol 3)
* SMTP (Simple Mail Transfer Protocol)
* IMAP (Internet Message Access Protocol)
Chúng ta cũng sẽ không bàn về các tầng mạng hay mô hình OSI. Chỉ đơn giản tóm tắt thế này:
-Muốn gửi hay nhận thông tin trên mạng ta cần theo một qui định nào đó gọi là giao thức (Protocol). Nhiều giao thức hình thành bộ giao thức.
-TCP và UCP là hai giao thức trong bộ giao thức TCP/IP
-TCP là một giao thức cần "kết nối" giữa máy gửi và máy nhận. Chính vì vậy nó được gọi là connection-oriented. Ví dụ khi bạn muốn nói chuyện với một người bạn sống tại tỉnh khác hoặc nước khác, bạn nhấc điện thoại lên và quay số của người bạn này, lúc đó một kết nối sẽ được tạo ra giữa điện thoại của bạn và của người bạn, sau đó bạn gửi và nhận dữ liệu ( dưới dạng âm thanh) bằng cách nói và nghe qua điện thoại của bạn.
-UDP là giao thức không cần "kết nối" giữa máy gửi và máy nhận. Chính vì vậy được gọi là connectionless. Trong giao thức UDP khi hai ứng dụng muốn giao tiếp với nhau chúng không tạo ra kết nối mà chỉ đơn thuần gửi các gói tin một cách độc lập từ máy này tới máy khác. Các gói tin như vậy gọi là các datagram. Việc gửi các gói tin như vậy tương tự như việc chúng ta gửi thư qua đường bưu điện: Các bức thư bạn gửi độc lập với nhau, thứ tự các lá thư là không quan trọng và không có gì đảm bảo là thư sẽ đến đươc đích.
-TCP đảm bảo chuyển giao dữ liệu tới nơi nhận một cách đáng tin cậy và đúng thứ tự.
-UDP không cung cấp sự tin cậy và thứ tự truyền nhận
Trong quá trình đó có thế sẽ xảy ra lỗi.
Cũng giống như việc gửi và phát thư từ, bưu kiện chẳng hạn. Việc truyền thông tin trên mạng cũng có nhiều qui cách "bưu kiện" hay biểu diễn dữ liệu khác nhau.
Tập hợp các quy tắc chuẩn dành cho việc biểu diễn dữ liệu, phát tín hiệu, chứng thực và phát hiện lỗi dữ liệu - những việc cần thiết để gửi thông tin qua các kênh truyền thông, nhờ đó mà các máy tính (và các thiết bị) có thể kết nối và trao đổi thông tin với nhau gọi là giao thức (Protocol)
Khi bạn gửi một bưu kiện thì bưu kiện của bạn sẽ phải qua nhiều giai đoạn: bưu cục, xe vận chuyển, sân bay, máy bay, bưu điện nơi đến, người đưa thư.... Thông tin truyền trên mạng cũng vậy.
Có rất nhiều giao thức khác nhau. Đây là một số giao thức thông dụng.
* IP (Internet Protocol)
* UDP (User Datagram Protocol)
* TCP (Transmission Control Protocol)
* DHCP (Dynamic Host Configuration Protocol)
* HTTP (Hypertext Transfer Protocol)
* FTP (File Transfer Protocol)
* Telnet (Telnet Remote Protocol)
* SSH (Secure Shell Remote Protocol)
* POP3 (Post Office Protocol 3)
* SMTP (Simple Mail Transfer Protocol)
* IMAP (Internet Message Access Protocol)
Chúng ta cũng sẽ không bàn về các tầng mạng hay mô hình OSI. Chỉ đơn giản tóm tắt thế này:
-Muốn gửi hay nhận thông tin trên mạng ta cần theo một qui định nào đó gọi là giao thức (Protocol). Nhiều giao thức hình thành bộ giao thức.
-TCP và UCP là hai giao thức trong bộ giao thức TCP/IP
-TCP là một giao thức cần "kết nối" giữa máy gửi và máy nhận. Chính vì vậy nó được gọi là connection-oriented. Ví dụ khi bạn muốn nói chuyện với một người bạn sống tại tỉnh khác hoặc nước khác, bạn nhấc điện thoại lên và quay số của người bạn này, lúc đó một kết nối sẽ được tạo ra giữa điện thoại của bạn và của người bạn, sau đó bạn gửi và nhận dữ liệu ( dưới dạng âm thanh) bằng cách nói và nghe qua điện thoại của bạn.
-UDP là giao thức không cần "kết nối" giữa máy gửi và máy nhận. Chính vì vậy được gọi là connectionless. Trong giao thức UDP khi hai ứng dụng muốn giao tiếp với nhau chúng không tạo ra kết nối mà chỉ đơn thuần gửi các gói tin một cách độc lập từ máy này tới máy khác. Các gói tin như vậy gọi là các datagram. Việc gửi các gói tin như vậy tương tự như việc chúng ta gửi thư qua đường bưu điện: Các bức thư bạn gửi độc lập với nhau, thứ tự các lá thư là không quan trọng và không có gì đảm bảo là thư sẽ đến đươc đích.
-TCP đảm bảo chuyển giao dữ liệu tới nơi nhận một cách đáng tin cậy và đúng thứ tự.
-UDP không cung cấp sự tin cậy và thứ tự truyền nhận
BuiDaiNghia-102C- Tổng số bài gửi : 5
Join date : 21/02/2012
Re: Thảo luận Bài 4
thanks về bài viết này...hihi mình đang cần
LyHuynhThanhYen (I11C)- Tổng số bài gửi : 15
Join date : 19/09/2011
Re: Thảo luận Bài 4
thanks về bài viết Linux này, mình đang cần ^^PhamQuangHien_I12A đã viết:Phân loại tiến trình: 3 loại
Interactive process (tiến trình đối thoại)
Là tiến trình khởi động và quản lý bởi shell, kể cả các tiến trình foreground hoặc background.
Batch process
Tiến trình không gắn liền với terminal (tty) và được nằm trong hàng đợi để lần lượt thực hiện.
Daemon process (Disk And Execution MONitor)
Là tiến trình chạy ở chế độ ngầm và được khởi động từ đầu. Các daemon thường được hệ thống phát sinh tự động và có thể hoạt động liên tục hay phát sinh định kỳ.
Hầu hết các dịch vụ mạng là các tiến trình daemon, tên tiến trình kết thúc bằng ký tự “d” như: inetd, named, httpd…
Hiển thị thông tin tiến trình – lệnh ps
Để biết thông tin các tiến trình hiện hành ta sử dụng:
ps [option]
1. -e: hiển thị thông tin về mỗi tiến trình.
-l: hiển thị thông tin đầy đủ tiến trình.
-f: hiển thị thông tin về tiến trình cha.
-a: hiển thị tất cả các tiến trình.
Lưu ý: dòng lệnh ps –aux: liệt kê danh sách các tiến trình đang chạy cùng các thông tin của nó như:
Chủ nhân của tiến trình (owner), mã số nhận diện tiến trình (PID), thời gian hiện sử dụng CPU (%CPU), mức chiếm dụng bộ nhớ của tiến trình (%MEM), trạng thái tiến trình (STAT) và các thông tin khác.
Một số trạng thái của tiến trình thường gặp: R-đang thi hành, S-đang bị đóng, Z-ngừng thi hành, W-không đủ bộ nhớ…
Hiển thị thông tin sử dụng tài nguyên – lệnh top
Hiển thị một danh sách các tiến trình hệ thống theo thời gian thực. Nó thống kê số lượng các tiến trình cùng trạng thái của chúng, tình trạng sử dụng CPU, bộ nhớ …
top [option]
1. -d time: chỉ ra khoảng thời gian trễ time giữa 2 lần cập nhật thông tin trạng thái (mặc định là 5 giây)
-p [pid]: chỉ theo dõi các tiến trình có mã pid
-c: hiển thị đầy đủ dòng lệnh thay vì hiển thị tên lệnh tạo tiến trình.
-a: hiển thị tất cả các tiến trình.
Một điểm khác biệt giữa top và ps là nó cho phép ta thi hành các lệnh của bản thân nó trong quá trình nó đang hiển thị thông tin.
Dừng một tiến trình – lệnh kill
Lệnh kill thường được sử dụng để ngừng thi hành một tiến trình.
kill [signal] <PID>
1. signal: là một số hay tên của tín hiệu được gởi tới tiến trình.
PID: mã số nhận diện tiến trình muốn dừng.
Lệnh kill có thể gởi bất kỳ tín hiệu signal nào tới một tiến trình, nhưng theo mặc định nó gởi tín hiệu 15, TERM (là tín hiệu kết thúc chương trình).
Lệnh kill -9 PID: ngừng thi hành tiến trình mà không bị các tiến trình khác can thiệp (tín hiệu 9, KILL).
Super-user mới có quyền dừng tất cả các tiến trình, còn người sử dụng chỉ được dừng các tiến trình của mình.
Các signal thường dùng lệnh kill bao gồm:
Tên Giá trị Tác động
SIGHUP 1 - Hangup (gọi lại tiến trình)
SIGINT 2 - Ngắt từ bàn phím (Ctrl+C)
SIGKILL 9 - Hủy tiến trình
SIGTERM 15 - Kết thúc tiến trình
SIGSTOP 17,19,23: - Dừng tiến trình.
Khi kết thúc một tiến trình hay một chuỗi các tiến trình, thông thường nên tiến hành thử với tín hiệu ít gây nguy hiểm nhất, SIGTERM, nếu không được mới sử dụng các tín hiệu INT hay KILL.
Hiển thị các tiến trình ngầm, thay đổi chế độ cho các tiến trình
Lệnh jobs: Hiển thị các tiến trình ngầm (background)
Ký hiệu + chỉ ra tác vụ đang được xử lý
Ký hiệu – chỉ ra tác vụ sẽ được xử lý kế tiếp
fg: chuyển các tiến trình background -> foreground
$ fg %3 (mã số tác vụ của tiến trình ngầm)
bg: chuyển các tiến trình foreground -> background.
Lưu ý: phải tạm dừng bằng cách nhấn tổ hợp phím (ctrl+z), và sau đó mới chuyển nó sang chế độ ngầm bằng lệnh bg
$ cat vd.txt > abcdef
ctrl + z
$ bg
(lệnh cat sẽ nạp chuỗi abcdef vào file vd.txt, có nhiều cách kết thúc quá trình nạp chuỗi này, nhưng muốn dùng lệnh bg thì phải kết thúc bằng tổ hợp phím ctrl+z)
Một số lệnh xem về hệ thống : free, ps, w, vmstat, iostat, ifstat, netstat v.v
LyHuynhThanhYen (I11C)- Tổng số bài gửi : 15
Join date : 19/09/2011
so sánh tổng quát TCP và UDP
Giao thức TCP và UDP là hai giao thức phổ biến nhất ở lớp transport của chồng giao thức TCP/IP. UDP dùng ít bytes hơn cho phần header và yêu cầu xử lý từ host ít hơn. TCP thì cần nhiều bytes hơn trong phần header và phải xử lý nhiều hơn nhưng cung cấp nhiều chức năng hữu ích hơn, như khả năng khôi phục lỗi.
Chức năng
TCP
UDP
Multiplexing dùng nhiều cổng
Có. Chỉ số cổng nhận dạng duy nhất một tiến trình trên máy gửi và máy nhận
- Giống như TCP
Truyền dữ liệu tuần tự
Có. TCP tái sắp xếp bất kỳ dữ liệu nào nhận sai thứ tự.
Không. UDP không có khái niệm sắp xếp dữ liệu
Truyền tin cậy
Có. TCP công nhận dữ liệu, gửi lại những phân đoạn bị mất. Các trường sequence và ACK trong TCP header.
Không hỗ trợ.
Kiểm soát dòng
Có. TCP dùng các cửa sổ trượt để kiểm tra các cửa sổ của máy gửi.
Không
Connection
Có. Quá trình bắt tay 3 lần thiết lập quá trình khởi động cổng
Phi kết nối
Kiểu giao thức của IP
6
17
RFC
793
768
Các header của TCP và UDP thì khác nhau ở kích thước (20 và 8 bytes), nguyên nhân chủ yếu là do TCP phải hỗ trợ nhiều chức năng hơn.
Chức năng
TCP
UDP
Multiplexing dùng nhiều cổng
Có. Chỉ số cổng nhận dạng duy nhất một tiến trình trên máy gửi và máy nhận
- Giống như TCP
Truyền dữ liệu tuần tự
Có. TCP tái sắp xếp bất kỳ dữ liệu nào nhận sai thứ tự.
Không. UDP không có khái niệm sắp xếp dữ liệu
Truyền tin cậy
Có. TCP công nhận dữ liệu, gửi lại những phân đoạn bị mất. Các trường sequence và ACK trong TCP header.
Không hỗ trợ.
Kiểm soát dòng
Có. TCP dùng các cửa sổ trượt để kiểm tra các cửa sổ của máy gửi.
Không
Connection
Có. Quá trình bắt tay 3 lần thiết lập quá trình khởi động cổng
Phi kết nối
Kiểu giao thức của IP
6
17
RFC
793
768
Các header của TCP và UDP thì khác nhau ở kích thước (20 và 8 bytes), nguyên nhân chủ yếu là do TCP phải hỗ trợ nhiều chức năng hơn.
DaoQuangTri38(I12A)- Tổng số bài gửi : 26
Join date : 22/02/2012
Phân biệt khái niệm chương trình và tiến trình ?
Một chương trình là một thực thể thụ động, chứa đựng các chỉ thị điều khiển máy tính để tiến hành một tác vụ nào đó.
Khi cho thực hiện các chỉ thị này, chương trình chuyển thành tiến trình, là một thực thể hoạt động, với con trỏ lệnh xác định chỉ thị kế tiếp sẽ thi hành, kèm theo tập các tài nguyên phục vụ cho hoạt động của tiến trình.
NguyenthechinhI12A- Tổng số bài gửi : 24
Join date : 16/02/2012
Age : 35
Đến từ : BẮC NINH - HCM
Tiến trình và các trạng thái
1.Tiến trình :
-Tiến trình là một chương trình đang trong quá trình thực hiện
-Tiến trình được sinh ra khi chương trình được tải vào bộ nhớ để thực hiện
+Tiến trình người dùng
+ Tiến trình hệ thống
2. Trạng thái của tiến trình:
Phân biệt theo 2 trạng thái: chạy và không chạy
=> Không phản ánh đầy đủ thông tin về trạng thái tiến trình
=> Mô hình 5 trạng thái: mới khởi tạo, sẵn sàng, chạy, chờ đợi, kết thúc
Mới khởi tạo: tiến trình đang được tạo ra
Sẵn sàng: tiến trình chờ được cấp CPU để thực hiện lệnh của mình
Chạy: lệnh của tiến trình được CPU thực hiện
Chờ đợi: tiến trình chờ đợi một sự kiện gì đó xảy ra (blocked)
Kết thúc: tiến trình đã kết thúc việc thực hiện nhưng vẫn chưa bị xóa
-Tiến trình là một chương trình đang trong quá trình thực hiện
-Tiến trình được sinh ra khi chương trình được tải vào bộ nhớ để thực hiện
+Tiến trình người dùng
+ Tiến trình hệ thống
2. Trạng thái của tiến trình:
Phân biệt theo 2 trạng thái: chạy và không chạy
=> Không phản ánh đầy đủ thông tin về trạng thái tiến trình
=> Mô hình 5 trạng thái: mới khởi tạo, sẵn sàng, chạy, chờ đợi, kết thúc
Mới khởi tạo: tiến trình đang được tạo ra
Sẵn sàng: tiến trình chờ được cấp CPU để thực hiện lệnh của mình
Chạy: lệnh của tiến trình được CPU thực hiện
Chờ đợi: tiến trình chờ đợi một sự kiện gì đó xảy ra (blocked)
Kết thúc: tiến trình đã kết thúc việc thực hiện nhưng vẫn chưa bị xóa
lengocthuthao89 (i11c)- Tổng số bài gửi : 50
Join date : 13/09/2011
UDP và TCP
UDP (User Datagram Protocol) là một trong những giao thức cốt lõi của giao thức TCP/IP. Dùng UDP, chương trình trên mạng máy tính có thể gởi những dữ liệu ngắn được gọi là datagram tới máy khác. UDP không cung cấp sự tin cậy và thứ tự truyền nhận mà TCP làm; các gói dữ liệu có thể đến không đúng thứ tự hoặc bị mất mà không có thông báo. Tuy nhiên UDP nhanh và hiệu quả hơn đối với các mục tiêu như kích thước nhỏ và yêu cầu khắt khe về thời gian. Do bản chất không trạng thái của nó nên nó hữu dụng đối với việc trả lời các truy vấn nhỏ với số lượng lớn người yêu cầu.
Tại sao vẩn dùng UDP? ( Theo mình tóm gọn như sau)
- Không cần thiết lập kết nối: dành cho ứng dụng chỉ chạy từ một phía
- Không duy trì trạng thái kết nối: Ứng dụng phục vụ nhiều người hơn
- Tiêu đề gói nhỏ: 8byte
- Không kiểm xoát tốc độ gửi: Gửi trước sau hy nhanh chậm thì tùy ý
- Không cần độ chính xác cao: Dữ liệu bị lỗi vẫn chấp nhận được
TCP (Transmission Control Protocol - "Giao thức điều khiển truyền vận") là một trong các giao thức cốt lõi của bộ giao thức TCP/IP. Sử dụng TCP, các ứng dụng trên các máy chủ được nối mạng có thể tạo các "kết nối" với nhau, mà qua đó chúng có thể trao đổi dữ liệu hoặc các gói tin. Giao thức này đảm bảo chuyển giao dữ liệu tới nơi nhận một cách đáng tin cậy và đúng thứ tự. TCP còn phân biệt giữa dữ liệu của nhiều ứng dụng (chẳng hạn, dịch vụ Web và dịch vụ thư điện tử) đồng thời chạy trên cùng một máy chủ.
So sánh một cách đơn giản :
Giống nhau : đều là các giao thức mạng TCP/IP, đều có chức năng kết nối các máy lại với nhau, và có thể gửi dữ liệu cho nhau....
Khác nhau (cơ bản):
các header của TCP và UDP khác nhau ở kích thước (20 và 8 byte) nguyên nhân chủ yếu là do TCP phải hộ trợ nhiều chức năng hữu ích hơn(như khả năng khôi phục lỗi). UDP dùng ít byte hơn cho phần header và yêu cầu xử lý từ host ít hơn
TCP :
- Dùng cho mạng WAN
- Không cho phép mất gói tin
- Đảm bảo việc truyền dữ liệu
- Tốc độ truyền thấp hơn UDP
UDP:
- Dùng cho mạng LAN
- Cho phép mất dữ liệu
- Không đảm bảo.
- Tốc độ truyền cao, VolP truyền tốt qua UDP
Tại sao vẩn dùng UDP? ( Theo mình tóm gọn như sau)
- Không cần thiết lập kết nối: dành cho ứng dụng chỉ chạy từ một phía
- Không duy trì trạng thái kết nối: Ứng dụng phục vụ nhiều người hơn
- Tiêu đề gói nhỏ: 8byte
- Không kiểm xoát tốc độ gửi: Gửi trước sau hy nhanh chậm thì tùy ý
- Không cần độ chính xác cao: Dữ liệu bị lỗi vẫn chấp nhận được
TCP (Transmission Control Protocol - "Giao thức điều khiển truyền vận") là một trong các giao thức cốt lõi của bộ giao thức TCP/IP. Sử dụng TCP, các ứng dụng trên các máy chủ được nối mạng có thể tạo các "kết nối" với nhau, mà qua đó chúng có thể trao đổi dữ liệu hoặc các gói tin. Giao thức này đảm bảo chuyển giao dữ liệu tới nơi nhận một cách đáng tin cậy và đúng thứ tự. TCP còn phân biệt giữa dữ liệu của nhiều ứng dụng (chẳng hạn, dịch vụ Web và dịch vụ thư điện tử) đồng thời chạy trên cùng một máy chủ.
So sánh một cách đơn giản :
Giống nhau : đều là các giao thức mạng TCP/IP, đều có chức năng kết nối các máy lại với nhau, và có thể gửi dữ liệu cho nhau....
Khác nhau (cơ bản):
các header của TCP và UDP khác nhau ở kích thước (20 và 8 byte) nguyên nhân chủ yếu là do TCP phải hộ trợ nhiều chức năng hữu ích hơn(như khả năng khôi phục lỗi). UDP dùng ít byte hơn cho phần header và yêu cầu xử lý từ host ít hơn
TCP :
- Dùng cho mạng WAN
- Không cho phép mất gói tin
- Đảm bảo việc truyền dữ liệu
- Tốc độ truyền thấp hơn UDP
UDP:
- Dùng cho mạng LAN
- Cho phép mất dữ liệu
- Không đảm bảo.
- Tốc độ truyền cao, VolP truyền tốt qua UDP
lengocthuthao89 (i11c)- Tổng số bài gửi : 50
Join date : 13/09/2011
Phân biệt điều phối chậm với điều phối nhanh
Điều phối chậm (Long-term scheduler (or job scheduler)) :
- Chọn process nào sẽ được đưa vào ready queue (từ New chuyển sang Ready)
- Kiểm soát Độ đa chương
- Do có nhiều thời gian (tới vài phút), loại scheduler này có điều kiện để lựa chọn kỹ càng nhằm phối hợp cân đối 2 loại tiến trình
+ Hướng CPU: tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), có nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) bận (phục vụ) cho nhiều người (nhiều tiến trình).
+ Hướng I/O: tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU), các nhân viên trong công ty ko cần sử dụng đến ô tô (I/O). Vậy quá lãng phí ô tô (CPU)
- Mục đích cân bằng tải
Điều phối nhanh (Short-term scheduler (or CPU scheduler)) :
- Còn gọi là Điều phối CPU.
- Chọn tiến trình từ Ready Queue để cấp CPU.
- Có tần suất công việc cao. Thường cứ 100 ms lại tốn 10 ms để xác định tiến trình kế tiếp, như vậy 10/(100+10)=9% thời gian CPU được dùng để điều phối công việc.
- Chọn process nào sẽ được đưa vào ready queue (từ New chuyển sang Ready)
- Kiểm soát Độ đa chương
- Do có nhiều thời gian (tới vài phút), loại scheduler này có điều kiện để lựa chọn kỹ càng nhằm phối hợp cân đối 2 loại tiến trình
+ Hướng CPU: tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), có nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) bận (phục vụ) cho nhiều người (nhiều tiến trình).
+ Hướng I/O: tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU), các nhân viên trong công ty ko cần sử dụng đến ô tô (I/O). Vậy quá lãng phí ô tô (CPU)
- Mục đích cân bằng tải
Điều phối nhanh (Short-term scheduler (or CPU scheduler)) :
- Còn gọi là Điều phối CPU.
- Chọn tiến trình từ Ready Queue để cấp CPU.
- Có tần suất công việc cao. Thường cứ 100 ms lại tốn 10 ms để xác định tiến trình kế tiếp, như vậy 10/(100+10)=9% thời gian CPU được dùng để điều phối công việc.
lengocthuthao89 (i11c)- Tổng số bài gửi : 50
Join date : 13/09/2011
bổ sung so sánh Job Queue & Ready Queue.
Job Queue: là hàng chờ công việc, chứa các tiến trình chờ được vận hành.
Ready Queue: là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU.
Giống nhau:
- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:
- Dùng giải thuật điều phối chậm(Long - term Scheduler) để đưa các tiến trình từ Job Queue vào Ready Queue.
- Dùng giải thuật điều phối nhanh(Short - term Scheduler) chọn các tiến trình trong Ready Queue để cấp CPU.
VD: thầy giáo gọi tên 5 bạn trong lớp để lên danh sách chuẩn bị lên bảng làm bài tập(điều phối chậm, 5 bạn được đưa từ Job Queue(danh sách lớp) vào Ready Queue(danh sách làm bài)). Sau đó thầy gọi từng bạn trong danh sách đó lên bảng làm bài(điều phối nhanh).
Các bạn tham khảo, bổ sung thêm giúp mình nha!
Ready Queue: là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU.
Giống nhau:
- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:
- Dùng giải thuật điều phối chậm(Long - term Scheduler) để đưa các tiến trình từ Job Queue vào Ready Queue.
- Dùng giải thuật điều phối nhanh(Short - term Scheduler) chọn các tiến trình trong Ready Queue để cấp CPU.
VD: thầy giáo gọi tên 5 bạn trong lớp để lên danh sách chuẩn bị lên bảng làm bài tập(điều phối chậm, 5 bạn được đưa từ Job Queue(danh sách lớp) vào Ready Queue(danh sách làm bài)). Sau đó thầy gọi từng bạn trong danh sách đó lên bảng làm bài(điều phối nhanh).
Các bạn tham khảo, bổ sung thêm giúp mình nha!
quynhnhi.nguyen_I12A- Tổng số bài gửi : 17
Join date : 07/03/2012
Trình Điều Phối (Scheduler)
Trình điều phối gồm có:
Đ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à 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
1. 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).
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 chỉ
ngồi thực hiện giao dịch tại chỗ (I/O), không sử dụng đến ô tô. Vậy quá
lãng phí ô tô (CPU)
- Mục đích là cân bằng tải cho toàn hệ thống
Điều phối nhanh (Short-term scheduler (or CPU scheduler)) :
- Chọn tiến trình nào sẽ được chiếm CPU để xử lý (tức là từ Ready chuyển sang Running)
- Tần xuất công việc cao
Điều phối vừa (Medium-term scheduler) :
-
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.
Ví dụ: 1 Lớp học vi tính, nhưng quá nhiều
bạn đi học (tức là có nhiều tiến trình). Thầy sẽ chỉ định một số bạn ra
khỏi lớp (tức là rút tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong lớp
học xong Thầy gọi các bạn bên ngoài vào phòng học (tức là đưa tiến trình
vào bộ nhớ vào thời điểm thích hợp).
Điều phối chậm (Long-term scheduler):
- Chọn tiến trình nào sẽ được đưa vào ready queue ( tức là 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
1. 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).
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 chỉ
ngồi thực hiện giao dịch tại chỗ (I/O), không sử dụng đến ô tô. Vậy quá
lãng phí ô tô (CPU)
- Mục đích là cân bằng tải cho toàn hệ thống
Điều phối nhanh (Short-term scheduler (or CPU scheduler)) :
- Chọn tiến trình nào sẽ được chiếm CPU để xử lý (tức là từ Ready chuyển sang Running)
- Tần xuất công việc cao
Điều phối vừa (Medium-term scheduler) :
-
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.
Ví dụ: 1 Lớp học vi tính, nhưng quá nhiều
bạn đi học (tức là có nhiều tiến trình). Thầy sẽ chỉ định một số bạn ra
khỏi lớp (tức là rút tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong lớp
học xong Thầy gọi các bạn bên ngoài vào phòng học (tức là đưa tiến trình
vào bộ nhớ vào thời điểm thích hợp).
TRANTHINHPHAT (I11C)- Tổng số bài gửi : 52
Join date : 29/08/2011
Age : 35
Đến từ : THU DAU MOT, BINH DUONG
Tổ chức điều phối
Các danh sách sử dụng trong quá trình điều phối:
Hệ điều hành sử dụng hai loại danh sách để thực hiện điều phối các tiến trình là danh sách sẵn sàng (ready list) và danh sách chờ đợi(waiting list).
Khi một tiến trình bắt đầu đi vào hệ thống, nó được chèn vào danh sách các tác vụ (job list). Danh sách này bao gồm tất cả các tiến trình của hệ thống. Nhưng chỉ các tiến trình đang thường trú trong bộ nhớ chính và ở trạng thái sẵn sàng tiếp nhận CPU để hoạt động mới được đưa vào danh sách sẵn sàng.
Bộ điều phối sẽ chọn một tiến trình trong danh sách sẵn sàng và cấp CPU cho tiến trình đó. Tiến trình được cấp CPU sẽ thực hiện xử lý, và có thể chuyển sang trạng thái chờ khi xảy ra các sự kiện như đợi một thao tác nhập/xuất hoàn tất, yêu cầu tài nguyên chưa được thỏa mãn, được yêu cầu tạm dừng ...Khi đó tiến trình sẽ được chuyển sang một danh sách chờ đợi.
Hệ điều hành chỉ sử dụng một danh sách sẵn sàng cho toàn hệ thống, nhưng mỗi một tài nguyên ( thiết bị ngoại vi ) có một danh sách chờ đợi riêng bao gồm các tiến trình đang chờ được cấp phát tài nguyên đó.
Quá trình xử lý của một tiến trình trải qua những chu kỳ chuyển đổi qua lại giữa danh sách sẵn sàng và danh sách chờ đợi.
Thoạt đầu tiến trình mới được đặt trong danh sách các tiến trình sẵn sàng (ready list), nó sẽ đợi trong danh sách này cho đến khi được chọn để cấp phát CPU và bắt đầu xử lí. Sau đó có thể xảy ra một trong các tình huống sau :
Tiến trình phát sinh một yêu cầu một tài nguyên mà hệ thống chưa thể đáp ứng, khi đó tiến trình sẽ được chuyển sang danh sách các tiến trình đang chờ tài nguyên tương ứng.
Tiến trình có thể bị bắt buộc tạm dừng xử lý do một ngắt xảy ra, khi đó tiến trình được đưa trở lại vào danh sách sẵn sàng để chờ được cấp CPU cho lượt tiếp theo.
Trong trường hợp đầu tiên, tiến trình cuối cùng sẽ chuyển từ trạng thái blocked sang trạng thái ready và lại được đưa trở vào danh sách sẵn sàng. Tiến trình lặp lại chu kỳ này cho đến khi hoàn tất tác vụ thì được hệ thống hủy bỏ khỏi mọi danh sách điều phối.
Các cấp độ điều phối:
Thực ra công việc điều phối được hệ điều hành thực hiện ở hai mức độ : điều phối tác vụ (job scheduling) và điều phối tiến trình ( process scheduling).
a) Điều phối tác vụ:
Quyết định lựa chọn tác vụ nào được đưa vào hệ thống, và nạp những tiến trình của tác vụ đó vào bộ nhớ chính để thực hiện. Chức năng điều phối tác vụ quyết định mức độ đa chương của hệ thống ( số lượng tiến trình trong bộ nhớ chính). Khi hệ thống tạo lập một tiến trình, hay có một tiến trình kết thúc xử lý thì chức năng điều phối tác vụ mới được kích hoạt. Vì mức độ đa chương tương đối ổn định nên chức năng điều phối tác vụ có tần suất hoạt động thấp .
Để hệ thống hoạt động tốt, bộ điều phối tác vụ cần biệt tính chất của tiến trình là hướng nhập xuất (I/O bounded) hay hướng xử lý ( CPU bounded). Một tiến trình được gọi là hướng nhập xuất nếu nó chủ yếu nó chỉ sử dụng CPU để thực hiện các thao tác nhập xuất. Ngược lại một tiến trình được gọi là hướng xử lý nếu nó chủ yếu nó chỉ sử dụng CPU để thực hiện các thao tác tính toán. Để cần bằng hoạt động của CPU và các thiết bị ngoại vi, bộ điều phối tác vụ nên lựa chọn các tiến trình để nạp vào bộ nhớ sao cho hệ thống là sự pha trộn hợp lý giữa các tiến trình hướng nhập xuất và các tiến trình hướng xử lý.
b) Điều phối tiến trình:
Chọn một tiến trình ở trạng thái sẵn sàng ( đã được nạp vào bộ nhớ chính, và có đủ tài nguyên để hoạt động ) và cấp phát CPU cho tiến trình đó thực hiện. Bộ điều phối tiến trình có tần suất hoạt động cao, sau mỗi lần xảy ra ngắt ( do đồng hồ báo giờ, do các thiết bị ngoại vi...), thường là 1 lần trong khoảng 100ms. Do vậy để nâng cao hiệu suất của hệ thống, cần phải tăng tốc độ xử lí của bộ điều phối tiến trình. Chức năng điều phối tiến trình là một trong chức năng cơ bản, quan trọng nhất của hệ điều hành.
Trong nhiều hệ điều hành, có thể không có bộ điều phối tác vụ hoặc tách biệt rất ít đối với bộ điều phối tiến trình. Một vài hệ điều hành lại đưa ra một cấp độ điều phối trung gian kết hợp cả hai cấp độ điều phối tác vụ và tiến trình.
Hệ điều hành sử dụng hai loại danh sách để thực hiện điều phối các tiến trình là danh sách sẵn sàng (ready list) và danh sách chờ đợi(waiting list).
Khi một tiến trình bắt đầu đi vào hệ thống, nó được chèn vào danh sách các tác vụ (job list). Danh sách này bao gồm tất cả các tiến trình của hệ thống. Nhưng chỉ các tiến trình đang thường trú trong bộ nhớ chính và ở trạng thái sẵn sàng tiếp nhận CPU để hoạt động mới được đưa vào danh sách sẵn sàng.
Bộ điều phối sẽ chọn một tiến trình trong danh sách sẵn sàng và cấp CPU cho tiến trình đó. Tiến trình được cấp CPU sẽ thực hiện xử lý, và có thể chuyển sang trạng thái chờ khi xảy ra các sự kiện như đợi một thao tác nhập/xuất hoàn tất, yêu cầu tài nguyên chưa được thỏa mãn, được yêu cầu tạm dừng ...Khi đó tiến trình sẽ được chuyển sang một danh sách chờ đợi.
Hệ điều hành chỉ sử dụng một danh sách sẵn sàng cho toàn hệ thống, nhưng mỗi một tài nguyên ( thiết bị ngoại vi ) có một danh sách chờ đợi riêng bao gồm các tiến trình đang chờ được cấp phát tài nguyên đó.
Quá trình xử lý của một tiến trình trải qua những chu kỳ chuyển đổi qua lại giữa danh sách sẵn sàng và danh sách chờ đợi.
Thoạt đầu tiến trình mới được đặt trong danh sách các tiến trình sẵn sàng (ready list), nó sẽ đợi trong danh sách này cho đến khi được chọn để cấp phát CPU và bắt đầu xử lí. Sau đó có thể xảy ra một trong các tình huống sau :
Tiến trình phát sinh một yêu cầu một tài nguyên mà hệ thống chưa thể đáp ứng, khi đó tiến trình sẽ được chuyển sang danh sách các tiến trình đang chờ tài nguyên tương ứng.
Tiến trình có thể bị bắt buộc tạm dừng xử lý do một ngắt xảy ra, khi đó tiến trình được đưa trở lại vào danh sách sẵn sàng để chờ được cấp CPU cho lượt tiếp theo.
Trong trường hợp đầu tiên, tiến trình cuối cùng sẽ chuyển từ trạng thái blocked sang trạng thái ready và lại được đưa trở vào danh sách sẵn sàng. Tiến trình lặp lại chu kỳ này cho đến khi hoàn tất tác vụ thì được hệ thống hủy bỏ khỏi mọi danh sách điều phối.
Các cấp độ điều phối:
Thực ra công việc điều phối được hệ điều hành thực hiện ở hai mức độ : điều phối tác vụ (job scheduling) và điều phối tiến trình ( process scheduling).
a) Điều phối tác vụ:
Quyết định lựa chọn tác vụ nào được đưa vào hệ thống, và nạp những tiến trình của tác vụ đó vào bộ nhớ chính để thực hiện. Chức năng điều phối tác vụ quyết định mức độ đa chương của hệ thống ( số lượng tiến trình trong bộ nhớ chính). Khi hệ thống tạo lập một tiến trình, hay có một tiến trình kết thúc xử lý thì chức năng điều phối tác vụ mới được kích hoạt. Vì mức độ đa chương tương đối ổn định nên chức năng điều phối tác vụ có tần suất hoạt động thấp .
Để hệ thống hoạt động tốt, bộ điều phối tác vụ cần biệt tính chất của tiến trình là hướng nhập xuất (I/O bounded) hay hướng xử lý ( CPU bounded). Một tiến trình được gọi là hướng nhập xuất nếu nó chủ yếu nó chỉ sử dụng CPU để thực hiện các thao tác nhập xuất. Ngược lại một tiến trình được gọi là hướng xử lý nếu nó chủ yếu nó chỉ sử dụng CPU để thực hiện các thao tác tính toán. Để cần bằng hoạt động của CPU và các thiết bị ngoại vi, bộ điều phối tác vụ nên lựa chọn các tiến trình để nạp vào bộ nhớ sao cho hệ thống là sự pha trộn hợp lý giữa các tiến trình hướng nhập xuất và các tiến trình hướng xử lý.
b) Điều phối tiến trình:
Chọn một tiến trình ở trạng thái sẵn sàng ( đã được nạp vào bộ nhớ chính, và có đủ tài nguyên để hoạt động ) và cấp phát CPU cho tiến trình đó thực hiện. Bộ điều phối tiến trình có tần suất hoạt động cao, sau mỗi lần xảy ra ngắt ( do đồng hồ báo giờ, do các thiết bị ngoại vi...), thường là 1 lần trong khoảng 100ms. Do vậy để nâng cao hiệu suất của hệ thống, cần phải tăng tốc độ xử lí của bộ điều phối tiến trình. Chức năng điều phối tiến trình là một trong chức năng cơ bản, quan trọng nhất của hệ điều hành.
Trong nhiều hệ điều hành, có thể không có bộ điều phối tác vụ hoặc tách biệt rất ít đối với bộ điều phối tiến trình. Một vài hệ điều hành lại đưa ra một cấp độ điều phối trung gian kết hợp cả hai cấp độ điều phối tác vụ và tiến trình.
TrinhThiPhuongThaoI12C- Tổng số bài gửi : 18
Join date : 15/02/2012
Phát biểu bài toán Tiêu thụ - sản xuất vời thuật giải phù hợp
há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ó.
Trình bày giải thuật:
• Giả sử có Bộ nhớ đệm (Buffer) bao gồm nhiều khoang (Items) được tiến trình Producer lần lượt đưa các sản phẩm S1, S2,... vào.
• Tiến trình Consumer lần lượt lấy sản phẩm ra theo đúng thứ tự.
• Công việc của Producer phải đồng bộ với Consumer: Không được đưa sản phẩm vào khi Buffer đầy, Không được lấy ra khi chưa có.
Trình bày giải thuật:
Đỗ Phan Diễm Hương I12A- Tổng số bài gửi : 13
Join date : 17/02/2012
Age : 34
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ả,...
Đỗ Phan Diễm Hương I12A- Tổng số bài gửi : 13
Join date : 17/02/2012
Age : 34
Re: Thảo luận Bài 4
PCB: là 1 bảng trong RAM, nó lưu trữ trạng thái, số hiệu tiến trình... của các tiến trình,
Thanh ghi CPU: chứa các tính toán trung gian, tạm thời của tiến trình, đối với các tiến trình khác nhau thì cũng sử dụng thanh ghi. CPU sẽ sao lưu thanh ghi và chuyển vào PCB của tiến trình trước đó.
VD: mỗi bạn trong lớp có 1 quyển vở, đó chính là PCB của tiến trình, tấm bảng chính là thanh ghi CPU
Khi 1 bạn lên làm bài trên bảng, khi làm xong, thì thầy giáo (HĐH) sẽ sao chép lại kết quả tính toán đó, vào quyển vở của bạn ấy. Sau đó cho bạn khác lên.
Quá trình trên phải đảm bảo được 2 yêu cầu là có sao lưu và khôi phục
Lý do phải sử dụng thanh ghi CPU và PCB của RAM: do thanh ghi là L Cache (chi phí cao, tốc độ nhanh), PCB là RAM (tốc độ thấp, chi phí rẻ)
Thanh ghi CPU: chứa các tính toán trung gian, tạm thời của tiến trình, đối với các tiến trình khác nhau thì cũng sử dụng thanh ghi. CPU sẽ sao lưu thanh ghi và chuyển vào PCB của tiến trình trước đó.
VD: mỗi bạn trong lớp có 1 quyển vở, đó chính là PCB của tiến trình, tấm bảng chính là thanh ghi CPU
Khi 1 bạn lên làm bài trên bảng, khi làm xong, thì thầy giáo (HĐH) sẽ sao chép lại kết quả tính toán đó, vào quyển vở của bạn ấy. Sau đó cho bạn khác lên.
Quá trình trên phải đảm bảo được 2 yêu cầu là có sao lưu và khôi phục
Lý do phải sử dụng thanh ghi CPU và PCB của RAM: do thanh ghi là L Cache (chi phí cao, tốc độ nhanh), PCB là RAM (tốc độ thấp, chi phí rẻ)
TranHuyCuong17 (I12A)- Tổng số bài gửi : 37
Join date : 16/02/2012
Age : 37
Đến từ : DLY™
PCB trong RAM của tiến trình
• Trạng thái quá trình (process state): trạng thái có thể là mới, sẳn sàng, đang
chạy, chờ đợi, kết thúc, …
• Bộ đếm chương trình (program counter): bộ đếm hiển thị địa chỉ của chỉ thị
kế tiếp được thực thi cho quá trình này.
• Các thanh ghi (registers) CPU: các thanh ghi khác nhau về số lượng và loại,
phụ thuộc vào kiến trúc máy tính. Chúng gồm các bộ tổng (accumulators), các
thanh ghi chỉ mục, các con trỏ ngăn xếp, và các thanh ghi đa năng (general-
purpose registers), cùng với thông tin mã điều kiện (condition-code
information). Cùng với bộ đếm chương trình, thông tin trạng thái này phải
được lưu khi một ngắt xảy ra, cho phép quá trình được tiếp tục một cách phù
hợp sau đó (Hình III.3).
• Thông tin lập thời biểu CPU (CPU-scheduling information): thông tin gồm
độ ưu tiên của quá trình, các con trỏ chỉ tới các hàng đợi lập thời biểu, và bất
kỳ tham số lập thời biểu khác.
• Thông tin quản lý bộ nhớ (Memory-management information): thông tin này
có thể gồm những thông tin như giá trị của các thanh ghi nền và thanh ghi giới
hạn, các bảng trang hay các bảng phân đoạn, phụ thuộc hệ thống bộ nhớ được
dùng bởi hệ điều hành.
• Thông tin tính toán (accounting information): thông tin này gồm lượng CPU
và thời gian thực được dùng, công việc hay số quá trình,…
• Thông tin trạng thái nhập/xuất (I/O status information): thông tin này gồm
danh sách của thiết bị nhập/xuất được cấp phát quá trình này, một danh sách
các tập tin đang mở,..
Tóm lại:
Quá trình là một chương trình đang thực thi. Khi một quá trình thực thi, nó thay
đổi trạng thái. Trạng thái của một quá trình được định nghĩa bởi một hoạt động hiện
tại của quá trình đó. Mỗi quá trình có thể ở một trong những trạng thái sau: mới
(new), sẳn sàng (ready), đang chạy (running), chờ (waiting), hay kết thúc
(terminated). Mỗi quá trình được biểu diễn trong hệ điều hành bởi khối điều khiển quá
trình của chính nó (PCB).
TranHuyCuong17 (I12A)- Tổng số bài gửi : 37
Join date : 16/02/2012
Age : 37
Đến từ : DLY™
Lý do cộng tác giữa các tiến trình
Giữa các tiến trình cần sự cộng tác với nhau để đảm bảo các tiến trình được xử lí hoạt động đạt hiệu quả tối đa.
Ví dụ: Trong một nhóm kỹ sư xe máy tham gia nghiên cứu một dự án cải tiến mẫu xe máy mới. Nhóm kỹ thuật viên này chia tài liệu về dự án mới cho mỗi thành viên trong nhóm. Thành viên thứ nhất nghiên cứu về cách thay đổi mẫu mã của xe, thành viên thứ hai nghiên cứu về cách tiết kiệm xăng cho xe. Sau đó các thành viên này tập hợp những thông tin mình nghiên cứu được để hoàn thiện một chiếc xe máy mới.
Ví dụ: Mỗi người kỹ sư sẽ áp dụng những nghiên cứu của mình trên mỗi xe riêng để kiểm thử kết quả nghiên cứu.
Ví dụ: Trong một dây chuyền lắp ráp một chiếc xe máy, mỗi người kỹ sư sẽ lắp ráp bộ phận do mình phụ trách. Điều này đảm bảo được tính đơn thể của sự cộng tác tiến trình.
Ví dụ: Sau khi chiếc xe cải tiến, người sử dụng sẽ được hưởng nhiều tính năng mới như: Mẫu mã đẹp, ít hao xăng, xe chạy khỏe hơn...
- Chia sẻ thông tin (Information Sharing): Một tiến trình sử dụng thông tin do tiến trình khác cung cấp.
Ví dụ: Trong một nhóm kỹ sư xe máy tham gia nghiên cứu một dự án cải tiến mẫu xe máy mới. Nhóm kỹ thuật viên này chia tài liệu về dự án mới cho mỗi thành viên trong nhóm. Thành viên thứ nhất nghiên cứu về cách thay đổi mẫu mã của xe, thành viên thứ hai nghiên cứu về cách tiết kiệm xăng cho xe. Sau đó các thành viên này tập hợp những thông tin mình nghiên cứu được để hoàn thiện một chiếc xe máy mới.
- Tăng tốc tính toán (Computation Speedup): Các tiến trình cùng làm việc song song trên 1 hoặc nhiều máy để giải quyết bài toán chung.
Ví dụ: Mỗi người kỹ sư sẽ áp dụng những nghiên cứu của mình trên mỗi xe riêng để kiểm thử kết quả nghiên cứu.
- Đảm bảo tính đơn thể (Modularity): Chương trình được chia thành các đơn thể chức năng vận hành trong các tiến trình hoặc luồng khác nhau.
Ví dụ: Trong một dây chuyền lắp ráp một chiếc xe máy, mỗi người kỹ sư sẽ lắp ráp bộ phận do mình phụ trách. Điều này đảm bảo được tính đơn thể của sự cộng tác tiến trình.
- Đảm bảo tính tiện dụng (Convenience): Đảm bảo tính tiện dụng cho người dùng, người dùng sẽ được sử dụng nhiều tính năng mới.
Ví dụ: Sau khi chiếc xe cải tiến, người sử dụng sẽ được hưởng nhiều tính năng mới như: Mẫu mã đẹp, ít hao xăng, xe chạy khỏe hơn...
NguyenTuanHai_I12A- Tổng số bài gửi : 14
Join date : 15/02/2012
Age : 34
Đến từ : Long An
Trang 14 trong tổng số 15 trang • 1 ... 8 ... 13, 14, 15
Similar topics
» THAO LUAN MON HOC
» BAI 6: THAO LUAN BAI 6
» Các bạn tích cực và có đóng góp với lớp
» Thảo luận Đề thi Cuối kỳ
» Thảo luận Bài 4
» BAI 6: THAO LUAN BAI 6
» Các bạn tích cực và có đóng góp với lớp
» Thảo luận Đề thi Cuối kỳ
» Thảo luận Bài 4
Trang 14 trong tổng số 15 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết