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 2

+78
ThanhThao04(I11C)
TranMinhMan (I11C)
TrinhThiPhuongThaoI11C
doanhongdao030(I11C)
ngocquynh2091(i11C)
Truc_Phuong(I111C)
lakhaiphat-i11c
NguyenCongVinh(102C)
minhgiangbc
leanhhuy (I11C)
HuynhVanNhut (I11C)
LeMinhDuc (I11C)
chauchanduong (I11C)
Tranvancanh(I11C)
lamhuubinh(I91C)
Nguyenminhduc (I11C)
nguyenhoangthinh (I11C)
HoangThiVe (I11C)
HoangThanhChuong (I11C)
nguyenthithutrang (I11C)
LeTanDat (I11C)
TangHuynhThanhThanh I11C
BuiVanHoc(I11C)
ledinhngankhanh (i11c)
NguyenVietThuan11
HuynhPhuong (I11C)
LUUDINHTOAN(I11C)
nguyenthingocloan (I11C)
buithithudung24 (i11c)
lequocthinh (I11C)
NGUYENDINHNGHIA-I11C
NguyenDoTu (I11C)
DuongKimLong(I111C)
tranvanhai_21(I11c)
tranleanhngoc88(i11c)
NguyenThiThanhThuy(I11C)
DoThiNgocNuong (I11C)
PhamHuyHoang (I11C)
HoangNgocQuynh(I11C)
NgoThiCamNhung47 (I11C)
caotanthanh(i11c)
TranPhiLong (I11C)
n.t.tuyet.trinh90 (I11C)
tranvantoan83(I11c)
LeThiThuyDuong (I11C)
phamngoctan095 (I11C)
TranCamThu(I11C)
nguyenthithuylinh (I11C)
DuongTrungTinh(I11C)
PhamAnhKhoa(I11C)
PhanThiThanhNguyen_72I11C
TranTrungTinh(I11C)
BuiHoangTuan.131.I11C
tannamthanh(I11C)
TruongThiThuyPhi(I11C)
NgoLeYen48(I11C)
nguyenminhlai.(I11C)
DaoVanHoang (I11C)
TranVuThuyVan_(I11C)
BuiHuuThanhLuan(I11C)
chauthanhvy146(I11C)
truongsi93(I11C)
LaVanKhuong (I11C)
NguyThiGai (I11C)
nguyen huynh nhu (102C)
hongthuanphong (I11C)
NguyenThanhTam (I11C)
ToThiThuyTrang (I11C)
TranHaDucHuy (I11c)
TranHaDucHuy
TranVanDucHieu I11c
NgoDucTuan (I11C)
nguyenvulinh_i11c
TranMinh (I11C)
NguyenTienPhong083 (I11C)
TruongHanhPhuc (I11C)
tranphanhieu36_i11c
Admin
82 posters

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

Go down

Thảo luận Bài 2 - Page 2 Empty Phân Biệt Ngắt Cứng & Ngắt Mền

Bài gửi  hongthuanphong (I11C) 2/9/2011, 23:44

1/ Ngắt (interrupt) là quá trình dừng chương trình chính đang chạy để ưu tiên thực hiện
một chương trình khác, chương trình này được gọi là chương trình phục vụ ngắt (ISR –
Interrupt Service Routine).

2/ Trong các quá trình ngắt, ta phân biệt thành 2 loại: ngắt cứng và ngắt mềm
Ngắt mềm là ngắt được gọi bằng một lệnh trong chương trình ngôn ngữ máy.
Khác với ngắt mềm, ngắt cứng không được khởi động bên trong máy tính mà do các
linh kiện điện tử tác đông lên hệ thống.

3/ Hoạt động: Khi thực hiện lệnh gọi ngắt, CPU sẽ tìm kiếm trong bảng vector ngắt địa chỉ của chương trình phục vụ ngắt. Người sử dụng cũng có thể xây dựng môt chương trình cơ sở như các chương trình xử lý ngắt. Sau đó, các chương trình khác có thể gọi ngắt ra để sử dụng. Một chương trình có thể gọi c hương trình con loại này mà không cần biết địa chỉ của nó.

hongthuanphong (I11C)

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

Về Đầu Trang Go down

Thảo luận Bài 2 - Page 2 Empty LỜI GỌI HỆ THỐNG

Bài gửi  hongthuanphong (I11C) 3/9/2011, 00:17

Lời gọi hệ thống cung cấp một giao tiếp giữa tiến trình và hệ điều hành. Lời gọi này cũng như các lệnh hợp ngữ.

Một số hệ thống cho phép lời gọi hệ thống được thực hiện từ cấp lập trình ngôn ngữ cấp cao, như các hàm và lời gọi hàm. Nó có thể phát sinh lời gọi từ các thủ tục hay gọi trực tiếp trong dòng.

Để hiểu quá trình hoạt động của lời gọi hệ thống chúng ta cùng khảo sát một chương trình nhỏ dùng để đọc dữ liệu từ một tập tin chép qua tập tin khác. Dữ liệu nhập đầu tiên của của chương trình là tên của hai tập tin : tập tin nhập và tập tin xuất. Tên này được mô tả bằng nhiều cách tùy thuộc vào thiết kế hệ điều hành như : chương trình yêu cầu người sử dụng cho biết tên của hai tập tin, họ cũng có thể cung cấp bằng cách lựa chọn với chuột. Khi có tên của hai tập tin, chương trình mở tập tin nhập và tạo tập tin xuất. Mỗi thao tác này được thực hiện bởi những lời gọi hệ thống khác. Cũng có những trường hợp phát sinh lỗi : Khi chương trình mở tập tin nhập, có thể xảy ra trường hợp không có tập tin có tên như mô tả hoặc tập tin bị cấm truy cập. Trong trường hợp này chương trình phải xuất thông điệp lên màn hình. Nếu tập tin nhập tồn tại, phải tạo tập tin mới. Hệ thống phải kiểm tra tiếp xem đã có tập tin xuất tồn tại không và sẽ có những lời gọi hệ thống tương ứng để giải quyết hoặc là hủy tiến trình, hai là xóa tập tin đã tồn tại và tạo tập tin mới. Sau khi đã thiết lập xong tập tin, hệ thống tiếp tục tạo vòng lặp đọc dữ liệu từ tập tin nhận và ghi lên tập tin xuất. Mỗi bước đều có kiểm tra lỗi. Sau khi chép xong, chương trình sẽ đóng hai tập tin lại (dùng một lời gọi hệ thống khác), xuất thông báo lên màn hình (dùng lời gọi hệ thống) cuối cùng chấm dứt chương trình (lời gọi hệ thống cuối cùng).

Trong các ngôn ngữ lập trình cấp cao, người sử dụng không cần quan tâm đến chi tiết mà chỉ cần thông qua các hàm hay các lệnh để thực hiện.Lời gọi hệ thống có thể diễn ra theo một cách khác. Kiểu và khối lượng thông tin tùy thuộc vào hệ thống và lúc gọi.

Có ba phương pháp được sử dụng để chuyển tham số cho hệ điều hành: Cách đơn giản nhất là chuyển tham số vào thanh ghi. Nếu có nhiều tham số, nó sẽ được lưu trữ trong khối hoặc bảng trong bộ nhớ. Cách cuối cùng là dùng cơ chế stack.

Lời gọi hệ thống có thể được chia thành các loại : kiểm soát tiến trình, thao tác tập tin, thao tác thiết bị, thông tin.

hongthuanphong (I11C)

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

Về Đầu Trang Go down

Thảo luận Bài 2 - Page 2 Empty PHÂN CẤP BỘ NHỚ

Bài gửi  hongthuanphong (I11C) 3/9/2011, 02:02

Một trong những điều quan trọng được quan tâm nhất trong sự hiểu biết khả năng hiệu suất của bộ nhớ hiện đại là bộ nhớ phân cấp. Không phải tất cả các bộ nhớ đều được tao ra ngang nhau, 1 số kém hiệu quả hơn và rẻ hơn. Để giải quyết sự chênh lệch này, máy tính ngày nay kết hợp các kiểu bộ nhớ để cung cấp hiệu suất cao nhất với giá thành ít nhất. Cách tiếp cận này được gọi là bộ nhớ phân cấp. Bộ nhớ càng nhanh thì càng đắt. Bằng việc sử dụng bộ nhớ chia sẻ, với mỗi tốc độ truy cập và dung lượng khác nhau, 1 hệ thống máy tính có thể năng cao hiệu suất trên cả khả năng có thể của chúng khi mà không kết hợp các loại khác nhau lại. Hệ thống bộ nhớ phân cấp bao gồm các thanh ghi, cache, bộ nhớ chính và bộ nhớ phụ.

Máy tính ngày nay có bộ nhớ nhỏ tốc độ cao gọi là cache, nơi mà dữ liệu được lưu trữ thường xuyên. Cache kết nối tới bộ nhớ lớn hơn - bộ nhớ chính, bộ nhớ có tốc độ tầm trung. Bộ nhớ này được bổ sung bới 1 bộ nhớ phụ, kết hợp với hard disk và các phương tiện có thể tháo dời khác nhau (various removable media). Bằng việc sử dụng hệ thống phân cấp, 1 bộ nhớ có thể nâng cao tốc độ truy cập, chỉ sử dụng 1 số nhỏ chip tốc độ nhanh. Nó cho phép người thiết kế tạo ra máy tính hiệu suất chấp nhận được với giá thành hợp lý.

Chúng ta phân loại bộ nhớ dựa trên “khoảng cách” từ nó tới bộ xử lý, với khoảng cách được định nghĩa bằng số vòng máy đòi hỏi để truy cập. Bộ nhớ càng gần bộ xử lý thì càng nhanh. Và ngược lại. Công nghệ chậm sẽ sử dụng bộ nhớ ở xa còn công nghệ nhanh sẽ sử dụng bộ nhớ gần bộ vi xử lý. Công nghệ càng tốt, bộ nhớ càng nhanh và càng đắt tiền. Bộ nhớ nhanh hơn thì sẽ nhỏ hơn bộ nhớ chậm và giá thành càng cao.

hongthuanphong (I11C)

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

Về Đầu Trang Go down

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

Bài gửi  LaVanKhuong (I11C) 3/9/2011, 08:13

NguyenTienPhong083 (I11C) đã viết:Phân biệt nhập xuất đồng bộ với nhập xuất không đồng bộ ? cho ví dụ minh họa

- Synchronous I/O: Sau khi phát ra lệnh Nhập/Xuất, tiến trình người dùng được chuyển sang trạng thái chờ đến khi Nhập/Xuất hoàn tất rồi mới tiếp tục làm việc (phát tín hiệu đểthực hiện lệnh kế tiếp)
Ví dụ: Trong đời thường chúng ta hay đánh những văn bản, khi thực hiện việc đánh văn bản từ bàn phím, khi muốn lưu ta phải chon Save,sau đó đặt tên file, và chọn nơi lưu trữ. Các tiến trình đó ở trạng thái chờ tiến trình trước nhập xuất hoàn tất đã. .

- ASynchronous I/O: Sau khi phát ra lệnh Nhập/Xuất, tiến trình người dùng không chờ Nhập/Xuất hoàn tất cộng việc mà phát tín hiệu thực hiện ngay lập tức và thực hiện ngay lệnh kế tiếp. Như vậy, tiến trình vận hành song song với công việc Nhập/Xuất.
Để chứng minh điều đó, hãy xem hình vẽ sau:
Ví dụ: Khi ta thêm dữ liệu mới vào văn bản vào văn bản, khi ta muốn lưu thì ta chọn Save và lúc này tiến trình vận hành song song với việc phát ra lệnh từ Save

Bạn ơi mình đâu có thấy hình vẽ như bạn nói đâu. Mình cũng bổ xung thêm nhé(giống như bạn nhưng gọn hơn thôi)
1. Nhập/xuất đồng bộ:
- Là nhập/xuất khi mà tiến trình người dùng phải chờ cho đến khi nhập xuất kết thúc rồi mới chạy tiếp.
- Khi dữ liệu truyền tới phần cứng tiến trình người dùng phải chờ một khoảng thời gian để xuất thông tin.
2. Nhập/xuất không đồng bộ:
- Là nhập/xuất được tiến hành song song, đồng thời với tiến trình người dùng.
VD:
1.1 Nhập/Xuất đồng bộ:Với thiết bị bàn phím chương trình phải chờ người dùng bấm Yes hoặc No,với kết quả Yes hoặc No chương trình mới chạy tiếp.
2.1 Nhập xuất không đồng bộ:khi người dùng nhập xong thì chương trình sẽ tự động xuất ra mà không cần phải hỏi ý kiến của người dùng.

LaVanKhuong (I11C)

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

Về Đầu Trang Go down

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

Bài gửi  truongsi93(I11C) 3/9/2011, 08:17

Cache là bộ nhớ đệm của CPU,cache nằm trong CPU ngay cạnh lõi xử lý .CPU muốn đọc hay ghi một vị trí trên Ram thì trước hết nó sẽ tìm trong L1 cache xem có sẵn dữ liệu đó không nếu không nó sẽ tìm trong các bộ nhớ cache còn lại .Cache giúp giảm tình trạng thắt nút cổ chai giữa ram và cpu

Cache memory
Là loại memory có dung lượng rất nhỏ (thường nhỏ hơn 1MB) và chạy rất lẹ (gần như tốc độ của CPU). Thông thường thì Cache memory nằm gần CPU và có nhiệm vụ cung cấp những data thường (đang) dùng cho CPU. Sự hình thành của Cache là một cách nâng cao hiệu quả truy cập thông tin của máy tính mà thôi. Những thông tin bạn thường dùng (hoặc đang dùng) thường được chứa trong Cache, mổi khi xử lý hay thay đổi thông tin, CPU sẽ dò trong Cache memory trước xem có tồn tại hay không, nếu có nó sẽ lấy ra dùng lại còn không thì sẽ tìm tiếp vào RAM hoặc các bộ phận khác. Lấy một ví dụ đơn giản là nếu bạn mở Microsoft Word lên lần đầu tiên sẽ thấy hơi lâu nhưng mở lên lần thứ nhì thì lẹ hơn rất nhiều vì trong lần mở thứ nhất các lệnh (instructions) để mở Microsoft Word đã được lưu giữ trong Cache, CPU chỉ việc tìm nó và xài lại thôi.
Lý do Cache memory nhỏ là vì nó rất đắt tiền và chế tạo rất khó khăn bởi nó gần như là CPU (về cấu thành và tốc độ). Thông thường Cache memory nằm gần CPU, trong nhiều trường hợp Cache memory nằm trong con CPU luôn. Người ta gọi Cache Level 1 (L1), Cache level 2 (L2)...là do vị trí của nó gần hay xa CPU. Cache L1 gần CPU nhất, sau đó là Cache L2...

=>cache rất gần với CPU, tốc độ truy xuất rất nhanh ( nhanh hơn RAM rất nhiều) => Dỡ tốn công và thời gian truy xuất, Sẽ tăng được tốc độ truy xuất của CPU rất nhiều, thường thì CPU sẽ vào cache tìm và truy xuất nếu có trước khi vào ram và bộ nhớ ngoài truy xuất.

Ví dụ minh họa nguyên lý lưu gần từ đời thường :
Giếng nước : nếu ở trên cao nhà khá xa nguồn nước thì người ta thường bơm nước vào bể nước hoặc thùng gần nhà để mỗi khi cần sẽ lại thùng hay bề lấy cho nhanh và tiện, vừa đỡ tốn thời gian....




truongsi93(I11C)

Tổng số bài gửi : 33
Join date : 30/08/2011
Age : 38
Đến từ : Quảng Nam

Về Đầu Trang Go down

Thảo luận Bài 2 - Page 2 Empty ĐỒNG BỘ VÀ KHÔNG ĐỒNG BỘ (SYNCHRONOUS & ASYNCHRONOUS)

Bài gửi  chauthanhvy146(I11C) 3/9/2011, 10:46

NguyThiGai (I11C) đã viết:Cùng chủ đề: NguyenTienPhong083; ToThiThuyTrang (I11C); hongthuanphong(I11C); NguyThiGai (I11C); LaVanKhuong (I11C)...
“Synchronous & Asynchronous”:Diễn đàn cũng đã và đang tạo ra “Synchronous & Asynchronous” rồi đó! Một chủ đề đã đưa ra, khái niệm đã đưa ra rồi… nhưng vẫn có bạn vẫn trình bày lại (giống nhau).
Mình có vài điều đã lượm lặc được, mong mọi người đóng góp!
Trước khi bàn trực tiếp về Đồng bộ và không đồng bộ (synchronous & asynchronous), chúng ta nên bàn về bối cảnh của việc sử dụng cặp từ này. Có thể thấy chúng liên quan tới cái gì đó có số nhiều. Bạn không bao giờ có thể dùng từ synchronous hay asynchronous cho trường hợp chỉ duy nhất được. Mở rộng ra chúng còn thường được dùng liên quan tới những quá trình có khả năng tái diễn cao. Như vậy chúng nên được xem xét trong một phạm vi của tập hợp nhiều phần tử, những phần tử này có thể là dữ liệu, tín hiệu, tiến trình xử lý hay tác vụ.

Synchronous (đồng bộ) là khái niệm nói lên tính nguyên tắc, đòi hỏi các dữ liệu, tiến trình... có liên quan phải được kết nối, liên hệ theo một trình tự thực hiện, một định dạng,... cách thức cố định, không bao giờ thay đổi. Trong một chuỗi các hàm của một quy trình có “n” tác vụ, nếu nó được bảo là đồng bộ thì trình tự thực hiện các hàm đó sẽ không bao giờ thay đổi. Hàm A đã được thiết lập để được gọi và chạy trước hàm B thì dù có phải đợi dài cổ hàm B cũng phải chờ hàm A kết thúc mới được phép bắt đầu. Một dây chuyền sản xuất công nghiệp của một nhà máy có thể coi là một quá trình đồng bộ.

Asynchronous (không đồng bộ) là một khái niệm có thể nói là ngược lại với Synchronous. Nó nói lên sự thiếu chặt chẽ, tính liên kết yếu, quản lý vô cùng khó khăn tuy nhiên lại uyển chuyển và khả năng tùy biến cao. Trong một chuỗi các hàm của một quy trình có “n” tác vụ, nếu nó được bảo là bất đồng bộ thì có nghĩa là cho dù hàm B được gọi sau hàm A nhưng không ai đảm bảo được rằng hàm A sẽ phải kết thúc trước hàm B và hàm B bắt buộc phải chỉ được gọi chạy khi hàm A kết thúc.

Liên hệ thực tế. Trong một xã hội đồng bộ, kẹt xe xảy ra, xe nọ nối đuôi xe kia trong đúng làn đường vì đơn giản mọi thành phần tham gia giao thông đều tuân thủ nguyên tắc trước sau (FIFO) và quy định đi đúng phần đường. Tuy nhiên trong một xã hội thiếu đồng bộ thì khi kẹt xe bạn có thể vác xe lên vai, hay phóng xe lên vỉa hè rồi tót lên trên, lao bừa vô hẻm, phân tích thiệt hơn chúng ta sẽ thấy sự ưu khuyết của hai quan điểm hành xử Asynchronous và Synchronous có phần mang tính hên xui và tùy tình huống ứng dụng afro .
chauthanhvy146(I11C)
chauthanhvy146(I11C)

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

Về Đầu Trang Go down

Thảo luận Bài 2 - Page 2 Empty Nguyên lý xử lý ngắt của hệ điều hành và sự khác biệt giữa hai loại ngắt cứng và ngắt mền

Bài gửi  BuiHuuThanhLuan(I11C) 3/9/2011, 21:38

Ngắt quãng là sự kiện xảy ra một cách ngẫu nhiên trong máy tính và làm ngưng tính tuần tự của chương trình. Ngoài ra còn có các thuật ngữ như: “ lệnh nhảy”, “lỗi” hay “bẫy”. để chỉ hiện tượng này.
Người ta nghĩ ra” ngắt quãng” là để nhận biết các sai sót trong tính toán số học, và để ứng dụng cho những hiện tượng thời gian thực. Có hai loại ngắt chính:
Ngắt cứng: Là sự kiện xảy ra từ các thiết bị ngoại vi khi có yêu cầu nhập xuất.
Ngắt mền: Là sự kiện ngắt xảy ra khi:
  • Người lập trình muốn dùng dịch vụ của hệ điều hành.

  • Cho một chương trình chạy từng lệnh

  • Làm điểm dừng của một chương trình

  • Báo tràn số liệu trong tính toán số học

  • Trang bộ nhớ thực sư không có trong bộ nhớ

  • Báo cáo vi phạm vùng cấm bộ nhớ

  • Báo dùng một tập lệnh không có trong tập lệnh

  • Báo phần cứng máy tính bị hư.

Dù ngắt quãng không xảy ra thường xuyên nhưng bộ xử lý phải được thiết kế sao cho nó có thể lưu lại trạng thái trước khi nó bị ngắt quãng. Sau k hi thực hiện xong chương trình phục vụ ngắt, bộ xử lý phải khôi phục trạng thái của nó để tiếp tục cộng việc.
Khi xảy ra một lệnh ngắt , bộ xử lý sẽ thực hiện các bước sau:
1.Thực hiện xong lệnh đang làm.
2.Lưu trữ trạng thái hiện tại.
3.Nhảy tới chương trình phục vụ ngắt.
4.Khi chương trình phục vụ kết thúc, bộ xử lý khôi phục trạng thái cũ của nó và tiếp tục thực hiện chương trình mà đó đang thực hiện khi bị ngắt.


BuiHuuThanhLuan(I11C)

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

Về Đầu Trang Go down

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

Bài gửi  NguyenTienPhong083 (I11C) 3/9/2011, 22:56

Quản lý bộ nhớ chính
Trong hệ thống máy tính hiện đại, bộ nhớ chính là trung tâm của các thao tác, xử lý. Bộnhớ chính có thể xem như một mảng kiểu byte hay kiểu word. Mỗi phần tử đều có địa chỉ. Đó là nơi lưu dữ liệu được CPU truy xuất một cách nhanh chóng so với các thiết bị nhập/xuất. CPU đọc những chỉ thị từ bộ nhớ chính. Các thiết bị nhập/xuất cài đặt cơ chế DMA cũng đọc và ghi dữ liệu trong bộ nhớ chính. Thông thường bộ nhớ chính chứa các thiết bị mà CPU có thể định vị trực tiếp. Ví dụ CPU truy xuất dữ liệu từ đĩa, những dữ liệu này được chuyển vào bộ nhớ qua lời gọi hệ thống nhập/xuất.
Một chương trình muốn thi hành trước hết phải được ánh xạ thành địa chỉ tuyệt đối và nạp vào bộ nhớ chính.Khi chương trình thi hành, hệ thống truy xuất các chỉ thị và dữ liệu của chương trình trong bộ nhớ chính. Ngay cả khi tiến trình kết thúc , dữ liệu vẫn còn trong bộ nhớ cho đến khi một tiến trình khác được ghi chồng lên.
Hệ điều hành có những vai trò như sau trong việc quản lý bộ nhớ chính :
- Lưu giữ thông tin về các vị trí trong bộ nhớ đã được sử dụng và tiến trình nào đang sử dụng.
- Quyết định tiến trình nào được nạp vào bộ nhớ chính, khi bộ nhớ đã có thể dùng được.
- Cấp phát và thu hồi bộ nhớ khi cần thiết.

NguyenTienPhong083 (I11C)

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

Về Đầu Trang Go down

Thảo luận Bài 2 - Page 2 Empty Thao luan bai 2

Bài gửi  TranVuThuyVan_(I11C) 4/9/2011, 16:43

Synchronous I/O: Sau khi phát ra lệnh Nhập/Xuất, tiến trình chuyển sang trạng thái chờ đến khi Nhập/Xuất hoàn tất rồi mới chạy tiếp (thực hiện lệnh kế tiếp).
ASynchronous I/O: Sau khi phát ra lệnh Nhập/Xuất, tiến trình không chờ Nhập/Xuất hoàn tất mà thực hiện ngay lệnh kế tiếp. Như vậy, tiến trình vận hành song song với công việc Nhập/Xuất.
Ex: Bạn không thể vừa uống cafe vừa thổi bong bóng được nè (Cái này là nhập xuất phải đồng bộ), sau khi làm xong việc này mới làm được việc tiếp theo. Còn Bạn vừa nghe nhạc vừa làm việc (Không đồng bộ), bạn không phải đợi làm xong việc mới nghe được nhạc mà bạn có thể làm cả 2 cùng lúc.

TranVuThuyVan_(I11C)

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

Về Đầu Trang Go down

Thảo luận Bài 2 - Page 2 Empty Phân tích Hai chế độ vận hành của máy tính.

Bài gửi  hongthuanphong (I11C) 4/9/2011, 17:07

+ Hệ điều hành hiện đại dùng cơ chế Dual-Mode để duy trì 2 chế độ là User Mode và Monitor Mode (còn gọi là Supervisor Mode, System Mode hoặc Privileged Mode) để bảo vệ hệ thống và các tiến trình đang vận hành.
+ Một Mode Bit được đưa vào phần cứng của máy để chỉ báo chế độ làm việc hiện hành: 0 - Monitor Mode, 1 - User Mode.
+ Khi xảy ra ngắt, phần cứng chuyển từ User Mode sang Monitor Mode bằng cách đặt Mode Bit thành 0.
+ Hệ điều hành đặt Mode Bit bằng 1 trước khi trả điều khiển về tiến trình người dùng.
+ Một số lệnh máy chỉ thực hiện được trong Monitor Mode (Các lệnh ưu tiên).
+ Tiến trình người dùng có thể gián tiếp thực hiện các lệnh ưu tiên qua Lời gọi hệ thống (System Call).
+ MS-DOS không có Dual-Mode.
+ Bộ xử lý Pentium hỗ trợ Mode bit, do đó các HĐH Windows 2000/XP/2003/Vista và OS/2 tận dụng được tính năng này để bảo vệ máy tính tốt hơn.

hongthuanphong (I11C)

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

Về Đầu Trang Go down

Thảo luận Bài 2 - Page 2 Empty Khởi động máy tính

Bài gửi  DaoVanHoang (I11C) 4/9/2011, 21:40

Trong máy tính, khởi động máy tính (booting) là một quá trình tự mồi (bootstrapping) để khởi động sự làm việc của hệ điều hành khi người dùng bật một hệ thống máy tính. Một trình tự khởi động (boot sequence) là một tập hợp các lệnh ban đầu được máy tính thực hiện khi nó được khởi động. Trình khởi động (bootloader) sẽ nạp hệ điều hành chính vào máy tính để hoạt động.
[sửa] Trình nạp khởi động (Boot loader)

Các hệ thống tính toán hoạt động được nhờ bộ xử lý trung tâm (hay một tập hợp các bộ xử lý), chỉ có thể thực thi các đoạn mã ở bộ nhớ điều hành, được biết đến với tên gọi là bộ nhớ hệ thống, với nhiều loại tùy thuộc vào công nghệ sản xuất như: ROM (Read-Only Memory - bộ nhớ chỉ đọc), hay RAM (Random Access Memory - bộ nhớ truy cập ngẫu nhiên). Mã của các hệ điều hành, các chương trình ứng dụng và dữ liệu hiện nay thường được lưu trữ trên các bộ nhớ bền, bộ nhớ ngoại vi, hay bộ nhớ thứ cấp. Các ví dụ của các loại bộ nhớ đó là: hard disk (ổ cứng), CD, USB, đĩa mềm. Khi một máy tính được bật, ban đầu nó dựa hoàn toàn vào các mã và dữ liệu nằm trên những phần có sẵn của bản đồ bộ nhớ hệ thống, như ROM, NVRAM hay CMOS RAM. Các đoạn mã và dữ liệu "cứng" được lưu trữ trên bản đồ bộ nhớ hệ thống này là những hướng dẫn cần thiết tối thiểu để truy nhập vào những thiết bị cứng ngoại vi và nạp vào bộ nhớ hệ thống tất cả những phần cần thiết của hệ điều hành. Có thể nói trong khoảng thời gian khởi động máy tính, hệ thống máy tính không có hệ điều hành nào trong bộ nhớ trong. Tuy nhiên, nếu chỉ có phần cứng máy tính không thôi (vi xử lý hay bộ nhớ hệ thống) thì không thể thực hiện được những thao tác phức tạp để nạp các tệp tin chương trình từ hệ thống lưu trữ vào bộ nhớ, mà đây vốn là một trong những tác vụ quan trọng nhất.

Chương trình giúp bắt đầu một chuỗi các lệnh được kết thúc bằng việc toàn bộ hệ điều hành được nạp vào hệ thống gọi là "bootstrap loader". Những nhà thiết kế máy tính thời kỳ đầu đã từng có ý tưởng: trước khi một máy tính ở trạng thái hoạt động hoạt động, nó phải trải qua một giai đoạn khởi động hay "mồi". Do đó, để thiết lập trạng thái hoạt động cho hệ thống máy tính, một chương trình đặc biệt, dung lượng nhỏ, gọi là "trình nạp khởi động" (tiếng Anh: "bootstrap loader" hay "bootstrap" hay "boot loader"), sẽ được thực thi trước tiên. Chương trình này chỉ có nhiệm vụ duy nhất là nạp các phần mềm khác để hệ điều hành có thể bắt đầu hoạt động. Thường thì trình nạp khởi động gồm nhiều giai đoạn, mỗi giai đoạn là một chương trình nhỏ hơn được thực hiện tuần tự, sau khi chương trình này kết thúc sẽ gọi tiếp đến chương trình kia, cho đến khi chương trình cuối cùng nạp hệ điều hành.

DaoVanHoang (I11C)

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

Về Đầu Trang Go down

Thảo luận Bài 2 - Page 2 Empty Thảo luận bài 2

Bài gửi  LaVanKhuong (I11C) 5/9/2011, 07:26

Nguyên tắc lưu gần là nguyên tắt quan trọng của hệ thống máy tính vì:
Nguyên tắc lưu gần giúp cho hệ thống máy tính chạy nhanh hơn vì dữ liệu được lưu trữ ở vị trí gần nhất(cache gần CPU). Mỗi lần thực thi thì không phải đi qua nhiều bước để lấy dữ liệu.

LaVanKhuong (I11C)

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

Về Đầu Trang Go down

Thảo luận Bài 2 - Page 2 Empty Đồng bộ và không đồng bộ I / O

Bài gửi  nguyenminhlai.(I11C) 5/9/2011, 08:38

Đồng bộ và không đồng bộ I / O
Có hai loại đầu vào / đầu ra (I / O) đồng bộ: đồng bộ I / O và không đồng bộ I / O. I / O không đồng bộ cũng được gọi như chồng chéo I / O.

Trong tập tin đồng bộ I / O, một thread bắt đầu một hoạt động I / O và ngay lập tức đi vào trạng thái chờ đợi cho đến khi yêu cầu I / O hoàn thành. Một thread thực hiện không đồng bộ tập tin I / O sẽ gửi một yêu cầu I / O để hạt nhân bằng cách gọi một chức năng thích hợp. Nếu yêu cầu được chấp nhận bởi hạt nhân, các chủ đề kêu gọi tiếp tục xử lý một công việc khác cho đến khi các tín hiệu hạt nhân để các chủ đề mà các hoạt động I / O hoàn thành. Sau đó nó làm gián đoạn công việc hiện tại và xử lý dữ liệu từ các hoạt động I / O là cần thiết.

Hai loại đồng bộ hóa được minh họa trong hình sau.



Trong tình huống mà một yêu cầu I / O dự kiến ​​sẽ mất một số lượng lớn thời gian, chẳng hạn như làm mới hoặc sao lưu dự phòng của một cơ sở dữ liệu lớn hoặc các thông tin liên lạc liên kết chậm, không đồng bộ I / O nói chung là một cách tốt để tối ưu hóa hiệu quả xử lý. Tuy nhiên, đối với tương đối nhanh I / O hoạt động, chi phí hạt nhân xử lý I / O yêu cầu và tín hiệu hạt nhân có thể không đồng bộ I / O ít mang lại lợi ích, đặc biệt nếu nhiều I / O nhanh chóng các hoạt động cần phải được thực hiện. Trong trường hợp này, đồng bộ I / O sẽ được tốt hơn. Các cơ chế và các chi tiết thực hiện như thế nào để thực hiện các nhiệm vụ khác nhau tùy thuộc vào loại thiết bị xử lý được sử dụng và nhu cầu cụ thể của ứng dụng. Nói cách khác, thường có nhiều cách để giải quyết vấn đề.

Đồng bộ và không đồng bộ I / O cân nhắc

Nếu một tập tin hoặc thiết bị được mở ra cho đồng bộ I / O (có nghĩa là, FILE_FLAG_OVERLAPPED không quy định), các cuộc gọi sau khi các chức năng như WriteFile có thể ngăn chặn thực hiện các luồng gọi cho đến khi một trong những sự kiện sau đây xảy ra:

Các hoạt động I / O hoàn thành (trong ví dụ này, một ghi dữ liệu).
Một lỗi I / O xảy ra. (Ví dụ, đường ống bị đóng lại từ đầu kia.)
Lỗi đã được thực hiện trong các cuộc gọi chính nó (ví dụ, một hoặc nhiều tham số không hợp lệ).
Một chủ đề khác trong quá trình này gọi CancelSynchronousIo chức năng bằng cách sử dụng xử lý các chủ đề Chủ đề bị chặn, chấm dứt I / O cho chủ đề đó, không hoạt động I / O.
Các chủ đề bị chặn là chấm dứt bởi hệ thống, ví dụ, quá trình tự nó chấm dứt, hoặc chủ đề khác gọi TerminateThread chức năng sử dụng xử lý các chủ đề bị chặn. (Điều này thường được coi là một phương sách cuối cùng và không phải thiết kế ứng dụng tốt.)
Trong một số trường hợp, sự chậm trễ này có thể là không thể chấp nhận được để thiết kế và mục đích của ứng dụng, vì vậy thiết kế ứng dụng nên xem xét việc sử dụng không đồng bộ I / O với các đối tượng đồng bộ hóa chủ đề thích hợp như cổng I / O hoàn thành. Để biết thêm thông tin về đồng bộ hóa thread, thấy Giới Đồng bộ hóa .
Một quá trình mở một tập tin cho không đồng bộ I / O trong cuộc gọi đến CreateFile bằng cách chỉ định lá cờ FILE_FLAG_OVERLAPPED trong tham số dwFlagsAndAttributes . Nếu FILE_FLAG_OVERLAPPED không quy định, các tập tin được mở ra cho đồng bộ I / O. Khi tập tin đã được mở cho không đồng bộ I / O, một con trỏ đến một cấu trúc chồng chéo thông qua vào cuộc gọi ReadFile và WriteFile . Khi thực hiện đồng bộ I / O, cấu trúc này là không cần thiết trong các cuộc gọi ReadFile và WriteFile.

Chú ý: Nếu một tập tin hoặc thiết bị được mở ra cho không đồng bộ I / O, các cuộc gọi sau khi các chức năng như WriteFile bằng cách sử dụng có thể xử lý thường trở lại ngay lập tức nhưng cũng có thể hành xử đồng bộ với sự tôn trọng để thực hiện chặn. Để biết thêm thông tin, hãy xem http://support.microsoft.com/kb/156932 .

Mặc dù CreateFile là chức năng phổ biến nhất để sử dụng cho các tập tin mở, số lượng đĩa, ống vô danh, và các thiết bị tương tự khác, I / O hoạt động cũng có thể được thực hiện bằng cách sử dụng một định kiểu xử lý từ các đối tượng hệ thống khác chẳng hạn như một ổ cắm được tạo ra bởi các ổ cắm hoặc chấp nhận chức năng.

Xử lý các đối tượng thư mục thu được bằng cách gọi CreateFile chức năng với các thuộc tính FILE_FLAG_BACKUP_SEMANTICS. Xử lý thư mục hầu như không bao giờ sử dụng sao lưu các ứng dụng là một trong những ứng dụng thông thường sẽ sử dụng chúng.

Sau khi mở tập tin đối tượng không đồng bộ I / O, chồng chéo cấu trúc phải được tạo ra, khởi tạo, và thông qua vào mỗi cuộc gọi đến các chức năng như ReadFile và WriteFile . Sau đây giữ trong tâm trí khi sử dụng cấu trúc chồng chéo trong không đồng bộ đọc và ghi các hoạt động:

Không deallocate hoặc sửa đổi các cấu trúc chồng chéo hoặc bộ đệm dữ liệu cho đến khi không đồng bộ tất cả các hoạt động I / O cho các đối tượng tập tin đã được hoàn thành.
Nếu bạn khai báo con trỏ của bạn để chồng chéo cấu trúc như là một biến địa phương, không thoát khỏi chức năng địa phương cho đến khi không đồng bộ tất cả các hoạt động I / O cho các đối tượng tập tin đã được hoàn thành. Nếu chức năng địa phương đã thoát sớm, cấu trúc chồng chéo sẽ đi ra khỏi phạm vi và nó sẽ không truy cập được bất kỳ ReadFile WriteFile chức năng nó gặp bên ngoài chức năng đó .
Bạn cũng có thể tạo ra một sự kiện và xử lý trong các cấu trúc chồng chéo , các chức năng chờ đợi sau đó có thể được sử dụng để chờ đợi cho các hoạt động I / O để hoàn thành bằng cách chờ đợi vào xử lý sự kiện.

Như đã nói, khi làm việc với một xử lý không đồng bộ, các ứng dụng nên sử dụng cẩn thận khi đưa ra quyết định về việc khi nào các tài nguyên miễn phí liên quan đến một hoạt động I / O quy định về xử lý đó. Nếu xử lý được deallocated sớm, ReadFile , WriteFile không chính xác có thể báo cáo rằng các hoạt động I / O hoàn thành. Hơn nữa, chức năng WriteFile đôi khi sẽ trở về TRUE với một GetLastError giá trị của ERROR_SUCCESS, mặc dù nó là sử dụng một xử lý không đồng bộ (mà cũng có thể trả về FALSE với ERROR_IO_PENDING ). Các lập trình quen với việc thiết kế I / O đồng bộ thường sẽ giải phóng tài nguyên bộ đệm dữ liệu vào thời điểm này bởi vì TRUE và ERROR_SUCCESS biểu hoạt động được hoàn tất. Tuy nhiên, nếu I / O cổng hoàn thành được được sử dụng này xử lý không đồng bộ, hoàn thành một gói cũng sẽ được gửi ngay cả khi hoạt động I / O hoàn thành ngay lập tức. Nói cách khác, nếu ứng dụng giải phóng tài nguyên sau khi trở về WriteFile TRUE với ERROR_SUCCESS ngoài cổng I / O thường xuyên hoàn thành, nó sẽ có một điều kiện lỗi double-. Trong ví dụ này, đề nghị sẽ cho phép các thói quen hoàn thành cổng hoàn toàn chịu trách nhiệm cho tất cả các hoạt động giải phóng tài nguyên đó.

Hệ thống không duy trì các con trỏ tập tin trên không đồng bộ xử lý để các tập tin và các thiết bị hỗ trợ con trỏ tập tin (có nghĩa là, tìm kiếm các thiết bị), do đó các vị trí tập tin phải được thông qua chức năng đọc và viết trong bù đắp các dữ liệu liên quan đến thành viên của các cấu trúc chồng chéo . Để biết thêm thông tin, xem WriteFile và ReadFile .

Tập tin con trỏ vị trí cho một xử lý đồng bộ được duy trì bởi hệ thống như dữ liệu được đọc hay viết và cũng có thể được cập nhật bằng cách sử dụng SetFilePointer hoặc SetFilePointerEx chức năng.

Một ứng dụng cũng có thể chờ đợi trong hồ sơ xử lý để đồng bộ hóa hoàn thành một hoạt động I / O, nhưng làm như vậy đòi hỏi phải hết sức thận trọng. Mỗi một hoạt động I / O bắt đầu, hệ điều hành bộ các tập tin xử lý cho nhà nước nonsignaled. Mỗi một hoạt động I / O được hoàn thành, hệ thống điều hành bộ xử lý tập tin để nhà nước báo hiệu. Vì vậy, nếu một ứng dụng bắt đầu I / O hoạt động và chờ đợi trên các tập tin xử lý, không có cách nào để xác định hoạt động kết thúc khi xử lý được thiết lập để nhà nước báo hiệu. Nếu một ứng dụng phải thực hiện đồng bộ nhiều hoạt động I / O trên một tập tin duy nhất, nên chờ xử lý sự kiện trong cấu trúc chồng chéo cụ thể cho từng hoạt động I / O, chứ không phải là xử lý tập tin phổ biến.

Hủy bỏ tất cả không đồng bộ đang chờ xử lý I / O hoạt động, sử dụng một trong hai:

CancelIo -chức năng này chỉ hủy bỏ các hoạt động do các chủ đề kêu gọi các tập tin xử lý theo quy định.
CancelIoEx chức năng này hủy bỏ tất cả các hoạt động do các chủ đề cho các tập tin xử lý theo quy định.
Sử dụng CancelSynchronousIo để hủy bỏ đang chờ xử lý đồng bộ các hoạt động I / O.

ReadFileEx và WriteFileEx chức năng cho phép một ứng dụng để chỉ định một thói quen để thực hiện ( xem FileIOCompletionRoutine) khi không đồng bộ yêu cầu I / O được hoàn thành .

(theo thư viện của microsoft)

nguyenminhlai.(I11C)

Tổng số bài gửi : 24
Join date : 26/08/2011
Age : 35
Đến từ : Quảng Nam

Về Đầu Trang Go down

Thảo luận Bài 2 - Page 2 Empty Đồng bộ và không đồng bộ trong linux

Bài gửi  nguyenminhlai.(I11C) 5/9/2011, 08:42

Linux không đồng bộ I / O là một bổ sung tương đối gần đây cho nhân Linux. Đó là một tính năng tiêu chuẩn của hạt nhân 2.6, nhưng bạn có thể tìm thấy các bản vá lỗi cho 2,4. Ý tưởng cơ bản đa chức năng là cho phép một quá trình để bắt đầu một số hoạt động I / O mà không cần phải ngăn chặn hoặc chờ cho bất kỳ để hoàn thành. Tại một số thời gian sau đó, hoặc sau khi được thông báo về I / O hoàn thành, quá trình có thể lấy lại kết quả của I / O.
I / O mô hình
Trước khi đào sâu vào API đa chức năng, chúng ta hãy khám phá I / O mô hình khác nhau mà có sẵn trong Linux. Đây không phải là dự định như là một sự xem xét đầy đủ, mà là nhằm mục đích để trang trải các mô hình phổ biến nhất để minh họa cho sự khác biệt của họ từ không đồng bộ I / O. Hình 1 cho thấy mô hình đồng bộ và không đồng bộ, cũng như ngăn chặn và các mô hình non-blocking.

Hình 1. Đơn giản hóa ma trận cơ bản Linux mô hình I / O
( http://www.mediafire.com/?ym9gsr8x681xvms )

Mỗi của các mô hình I / O có các mô hình sử dụng được thuận lợi cho các ứng dụng cụ thể. Phần này một thời gian ngắn tìm hiểu mỗi một.
Đồng bộ ngăn chặn I / O
I / O-bound so với quy trình CPU-bound
Một quá trình I / O bị ràng buộc là một trong những thực hiện I / O hơn xử lý. Một quá trình CPU-bound xử lý hơn so với I / O. Linux 2.6 lên lịch và thực sự ủng hộ I / O-bị ràng buộc quá trình bởi vì họ thường bắt đầu một khối I / O và sau đó, có nghĩa là làm việc khác có thể có hiệu quả xen kẽ giữa chúng.
Một trong những mô hình phổ biến nhất là ngăn chặn các mô hình I / O đồng bộ. Trong mô hình này, các ứng dụng không gian người dùng thực hiện một cuộc gọi hệ thống là kết quả trong ứng dụng ngăn chặn. Điều này có nghĩa rằng các khối ứng dụng cho đến khi hệ thống gọi là đầy đủ (chuyển dữ liệu hoặc lỗi). Các ứng dụng gọi điện thoại trong một nhà nước mà nó tiêu thụ không có CPU và chỉ đơn giản là đang chờ đợi phản ứng, vì vậy nó rất hiệu quả từ một góc độ chế biến.
Hình 2 minh họa việc ngăn chặn mô hình I / O truyền thống, cũng là mô hình phổ biến nhất được sử dụng trong các ứng dụng hiện nay. Hành vi của nó là hiểu rõ, và sử dụng của nó là hiệu quả cho các ứng dụng điển hình. Khi read gọi hệ thống được gọi, các khối ứng dụng và bối cảnh chuyển sang hạt nhân . Đọc sau đó bắt đầu, và khi trở về phản ứng (từ thiết bị mà từ đó bạn đang đọc), dữ liệu được chuyển đến bộ đệm sử dụng không gian. Sau đó, ứng dụng được hết cấm read và đọc trở lại cuộc gọi ).

