Giáo trình môn học nguyên lý hệ điều hành nghề quản trị mạng trình độ cao đẳng nghề (phần 2)

50 815 0
Giáo trình môn học nguyên lý hệ điều hành   nghề quản trị mạng   trình độ cao đẳng nghề (phần 2)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

47 CHƯƠNG 3: ĐIỀU KHIỂN BỘ NHỚ Mã chương: MH10-03 Mục tiêu: Sau học xong học này, sinh viên có khả năng: - Nắm nguyên lý điều khiển nhớ HĐH, phương thức tối ưu hóa việc phân phối nhớ, tránh lãng phí chia sẻ tài nguyên nhớ Quản lý bảo vệ nhớ Mục tiêu : Nắm khái niệm nhớ, quản lý phân phối nhớ vấn đề bảo vệ nhớ 1.1 Một số khái niệm liên quan đến nhớ Đơn vị lưu trữ địa hóa nhớ chọn byte từ máy song phổ biến byte Địa Trong lệnh, địa (của chương trình, tạo khơng gian địa chỉ) cho theo dạng sau : Địa tuyệt đối: địa thực nhớ Ví dụ việc truy nhập địa tuyệt đối xảy chương trình cần chuyển điều khiển từ đơn vị chương trình sang đơn vị chương trình khác Địa tuyệt đối thường cho theo độ dài từ máy, chẳng hạn, với từ máy 32 bit không gian địa lên đến GB Trường hợp ngoại lệ máy vi tính 16 bit, dùng từ máy địa hóa tới 64KB, địa tuyệt đối cho hai từ máy : từ máy dùng để segment, từ dùng để offset Các tốn hạng lệnh địa vùng nhớ (một, hai chí ba địa vùng nhớ) dùng địa tuyệt đối độ dài lệnh máy dài kéo theo tăng đáng kể độ dài tồn chương trình Đó lý dẫn tới cần dùng giải pháp sử dụng địa tương đối Địa tương đối : Có nhiều cách thức để biểu thị địa tương đối Một cách điển hình địa liên tiếp sử dụng chung ghi (được gọi ghi sở) chứa địa dãy đó, địa lại quy chiếu gia số so với địa đầu (nội dung ghi sở) Gia số khoảng cách địa tính với địa đầu Khi quy định ghi xác định ghi sở lệnh khơng cần thiết nêu ghi sở mà cần gia số địa chỉ, mà gia số thường nhỏ nên số bit dành cho lệnh (việc dùng ghi CS, DS, SS, ES máy vi tính ví dụ đáp ứng mục đích này) 48 Một phương pháp dùng địa tương đối thường hay gặp ngồi ghi sở, địa thành phần cấu trúc liệu tương ứng với ghi số : địa thành phần cấu trúc liệu biểu diễn gia số địa ghi số Như vậy, lệnh có thêm số hiệu ghi số song máy tính lại có ghi nên số bit dành cho địa giảm Chẳng hạn, câu lệnh WITH PASCAL sử dụng chế nói mode địa [BX + SI +4] ngôn ngữ assembler PC Hệ thống cần phân phối hay giải phóng nhớ chương trình người sử dụng : đơn vị cung cấp hay giải phóng nhớ thường trang (page) đơn vị nhớ hệ thống quy định (ví dụ, MS-DOS đơn vị đoạn –paragraph) Trang có độ dài KB, KB v.v… song phổ biến 4KB Địa trang phù hợp với độ dài trang theo nghĩa địa chia hết cho độ dài Phân phối nhớ cho chương trình cịn phân biệt phân phối tĩnh hay phân phối động : liên quan đến thời điểm phân phối nhớ trước (khi tải) hay thời gian thực chương trình Việc phân phối tĩnh hay động thực chương trình lẫn liệu Truy nhập tới nhớ phân biệt truy nhập hay truy nhập trực tiếp Truy nhập theo địa tương ứng với địa tương đối (ví dụ, truy nhập tới phần tử mảng phần tử đầu tiên), truy nhập trực tiếp tương ứng với địa tuyệt đối 1.2 Quản lý phân phối nhớ Vấn đề bảo vệ nhớ Bài toán điều phối nhớ : -Phân phối vùng nhớ cho chương trình liệu để thực cách quy, khơng ảnh hưởng đến chương trình khác tồn nhớ ; -Bảo vệ chương trình liệu khơng bị xóa chồng chéo chương trình khác ; -Sử dụng nhớ hiệu Như vậy, điều phối nhớ, đòi hỏi thỏa mãn hai yêu cầu : phân rã không gian địa chia xẻ nhớ Để đảm bảo chức trên, chương trình điều khiển nhớ phải giải số nội dung sau : Phân rã không gian địa để tránh chồng chéo, xâm phạm lẫn chương trình Cũng giống chương trình PASCAL, biến local (cục bộ) global (toàn bộ) dù giống tên lại phân phối vùng địa hoàn toàn khác nhau, xem xét tình trạng nhớ có số chương trình người dùng, cần phân rã địa để không chồng chéo Để làm điều đưa số chiến lược Một chiến lược điển hình 49 dùng số hệ điều hành phân lớp cho vùng nhớ gắn lớp nhớ cho chương trình Một miền nhớ phân phối cho số lớp chương trình, vậy, chương trình phân phối vào số lớp nhớ Đối với trang, có hai trạng thái áp dụng : phân phối hay cịn rỗi Ví dụ, với hệ đơn chương trình, MSDOS máy tính PC, quản lý nhớ đơn giản: sử dụng trỏ để xác định cận vùng nhớ rỗi Tuy nhiên, với máy tính PC với vi xử lý từ 386 trở đi, cho phép chạy chế độ đa chương trình Người ta phân chia mức nhớ mức chương trình tính đến quyền thâm nhập địa cung cấp nhớ : Chỉ mức chương trình cho phép thâm nhập đến vùng nhớ theo quyền hạn cập nhật Chia xẻ nhớ liên quan đến việc dùng chung phần nhớ mà không ảnh hưởng đến Trong chế độ đa chương trình, số chương trình người dùng, hướng đến chương trình hay liệu chung Để dùng chung được, mơdun chương trình có chế độ chạy nhiều lần chương trình người dùng gọi chương trình nói theo yêu cầu độc lập với chương trình người sử dụng khác thâm nhập vào chương trình nói Chú ý rằng, để mơdun chương trình nhiều người dùng chung điều kiện dễ nhận biết mơdun chạy, không gây biến đổi nội dung lệnh thuộc mơdun Trong phân phối nhớ cho chương trình, cần ý tới hai cách thức : phân phối liên tục phân phối rời rạc Tùy thuộc vào hệ điều hành chế độ hoạt động mà phân phối nhớ tiến hành theo hai yêu cầu : phân phối liên tục phân phối rời rạc Phân phối liên tục chương trình chiếm vùng nhớ liên tục ; nội dung từ đầu chương trình đến cuối chương trình nằm trọn vùng nhớ khơng cho phép chương trình khác sử dụng vùng nhớ chèn vùng nhớ dành cho chương trình Phân phối liên tục làm đơn giản việc cung cấp nhớ cho chương trình việc quản lý nhớ Phân phối rời rạc chương trình phân chia thành số đoạn, đoạn nằm vùng nhớ rời rạc nhau, vùng nhớ có vùng nhớ phân phối cho chương trình khác Phân phối rời rạc làm cho toán quản lý phân phối nhớ phức tạp Phân phối vùng nhớ cho chương trình thực theo hai cách thức : chọn chọn tốt Sự khác hai cách thức giải thích sau Thơng thường, thời điểm nhớ có số vùng nhớ rỗi rời rạc việc giải phóng chương trình nhớ Các vùng nhớ có kích thước khác quản lý danh sách có thứ tự Giả sử nảy sinh nhu cầu cần phân phối dung lượng n đơn vị nhớ (trang, 50 paragraph…) cho việc thực chương trình Theo cách thức « chọn » vùng nhớ rỗi danh sách có dung lượng lớn n đơn vị nhớ sử dụng để phân phối Theo cách thức « chọn tốt » vùng nhớ rỗi có dung lượng lớn hay n đơn vị nhớ mà độ dư thừa sử dụng để phân phối cho nhu cầu nói Điều khiển nhớ liên tục theo đa toán Mục tiêu: Nắm phương pháp điều khiển nhớ liên tục 2.1 Chiến lược giới hạn tĩnh (cận cố định) Một phương pháp điển hình phân phối nhớ liên tục chiến lược giới hạn tĩnh gọi chiến lược phân chương (tương ứng với chế độ MFT 184K P4(72K) hệ điều 112K P3(72K) hành) Bộ nhớ 72K P2(40K) chia thành 32K P1(40K) chương: P0(32K) gán tên 0K chương, Chương nhớ địa chỉ, Địa dung lượng trình khởi tạo hệ điều hành Hình 3.4 cho hình ảnh phân chương nhớ việc phân phối nhớ cho số chương trình Hình 3.1 Bộ nhớ phân chương Đối với ví dụ theo hình vẽ 3.1, nhớ phân thành chương: P0 (32K), P1 (40K), P2 (40K), P3 (72K), P4 (72K) Chương P0 dành cho nhân, chương cịn lại có chương trình tải (load) Kích cỡ (dung lượng) trung bình chương phụ thuộc vào dung lượng nhớ số lượng chương Các chương trình gán số hiệu để tải vào chương trình định Nảy sinh trường hợp có chương rỗi mà khơng tải chương trình: lớp gắn với bị bận độ rộng chương khơng đủ để tải Lúc hệ thống thao tác viên thực việc thay đổi lớp gắn cho chương trình thay đổi số lượng chương, kích cỡ chương song phổ biến thao tác viên dùng lệnh để thực cơng việc Tuy điều 51 xem thủ cơng song tránh phức tạp cho chương trình điều khiển Để quản lý nhớ trường hợp này, sử dụng bảng mơ tả chương (partition description table: PDT), có dạng: Số hiệu chương Địa 0K 32K 72K 112K 184K Độ dài 32K 40K 40K 72K 72K Tình trạng Đã load Đã load Đã load Đã load Đã load Đối với tốn, gắn với vài chương nhớ, chiến lược phân phối nhớ cho kể làm hai hướng: phân phối nhanh (gặp chương gắn, đủ độ rộng đầu tiên), phân phối tối ưu (chọn chương với vùng nhớ dư thừa nhất) Trở lại vấn đề vướng mắc phân phối nhớ: -Khơng có chương đủ để phân phối cho chương trình; -Mọi chương tải; -Một số chương rỗi, chương rỗi khơng đủ chứa tốn song nối vài chương rỗi tạo vùng nhớ đủ để tải toán Việc phân phối nhớ cho tốn (q trình) coi gắn với chương có dịng xếp hàng tốn cần phân phối nhớ Mỗi tốn lại gắn với vài chương, có chung số dòng xếp hàng Việc phân phối nhớ cho toán liên quan tới việc thao tác dòng xếp hàng nói Mối liên kết chương lớp tốn khơng phải ln chặt chẽ Như thấy, tồn số cách thức thay đổi mối liên kết nói (hoặc chương trình hệ thống thao tác viên v.v…) 2.2 Chiến lược giới hạn động (cận thay đổi) Như thấy, chế độ phân phối cận cố định (phân phối tĩnh) nảy sinh số vấn đề việc sử dụng tối ưu nhớ, với phương án khắc phục đưa vào lệnh thao tác viên Trong cách thức phân phối liên tục nhớ, chế độ giới hạn thay đổi áp dụng Trong chế độ (tương ứng với chế độ MVT hệ điều hành), nhớ không chia thành chương giống chế độ giới hạn cố định Các chương trình nạp liên tục vào nhớ cịn nạp Một ví dụ hình ảnh nhớ cho hình 3.2 Trong trình làm việc, chương trình thực giải phóng, vùng nhớ giải phóng liên tục rời rạc Sử dụng vùng nhớ Một số tình nảy sinh (hình 3.2) 52 Trên hình vẽ thứ 6, chương trình (Prg 4) giải phóng Ngay trước chương trình 4, vùng nhớ rỗi với dung lượng 20K Khi giải phóng chương trình 4, có vùng rỗi liên tục với dung lượng 102K Chương trình với độ dài 52K tải vào nhớ sau chương trình giải phóng Hiện tại, dịng đợi, đến lượt chương trình Pr9 có độ dài 80K Mỗi vùng rỗi riêng rẽ nhớ chứa nối chương trình 9, dung tích rỗi tổng cộng 88K Hệ thống cần nhập hai vùng nhớ rỗi để nạp chương trình Pr9 24K 82K 42K 50K 26K 32K 24K 82K 30K 62K 26K 32K Prg.2 Prg.4 Rỗi Prg.3 Prg.1 Nhân Prg.2 Prg.4 92K Rỗi 30K 62K Prg.2 Prg.4 Rỗi Prg.5 Prg.1 Nhân Prg.2 Prg.2 Prg.2 Prg.4 Prg.4 82K Prg.4 Rỗi 20K Rỗi Prg.5 118K Rỗi 60K Prg.7 Rỗi 38K Prg.6 Nhân Nhân Nhân Hình 3.2 Các hình trạng nhớ với cận thay đổi Điều khiển nhớ theo cận thay đổi sử dụng linh hoạt tối ưu nhớ, tránh số hạn chế so với cận cố định (cho phép độ dài mơdun chương trình lớn) miền nhớ rỗi sử dụng linh hoạt Tuy vậy, công việc phân phối nhớ phức tạp -quản lý nhớ thay đổi -định vị lại nhớ cho chương trình Khi chương trình hoạt động, trạng thái trung gian, khơng có chế thích hợp việc định vị lại ảnh hưởng đến thực chương trình Điều liên quan đến vấn đề địa hóa chương trình: sử dụng địa cở sở khơng tường minh Chỉ quy chiếu địa khơng tường minh giải toán định vị lại Mặc khác, thời điểm cho phép định vị lại Chương trình đợi kết cơng việc vào/ra việc định vị lại gặp trở ngại lớn vấn đề liên kết kết công việc vào/ra với chương trình 53 Vấn đề định vị lại có ý nghĩa khơng phân phối nhớ liên tục mà phân phối nhớ gián đoạn Việc sử dụng địa tương đối hình thức phù hợp với việc định vị lại Có số cách thức liên quan đến định vị lại: định vị tĩnh định vị động 2.3 Cách thức Overlay swapping a) Cách thức OVERLAY Trong trường hợp điều khiển nhớ nói trên, để khắc phục tượng thiếu nhớ phân phối liên tục, số hệ thống cho phép chương trình hoạt động theo chế độ OVERLAY Chế độ OVERLAY cho phép tổ chức chương trình thành đơn vị chương trình đảm bảo điều kiện sau: Phân phối nhớ cho chương trình miền liên tục, Mơdun tải bao gồm số đơn vị chương trình (segment chương trình) mà segment chương trình tải đồng thời (phân phối liên tục) Một số mơdun tải tải vào vùng nhớ Các môdun tải tập hợp File đĩa Trong tập hợp mơdun chương trình nảy sinh quan hệ độc lập/phụ thuộc: có mặt nhóm mơdun nhớ khơng địi hỏi/có địi hỏi có mặt nhóm mơdun khác A B D 12 30K 24K E C 12 G 12 12 H I 12 J Hình 3.3 Cấu trúc chương trình OVERLAY Trong mơdun nói trên, có mơdun ln tồn q trình chương trình thực hiện: chương trình chính, mơdun chương trình phụ thuộc vào tổ chức dạng hình Hình (hình 3.3) cho ví dụ cấu trúc chương trình: nhớ địi hỏi môdun A:30KB; B:24KB, C:12KB, D, E, G, H: 12KB; I, J: 6KB Theo cấu trúc đó: A (mơdun chính) sử dụng hai mơdun B C B C độc lập nhau: chúng lưu trữ vùng nhớ B sử dụng hai môdun độc lập D E; C sử dụng hai môdun độc lập G H H sử dụng hai môdun độc lập I J Như vậy, chương trình có gốc B cần 36KB; chương trình có gốc C cần 30KB Vậy chương trình cần vùng nhớ liên tục 30KB 54 +36KB = 66KB Trong khơng sử dụng chế độ overlay, chương trình nói cần vùng nhớ liên tục 30KB +24KB+5*12KB+2*6KB=126KB Ví dụ, ngơn ngữ lập trình nói chung cho phép chế độ Chẳng hạn, khai báo OVERLAY PASCAL, FORTRAN v.v…Cụ thể, TP3.0, môdun overlay cho vào File phần tên với file chương trình phần mở rộng 001, 002 v.v…;Một số phần mềm, có file kèm có phần mở rộng OVL, chứa môdun mức tải vào nhớ b) Cách thức swapping Swapping cách thức hệ thống thực việc chuyển giao nội dung số phần nhớ đĩa từ để giải phóng nhớ cho yêu cầu phân phối Phần nội dung nhớ chuyển ngồi chứa nội dung chương trình tồn nhớ; sau chương trình nói chọn thực hiện, phần nhớ đưa từ đĩa từ vào nhớ Swapping áp dụng chủ yếu cho điều phối nhớ liên tục song số trường hợp hệ điều hành hoạt động điều phối nhớ gián đoạn sử dụng Về hình thức, coi swapping biến thể overlay: Trong overlay, môdun chương trình thuộc chương trình người dùng cịn swapping, mơdun chương trình thuộc hệ điều hành, cịn mơdun overlay chương trình người dùng, số trường hợp chí phận chương trình người dùng Trong hệ điều hành dùng cách thức swapping, tồn môdun hệ thống tên swapper có chức sau: Chọn trình (chương trình người dùng) để đưa đĩa từ (swap out) Chọn trình để đưa trở lại từ đĩa vào nhớ (swap in) Định vị quản lý không gian swap (trong nhớ đĩa từ) Swap out Swapper định hướng chọn trình đưa đĩa từ (quá trình bị swap out) trình bị đình mà chiếm vùng nhớ đủ lớn để phân phối nhớ cho trình nạp vào nhớ Trong q trình thóa mãn điều kiện trên, swapper chọn lựa trình có độ ưu tiên thấp nhất, chờ đợi kiện xảy chậm trình thường xuyên bị đình thống kê khoảng thời gian dài Một số điều cần ý chọn q trình bị swap out tính đến thời gian q trình tải (hoặc nhận) vào nhớ trong, tính chất thực nhớ q trình v.v… Cần tránh trường hợp trình vừa bị swap out xong lại cần gửi vào lại nhớ (swap in) 55 Swap in Swapper chọn trình nhớ (do swap out) nhận lại vào nhớ phụ thuộc vào số thông số: thời gian q trình nhớ ngồi, độ ưu tiên q trình v.v… Mục tiêu cơng việc chọn lựa đảm bảo cho thời gian dành cho swap out swap in Định vị quản lý không gian swap Các trình trạng thái swap out hệ điều hành lưu trữ dạng thực với liệu có liên quan lên File đĩa gọi File swap Không thế, File cịn chứa thuộc tính q trình bị swap, chẳng hạn độ ưu tiên trình u cầu nhớ q trình Trong số trường hợp File gọi ảnh trình Do trình thực làm thay đổi stack liệu ảnh- dạng thực trình khác với ảnh lưu trữ thông thường chưa tải Nói chung, giống việc bảo vệ trạng thái trình chuyển điều khiển, swap out, vùng bảo vệ tương ứng với q trình lưu ảnh Tồn hai lựa chọn sở việc định vị File swap: - file swap cho toàn hệ thống - số file swap chuyên dụng theo trình Lựa chọn file swap cho toàn hệ thống: Một file lớn khởi tạo, thường xảy thời điểm khởi tạo hệ thống, chứa ảnh swap out q trình Nói chung, File swap chung đặt “bộ nhớ ngồi” tốc độ cao; File thường có địa độ rộng tĩnh Một điều quan trọng lựa chọn kích cỡ file swap chung Nếu kích cỡ q lớn vùng “bộ nhớ ngồi” dành cho mục đích khác bé, ảnh hưởng đến tốc độ hoạt động chung hệ thống Ngược lại, kích cỡ file nhỏ xảy tình sai sót swap out Lựa chọn số file swap chuyên dụng: trình bị swap out tương ứng với file nhớ (nhiều file ảnh) File swap (ảnh trình) khởi tạo dạng tĩnh (ngay trình nạp vào nhớ trong) động (khi cần swap out tạo file) Việc swap out swap in trình ảnh hưởng đến thời gian thực trình liên quan đến tốc độ vào với nhớ 2.4 Các phương thức phân phối vùng nhớ (first fit, best fit, worst fit) Tập hợp lỗ trống tìm thấy để xác định lỗ tốt để cấp phát Các chiến lược first-fit, best-fit, worst-fit chiến lược phổ biến dùng để chọn lỗ trống từ tập hợp lỗ trống •First-fit: cấp phát lỗ trống đủ lớn Tìm kiếm bắt đầu đầu tập hợp lỗ trống hay điểm kết thúc tìm kiếm first-fit trước Chúng ta dừng tìm kiếm tìm thấy lỗ trống đủ lớn •Best-fit: cấp phát lỗ trống nhỏ đủ lớn Chúng ta phải tìm toàn danh 56 sách, trừ danh sách xếp thứ tự theo kích thước Chiến lược tạo lỗ trống nhỏ cịn thừa lại •Worst-fit: cấp phát lỗ trống lớn Chúng ta phải tìm tồn danh sách trừ xếp theo thứ tự kích thước Chiến lược tạo lỗ trống cịn lại lớn mà có ích lỗ trống nhỏ từ tiếp cận best-fit Các mô hiển thị first-fit best-fit tốt worst-fit việc giảm thời gian sử dụng lưu trữ Giữa first-fit best-fit xác định rõ chiến lược tốt sử dụng lưu trữ, first-fit có tốc độ nhanh Tuy nhiên, giải thuật gặp phải vấn đề phân mãnh (external fragmentation) Khi q trình nạp xố khỏi nhớ, không gian nhớ trống bị phân rã thành mãnh nhỏ Phân mãnh tồn tổng không gian nhớ đủ để thoả mãn u cầu, khơng liên tục; vùng lưu trữ bị phân mãnh thành số lượng lớn lỗ nhỏ Vấn đề phân mãnh lớn Trong trường hợp xấu nhất, chúng có khối nhớ trống nằm hai trình Nếu tất nhớ nằm khối trống lớn, chạy nhiều trình Điều khiển nhớ gián đoạn Mục tiêu: nắm phương thức tối ưu hóa việc phân phối nhớ, tránh lãng phí chia sẻ tài nguyên nhớ 3.1 Tổ chức gián đoạn Như biết, với hệ điều hành hoạt động theo chế độ đa người dùng, thời điểm có nhiều người làm việc với máy: tồn nhiều chương trình có mặt nhớ để làm việc nói chung số chương trình khơng giảm xét theo chế độ mẻ Vì nhớ hạn chế, có nhiều người dùng (do có nhiều chương trình người dùng nhớ trong) chương trình người dùng có độ dài khơng thể giới hạn trước vậy, khơng phải tồn chương trình người dùng phải nhớ trong: phận nằm nhớ phận lại nằm nhớ Để liên kết phận nói trên, khơng thể sử dụng địa tương đối chế độ overlay phân phối liên tục mà phận phải thống với hệ thống địa chỉ, lệnh quy chiếu đến địa thống Như vậy, với chương trình người dùng, địa thuộc vào khơng gian địa thực không gian địa ảo Bộ nhớ địa hóa (bằng số, bắt đầu địa 0) CPU trực tiếp thao tác lấy ghi nhớ địa thuộc nhớ tập hợp đó; tập hợp địa nói gọi khơng gian địa 82 Các bước 1-3 thành phần chức máy tính đảm nhận, bước 4-5 chương trình xử lý ngắt đảm nhận Bước chương trình xử lý ngắt tiến hành cơng việc: Ghi nhớ bổ sung số thông tin mà cách thức phương tiện (bước 2) chưa ghi hết, ví dụ, bước ghi PSW cịn chương trình xử lý ngắt phải bảo vệ trạng thái trình bị ngắt việc lưu trữ hệ thống ghi chung cơng việc nói địi hỏi vùng nhớ định (chẳng hạn, với IBM, EC đòi hỏi vùng 72 bytes cho 16 địa chuyển đổi) Định danh chương trình xử lý ngắt Thơng tin bước phận chương trình xử lý ngắt: loại ngắt chương trình ngắt riêng, ví dụ ngắt vào (thiết lập cách thức phương tiện bước 1) khác biệt hồn tồn với ngắt hướng tới supervisor (phân tích tác động supervisor) - Thực tác động tương ứng với ngắt định danh Các tác động đơn giản Ví dụ, thiết lập dấu hiệu trạng thái tràn ơ, quay lại băng từ chuyển sang việc chuẩn bị đọc đọc sai.v.v… Nếu không gấp, chương trình xử lý ngắt tương ứng ghi vào dịng xếp hàng q trình trạng thái chuẩn bị Chương trình xử lý ngắt đảm bảo việc quay trạng thái bình thường CPU (chọn trình người dùng để thực hiện) tùy thuộc vào: -Kiểu ngắt; -Kiểu chương trình điều phối CPU sử dụng Từ yếu tố xác định công việc kết khối, trạng thái chuẩn bị công việc chọn tiếp theo… Chú ý: Một số tác động chương trình xử lý ngắt thực chậm để nhớ đưa giải pháp số phận chương trình xử lý ngắt đặt thường trực nhớ phần nhân hệ thống Nếu chương trình xử lý ngắt q lớn, chia làm hai phần: phần thường trực phần không thường trực Nhiều ngắt có quan hệ đến điều khiển CPU (ngắt theo thời gian, ngắt theo hoạt động thiết bị, ngắt hồn thiện vào/ra) Q trình điều phối làm khơng q trình người dùng mà cịn phận khác hệ điều hành (bao hàm chương trình xử lý ngắt mức 2; chương trình thống kê; điều phối chính; tải chí điều phối) Ngắt đa mức Ngắt xảy chương trình người dùng, xảy q trình xử lý ngắt Đây tình gọi ngắt đa mức Xử lý ngắt đa mức sao? 83 -Phân cấp loại ngắt theo độ ưu tiên, thông thường ngắt liên quan tới cách thức kĩ thuật có độ ưu tiên thấp so với ngắt có liên quan đến hệ điều hành Ví dụ: ngắt gọi supervisor có độ ưu tiên cao so với ngắt vào/ra -Chọn ngắt xử lý trước tiên: ngắt cũ ngắt mới, việc tùy thuộc vào kiểu hai ngắt Ngắt giải (ngắt trội hơn), bị hủy bỏ, chờ để giải Xử lý ngắt đa mức theo độ ưu tiên khác đảm bảo theo cách thức phương tiện khác ghi nhận kiểu ngắt khác ô nhớ khác Hiện tượng bế tắc Mục tiêu : Nắm khái niệm bế tắc, biện pháp phòng tránh, xử lý bế tắc 6.1 Khái niệm bế tắc Bế tắc tượng nhóm q trình bị kết khối cách lâu dài q trình nhóm chiếm tập tài nguyên để hoàn thiện q trình chờ đợi việc giải phóng số tài ngun cịn lại bị q trình thuộc nhóm chiếm giữ Một ví dụ dễ thấy tượng yêu cầu chu trình thiết bị: có q trình, A chiếm giữ thiết bị đòi hỏi thiết bị 2, B chiếm giữ thiết bị đòi hỏi thiết bị 3, C chiếm giữ thiết bị địi hỏi thiết bị Chúng ta có hai q trình Pr1 Pr2 Chúng chia xẻ hai tài nguyên p1 p2 để loại trừ ràng buộc, hai trình sử dụng semaphore s1cho tài nguyên p1 semaphore s2 cho tài nguyên p2 Việc sử dụng semaphore nói thân thủ tục trình bày Pr1:… Pr2:… 1.P(s1) 5.P(s2) … … 2.P(s2) 6.P(s1) … … 3.V(s1) 7.V(s1) … … 4.V(s2) 8.V(s2) … … Ban đầu, hai semaphore có giá trị Xem xét trường hợp theo thời gian, dãy trạng thái địi hỏi nhu cầu giải phóng biến chung dãy 1,2,5,3,4,6,7 Khi thủ tục Pr2 có nhu cầu p2 (lệnh 5), bị kết khối p2 Pr1 dùng Chỉ sau Pr1 thực giải phóng p2 (lệnh 4) 84 Pr2 tách khối Đến dãy thực câu lệnh trở thành 5,1,6,2 Pr2 bị kết khối đòi hỏi p1 (lệnh 6) Pr1 bị kết khối đòi hỏi p2 (lệnh 2): Pr1 chờ đợi Pr2 tới lệnh Pr2 chờ đợi Pr1 tới lệnh Hiện tượng bế tắc xuất hai trình chờ đợi lẫn 6.2 Các biện pháp phịng tránh bế tắc Chủ yếu có ba hương tiếp cận để xử lý tắc nghẽn : - Sử dụng vài giao thức (protocol) để bảo đảm hệ thống không xảy tắc nghẽn HĐH khơng có khả chống Deadlock Lý dung phương pháp này: Do xác suất xảy đealock nhỏ Giải deadlock địi hỏi chi phí cao Xử lý tay người quản trị hệ thống làm Đây giải pháp hầu hết hệ điều hành - Cho phép xảy tắc nghẽn tìm cách sửa chữa tắc nghẽn - Hoàn toàn bỏ qua việc xử lý tắc nghẽn, xem hệ thống không xảy tắc nghẽn 6.3 Phát bế tắc Một câu hỏi đặt tính tốn để khẳng định hay không khẳng định q trình rơi vào tình trạng bế tắc Để tính tốn điều này, hệ điều hành cần đưa danh sách tài nguyên mà trình chờ đợi danh sách trình chờ đợi tài nguyên mà không thỏa mãn Để đốn nhận việc bế tắc xảy hay khơng cần có thơng tin để kiểm sốt nhu cầu tài nguyên trình Rõ ràng khơng phải tình trạng cần tài ngun xảy bế tắc Có số thuật tốn dựa vào 85 danh sách liệt kê để đốn nhận bế tắc xảy để loại bỏ 6.4 Xử lý bế tắc Đình hoạt động tiến trình liên quan Cách tiếp cận dựa việc thu hồi lại tài ngun tiến trình bị kết thúc Có thể sử dụng hai phương pháp sau : Đình tất tiến trình tình trạng tắc nghẽn Đình tiến trình liên quan khơng cịn chu trình gây tắc nghẽn : để chọn tiến trình thích hợp bị đình chỉ, phải dựa vào yếu tố độ ưu tiên, thời gian xử lý, số lượng tài nguyên chiếm giữ , số lượng tài nguyên yêu cầu Thu hồi tài nguyên Có thể hiệu chỉnh tắc nghẽn cách thu hồi số tài nguyên từ tiến trình cấp phát tài nguyên cho tiến trình khác loại bỏ chu trình tắc nghẽn Cần giải vấn đề sau: Chọn lựa nạn nhân: tiến trình bị thu hồi tài nguyên ? thu hồi tài nguyên ? Trở lại trạng thái trước tắc nghẽn: thu hồi tài nguyên tiến trình, cần phải phục hồi trạng thái tiến trình trở lại trạng thái gần trước mà khơng xảy tắc nghẽn Tình trạng « đói tài ngun »: bảo đảm khơng có tiến trình ln bị thu hồi tài nguyên ? 6.5 Kết luận chung phòng tránh bế tắc Trạng thái deadlock xảy hai hay nhiều q trình chờ khơng xác định kiện mà gây trình chờ Về nguyên tắc, có ba phương pháp giải deadlock: • Sử dụng số giao thức để ngăn chặn hay tránh deadlock, đảm bảo hệ thống không vào trạng thái deadlock 86 • Cho phép hệ thống vào trạng thái deadlock, phát sau phục hồi • Bỏ qua vấn đề deadlock giả vờ deadlock chưa xảy hệ thống Giải pháp giải pháp dùng hầu hết hệ điều hành bao gồm UNIX Trường hợp deadlock xảy bốn điều kiện cần xảy lúc hệ thống: loại trừ hỗ tương, giữ chờ cấp thêm tài ngun, khơng địi lại tài nguyên, tồn chu trình đồ thị cấp phát tài nguyên Để ngăn chặn deadlock, đảm bảo điều kiện cần khơng xảy Một phương pháp để tránh deadlock mà nghiêm ngặt giải thuật ngăn chặn deadlock có thơng tin trước q trình dùng tài nguyên Thí dụ, giải thuật Banker cần biết số lượng tối đa lớp tài nguyên yêu cầu q trình Sử dụng thơng tin định nghĩa giải thuật tránh deadlock Nếu hệ thống không thực giao thức để đảm bảo deadlock khơng xảy lược đồ phát phục hồi phải thực Giải thuật phát deadlock phải nạp lên để xác định deadlock xảy hay khơng Nếu deadlock phát hệ thống phải phục hồi cách kết thúc số q trình bị deadlock hay địi lại tài nguyên từ số trình bị deadlock Trong hệ thống mà chọn nạn nhân để phụv hồi trạng thái trước chủ yếu dựa sở yếu tố chi phí, việc đói tài nguyên xảy Kết trình chọn khơng hồn thành tác vụ định 87 CÂU HỎI VÀ BÀI TẬP Nêu khái niệm trình (tiến trình) Phân biệt trình với chương trình Vẽ sơ đồ không gian trạng thái Nêu ý nghĩa trạng thái trình Thế lập lịch dài kỳ lập lịch ngắn kỳ Khái niệm ngắt qui trình xử lý ngắt Nêu tiêu chuẩn lập lịch cho CPU Cho trình với thời gian thực tương ứng sau: Quá trình (process) tthực P1 10 P2 P3 P4 P5 Tính thời gian chờ đợi trung bình trình chiến lược FCFS, SJN, RR (với lượng tử thời gian 2) Nêu khái niệm bế tắc điều kiện xảy bế tắc hệ thống HƯỚNG DẪN TRẢ LỜI Tiến trình đoạn chương trình hay đoạn liệu chương trình đưa vào CPU để xử lý Dựa vào khái niệm chương trình tiến trình để phân biệt Vẽ sơ đồ Nêu lên trình trạng thái sơ đồ Nêu phần lập lịch dài kỳ lập lịch ngắn kỳ Ở phần ngắt bước xử lý ngắt giáo trình Xem xét số tiến trình vào xử lý CPU, thời gian chờ tiến trình Áp dụng xem ví dụ chiến lược FCFS, SJN,RR nói để giải 88 Ở phần bế tắc điều khiện xảy bế tắc CHƯƠNG 5: HỆ ĐIỀU HÀNH ĐA XỬ LÝ Mã chương: MH10-05 Mục tiêu: Sau học xong học này, sinh viên có khả năng: 89 - Hiểu khái quát xu sử dụng hệ thống đa xử lý nay, hiểu nét hệ điều hành đa xử lý nhằm trang bị khả tự nghiên cứu tương lai Hệ điều hành đa xử lý tập trung Mục tiêu: Hiểu khái quát xu sử dụng hệ thống đa xử lý 1.1 Hệ thống đa xử lý a Hệ thống nhiều CPU Hiện nay, từ phát triển với tốc độ nhanh cơng nghệ, máy tính ngày phổ dụng xã hội Mức độ thâm nhập máy tính vào sống cao u cầu nâng cao lực máy tính lại ngày trở nên cấp thiết Bộ nhớ ngày rộng lớn; đĩa từ có dung lượng rộng, tốc độ truy nhập ngày cao; hệ thống thiết bị ngoại vi phong phú, hình thức giao tiếp người – máy ngày đa dạng Như nói, CPU tài nguyên thể chủ yếu lực hệ thống máy tính, vấn đề trọng tâm để tăng cường lực hệ thống tăng cường lực CPU Về vấn đề này, nảy sinh giải pháp theo hai hướng: Giải pháp tăng cường lực CPU riêng cho máy máy tính: cơng nghệ vi mạch ngày phát triển lực CPU ngày nâng cao, dự án vi mạch VLSI với hàng triệu, hàng chục triệu transitor Tuy nhiên giải pháp nảy sinh hạn chế kĩ thuật: tốc độ truyền thông tin không vượt qua tốc độ ánh sáng; khoảng cách gần hai thành phần giảm thiểu nhỏ v.v… Song song với giải pháp tăng cường lực CPU giải pháp liên kết nhiều CPU để tạo hệ thống chung có lực đáng kể: việc đưa xử lý song song tạo nhiều lợi điểm Thứ nhất, chia phần nhỏ công việc cho CPU đảm nhận, suất tăng không theo tỷ 90 lệ thuận với hệ số nhân mà cao không thời gian phải thực cơng việc trung gian Giải pháp cịn có lợi điểm tích hợp hệ thống máy có để tạo hệ thống với sức mạnh tăng gấp bội Trong chương này, xem xét việc chọn giải pháp đa xử lý theo nghĩa hệ thống tính tốn tổ hợp khơng CPU mà nhiều CPU máy tính nhiều máy tính hệ thống thống Gọi chung hệ có nhiều CPU hệ đa xử lý b.Phân loại hệ đa xử lý Có số cách phân loại hệ đa xử lý: Ví dụ hệ đa xử lý tập trung tập xử lý siêu máy tính (supercomputer) Đặc trưng hệ thống CPU liên kết với máy tính nhất; Ví dụ hệ đa xử lý phân tán mạng máy tính: mạng gồm nhiều máy tính liên kết đặt vị trí khác nhau, với khoảng cách coi xa tùy ý Phân loại theo đặc tính CPU thành phần: hệ xử lý hệ đa xử lý khơng v.v… Một ví dụ dễ quen thuộc máy vi tính từ 80486 trở có hai CPU (80x86 80x87) hai CPU khơng Siêu máy tính ILLIAC-IV gồm nhiều CPU có đặc trưng giống ví dụ Phân loại theo cách CPU thành phần tiếp nhận xử lý liệu Trong cách phân loại bao gồm máy tính đơn xử lý thông thường: - Đơn câu lệnh, đơn liệu (SISD: single data single instruction) thể máy tính thơng thường; Mỗi lần làm việc, CPU xử lý “một liệu” có câu lệnh thực - Đơn câu lệnh, đa liệu (SIMD: single instruction multiple data): 91 Các xử lý nhịp thời gian thực câu lệnh Có thể lấy ví dụ từ việc cộng hai vector cho trước: Các CPU thành phần thực phép cộng; đổi số tương ứng có CPU; sau đó, chọn tiếp lệnh (chỉ thị) để điều khiển công việc Thông thường có hệ chọn câu lệnh chung CPU thành phần thực hiện: siêu máy tính ILLIAC-IV sử dụng cách thức này, có máy tính có tác dụng lưu giữ hệ điều hành để điều khiển ILLIAC.IV (bộ xử lý ma trận) - Đa câu lệnh, đơn liệu (MISD: multiple instruction single data) Trong máy tính thuộc loại này, hệ thống gồm nhiều CPU, CPU liên kết cách tuần tự: output xử lý input xử lý (ví dụ CRAY-1: Bộ xử lý vector) Các CPU kết nối theo kiểu gọi kết nối “dây chuyền” - Đa liệu, đa câu lệnh (MIMD) Mỗi xử lý có phân tích chương trình riêng; câu lệnh liệu CPU phải đảm nhận; hình dung CPU hoạt động hoàn toàn “độc lập nhau” Các hệ điều hành mạng, hệ điều hành phân tán ví dụ đa liệu, đa câu lệnh Trong nội dung chương này, xem xét cách phân loại dạng tập trung/phân tán song thực chất quan tâm đến hệ đa xử lý tập trung với hệ đa xử lý phân tán, có chuyên đề riêng đáp ứng Chú ý, xu nghiên cứu triển khai hệ thống tính tốn đa xử lý thời nghiên cứu tính tốn cụm mơ hình SIMD, MISD MIMD tương ứng phát triển 1.2 Hệ điều hành đa xử lý tập trung Hệ đa xử lý tập trung hoạt động máy tính có nhiều CPU mà điển hình siêu máy tính: CRAY-1,ILLIAC-IV, Hitachi máy tính nhiều xử lý (máy tính khoa CNTT, trường ĐHKHTNĐHQGHN có hai xử lý) Các tài nguyên khác CPU phân 92 chia cho CPU Trong hệ điều hành đa xử lý, hai tốn lớn kể đến phân phối nhớ phân phối CPU a.Phân phối nhớ Các trình xuất nhớ chung Việc phân phối nhớ tiến hành cho trình theo chế độ điều khiển nhớ cài đặt: phân phối theo chế độ mẻ hay phân phối gián đoạn Để tăng tốc độ làm việc với nhớ (bài toán xử lý trỏ ngồi v.v.) gắn với CPU cache nhớ Phân hai loại thâm nhập cache: tĩnh động Thâm nhập tĩnh: CPU thâm nhập cache tương ứng, không thâm nhập liệu vùng cache CPU khác Thâm nhập động cho phép CPU máy thâm nhập cache CPU khác b.Bài tốn điều khiển CPU Có nhiều CPU, việc điều khiển CPU phân số cách sau: Toàn CPU dành cho trình : trình phân phối CPU, song tự q trình nói nảy sinh q trình con; trình giải CPU Các q trình coi tính tốn đơn giản đó: Máy tính đa xử lý vector chia cơng đoạn trình CPU thực trình (một cơng đoạn) q trình Máy tính đa xử lý ma trận cho phép CPU thực thao tác Về dòng xếp hàng xem xét theo hai mơ hình đây: Mơ hình tĩnh: Hoặc CPU có dịng xếp hàng riêng; tốn gắn với dịng xếp hàng, việc điều khiển dòng xếp hàng độc lập với dòng xếp hàng khác, trình phát sinh gắn với dịng xếp hàng đó; 93 Mơ hình động: tồn hệ thống gồm hay vài dịng xếp hàng, trình xếp lên CPU rỗi (có thể sử dụng kiểu liệu semaphore nhiều giá trị để phân phối CPU cho trình này) Hệ điều hành đa xử lý phân tán Mục tiêu: hiểu nét hệ điều hành đa xử lý phân tán nhằm trang bị khả tự nghiên cứu tương lai 2.1 Giới thiệu hệ phân tán Trong phần phân loại hệ thống đa xử lý, ý cách phân loại theo vị trí đặt CPU (tập trung phân tán) hệ phân tán xây dựng từ “ máy tính” rời rạc nhau: vị trí máy tính ngun vẹn, có đầy đủ chức xử lý, lưu trữ truyền liệu Hệ tập trung cho phép xử lý song song theo thao tác theo q trình, đó, hệ phân tán xử lý song song theo q trình: q trình xử lý máy tính khác Việc phân chia trình cho CPU thành phần theo chức CPU (server/client) theoo lịch phân công hệ thống chung Do phân tán nên vấn đề truyền dẫn liệu đóng vai trị quan trọng hệ phân tán Đây lí điển hình để cách thức xử lý song song hệ phân tán theo trình mà khơng phải theo phép tốn 2.2 Đặc điểm hệ phân tán Hệ thống phân tán (kéo theo hình thành hệ điều hành phân tán) phát sinh nhu cầu tự nhiên việc nâng cao lực tài nguyên hệ thống (sức mạnh hệ thống tính tốn sở liệu chung v.v ) Giải pháp phân tán có tác dụng phát huy lực chung 94 toàn hệ thống giải tốn với kích thước tốn tăng lên đảm bảo hoạt động bình thường máy tính thành viên Hệ thống phân tán thiết lập hệ thống hoàn tồn thiết kế theo mơ hình phân tán xây dựng hệ phân tán dựa tài nguyên địa phương (máy tính, sở liệu) sẵn có Một trường hợp điển hình, hệ phân tán dùng để quản trị hệ thống sở liệu lớn Trong hệ sở liệu phân tán, tính dư thừa thơng tin lại quan tâm ý khơng tới khía cạnh gây khó khăn tính đến tính qn liệu mà cịn tới khía cạnh thuận lợi vần đề an tồn: lưu trữ kép (ngồi cịn số sao) để phục hồi xảy cố hệ thống Để đảm bảo tính quán hệ thống định kỳ “làm tươi” thông tin hệ thống quản lý Như biết, toán lập lịch cho hệ thống chung phức tạp máy tính với CPU, hệ phân tán, tốn nói phức tạp (ngay hệ đồng nhất) người ta thường chọn phương án đơn giản Các nội dung kiến thức hệ thống phân tán trình bày chi tiết giáo trình chuyên đề” mạng hệ phân tán” Bản chất hệ điều hành mơ hình phân tán hệ điều hành đa chương trình Do tính chất khơng máy tính địa phương có liên quan chặt chẽ đến đường truyền thơng, tốn lập lịch hệ thống chương trình điều khiển phức tạp Các thuật toán điều khiển chọn lựa đủ đơn giản ln tốn thời nghiên cứu CÂU HỎI VÀ BÀI TẬP Trình bày mục đích hệ nhiều CPU Hệ phân tán gì? Đặc điểm hệ phân tán 95 HƯỚNG DẪN TRẢ LỜI Tăng cường lực CPU giải pháp liên kết nhiều CPU để tạo hệ thống chung có lực đáng kể: việc đưa xử lý song song tạo nhiều lợi điểm Hệ phân tán tập hợp máy tính ghép nối với đường truyền theo tiêu chuẩn qui định trước Đặc điểm hệ phân tán: tạo khả làm việc phân tán, nâng cao việc khai thác xử lý liệu, tăng độ tin cậy hệ thống, chia sẻ tài nguyên 96 TÀI LIỆU THAM KHẢO [1] TS Hà Quang Thụy, Giáo trình Nguyên lý hệ điều hành , NXB KH & KT, 2005 [2] Trần Hồ Thủy Tiên, Nguyên lý hệ điều hành, Đại học Đà Nẵng, Năm 2007 [3] Đặng Vũ Tùng, Giáo trình Nguyên lý hệ điều hành,Nhà xuất Hà Nội, 2005 [4] James R.Pinkert, Operating systems, California State University

Ngày đăng: 06/05/2016, 19:27

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan