Thảo luận Bài 4

Trang 13 trong tổng số 15 trang Previous  1 ... 8 ... 12, 13, 14, 15  Next

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

TÌM HIỂU VỀ API

Bài gửi  TruongQuocTrung_I12A on 21/3/2012, 11:02

Giao diện lập trình ứng dụng:
Một giao diện lập trình ứng dụng (tiếng anh Application Programming Interface hay API) là một giao diện mà một hệ thống máy tính hay ứng dụng cung cấp để cho phép các yêu cầu dịch vụ có thể được tạo ra từ các chương trình máy tính khác, và/hoặc cho phép dữ liệu có thể được trao đổi qua lại giữa chúng. Chẳng hạn, một chương trình máy tính có thể (và thường là phải) dùng các hàm API của hệ điều hành để xin cấp phát bộ nhớ và truy xuất tập tin. Nhiều loại hệ thống và ứng dụng hiện thực API, như các hệ thống đồ họa, cơ sở dữ liệu, mạng, dịch vụ web, và ngay cả một số trò chơi máy tính. Đây là phần mềm hệ thống cung cấp đầy đủ các chức năng và các tài nguyên mà các lập trình viên có thể rút ra từ đó để tạo nên các tính năng giao tiếp người- máy như: các trình đơn kéo xuống, tên lệnh, hộp hội thoại, lệnh bàn phím và các cửa sổ. Một trình ứng dụng có thể sử dụng nó để yêu cầu và thi hành các dịch vụ cấp thấp do hệ điều hành của máy tính thực hiện. Hệ giao tiếp lập trình ứng dụng giúp ích rất nhiều cho người sử dụng vì nó cho phép tiết kiệm được nhiều thời gian tìm hiểu các chương trình mới, do đó khích lệ mọi người dùng nhiều ứng dụng hơn.

Một trong các mục đích chính của một API là cung cấp khả năng truy xuất đến một tập các hàm hay dùng — ví dụ, hàm để vẽ các cửa sổ hay các icon trên màn hình. Các API, cũng như hầu hết các interfaces, là trừu tượng (abstract). Phần mềm mà muốn cung cấp truy xuất đến chính nó thông qua các API cho sẵn, phải hiện thực API đó. Trong nhiều tình huống, một API thường là một phần của bộ SDK, hay software development kit. Một bộ SDK có thể bao gồm một API cũng như các công cụ/phần cứng, vì thế hai thuật ngữ này không thay thế cho nhau được.
Có nhiều mô hình thiết kế khác nhau cho các APIs. Interfaces nhằm là cách thực thi nhanh nhất thường gồm các tập các hàm, thủ tục, biến và các cấu trúc dữ liệu. Tuy nhiên, các mô hình khác vẫn tồn tại, như bộ thông dịch dùng để ước giá biểu thức trong ECMAScript/JavaScript. Một API tốt thường cung cấp một "hộp đen" hay là một lớp trừu tượng (abstraction layer) bao bọc nó, nhằm đảm bảo là nhà lập trình không thể biết cách hiện thực cụ thể bên trong của mỗi hàm trong API. Điều này làm cho việc thiết kế lại hay cải tiến hàm của API đó trở nên dễ dàng hơn vì nó không làm đổ ỗ các đoạn mã khác mà có sử dụng các hàm đó.
Có hai dòng chính sách đối với việc công bố các APIs:
Một số công ty bảo vệ APIs của họ một cách mạnh mẽ. Ví dụ, Sony thường chỉ cung cấp API chính thức của PlayStation 2 cho các nhà phát triển PlayStation có đăng kí. Điều này là vì Sony muốn giới hạn những người có thể viết trò chơi trên PlayStation 2, và muốn thu lợi nhuận từ những người này càng nhiều càng tốt. Đây thường là chính sách đối với các công ty mà họ không thu lợi từ việc bán các hiện thực API của họ. Tuy nhiên, PlayStation 3 là công bố hoàn toàn APIs.
Một số công ty thì cung cấp miễn phí APIs. Ví dụ, Microsoft công bố hầu như hoàn toàn thông tin về các API, để cho các phần mềm có thể được viết chạy trên nền Windows. Việc bán của các phần mềm hãng thứ 3 đồng thời với việc phải mua Hệ điều hành Microsoft Windows. Đây thường là các công ty thu lợi nhuận từ việc bán các hiện thực API.
Một số APIs, chẳng hạn các API là chuẩn cho một hệ điều hành, được hiện thực dưới dạng các thư viện mã độc lập được phân phối kèm theo hệ điều hành. Một số khác thì đòi hỏi nhà sản xuất phần mềm phải tích hợp API trực tiếp vào trong chương trình. Microsoft Windows APIs đi kèm theo hệ điều hành cho phép mọi người có thể sử dụng chúng. Phần mềm cho các hệ thống nhúng như thiết bị chơi trò chơi thường thuộc vào loại tích hợp vào trong ứng dụng. Trong khi các tài liệu API chính thức của PlayStation là nên đọc, nhưng nó chẳng giúp ích gì nếu ta chẳng có các hiện thực của nó, dưới dạng một thư viện độc lập hay bộ phát triển phần mềm.
Một API mà cho phép truy xuất và sử dụng tự do được gọi là "mở." Các APIs được cung cấp bởi phần mềm mở (như mọi phần mềm được phân phối theo giấy phép đăng kí GNU), là mở theo đúng nghĩa, vì mọi người có thể xem mã nguồn của phần mềm và tìm ra API. Mặc dù việc tham khảo hiện thực vẫn tồn tại cho một API (như với Microsoft Windows cho Win32 API), thì việc tạo thêm các hiện thực bổ sung vẫn có thể diễn ra. Ví dụ, hầu hết các Win32 API có thể được cung cấp từ hệ thống UNIX dùng phần mềm tên là Wine.

TruongQuocTrung_I12A

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

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

Về Đầu Trang Go down

So sánh Job Queue và Ready Queue

Bài gửi  TruongQuocTrung_I12A on 21/3/2012, 11:04

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

TruongQuocTrung_I12A

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

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

Về Đầu Trang Go down

Thuật giải điều phối

Bài gửi  TruongQuocTrung_I12A on 21/3/2012, 11:06

Thuật giải điều phối FCFS:
-Tới trước – Phục vụ trước (First-Come, First-Served Scheduling)
- Đơn giản, dễ thực hiện
- Các tiến trình trong Ready Queue được cấp CPU từ đầu đến cuối dãy theo qui tắc FIFO(First In,First Out)
- Thời gian chờ là khá lớn

Thuật giải điều phối PS:
- Mỗi tiến trình được cấp một số nguyên(Priority Number) dùng để ấn định Độ ưu tiên
- CPU luôn dành tiến trình với độ ưu tiên cao hơn (Priority Number nhỏ hơn=Độ ưu tiên cao hơn) với 2 phương án:
Có tiếm quyền(Preemptive)
Không tiếm quyền (Non- Preemptive)
- SJFS là truờng hợp đặc biệt của PS với độ ưu tiên: P=(Khoảng CPU kế tiếp)

Thuật giải điều phối SJFS:
-Ngắn hơn-Chạy trước(Shortest-Job-First Scheduling-SJFS)
- Tiến trình có khoảng CPU kế tiếp nhỏ hơn thì được chạy trước (Shortest-Next-CPU-Burst). Trong trường hợp bằng nhau, dung thuật giải FCFS Là giải thuật khá tối ưu, nhưng phải biết cách ước đoán khoảng CPU kế tiếp
- SJFS không tiếm quyền(Non-Preemptive SJFS) tiến trình hiện thời được thực hiện đến hết khoảng CPU của nó
- SJFS có tiếm quyền(Preemptive SJFS) tiến trình mới có Next CPU Burst nhỏ hơn khoảng thời gian CPU còn lại của tiến trình đang vận hành sẽ được chọn thay thế (Shortest Remaining First)

