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 3 trong tổng số 6 trang
Trang 3 trong tổng số 6 trang • 1, 2, 3, 4, 5, 6
Địng nghĩa tiến trình và các trạng thái của nó
Tiến trình là chương trình trong thời gian thực hiện - đặt dưới sự quản lý của HĐH .
Phân biệt tiến trình :
- Tiến trình hệ thống : khi khởi động máy các chương trình mặc định của hệ điều hành sẽ tự động chạy lên vd như windows Explore , desktop window manager ...
- Tiến trình người dùng : khi user cần sử dụng chương trình phục vụ cho cong việc thì sẽ kích hoạt chương trình cần dùng lên . vd : yahoo, word , ...
Các trạng thái tiến trình :
- Mới (New )- Tiến trình vửa được tạo lập
- Đang chạy (Running )- Các lệnh thực thi .
- Đang chờ ( waitting ) - Các lệnh đang chờ thực thi.
- Sẵn sàng (ready ) - Tiến trình chờ để ấn dịnh sẵn trong CPU .
- Kết thức ( Termnated )- Tiến trình vửa thực hiện xong .
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 .
huynhquanghao_I92C- Tổng số bài gửi : 21
Join date : 15/11/2010
Câu 3
Phân biệt hàng chờ công việc với hàng chờ sẵn sàng. qua đó làm rõ chức năng của điều phối chậm và điều phối nhanh ( Chú ý: nhấn mạnh điều phối chậm, tại sao lại cần? ...)
Job Queue : là hàng chờ công việc, chứa các tiến trình chờ được vận hành (các tiến trình ở trạng thái New). Vai trò hàng chờ này là chờ cho Hệ điều hành dùng điều phối chậm chọn ra 1 hỗn hợp tối ưu nhất (gồm 2 loại tiến trình là : hướng CPU và hướng I/O ) để chuyển sang trạng thái Ready.
Ready Queue : là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU (các tiên trình ở trạng thái Ready). Vai trò hàng chờ này là chờ cho Hệ điều hành tuyển chọn ra tiến trình thích hợp để cấp phát CPU thực thi lệnh.
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.
Job Queue : Có nhiều thời gian xử lý hơn.
Ready Queue : Có ít thời gian so với Job Queue. Ready Queue chứa hỗn hợp 2 loại tiến trình Hướng CPU và Hướng I/O sao cho tối ưu nhất vì đảm bảo được độ cân bằng tải (Load-Balancing) cần thiết.
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).
Điều phối nhanh: Sau đó thầy gọi từng bạn trong danh sách làm bài lên bảng.
Chức năng của điều phối chậm, điều phối nhanh:
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à 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).
Job Queue : là hàng chờ công việc, chứa các tiến trình chờ được vận hành (các tiến trình ở trạng thái New). Vai trò hàng chờ này là chờ cho Hệ điều hành dùng điều phối chậm chọn ra 1 hỗn hợp tối ưu nhất (gồm 2 loại tiến trình là : hướng CPU và hướng I/O ) để chuyển sang trạng thái Ready.
Ready Queue : là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU (các tiên trình ở trạng thái Ready). Vai trò hàng chờ này là chờ cho Hệ điều hành tuyển chọn ra tiến trình thích hợp để cấp phát CPU thực thi lệnh.
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.
Job Queue : Có nhiều thời gian xử lý hơn.
Ready Queue : Có ít thời gian so với Job Queue. Ready Queue chứa hỗn hợp 2 loại tiến trình Hướng CPU và Hướng I/O sao cho tối ưu nhất vì đảm bảo được độ cân bằng tải (Load-Balancing) cần thiết.
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).
Điều phối nhanh: Sau đó thầy gọi từng bạn trong danh sách làm bài lên bảng.
Chức năng của điều phối chậm, điều phối nhanh:
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à 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).
Được sửa bởi TranThiThuyQuyen (113A) ngày 4/8/2012, 14:39; sửa lần 1.
TranThiThuyQuyen (113A)- Tổng số bài gửi : 25
Join date : 18/07/2012
Age : 34
Đến từ : Lâm Đồng
Câu 4
Thông qua bài toán sản xuất và tiêu thụ, hãy trình bày những lý do cộng tác trong công việc của các tiến trình. Chú ý: phải phát biểu được bài toán với 2 loại tiến trình sản xuất và tiêu thụ.
Bài toán sản xuất tiêu thụ được phát biểu chung như sau:
Có 2 loại tiến trình là :tiến trình sản xuất (Producer) và tiến trình tiêu thụ (Consumer), 2 tiến trình này trao đổi thông tin với nhau qua một bộ nhớ đệm chung (Buffer) với dung lượng hữu hạn.
Tiến trình Producer lần lượt sản xuất các sản phẩm S1, S2 (tạo ra dòng thông tin) vào khoang của bộ đệm Buffer. Tiến trình Consumer lần lượt lấy các sản phẩm (dữ liệu, dòng thông tin) ra khỏi bộ đệm.
Ví dụ: Trình Compiler tạo ra các lệnh của ngôn ngữ Assembler. Trình Assembler nhận để tạo mã đích, mã này được Loader hoặc Linkage Editor tiêu thụ.
Ví dụ:Mỗi học sinh trong lớp là 1 tiến trình.Khi A và B được gọi lên bảng làm bài tập gọi là nhà Sản xuất.Giáo viên hoặc 1 bạn C trong lớp có nhiệm vụ dùng máy ảnh chụp lại công việc, nội dung bài làm trên bảng của A và B gọi là nhà Tiêu thụ.
Công việc của các Producer cần phải được đồng bộ hóa với các Consumer, nghĩa là: tiến trình Consumer không thể lấy sản phẩm ra khi bộ đệm trống( không có sản phẩm), và tiến trình Producer không thể sản xuất khi bộ đệm đầy(không có chỗ trống).
Cấu trúc của Buffer:
#define BUFFER_SIZE 10
typedef struct {...// mô tả các thành phần của 1 khoang chứa
} item;
item Buffer [BUFFER_SIZE]; //bộ nhớ đệm
int in = 0; // con trỏ tới vị trí trống kế tiếp
int out = 0; //con trỏ tới vị trí lấy tiếp theo
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
}
Tiến trình sản xuất (PRODUCER):
item nextProduced;
while (1)
{
while(((in+1)%BUFFER_SIZE)==out); //quẩn tại đây khi buffer đầy.
buffer[in] = nextProduced;
in = (in+1)%BUFFER_SIZE;
}
Tiến trình tiêu thụ (CONSUMER):
item nextConsumed;
while (1)
{
while(in==out); //quẩn khi buffer rỗng
nextConsumed = buffer[out];
out = (out+1)%BUFFER_SIZE;
}
Ví dụ:Trong kho gạo, khi đã chất đầy gạo( không còn chỗ chứa: (in+1)%BUFFER_SIZE)==out)), nhà sản xuất không được xếp thêm gạo vào kho nữa mà phải đợi nhà tiêu thụ lấy bớt gạo trong kho ra, có chỗ trống mới được đưa thêm gạo vào. Tương tự, khi trong kho không còn gạo( kho trống: in==out) thì nhà tiêu thụ không được lấy gạo ra nữa mà phải đợi nhà sản xuất xếp gạo vào mới được lấy tiêu thụ.
Lý do cộng tác trong công việc của các tiến trình:
Thông qua bài toán sản xuất và tiêu thụ, ta thấy: 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ần cộng tác với nhau để :
-Chia sẻ thông tin (Information Sharing): 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. Nói cách khác, một tiến trình có thể sử dụng thông tin do tiến trình khác cung cấp.
Ví dụ:Để làm đề tài môn Hệ Thống Web, Thầy chia lớp ra thành nhiều nhóm nhỏ, mỗi nhóm từ 1 -3 sinh viên. Để hoàn thành tốt đề tài, mỗi sinh viên trong nhóm sẽ được phân thực hiện một phần trong đề tài. sau đó, mọi người tổng hợp ý kiến, chia sẻ thông tin, kiến thức của mình cho các bạn trong nhóm để đề tài được hoàn thành tốt.
- Tăng tốc tính toán (Computation Speedup): Các tiến trình làm việc song song trên
cùng một hoặc nhiều máy tính để giải quyết bài toán chung.
Ví dụ: mỗi sinh viên khi nhận nhiệm vụ của mình sẽ thực hiện đồng thời và ra đưa kết quả vào thời điểm đã định.
- Đảm bảo tính đơn thể (Modularity): Chương trình được chia thành các đơn thể chức năng riêng vận hành trong các tiến trình hoặc luồng khác nhau.
Ví dụ: Làm đê tài theo nhóm, mỗi sinh viên làm phần mình được nhóm phân công. Đ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): Người dùng có khả năng làm nhiều việc cùng một lúc: Soạn thảo, In ấn, Lấy file về, Biên dịch, ...
Ví dụ: Khi đề tài Web hoàn thành, nếu khả thi, Web sẽ được mọi người dùng vào thưc tế, biết thêm nhiều tính năng, dùng làm tài liệu cho các nhóm, lớp khác...
Nhu cầu sử dụng internet của chúng ta cùng là một ví dụ điển hình cho việc cộng tác giữa các tiến trình.
Bài toán sản xuất tiêu thụ được phát biểu chung như sau:
Có 2 loại tiến trình là :tiến trình sản xuất (Producer) và tiến trình tiêu thụ (Consumer), 2 tiến trình này trao đổi thông tin với nhau qua một bộ nhớ đệm chung (Buffer) với dung lượng hữu hạn.
Tiến trình Producer lần lượt sản xuất các sản phẩm S1, S2 (tạo ra dòng thông tin) vào khoang của bộ đệm Buffer. Tiến trình Consumer lần lượt lấy các sản phẩm (dữ liệu, dòng thông tin) ra khỏi bộ đệm.
Ví dụ: Trình Compiler tạo ra các lệnh của ngôn ngữ Assembler. Trình Assembler nhận để tạo mã đích, mã này được Loader hoặc Linkage Editor tiêu thụ.
Ví dụ:Mỗi học sinh trong lớp là 1 tiến trình.Khi A và B được gọi lên bảng làm bài tập gọi là nhà Sản xuất.Giáo viên hoặc 1 bạn C trong lớp có nhiệm vụ dùng máy ảnh chụp lại công việc, nội dung bài làm trên bảng của A và B gọi là nhà Tiêu thụ.
Công việc của các Producer cần phải được đồng bộ hóa với các Consumer, nghĩa là: tiến trình Consumer không thể lấy sản phẩm ra khi bộ đệm trống( không có sản phẩm), và tiến trình Producer không thể sản xuất khi bộ đệm đầy(không có chỗ trống).
Cấu trúc của Buffer:
#define BUFFER_SIZE 10
typedef struct {...// mô tả các thành phần của 1 khoang chứa
} item;
item Buffer [BUFFER_SIZE]; //bộ nhớ đệm
int in = 0; // con trỏ tới vị trí trống kế tiếp
int out = 0; //con trỏ tới vị trí lấy tiếp theo
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
}
Tiến trình sản xuất (PRODUCER):
item nextProduced;
while (1)
{
while(((in+1)%BUFFER_SIZE)==out); //quẩn tại đây khi buffer đầy.
buffer[in] = nextProduced;
in = (in+1)%BUFFER_SIZE;
}
Tiến trình tiêu thụ (CONSUMER):
item nextConsumed;
while (1)
{
while(in==out); //quẩn khi buffer rỗng
nextConsumed = buffer[out];
out = (out+1)%BUFFER_SIZE;
}
Ví dụ:Trong kho gạo, khi đã chất đầy gạo( không còn chỗ chứa: (in+1)%BUFFER_SIZE)==out)), nhà sản xuất không được xếp thêm gạo vào kho nữa mà phải đợi nhà tiêu thụ lấy bớt gạo trong kho ra, có chỗ trống mới được đưa thêm gạo vào. Tương tự, khi trong kho không còn gạo( kho trống: in==out) thì nhà tiêu thụ không được lấy gạo ra nữa mà phải đợi nhà sản xuất xếp gạo vào mới được lấy tiêu thụ.
Lý do cộng tác trong công việc của các tiến trình:
Thông qua bài toán sản xuất và tiêu thụ, ta thấy: 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ần cộng tác với nhau để :
-Chia sẻ thông tin (Information Sharing): 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. Nói cách khác, một tiến trình có thể sử dụng thông tin do tiến trình khác cung cấp.
Ví dụ:Để làm đề tài môn Hệ Thống Web, Thầy chia lớp ra thành nhiều nhóm nhỏ, mỗi nhóm từ 1 -3 sinh viên. Để hoàn thành tốt đề tài, mỗi sinh viên trong nhóm sẽ được phân thực hiện một phần trong đề tài. sau đó, mọi người tổng hợp ý kiến, chia sẻ thông tin, kiến thức của mình cho các bạn trong nhóm để đề tài được hoàn thành tốt.
- Tăng tốc tính toán (Computation Speedup): Các tiến trình làm việc song song trên
cùng một hoặc nhiều máy tính để giải quyết bài toán chung.
Ví dụ: mỗi sinh viên khi nhận nhiệm vụ của mình sẽ thực hiện đồng thời và ra đưa kết quả vào thời điểm đã định.
- Đảm bảo tính đơn thể (Modularity): Chương trình được chia thành các đơn thể chức năng riêng vận hành trong các tiến trình hoặc luồng khác nhau.
Ví dụ: Làm đê tài theo nhóm, mỗi sinh viên làm phần mình được nhóm phân công. Đ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): Người dùng có khả năng làm nhiều việc cùng một lúc: Soạn thảo, In ấn, Lấy file về, Biên dịch, ...
Ví dụ: Khi đề tài Web hoàn thành, nếu khả thi, Web sẽ được mọi người dùng vào thưc tế, biết thêm nhiều tính năng, dùng làm tài liệu cho các nhóm, lớp khác...
Nhu cầu sử dụng internet của chúng ta cùng là một ví dụ điển hình cho việc cộng tác giữa các tiến trình.
TranThiThuyQuyen (113A)- Tổng số bài gửi : 25
Join date : 18/07/2012
Age : 34
Đến từ : Lâm Đồng
Re: Thảo luận Bài 4
Câu 1: Trình bày mô hình chuyển trạng thái của tiến trình
New: tiến trình đang được tạo lập.
Running: các chỉ thị của tiến trình đang được xử lý.
Blocked: tiến trình chờ được cấp phát một tài nguyên, hay chờ một sự kiện xảy ra .
Ready: tiến trình chờ được cấp phát CPU để xử lý.
Kết thúc: tiến trình hoàn tất xử lý.
Tiến trình P1: vào hàng đợi Job-Queue ở trạng thái New, sẽ đợi 1 khoảng thời gian của quá trình điều phối chậm (Scheduler Long Term) của hệ điều hành(HĐH) để chọn tiến trình, sau khi được O.S chọn, P1 chuyển sang hàng đợi reday quueue và ở trạng thái Ready. Lúc này P1 chỉ đợi cấp CPU và running.
Sau một khỏang thời gian running, tiến trình P2 xuất hiện. Lúc này, hệ điều hành sẽ ghi lại thông tin của P1 vào thanh PCB1 bao gồm những thông tin: con trỏ, trạng thái của P1, số hiệu của tiến trình P1, Bộ đếm P1, nội dung của P1…Và chuyển P1 sang hàng đợi Waiting và chuyển trạng thái Ready. Lúc này, P2 sẽ được cấp CPU và running. Và sau một khỏang thời gian running, P2 cũng sẽ chuyển sang hàng đợi waiting và chuyển trạng thái ready, lúc này HĐH cũng ghi lại thông tin vào thanh ghi PCB2 như đã làm ở P1. Sau đó, HĐH sẽ load lại thông tin của PCB1 và P1 sẽ tiếp tục running. Quá trình này cũng sẽ lập lại cho P2. Đển khi P1 và P2 kết thúc.
Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái running trên một bộ xử lý
bất kỳ. Trong khi đó, nhiều tiến trình có thể ở trạng thái blocked hay ready.
Các cung chuyển tiếp trong sơ đồ trạng thái biễu diễn sáu sự chuyển trạng thái có thể xảy
ra trong các điều kiện sau :
• Tiến trình mới tạo được đưa vào hệ thống
• Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU
• Tiến trình kết thúc
• Tiến trình yêu cầu một tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó ; hoặc tiến trình phải chờ một sự kiện hay thao tácnhập/xuất.
• Bộ điều phối chọn một tiến trình khác để cho xử lý .
• Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát ; hay sự kiện hoặc thao tác nhập/xuất tiến trình đang đợi hoàn tất.
New: tiến trình đang được tạo lập.
Running: các chỉ thị của tiến trình đang được xử lý.
Blocked: tiến trình chờ được cấp phát một tài nguyên, hay chờ một sự kiện xảy ra .
Ready: tiến trình chờ được cấp phát CPU để xử lý.
Kết thúc: tiến trình hoàn tất xử lý.
Tiến trình P1: vào hàng đợi Job-Queue ở trạng thái New, sẽ đợi 1 khoảng thời gian của quá trình điều phối chậm (Scheduler Long Term) của hệ điều hành(HĐH) để chọn tiến trình, sau khi được O.S chọn, P1 chuyển sang hàng đợi reday quueue và ở trạng thái Ready. Lúc này P1 chỉ đợi cấp CPU và running.
Sau một khỏang thời gian running, tiến trình P2 xuất hiện. Lúc này, hệ điều hành sẽ ghi lại thông tin của P1 vào thanh PCB1 bao gồm những thông tin: con trỏ, trạng thái của P1, số hiệu của tiến trình P1, Bộ đếm P1, nội dung của P1…Và chuyển P1 sang hàng đợi Waiting và chuyển trạng thái Ready. Lúc này, P2 sẽ được cấp CPU và running. Và sau một khỏang thời gian running, P2 cũng sẽ chuyển sang hàng đợi waiting và chuyển trạng thái ready, lúc này HĐH cũng ghi lại thông tin vào thanh ghi PCB2 như đã làm ở P1. Sau đó, HĐH sẽ load lại thông tin của PCB1 và P1 sẽ tiếp tục running. Quá trình này cũng sẽ lập lại cho P2. Đển khi P1 và P2 kết thúc.
Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái running trên một bộ xử lý
bất kỳ. Trong khi đó, nhiều tiến trình có thể ở trạng thái blocked hay ready.
Các cung chuyển tiếp trong sơ đồ trạng thái biễu diễn sáu sự chuyển trạng thái có thể xảy
ra trong các điều kiện sau :
• Tiến trình mới tạo được đưa vào hệ thống
• Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU
• Tiến trình kết thúc
• Tiến trình yêu cầu một tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó ; hoặc tiến trình phải chờ một sự kiện hay thao tácnhập/xuất.
• Bộ điều phối chọn một tiến trình khác để cho xử lý .
• Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát ; hay sự kiện hoặc thao tác nhập/xuất tiến trình đang đợi hoàn tất.
lechaukhoa(113A)- Tổng số bài gửi : 23
Join date : 16/07/2012
Đến từ : Tân An-Long An
LIÊN LẠC GIỮA CÁC TIẾN TRÌNH VÀ VẤN ĐỀ ĐỒNG BỘ HÓA
Liên lạc giữa các tiến trình:
-Một tiến trình thực thi độc lập thì không ảnh hưởng và không bị ảnh hưởng bởi các tiến trình khác trong hệ thống. Tuy nhiên, một số tiến trình có thể cộng tác, trao đổi dữ liệu với nhau để hoàn thành công việc
-Ưu điểm của sự cộng tác:
+Chia xẻ thông tin.
+Hiệu suất tính toán cao.
-Sự cộng tác của các tiến trình yêu cầu hệ điều hành hỗ trợ cơ chế giao tiếp (communication) và cơ chế đồng bộ hoạt động của các tiến trình (synchronization).
Các cơ chế thông tin liên lạc:
1/ Tín hiệu.
2/ Pipe.
3/ Vùng nhớ chia xẻ.
4/ Interprocess Communication (IPC).
5/ Sockets.
-Một tiến trình thực thi độc lập thì không ảnh hưởng và không bị ảnh hưởng bởi các tiến trình khác trong hệ thống. Tuy nhiên, một số tiến trình có thể cộng tác, trao đổi dữ liệu với nhau để hoàn thành công việc
-Ưu điểm của sự cộng tác:
+Chia xẻ thông tin.
+Hiệu suất tính toán cao.
-Sự cộng tác của các tiến trình yêu cầu hệ điều hành hỗ trợ cơ chế giao tiếp (communication) và cơ chế đồng bộ hoạt động của các tiến trình (synchronization).
Các cơ chế thông tin liên lạc:
1/ Tín hiệu.
2/ Pipe.
3/ Vùng nhớ chia xẻ.
4/ Interprocess Communication (IPC).
5/ Sockets.
Diễn giải sơ đồ trạng thái tiến trình của chương 4
Một tiến trình được tạo ra ở trạng thái New. Do có nhiều tiến trình được tạo ra nên trong trạng thái new có hàm chờ (join queue), để duyệt từng tiến trình. Một tiến trình nào đó được HDH cho phép sẽ chuyển từ trạng thái Join queue sang trạng thái ready queue. Trong ready cũng có thế có nhiều tiến trình. HDH chọn 1 tiến trình thực thi - chuyển qua trạng thái running.
Tại trạng thái running của 1 tiến trình có thế bị ngắt (gọi là tiến trình tiếm quyền CPU [cái này không chắc đúng chữ kiếm quyền hay tiếm quyền- vì ngồi xa, thấy viết lên bảng ko thấy rõ] ). Tiến trình bị ngắt (interrup) có thể do chạy quá lâu, hết thời lượng phải chuyển qua tiến trình khác, lúc này tiến trình ở trạng thái waiting. Waiting sẻ trả về cho ready để ready tiếp tục chuyển qua running. Và một tiến trình sau khi running xong sẽ được chuyển qua trạng thái terminated- trạng thái kết thúc.
Vai Trò Của Khối Kiểm Soát PCB
PCB có nhiệm vụ lưu giữ các trạng thái làm việc của một tiến trình A trước khi một tiến trình B được thực thi, đồng thời trả về thông tin của tiến trình B để hệ điều hành xử lý.
Ví dụ:
Thầy gọi bạn A lên bảng, bạn A lên bảng và ghi thông tin được yêu cầu lên bảng, tiếp theo Thầy gọi bạn B lên bảng cũng ghi thông tin được yêu cầu lên bảng, nhưng trước khi bạn B có thể tiếp tục công việc của mình thì Thầy đóng vai trò hệ điều hành ghi lại thông tin của bạn A khi lên bảng bao gồm: thông tin trên bảng, vị trí,... tương tự bạn B cũng vậy (trên tập của mỗi bạn). // trích dẫn ví dụ trên lớp
Ví dụ:
Thầy gọi bạn A lên bảng, bạn A lên bảng và ghi thông tin được yêu cầu lên bảng, tiếp theo Thầy gọi bạn B lên bảng cũng ghi thông tin được yêu cầu lên bảng, nhưng trước khi bạn B có thể tiếp tục công việc của mình thì Thầy đóng vai trò hệ điều hành ghi lại thông tin của bạn A khi lên bảng bao gồm: thông tin trên bảng, vị trí,... tương tự bạn B cũng vậy (trên tập của mỗi bạn). // trích dẫn ví dụ trên lớp
TranVanTien (I12A)- Tổng số bài gửi : 11
Join date : 22/02/2012
Phân biệt các loại trình điều phối
Trình điều phối (Schduler) có 3 loại trình điều phối :
---Điều phối chậm (long - term schduler)
+ chọn tiến trình từ job queue để đưa vào Ready Queue
Kiểm soát độ đa chương. (số tiến trính trong bộ nhớ)
Do có nhiều thời gian (tới vài phút) loại scheduler này có điều kiện để lựa chọn kỹ càng nhầm phối hợp cân đối 2 tiến trinh2.
1. Hướng CPU (CPU - Bound) ; tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận (phục vụ) cho nhiều người (nhiều tiến trình).
2. Hướng I/O : (I/O) tính toán ít , nhiều I/O
VD: công ty có 1 chiếc xe ô to (CPU) các nhân viên trong công ty chỉ ngồi nghiên cứu I/O không sử dụng đến ô tô ; vậy quá lãng phí ô tô (CPU).
Mục đích cân bằng tải cho toàn hệ thống.
-- điều phối nhanh (short - term schedule)
-- còn gọi là điều phối cpu.
-- chọn tiến trình từ ready queue để cấp cpu.
-- có tần suất công việc cao. thường cứ 100ms lại tốn 10ms đề sát định tiến trình kế tiếp như vậy 10/(100+10)=9% thời gian cpu được dùng để điều phối công việc.
--Điều phối vừa: ( Medium - term Scheduler) :
---- là Short -Term Scheduler được thêm chức năng rút các tiến trình khỏi bộ nhớ dẫn đến làm giảm độ đa chương,sau đó đưa lại chúng vào bộ nhớ vào thời điểm thích hợp để tiếp tục thực hiện từ vị trí bị tạm ngừng trước đó.
----nhờ cách điều phối này hỗn hợp các tiến trình trong Ready Queue có tính tối ưu.
Ví dụ: Phòng thực hành nhỏ, nhưng nhiều bạn đi học thực hành (nhiều tiến trình). Thầy (HĐH) sẽ đẩy một số bạn ra khỏi lớp (rút tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong phòng học xong Thầy sẽ đẩy các bạn bên ngoài vào phòng học (đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).
---Điều phối chậm (long - term schduler)
+ chọn tiến trình từ job queue để đưa vào Ready Queue
Kiểm soát độ đa chương. (số tiến trính trong bộ nhớ)
Do có nhiều thời gian (tới vài phút) loại scheduler này có điều kiện để lựa chọn kỹ càng nhầm phối hợp cân đối 2 tiến trinh2.
1. Hướng CPU (CPU - Bound) ; tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận (phục vụ) cho nhiều người (nhiều tiến trình).
2. Hướng I/O : (I/O) tính toán ít , nhiều I/O
VD: công ty có 1 chiếc xe ô to (CPU) các nhân viên trong công ty chỉ ngồi nghiên cứu I/O không sử dụng đến ô tô ; vậy quá lãng phí ô tô (CPU).
Mục đích cân bằng tải cho toàn hệ thống.
-- điều phối nhanh (short - term schedule)
-- còn gọi là điều phối cpu.
-- chọn tiến trình từ ready queue để cấp cpu.
-- có tần suất công việc cao. thường cứ 100ms lại tốn 10ms đề sát định tiến trình kế tiếp như vậy 10/(100+10)=9% thời gian cpu được dùng để điều phối công việc.
--Điều phối vừa: ( Medium - term Scheduler) :
---- là Short -Term Scheduler được thêm chức năng rút các tiến trình khỏi bộ nhớ dẫn đến làm giảm độ đa chương,sau đó đưa lại chúng vào bộ nhớ vào thời điểm thích hợp để tiếp tục thực hiện từ vị trí bị tạm ngừng trước đó.
----nhờ cách điều phối này hỗn hợp các tiến trình trong Ready Queue có tính tối ưu.
Ví dụ: Phòng thực hành nhỏ, nhưng nhiều bạn đi học thực hành (nhiều tiến trình). Thầy (HĐH) sẽ đẩy một số bạn ra khỏi lớp (rút tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong phòng học xong Thầy sẽ đẩy các bạn bên ngoài vào phòng học (đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).
NguyenVanQuyet57 (113A)- Tổng số bài gửi : 25
Join date : 16/07/2012
Age : 33
Trình bày 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.
- 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ụ thực tế: 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ụ thực tế: 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ụ thực tế: 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ụ thực tế: 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ụ thực tế: 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ụ thực tế: 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ụ thực tế: 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ụ thực tế: 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, ....
NguyenVanQuyet57 (113A)- Tổng số bài gửi : 25
Join date : 16/07/2012
Age : 33
Re: Thảo luận Bài 4
Ai giúp e với ạ
Nêu các cơ chế truyền thông báo giữa hai tiến trình độc lập . Ưu và nhược điểm của mỗi loại ?
Nêu các cơ chế truyền thông báo giữa hai tiến trình độc lập . Ưu và nhược điểm của mỗi loại ?
Khách vi- Khách viếng thăm
Re: Thảo luận Bài 4
TranThichThem (113A) đã viết: Phát biểu bài toán:
+ Giả sử có Bộ nhớ đệm (Buffer) bao gồm nhiều khoang (Items) được tiến trình Producer lần lượt đưa các sản phẩm S1, S2,... vào.
+ Tiến trình Consumer lần lượt lấy sản phẩm ra theo đúng thứ tự.
+ Công việc của Producer phải đồng bộ với Consumer: Không được đưa sản phẩm vào khi Buffer đầy, Không được lấy ra khi chưa có.
Trình bày giải thuật:
PRODUCER
item nextProduced;
while (1)
{
while(((in+1)%BUFFER_SIZE)==out); //quẩn tại đây khi buffer đầy.
buffer[in] = nextProduced;
in = (in+1)%BUFFER_SIZE;
}
-----------------------------------------------------------------------------------------------------------------------------------------
CONSUMER
item nextConsumed;
while (1)
{
while(in==out); //quẩn khi buffer rỗng
nextConsumed = buffer[out];
out = (out+1)%BUFFER_SIZE;
}
Muốn chạy cái đoạn code trên thì bỏ vô đâu vậy bạn?
huynhquanghao_I92C- Tổng số bài gửi : 21
Join date : 15/11/2010
Re: Thảo luận Bài 4
Mình muốn góp ý : sự khác nhau cơ bản giữa vb và vb.net
vb là ngôn ngữ thông dịch .
vb.net la ngôn ngữ biên dịch .
ưu điểm thông dịch : ?
khuyết điễm thông dịch: ?
ưu điểm biên dịch : ?
khuyết điểm biên dịch : ?
Tình huống : hai người ở xa biết nhau qua ảnh , họ muốn thiết lập quan hệ với nhau. Họ trao đổi với nhau qua giấy và nhờ người khác chuyển hộ .
bài toán :
trường hợp 1 : người A nói tiếng anh va người B nói tiếng việt nam , giấy hiếm và ít ,chỉ viết được 1 câu thì hết, đang trong thời chiến và có sự kiểm tra nghiêm ngặt nội dung giấy tờ.
giao tiếp giữa A va B
A viết : anh là viện .
1 tháng sau .
B đáp lại : ......
A viết : anh muốn quen em.
2 tháng sau .
B đáp lại : ừ !
5 năm sau
A viết : anh yêu em.
vb là ngôn ngữ thông dịch .
vb.net la ngôn ngữ biên dịch .
ưu điểm thông dịch : ?
khuyết điễm thông dịch: ?
ưu điểm biên dịch : ?
khuyết điểm biên dịch : ?
Tình huống : hai người ở xa biết nhau qua ảnh , họ muốn thiết lập quan hệ với nhau. Họ trao đổi với nhau qua giấy và nhờ người khác chuyển hộ .
bài toán :
trường hợp 1 : người A nói tiếng anh va người B nói tiếng việt nam , giấy hiếm và ít ,chỉ viết được 1 câu thì hết, đang trong thời chiến và có sự kiểm tra nghiêm ngặt nội dung giấy tờ.
giao tiếp giữa A va B
A viết : anh là viện .
1 tháng sau .
B đáp lại : ......
A viết : anh muốn quen em.
2 tháng sau .
B đáp lại : ừ !
5 năm sau
A viết : anh yêu em.
NguyenVuVien27 (113A)- Tổng số bài gửi : 5
Join date : 23/07/2012
Trạng thái của tiến trình
Là một thực thể động, tiến trình có thể thuộc những trạng thái khác nhau. Có nhiều cách
phân biệt trạng thái tiến trình. Theo cách đơn giản nhất, tiến trình thuộc một trong hai trạng
thái: chạy và không chạy. Chạy là khi các lệnh của tiến trình được CPU thực hiện và không
chạy là trường hợp ngược lại, ví dụ khi CPU đang được phân phối cho tiến trình khác hoặc
khi tiến trình phải dừng để chờ kết quả vào/ra.
Cách sử dụng hai trạng thái tiến trình là quá đơn giản và không đủ để phản ánh đầy đủ
thông tin về trạng thái tiến trình. Trên thực tế, hệ điều hành thường phân biệt năm trạng thái
khác nhau của tiến trình: mới khởi tạo, sẵn sàng, chạy, chờ đợi, kết thúc. Ý nghĩa cụ thể năm
trạng thái như sau:
- Trạng thái mới khởi tạo: tiến trình đang được tạo ra.
- Trạng thái sẵn sàng: tiến trình chờ được cấp CPU để thực hiện lệnh của mình.
- Trạng thái chạy: lệnh của tiến trình được CPU thực hiện.
- Trạng thái chờ đợi: tiến trình chờ đợi một sự kiện gì đó xảy ra, ví dụ chờ tín hiệu từ
tiến trình khác hoặc chờ kết thúc quá trình vào/ra. Trạng thái chờ đợi còn được gọi là
trạng thái bị phong tỏa (blocked).
- Trạng thái 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.
Mô hình năm trạng thái tiến trình là mô hình được sử dụng rộng rãi nhất trong các hệ
điều hành, mặc dù tên gọi cụ thể từng trạng thái có thể thay đổi trong hệ điều hành cụ thể.
Hình 2.1. Sơ đồ chuyển đổi giữa các trạng thái của tiến trình
Trong một số trường hợp, có thể chia nhỏ và phân biệt nhiều trạng thái hơn nữa. Chẳng
hạn, một số hệ điều hành sử dụng thêm trạng thái treo (suspended), trong đó tiến trình dừng
toàn bộ việc thực hiện hoặc thậm chí tạm bị chuyển từ bộ nhớ ra đĩa.
Ý nghĩa việc chuyển đổi giữa các trạng thái. Việc chuyển trạng thái xảy ra trong
những trường hợp nhất định.
Ý nghĩa các chuyển đối trạng thái như sau:
- Mới khởi tạo → Sẵn sàng: tiến trình đã được khởi tạo xong và đã được tải vào bộ nhớ,
chỉ chờ được cấp CPU để chạy, khi đó tiến trình sẽ được chuyển từ trạng thái mới sang
trạng thái sẵn sàng.
- Sẵn sàng → Chạy: do kết quả điều độ của hệ điều hành, tiến trình được hệ điều hành
cấp phát CPU và chuyển sang trạng thái chạy.
- Chạy → Sẵn sàng: hệ điều hành cấp phát CPU cho tiến trình khác do kết quả điều độ
hoặc do xảy ra ngắt, tiến trình hiện thời chuyển sang trạng thái sẵn sàng và chờ được
cấp CPU để chạy tiếp.
- Chạy → Chờ đợi: tiến trình chỉ có thể thực hiện tiếp khi một sự kiện nào đó xNy ra. Ví
dụ, tiến trình đọc dữ liệu từ file và chỉ có thể thực hiện tiếp khi đọc xong, hay tiến
trình thực hiện lời gọi hệ thống và phải chờ cho tới khi lời gọi hệ thống thực hiện
xong. Trong trường hợp này, tiến trình chuyển sang trạng thái chờ đợi hoặc còn gọi là
trạng thái bị phong tỏa (blocked).
- Chờ đợi → Sẵn sàng: khi sự kiện được chờ đợi đã xảy ra, tiến trình sẽ được chuyển
sang trạng thái sẵn sàng và chờ được phân phối CPU để chạy tiếp.
- Chạy → Kết thúc: tiến trình đã thực hiện xong, được chuyển sang trạng thái kết thúc
trước khi chấm dứt sự tồn tại.
phân biệt trạng thái tiến trình. Theo cách đơn giản nhất, tiến trình thuộc một trong hai trạng
thái: chạy và không chạy. Chạy là khi các lệnh của tiến trình được CPU thực hiện và không
chạy là trường hợp ngược lại, ví dụ khi CPU đang được phân phối cho tiến trình khác hoặc
khi tiến trình phải dừng để chờ kết quả vào/ra.
Cách sử dụng hai trạng thái tiến trình là quá đơn giản và không đủ để phản ánh đầy đủ
thông tin về trạng thái tiến trình. Trên thực tế, hệ điều hành thường phân biệt năm trạng thái
khác nhau của tiến trình: mới khởi tạo, sẵn sàng, chạy, chờ đợi, kết thúc. Ý nghĩa cụ thể năm
trạng thái như sau:
- Trạng thái mới khởi tạo: tiến trình đang được tạo ra.
- Trạng thái sẵn sàng: tiến trình chờ được cấp CPU để thực hiện lệnh của mình.
- Trạng thái chạy: lệnh của tiến trình được CPU thực hiện.
- Trạng thái chờ đợi: tiến trình chờ đợi một sự kiện gì đó xảy ra, ví dụ chờ tín hiệu từ
tiến trình khác hoặc chờ kết thúc quá trình vào/ra. Trạng thái chờ đợi còn được gọi là
trạng thái bị phong tỏa (blocked).
- Trạng thái 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.
Mô hình năm trạng thái tiến trình là mô hình được sử dụng rộng rãi nhất trong các hệ
điều hành, mặc dù tên gọi cụ thể từng trạng thái có thể thay đổi trong hệ điều hành cụ thể.
Hình 2.1. Sơ đồ chuyển đổi giữa các trạng thái của tiến trình
Trong một số trường hợp, có thể chia nhỏ và phân biệt nhiều trạng thái hơn nữa. Chẳng
hạn, một số hệ điều hành sử dụng thêm trạng thái treo (suspended), trong đó tiến trình dừng
toàn bộ việc thực hiện hoặc thậm chí tạm bị chuyển từ bộ nhớ ra đĩa.
Ý nghĩa việc chuyển đổi giữa các trạng thái. Việc chuyển trạng thái xảy ra trong
những trường hợp nhất định.
Ý nghĩa các chuyển đối trạng thái như sau:
- Mới khởi tạo → Sẵn sàng: tiến trình đã được khởi tạo xong và đã được tải vào bộ nhớ,
chỉ chờ được cấp CPU để chạy, khi đó tiến trình sẽ được chuyển từ trạng thái mới sang
trạng thái sẵn sàng.
- Sẵn sàng → Chạy: do kết quả điều độ của hệ điều hành, tiến trình được hệ điều hành
cấp phát CPU và chuyển sang trạng thái chạy.
- Chạy → Sẵn sàng: hệ điều hành cấp phát CPU cho tiến trình khác do kết quả điều độ
hoặc do xảy ra ngắt, tiến trình hiện thời chuyển sang trạng thái sẵn sàng và chờ được
cấp CPU để chạy tiếp.
- Chạy → Chờ đợi: tiến trình chỉ có thể thực hiện tiếp khi một sự kiện nào đó xNy ra. Ví
dụ, tiến trình đọc dữ liệu từ file và chỉ có thể thực hiện tiếp khi đọc xong, hay tiến
trình thực hiện lời gọi hệ thống và phải chờ cho tới khi lời gọi hệ thống thực hiện
xong. Trong trường hợp này, tiến trình chuyển sang trạng thái chờ đợi hoặc còn gọi là
trạng thái bị phong tỏa (blocked).
- Chờ đợi → Sẵn sàng: khi sự kiện được chờ đợi đã xảy ra, tiến trình sẽ được chuyển
sang trạng thái sẵn sàng và chờ được phân phối CPU để chạy tiếp.
- Chạy → Kết thúc: tiến trình đã thực hiện xong, được chuyển sang trạng thái kết thúc
trước khi chấm dứt sự tồn tại.
TranMinhNhat61 (102c)- Tổng số bài gửi : 55
Join date : 16/07/2012
Phân biệt các loại trình điều phối.
Trình điều phối (Schduler) có 3 loại trình điều phối :
A.Điều phối chậm (long - term schduler)
-chọn tiến trình từ job queue để đưa vào Ready Queue
Kiểm soát độ đa chương. (số tiến trính trong bộ nhớ)
-Do có nhiều thời gian (tới vài phút) loại scheduler này có điều kiện để lựa chọn kỹ càng nhầm phối hợp cân đối 2 tiến trinh2.
1. Hướng CPU (CPU - Bound) ; tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận (phục vụ) cho nhiều người (nhiều tiến trình).
2. Hướng I/O : (I/O) tính toán ít , nhiều I/O
VD: công ty có 1 chiếc xe ô to (CPU) các nhân viên trong công ty chỉ ngồi nghiên cứu I/O không sử dụng đến ô tô ; vậy quá lãng phí ô tô (CPU).
Mục đích cân bằng tải cho toàn hệ thống.
B.điều phối nhanh (short - term schedule)
- còn gọi là điều phối cpu.
- chọn tiến trình từ ready queue để cấp cpu.
- có tần suất công việc cao. thường cứ 100ms lại tốn 10ms đề sát định tiến trình kế tiếp như vậy 10/(100+10)=9% thời gian cpu được dùng để điều phối công việc.
C.Điều phối vừa: ( Medium - term Scheduler) :
- là Short -Term Scheduler được thêm chức năng rút các tiến trình khỏi bộ nhớ dẫn đến làm giảm độ đa chương,sau đó đưa lại chúng vào bộ nhớ vào thời điểm thích hợp để tiếp tục thực hiện từ vị trí bị tạm ngừng trước đó.
- nhờ cách điều phối này hỗn hợp các tiến trình trong Ready Queue có tính tối ưu.
Ví dụ: Phòng thực hành nhỏ, nhưng nhiều bạn đi học thực hành (nhiều tiến trình). Thầy (HĐH) sẽ đẩy một số bạn ra khỏi lớp (rút tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong phòng học xong Thầy sẽ đẩy các bạn bên ngoài vào phòng học (đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).
A.Điều phối chậm (long - term schduler)
-chọn tiến trình từ job queue để đưa vào Ready Queue
Kiểm soát độ đa chương. (số tiến trính trong bộ nhớ)
-Do có nhiều thời gian (tới vài phút) loại scheduler này có điều kiện để lựa chọn kỹ càng nhầm phối hợp cân đối 2 tiến trinh2.
1. Hướng CPU (CPU - Bound) ; tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận (phục vụ) cho nhiều người (nhiều tiến trình).
2. Hướng I/O : (I/O) tính toán ít , nhiều I/O
VD: công ty có 1 chiếc xe ô to (CPU) các nhân viên trong công ty chỉ ngồi nghiên cứu I/O không sử dụng đến ô tô ; vậy quá lãng phí ô tô (CPU).
Mục đích cân bằng tải cho toàn hệ thống.
B.điều phối nhanh (short - term schedule)
- còn gọi là điều phối cpu.
- chọn tiến trình từ ready queue để cấp cpu.
- có tần suất công việc cao. thường cứ 100ms lại tốn 10ms đề sát định tiến trình kế tiếp như vậy 10/(100+10)=9% thời gian cpu được dùng để điều phối công việc.
C.Điều phối vừa: ( Medium - term Scheduler) :
- là Short -Term Scheduler được thêm chức năng rút các tiến trình khỏi bộ nhớ dẫn đến làm giảm độ đa chương,sau đó đưa lại chúng vào bộ nhớ vào thời điểm thích hợp để tiếp tục thực hiện từ vị trí bị tạm ngừng trước đó.
- nhờ cách điều phối này hỗn hợp các tiến trình trong Ready Queue có tính tối ưu.
Ví dụ: Phòng thực hành nhỏ, nhưng nhiều bạn đi học thực hành (nhiều tiến trình). Thầy (HĐH) sẽ đẩy một số bạn ra khỏi lớp (rút tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong phòng học xong Thầy sẽ đẩy các bạn bên ngoài vào phòng học (đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).
NguyenPhamTanPhat(113A)- Tổng số bài gửi : 22
Join date : 17/07/2012
Age : 37
So Sánh UDP và TCP
UDP là gì ?
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.
TCP là gì ?
Giao thứ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):
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
UDP:
- Dùng cho mạng LAN
- Cho phép mất dữ liệu
- Không đảm bảo.
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.
TCP là gì ?
Giao thứ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):
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
UDP:
- Dùng cho mạng LAN
- Cho phép mất dữ liệu
- Không đảm bảo.
nguyenvanlinheban_113a- Tổng số bài gửi : 44
Join date : 17/07/2012
Age : 36
Đến từ : DAKLAK
Re: Thảo luận Bài 4
Câu 7: Truyền thông điệp trong windows (Message-Passing in Windows)
Các hàm API dùng để Gửi/Nhận thông điệp
– SendMessage - Gửi có chờ
– PostMessage - Gửi không chờ
– SendMessageTimeout- Gửi có chờ nhưng với thời hạn
– WaitMessage - Chờ thông điệp đến
– GetMessage - Nhận có chờ
– PeekMessage - Nhận không chờ
Các hàm API dùng để Gửi/Nhận thông điệp
– SendMessage - Gửi có chờ
– PostMessage - Gửi không chờ
– SendMessageTimeout- Gửi có chờ nhưng với thời hạn
– WaitMessage - Chờ thông điệp đến
– GetMessage - Nhận có chờ
– PeekMessage - Nhận không chờ
lechaukhoa(113A)- Tổng số bài gửi : 23
Join date : 16/07/2012
Đến từ : Tân An-Long An
Re: Thảo luận Bài 4
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ả,...
• 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ả,...
lechaukhoa(113A)- Tổng số bài gửi : 23
Join date : 16/07/2012
Đến từ : Tân An-Long An
Một vài lí do nên tự tạo phần mềm chát nội bộ.
Hiện trên mạng đã có rất nhiều phần mềm chát phổ biến, miễn phí nhưng mình cũng cần thiết lập 1 phần mềm chát riêng.
VD: ứng dụng trong phạm vi công ty -> có thể tạo như vậy với mục đích ứng dụng nội bộ, mình có thể dể quản lý user, dễ xử lý lỗi phát sinh, tiện dụng, tăng tính bảo mật, đặc biệt với những công ty cần bảo vệ chặt chẽ thông tin, tránh bị lộ thông tin ra ngoài...
VD: ứng dụng trong phạm vi công ty -> có thể tạo như vậy với mục đích ứng dụng nội bộ, mình có thể dể quản lý user, dễ xử lý lỗi phát sinh, tiện dụng, tăng tính bảo mật, đặc biệt với những công ty cần bảo vệ chặt chẽ thông tin, tránh bị lộ thông tin ra ngoài...
NguyenThiKimNgan (113A)- Tổng số bài gửi : 12
Join date : 19/07/2012
Re: Thảo luận Bài 4
Áp dụng vào 3 đoạn mã sau (có giải thích) :lechaukhoa(113A) đã viết:Câu 7: Truyền thông điệp trong windows (Message-Passing in Windows)
Các hàm API dùng để Gửi/Nhận thông điệp
– SendMessage - Gửi có chờ
– PostMessage - Gửi không chờ
– SendMessageTimeout- Gửi có chờ nhưng với thời hạn
– WaitMessage - Chờ thông điệp đến
– GetMessage - Nhận có chờ
– PeekMessage - Nhận không chờ
1. PostMessage (P1,m1): Gửi thông điệp m1 cho P1 sau đó chuyển ngay sang lệnh sau (không chờ P1 báo là đã nhận được).
2. SendMessageTimeout (P2,m2,8000): Tiếp tục gửi thông điệp m2 sang tiến trình P2 và đi vào trạng thái ngủ (Sleeping) cho tới khi nhận được phản hồi từ tiến trình P2 hoặc sau 8000 mili giây (8 giây) mà không thấy phản hồi thì nó sẽ tiếp tục thực thi tiếp câu lệnh thứ hai.
3. SendMessage (P3,m3): Tiếp tục gửi thông điệp m3 sang tiến trình P3, sau đó rơi vào trạng thái ngủ cho tới khi P3 phản hồi thì mới kết thúc công việc.
LeLamThang (113A)- Tổng số bài gửi : 35
Join date : 15/02/2012
Re: Thảo luận Bài 4
Có rất nhiều tiến trình nếu như ta ví nó vào những trường hợp và hoàn cảnh khác nhau.
Cũng như ví dụ của bạn linh mình có thể mở rộng thêm về tiến trình,ví dụ như mỗi lớp học là 1 tiến trình và cơ sở Ngô Tất Tố cũng là 1 tiến trình, và cứ mở rộng phạm vi như vậy sẻ có được nhiều tiến trình.NguyenHuuLinh31(113A) đã viết:
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.
Được sửa bởi nguyenchithuc(113A) ngày 7/8/2012, 00:02; sửa lần 1.
nguyenchithuc(113A)- Tổng số bài gửi : 30
Join date : 02/08/2012
Age : 34
Re: Thảo luận Bài 4
-Một số đặc điểm cơ bản của TCP để phân biệt với UDP:nguyenvanlinheban_113a đã viết:UDP là gì ?
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.
TCP là gì ?
Giao thứ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):
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
UDP:
- Dùng cho mạng LAN
- Cho phép mất dữ liệu
- Không đảm bảo.
+Truyền dữ liệu không lỗi (do có cơ chế sửa lỗi/truyền lại)
+Truyền các gói dữ liệu theo đúng thứ tự
+Truyền lại các gói dữ liệu mất trên đường truyền
+Loại bỏ các gói dữ liệu trùng lặp
+Cơ chế hạn chế tắc nghẽn đường truyền
Giống nhau:
- 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.
Khác nhau:
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 |
nguyenchithuc(113A)- Tổng số bài gửi : 30
Join date : 02/08/2012
Age : 34
Re: Thảo luận Bài 4
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:
- Trong nhà hàng :
các nhân viên là tiến trình hệ thống
Khi khách yêu cầu các món ăn là vd của tiến trình người dùng.
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:
- Trong nhà hàng :
các nhân viên là tiến trình hệ thống
Khi khách yêu cầu các món ăn là vd của tiến trình người dùng.
TranThiThuyQuyen (113A)- Tổng số bài gửi : 25
Join date : 18/07/2012
Age : 34
Đến từ : Lâm Đồng
câu I 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?
[Only admins are allowed to see this image]
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.
NguyenVuLinh12053_I11C- Tổng số bài gửi : 41
Join date : 07/08/2012
UDP là gì ?
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.
TCP là gì ?
Giao thứ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):
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
UDP:
- Dùng cho mạng LAN
- Cho phép mất dữ liệu
- Không đảm bảo.
NguyenVuLinh12053_I11C- Tổng số bài gửi : 41
Join date : 07/08/2012
Trang 3 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 3 trong tổng số 6 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết