Giáo trình nguyên lý hệ điều hành phần 2

70 478 0
Giáo trình nguyên lý hệ điều hành  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

CHƯƠNG :QUẢN LÝ BỘ NHỚ Bộ nhớ thiết bị lưu trữ thông qua CPU trao đổi thông tin với môi trường ngoài, nhu cầu tổ chức, quản lý nhớ nhiệm vụ trọng tâm hàng đầu hệ điều hành Bộ nhớ tổ chức mảng chiều từ nhớ (word), từ nhớ có địa Việc trao đổi thông tin với môi trường thực thông qua thao tác đọc ghi liệu vào địa cụ thể nhớ Hầu hết hệ điều hành đại cho phép chế độ đa nhiệm nhằm nâng cao hiệu suất sử dụng CPU Tuy nhiên kỹ thuật lại làm nảy sinh nhu cầu chia sẻ nhớ tiến trình khác Vấn đề nằm chỗ : « nhớ hữu hạn yêu cầu nhớ vô hạn » 3.1 Tổ chức vùng nhớ Tốc độ nhanh Dung lượng nhỏ Register Cache1 SRAM Cache2 Main memory Tốc độ chậm DRAM Disk Dung lượng lớn Hình 3.1 3.2 Mục tiêu việc quản lý vùng nhớ Cấp phát vùng nhớ cho tiến trình có yêu cầu thu hồi vùng nhớ tiến trình thực xong Quản lý vùng nhớ rỗi, vùng nhớ bận - Tại thời điểm lưu giữ nhiều tiến trình đồng thời - Chuyển đổi địa logic địa vật lý (physic) 75 - Chia sẻ thông tin: làm phép hai tiến trình chia sẻ thông tin nhớ? - Ngăn chặn tiến trình xâm phạm đến vùng nhớ cấp phát cho tiến trình khác 3.3 Không gian địa không gian vật lý Một hướng tiếp cận trung tâm nhằm tổ chức quản lý nhớ cách hiệu qủa đưa khái niệm không gian địa xây dựng không gian nhớ vật lý, việc tách rời hai không gian giúp hệ điều hành dễ dàng xây dựng chế chiến lược quản lý nhớ hữu hiệu : Địa logic – gọi địa ảo , địa xử lý tạo Địa vật lý - địa thực tế mà trình quản lý nhớ nhìn thấy thao tác Không gian địa – tập hợp tất địa ảo phát sinh chương trình Không gian vật lý – tập hợp tất địa vật lý tương ứng với địa ảo Địa ảo địa vật lý phương thức kết buộc địa vào thời điểm biên dịch vào thời điểm nạp Nhưng có khác biệt địa ảo địa vật lý phương thức kết buộc vào thời điểm xử lý MMU (memory-management unit) chế phần cứng sử dụng để thực chuyển đổi địa ảo thành địa vật lý vào thời điểm xử lý Chương trình người sử dụng thao tác địa ảo, không nhìn thấy địa vật lý Địa thật ứng với vị trí liệu bô nhớ xác định thực truy xuất đến liệu 3.4 Cấp phát liên tục Tiến trình nạp vào vùng nhớ liên tục đủ lớn để chứa toàn tiến trình Không cho phép chương trình khác sử dụng vùng nhớ dành cho chương trình 3.4.1 Hệ đơn chương 76 Trong phương pháp nhớ chia sẻ cho hệ điều hành tiến trình người sử dụng Tại thời điểm, phần nhớ hệ điều hành chiếm giữ, phần lại thuộc tiến trình người dùng hệ thống Tiến trình toàn quyền sử dụng nhớ dành cho Hình 3.2 Tổ chức nhớ hệ thống đơn chương Để bảo vệ hệ điều hành khỏi xâm phạm tác động chương trình người dung, sử dụng ghi giới hạn lưu địa cao vùng nhớ cấp cho hệ điều hành Tất địa tiến trình người dung truy xuất so sánh với nội dung ghi giới hạn, địa lớn giới hạn cho phép hợp lệ, ngược lại ngắt phát sinh để báo cho hệ thống truy xuất bất hợp lệ Khi nhớ tổ chức theo cách thức này, xử lý tiến trình thời điểm Quan sát hoạt động tiến trình, nhận thấy nhiều tiến trình trải qua phần lớn thời gian để chờ thao tác nhập/xuất hoàn thành Trong suốt thời gian này, CPU trạng thái rỗi Trong trường hợp thế, hệ thống đơn chương không cho phép sử dụng hiệu CPU Ngoài ra, đơn chương không cho phép nhiều người sử dụng làm việc đồng thời theo chế tương tác Để nâng cao hiệu suất sử dụng CPU, cần cho phép chế độ đa chương mà tiến trình chia sẻ CPU với để hoạt động đồng hành 3.4.2 Hệ thống đa chương với phân vùng cố định Một phương pháp đơn giản để cấp phát nhớ chia nhớ thành phân vùng có kích thước cố định Các phân vùng khác có kích thước khác hay Mỗi phân vùng chứa tiến trình Do đó, cấp độ đa chương giới hạn số lượng phân vùng Trong phương pháp đa phân vùng, phân vùng rảnh, tiến trình chọn từ hàng đợi nhập 77 nạp vào phân vùng trống Khi tiến trình kết thúc, phân vùng trở nên sẳn dùng cho tiến trình khác Có hai tiếp cận để tổ chức hàng đợi: • Sử dụng nhiều hàng đợi: phân vùng có hàng đợi tương ứng Khi tiến trình tạo lập đưa vào hàng đợi phân vùng có kích thước nhỏ đủ lớn để chứa tiến trình Cách tổ chức có khuyết điểm trường hợp hàng đợi số phân vùng lớn trống hàng đợi phân vùng nhỏ lại đầy, buộc tiến trình hàng đợi phải chờ cấp phát nhớ, sử dụng không hiệu nhớ • Sử dụng hàng đợi: tất tiến trình đặt hàng đợi Khi có phân vùng trống, tiến trình hàng đợi có kích thước phù hợp đặt vào phân vùng cho xử lý Hình 3.3 Cấp phát đa vùng với phân vùng cố định Trong trường hợp tiến trình có kích thước nhỏ phân vùng tự lớn dẫn tới lãng phí nhớ Giải pháp: Khi có phân vùng rỗi tìm toàn hàng đợi tiến trình lớn đặt vừa rong phân vùng này, nạp tiến trình vào nhớ 78 Xuất hiện tượng phân mảnh nội vi (internal fragmentation): kích thước tiến trình nạp nhỏ kích thước phân vùng chứa tiến trình, phần nhớ không sử dụng đến phân vùng gọi phân mảnh nội vi Nhận xét: -Mức độ đa chương hệ thống bị giới hạn số lượng phân vùng - Sử dụng nhớ không hiệu quả: Tổng nhớ nhỏ tự do, rời rạc lớn sử dụng để nạp tiến trình khác Tiến trình có kích thước lớn phân vùng lớn không thực - Ưu điểm: đơn giản, dễ tổ chức bảo vệ, giảm thời gian tìm kiếm 3.4.3 Hệ thống đa chương với phân vùng động Hệ điều hành giữ bảng hiển thị phần nhớ rỗi phần bận Ban đầu, tất nhớ sẵn dùng cho tiến trình người dùng, xem khối lớn nhớ sẵn dùng Khi tiến trình đến cần nhớ, hệ điều hành tìm kiếm vùng trống đủ lớn cho tiến trình Nếu tìm thấy, hệ điều hành cấp phát cho tiến trình phần nhớvừa với kích thước tiến trình, phần nhớ lại dành cho tiến trình khác Hình 3.4 Cấp phát đa vùng với phân vùng động 79 Thông thường, tập hợp vùng trống có kích thước khác phân tán khắp nhớ thời điểm cho Khi tiến trình đến yêu cầu nhớ, hệ thống tìm tập hợp vùng trống đủ lớn cho tiến trình Nếu vùng trống lớn, chia làm hai: phần cấp cho tiến trình đến; phần lại trả tập hợp vùng trống Nếu vùng trống nằm kề với vùng trống khác, vùng trống nằm kề gom lại để tạo thành vùng trống lớn Xuất hiện tượng phân mảnh ngoại vi( external fragmentation ) : tiến trình vào khỏi hệ thống, xuất khe hở tiến trình Đây khe hở tạo kích thước tiến trình nạp nhỏ kích thước vùng nhớ giải phóng tiến trình kết thúc khỏi hệ thống , không gian nhớ trống bị phân rã thành mảnh nhớ nhỏ Hiện tượng dẫn đến tình tổng vùng nhớ trống đủ để thoả mãn yêu cầu, vùng nhớ lại không liên tục ! Người ta áp dụng kỹ thuật « dồn nhớ » (memory compaction ) để kết hợp mảnh nhớ nhỏ rời rạc thành vùng nhớ lớn liên tục Tuy nhiên, kỹ thuật đòi hỏi nhiều thời gian xử lý, ra, kết buộc địa phải thực vào thời điểm xử lý, tiến trình bị di chuyển trình dồn nhớ Thuật toán đơn giản dịch chuyển tiến trình phía đầu nhớ Ví dụ: 300K HDH 300K HDH 300K HDH 300K HDH 500K P1 500K P1 500K P1 500K P1 600K P2 600K P2 600K P2 600K P2 1000K 1200K 1500K 800K P3 P3 P3 P4 1200K P4 P4 Cấp phát gốc 1000K 1200K P4 1900K 2100K P4 P3 2100K P3 P3 P4 P3 1500K 1900K 1900K 2100K 2100K Dịch chuyển 600K Dịch chuyển 400K P4 P4 P3 Dịch chuyển 200K Hình 3.5 Vấn đề cấp phát động 80 Lựa chọn vùng nhớ tự danh sách vùng nhớ tự để cấp phát cho tiến trình Có chiến lược phổ biến dùng: • First-fit: cấp phát vùng nhớ tự đủ lớn Tìm kiếm bắt đầu đầu từ danh sách tập hợp vùng 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 vùng trống đủ lớn • Best-fit: cấp phát vùng nhớ tự nhỏ đủ lớn Chúng ta phải tìm toàn danh sách, trừ danh sách xếp thứ tự theo kích thước Worst-fit: cấp phát vùng nhớ tự lớn đủ lớn để chứa tiến trình Chúng ta phải tìm toàn danh sách trừ xếp theo thứ tự kích thước Quản lý khối rỗi bận - Quản lý đồ bit: Bộ nhớ chia thành đơn vị cấp phát, đơn vị ánh xạ tới bit đồ bit Giá trị bit xác định trạng thái đơn vị nhớ đó: tự do, cấp phát Khi cần nạp tiến trình có kích thước k đơn vị, hệ thống tìm đồ bit dãy k bit có giá trị Kích thước đơn vị cấp phát vấn đề lớn thiết kế Nếu kích thước đơn vị cấp phát nhỏ làm tăng kích thước đồ bit Ngược lại, kích thước đơn vị cấp phát lớn gây hao phí cho đơn vị cấp phát sau Đây giải pháp đơn giản thực chậm nên dùng Hình 3.6 Quản lý nhớ đồ bit 81 - Quản lý danh sách liên kết: Dùng danh sách liên kết để quản lý phân đoạn nhớ cấp phát phân đoạn tự do.Danh sách liên kết gồm nhiều nút liên tiếp Mỗi nút gồm bit đầu để xác định phân đoạn vùng trống (H) hay tiến trình (P), sau từ để địa bắt đầu, chiều dài điểm tới mục Việc xếp phân đoạn theo địa hay theo kích thước tuỳ thuộc vào giải thuật quản lý nhớ Hình 3.7 Quản lý nhớ danh sách liên kết 3.5 Cấp phát không liên tục Cấp phát không liên tục chương trình phân chia thành mộ 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 3.5.1 Phân trang ( Paging) Ý tưởng: Hình 3.8 Mô hình nhớ phân trang 82 Phân nhớ vật lý thành khối (block) có kích thước cố định nhau, gọi khung trang (page frame) Không gian địa chia thành khối có kích thước với khung trang, gọi trang (page) Khi cần nạp tiến trình để xử lý, trang tiến trìnhsẽ nạp vào khung trang trống Một tiến trình kích thước N trang yêu cầu N khung trang tự Cơ chế MMU kỹ thuật phân trang: Hình 3.9 Cơ chế phần cứng hỗ trợ phân trang Cơ chế phần cứng hỗ trợ thực chuyển đổi địa chế phân trang bảng trang (pages table): Mỗi tiến trình có bảng trang Số phần tử bảng trang=số trang không gian địa tiến trình Mỗi phần tử bảng trang mô tả trang cho biết địa bắt đầu vị trí lưu trữ trang tương ứng nhớ vật lý ( số hiệu khung trang nhớ vật lý chứa trang ) 83 Hình 3.10 Chuyển đổi địa chỉ: Địa logic Địa vật lý số hiệu trang (p): sử dụng mục đến phần tử tương ứng bảng trang địa tương đối trang (d): kết hợp với địa bắt đầu trang để tạo địa vật lý mà trình quản lý nhớ sử dụng Số hiệu khung trang (f):địa bắt đầu khung trang nhớ vật lý Kích thước trang phần cứng qui định Để dễ phân tích địa ảo thành số hiệu trang địa tương đối, kích thước trang thông thường lũy thừa (biến đổi phạm vi 512 bytes 8192 bytes) Nếu kích thước không gian địa 2m kích thước trang n, m-n bits cao địa ảo biễu diễn số hiệu trang, n bits thấp cho biết địa tương đối trang Cài đặt bảng trang: - Với bảng trang có kích thước nhỏ, trường hợp đơn giản nhất, bảng trang cài đặt trongmột tập ghi 84 Thứ ba cung cấp khối liệu độc lập thiết bị ví dụ đĩa khác có kích thước sector khác điều gây khó khăn cho phần mềm người sử dụng lớp Chức cung cấp khối liệu logic độc lập với kích thước sector vật lý Thứ tư cung cấp buffer để hỗ trợ cho đồng hóa trình hoạt động hệ thống Ví dụ buffer cho bàn phím Thứ năm định vị lưu trữ thiết bị khối Thứ sáu cấp phát giải phóng thiết bị tận hiến Cuối thông báo lỗi cho lớp bên từ lỗi device driver báo 5.3.4 Phần mềm vào/ra phạm vi người sử dụng Hầu hết phần mềm nhập/xuất bên hệ điều hành phần nhỏ chúng chứa thư viện liên kết với chương trình người sử dụng chương trình thi hành bên hạt nhân Lời gọi hệ thống, bao gồm lời gọi hệ thống nhập/xuất thường thực hàm thư viện Ví dụ chương trình C có lệnh count = write(fd, buffer, nbytes) ; Hàm thư viện write địch liên kết dạng nhị phân nằm nhớ thi hành Tập hợp tất hàm thư viện rõ ràng phần hệ thống nhập/xuất Không phải tất phần mềm nhập/xuất chứa hàm thư viện, có loại quan trọng khác gọi hệ thống spooling dùng để khai thác tối đa thiết bị nhập/xuất hệ thống đa chương Các hàm thư viện chuyển tham số thích hợp cho lời gọi hệ thống hàm thư viện thực việc định dạng cho nhập xuất lệnh printf C Thư viện nhập/xuất chuẩn chứa số hàm có chức nhập/xuất tất chạy chương trình người dùng Chức spooling tránh trường hợp tiến trình truy xuất thiết bị, chiếm giữ thiết bị sau không làm khoảng thời gian tiến trình khác bị ảnh hưởng truy xuất thiết bị Một ví dụ 130 spooling device line printer Spooling sử dụng hệ thống mạng hệ thống e-mail chẳng hạn 131 Chương 6: HỆ THỐNG QUẢN LÝ FILE Trong hầu hết ứng dụng, tập tin thành phần chủ yếu Cho dù mục tiêu ứng dụng phải bao gồm phát sinh sử dụng thông tin Thông thường đầu vào ứng dụng tập tin đầu tập tin cho việc truy xuất người sử dụng chương trình khác sau 6.1 File khái niệm liên quan Tập tin Máy tính lưu giữ thông tin thiết bị lưu trữ khác đĩa từ, băng từ, đĩa quang…Để cho máy tính trở nên thuận tiện dễ sử dụng, HĐH cung cấp cách lưu giữ thông tin logic thiết bị lưu giữ file (tập tin) Tập tin đơn vị lưu trữ thông tin nhớ Các tiến trình đọc hay tạo tập tin cần thiết Thông tin tập tin vững bền không bị ảnh hưởng xử lý tạo hay kết thúc tiến trình, user thật muốn xóa Tập tin quản lý hệ điều hành Các thuộc tính file - Tên tập tin : Tập tin chế trừu tượng để quản lý đối tượng phải có tên Khi tiến trình tạo tập tin, đặt tên, tiến trình kết thúc tập tin tồn truy xuất tiến trình khác với tên tập tin Cách đặt tên tập tin hệ điều hành khác nhau, đa số hệ điều hành cho phép sử dụng chữ để đặt tên tập tin ctdl, caycb, tamhghau v.v…, thường thường ký tự số ký tự đặc biệt sử dụng baitap2…, Hệ thống tập tin có hay không phân biệt chữ thường chữ hoa Ví dụ : UNIX phân biệt chữ thường hoa MS-DOS không phân biệt Nhiều hệ thống tập tin hỗ trợ tên tập tin gồm phần phân cách dấu ‘.’ mà phần sau gọi phần mở rộng Ví dụ : vidu.txt Trong MS-DOS tên tập tin có từ đến ký tư, phần mở rộng có từ đến ký tự Trong UNIX có nhiều phân cách prog.c.Z Một số kiểu mở rộng thông thường : 132 .bak, bas, bin, c, dat, doc, ftn, hlp, lib, obj, pas, tex, txt Trên thực tế phần mở rộng có hữu ích số trường hợp, ví dụ có trình dịch C nhận biết tập tin có phần mở rộng C Loại File: thể phần mở rộng cách thực file Loại File Excutable Object Source code Batch Text Library Print or view Archive Phần mở rộng Exe, com, bin Obj,o C, pas, asm Bat, sh Txt, doc Lib,a Ps, pdf, gif Chức Arc, zip, tar Nhóm file file, lưu giữ sẵn sàng để chạy ngôn ngữ máy dịch ngôn ngữ máy, không liên kết Mã nguồn xử lý theo lô đocữ liệu văn bản, tài liệu Thư viện In ấn hiển thị Ngoài tên liệu, hệ điều hành cung cấp thêm số thông tin cho tập tin gọi thuộc tính Các thuộc tính thông dụng số hệ thống tập tin : Tên thuộc tính Bảo vệ Mật Người tạo Người sở hữu Chỉ đọc ẩn Ý nghĩa Ai truy xuất cách Mật cần thiết để truy xuất tập tin Id người tạo tập tin Người sở hữu đọc ghi, đọc bình thường, không hiển thị liệt kê Hệ thống bình thường, tập tin hệ thống Lưu trữ đuợc backup, cần backup ASCII/binary tập tin văn bản, tập tin nhị phân Truy xuất ngẫu nhiên truy xuất tuần tự, truy xuất ngẫu nhiên Temp bình thường, bị xóa tiến trình kết thúc Khóa không khóa, khác khóa Độ dài record Số byte record Vị trí khóa Offset khóa record Giờ tạo Ngày tạo tập tin Thời gian truy cập Ngày truy xuất tập tin gần 133 cuối Thời gian thay đổi Ngày thay đổi tập tin gần cuối Kích thước thời Số byte tập tin Kích thước tối đa Số byte tối đa tập tin Hình 8.3 Một số thuộc tính thông dụng tập tin 6.2 Thư mục: khái niệm, hệ thống thư mục, tổ chức bên Thư mục Thư mục nơi để lưu giữ tập file Để lưu trữ dãy tập tin, hệ thống quản lý tập tin cung cấp thư mục, mà nhiều hệ thống coi tập tin Hệ thống thư mục theo cấp bậc Một thư mục thường thường chứa số entry, entry cho tập tin Mỗi entry chứa tên tập tin, thuộc tính địa đĩa lưu liệu entry chứa tên tập tin trỏ, trỏ tới cấu trúc, có thuộc tính vị trí lưu trữ tập tin Khi tập tin mở, hệ điều hành tìm thư mục tìm thấy tên tập tin mở Sau xác định thuộc tính địa lưu trữ đĩa đưa vào bảng nhớ Những truy xuất sau thực nhớ Số lượng thư mục hệ thống khác Thiết kế đơn giản hệ thống có thư mục đơn(còn gọi thư mục cấp), chứa tất tập tin tất người dùng, cách dễ tổ chức khai thác dễ gây khó khăn có nhiều người sử dụng có nhiều tập tin trùng tên Ngay trường hợp có người sử dụng, có nhiều tập tin việc đặt tên cho tập tin không trùng lắp vấn đề khó Cách thứ hai có thư mục gốc có nhiều thư mục con, thư mục chứa tập tin người sử dụng (còn gọi thư mục hai cấp), cách tránh trường hợp xung đột tên khó khăn với người dùng có nhiều tập tin Người sử dụng muốn nhóm ứng dụng lại cách logic 134 Từ đó, hệ thống thư mục theo cấp bậc (còn gọi thư mục) hình thành với mô hình thư mục chứa tập tin thư mục tiếp tục hình thành thư mục hệ điều hành DOS, Windows, v v Ngoài ra, số hệ điều hành nhiều người dùng, hệ thống xây dựng hình thức khác cấu trúc thư mục cấu trúc thư mục theo đồ thị có chu trình cấu trúc thư mục theo đồ thị tổng quát Các cấu trúc cho phép người dùng hệ thống liên kết với thông qua thư mục chia sẻ Hình 6.1 135 Hình 6.2 Hệ thống thư mục theo cấp bậc Đường dẫn : Khi hệ thống tập tin tổ chức thành thư mục, có hai cách để xác định tên tập tin Cách thứ đường dẫn tuyệt đối, tập tin gán đường dẫn từ thư mục gốc đến tập tin Ví dụ : /usr/ast/mailbox Dạng thứ hai đường dẫn tương đối, dạng có liên quan đến khái niệm thư mục hành hay thư mục làm việc Người sử dụng quy định thư mục thư mục hành Khi đường dẫn không thư mục gốc mà liên quan đến thư mục hành Ví dụ, thư mục hành /usr/ast tập tin với đường dẫn tuyệt đối /usr/ast/mailbox dùng đơn giản mailbox Trong phần lớn hệ thống, tiến trình có thư mục hành riêng, tiến trình thay đổi thư mục làm việc kết thúc, thay đổi để lại hệ thống tập tin Nhưng hàm thư viện thay đổi đường dẫn sau không đổi lại có ảnh hưởng đến tiến trình Hầu hết hệ điều hành hỗ trợ hệ thống thư mục theo cấp bậc với hai entry đặc biệt cho thư mục "." " " "." thư mục hành, " " thư mục cha Các thao tác thư mục : Tạo : thư mục tạo, rỗng, ngoại trừ "." " " đặt tự động hệ thống Xóa :xoá thư mục, có thư mục rỗng bị xóa, tư mục chứa "." " " coi thư mục rỗng Mở thư mục :thư mục đọc Ví dụ để liệt kê tất tập tin thư mục, chương trình liệt kê mở thư mục đọc tên tất tập tin chứa Trước thư mục đọc, phải mở trước Đóng thư mục :khi thư mục đọc xong, phải đóng thư mục để giải phóng vùng nhớ Đọc thư mục :Lệnh trả entry thư mục mở Thông thường đọc thư mục lời gọi hệ thống READ, lệnh đọc thư mục luôn trả entry dạng chuẩn 136 Đổi tên :cũng tập tin, thư mục đổi tên Liên kết :kỹ thuật cho phép tập tin xuất nhiều thư mục khác Khi có yêu cầu, liên kết tạo tập tin đường dẫn cung cấp Bỏ liên kết :Nếu tập tin liên kết với thư mục, bị loại bỏ hoàn toàn khỏi hệ thống, nhiều bị giảm số liên kết 6.3 Các phương pháp lưu giữ file Định vị liên tiếp : Lưu trữ tập tin dãy khối liên tiếp Phương pháp có ưu điểm : thứ nhất, dể dàng cài đặt Thứ hai, dể dàng thao tác toàn tập tin đọc từ đĩa thao tác đơn giản không cần định vị lại Phương pháp có khuyết điểm : không linh động trừ biết trước kích thước tối đa tập tin Sự phân mảnh đĩa, gây lãng phí lớn Định vị danh sách liên kết : Hình 6.3 Định vị danh sách liên kết 137 Mọi khối cấp phát, không bị lãng phí trường hợp phân mảnh directory entry cần chứa địa khối Tuy nhiên khối liệu bị thu hẹp lại truy xuất ngẫu nhiên chậm Danh sách liên kết sử dụng index : Tương tự hai thay dùng trỏ dùng bảng index Khi toàn khối chứa liệu Truy xuất ngẫu nhiên dễ dàng Kích thước tập tin mở rộng Hạn chế bị giới hạn kích thước nhớ Hình 6.4 Bảng mục danh sách liên kết I-nodes : Một I-node bao gồm hai phần Phần thứ thuộc tính tập tin Phần lưu trữ thông tin liên quan đến tập tin kiểu, người sở hữu, kích thước, v.v Phần thứ hai chứa địa khối liệu Phần chia làm hai phần nhỏ Phần nhỏ thứ bao gồm 10 phần tử, phần tử chứa địa khối liệu tập tin Phần tử thứ 11 chứa địa gián tiếp cấp (single indirect), chứa địa khối, khối chứa bảng từ 10 đến 232 phần tử mà phần tử chứa địa khối liệu Phần tử thứ 12 chứa địa gián tiếp cấp (double indirect), 138 chứa địa bảng khối single indirect Phần tử thứ 13 chứa địa gián tiếp cấp (double indirect), chứa địa bảng khối double indirect Cách tổ chức tương đối linh động Phương pháp hiệu trường hợp sử dụng để quán lý hệ thống tập tin lớn Hệ điều hành sử dụng phương pháp Unix (Ví dụ : BSD Unix) Hình 6.5 Cấu trúc I-node 6.4 Các yêu cầu quản lý file - Người sử dụng dễ dàng tạo, sửa, thêm, bớt, xoá file - Người sử dụng chia sẻ file cho người sử dụng khác - Người sử dụng truyền thông tin file lẫn - Người sử dụng lấy lại, lưu giữ file cách dễ dàng - Người sử dụng ngăn chặn hành vi xâm phạm đến file thực chế độ bảo vệ file 139 - Có giao diện sử dụng file dễ dàng 6.5 Các thao tác file Tạo : tập tin tạo chưa có liệu Mục tiêu chức thông báo cho biết tập tin tồn thiết lập số thuộc tính Xóa :khi tập tin không cần thiết nữa, xóa để tăng dung lượng đĩa Một số hệ điều hành tự động xoá tập tin sau khoảng thời gian n ngày Mở : trước sử dụng tập tin, tiến trình phải mở Mục tiêu mở cho phép hệ thống thiết lập số thuộc tính địa đĩa nhớ để tăng tốc độ truy xuất Đóng : chấm dứt truy xuất, thuộc tính địa đĩa không cần dùng nữa, tập tin đóng lại để giải phóng vùng nhớ Một số hệ thống hạn chế tối đa số tập tin mở tiến trình Đọc : đọc liệu từ tập tin vị trí thời đầu đọc, nơi gọi cho biết cần liệu vị trí buffer lưu trữ Ghi : ghi liệu lên tập tin từ vị trí thời đầu đọc Nếu cuối tập tin,kích thước tập tin tăng lên, tập tin, liệu bị ghi chồng lên Thêm : gần giống WRITE liệu ghi vào cuối tập tin Tìm :dùng để truy xuất tập tin ngẫu nhiên Khi xuất lời gọi hệ thống, vị trí trỏ vị trí hành di chuyển tới vị trí cần thiết Sau liệu đọc ghi vị trí Lấy thuộc tính :lấy thuộc tính tập tin cho tiến trình Thiết lập thuộc tính :thay đổi thuộc tính tập tin sau thời gian sử dụng Đổi tên :thay đổi tên tập tin tồn 6.6 Tổ chức file, truy nhập file Cấu trúc tập tin : Gồm loại : 140 Dãy byte không cấu trúc : hệ điều hành nội dung tập tin:MS-DOS UNIX sử dụng loại Dãy record có chiều dài cố định Cấu trúc : gồm record, không cần thiết có độ dài, record có trường khóa giúp cho việc tìm kiếm nhanh Tập tin lưu trữ thông tin Khi tập tin sử dụng, thông tin đưa vào nhớ máy tính Có nhiều cách để truy xuất chúng Một số hệ thống cung cấp phương pháp truy xuất, số hệ thống khác, IBM chẳng hạn cho phép nhiều cách truy xuất Kiểu truy xuất tập tin đơn giản truy xuất Tiến trình đọc tất byte tập tin theo thứ tự từ đầu Các trình soạn thảo hay trình biên dịch truy xuất tập tin theo cách Hai thao tác chủ yếu tập tin đọc ghi Thao tác đọc đọc mẫu tin tập tin tự động tăng trỏ tập tin Thao tác ghi tương tự Tập tin tự khởi động lại từ vị trí số hệ thống tập tin cho phép di chuyển trỏ tập tin tới lui n mẫu tin Truy xuất kiểu thuận lợi cho loại băng từ cách truy xuất thông dụng Truy xuất cần thiết cho nhiều ứng dụng Có hai cách truy xuất Cách truy xuất thứ thao tác đọc bắt đầu vị trí đầu tập tin, cách thứ hai có thao tác đặc biệt gọi SEEK cung cấp vị trí thời làm vị trí bắt đầu Sau tập tin đọc từ vị trí bắt đầu Hình 6.6 Truy xuất tập tin Một kiểu truy xuất khác truy xuất trực tiếp Một tập tin có cấu trúc mẫu tin logic có kích thước nhau, cho phép chương trình đọc ghi nhanh chóng mà không cần theo thứ tự Kiểu truy xuất dựa mô hình đĩa Đĩa cho phép truy xuất ngẫu nhiên khối liệu tập tin Truy xuất trực tiếp sử dụng trường hợp phải truy xuất khối lượng thông tin lớn sở 141 liệu chẳng hạn Ngoài có số cách truy xuất khác dự kiểu truy xuất truy xuất theo mục 6.7 Độ an toàn hệ thống file Một hệ thống tập tin bị hỏng nguy hiểm máy tính bị hỏng hư hỏng thiết bị chi phí hệ thống tập tin ảnh hưởng đến phần mềm Hơn hệ thống tập tin chống lại hư hòng phần cứng gây ra, chúng phải cài đặt số chức để bảo vệ Quản lý khối bị hỏng Đĩa thường có khối bị hỏng trình sử dụng đặc biệt đĩa cứng khó kiểm tra hết tất Có hai giải pháp : phần mềm phần cứng Phần cứng dùng sector đĩa để lưu giữ danh sách khối bị hỏng Khi kiểm soát tực lần đầu tiên, đọc khối bị hỏng dùng khối thừa để lưu giữ Từ không cho truy cập khối hỏng Phần mềm hệ thống tập tin xây dựng tập tin chứa khối hỏng Kỹ thuật loại trừ chúng khỏi danh sách khối trống, không cấp phát cho tập tin Backup Mặc dù có chiến lưọc quản lý khối hỏng, công việc quan trọng phải backup tập tin thường xuyên Tập tin đĩa mềm backup cách chép lại toàn qua đĩa khác Dữ liệu đĩa cứng nhỏ backup băng từ Đối với đĩa cứng lớn, việc backup thường tiến hành Một chiến lược dể cài đặt lãng phí đĩa chia đĩa cứng làm hai phần phần liệu phần backup Mỗi tối, liệu từ phần liệu chép sang phần backup 142 Hình 6.7 Backup Tính không đổi hệ thống tập tin Một vấn đề độ an toàn tính không đổi Khi truy xuất tập tin, trình thực hiện, có xảy cố làm hệ thống ngừng hoạt động đột ngột, lúc hàng loạt thông tin chưa cập nhật lên đĩa Vì lân khởi động ,hệ thống thực việc kiểm tra hai phần khối tập tin Việc kiểm tra thực , phát lỗi tiến hành sữa chữa cho trường hợp cụ thể: Hình 6.8 Trạng thái hệ thống tập tin 143 Tài liệu tham khảo: [1] [2] [3] [4] [5] “Tập slide giảng” Bộ môn Các hệ thống thông tin “Operating System Concepts” A Silberschatz, P B Galvin, G Gagne, Wiley & Sons, 2002 “Operating Systems”, H M Deitel, P J Deitel and D R Choffnes, Pearson Education International, 2004 “Modern Operating Systems” Andrew S Tanenbaum, Prentice-Hall International, 2001 “Operating Systems – Internals and Design Principles” William Stallings, Pearson Education International, 2005 144 [...]... trang phát sinh 1 1 2 1 2 3 1 2 3 * * * 4 1 2 3 4 * 1 1 2 3 4 2 1 2 3 4 5 5 2 3 4 * 1 5 1 3 4 * 2 5 1 2 4 * b) Thuật toán tối ưu Tiếp cận: Thay thế trang sẽ lâu được sử dụng nhất trong tương lai Ví dụ : sử dụng 3 khung trang, khởi đầu đều trống: 7 7 0 7 0 * * 1 7 0 1 * 2 2 0 1 * 0 2 0 1 3 2 0 3 * 0 2 0 3 4 2 4 3 * 2 2 4 3 3 2 4 3 0 2 0 3 * 3 2 0 3 2 2 0 3 1 2 0 1 * 2 2 0 1 0 2 0 1 1 2 0 1 7 7 0 1 * 0... nhanh chóng gây ra lỗi trang 1 02 Số lượng lỗi trang xảy ra sẽ tăng lên khi số lượng khung trang sử dụng tăng Hiện tượng này gọi là nghịch lý Belady Ví dụ: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 Sử dụng 3 khung trang , sẽ có 9 lỗi trang phát sinh 1 1 2 1 2 * * 3 1 2 3 * 4 4 2 3 * 1 4 1 3 * 2 4 1 2 * 5 5 1 2 * 1 5 1 2 2 5 1 2 3 5 3 2 * 4 5 3 4 * 5 5 3 4 3 5 1 2 3 * 4 4 1 2 3 * 5 4 5 2 3 * Sử dụng 4 khung trang... hiện tại nhất 85 Hình 3. 12 Bảng trang với TLBs Tổ chức bảng trang: Hình 3.13 Bảng trang 2 cấp Mỗi hệ điều hành có một phương pháp riêng để tổ chức lưu trữ bảng trang Đa số các hệ điều hành cấp cho mỗi tiến trình một bảng trang Tuy nhiên phương pháp này không thể chấp nhận được nếu hệ điều hành cho phép quản lý một không gian địa chỉ có dung lượng quá (23 2, 26 4): trong các hệ thống như thế, bản thân... trống : 7 7 0 7 0 * * 1 7 0 1 * 2 2 0 1 * 0 2 0 1 3 2 3 1 * 0 2 3 0 * 4 4 3 0 * 2 4 2 0 * 3 4 2 3 * 0 0 2 3 * 3 0 2 3 2 0 2 3 1 0 1 3 * 2 0 1 2 * 0 0 1 2 1 0 1 2 7 7 1 2 * 0 7 0 2 * 1 7 0 1 * Ghi chú : * : có lỗi trang Thảo luận: Để áp dụng thuật toán FIFO, thực tế không nhất thiết phải ghi nhận thời điểm mỗi trang được nạp vào bộ nhớ, mà chỉ cần tổ chức quản lý các trang trong bộ nhớ trong một danh sách... được chọn để thay thế sẽ là trang lâu nhất chưa được truy xuất 103 Ví dụ: sử dụng 3 khung trang, khởi đầu đều trống: 7 7 0 7 0 * * 1 7 0 1 * 2 2 0 1 * 0 2 0 1 3 2 0 3 * 0 2 0 3 4 4 0 3 * 2 4 0 2 * 3 4 3 2 * 0 0 3 2 * 3 0 3 2 2 0 3 2 1 1 3 2 * 2 1 3 2 0 1 0 2 * 1 1 0 2 7 1 0 7 * 0 1 0 7 1 1 0 7 Thảo luận: Thuật toán FIFO sử dụng thời điểm nạp để chọn trang thay thế, thuật toán tối ưu lại dùng thời điểm... xét một hệ thống với không gian địa chỉ luận lý 32 bit Nếu kích thước 32 12 trang 4KB thì bảng trang có thể chứa tới 1 triệu mục từ (2 /2 ) Giả sử rằng mỗi mục từ chứa 4 bytes, mỗi tiến trình có thể cần tới 4MB không gian địa chỉ vật lý cho một 86 bảng trang Rõ ràng, chúng ta sẽ không muốn cấp phát bảng trang liên tiếp nhau Một giải pháp đơn giản cho vấn đề này là chia bảng trang thành những phần nhỏ... quản lý bộ nhớ vật lý: Góc nhìn của người sử dụng: một tiến trình của người dùng nhìn thấy bộ nhớ như là một không gian liên tục, đồng nhất và chỉ chứa duy nhất bản thân tiến trình này Góc nhìn của bộ nhớ vật lý: một tiến trình của người sử dụng được lưu trữ phân tán khắp bộ nhớ vật lý, trong bộ nhớ vật lý đồng thời cũng chứa những tiến trình khác Phần cứng đảm nhiệm việc chuyển đổi địa chỉ logic thành... sẽ được trình bày trong bài học này Nếu đặt toàn thể không gian địa chỉ vào bộ nhớ vật lý, thì kích thước của chương trình bị giới hạn bởi kích thước bộ nhớ vật lý Thực tế, trong nhiều trường hợp, chúng ta không cần phải nạp toàn bộ chương trình vào bộ nhớ vật lý cùng một lúc, vì tại một thời điểm chỉ có một chỉ thị của tiến trình được xử lý Ví dụ, các chương trình đều có một đoạn code xử lý lỗi, nhưng... qủa của một thuật toán bằng cách xử lý trên một chuỗi các địa chỉ cần truy xuất và tính toán số lượng lỗi trang phát sinh Ví dụ: Giả sữ theo vết xử lý của một tiến trình và nhận thấy tiến trình thực hiện truy xuất các địa chỉ theo thứ tự sau : 101 0100, 04 32, 0101, 01 62, 01 02, 0103, 0104, 0101, 0611, 01 02, 0103,0104, 0101, 0610, 01 02, 0103, 0104, 0101, 0609, 01 02, 0105 Nếu có kích thước của một trang... đoạn: 93 Hình 3 .22 Chia sẻ code trong hệ phân đoạn Một ưu điểm khác của kỹ thuật phân đoạn là khả năng chia sẻ ở mức độ phân đoạn Nhờ khả năng này, các tiến trình có thể chia sẻ với nhau từng phần chương trình ( ví dụ các thủ tục, hàm), không nhất thiết phải chia sẻ toàn bộ chương trình như trường hợp phân trang Mỗi tiến trình có một bảng phân đoạn riêng, một phân đoạn được chia sẻ khi các phần tử trong ... cho hệ điều hành tiến trình người sử dụng Tại thời điểm, phần nhớ hệ điều hành chiếm giữ, phần lại thuộc tiến trình người dùng hệ thống Tiến trình toàn quyền sử dụng nhớ dành cho Hình 3 .2 Tổ... P1 500K P1 600K P2 600K P2 600K P2 600K P2 1000K 120 0K 1500K 800K P3 P3 P3 P4 120 0K P4 P4 Cấp phát gốc 1000K 120 0K P4 1900K 21 00K P4 P3 21 00K P3 P3 P4 P3 1500K 1900K 1900K 21 00K 21 00K Dịch chuyển... mục 32 byte 0-7 Tên file 8-10 Phần mở rộng 11 Dự trữ Thuộc tính File Dự trữ Archive Directory volum system hiden readonly 12- 21 Dự trữ DOS 22 -23 Ngày tháng tạo File 24 -25 Giờ phút tạo File 26 -27

Ngày đăng: 09/04/2016, 20:59

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan