Tin học
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Thảo luận Bài 5

+100
NguyenTuanHai_I12A
lymydung_I12A
DiepMaiNgocYen(I12A)
tranthithanhuyen85 (I11C)
minhtam_I12C
nguyenthanhnghi_I12C
nguyenthihongtham_I12C
LeMInhTien(I11C)
DuongTrungQuan
Đỗ Phan Diễm Hương I12A
TRANTHINHPHAT (I11C)
TrinhThiPhuongThaoI12C
TRANTHUYOANH_10H1010066
nguyenthaihiep (I11C)
maidangvu_I12A
huynhtamhaoI12A
TranVanBao(I12A)
TranPhiLong (I11C)
quynhnhi.nguyen_I12A
BuiAnhNgoc(I12C)
DaoThaiHuyI12A
HUYNHMINHHAI(I12A)
VoTrongQuyet-I12A
phamphihung55
PhamDucPhuong(I12A)
nguyenthanhphongHC11TH2A
ngothihanHC11TH2A
NguyenXuanTri28
LeMinhDuc (I11C)
nguyen_tuan_phat_I12A
BuiHuongTra(I12A)
NguyenHongHaiI12C
lengocthuthao89 (i11c)
huynhvanhung(I12A)
leminhtam13(I12A)
NguyenThiHue48(I12A)
quicly_I111c
lethianhnhat_I12A
lethanhsang_I12A
phanngocthinh(i12a)
hoanghaiyen
Đinh Đông Dương
NgoXuanQuoc_(102C)
trantrungnam-HC11TH2A
Nguyen Doan Linh051(I11c)
HUYNHDUCANHI12A
levanhop.it
LeQuocKhanh-11H1010059
nguyenthipha1510
nguyenhuutho
NguyenthechinhI12A
TaThucCuongI12C
LeXuanHau (I12C)
TranThiMyKhanh(I12A)
ng_dang_khoa_HC11TH2A
TranTrungTinh(I12A)
plminhhoangI12A
LePhucHiep(102C)
thailongI12C
NguyenAnhTan15 (I12C)
NguyenDangPhongI12A
lacongchinh_I12A
NguyenHaThanh97 (I11C)
ngophicamI12A
TranTrungHienI12C
phamduyI12A
TranThiAnhDao89I12C
nguyenthingocmai_I12A
phuongnguyen
TranLeThanhVu_I12A
TranHoangNhanI12C
dangmonghai(I12A)
LeThiMaiPhuongI12A
maihuynam(I91c)
TranMinhTuan143(I12A)
vothingocthuy87(I11C)
DoanNgocDan(I12A)
hoxuanvu_I12A
letanthanh18(I12A)
HoNgocTuan142(I12A)
NguyenVanBenI12C
NguyenNgocDuy(I12A)
TranThiNgocQuynh(I12C)
tranvanthien27(I12C)
luthioanh-I12A
LeThanhTung (I11C)
NgoPhuQuoc_I12C
NguyenThiHongYen(I12A)
NguyenHoangThangI12A
hoanggiangI12C
TrinhVinhThanh (I12A)
HoNguyenQuocTuy(I12A)
PhamQuangHien_I12A
nguyenthimao_I12A
nguyenvanhonglac_0066
BuiDaiNghia-102C
DaoQuangTri38(I12A)
TruongQuocTrung_I12A
TranHuyCuong17 (I12A)
Admin
104 posters

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

Go down

Thảo luận Bài 5 - Page 9 Empty Có những mô hình đa luồng nào?

Bài gửi  NguyenthechinhI12A 20/4/2012, 00:40


Mô hình Many – to – One là nhiều User level threads được ánh xạ vào một Kernel Thread. Việc quản lý được thực hiện ở User Level, khi có một thread bị block thì toàn bộ các Process cũng bị block theo.
Mô hình One – to – One là mỗi User level thread được gắn với một Kernel thread. Khi có một user thread mới được tạo ra thì cũng cần tạo một Kernel thread tương ứng, lúc này chi phí quá lớn.
Mô hình Many – to – Many nhiều User level thread được phân chia ánh xạ vào một số Kernel thread. Tránh được các khuyết điếm của 2 mô hình trên.
NguyenthechinhI12A
NguyenthechinhI12A

Tổng số bài gửi : 24
Join date : 16/02/2012
Age : 34
Đến từ : BẮC NINH - HCM

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty Những ích lợi của đa luồng và các mô hình đa luồng thông dụng

Bài gửi  TranHuyCuong17 (I12A) 24/4/2012, 14:29

Đơn luồng và Đa luồng

Thảo luận Bài 5 - Page 9 001


Ích lợi của Đa luồng

• Sự đáp ứng:
đa luồng một ứng dụng giao tiếp cho phép một chương trình tiếp
tục chạy thậm chí nếu một phần của nó bị khóa hay đang thực hiện một thao
tác dài, do đó gia tăng sự đáp ứng đối với người dùng. Thí dụ, một trình duyệt
web vẫn có thể đáp ứng người dùng bằng một luồng trong khi một ảnh đang
được nạp bằng một luồng khác.
• Chia sẻ tài nguyên:
Mặc định, các luồng chia sẻ bộ nhớ và các tài nguyên của
các quá trình mà chúng thuộc về. Thuận lợi của việc chia sẽ mã là nó cho phép
một ứng dụng có nhiều hoạt động của các luồng khác nhau nằm trong cùng
không gian địa chỉ.
• Kinh tế:
cấp phát bộ nhớ và các tài nguyên cho việc tạo các quá trình là rất
đắt. Vì các luồng chia sẻ tài nguyên của quá trình mà chúng thuộc về nên nó
kinh tế hơn để tạo và chuyển ngữ cảnh giữa các luồng. Khó để đánh giá theo
kinh nghiệm sự khác biệt chi phí cho việc tạo và duy trì một quá trình hơn một
luồng, nhưng thường nó sẽ mất nhiều thời gian để tạo và quản lý một quá trình
hơn một luồng. Trong Solaris 2, tạo một quá trình chậm hơn khoảng 30 lần tạo
một luồng và chuyển đổi ngữ cảnh chậm hơn 5 lần.
• Sử dụng kiến trúc đa xử lý:
các lợi điểm của đa luồng có thể phát huy trong
kiến trúc đa xử lý, ở đó mỗi luồng thực thi song song trên một bộ xử lý khác
nhau. Một quá trình đơn luồng chỉ có thể chạy trên một CPU. Đa luồng trên
một máy nhiều CPU gia tăng tính đồng hành. Trong kiến trúc đơn xử lý, CPU
thường chuyển đổi qua lại giữa mỗi luồng quá nhanh để tạo ra hình ảnh của sự
song song nhưng trong thực tế chỉ một luồng đang chạy tại một thời điểm.


Các mô hình đa luồng
Thảo luận Bài 5 - Page 9 002
Mô hình nhiều một


Thảo luận Bài 5 - Page 9 003
Mô hình một một


Thảo luận Bài 5 - Page 9 004
Mô hình nhiều nhiều
TranHuyCuong17 (I12A)
TranHuyCuong17 (I12A)

Tổng số bài gửi : 37
Join date : 16/02/2012
Age : 36
Đến từ : DLY™

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty Re: Thảo luận Bài 5

Bài gửi  NguyenTuanHai_I12A 24/4/2012, 16:28

  • Đảm bảo được khả năng đáp ứng của tiến trình tốt hơn, khi lập trình đa luồng thì một khi 1 luồng có sự cố thì luồng khác vẫn làm việc, vẫn phản hồi ,trong trường hợp lập trình đơn luồng khi gặp sự cố thì luồng đó sẽ chậm và làm chậm luôn cả tiến trình, đa luồng một ứng dụng giao tiếp cho phép một chương trình tiếp tục chạy thậm chí nếu một phần của nó bị khóa hay đang thực hiện một thao tác dài, do đó gia tăng sự đáp ứng đối với người dùng.

Ví dụ : một trình duyệt web vẫn có thể đáp ứng người dùng bằng một luồng trong khi vẫn nạp bằng một luồng khác.
Các cô ở tổng đài 108 là các luồng , khi khách hàng điện thoại hỏi 108, thì một trong các cô (người thứ nhất) sẽ trả lời, nếu trong thời điểm đó khách hàng thứ hai gọi 108,thì một trong các cô (cô thứ 2) còn lại sẽ trả lời
  • Theo mặc định các luồng có thể dùng chung bộ nhớ và tài nguyên của luồng cha. Thuận lợi của việc chia sẻ mã là nó cho phép một ứng dụng có nhiều hoạt động của các luồng khác nằm trong cùng không gian, địa chỉ,vài luồng cùng vận hành trong một vùng địa chỉ dễ dùng chung tài nguyên hơn so với trường hợp đa tiến trình.

Ví dụ : trong nhà có kệ sách, xe máy, máy vi tính … mọi người có thể dùng chung và sử dụng chung kệ sách, xe máy, máy vi tính. Trong khi không thể dùng chung những đồ dùng trên với nhà khác được.
Trong lớp chúng ta có thể dùng bảng củ lớp mình, chúng ta có thể chia sẻ các thông tin cần thiết cho tất cả các thành viên ở trong lớp biết,trong khi chúng ta khong thể dùng chung bảng của lớp khác để chia sẻ thông tin cho lớp mình được.
  • Tiết kiệm (Economy) : Cấp phát bộ nhớ và tài nguyên cho tiến trình là công việc rất tốn kém. Do luồng có thể dùng chung tài nguyên với luồng cha và các luồng khác, việc tạo lập ngữ cảnh cũng nhanh hơn (Solaris2, tạo tiến trình chậm hơn 30 lần, chuyển ngữ cảnh chậm hơn 5 lần)

Ví dụ : Các bạn trong lớp là các luồng đang dùng chung một cái bảng của lớp, ai cần ghi thì ghi, ai cần thì chụp hình về xem
Có thể bố trí một chỗ ngồi ở trong lớp cho một bạn đến sau dễ dàng hơn việc làm một chiếc ghế khác cho bạn đó.
+ Chuyển ngữ cảnh từ luồng này sang luồng khác thì nhanh hơn chuyển ngữ cảnh từ tiến trình này sang tiến trình khác.
+ Tận dụng được ưu thế kiến trúc đa xử lý (nhiều CPU). Khi đa luồng thì 1 luồng dùng CPU này và 1 luồng dùng CPU khác sẽ nhanh hơn và các luồng có thể làm việc song song , mỗi luồng có thể chạy bởi CPU riêng. Tiến trình đa luồng sẽ làm việc nhanh hơn tiến trình đơn luồng.
+ Lập trình đa luồng dễ dàng hơn lập trình đa tiến trình.

NguyenTuanHai_I12A

Tổng số bài gửi : 14
Join date : 15/02/2012
Age : 34
Đến từ : Long An

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty Tập luồng (Thread Pools):

Bài gửi  DangLeHieu(I102C) 1/5/2012, 00:58

-Tiến trình cha tạo lập sẵn một tập luồng khi khởi động.
-Các luồng trong tập luồng luôn sẵn sàng chờ công việc.
-Khi tiến trình cha (ví dụ Web Server) nhận thêm một yêu cầu, một luồng được đánh thức và đưa vào vận hành.
-Phục vụ xong, luồng được đưa trả về tập luồng.
-Nếu số yêu cầu lớn hơn số luồng trong tập, tiến trình cha chờ đến khi có luồng được giải phóng.

Ví dụ:
Trong một doanh trai quân đội sẽ có một tướng lĩnh (tiến trình cha) và sẽ có một đội binh (tập luồng).

Đội binh này sẽ sẳn sàng chiến đầu khi có mệnh lệnh (sẵn sàng chờ công việc).

Khi có một tên địch đột nhập, Tướng lĩnh sẽ điều binh sĩ 1 (một luồng) đi bắt tên địch (một luồng được đánh thức và đưa vào vận hành).

Trong khi đó, lại có thêm một tên địch khác đột nhập (nhận thêm một yêu cầu), Tướng lĩnh sẽ điều binh sĩ 2 (một luồng) đi bắt địch (một luồng khác được đánh thức và đưa vào vận hành).

Sau khi bắt địch xong, binh sĩ sẽ trở về doanh trại (luồng được trả về tập luồng)

DangLeHieu(I102C)

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

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty Re: Thảo luận Bài 5

Bài gửi  NguyenHuuHung(I11C) 1/5/2012, 15:42

So sánh đa luồng với đa tiến trình:

1. Giống nhau:

- Điều có thông tin trạng thái

- Luồng còn được gọi là tiến trình nhẹ.

- Nhiều luồng hoặc nhiều tiến trình có thể liên quan đến 1 chương trình.

- Dùng chung tài nguyên từ tiến trình(hoạc luồng) cha.

- Cùng có chức năng xử lý song song.

- Chia sẻ tài nguyên cho nhau.

- Tăng tốc tính toán.

- Đảm bảo tính đơn thể.

2. Khác nhau:

- Do các luồng cùng vận hành trong cùng 1 địa chỉ vì vậy dễ dùng chung tài nguyên hơn đa tiến trình

- Do các luồng chung tài nguyên với cha và các luồng khác nên việc tạo lập và chuyển ngữ cảnh cũng nhanh hơn và ít chiếm tài nguyên hơn tiến trình.

- Cấp phát bộ nhớ và tài nguyên cho tiến trình thì tốn kém hơn luồng.

- Lập trình đa luồng thì dễ hơn lập trình đa tiến trình. Bởi vì trao đổi dữ liệu của lập trình đa luồng dễ hơn việc trao dữ liệu của lập trình đa tiến trình

- Đa tiến trình tốn resources hơn đa luồng.

NguyenHuuHung(I11C)

Tổng số bài gửi : 16
Join date : 27/08/2011
Age : 38

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty So sánh đa luồng với đa tiến trình

Bài gửi  ĐoànMinhQuangI12A 3/5/2012, 10:34

1. Giống nhau:

- Điều có thông tin trạng thái

- Luồng còn được gọi là tiến trình nhẹ.

- Nhiều luồng hoặc nhiều tiến trình có thể liên quan đến 1 chương trình.

- Dùng chung tài nguyên từ tiến trình(hoạc luồng) cha.

- Cùng có chức năng xử lý song song.

- Chia sẻ tài nguyên cho nhau.

- Tăng tốc tính toán.

- Đảm bảo tính đơn thể.

2. Khác nhau:

- Do các luồng cùng vận hành trong cùng 1 địa chỉ vì vậy dễ dùng chung tài nguyên hơn đa tiến trình

- Do các luồng chung tài nguyên với cha và các luồng khác nên việc tạo lập và chuyển ngữ cảnh cũng nhanh hơn và ít chiếm tài nguyên hơn tiến trình.

- Cấp phát bộ nhớ và tài nguyên cho tiến trình thì tốn kém hơn luồng.

- Lập trình đa luồng thì dễ hơn lập trình đa tiến trình. Bởi vì trao đổi dữ liệu của lập trình đa luồng dễ hơn việc trao dữ liệu của lập trình đa tiến trình

- Đa tiến trình tốn resources hơn đa luồng.

ĐoànMinhQuangI12A

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

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty Những lợi ích của công nghệ đa luồng

Bài gửi  dongocthien (I11C) 3/5/2012, 21:44

Khả năng đáp ứng (Responsiveness) tốt hơn: Trong khi một luồng bị ách hoặc quá bận, luồng khác vẫn vận hành bình thường (Luồng chính của trình duyệt vẫn tương tác với người dùng trong khi dữ liệu được lấy về).
Ví dụ: Các cô ở tổng đài 108 là các luồng. Khi khách hàng điện thoại hỏi 108. Nếu chỉ có 1 cô phải trực 10 máy điện thoại thì khi chỉ có 1 cuộc điện thoại gọi đến thì cô sẽ trả lời tốt nhưng khi có khoảng 3 cuộc điện thoại trở lên thì cô không thể trả lời được kịp hết.
Nếu có nhiều cô cùng trực điện thoại thì lúc đó sẽ tốt hơn, đáp ứng được nhu cầu của khách hàng khi họ gọi đến .
Nếu trong thời điểm đó khách hàng thứ hai gọi 108, thì một trong các cô (cô thứ 2) còn lại sẽ trả lời cho khách hàng.

Chia sẻ tài nguyên (Resource Sharing): Theo mặc định, các luồng có thể dùng chung bộ nhớ và tài nguyên của luồng cha. Vài luồng cùng vận hành trong 1 vùng địa chỉ, do đó dễ dùng chung tài nguyên hơn so với trường hợp đa tiến trình.
Ví dụ: Trong nhà ta có kệ sách, tivi, xe gắn máy, ... mọi người trong nhà có thể dùng chung sách, tivi, xe máy.

Tiết kiệm (Economy): Cấp phát bộ nhớ và tài nguyên cho tiến trình là công việc tốn kém. Do luồng chung tài nguyên với cha và các luồng khác, việc tạo lập và chuyển ngữ cảnh cũng nhanh hơn (Solaris 2: Tạo tiến trình chậm hơn 30 lần, Chuyển ngữ cảnh chậm hơn 5 lần).
Ví dụ: Các bạn trong lớp là các luồng đang dùng chung một cái bảng, ai cần ghi thi ghi, ai cần thì chụp hình về xem

Tận dụng được thế mạnh của kiến trúc đa xử lý: Đa luồng làm tăng tính song song trên hệ máy nhiều CPU. Mỗi luồng có thể chạy bởi CPU riêng.

dongocthien (I11C)

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

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty Trình bày nguyên lý tập luồng và Ví dụ minh họa

Bài gửi  dongocthien (I11C) 3/5/2012, 21:45

Tập luồng (Thread Pools):

-Tiến trình cha tạo lập sẵn một tập luồng khi khởi động.
- Các luồng trong tập luồng luôn sẵn sàng chờ công việc.
- Khi tiến trình cha (ví dụ Web Server) nhận thêm một yêu cầu, một luồng được đánh thức và đưa vào vận hành.
- Phục vụ xong, luồng được đưa trả về tập luồng.
- Nếu số yêu cầu lớn hơn số luồng trong tập, tiến trình cha chờ đến khi có luồng được giải phóng.
Ví dụ:
Trong một doanh trai quân đội sẽ có một tướng lĩnh (tiến trình cha) và sẽ có một đội binh (tập luồng).
Đội binh này sẽ sẳn sàng chiến đầu khi có mệnh lệnh (sẵn sàng chờ công việc).
Khi có một tên địch đột nhập, Tướng lĩnh sẽ điều binh sĩ 1 (một luồng) đi bắt tên địch (một luồng được đánh thức và đưa vào vận hành).
Trong khi đó, lại có thêm một tên địch khác đột nhập (nhận thêm một yêu cầu), Tướng lĩnh sẽ điều binh sĩ 2 (một luồng) đi bắt địch (một luồng khác được đánh thức và đưa vào vận hành).
Sau khi bắt địch xong, binh sĩ sẽ trở về doanh trại (luồng được trả về tập luồng)

dongocthien (I11C)

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

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty Code Đa Luồng

Bài gửi  dongocthien (I11C) 3/5/2012, 21:50

public class StringThread implements Runnable {
private String str;
private int num;

StringThread(String s, int n)
{
str = new String(s);
num = n;
}

/* (non-Javadoc)
* @see java.lang.Runnable#run()
*/
@Override
public void run() {
for (int i = 1; i <= num; i++)
System.out.print(str + " ");
}
}

public class TestClass {
/**
* @param args
*/
public static void main(String[] args) {
StringThread t = new StringThread("Thread", 10);
new Thread(t).start();
}
}

dongocthien (I11C)

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

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty port và một số port thông dụng

Bài gửi  hoxuanvu_I12A 5/5/2012, 20:01

Những điều cần biết về Port:

- Port không phải là " cổng " để "chạy ra chạy vào" mà là một số hiệu ID cho 1 application nào đó.
- Mỗi Application chỉ có thể chạy trên một/nhiều port và mang tính độc quyền, không có Application khác được " chạy ké ".
- Chính vì tính độc quyền nên các Application có thể modify cho phép chạy một port khác với Port default. Ví dụ IIS/Apache làm web server có thể dùng 80 là default nhưng có thể đổi thành 81 82 83 v.v... tùy ý.
- Port cũng có phân chia làm Internal và External .
- Số hiệu từ 1->65535.

Mình xin nói về một số cổng thông dụng trong internet: (là cổng chuẩn mặc định, và được quy ước trong mạng), còn nếu mình muốn tự chỉ định port cũng được:


1.Cổng 80: Khi một người sử dụng địa chỉ IP hay HostName của các bạn trong bộ duyệt, bộ duyệt sẽ quan sát địa chỉ IP trên cổng 80 theo mặc định cho những trang Web.

2.Cổng 81: Khi một người sử dụng nhập địa chỉ IP hay HostName của các bạn trong bộ duyệt, bộ duyệt sẽ quan sát địa chỉ IP trên cổng 80. Nếu Cổng thì bị tắc nghẽn, Cổng 81 được sử dụng như một Cổng xen kẽ cho một website hosting nào đó.

3.Cổng 21: Khi người nào đó thử nối tới dịch vụ FTP của các bạn, khách hàng FTP sẽ cố gắng kết nối trên Cổng 21 theo mặc định. Thì cổng 21 mở cho những khách FTP đăng nhập và nối tới server của các bạn

4.Cổng 22: Nếu bạn chạy một SSH Secure Shell, cổng này được yêu cầu cho Khách hàng SSH để nối tới người phục vụ của các bạn.

5.Cổng 23 :Nếu bạn chạy một người phục vụ Telnet, cổng này được yêu cầu cho Khách hàng Telnet để nối tới người phục vụ của các bạn. Telnet có thể được sử dụng cho những cổng khác kiểm tra những công tác dịch vụ, nhưng để sử dụng telnet cho admin và đăng nhập từ xa thì cổng 23 phải mở.

6.Cổng 25: Khi người nào đó gửi một thư từ thông báo tới server SMTP của các bạn, thư từ sẽ cố gắng để đi vào tới server của các bạn trên Cổng 25. Đây là tiêu chuẩn SMTP (thủ tục vận chuyển Thư từ Đơn giản)

7.Cổng 2525: Khi người nào đó gửi một thư từ thông báo tới server SMTP của bạn, thư từ sẽ để đi vào tới server của các bạn trên Cổng 25. Cổng 2525 xen kẽ được dùng bởi TZO cho những công tác lưu trữ và truyền lại. Đây là một cổng không tiêu chuẩn, nhưng sẻ hữu ích nếu SMTP (thủ tục vận chuyển Thư từ Đơn giản) bị tắc nghẽn

8.Cổng 110: Khi bạn chạy một máy tính, những người sử dụng sẽ vào theo đường POP3 (Nghi thức cơ quan bưu điện) hay IMAP4 (giao thức truy nhập Thông báo Internet) khôi phục thư từ của họ. POP3 là nghi thức tốt nhất để truy nhập những hòm thư

9.Cổng 119: Khi bạn chạy một server Tin tức, điển hình những khách hàng Tin tức muốn nối tới người phục vụ Tin tức của các bạn sẽ nối trên cổng 119. Cái này chuyển những nhu cầu để mở để chạy server tin tức của mình.

10.Cổng 3389: Chuyển 3389 Là Máy để bàn Từ xa được sử dụng cho Windows. Nếu bạn muốn từ xa kết nối tới máy tính của các bạn để điều khiển từ xa, việc sử dụng máy để bàn Từ xa freeXP yêu cầu cổng 3389 để mở.

11.Cổng 389 : LDAP hay giao thức truy nhập Thư mục Lightweight đang trở nên phổ biến chúng cho sự Truy nhập Thư mục, hay Tên, điện thoại Gửi những Thư mục. Chẳng hạn
LDAP: // LDAP.Bigfoot. Com là một người phục vụ thư mục LDAP.

12.Cổng 143 : IMAP4 hay giao thức truy nhập Thông báo Internet đang trở nên phổ biến hơn và được sử dụng khôi phục Thư từ Internet từ một server từ xa. từ đó tất cả các thông báo đều được cất giữ trên server, Nó dễ dàng trực tuyến, ngoại tuyến và sự sử dụng offline

13.Cổng 443 : Khi bạn chạy một người phục vụ an toàn, những Clients SSL muốn nối tới những server An toàn ,các bạn nối trên cổng 443. Những cổng này được cần để mở để chạy …..

14.Cổng 1503 & 1720 :MS NetMeeting và VOIP cho phép bạn tới host Internet hay gọi là VideoConference. NetMeeting là một sản phẩm tự do mà có thể là được tìm thấy trên Website Microsoft Tại địa chỉ http: // www.microsoft.com /

15.Cổng 5590: Khi bạn chạy một Server VNC để từ xa kiểm soát PC của các bạn, nó sử dụng cổng 5900. VNC sẻ hữu ích nếu bạn muốn từ xa kiểm soát server của các bạn../

16.Cổng 5631: Khi một người phục vụ PCAnywhere được thiết lập nhận được những yêu cầu từ xa, nó tiếp tục nghe TCP cổng 5631. Hostand được cho phép bạn để chạy một PCAnywhere, PCAnywhere này sử dụng Internet để nối với nhau và từ xa kiểm soát PC của các bạn.

17. Cổng 1433: là cổng thông dụng của SQL sever

18. Cổng 23: là cổng thông dụng của telnet

19. Về mail nếu sử dụng Webmail (HTTP) vẫn là: 80
-POP3: 110, POP (SSL):995
-SMTP: 25, SMTP (SSL):465

Như các bạn đã biết thì mỗi port sẽ đi với 1 ứng dụng tương ứng,các quản trị mạng nên nắm rõ các port để biết được dịch vụ nào đang chạy trên mạng của mình để xử lý như chặn hoặc mở port tương ứng cho dịch đó.



Nếu các bạn muốn tìm hiểu thêm thì có thể tham khảo thêm rất nhiều port khác ở đây http://blog.yume.vn/xem-blog/tong-hop-cac-port-thong-dung

hoxuanvu_I12A

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

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty Sự liên lạc giữa các tiến trình

Bài gửi  hoxuanvu_I12A 5/5/2012, 20:02

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

2. Các vấn đề nảy sinh trong việc liên lạc giữa các tiến trình

**Do mỗi tiến trình sỡ hữu một không gian địa chỉ riêng biệt, nên các tiến trình không thể liên lạc trực tiếp dễ dàng mà phải nhờ vào các cơ chế do hệ điều hành cung cấp. Khi cung cấp cơ chế liên lạc cho các tiến trình, hệ điều hành thường phải tìm giải pháp cho các vấn đề chính yếu sau :
**Liên kết tường minh hay tiềm ẩn (explicit naming/implicit naming) : tiến trình có cần phải biết tiến trình nào đang trao đổi hay chia sẻ thông tin với nó ? Mối liên kết được gọi là tường minh khi được thiết lập rõ ràng , trực tiếp giữa các tiến trình, và là tiềm ẩn khi các tiến trình liên lạc với nhau thông qua một qui ước ngầm nào đó.
**Liên lạc theo chế độ đồng bộ hay không đồng bộ (blocking / non-blocking): khi một tiến trình trao đổi thông tin với một tiến trình khác, các tiến trình có cần phải đợi cho thao tác liên lạc hoàn tất rồi mới tiếp tục các xử lý khác ? Các tiến trình liên lạc theo cơ chế đồng bộ sẽ chờ nhau hoàn tất việc liên lạc, còn các tiến trình liên lạc theo cơ chế nonblocking thì không.
***Liên lạc giữa các tiến trình trong hệ thống tập trung và hệ thống phân tán: cơ chế liên lạc giữa các tiến trình trong cùng một máy tính có sự khác biệt với việc liên lạc giữa các tiến trình giữa những máy tính khác nhau?


Vì vậy, hầu hết các hệ điều hành đưa ra nhiều cơ chế liên lạc khác nhau, mỗi cơ chế có những đặc tính riêng, và thích hợp trong một hoàn cảnh chuyên biệt.

hoxuanvu_I12A

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

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty Trả lời với trích dẫn nội dung bài viết này Giải thích 1 số hàm trong bài toán sản xuất tiêu thụ

Bài gửi  TranHoangNhanI12C 22/5/2012, 20:42

Hàm GetCurrentThread: dùng để lấy về mục quản của luồng sản xuất hiện hành(mục quản: là con số do hệ điều hành cấp ho luồng hiện hành)
Hàm SuspendThread: dùng để tạm ngưng công việc của hàm với mục quản cho trước
Hàm Sleep: dùng để ngủ 1 số miligiay cho trước,hết khoảng thời gian đó nhà tiêu thụ lại làm việc tiếp
Hàm GetTickCount(): dùng để lấy số miligiay trôi qua kể từ khi hệ điều hành khởi động cho đến thời điểm gọi hàm này
HÀm ResumeThread: dùng để tiếp tục công việc của luồng với mục quản cho trước
Hàm CloseHandle: dùng để hủy đối tượng cho trước với mục quản cho trước. vd: CLoseHandle (45) :luồng 45 không làm việc nữa,bị đóng lại

TranHoangNhanI12C

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

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty Trình bày nguyên lý tập luồng

Bài gửi  ĐoànMinhQuangI12A 28/5/2012, 11:08

_Tập luồng là tập các luồng giống nhau và cùng chung chức năng
_Tiến trình cha tạo sẵn một tập luồng khi khởi động
_Khi tạo lặp xong chưa có việc thì tập luồng sẽ ngủ, các luồng trong tập luồng luôn sẵn sàng chờ công việc
_Khi tiến trình cha nhận được một yêu cầu, một luồng được đánh thức và đưa vào vận hành
_Phục vụ xong luồng được đưa trả về tập luồng
_Nếu số yêu cầu lớn hơn số luồng trong tập, tiến trình cha chờ đến khi có luồng được giải phóng
ví dụ: Cảnh sát giao thông: khi ở đoạn đường nào đó kẹt xe, thì sở cảnh sát giao thông sẽ cử 1 anh cảnh sát giao thông tới để điều tiết giao thông. Khi không còn kẹt xe nữa thì anh cảnh sát giao thông sẽ trở về sở giao thông đợi việc tiếp theo.

ĐoànMinhQuangI12A

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

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty minh dc bạn hiền gữi phần giải thích code mời các bạn xem tham khảo nha

Bài gửi  phanngocthinh(i12a) 28/5/2012, 14:52

Sản Xuất Tiêu Thụ Đa Luồng
#include
#include
#include // lập trình đa luồng đồng hành, sử dụng được hàm win32 API

#define BUFFER_SIZE 10 // định nghĩa một buffer có số khoang chứa là 10

int buffer[BUFFER_SIZE];
int in=0; // biến in chứa giá trị chỉ vị trí xếp sản phẩm vào
int out=0;// biến out chứa giá trị chỉ vị trí lấy sản phẩm ra

int nextProduced=1;// biến trung gian, chứa số hiệu sản phẩm đầu tiên

void Producer(){ // nhà sản xuất
while (1){
// ... Sản xuất (nextProduced)
while(((in+1)%BUFFER_SIZE)==out);// khoang chứa đầy thì quẩn tại đây đến khi nào có chỗ trống
buffer[in]=nextProduced++; // cho sản phẩm vào mảng tại vị trí in
in=(in+1)%BUFFER_SIZE; //sau khi chèn sản phẩm vào mảng, tăng in lên 1, nếu in đang nằm ở vị trí cuối mảng sẽ nhảy về đầu mảng
SuspendThread(GetCurrentThread()); //getcureentthread: hàm của thư viện win32 API, trả về giá trị mục quản của luồng hiện hành, vd: 1700. SuspendThread(): ngừng luồng có mục quản là giá trị trong ngoặc, vd: SuspendThread(1700) ngừng luồng có mục quản 1700
}
}

void Consumer(){ // nhà tiêu thụ
int nextConsumed; // biến chứa sản phẩm được tiêu thụ
while (1){
while(in==out); //trong khoang chứa hết sản phẩm thì quẩn tại đây cho đến khi nào trong buffer có sản phẩm
nextConsumed=buffer[out]; //sản phẩm ở vị trí out được đưa vào biến netxconsumed
out=(out+1)%BUFFER_SIZE;//out tăng lên 1, nếu out đang nằm ở cuối mảng thì nhảy lên đầu mảng
// ... Tiêu thụ (nextConsumed)
Sleep(GetTickCount()%5000); // hàm gettickcount() sẽ trả về thời gian tính bằng ms trôi qua kể từ khi hệ thống khởi động tới thời điểm hiện tại, kết quả sẽ ra được con số rất lớn và chia lấy số dư cho 5000 sẽ ra được 1 con số từ 0-4999, cho luồng tiêu thụ này ngủ trong khoảng thời gian đó.
}
}

void ShowBuffer(){ // In nội dung Buffer
const char * LeftMargin="\n\t";
int i;
printf(LeftMargin);
for(i=0; i<(in*5);i++) putchar(' '); printf("!in");

printf(LeftMargin);
for (i=0; iprintf("S%2d, ",buffer[i]);
printf("S%2d",buffer[BUFFER_SIZE-1]);

printf(LeftMargin);
for(i=0; i<(out*5); i++) putchar(' ');printf("^out");
printf("\n");
}

int main(){
HANDLE ProducerHandle1, ProducerHandle2; // lưu mục quản của 2 nhà sx vào 2 biến ProducerHandle1, ProducerHandle2
HANDLE ConsumerHandle1, ConsumerHandle2; //lưu mục quản của 2 nhà tiêu thụ

DWORD ProducerID1, ProducerID2; // mã số định danh của luồng sản xuất
DWORD ConsumerID1, ConsumerID2; // mã số định danh của luồng tiêu thụ

// tạo 2 luồng sản xuất trong trạng thái ngủ
ProducerHandle1=CreateThread(0,0,(LPTHREAD_START_ROUTINE)Producer,0, 4,&ProducerID1);// các đối số đầu ko quan tâm vì có mới chạy được
// số 4 chỉ ra luồng vừa tạo sẽ không chạy mà ngủ luôn, &ProducerID1 chỉ ra luồng sẽ có mã số định danh là ProducerID1
// sau khi làm lệnh này, sẽ có 2 luồng, luồng ctrinh này và luồng producer
ProducerHandle2=CreateThread(0,0,(LPTHREAD_START_ROUTINE)Producer,0, 4, &ProducerID2);
// Tạo 2 luồng tiêu thụ thi hành ngay
ConsumerHandle1=CreateThread(0,0,(LPTHREAD_START_ROUTINE)Consumer,0, 0, &ConsumerID1); //0: luồng tiêu thụ vận hành ngay, ko ngủ


ConsumerHandle2=CreateThread(0,0,
(LPTHREAD_START_ROUTINE)Consumer,
0, 0, &ConsumerID2);
while(1){
printf("\n- Nhap P/p de san xuat, 0 de ket thuc:”);
//P đánh thức nhà sx1, p sx2
switch (getch()){//biết người sử dụng bấm gì
case 'P':
ResumeThread(ProducerHandle1); //đánh thức luồng 1
break;
case 'p':
ResumeThread(ProducerHandle2);//đánh thức luồng 2
break;
case '0':
CloseHandle(ProducerHandle1);// hủy đối tượng(ở đây là luồng) có mục quản
CloseHandle(ProducerHandle2);
CloseHandle(ConsumerHandle1);
CloseHandle(ConsumerHandle2);
return 0;
}
Sleep(1);// ngủ 1 ms, tức là luồng chính sẽ trễ 1 chút để sx cho xong(chờ in tăng lên 1) rồi mới showbuffer ra
ShowBuffer();
}
}
phanngocthinh(i12a)
phanngocthinh(i12a)

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

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty Nguyên lý tập luồng

Bài gửi  TRANTHINHPHAT (I11C) 30/5/2012, 10:02

- Tiến trình cha tạo lập sẵn một tập luồng ngay khi vửa khởi động một công việc và chuyển nó sang trạng thái sleep(vì nếu cho xử lý liền thì sẽ tốn CPU). Phải chuyển sang trạng thái ngủ nên khi có yêu cầu xử lý thì sẽ chuyển sang trạng thái xử lý ngay, mặc dù phải tốn RAM để duy trì tập luồng trong trạng thái sleep nhưng vẫn tốt hơn, tiết kiệm hơn trong việc phải chờ hình thành một tiến trình khác.

- Khi tiến trình cha nhận được một yêu cầu thì một luồng con sẽ được đánh thức và đưa vào vận hành.
- Sau khi phục vụ xong yêu cầu thì luồng ngay lập tức sẽ được trả về tập luồng và chờ cho đến khi được gọi thực thị công việc kế tiếp.
- Các luồng trong tập luồng luôn trong trạng thái sẵn sàng chờ công việc, ngay khi có yêu cầu xử lý thì tập luồng sẽ điều phối các luồng ra thực hiện trong phạm vi số lượng luồng cho phép, nếu hết thì cần phải chờ luồng xử lý xong mới tiếp tục đáp ứng thực hiện yêu cầu sau.
- Nếu số lượng yêu cầu quá lớn, lớn hơn số lượng luồng trong tập luồng, thì tiến trình cha phải chờ cho đến khi có luồng con được giải phóng trả về mới gọi đi thực thi tiế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

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty Re: Thảo luận Bài 5

Bài gửi  Sponsored content


Sponsored content


Về Đầu Trang Go down

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

Về Đầu Trang

- Similar topics

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