Thuật giải điều phối RRS:
- Như điều phối kiểu FCFS nhưng cho phép tiếm quyền khi tiến trình đang chạy bị hết thời lượng
- Mỗi tiến trình được cấp 1 thời lượng CPU (Time Quantum), thường từ 10-100 mili giây. Sau khoảng thời gian này, nó bị tiếm quyền và được đưa vào cuối hàng chờ Ready . Tiến trình đầu tiên trong hàng chờ Ready được chọn kế tiếp
- Nếu có n tiến trình và thời lượng là q, mỗi tiến trình nhận 1/n thời gian CPU bao gồm các đoạn không quá q đơn vị thời gian

Thuật giải điều phối MQS:
- Hàng chờ Ready được phân thành nhiều mức có cấp độ ưu tiên khác nhau
ví dụ: mức các tiến trình tương tác (Interactive)chạy ở mặt trước (Foreground) có độ ưu tiên cao nhất và mức các tiến trình lô(Batch) vận hành trong hậu trường (Background)
- Mỗi hàng chờ có thuật giải điều phối riêng
ví dụ:Foreground dung RRS, Background dung FCFS
- Quan hệ giữa các mức: Ưu tiên xong hết các tiến trình mức trên rổi mới chuyển xuống mức dưới. Đang chạy tiến trình mức dưới mà xuất hiện tiến trình mới mức cao hơn, tiến trình mức dưới sẽ bị tiếm quyền cho tiến trình mới có độ ưu tiên cao hơn(Hệ Solaris 2 dùng cách này).Phân bổ theo tỉ lệ thời lượng:
ví dụ:80% thời lượng CPU dành cho Foreground, 20% cho Background

Thuật giải điều phối MFQS:
- Như MQS nhưng cho phép điều tiết tiến trình sang mức khác, ví dụ: những tiến trình hướng CPU được đưa xuống mức dưới , trong khi tiến trình hướng I/O hoặc chờ lâu được chuyển lên trên
- MFQS đặc trưng bởi các thong số:
Số mức (số hang chờ),điều phối cho mỗi mức.Phương thức nâng cấp tiến trình, hạ cấp tiến trình,chọn hàng chờ (chọn mức)cho tiến trình mới

TruongQuocTrung_I12A

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

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

Về Đầu Trang Go down

hai phương thức liên lạc giữa tiến trình

Bài gửi  phanngocthinh(i12a) on 21/3/2012, 11:20

-liên lạc trực tiếp(direct communications)
.theo địa chỉ đối xứng (Symmetric Scheme)
send(p,message)- gữi thông điệp từ Q
đặc điểm: liên kết được thiết lập tự động giữa mỗi cặp tiến trình, liên kết giũa 2 tiến trình
,chỉ có 1 liên kết giữa mỗi cặp, tính đối xứng của liên lạc( 2 bên đều biết đích xác tên của nhau khi
gữi/nhận)
.theo địa chỉ phi đối xứng(Asymmetric Scheme)
send(p,message)-gữi thông điệp cho p
receive(id,message)- nhận thông điệp từ tiến trình bất kỳ, biến id chứa số hiệu tiến trình gữi
-liên lạc gián tiếp( indirect communications)
. qua các hộp thư (mailboxes) hoặc cổng(ports)
. hộp thư là một thực thể qua đó thông điệp được gữi đến và lấy ra
.mỗi hộp thư có định danh riêng
.hai tiến trình phải chung nhau một hộp thư nào đó
.hai loại hộp thư:
+hộp thư tiến trình(process mailbox) nằm trong vùng địa chỉ của một tiến trình nào đó
+hộp thư hệ điều hành(OS Mailbox): nằm trong vùng địa chỉ của hệ điều hành.
avatar
phanngocthinh(i12a)

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

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

Về Đầu Trang Go down

đồng bộ hóa giữa các tiến trình

Bài gửi  phanngocthinh(i12a) on 21/3/2012, 11:25

đồng bộ hóa liên lạc(synchrozination)
.gữi thông điệp có chờ(blocking send)
.gữi thông điệp ko có chờ(nonblocking send)
.nhận thông điệp có chờ(blocking recieve)
.nhận thông điệp ko có chờ(nonblocking recieve)
avatar
phanngocthinh(i12a)

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

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

Về Đầu Trang Go down

truyền thông điệp trong windows

Bài gửi  phanngocthinh(i12a) on 21/3/2012, 11:29

các hàm API dùng để gữi/nhận thông điệp
.send message: gữi có chờ
.post message: gữi không có chờ
.Sendmessage Time out:gữi có chờ nhưng có thời hạn
.wait message:chờ thông điệp đến
.get message:nhận thông điệp có chờ
.peek message:nhận không có chờ
avatar
phanngocthinh(i12a)

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

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

Về Đầu Trang Go down

phân biệt hốcliên lạc trong hệ thống client-sever

Bài gửi  phanngocthinh(i12a) on 21/3/2012, 11:35

.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 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 cùng một lúc, nhưng không đảm bảo bằng TCP
avatar
phanngocthinh(i12a)

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

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

Về Đầu Trang Go down

Quote

Bài gửi  lequanghanh(102c) on 21/3/2012, 13:34

---Trước khi CPU chuyển từ thực thi tiến trình này sang tiến trình khác, do các tiến trình cần phải sử dụng bộ nhớ để xử lý công việc của chúng, nên hệ điều hành cần phải chuyển toàn bộ dữ liệu của tiến trình đang xử lý trên bộ nhớ sang một vùng nhớ tạm trước khi chuyển sang xử lý tiến trình tiếp theo. Đây chính là chức năng chính của khối kiểm soát tiến trình.


--- Các thông tin hệ điều hành cần lưu lại trước khi chuyển sang xử lý tiến trình khác bao gồm:
--- Credentials (user ID, group ID, effective ID,...)
--- Trạng thái process : new, ready, running, waiting…
--- Program counter: địa chỉ của lệnh kế tiếp sẽ thực thi
--- Các thanh ghi CPU
--- Thông tin dùng để định thời CPU: priority,...
--- Thông tin bộ nhớ: base/limit register, page tables…
--- Thông tin thống kê: CPU time, time limits…
--- Thông tin trạng thái I/O: danh sách thiết bị I/O được cấp phát, danh sách các file đang mở,...
--- Con trỏ (pointer) đến PCBs khác

lequanghanh(102c)

Tổng số bài gửi : 61
Join date : 18/02/2011
Age : 31
Đến từ : Phương Đông - Trà Đông - Bắc Trà My - Quảng Nam

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

Về Đầu Trang Go down

Quote

Bài gửi  lequanghanh(102c) on 21/3/2012, 13:39

Ban co hieu bai toan san xuat va tieu thu co the giai thich them cho minh duoc khong. minh doc hoai ma khong hieu. thank
NgoXuanQuoc_(102C) đã viết:
LeQuocKhanh-11H1010059 đã viế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:
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;
}
Custumner:
item nextConsumed;
while (1)
{
while(in==out); //quẩn khi buffer rỗng
nextConsumed = buffer[out];
out = (out+1)%BUFFER_SIZE;
}

---------------------------------------------------------------------------------------------------------------------------------
Bài toán Sản Xuất - Tiêu thụ được phát biểu theo kỹ thuật busy – waiting thế này tuy hay nhưng còn một số bất cập cần cải tiến:
- Trường hợp có trên 2 Producer, 2 Consumer
Khi đó:
- Ngoài việc kiểm tra hàng đợi, ta còn phải kiểm tra vị trí tiếp theo trong hàng đợi có bị Producer khác có sử dụng hay không.
- Ngược lại nhà tiêu thụ cũng phải kiểm tra hàng đợi tiếp theo có bị Consumer khác lấy rồi hay không.
- Và cùng lúc lấy ra và đưa vào sản phảm nhưng thời gian thực thi đồng thời.

--> Như vậy với hơn 2 tiến trình cùng làm 1 việc hoặc Producer hoặc Consumer thì sẽ xảy ra tình trang tranh chấp nếu 2 tiến trình đồng thời cùng hoạt động (thuật ngữ gọi là vùng tương tranh). Để giải quyết vấn đề này ta phải quản lý buffer dùng chung bằng cách tạo ra 2 vùng là vùng đăng nhập(entry section) và vùng đăng xuất(exit section).

Dưới đây là cấu trúc của phần quản lý buffer

while (1) {
remainder section
entry section // Vùng đăng nhập
critical section //vùng tranh chấp
exit section // Vùng đăng xuất
remainder section
}

Chúng ta có thể giải quyết vấn đề này bằng thuật toán dưới Smile

+ Sản xuất

item nextProduced;
while (1) { //lặp vô hạn
/* tạo 1 sản phẩm và đưa vào nextProduced */
entry section
while (((in + 1) % BUFFER_SIZE) == out)
; // Quẩn tại đây khi buffer đầy
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE; // chia lấy phần dư của số nguyên
exit section
}


+ Tiêu thụ

item nextConsumed;
while (1) {
while (in == out); // Quẩn tại đây khi buffer rỗng
entry section
nextConsumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
// Tiêu thụ sản phảm trong nextConsumed
exit section
}


(Sưu tầm từ Internet)

lequanghanh(102c)

Tổng số bài gửi : 61
Join date : 18/02/2011
Age : 31
Đến từ : Phương Đông - Trà Đông - Bắc Trà My - Quảng Nam

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

Về Đầu Trang Go down

Hốc trên hình ở bài 4

Bài gửi  vominhhai_09H1012028 on 21/3/2012, 15:38

phanngocthinh(i12a) đã viết:.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 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 cùng một lúc, nhưng không đảm bảo bằng TCP

Hốc là điểm đầu trong liên kết truyền thông, được đặt trưng bởi cặp số ( Ip address, port) trong mạng Client-Server. Vậy trong hình vẽ liên kết giữa client và server ở bài 4 thì hốc chính là đám mây (146.86.5.2/1625 và 161.25.19.8/80)

vominhhai_09H1012028

Tổng số bài gửi : 29
Join date : 16/09/2010

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

Về Đầu Trang Go down

Liên Lạc Giữa Các Tiến Trình

Bài gửi  KimHue36 (I11C) on 21/3/2012, 16:29

I.1. 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.

I.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?

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

KimHue36 (I11C)

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

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

Về Đầu Trang Go down

Liên lạc giữa các tiến trình trong hệ thống khách - chủ . Phân biệt giao thức TCP với UDP

Bài gửi  tranthithanhuyen85 (I11C) on 21/3/2012, 16:31

Liên lạc trong hệ thống Khách – Chủ (Client – Server)
* 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 Client – Server
- Srever chờ yêu cầu từ Client bằng cách nghe vào cổng (Port) định trước:
o Telnet Server nghe vào cổng 23
o FTP Server nghe vào cổng 21
o 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 biệt TCP với UDP
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á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 (giao thức hướng kết nối) :
- 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 (giao thức không kết nối) :
- 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

tranthithanhuyen85 (I11C)

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

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

Về Đầu Trang Go down

Tiến trình và phân biệt giữa tiến trình và chương trình

Bài gửi  TranVanBao(I12A) on 21/3/2012, 16:32

Tiến trình(Process) 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 : HĐH sẽ tự kích hoạt các chương trình hệ thống khi máy được khởi động. Các tiến trình do các chương trình này thực hiện gọi là tiến trình hệ thống.
- Tiến trình người dùng : Là các tiến trình của các chương do người dùng cài đặt, hoặc có tích hợp sẵn khi cài HĐH. Các chương trình này được kích hoạt bởi người dùng.
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 .
Sự Khác Nhau Giữa Tiến Trình Và Chương Trình?
- Bản thân chương trình không là tiến trình vì là thực thể Thụ Động(Passive- chương trình chỉ là các file lưu giữ các đoạn code để yêu cầu máy tính thực hiện các tác vụ cần thiết.) , trong khi tiến trình là thực thể Hoạt Động(Active) với nhiều thông tin về trạng thái trong đó có Bộ đếm chương trình(Program Counter) cho biết vị trí lệnh hiện hành

TranVanBao(I12A)

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

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

Về Đầu Trang Go down

Truyền thông điệp trong windows (Message-Passing in Windows)

Bài gửi  LeMinhDuc (I11C) on 21/3/2012, 16:33

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ờ

LeMinhDuc (I11C)

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

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

Về Đầu Trang Go down

những lý do cộng tác giữa các tiến trình

Bài gửi  LeMinhDuc (I11C) on 21/3/2012, 16:36

 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ả,..

LeMinhDuc (I11C)

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

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

Về Đầu Trang Go down

Vai trò của Win Xp tới khi nào

Bài gửi  LeXuanHau (I12C) on 21/3/2012, 16:37

Với những xu hướng phát triển này, Windows 7 sẽ hoàn toàn lấn lướt XP trong năm tới, nhiều người dùng doanh nghiệp sẽ từ bỏ hệ điều hành này. Những công ty và chính phủ cũng sẽ loại bỏ XP để dễ dàng nâng cấp phần cứng, chính khả năng bảo mật lỗi thời và thiếu hỗ trợ công nghệ cao cấp của XP đã trở thành gánh nặng. Windows 7 có thể đáp ứng những đòi hỏi trên và chứng tỏ nó vượt trội hơn Vista.

Tuy nhiên sẽ phải mất vài năm nữa thì các nhà phát triển phần mềm mới có thể quên được XP. Hệ điều hành này sẽ được hỗ trợ cho đến ngày mùng 8 tháng 4 năm 2014, và cho đến lúc đó thì vẫn còn nhiều nơi tiếp tục sử dụng XP.

10 năm là một quãng đời dài dành cho một hệ điều hành, nhưng đã tới lúc nó phải nhường lại thị phần của mình. Windows 7 chắc chắn sẽ thay thế tốt vai trò của Windows XP bởi nó hoạt động tốt hơn và tương thích với các phần cứng và phần mềm hiện nay. Được người dùng ưu ái trong 10 năm là cả một thành công quá lớn, nhưng nếu quá tham quyền thì sẽ dẫn đến những hệ quả xấu và khiến cho các nhà phát triển phần mềm gặp nhiều khó khăn. Có nhiều yếu tố khiến cho Windows XP trở thành một hệ điều hành độc nhất vô nhị trên thị trường: Sự chuyển giao lên 32-bit, Longhorn thất bại, Mac OS X không đủ tính cạnh tranh. Và chúng ta nên mong rằng điều này đừng bao giờ xảy ra thêm lần nữa, Windows XP là hệ điều hành sống tốt qua 10 năm, và cũng chỉ nên là hệ điều hành duy nhất làm được điều này.

LeXuanHau (I12C)

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

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

Về Đầu Trang Go down

Vai trò của VB ( Visua Basic)

Bài gửi  LeXuanHau (I12C) on 21/3/2012, 16:38

Một lập trình viên có thể phát triển ứng dụng dùng các thành phần (component) có sẵn trong Visual Basic. Các chương trình bằng Visual Basic cũng có thể sử dụng Windows API, nhưng làm vậy thì phải sử dụng các khai báo hàm bên ngoài.
Trong lĩnh vực lập trình thương mại, Visual Basic có một trong những nhóm khách hàng lớn nhất. Theo một số nguồn, vào năm 2003, 52% của những lập trình viên sử dụng Visual Basic, làm nó thành ngôn ngữ lập trình phổ biến nhất vào lúc đó. Tuy nhiên, cuộc nghiên cứu của Evans Data cho rằng 43% của các lập trình viên đó có ý định đổi qua một ngôn ngữ khác.

LeXuanHau (I12C)

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

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

Về Đầu Trang Go down

Phương Thức Liên Lạc Giữa Các Tiến Trình qua IPC

Bài gửi  TranVanBao(I12A) on 21/3/2012, 16:38

* Liên lạc trực tiếp (Direct Communications)
+ Theo địa chỉ đối xứng (Symmetric Scheme)
+ Send (P, Message) - Gửi thông điệp cho P
+ Receive (Q, Message) - Nhận thông điệp từ Q
* Đặc điểm:
1. Liên kết được thiết lập tự động giữa mỗi cặp tiến trình
2. Liên kết chỉ giữa 2 tiến trình
3. Chỉ có 1 liên kết giữa mỗi cặp
4. Tính đối xứng của liên lạc (2 bên điều biết đích xác tên của nhau khi Gửi/Nhận).
Theo địa chỉ phi đối xứng (Asymmetric Scheme)
+ Send (P, Message) - Gửi thông điệp cho P.
+ Receive (id, Message) - Nhận thông điệp từ tiến trình bất kỳ, Biến id chứa số hiệu tiến trình gửii
* Liên lạc gián tiếp (Indirect Communications)
+ Qua các Hộp thư (Mailboxes) hoặc Cổng(Ports).
+ Hộp thư là 1 thực thể qua đó thông điệp được gửi đến và lấy ra.
+ Mỗi hộp thư có định danh riêng
+ Hai tiến trình phải chung nhau một hộp thư nào đó.
+ Hai loại hộp thư :
1. Hộp thư tiến trình (Process Mailbox): Nằm trong vùng địa chỉ của một tiến trình nào đó
2. Hộp thư hệ điều hành (OS Mailbox): Nằm trong vùng địa chỉ của HDH
Ví dụ: Thông Báo trong lớp được lớp trưởng gửi tới từng bạn(Trực tiếp) Hoặc được viết lên bảng (Gián Tiếp)

TranVanBao(I12A)

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

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

Về Đầu Trang Go down

Phương Thức Liên Lạc Giữa Các Tiến Trình Theo Nguyên Lý Khách CHủ

Bài gửi  TranVanBao(I12A) on 21/3/2012, 16:49

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.

TranVanBao(I12A)

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

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

Về Đầu Trang Go down

Thảo luận bài 4

Bài gửi  KimHue36 (I11C) on 21/3/2012, 21:10

Nhu cầu đồng bộ hóa:
-Các tiến trình thực thi đồng thời chia sẻ mã, chia sẻ dữ liệu (qua bộ nhớ chia sẻ, file).
-Nếu không có sử điều khiển khi truy cập dữ liệu chia sẻ thì có thể xảy ra trường hợp không nhật quán dữ liệu.
-Để duy trì sự nhất quán dữ liệu hệ thống cần có cơ chế bảo đảm sự thực thi có thứ tự của các tiến trình đồng thời.
-Miền găng (critical section)
+Giả sử có n tiến trình cùng truy xuất đồng thời dữ liệu chia sẻ
+Không phải tất cả các đoạn mã phải được quan tâm giải quyết các vấn đề tranh chấp mà chỉ những đoạn mã có chứa các thao tác trên dữ liệu chia sẻ. Đoạn mã này được gọi là vùng tranh chấp – critical section (CS).
-Ràng buộc của bài toán tranh chấp:
+Mutual Exclusion (sự loại trừ tương hỗ).
+Tại mỗi thời điểm, chỉ có một tiến trình được phép thực thi trong vùng tranh chấp (CS).
-Nếu không có tiến trình nào đang thực thi trong vùng tranh chấp và đang có một số tiến trình chờ đợi vào vùng tranh chấp thì:
+Chỉ những tiến trình không phải đang thực thi trong vùng không tranh chấp mới được là ứng cử viên cho việc chọn tiến trình nào được vào vùng tranh chấp kế tiếp.
+Quá trình chọn lựa này không được trì hoãn vô thời hạn.
-Chờ đợi có giới hạn (Bounded Waiting):
+Mỗi tiến trình chỉ phải chờ để được vào vùng tranh chấp trong một khoảng thời gian nào đó.