Hình 2. Điển hình dòng chảy của các mô hình đồng bộ I / O chặn
( http://www.mediafire.com/?8qgog4b15ovzb13 )
Từ quan điểm của ứng dụng, read gọi kéo dài một thời gian dài. Tuy nhiên, trên thực tế, ứng dụng thực sự là bị chặn trong khi đọc là ghép với các công việc khác trong hạt nhân.
Đồng bộ non-blocking I / O
Một biến thể ít hiệu quả đồng bộ ngăn chặn được đồng bộ non-blocking I / O. Trong mô hình này, một thiết bị được mở ra như non-blocking. Điều này có nghĩa là thay vì hoàn thành một I / O ngay lập tức, một read có thể trả lại một mã lỗi chỉ ra rằng lệnh có thể không được hài lòng ngay lập EAGAIN ( EWOULDBLOCK hoặc EWOULDBLOCK), như thể hiện trong hình 3.

Hình 3. Điển hình dòng chảy của các mô hình đồng bộ I / O non-blocking
( http://www.mediafire.com/?ezkiebcbogj3x9z )
Hàm ý của non-blocking là một lệnh I / O có thể không được hài lòng ngay lập tức, đòi hỏi các ứng dụng thực hiện cuộc gọi rất nhiều để chờ đợi hoàn thành. Điều này có thể cực kỳ không hiệu quả bởi vì trong nhiều trường hợp ứng dụng phải bận rộn-chờ đợi cho đến khi dữ liệu có sẵn, hoặc cố gắng để làm công việc khác trong khi lệnh được thực hiện trong kernel. Như thể hiện trong hình 3, phương pháp này có thể giới thiệu độ trễ trong khoảng cách I / O bất kỳ bởi vì giữa các dữ liệu trở nên có sẵn trong hạt nhân và người sử read gọi điện thoại đọc để trả lại nó có thể làm giảm thông lượng dữ liệu tổng thể.
Không đồng bộ ngăn chặn I / O
Một mô hình ngăn chặn không ngăn chặn I / O với các thông báo ngăn chặn. Trong mô hình này, non-blocking I / O được cấu hình, và sau đó chặn cuộc gọi hệ thống select được sử dụng để xác định khi có bất kỳ hoạt động cho một mô tả I / O . Điều gì làm cho cuộc gọi select thú vị là nó có thể được sử dụng để cung cấp thông báo cho không chỉ mô tả một trong, nhưng nhiều người. Đối với mỗi mô tả, bạn có thể yêu cầu thông báo khả năng mô tả để ghi dữ liệu, tính sẵn có của dữ liệu đọc, và cũng có một lỗi đã xảy ra.

Hình 4. Dòng chảy của không đồng bộ ngăn chặn I / O mô hình điển hình (chọn )
( http://www.mediafire.com/?51o4y3yrjv10m35 )
Vấn đề chính với các select cuộc gọi là nó không phải là rất hiệu quả . Trong khi đó là một mô hình thuận tiện cho việc thông báo không đồng bộ, sử dụng của nó đối với hiệu suất I / O là không nên.
Không đồng bộ non-blocking I / O (đa chức năng)
Cuối cùng, không ngăn chặn các mô hình I / O không đồng bộ là một trong những xử lý chồng chéo với I / O. Yêu cầu đọc trả về ngay lập tức, chỉ read được khởi xướng thành công. Các ứng dụng sau đó có thể thực hiện xử lý khác trong khi các hoạt động đọc nền hoàn tất. Khi read phản ứng đến, một tín hiệu hoặc gọi lại dựa trên một sợi có thể được tạo ra để hoàn tất giao dịch I / O.

Hình 5. Điển hình dòng chảy của các mô hình I / O không đồng bộ non-blocking
( http://www.mediafire.com/?qn0dr6is0mc2yb7 )
Các khả năng chồng chéo lên nhau tính toán và xử lý I / O trong một quá trình duy nhất có khả năng nhiều yêu cầu I / O khai thác khoảng cách giữa tốc độ xử lý và tốc độ I / O. Trong khi một hoặc nhiều chậm I / O yêu cầu đang chờ xử lý, CPU có thể thực hiện các nhiệm vụ khác hoặc, thường hơn, hoạt động trên đã hoàn thành I / O trong khi I / O khác khởi xướng.
Phần tiếp theo xem xét mô hình này tiếp tục, khám phá các API, và sau đó cho thấy một số các lệnh.[img][/img][img][/img]


Được sửa bởi nguyenminhlai.(I11C) ngày 5/9/2011, 08:48; sửa lần 2.

nguyenminhlai.(I11C)

Tổng số bài gửi : 24
Join date : 26/08/2011
Age : 35
Đến từ : Quảng Nam

Về Đầu Trang Go down

Thảo luận Bài 2 - Page 2 Empty PHÂN CẤP BỘ NHỚ

Bài gửi  chauthanhvy146(I11C) 5/9/2011, 08:46

hongthuanphong (I11C) đã viết:Một trong những điều quan trọng được quan tâm nhất trong sự hiểu biết khả năng hiệu suất của bộ nhớ hiện đại là bộ nhớ phân cấp. Không phải tất cả các bộ nhớ đều được tao ra ngang nhau, 1 số kém hiệu quả hơn và rẻ hơn. Để giải quyết sự chênh lệch này, máy tính ngày nay kết hợp các kiểu bộ nhớ để cung cấp hiệu suất cao nhất với giá thành ít nhất. Cách tiếp cận này được gọi là bộ nhớ phân cấp. Bộ nhớ càng nhanh thì càng đắt. Bằng việc sử dụng bộ nhớ chia sẻ, với mỗi tốc độ truy cập và dung lượng khác nhau, 1 hệ thống máy tính có thể năng cao hiệu suất trên cả khả năng có thể của chúng khi mà không kết hợp các loại khác nhau lại. Hệ thống bộ nhớ phân cấp bao gồm các thanh ghi, cache, bộ nhớ chính và bộ nhớ phụ
* Một sự phân cấp bộ nhớ kiểu mẫu được chỉ ra trên hình sau. Khi chúng ta đi từ trên xuống trong sơ đồ phân cấp này, những sự kiện sau sẽ xảy ra:
- Giảm phí tổn cho một bit
- Tăng dung lượng
- Tăng thời gian truy cập
- Giảm tần số truy cập bộ nhớ bởi CPU
* Do vậy những bộ nhớ nhỏ hơn, nhanh hơn, đắt tiền hơn được phụ trợ bởi bộ nhớ lớn hơn, chậm hơn, rẻ hơn. Chìa khóa cho sự thành công trong cách tổ chức này là yếu tố cuối cùng, tức là giảm thiểu tần số truy cập.
Thảo luận Bài 2 - Page 2 Phancapbonho.th (Click vào hình để xem rõ hơn!)
(Nguồn bài viết này, mình tham khảo slide giáo trình "Kiến trúc máy tính" (Rất tiếc mình quên mất link bài viết). Mọi người tham khảo góp ý nhé!)


Được sửa bởi chauthanhvy146(I11C) ngày 5/9/2011, 10:51; sửa lần 2.
chauthanhvy146(I11C)
chauthanhvy146(I11C)

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

Về Đầu Trang Go down

Thảo luận Bài 2 - Page 2 Empty tiến trình và tiểu trình. Các trạng thái của tiến trình. Cấu trúc dữ liệu của khối quản lý tiến trình

Bài gửi  nguyenminhlai.(I11C) 5/9/2011, 09:05

Khái niệm tiến trình, tiểu trình
- Tiến trình (Process):
* Tiến trình là chương trình đang thực hiện. Mỗi tiến trình có một tài nguyên và môi trường riêng. Các tiến trình hoàn toàn độc lập với nhau, có thể liên lạc với nhau thông qua cơ chế truyền tin giữa các tiến trình.
* Tiến trình hệ thống: được sinh ra khi thực hiện các lời gọi hệ thống
* Tiến trình người sử dụng: được sinh ra khi thực thi các thị chỉ của người sử dụng
* Tiến trình được chia làm 2 loại:
+ Tiến trình kế tiêp
+ Tiến trình song song

- Tiểu trình (Threads):
* Tiều trình là một đơn vị cơ bản của hệ thống. Một tiểu trình cũng có thể tạo lập một tiến trình con.
* Một tiến trình có thể sở hữu nhiều tiểu trình
* Các tiểu trình trong cùng một tiến trình có thể chia sẻ một không gian địa chỉ hoặc truy xuất đến một Stack cùng nhau.
2. Các trạng thái của tiến trình
- Mới tạo: Tiến trình đang được tạo lập
- Running: Tiến trình đang được xử lý
- Blocked: Tiến trình bị chặn, không thể tiếp tục
- Ready: Tiến trình đang sẵn sang, chờ cấp CPU để xử lý
- Kết thúc: Tiến trình đã hoàn tất xử lý
3.Cấu trúc dữ liệu của khối quản lý tiến trình.
HĐH quản lý các tiến trình thông qua khối quản lý tiến trình (Process Control Block – PCB). Thành phần chủ yếu của PCB bao gồm:
- Định dạng của tiến trình: Phân biệt các tiến trình
- Trạng thái tiến trình: Xác định hoạt động hiện hành của tiến trình
- Ngữ cảnh của tiến trình: Mô tả các tài nguyên tiến trình đang trong quá trình hoặc để phục vụ cho hoạt động hiện tại hoặc để làm cơ sở phục hồi hoạt động cho tiến trình, bao gồm các thông tin:
* Trạng thái CPU
* Bộ xử lý
* Bộ nhớ chính
* Tài nguyên sử dụng
* Tài nguyên tạo lập
- Thông tin giao tiếp: Phản ánh các thông tin về quan hệ của tiến trình với các tiến trình khác trong hệ thống:
* Tiến trình cha: Tiến trình tạo lập tiến trình này
* Tiến trình con: Các tiến trình do tiến trình này tạo lập
* Độ ưu tiên: Giúp bộ điều phối có thông tin để lựa chọn tiến trình được cấp CPU
- Thông tin thống kê: Là những thông tin thống kê về hoạt động của tiến trình như thời gian đã sử dụng CPU, thời gian chờ… Các thông tin này sẽ đánh giá tình hình hệ thống và dự đoán các tình huống tương lai.

nguyenminhlai.(I11C)

Tổng số bài gửi : 24
Join date : 26/08/2011
Age : 35
Đến từ : Quảng Nam

Về Đầu Trang Go down

Thảo luận Bài 2 - Page 2 Empty Nhiệm vụ quản lý bộ nhớ.

Bài gửi  nguyenminhlai.(I11C) 5/9/2011, 09:07

- Bộ nhớ là thiết bị lưu trữ duy nhất mà thông qua đó CPU có thể trao đổi thông tin với môi trường ngoài
- Bộ nhớ chính được tổ chức như một mảng một chiều các từ nhớ (word), mỗi từ nhớ có một địa chỉ
- Việc trao đổi thông tin với môi trường bên ngoài được thực hiện thông qua các thao tác đọc hoặc ghi dữ liệu vào một địa chỉ nhất định trong bộ nhớ.
=> Vì thế tổ chức, quản lý bộ nhớ là nhiệm vụ trọng tâm hàng đầu của HĐH
* Nhiệm vụ của quản lý bộ nhớ:
- Cấp phát và thu hồi vùng nhớ cho các tiến trình khi cần thiết
- Ghi nhận tình trạng bộ nhớ chình: vùng đã cấp phát, vùng còn có thể sử dụng…
- Quyết định tiến trình nào được nạp vào bộ nhớ chính khi có một vùng nhớ trống.
- HĐH chịu trách nhiệm cấp phát vùng nhớ cho các tiến trình có yêu cầu. Để thực hiện tốt HĐH cần phải xem xét nhiều khía cạnh như:
+ Sự tương ứng giữa địa chỉ Logic và địa chỉ vật lý: làm thế nào để chuyển đổi một địa chỉ tưởng trưng trong chương trình thành địa chỉ thực trong bộ nhớ
+ Quản lý bộ nhớ vật lý: làm sao để mở rộng bộ nhớ có sẵn nhằm lưu trữ nhiều tiến trình đồng thời
+ Chia sẻ thông tin: Làm sao cho phép 2 tiến trình chia sẻ thông tin trong bộ nhớ
+ Bảo vệ: làm thế nào để ngăn chặn các tiến trình xâm phạm đến vùng nhớ được cấp phát cho tiến trình khác

nguyenminhlai.(I11C)

Tổng số bài gửi : 24
Join date : 26/08/2011
Age : 35
Đến từ : Quảng Nam

Về Đầu Trang Go down

Thảo luận Bài 2 - Page 2 Empty Cấu trúc chương trình

Bài gửi  nguyenminhlai.(I11C) 5/9/2011, 09:08

Có nhiều phương pháp tổ chức chương trình để thực hiện. Các phương pháp này khác nhau ở kiểu định vị chương trình trong bộ nhớ và thời điểm thực hiện phép ánh xạ địa chỉ tương đối thành địa chỉ tuyệt đôi.
Cấu trúc chương trình thể hiện cách quản lý bộ nhớ logic và cho ta thấy hình ảnh của chương trình ở bộ nhớ vật lý khi thực hiện. Cấu trúc chương trình có thể ở các dạng sau:
* Cấu trúc tuyến tính
- Là cấu trúc mà sau khi biên dịch, các module được tập hợp thành chương trình hoàn thiện, chứa đầy đủ mọi thông tin để có thể thực hiện
- Ưu điểm: Đơn giản, dễ tổ chức biên dịch và định vị, thời gian thực hiện nhanh, có tính lưu động cao và dễ dàng sao chép chương trình.
- Nhược điểm: Lãng phí bộ nhớ.
* Cấu trúc động
- Các module được tổ chức riêng biệt. Khi thực hiện chương trình, hệ thống chỉ cần định vị module gốc. Trong quá trình thực hiện cần tới module nào thì hệ thống cấp phát không gian nhớ và khi hoạt động xong thì giải phóng module khỏi bộ nhớ và thu hồi không gian nhớ.
- Ưu điểm: Tiết kiệm bộ nhớ
- Nhược điểm: Xóa và nạp các module la trách nhiệm do người sử dụng đảm nhiệm, do đó các câu lệnh phải được nêu ngay trong chương trình nguồn => kích thước chương trình nguồn lớn.
* Cấu trúc Overlay
- Các module chương trình sau khi biên dịch được chia thành các mức 0,1,..i. Khi thực hiện chương trình, module gốc được định vị vào bộ nhớ. Cần tới module nào hệ thống sẽ tìm kiếm trong sơ đồ Overlay và nạp vào bộ nhớ ở mức tương ứng.
- Ưu điểm: Có tính chất định vị động, do đó cho phép sử dụng bộ nhớ nhiều hơn.
- Nhược điểm: Hiệu quả tiết kiệm bộ nhớ vẫn phụ thuộc vào cách tổ chức, bố trí các module của chương trình
* Cấu trúc phân đoạn
- Chương trình của người sử dụng được biên dịch thành từng module độc lập. Thông tin về các module được chứa trong 1 bảng điều khiển gọi là bảng quản lý đoạn (Segment Control Block – SCB). Khi thực hiện chương trình, hệ thống sẽ dựa vào SCB để nạp các module cần thiết vào trong bộ nhớ cho tới khi hết khả năng. Nếu cần nạp các module mới nhưng thiếu bộ nhớ thì hệ thống sẽ đưa bớt ra ngoài các module có khả năng không sử dụng nữa.
- Ưu điểm: Khi dung lượng bộ nhớ tăng thì tốc độ thực hiện chương trình cũng tăng
- Nhược điểm: Hiệu quả sử dụng bộ nhớ phụ thuộc vào cách phân chia chương trình thành các module độc lập và chỉ áp dụng được khi bộ nhớ quản lý theo kiểu phân đoạn
* Cấu trúc phân trang
- Chương trình được biên dịch như cấu trúc tuyến tính, sau đó được phân chia thành các phần bằng nhau gọi là trang. Thông tin các trang được chứa trong một bảng điều khiển gọi là bảng quản lý trang (Page Control Block – PCB). Khi thực hiện, hệ thống sẽ dựa vào bảng quản lý trang để nạp các trang cần thiết vào bộ nhớ.
- Ưu điểm: Phát huy được hiệu quả sử dụng của bộ nhớ
- Nhược điểm: Chỉ áp dụng được khi bộ nhớ quản lý theo kiểu phân trang

nguyenminhlai.(I11C)

Tổng số bài gửi : 24
Join date : 26/08/2011
Age : 35
Đến từ : Quảng Nam

Về Đầu Trang Go down

Thảo luận Bài 2 - Page 2 Empty Ví dụ thêm về I/O đồng bộ và I/O không đồng bộ

Bài gửi  NgoLeYen48(I11C) 5/9/2011, 09:23

+I/O đồng bộ:Với thiết bị bàn phím chương trình phải chờ người dùng bấm Yes hoặc No,với kết quả Yes hoặc No chương trình mới chạy tiếp.
+I/O không đồng bộ:khi người dùng nhập xong thì chương trình sẽ tự động xuất ra mà không cần phải hỏi ý kiến của người dùng.
NgoLeYen48(I11C)
NgoLeYen48(I11C)

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

Về Đầu Trang Go down

Thảo luận Bài 2 - Page 2 Empty Nguyên lý bảo vệ bộ nhớ chính (Memory Protection) bằng thanh ghi cơ sở và thanh ghi giới hạn.

Bài gửi  NgoLeYen48(I11C) 5/9/2011, 09:58

- Để tiến trình người dùng không can thiệp được vào vùng nhớ của HĐH và của các tiến trình khác, thường sử dụng 2 thanh ghi : thanh ghi cơ sở (Base Register) và thanh ghi giới hạn (Limit Register)
- Chỉ có HĐH mới có thể sửa được nội dung 2 thanh ghi này.
Thảo luận Bài 2 - Page 2 Unledmmq
NgoLeYen48(I11C)
NgoLeYen48(I11C)

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

Về Đầu Trang Go down

Thảo luận Bài 2 - Page 2 Empty Ngắt là gì ? Có mấy loại ngắt? Hoạt động của ngắt?

Bài gửi  TruongThiThuyPhi(I11C) 5/9/2011, 10:50

Ngắt (Interrupt) là quá trình dừng chương trình chính đang chạy để ưu tiên thực hiện
một chương trình khác, chương trình này được gọi là chương trình phục vụ ngắt (ISR –
Interrupt Service Routine).

Có 2 loại ngắt: ngắt cứng và ngắt mềm
Ngắt mềm là ngắt được gọi bằng một lệnh trong chương trình ngôn ngữ máy
Khác với ngắt mềm, ngắt cứng không được khởi động bên trong máy tính mà do các
linh kiện điện tử tác đông lên hệ thống

Hoạt động: Khi thực hiện lệnh gọi ngắt, CPU sẽ tìm kiếm trong bảng vector ngắt địa chỉ của chương trình phục vụ ngắt. Người sử dụng cũng có thể xây dựng môt chương trình cơ sở như các chương trình xử lý ngắt. Sau đó, các chương trình khác có thể gọi ngắt ra để sử dụng. Một chương trình có thể gọi chương trình con loại này mà không cần
biết địa chỉ của nó.

TruongThiThuyPhi(I11C)

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

Về Đầu Trang Go down

Thảo luận Bài 2 - Page 2 Empty Lệnh INIT trong Linux

Bài gửi  tannamthanh(I11C) 5/9/2011, 11:18

Init là cha của tất cả các process. Vai trò chính của init là tạo ra các process bằng chạy các chương trình được quy định trong tập tin /etc/inittab. Mỗi init sẽ có các process khác nhau. Trong linux có 6 mức khởi động (run level):


- Run level 0 (init 0): chế độ tắt máy.
- Run level 1 (init 1): chế độ này chỉ sử dụng được 1 người dùng.
- Run level 2 (init 2): chế độ đa người dùng nhưng không có dịch vụ NFS.
- Run level 3 (linit 3): chế độ đa người dùng, có đầy đủ các dịch vụ.
- Run level 4 (linit 4): chưa được sử dụng.
- Run level 5 (linit 5): chế độ đồ họa.
- Run level 6 (linit 6): khởi động lại máy.
- Cú pháp: # init
- Ví dụ:
+ Dùng lệnh init 0 để tắt máy:
# init 0
+ Để khởi động lại máy tính ta dùng lệnh:
# init 6
+ Khi đang ở chế độ đồ họa ta có thể chuyển sang chế độ dòng lệnh (text mode) bằng cách dùng lệnh:
# init 3
+ Ngược lại, khi đang ở chế độ dòng lệnh ta có thể chuyển sang chế độ đồ họa bằng cách dùng lệnh:
# init 5
- Tập tin cấu hình: /etc/inittab
Khi khởi động máy tính, Linux sẽ đọc trong tập tin /etc/inittab để chọn chế độ khởi động. Cụ thể là dòng id::initdefault:


- Do đó, ta có thể chỉnh sửa chế độ khởi động bằng cách thay đổi run level ngay dòng này.
- Ví dụ: mặc định cho Linux khởi động vào chế độ dòng lệnh ta thay dòng trên thành:
id:3:initdefault
- Lưu ý: không được set dòng này ở hai run level là 0 và 6

tannamthanh(I11C)

Tổng số bài gửi : 23
Join date : 03/09/2011

Về Đầu Trang Go down

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

Bài gửi  BuiHoangTuan.131.I11C 5/9/2011, 13:49

tranphanhieu36_i11c đã viết:Đầu tiên mình sẽ định nghĩa cache nè :

Cache là bộ nhớ đệm của CPU,cache nằm trong CPU ngay cạnh lõi xử lý .CPU muốn đọc hay ghi một vị trí trên Ram thì trước hết nó sẽ tìm trong L1 cache xem có sẵn dữ liệu đó không nếu không nó sẽ tìm trong các bộ nhớ cache còn lại .Cache giúp giảm tình trạng thắt nút cổ chai giữa ram và cpu

Cache memory
Là loại memory có dung lượng rất nhỏ (thường nhỏ hơn 1MB) và chạy rất lẹ (gần như tốc độ của CPU). Thông thường thì Cache memory nằm gần CPU và có nhiệm vụ cung cấp những data thường (đang) dùng cho CPU. Sự hình thành của Cache là một cách nâng cao hiệu quả truy cập thông tin của máy tính mà thôi. Những thông tin bạn thường dùng (hoặc đang dùng) thường được chứa trong Cache, mổi khi xử lý hay thay đổi thông tin, CPU sẽ dò trong Cache memory trước xem có tồn tại hay không, nếu có nó sẽ lấy ra dùng lại còn không thì sẽ tìm tiếp vào RAM hoặc các bộ phận khác. Lấy một ví dụ đơn giản là nếu bạn mở Microsoft Word lên lần đầu tiên sẽ thấy hơi lâu nhưng mở lên lần thứ nhì thì lẹ hơn rất nhiều vì trong lần mở thứ nhất các lệnh (instructions) để mở Microsoft Word đã được lưu giữ trong Cache, CPU chỉ việc tìm nó và xài lại thôi.
Lý do Cache memory nhỏ là vì nó rất đắt tiền và chế tạo rất khó khăn bởi nó gần như là CPU (về cấu thành và tốc độ). Thông thường Cache memory nằm gần CPU, trong nhiều trường hợp Cache memory nằm trong con CPU luôn. Người ta gọi Cache Level 1 (L1), Cache level 2 (L2)...là do vị trí của nó gần hay xa CPU. Cache L1 gần CPU nhất, sau đó là Cache L2...

=>cache rất gần với CPU, tốc độ truy xuất rất nhanh ( nhanh hơn RAM rất nhiều) => Dỡ tốn công và thời gian truy xuất, Sẽ tăng được tốc độ truy xuất của CPU rất nhiều, thường thì CPU sẽ vào cache tìm và truy xuất nếu có trước khi vào ram và bộ nhớ ngoài truy xuất.

Ví dụ minh họa nguyên lý lưu gần từ đời thường :
Giếng nước : nếu ở trên cao nhà khá xa nguồn nước thì người ta thường bơm nước vào bể nước hoặc thùng gần nhà để mỗi khi cần sẽ lại thùng hay bề lấy cho nhanh và tiện, vừa đỡ tốn thời gian...

Mình xin bổ sung thêm rõ hơn về bộ nhớ cache.

Hầu hết máy tính được xây dựng sử dụng mô hình Von Neumann, với trung tâm là bộ nhớ. Chương trình thực thi quá trình được lưu trong bộ nhớ. Chúng ta biết bộ nhớ là cấu trúc logic như 1 dãy các điểm, với địa chỉ từ 0 đến tối đa kích thước bộ nhớ mà vi xử lý có thể đánh địa chỉ. Trong phần này chúng ta sẽ xem xét các loại bộ nhớ khác nhau và cách mà mỗi cái là một phần của hệ thống phân cấp bộ nhớ. Sau đó chúng ta sẽ xem xét một bộ nhớ đệm nhanh (1 bộ nhớ đặc biệt tốc độ cao) và phương thức tận dụng bộ nhớ tối đa của các bộ nhớ ảo thực thi thông qua phân trang.

Tại sao lại có nhiều loại bộ nhớ khác nhau như vậy? Đó là bởi vì công nghệ liên tục phát triển để cố gắng bắt kịp với các cải tiến trong thiết kế CPU – tốc độ của bộ nhớ phải theo kịp CPU hoặc bộ nhớ trở thành nút cổ chai. Trong những năm gần đây, chúng ta đã nhìn thấy rất nhiều cải tiến trong CPU. Như vậy bộ nhớ cũng phải phát triển để theo kịp được tốc độ của CPU, trong đó bộ nhớ chính là bộ nhớ chậm nhất. Nhưng việc cải tiến bộ nhớ chính để theo kịp với CPU không phải là vấn đề thực sự quan trọng bởi vì lợi ích của bộ nhớ đệm nhanh (cache memory) và phân cấp bộ nhớ (THE MEMORY HIERARCHY). Bộ nhớ đệm nhanh là một loại bộ nhớ nhỏ, tốc độ cao (đồng nghĩa với chi phí cao). Đó là loại bộ nhớ được sử dụng thường xuyên để truy cập dữ liệu. Việc bổ sung chi phí bằng cách sử dụng các công nghệ tiên tiến, nhanh chóng cho bộ nhớ không phải lúc nào cũng hợp lý bởi vì bộ nhớ chậm hơn có thể thường xuyên ẩn bởi hệ thống bộ nhớ đệm nhanh hiệu suất cao. Tuy nhiên, trước khi chúng ta thảo luận về bộ nhớ đệm nhanh, chúng ta sẽ giải thích các công nghệ bộ nhớ khác nhau.

Mặc dù có nhiều công nghệ bộ nhớ tồn tại nhưng chỉ có duy nhất 2 kiểu bộ nhớ cơ bản là RAM (Random Access Memory)và ROM (Read Only Memory). RAM là loại bộ nhớ đọc ghi. RAM là bộ nhớ mà một máy tính cần có. RAM được sử dụng để lưu trữ chương trình và dữ liệu cần thiết để máy tính có thể thực hiện các chương trình, nhưng RAM là bộ nhớ không ổn định và bị mất các thông tin khi điện bị ngắt. Hiện nay, có 2 loại chip chính được chế tạo để sử dụng các loại RAM: và (static và dynamic RAM).

DRAM được xây dựng từ các tụ điện tí hon. DRAM đòi hỏi cung cấp điện năng liên tục mỗi vài mili giây để duy trì dữ liệu. SRAM thì ngược lại, duy trì nội dung cho tới khi chừng nào vẫn còn có điện. SRAM bao gồm các mạch tương tự. SRAM nhanh hơn và đắt hơn DRAM. Tuy nhiên người thiết kế sử dụng DRAM bởi vì nó có thể lưu trữ nhiều bit trên 1 chip, tiêu tốn ít điện năng, và tỏa nhiệt ít hơn SRAM. Vì những lí do đó, cả 2 công nghệ này được kết hợp sử dụng: DRAM cho bộ nhớ chính và SRAM cho bộ nhớ cache. Hoạt động cơ bản của tất cả bộ nhớ DRAM đều tương tự nhau, nhưng vẫn có nhiều đặc thù.

(tham khảo từ nguồn wikipedia)
BuiHoangTuan.131.I11C
BuiHoangTuan.131.I11C

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

Về Đầu Trang Go down

Thảo luận Bài 2 - Page 2 Empty Nguyên tắc xử lý ngắt của hệ điều hành?

Bài gửi  TranTrungTinh(I11C) 5/9/2011, 15:13

Có hai loại ngắt chính: ngắt cứng và ngắt mềm.
- Tín hiệu ngắt từ các thiết bị (ngắt cứng) truyền qua System Bus.
- Tín hiệu ngắt từ chương trình ngừơi dùng (ngắt mềm) nhờ lời gọi hệ thống. Lệnh đặc biệt này là cơ chế để tiến trình người dùng yêu cầu một dịch vụ của hệ điều hành (ví dụ: yêu cầu thực hiện lệnh I/O).
+ Với mỗi loại ngắt, có đoạn mã riêng của HĐH dùng để xử lý.
+ Các HĐH hiện đại được dẫn dắt bởi các sự kiện. Nếu không có tiến trình nào vận hành, không có thiết bị I/O nào làm việc, HĐH im lặng chờ và theo dõi.
+ Thông thường, mỗi loại ngắt tương ứng với một dòng trong bảng (véc tơ ngắt) chứa con trỏ tới chương trình xử lý loại ngắt đó. Bảng này nằm ở vùng thấp của RAM.
+ Cơ chế xử lý ngắt phải có trách nhiệm ghi lại địa chỉ lệnh bị ngắt để sau đó có thể quay lại. Địa chỉ này cùng với nhiều thông tin khác có thể được ghi vào ngăn xếp hệ thống với nguyên tắc làm việc LIFO(Last in, First out).
VD: - Ngắt cứng: khi chương trình đang chạy thì bị ngắt do có câu lệnh buộc phải ngắt chương trình.
- Ngắt mềm: khi chương trình đang chạy nhưng người dùng muốn sử dụng thao tác khác nên máy tính phải dừng việc đang làm và thực thi hiệu lệnh của người dùng.

TranTrungTinh(I11C)

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

Về Đầu Trang Go down

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

Bài gửi  PhanThiThanhNguyen_72I11C 5/9/2011, 15:15

Cache memory
Là loại memory có dung lượng rất nhỏ (thường nhỏ hơn 1MB) và chạy rất lẹ (gần như tốc độ của CPU). Thông thường thì Cache memory nằm gần CPU và có nhiệm vụ cung cấp những data thường (đang) dùng cho CPU. Sự hình thành của Cache là một cách nâng cao hiệu quả truy cập thông tin của máy tính mà thôi. Những thông tin bạn thường dùng (hoặc đang dùng) thường được chứa trong Cache, mổi khi xử lý hay thay đổi thông tin, CPU sẽ dò trong Cache memory trước xem có tồn tại hay không, nếu có nó sẽ lấy ra dùng lại còn không thì sẽ tìm tiếp vào RAM hoặc các bộ phận khác. Lấy một ví dụ đơn giản là nếu bạn mở Microsoft Word lên lần đầu tiên sẽ thấy hơi lâu nhưng mở lên lần thứ nhì thì lẹ hơn rất nhiều vì trong lần mở thứ nhất các lệnh (instructions) để mở Microsoft Word đã được lưu giữ trong Cache, CPU chỉ việc tìm nó và xài lại thôi.
Lý do Cache memory nhỏ là vì nó rất đắt tiền và chế tạo rất khó khăn bởi nó gần như là CPU (về cấu thành và tốc độ). Thông thường Cache memory nằm gần CPU, trong nhiều trường hợp Cache memory nằm trong con CPU luôn. Người ta gọi Cache Level 1 (L1), Cache level 2 (L2)...là do vị trí của nó gần hay xa CPU. Cache L1 gần CPU nhất, sau đó là Cache L2...

PhanThiThanhNguyen_72I11C

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

Về Đầu Trang Go down

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

Bài gửi  Sponsored content


Sponsored content


Về Đầu Trang Go down

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

Về Đầu Trang

- Similar topics

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