Giáo trình hình thành hệ thống ứng dụng điều phối cung cấp processor cho bo mạch p4

10 5 0
Giáo trình hình thành hệ thống ứng dụng điều phối cung cấp processor cho bo mạch p4

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

Thông tin tài liệu

PD PD F- XC h a n g e Vi e w F- XC h a n g e Vi e w er er ! O W N y bu to k lic C m C lic k to bu y N .c O W w .d o c u -tr a c k ! w o .d o c u -tr a c k .c Page Table Ptr Frame # PE: Page Frame Page Table Hình 3.10b. Sơ đồ chuyển địa chỉ trong hệ thống phân trang kích thước của PCT có thể lớn và thay đổi theo kích thước của tiến trình do đó trong kỹ thuật bộ nhớ ảo hệ điều hành thường chứa PCT trong bộ nhớ chính và dùng một thanh ghi để ghi địa chỉ bắt đầu của bộ nhớ nơi lưu trữ PCT của tiến trình khi...

y o c u -tr a c k c Page Table Ptr Frame # PE: Page Frame Page Table Main Memry Hình 3.10b Sơ đồ chuyển địa hệ thống phân trang kích thước PCT lớn thay đổi theo kích thước tiến trình kỹ thuật nhớ ảo hệ điều hành thường chứa PCT nhớ dùng ghi để ghi địa bắt đầu nhớ nơi lưu trữ PCT tiến trình tiến trình nạp vào nhớ để chạy Đa số hệ điều hành thiết kế bảng trang riêng cho tiến trình Nhưng tiến trình chiếm giữ khơng gian lớn nhớ ảo, trường hợp bảng trang lớn hệ thống phải tốn không gian nhớ để chứa Ví 31 dụ, tiến trình có đến = 2GB nhớ ảo, trang có kích thước = 22 512 byte, tiến trình phải cần đến phần tử bảng trang Để khắc phục vấn đề này, kỹ thuật nhớ ảo hệ thống lưu trữ bảng trang nhớ ảo không lưu trữ nhớ thực, thân bảng trang phải phân trang Khi tiến trình thực hiện, có phần trang nạp vào nhớ chính, phần chứa phần tử trang thực thời điểm Một số processor sử dụng lược đồ hai cấp (two-level) để tổ chức bảng trang lớn, lược đồ có thư mục bảng trang (page directory) mà phần tử trỏ đến bảng trang Trong trường hợp này, chiều dài thư mục trang X chiều dài tối đa bảng trang Y tiến trình có X x Y trang Chiều dài tối đa bảng trang kích thước trang Chúng ta xem ví dụ minh họa bảng trang hai cấp sau đây: Two-level Page table Top-level Page table PT1 4  1023 Đến Page  Đến d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c Giả sử có khơng gian địa ảo 32 bít, chia thành trường: PT1 10 bít, PT2 10 bít Offset 12 bít Hình vẽ 3.10.c cho thấy cấu trúc bảng trang cấp tương ứng với không gian địa ảo 32 bít Bên trái top-level bảng trang (bảng trang cấp 1), gồm có 1024 mục vào (tương ứng với 10 bít PT1), tức PT1 địa ảo dùng để mục đến phần tử bảng trang cấp Mỗi mục vào dùng để mơ tả 4Mb nhớ, tồn GB (32 bit) không gian địa ảo chia thành 1024 phần Entry mục bảng trang cấp từ PT1 cho địa số hiệu khung trang trang thứ hai (secondlevel) Có 1024 bảng trang cấp 2, đánh số từ đến 1023, bảng trang cấp thứ (0) quản lý không gian nhớ 4Mb từ 0Mb đến 4Mb, bảng trang cấp thứ hai (1) quản lý không gian nhớ 4Mb từ 8Mb,… Trường PT2 dùng để mục đến bảng trang cấp để tìm số hiệu khung trang page tương ứng Giá trị tìm kết hợp với thành phần Offset để có địa vật lý ô nhớ tương ứng với địa ảo 32 bit phát sinh ban đầu Chúng ta xem lại ví dụ cụ thể sau đây: Có địa ảo 32 bít: 0x00403004, địa tương ứng với PT1 = 1, PT2 = Offset = Bộ phận MMU chuyển địa thành địa vật lý sau: Đầu tiên MMU dùng PT1 để mục vào bảng trang cấp entry 1, tương ứng với khơng gian đại từ 4Mb đến 8Mb Sau MMU dùng PT2 để mục vào bảng trang cấp entry 3, tương ứng với khơng gian địa 12292 đến 16383 phạm vi 4Mb Đây entry chứa số hiệu khung trang page chứa địa ảo 0x00403004 Nếu page có nhớ, số hiệu khung trang có từ bảng trang cấp hai kết hợp với thành phần Offset để sinh địa vật lý Địa đưa lên a_bus gởi đến nhớ  Kích thước trang: Kích thước trang phần cứng quy định, định quan trọng việc thiết kế processor Nếu kích thước trang nhỏ phân mảnh bên nhỏ hơn, việc sử dụng nhớ hiệu Nhưng kích thước trang nhỏ số lượng trang tiến trình d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c lớn hơn, bảng trang tiến trình lớn, chiếm nhiều nhớ hơn, việc sử dụng nhớ hiệu Các vi xử lý họ Intel 486 họ Motorola 68040 chọn kích thước trang 4096 byte Ngồi kích thước trang ảnh hưởng đến tỉ lệ xảy lỗi trang Ví dụ: kích thước trang nhỏ có lượng lớn trang tiến trình nhớ chính, sau thời gian tất trang nhớ chứa tiến trình tham chiếu gần đây, tốc độ xảy lỗi trang giảm xuống III.3.2.b Sự phân đoạn: Sự phân đoạn cho phép người lập trình xem nhớ bao gồm tập không gian nhớ đoạn (segment) có địa xác định Với nhớ ảo người lập trình khơng cần quan tâm đến giới hạn nhớ đưa nhớ Các segment có kích thước khơng ấn định cách động Địa tham chiếu nhớ trường hợp bao gồm: Segment Number Offset Đối với người lập trình phân đoạn khơng gian địa có số thuận lợi sau so với trường hợp không phân đoạn không gian địa chỉ: Nó đơn giản để điều khiển cấu trúc liệu lớn dần (growing) trình hoạt động hệ thống Nếu người lập trình khơng biết trước liệu lớn đến chừng thời điểm chạy việc ấn định kích thước động cho segment mang lại nhiều thuận lợi cho người lập trình Nó cho phép chương trình khơng phụ thuộc vào thay đổi vào biên dịch lại Nó khơng u cầu thiết lập lại tồn chương trình chương trình liên kết nạp trở lại Việc thực cách sử dụng nhiều phân đoạn (Multiple Segment) Nó thích hợp với chiến lược chia sẻ segment tiến trình Người lập trình đặt chương trình tiện ích bảng liệu thường sử dụng vào segment mà tham chiếu nhiều tiến trình khác Nó thích hợp với chiến lược bảo vệ nhớ Bởi segment sinh để chứa tập xác định thủ tục liệu, sau người lập trình người quản trị hệ thống gán quyền truy cập với độ ưu tiên thích hợp  Tổ chức hệ thống phân đoạn: Trong kỹ thuật phân đoạn đơn, tiến trình sở hữu bảng đoạn riêng, tất đoạn tiến trình nạp vào nhớ bảng đoạn tiến trình tạo nạp vào nhớ, phần tử bảng đoạn chứa địa bắt đầu đoạn tương ứng nhớ độ dài đoạn Trong kỹ thuật nhớ ảo vậy, phần tử bảng đoạn chứa nhiều d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c thông tin phức tạp Bởi kỹ thuật nhớ ảo có vài segment tiến trình nạp vào nhớ chính, cần phải có bít biết đoạn tương ứng tiến trình có hay khơng nhớ bít cho biết đoạn có bị thay đổi hay không so với lần nạp gần Cụ thể phải có thêm bít điều khiển:  Bít M (Modify): Cho biết nội dung đoạn tương ứng có bị thay đổi hay khơng so với lần nạp gần Nếu khơng bị thay đổi việc phải ghi lại nội dung đoạn cần phải đưa đoạn lại nhớ ngồi khơng cần thiết, điều giúp tăng tốc độ thao tác thay đoạn Virtual Address Segment Number P M Offset Các bít điều khiển Lengt Segmen h t Base Hình 3.11a Một phần tử bảng Đoạn  Bít P (Present): Cho biết đoạn tưong ứng nhớ (= 1) hay nhớ phụ (= 0)  Các bít điều khiển khác: Các bít phục vụ cho mục đích bảo vệ trang chia sẻ khung trang  Chuyển đổi địa hệ thống phân đoạn: Chương trình người sử dụng sử dụng địa logic virtual gồm: segment number offset để truy xuất liệu nhớ Bộ phận quản lý nhớ phải chuyển địa virtual thành địa vật lý tương ứng bao gồm: segment number offset Để thực việc phận quản lý nhớ phải dựa vào bảng đoạn (SCT) Vì kích thước SCT lớn thay đổi theo kích thước tiến trình kỹ thuật nhớ ảo hệ điều hành thường chứa SCT nhớ dùng ghi để ghi địa bắt đầu nhớ nơi lưu trữ SCT tiến trình tiến trình nạp vào nhớ để chạy Thành phần segment number địa ảo dùng để mục đến bảng đoạn tìm địa bắt đầu segment tương ứng nhớ Giá trị cộng với thành phần Offset có địa ảo để có địa vật lý thực cần tìm Virtual Address Seg # Real Address Offset Base + Offset Register Off Seg d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c Seg Table Ptr S.L L B B: Base L: Length SL: Segment Length Seg Table Hình 3.11b Sơ đồ chuyển địa hệ thống phân Đoạn Main Memry Bảo vệ chia sẻ phân đoạn: Sự phân đoạn dùng để cài đặt sách bảo vệ chia sẻ nhớ Bởi phần tử bảng trang bao gồm trường length trường base address, nên tiến trình segment khơng thể truy cập đến vị trí nhớ mà vị trí vượt qua giới hạn (length) segment, ngoại trừ truy cập liệu đến segment liệu Để thực việc chia sẻ segment, ví dụ segment A, cho nhiều tiến trình, hệ điều hành cho phép nhiều tiến trình tham chiếu đến segment A, thông số (length base address) segment A xuất đồng thời bảng segment tiến trình chia sẻ segment A Chiến lược chia sẻ áp dụng hệ thống phân trang Các hệ điều hành sử dụng chiến lược bảo vệ phức tạp để cài đặt bảo vệ segment, sử dụng cấu trúc vòng bảo vệ (ring protection) Như biết hệ thống ring, bao gồm: ring 0, ring 1, ring 2, … ring có mức đặc quyền truy cập riêng, ring có mức đặc quyền truy cập cao so với ring 1, ring có mức đặc quyền truy cập cao so với ring 2, …, ring thấp sử dụng cho thành phần kernel hệ điều hành, ring cao sử dụng cho ứng dụng người sử dụng Nguyên lý hệ thống ring là:  Chương trình truy cập đến liệu ring liệu ring có mức đặc quyền truy cập thấp  Chương trình gọi dịch vụ ring ring có mức đặc quyền truy cập cao  d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c III.3.2.c Kết hợp phân trang với phân đoạn: Cả hai kỹ thuật phân trang phân đoạn có mạnh Sự phân trang, suốt (transparent) người lập trình, loại bỏ tượng phân mảnh nội vi Sự phân đoạn, thấy người lập trình, có khả điều khiển cấu trúc liệu lớn dần hỗ trợ chia sẻ bảo vệ nhớ Để kết hợp thuận lợi hai hệ thống phân trang phân đoạn, số hệ thống trang bị hỗ trợ phần cứng processor phần mềm hệ điều hành để cài đặt kết hợp hai kỹ thuật phân trang phân đoạn Trong hệ thống kết hợp phân trang phân đoạn, không gian địa nhớ người sử dụng chia thành đoạn theo ý muốn người lập trình, sau đoạn lại chia thành trang có kích thước cố định Theo cách nhìn người lập trình địa logic bao gồm segment number segment offset Theo cách nhìn hệ thống segment offset xem page number page offser cho trang phạm vị segment Trong hệ thống phân trang kết hợp phân đoạn nay, hệ điều hành thiết kế bảng trang bảng đoạn Hệ điều hành kết hợp với tiến trình có bảng đoạn nhiều bảng trang, phần tử bảng đoạn đến bảng trang, bảng trang quản lý trang đoạn tương ứng Khi tiến trình riêng biệt chạy, ghi giữ địa bắt đầu bảng đoạn tiến trình Trong hệ thống địa ảo processor đua phải gồm thành phần: Segment Number, Page Number Offset Segment number vào bảng đoạn tiến trình để tìm bảng trang segment Sau page number sử dụng để mục đến bảng trang tìm số hiệu khung trang tương ứng, giá trị kết hợp với thành phần Offset địa ảo để có địa vật lý thực mong muốn Sơ đồ chuyển đổi địa hệ thống phân trang kết hợp phân đoạn: Virtual Memory Seg # Page# Frame Offset Offset # S# P# Off + + Seg Table Seg Table Ptr Page Table d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c Hình 3.12 Sơ đồ chuyển địa hệ thống Trang - Đoạn  MM Phân đoạn với phân trang Intel 386: Trong chế độ bảo vệ 80286 chế độ ảo 80386 không gian nhớ hệ thống chia thành hai loại: không gian nhớ tồn cục khơng gian nhớ cục Khơng gian nhớ toàn cục dành cho liệu hệ thống tiến trình hệ điều hành Mọi chương trình người sử dụng truy cập liệu tiến trình khơng gian nhớ tồn cục Khơng gian nhớ cục dành riêng cho tiến trình, tác vụ riêng biệt Vì vậy, đoạn mã lệnh liệu tiến trình, tác vụ nằm khơng gian nhớ cục bảo vệ tránh truy xuất bất hợp lệ tiến trình, tác vụ khác hệ thống Trong kỹ thuật nhớ ảo Intel 80386 sử dụng bảng mô tả: Bảng mô tả cục (LDT: Local Descriptor Table), để theo dõi không gian nhớ cục bảng mô tả toàn cục (GDT: Global Descriptor Table), để theo dõi khơng gian nhớ tồn cục Mỗi chương trình sở hữu LDT riêng, có GDT chia sẻ cho tất chương trình hệ thống LDT mơ tả segment cục cho chương trình, bao gồm code, data, stack, …, GDT mơ tả segment hệ thống, hệ điều hành Các LDT, GDT nạp vào nhớ trình hoạt động hệ thống, Intel 80386 dùng ghi GDTR để ghi địa sở giới hạn kích thước GDT ghi LDTR để ghi địa sở giới hạn kích thước LDT tác vụ Để truy cập segment, chương trình chạy Intel 386 phải nạp selector segment vào ghi đoạn Intel 386 Trong trình thực chương trình ghi CS giữ selector cho code segment ghi DS giữ selector cho data segment Mỗi selector dài 16 bít mơ tả sau: Bít 15 Index 13 = GDT = LDT Privilege level (0-3) Hình 3.13.a: Một Selector (bộ chọn đoạn) Intel 386 Trong đó:  Hai bít cho biết mức đặc quyền truy cập chọn đoạn, bít phục vụ cho công tác bảo vệ nhớ (segment) .d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c  Một bít cho biết segment cục hay tồn cục  Mười ba bít lại đến mục vào (entry) LDT GDT, bảng mơ tả (Descriptor Table) lưu giữ 8k (213) mô tả đoạn (segment descriptor) Tức LDT/GDT có 213 mục vào/ phần tử Tại thời điểm selector nạp vào ghi segment, descriptor tương ứng nhận từ bảng LDT GDT lưu trữ ghi microprogram, truy cập nhanh Một descriptor gồm có byte, gồm có địa chỉ, kích thước, thơng tin khác segment Hình sau mơ tả descriptor Intel 386: 32 bít Base – 15 B ase 2431 G D Limit – 15 Li mit 1619 P D PL T ype B ase 1623 Hình 3.13.b: Một descriptor Code segment (bộ mô tả đoạn code) Intel 386 Trong đó:  Base (24 bit): cho biết vị trí segment khơng gian địa tuyến tính 4GB Bộ xử lý ghép trường địa sở thành giá trị địa 32 bít Trong thực tế trường Base cho phép segment bắt đầu vị trí khơng gian địa tuyến tính 32 bit  Limit (20 bit): cho biết kích thước segment Bộ xử lý ghép hai trường kích thước thành giá trị 20 bít Bộ xử lý tính kích thước theo hai cách dựa vào giá trị cờ G: G = 0: kích thước đoạn nằm 1B 1MB, tính theo đơn vị byte G = 1: kích thước đoạn nằm 4KB 4GB, tính theo đơn vị 4Kbyte (= 212 = 1page) Như với 20 bít limit segment có kích thước lên đến 232 byte (212x220)  Type (5 bit): định nghĩa dạng đoạn kiểu truy cập đoạn  DPL: Descriptor Privilege Level (2 bit): cho biết mức đặc quyền truy cập mơ tả segment (có mức đặc quyền truy cập: 0-3)  P: Present (1 bit): cho biết segment nạp vào nhớ (P = 1) hay chưa nạp vào nhớ (P = 0)  G: Granularity (1 bit): định nghĩa số để nhân với trường kích thước G = 0: kích thước tính theo đơn vị 1byte G = 1: kích thước tính theo đơn vị 1page (Một page Intel 386 có kích thước cố định 4Kbyte)  D: Default Operation Sizze (1 bit): cho biết chiều dài dòng lệnh D = 1: vi xử lý mặc định 32 bít địa chỉ, 32/8 bít mã lệnh D = 0: vi xử lý mặc d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c định 16 bít địa chỉ, 32/8 bít mã lệnh Sau sơ đồ chuyển địa gồm thành phần selector offset thành địa tuyến tính (linear address) dựa vào bảng mô tả đoạn Selector/16 Offset/16 + Base 32 bit linear add Limit other Bảng mô tả đoạn Hình 3.13.c: Chuyển địa logic (selector:offset) thành địa tuyến tính Nếu phân trang (paging) bị cấm địa tuyến tính biên dịch thành địa vật lý gửi đến nhớ để truy xuất liệu Như phân trang bị cấm trườnng hợp hệ thống sử dụng phân đoạn (segmentation) đơn thuần, với địa sở (base address) segment cho descriptor Nếu phân trang phép địa tuyến tính biên dịch thành địa ảo ánh xạ thành địa vật lý cách sử dụng bảng trang Mỗi chương trình có danh mục bảng trang (page directory) riêng, bao gồm 1024 entry 32 bit, nạp vào nhớ ghi global, entry danh mục bảng trang đếm bảng trang (page table), bảng trang chứa 1024 entry 32 bit, mục vào bảng trang lại đến khung trang (page frame) Địa tuyến tính gồm trường: Dir, Page, Offset Trường Dir: sử dụng để mục vào Page Directory để tìm đến trỏ trỏ tới Page Table Trường Page: sử dụng để mục vào Page Table để tìm địa vật lý Page Frame Trường Offset cộng với địa vật lý Page Framre để có địa vật lý nhớ chứa liệu cần truy xuất Dir: 10 bít Page: 10 bít Offset: 12 bít Hình 3.13.d : Địa tuyến tính 32 bít Intel 386 Mỗi entry page table dài 32 bít, 20 bít chứa số hiệu page frame, bít cịn lại bít truy cập, thiết lập phần cứng cho lợi ích hệ điều hành bít bảo vệ bít tiện ích khác Mỗi page table có 1024 entry cho d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c y o c u -tr a c k c page frame, page frame có kích thước 4Kb, nên page table đơn quản lý 4Mb nhớ Từ địa tuyến tính hệ thống ánh xạ thành địa vật lý, dựa vào page directorry, page table page frame Sau sơ đồ, đơn giản, minh họa ánh xạ địa tuyến tính thành địa vật lý: Page frame Dir Page table page Off Page directory địa vật lý Main memory Hình 3.13.e: Ánh xạ địa tuyến tính thành đại vật lý Trên tìm hiểu chế nhớ ảo Intel 386, tìm hiểu bảo vệ chế nhớ ảo Cơng cụ mà 80386 đưa để thực nhiệm vụ bảo vệ không gian nhớ chứa tiến trình chứa hệ điều hành nhớ là: mức/ cấp (level) đặc quyền truy cập hay mức ưu tiên yêu cầu (RPL: Request Privilege Level) Từ vi xử lý 80286 vi xử lý đưa mức ưu tiên từ đến 3, ghi trường Privilege Level thành phần địa selector (hình 3.13.a) Mức có độ ưu tiên cao nhất, mức có độ ưu tiên thấp Các segment nhớ gán mức ưu tiên tương tự, ghi trường DPL mô tả đoạn bảng mơ tả đoạn (hình 3.13.b) Các ứng dụng có mức ưu tiên cao quyền truy cập mã lệnh, liệu đoạn nhớ có mức ưu tiên thấp Các ứng dụng có mức ưu tiên thấp không truy cập mã lệnh, liệu đoạn nhớ có mức ưu tiên cao hơn, thực tế điều ứng dụng biết cách vựơt qua Cổng (Cổng nguyên tắc hoạt động Cổng bạn tìm đọc tài liệu viết vi xử lý họ Intel) Bốn mức ưu tiên mà 80386 đưa là:  Mức 0: mức thành phần kernel hệ điều hành Kernel hệ d o m o w w w d o C lic k to bu y bu to k lic C w w w N O W ! h a n g e Vi e N PD ! XC er O W F- w m h a n g e Vi e w PD XC er F- c u -tr a c k c ... cao so với ring 2, …, ring thấp sử dụng cho thành phần kernel hệ điều hành, ring cao sử dụng cho ứng dụng người sử dụng Nguyên lý hệ thống ring là:  Chương trình truy cập đến liệu ring liệu ring... nhớ tồn cục dành cho liệu hệ thống tiến trình hệ điều hành Mọi chương trình người sử dụng truy cập liệu tiến trình khơng gian nhớ tồn cục Khơng gian nhớ cục dành riêng cho tiến trình, tác vụ riêng... Mỗi chương trình sở hữu LDT riêng, có GDT chia sẻ cho tất chương trình hệ thống LDT mô tả segment cục cho chương trình, bao gồm code, data, stack, …, GDT mơ tả segment hệ thống, hệ điều hành Các

Ngày đăng: 11/05/2021, 01:34

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

Tài liệu liên quan