KimHue36 (I11C)

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

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

Về Đầu Trang Go down

Các hàm API dùng để Gửi/Nhận thông điệp

Bài gửi  KimHue36 (I11C) on 21/3/2012, 21:11

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ờ

KimHue36 (I11C)

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

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

Về Đầu Trang Go down

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

Bài gửi  TrinhThiPhuongThaoI12C on 21/3/2012, 22:28

Điều phối chậm (Long-tem 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 tóan nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận (phục vụ) cho nhiều người (nhiều tiến trình).
+ Hướng I/O: tính tóan ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU), các nhân viên trong công ty chỉ ngồi nghiên cứu (I/O), không sử dụng đến ô tô. Vậy quá lãng phí ô tô (CPU)
- 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ứ 100ms lại tốn 10ms để xác định tiến trình kế tiếp, như vậy 10/(100+10) = 9% thời gian CPU được dùng để điều phối công việc.
Điều phối vừa (Medium-term scheduler):
- 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í tạm ngừng trước đó.
- Nhờ cách điều phối này, hỗn hợp các tiến trình trong Ready Queue có tính tối ưu hơn.
Ví dụ: Phòng thực hành nhỏ, nhưng nhiều bạn đi học (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).

TrinhThiPhuongThaoI12C

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

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

Về Đầu Trang Go down

LIÊN LẠC GIỮA CÁC TIẾN TRÌNH VÀ VẤN ĐỀ ĐỒNG BỘ HÓA

Bài gửi  NguyenHaCamThu(I12A) on 22/3/2012, 10:42

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.

NguyenHaCamThu(I12A)

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

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

Về Đầu Trang Go down

Ứng dụng của VnVoice

Bài gửi  NguyenHaCamThu(I12A) on 22/3/2012, 10:58

VnVoice là tiện ích tích hợp tiếng nói trong các chương trình ứng dụng. Nó hỗ trợ rất tốt khả năng đọc các tệp văn bản từ Microsoft Word 9x, 2000, đọc tin trên các trang Web (bằng cả hai thứ tiếng Việt, Anh với các font chữ ABC, VNI, UNICODE). Là công cụ hữu hiệu tích hợp với các CSDL nhằm thực hiện hay đưa ra các thông báo tự động tới mọi người.

NguyenHaCamThu(I12A)

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

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

Về Đầu Trang Go down

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

Bài gửi  NguyenHaCamThu(I12A) on 22/3/2012, 16:49

Điều phối chậm(long –term queue) chọn 1 tiến trình từ job queue đưa sang qua Ready queue(chuyển từ New sang Ready). Scheduler lựa chọn kỹ các tiến trình nhằm phối hợp cân bằng giữa hai loại tiến trình
+ hướng CPU(CPU-BOUND) tính toán nhiều , ít I/O.
+ hướng I/O(I/O BOUND) tính toán ít , nhiều I/O.
Mục đích nhằm cân bằng tải giữa hai tiến trình..
VD: Trong cuộc thi Vietnam Idol, các thi sinh ngồi đợi bên ngoài đang trong Job Queue ( đều phối chậm),
sau đó giám khảo sẽ gọi 3 bạn vào Ready Queue rồi sẽ gọi liên tục 1 trong 3 bạn lên trình bày (điều phối nhanh)

_ Điều phối nhanh (Short-term scheduler): Chọn tiến trình sẽ chiếm CPU để xử lý (chuyển từ trạng thái Ready sang trạng thái Runing).
VD: Các thí sinh đã được gọi lên trình diễn thì đã biết mình phải làm gì.

NguyenHaCamThu(I12A)

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

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

Về Đầu Trang Go down

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

Bài gửi  Sponsored content


Sponsored content


Về Đầu Trang Go down

Trang 13 trong tổng số 15 trang Previous  1 ... 8 ... 12, 13, 14, 15  Next

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


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