1. Trang chủ
  2. » Công Nghệ Thông Tin

CÁC CƠ CHẾ AN TOÀN CƠ BẢN CSDL

37 422 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 37
Dung lượng 445 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giíi thiÖu 2.2 . NhËn d¹ngx¸c thùc ng­êi dïng 2.3 . B¶o vÖ bé nhí 2.3.1 §Þa chØ rµo 2.3.2 T¸i ®Þnh vÞ 2.3.3 B¶o vÖ dùa vµo thanh ghi 2.3.4 Ph©n trang 2.3.5 Ph©n ®o¹n 2.4 . KiÓm so¸t truy nhËp tµi nguyªn 2.5 . C¸c c¬ chÕ kiÓm so¸t luång 2.6 . Sù c¸ch ly 2.7 . C¸c chuÈn an toµn 2.7.1 Tiªu chuÈn DoD 2.7.2 Ph©n lo¹i mét sè hÖ thèng theo tiªu chuÈn DoD 2.8 . ThiÕt kÕ c¸c hÖ ®iÒu hµnh an toµn Néi dung Trong ch­¬ng nµy, chóng ta sÏ quan t©m ®Õn c¸c vÊn ®Ò sau: Một số cơ chế bảo vệ tài nguyên ở mức hệ điều hành. Các cải tiến đối với cơ chế an toàn cơ bản dành cho hệ điều hành. Thiết kế hệ điều hành an toàn. Chuẩn an toàn DoD.

Trang 1

Chơng 2 Các cơ chế an toàn cơ bản

2.4 Kiểm soát truy nhập tài nguyên

2.5 Các cơ chế kiểm soát luồng

2.6 Sự cách ly

2.7 Các chuẩn an toàn

2.7.1 Tiêu chuẩn DoD

2.7.2 Phân loại một số hệ thống theo tiêu chuẩn DoD

2.8 Thiết kế các hệ điều hành an toàn

Nội dung

Trong chơng này, chúng ta sẽ quan tâm đến các vấn đề sau:

- Một số cơ chế bảo vệ tài nguyờn ở mức hệ điều hành

- Cỏc cải tiến đối với cơ chế an toàn cơ bản dành cho hệ điều hành

- Thiết kế hệ điều hành an toàn

- Chuẩn an toàn DoD

Trang 2

2.1 Các định nghĩa hệ điều hành

Trớc hết chúng ta tìm hiểu khái niệm hệ điều hành

Hệ điều hành là một chơng trình đóng vài trò trung gian trong việc giao tiếpgiữa ngời sử dụng và phần cứng máy tính Mục tiêu của hệ điều hành là cung cấpmột môi trờng cho phép ngời sử dụng phát triển và thực hiện các ứng dụng của họmột cách dễ dàng và hiệu quả

Hệ điều hành là một phần quan trọng của hầu hết các hệ thống máy tính Sau

đây là kiến trúc điển hình của một hệ thống máy tính bao gồm các mức sau:

- Phần cứng: bao gồm CPU, bộ nhớ, các thiết bị nhập xuất đó là các tài

nguyên của máy tính

- Chơng trình cơ sở (phần mềm hệ thống): đây là phần mềm hệ thống trong

ROM đợc nạp cố định trong bộ nhớ – không thể thay đổi đợc

- Chơng trình dịch hợp ngữ (assembler)

- Hệ điều hành (OS): điều khiển và phối hợp việc sử dụng phần cứng cho

những ứng dụng khỏc nhau của nhiều người dùng khỏc nhau

Các chức năng của hệ điều hành đợc tóm tắt nh sau:

- Quản lý tiến trình và bộ xử lý:

• Hỗ trợ các tiến trình đồng thời của ngời dùng và hệ thống

• Đảm bảo tối đa hiệu năng sử tài nguyên hệ thống

Hình 2.1 Các mức trừu t ợng của hệ thông máy tính

Trang 3

- Quản lý tài nguyên:

• OS cấp phát các tài nguyên hệ thống nh: bộ nhớ, file, thiết bị vào/ra choứng dụng

• OS giải quyết vấn đề xung đột giữa các tiến trình sử dụng chung tàinguyên

- Giám sát:

• OS tơng tác trực tiếp với các chơng trình ứng dụng

• Hỗ trợ thực hiện các ngôn ngữ ứng dụng khác nhau

• Kiểm soát các chơng trình đang chạy, không cho phép sử dụng trái phéptài nguyên hệ thống

• Chống can thiệp trái phép vào các vùng nhớ

Hệ điều hành không ngừng phát triển từ một chơng trình đơn giản đến các hệthống phức tạp, hỗ trợ kiến trúc đa nhiệm, đa xử lý, phân tán và xử lý thời gianthực

Chức năng an toàn của hệ điều hành

Hình 2.2 minh hoạ các chức năng của một OS trong việc hỗ trợ an toàn, trong

đó trình bày các giai đoạn cơ bản có trong một phiên làm việc của ngời dùng, trongmột hệ thống đa ngời dùng

Đăng xuất

Quản lý hệ thống file

Trang 4

- Đầu tiên ngời dùng đăng nhập để tạo kết nối tới hệ thống, hệ thống sẽ kiểmtra tính duy nhất của ngời dùng bằng cơ chế nhận dạng/xác thực.

- Khi qua đợc giai đoạn đăng nhập:

• Ngời dùng làm việc với các file -> quản lý hệ thống file

Chạy chơng trình: chạy chơng trình cần vùng nhớ cấp phát trớc -> cần

đ-ợc bảo vệ tránh sự can thiệp của các chơng trình khác -> Bảo vệ bộ nhớ.

Một chơng trình chạy có thể thực hiện các thao tác vào/ra -> Quản lý vào/ra.

- Hệ điều hành hỗ trợ truy nhập đồng thời vào tài nguyên, do đó nó có thể giảiquyết xung đột xảy ra -> Cấp phát truy nhập tài nguyên và kiểm soát truy nhập tài nguyên.

- Quản lý và phát hiện lỗi: khi OS thấy chơng trình có lỗi, nó có thể kết thúc

- Kiểm soát truy nhập vào tài nguyên

- Kiểm soát luồng

- Kiểm toán

4

Trang 5

2.2 Nhận dạng/ xác thực ngời dùng

Yêu cầu đối với một hệ thống an toàn là phải nhận dạng chính xác ngời sử dụng,

do đó ta tìm hiểu xem chức năng an toàn nhận dạng/xác thực ngời dùng của OS

thực hiện nh thế nào

1 Các hệ thống xác thực dựa vào thông tin ngời dùng biết

- Các hệ thống dựa vào mật khẩu: Ngời dùng đợc nhận dạng thông qua một

chuỗi ký tự bí mật (mật khẩu), chỉ có ngời dùng và hệ thống biết

- Các hệ thống dựa vào hỏi đáp: Ngời dùng đợc nhận dạng, thông qua việc trả

lời một tập hợp các câu hỏi mà hệ thống đặt ra Các câu hỏi đợc đặt riêngcho từng ngời dùng và chủ yếu dựa vào các hàm toán học Hệ thống sẽ tínhtoán các hàm này sau khi nhận đợc các giá trị đa vào từ ngời dùng và sosánh kết quả với nhau Các hàm mẫu nh sau:

Các hàm đa thức (ví dụ, f(x) = x3+ x2- x + 4): giá trị của biến x do hệ

thống cung cấp, ngời dùng nhận đợc x sẽ tính giá trị hàm f(x) và gửi kếtquả cho hệ thống Hệ thống sẽ kiểm tra lại kết quả này xem có chính xáchay không

Các hàm dựa vào việc biến đổi chuỗi ký tự: Hệ thống chuyển cho ngời

dùng một chuỗi ký tự để thay đổi, theo một lợc đồ đã biết (ví dụ,

f(a 1 a 2 a 3 a 4 a 5 ) = a 4 a 3 a 5 a 2 a 1) Khi đó ngời dùng phải gửi lại kết quả biến đổi

chuỗi ký tự cho hệ thống, sau đó hệ thống sẽ kiểm tra lại kết quả nàybằng hàm f xem có chính xác hay không

Các hàm dựa vào các thuật toán mật mã đơn giản: sao cho từ một giá trị

mã hóa mà hệ thống đã cho trớc, ngời dùng giải mã và sử dụng nó để tínhtoán một hàm, sau đó mã hoá kết quả, ví dụ f(E(x)) = E(D(E(x)) 2 ) ở đây

hệ thống cung cấp cho ngời dùng giá trị đã mã hóa E(x), ngời dùng phảigiải mã D(E(x)) sau đó tính hàm bình phơng [D(E(x))] 2 , cuối cùng mã

hóa giá trị này E(D(E(x)) 2 ) Sau đó ngời dùng gửi kết quả này tới hệ

thống, hệ thống sẽ kiểm tra kết quả này bằng hàm f

- Các hệ thống xác thực hai lần bắt tay– : hệ thống tự giới thiệu mình với

ng-ời dùng, còn ngng-ời dùng tự xác thực ngợc trở lại hệ thống Xác thực hệ thốngdựa vào các thông tin chỉ có ngời dùng biết (ví dụ, ngày, giờ và đoạn chơngtrình của phiên làm việc cuối) Xác thực ngời dùng dựa vào mật khẩu

Về cơ bản, các hệ thống xác thực dựa vào thông tin ngời dùng là các hệ thốngdựa vào thẻ: thẻ từ có chứa một mã vạch, hoặc mã vạch từ, hoặc một bộ vi xử lý.

Hệ thống dùng thiết bị đọc để xác thực các thẻ từ đa vào, đôi khi thẻ này đợc gắnkèm với một mã bí mật (secret code)

2 Các hệ thống xác thực dựa vào đặc điểm của ngời dùng, bao gồm:

Trang 6

- Các hệ thống nhận dạng qua ảnh: ảnh của ngời dùng đợc lu giữ Việc nhận dạng

đợc thực hiện bằng cách đối chiếu ngời sử dụng với ảnh của anh ta đợc lu giữ hiểnthị trên màn hình;

- Các hệ thống nhận dạng qua dấu vân tay: Việc nhận dạng đợc thực hiện bằng

cách đối chiếu dấu vân tay của ngời dùng với dấu vân tay đợc lu giữ;

- Các hệ thống nhận dạng qua đặc trng của chữ ký viết bằng tay: Việc nhận dạng

đợc thực hiện dựa vào độ nhấn của tay ngời dùng khi ký trên một thiết bị thích hợp

- Các hệ thống nhận dạng qua tiếng nói: So sánh giọng nói của ngời dùng với

giọng nói đợc lu giữ

- Các hệ thống nhận dạng qua đặc điểm võng mạc-đồng tử): Việc nhận dạng đợc

thực hiện bằng cách kiểm tra các đặc điểm võng mạc của ngời dùng

=> Các hệ thống xác thực này có độ phức tạp cao hơn và cũng đắt hơn về chi phí sovới các hệ thống xác thực dựa vào thông tin ngời dùng biết đã đợc liệt kê trớc, do

sự phức tạp khi đối chiếu các đặc điểm đợc lu giữ của cá nhân với con ngời thực tế

Do đó, xác xuất từ chối ngời dùng hợp pháp cao hơn Do vậy, việc sử dụng nó chỉthích hợp trong các môi trờng an toàn cao và thiết yếu

Không phải tất cả các cơ chế nêu trên đều đợc thực hiện tại mức OS, cơ chế xác thực dựa vào mật khẩu đợc sử dụng phổ biến nhất Chúng ta sẽ đi sâu xem xét các cơ chế này

3 Xác thực dựa vào mật khẩu

Mật khẩu là một chuỗi ký tự bí mật (số hoặc chữ), chỉ có ngời dùng và hệ thốngbiết, do đó hệ thống có khả năng nhận dạng duy nhất ngời dùng dựa vào việc xácnhận tính hợp lệ của mật khẩu Những vấn đề trong việc sử dụng mật khẩu phụthuộc vào việc chọn mật khẩu ban đầu, phụ thuộc vào khả năng khám phá mật khẩu

và phụ thuộc vào việc quản lý mật khẩu

Các tiêu chuẩn đối với mật khẩu 'bí mật' là:

- Sử dụng ít nhất 8 ký tự, nói chung nên sử dụng các mật khẩu dài

- Sử dụng cả số và chữ

- Sử dụng cả chữ thờng và chữ in hoa

- Sử dụng các ký hiệu bàn phím đặc biệt (ví dụ, &,@ và %)

- Ghép 2 từ không liên quan, sau đó cắt bớt từ mới thu đợc sao cho nó có độdài bằng n-1, với n là độ dài cho phép của mật khẩu, sau đó chèn thêm một

Trang 7

- Chọn các thuật ngữ liên quan đến hoạt động thể thao hoặc sở thích của mộtngời, sau đó ghép chúng lại.

- Thông thờng chọn các thuật ngữ dễ nhớ

Ngời dùng nên lựa chọn mật khẩu phù hợp và sử dụng chúng chính xác và cẩnthận Đặc biệt, ngời dùng nên:

- Chọn mật khẩu tuân theo tiêu chuẩn trên

- Ghi nhớ mật khẩu của mình, không bao giờ đợc viết ra

- Không bao giờ để lộ mật khẩu của mình

- Thay đổi mật khẩu thờng xuyên và định kỳ

Vấn đề quản lý mật khẩu

Thông thờng, mật khẩu phải đợc lu giữ trong một hệ thống đa ngời dùng, nhằm

đáp ứng các hoạt động xác thực sau này, do đó mật khẩu phải lu trong một file do

hệ điều hành quản lý Điều này dẫn đến tất cả các modul trong OS đều truy nhập

đ-ợc file mật khẩu, do đó ngời dùng có thể lợi dụng một số modul dễ bị tấn công của

OS để truy cập file này

Các trở ngại này có thể đợc giải quyết trong một số hệ thống, bằng cách mã hoámật khẩu sử dụng các thuật toán mã hoá Sau khi đợc tạo ra, mật khẩu đợc mã hoá

và lu giữ trong các file mật khẩu, ngời dùng có thể đọc nó nhng việc sửa đổi (chèn,xoá, cập nhật) do OS thực hiện Việc bảo vệ các mật khẩu này có hiệu quả haykhông phụ thuộc vào sự chọn lựa các thuật toán mã hoá, sao cho việc giải mã phứctạp và tốn kém cả về thời gian và tính toán

Nếu hai ngời sử dụng tình cờ lựa chọn cùng một mật khẩu, thì sẽ có hai bản mãmật khẩu giống hệt nhau trong file mật khẩu Khi đó hai ngời sử dụng này có thểbiết đợc mật khẩu của ngời kia Do vậy cần thiết phải có các cơ chế mã hóa thíchhợp sao cho có thể thực hiện đợc tính duy nhất của mật khẩu

=> Để giải quyết vấn đề tính duy nhất của mật khẩu ta có thể dùng kỹ thuật salt.

Kỹ thuật salt đợc sử dụng trong UNIX Một salt là một số 12 bit đợc thêm vào

nh là phần mở rộng của một mật khẩu Trong kỹ thuật này, một mật khẩu sẽ đợc kếthợp với salt của nó, salt này đợc sinh ra dựa vào thời gian sinh ra và định danh của

tiến trình đang chạy Vì thời gian sinh và định danh của tiến trình đang chạy củatừng ngời dùng sẽ khác nhau, do đó tham biến salt đợc sinh ra của từng ngời dùng

sẽ khác nhau Điều này đảm bảo cho tính duy nhất của mật khẩu khi đợc mã hóa

mã hóa Salt

File mật khẩu DES

Salt

Trang 8

Hình 2.3 Kỹ thuật salt

Thuật toán mã hóa DES (Data Encryption Standard) đợc áp dụng trong UNIX

để kết nối ‘mật khẩu/salt’, kết quả đợc lu trong file mật khẩu cùng với salt tơngứng Tại mỗi thời điểm, khi ngời sử dụng gõ mật khẩu của mình, hệ thống sẽ mãhóa mật khẩu này kết hợp với salt đã đợc lu trong file mật khẩu, sau đó so sánh kếtquả mã hóa với mật khẩu đợc lu trong file mật khẩu Nh vậy bằng cách sử dụng hệthống kiểm soát truy nhập vào file mật khẩu và sử dụng thuật toán mật mã để mãhóa các mật khẩu, đã làm cho sự bảo vệ mức hệ điều hành tăng khả năng chống lại

những tiếp cận trái phép tới mật khẩu của ngời sử dụng

Hình 2.4 Kiểm tra mật khẩu bằng salt

Các kiểu cơ chế phần cứng đợc sử dụng để bảo vệ và chia sẻ bộ nhớ có kiểm soát

Trang 9

- Các thanh ghi cơ sở/giới hạn

- Các địa chỉ trong chơng trình nguồn chỉ là các địa chỉ tợng trng- địa chỉlogic, để chuyển đổi các địa chỉ này thành các địa chỉ tuyệt đối trong bộ nhớchính, chơng trình phải trải qua nhiều giai đoạn xử lý

+ Địa chỉ logic - địa chỉ ảo: là tất cả các địa chỉ do bộ xử lý sinh ra.

+ Địa chỉ vật lý – là địa chỉ thực tế mà trình quản lý bộ nhớ nhìn thấy và

+ MMU (memory management unit– ) là một cơ chế phần cứng để chuyển

đổi địa chỉ ảo thành địa chỉ vật lý tại thời điểm xử lý.)

Trang 10

- Địa chỉ rào đánh dấu ranh giới giữa vùng nhớ dành cho hệ điều hành (thờng là

vùng nhớ thấp) và vùng nhớ cho tiến trình ngời dùng

Hình 2.5 Bảo vệ dựa vào địa chỉ rào

Khi đó cần phải bảo vệ bộ nhớ dành cho hệ điều hành tránh khỏi sự xâm phạm,tác động của tiến trình ngời dùng Cơ chế dựa vào địa chỉ rào sẽ so sánh địa chỉ màtiến trình ngời dùng truy xuất với giá trị của địa chỉ rào, nếu lớn hơn thì đây là mộttham chiếu chính xác tới vùng nhớ của ngời dùng, ngợc lại không phải là một thamchiếu chính xác, chơng trình bị dừng đa ra một thông báo lỗi tới ngời dùng Chú ý,

địa chỉ rào là địa chỉ vật lý Khi ngời dùng truy xuất đến một địa chỉ logic, CPU sẽchuyển địa chỉ logic này thành địa chỉ vật lý A và so sánh với địa chỉ rào FA

Giá trị của địa chỉ rào có thể đợc lu trong một thanh ghi rào Khi đó, giá trị rào

có thể thay đổi động tuỳ thuộc vào sự thay đổi của kích cỡ OS, đồng thời OS sẽ lugiá trị mới của địa chỉ rào vào trong thanh ghi Các địa chỉ trong chơng trình ngờidùng đợc so sánh với giá trị lu trong thanh ghi rào xem có hợp lệ hay không

Địa chỉ rào

Thanh ghi rào Giá trị địa chỉ rào

Hệ điều hành

Địa chỉ (A)

Sai

Địa chỉ rào (FA)

Hệ điều hành

FA

Trang 11

Hình 2.6 Truy nhập vào bộ nhớ bằng địa chỉ rào

Nhợc điểm:

- Khi bộ nhớ đợc tổ chức theo kiểu đơn chơng, tại một thời điểm chỉ có thể xử

lý một chơng trình, không cho phép nhiều ngời dùng làm việc đồng thời =>lãng phí hiệu suất của CPU

- Nếu bộ nhớ tổ chức theo kiểu đa chơng thì thanh ghi rào chỉ bảo vệ một ớng Có nghĩa là, hệ điều hành có thể đợc bảo vệ đối với ngời dùng nhngthanh ghi rào không thể bảo vệ ngời dùng này trớc ngời dùng khác Bởi vìcha có sự phân định rõ ràng giữa vùng nhớ của các chơng trình ngời dùng

h-Để giải quyết vấn đề này, ta có thể sử dụng các thanh ghi giới hanh/cơ sở đểphân định vùng nhớ giữa cá tiến trình ngời dùng

2.3.2 Tái định vị

Ta biết rằng, trong hệ thống đa chơng với phần vùng cố định, bộ nhớ đợc chia

thành n phân vùng (chú ý là phân vùng vật lý) với kích thớc cố định (các phân vùng

có thể có kích thớc bằng nhau hoặc khác nhau) Các tiến trình có yêu cầu bộ nhớ sẽ

đợc đặt trong hàng đợi, có hai cách tiếp cận để tổ chức hàng đợi:

+ Nhiều hàng đợi: Mỗi phân vùng có một hàng đợi tơng ứng, một tiến trình

sinh ra sẽ đợc đặt vào trong hàng đợi của phân vùng có kích thớc nhỏ nhất nhngvẫn thỏa mẵn nhu cầu chứa tiến trình đó

=> Nhợc điểm: Có hàng đợi thì trống, hàng đợi thì đầy khiến nhiều tiến trình phảichờ đợi để cấp phát bộ nhớ

+ Một hàng đợi: Tất cả các tiến trình đợc đặt trong một hàng đợi duy nhất, khi

có một phân vùng tự do (tự do hoàn toàn cả phân vùng) thì tiến trình đầu tiên tronghàng đợi có kích thớc phù hợp sẽ đợc đặt vào trong phân vùng đó

Nh

ợc điểm :

- Nếu kích thớc của tiến trình không vừa đúng bằng (<) kích thớc của phânvùng chứa nó thì phần bộ nhớ còn lại trong phân vùng sẽ bị lãng phí Đây gọi

là hiện tợng phân mảnh nội vi (internal fragement).

- Mức độ đa chơng của hệ thống sẽ bị giới hạn bởi số lợng phân vùng

- Khi cho phép sự đa chơng, cần giải quyết 2 vấn đề:

+ Tái định vị (relocation) các tiến trình:

Rõ ràng trong hệ thống đa chơng, các tiến trình khác nhau sẽ đợc xử lý, thựchiện ở các vùng địa chỉ vật lý khác nhau Khi liên kết một chơng trình (kết hợp ch-

ơng trình chính với các modul vào cùng một không gian địa chỉ), trình liên kết cần

phải biết chơng trình đợc nạp vào địa chỉ nào trong bộ nhớ

Trang 12

Ví dụ, nếu chơng trình truy xuất đến địa chỉ 100 (địa chỉ logic), và chơngtrình đợc nạp vào phân vùng 1 có địa chỉ vật lý bắt đầu là 100K, thì địa chỉ truyxuất thực sự là 100K+100 = địa chỉ vật lý.

=> Đây là sự tái định vị = chuyển từ địa chỉ logic => địa chỉ vật lý.

+ Bảo vệ các tiến trình: Khi cho phép sự đa chơng, có nhiều tiến trình đồng thời

trong bộ nhớ, do đó cần phải bảo vệ các tiến trình khỏi sự xâm phạm lẫn nhau (Vìlúc này, một tiến trình có thể tạo ra các chỉ thị truy xuất đến một địa chỉ bất kỳtrong bộ nhớ => truy xuất đến dữ liệu của tiến trình khác, nếu nh không có phơngpháp bảo vệ)

Nh vậy, thực chất tái định vị là việc chuyển đổi từ địa chỉ logic của chơng trình

sang địa chỉ vật lý, còn gọi là Sự kết buộc địa chỉ.

- Giả thiết rằng K là giá trị rào, khi đó địa chỉ vật lý của một chơng trình sẽ đợctính bằng cách cộng K với địa chỉ logic của chơng trình đó

- Sự kết buộc có thể xảy ra trong thời điểm biên dịch, thời điểm nạp, thời điểm

xử lý chơng trình

+ Thời điểm biên dịch: Nếu tại thời điểm biên dịch, có thể biết vị trí mà chơng

trình sẽ thờng trú trong bộ nhớ (ví dụ chơng trình sẽ có địa chỉ bắt đầu trong bộnhớ chính là K1 - địa chỉ rào), thì trình biên dịch có thể phát sinh ngay mã lệnhthực thi với các địa chỉ tuyệt đối Trong suốt quá trình biên dịch, địa chỉ trongchơng trình là các địa chỉ dạng tuyệt đối = địa chỉ tơng đối + K1 Sau đó, chơngtrình nạp sẽ nạp mã lệnh thực thi vào vùng nhớ vật lý có địa chỉ băt đầu là K1.Nếu về sau có sự thay đổi vị trí thờng trú lúc đầu của chơng trình (K1 thay đổi),cần phải biên dịch lại chơng trình Do đó, nếu có sự thay đổi địa chỉ rào K1, cónghĩa là địa chỉ thờng trú lúc đầu của chơng trình bị thay đổi, ta cần phải biêndịch lại chơng trình

+ Thời điểm nạp: Nếu trong quá trình biên dịch cha biết vị trí thờng trú của

ch-ơng trình trong bộ nhớ, thì trình biên dịch sẽ sinh ra mã lệnh thực thi tch-ơng đốichứa các địa chỉ tơng đối Mã lệnh đó gọi là object code – mã lệnh đối tợng.Khi nạp chơng trình vào bộ nhớ, những địa chỉ tơng đối đó sẽ đợc chuyển thànhcác địa chỉ tuyệt đối trong bộ nhớ Đây đợc gọi là “tái định vị tĩnh“ Khi có sựthay đổi vị trí lu trữ tiến trình trong bộ nhớ, chỉ cần nạp lại mà không cần biêndịch lại chơng trình

+ Thời điểm xử lý: Nếu có nhu cầu di chuyển tiến trình từ vùng nhớ này sang

vùng nhớ khác trong quá trình xử lý – chạy, thì sự kết buộc địa chỉ cần đợcthực hiện trong thời gian chạy chơng trình Khi đó cần sử dụng cơ chế phầncứng đặc biệt Trong trờng hợp này, địa chỉ của chơng trình khi đợc nạp vào bộnhớ cha phải địa chỉ tuyệt đối, nó có thể đợc tái định vị Và các địa chỉ đó sẽ đ-

ợc chuyển thành địa chỉ tuyệt đối khi chạy chơng trình Đây đợc gọi là “tái

định vị động

12

Trang 13

Chú ý:

- Tái định vị tĩnh: có nghĩa là việc chuyển đổi địa chỉ đợc diễn ra khi biên

dịch hoặc khi nạp chơng trình vào bộ nhớ

- Taí định vị động: có nghĩa là việc chuyển đổi địa chỉ diễn ra khi chạy chơng

trình Nếu K là địa chỉ rào (địa chỉ bắt đầu của chơng trình trong bộ nhớchính) thì tái định vị động cho phép K biến đổi trong suốt thời gian chạy ch-

ơng trình, còn tái định vị tĩnh K là cố định trong suốt thời gian chạy chơngtrình

Ví dụ về tái định động:

Ta đa ra ví dụ về tái định vị động, nh hình dới đây Một chơng trình bắt đầu từ

địa chỉ lôgíc 0 và kết thúc tại địa chỉ lôgíc N Do tái định vị động nên giá trị của

địa chỉ rào K thay đổi trong thời gian chạy của tiến trình Trong thời gian chạy, mỗi

địa chỉ lôgíc R của chơng trình sẽ đợc cộng thêm giá trị có trong thanh ghi rào (K),

tạo ra địa chỉ vật lý (R+K) Địa chỉ này chứa mục dữ liệu hoặc câu lệnh mà CPUthực sự tham chiếu vào

Hình 2.7 Ví dụ về tái định vị động

=> Nh vậy đến đây, ta mới chỉ áp dụng đợc thanh ghi rào để bảo vệ vùng nhớ cho

hệ điều hành tránh khỏi sự xâm phạm, tác động của các tiến trình ngời dùng Đồngthời có thể dùng thanh ghi rào để tái định vị địa chỉ của chơng trình Tuy nhiên, do

sự đa chơng nên có thể có nhiều chơng trình thờng trú trong bộ nhớ trong một thời

điểm, ta không thể tránh đợc sự can thiệp lẫn nhau giữa các tiến trình ngời dùng,tiến trình ngời dùng này vẫn có thể truy nhập vào bất kỳ vùng nhớ nào của các tiếntrình ngời dùng khác Tiếp theo ta sẽ xem cơ chế bảo vệ bộ nhớ dựa vào thanh ghicủa hệ điều hành

2.3.3 Bảo vệ dựa vào thanh ghi

PA FA

Địa chỉ vật lý (PA)

Thanh ghi rào

Địa chỉ logic (LA)

Hệ điều hành

FA = K

CPU

Trang 14

Bổ sung vào cấu trúc phần cứng của máy tính một thanh ghi cơ sở (base register) và một thanh ghi giới hạn (limit register) Khi một tiến trình đợc sinh ra,

nạp vào thanh ghi cơ sở địa chỉ bắt đầu của phân vùng sẽ cấp phát cho tiến trình, vànạp vào thanh ghi giới hạn kích thớc của tiến trình Mỗi địa chỉ bộ nhớ do tiến trình

ngời dùng phát sinh ra đều so sánh với thanh ghi giới hạn, nếu nhỏ hơn nó sẽ đợc tự

động cộng với địa chỉ chứa trong thanh ghi cơ sở để cho ra địa chỉ tuyệt đối trong

bộ nhớ

Hình 2.8 Bảo vệ bộ nhớ bằng các thanh ghi cơ sở/giới hạn

Trong trờng hợp này, thanh ghi cơ sở lu địa chỉ vật lý bắt đầu của phân vùngdành cho tiến trình ngời dùng, thanh ghi giới hạn ghi kích thớc lớn nhất của tiếntrình

Khi tiến trình ngời dùng (CPU) truy xuất đến địa chỉ logic LA, thì phải thỏamãn LA< K (giá trị trong thanh ghi giới hạn), sau đó lấy LA +BA (giá trị trongthanh ghi cơ sở) = PA địa chỉ vật lý Các địa chỉ vật lý đợc tính một cách trực tiếptheo giá trị của thanh ghi cơ sở Giá trị BA có thể thay đổi

=> Ưu điểm: Nhờ sử dụng thanh ghi cơ sở/giới hạn, một tiến trình không thể

truy xuất đến địa chỉ thuộc phân vùng của tiến trình khác Mặt khác nhờ sử dụngthanh ghi cơ sở, ta có thể di chuyển các chơng trình trong bộ nhớ khi chúng bắt đầu

xử lý Khi tiến trình di chuyển đến một vị trí mới, chỉ cần nạp lại giá trị cho thanhghi cơ sở, các địa chỉ tuyệt đối sẽ tự động phát sinh lại mà không cần cập nhật lạicác địa chỉ tơng đối trong chơng trình.)

Hệ điều hành

BA

PA BA+K

Địa chỉ vật lý (PA)

Thanh ghi cơ sở

Địa chỉ cơ sở (BA)

PA:= LA+BA

Trang 15

Nh vậy, các thanh ghi này hỗ trợ tái định vị động, vì ta có thể thay đổi giá trịcủa thanh ghi cơ sở BA, nhng K không thay đổi, do đó địa chỉ vật lý chỉ cần = K +

BA mới

=>Sử dụng các thanh ghi giới hạn/cơ sở giúp bảo vệ hoàn toàn ngời dùng nàyvới ngời dùng khác nghĩa là các lỗi xảy ra trong chơng trình ngời dùng này khônglàm ảnh hởng đến chơng trình của ngời dùng khác Tuy nhiên, vấn đề lại là bảo vệbên trong vùng nhớ của một ngời dùng

Vấn đề 1: Có thể đoạn lệnh sẽ bị ghi đè?

Vì, thực tế chơng trình bao gồm: 1 đoạn lệnh và 1 đoạn dữ liệu Nếu 2 đoạn nàynằm chung một vùng nhớ, giả sử trong một lệnh chứa một biến đợc gán một giá trịnằm ngoài vùng dữ liệu Khi đó CPU tạo ra một biến “ghi” nằm ngoài vùng dữ liệu,biến này có thể thuộc vùng lệnh, khiến cho đoạn lệnh có thể bị ghi đè Do đó cầntách đoạn lệnh và đoạn dữ liêu, đồng thời định rõ quyền thao tác trên các đoạn đó

Đoạn lệnh có thể đợc thực hiện thao tác chạy, đoạn dữ liệu có thể là đọc/ghi.

Để phân biệt các thao tác hay các quyền (có thể thực hiện đợc trên các nội dungcủa một vùng nhớ), ta có thể dựa vào các cơ chế sau:

• Hai cặp thanh ghi

• Kiến trúc gắn nhãn

+ Dùng 2 cặp thanh ghi: Mỗi đoạn lệnh và đoạn dữ liệu đều có một cặp

thanh ghi biên Thanh ghi cho đoạn lệnh đợc gán quyền chỉ đọc, thanh ghi cho

đoạn dữ liệu gán quyền đọc/ghi Nh vậy, do đoạn lệnh chỉ có thể đọc nên khônggây tình trạng ghi đè nữa, đồng thời đoạn lệnh này không thể bị sửa đổi

Hệ điều hành

Đoạn mã ng ời dùng A

Đoạn mã ng ời dùng B Dữ liệu

ng ời dùng A Dữ liệu

ng ời dùng B

Đoạn mã ng ời dùng C Dữ liệu

R/W

Cặp thanh ghi biên cho

đoạn mã B

R R

Cặp thanh ghi biên cho dữ liệu B

R/W

R/W

Trang 16

Hình 2.8 Sử dụng 2 cặp thanh ghi biên

+ Kiến trúc gắn nhãn: Ta vẫn có thể sử dụng giải pháp trên dùng 2 cặp thanh

ghi, tuy nhiên với giải pháp trên sử dụng cặp thanh ghi biên sẽ hạn chế truy nhậptrên cả một vùng địa chỉ liên tục Tuy nhiên, trong một số trơng hợp ta chỉ cần bảo

vệ một số dữ liệu nhất định chứ không phải tất cả, để đảm bảo tính toàn vẹn củachúng Khi đó, ta sử dụng kiến trúc gắn nhãn, mỗi từ nhớ – một địa chỉ đợc gắnnhãn với các quyền thao tác trên đó

Kiến trúc gắn nhãn là một kỹ thuật bảo vệ cho mỗi từ nhớ (word), mỗi địa chỉ

bộ nhớ đợc gắn một nhãn Nhãn này có thể chứa trong 1 hay hơn 1 bit, để thiết lậpcác quyền thao tác có thể thực hiện đợc trên nội dung của địa chỉ đó, mỗi địa chỉ ta

có một nhãn tơng ứng Hai địa chỉ kề bên có thể đợc gắn các nhãn khác nhau Việcgắn nhãn do OS thực hiện theo chế độ đặc quyền

X X X

R 4091

RW 0002

Trang 17

không tơng thích, gây ra lỗi ở đây ta quan tâm đến việc dùng chung một vùng dữliệu, bởi vì việc dùng các thanh ghi biên cũng không kiểm soát đợc các thao táckhác nhau của những ngời dùng khác nhau lên vùng dữ liệu chung đó Còn vớivùng chơng trình, cặp thanh ghi biên cho nó đã xác định quyền chỉ đọc nên không

sợ bị bất kỳ ngời dùng nào thay đổi

=> Giải pháp: Ta vẫn sử dụng 2 cặp thanh ghi để phân tách đoạn lệnh và đoạndữ liệu, tuy nhiên ngời dùng sẽ đợc dùng chung đoạn lệnh (chỉ đọc), còn đoạn dữliệu do từng ngời dùng sở hữu Điều này cho phép, các chơng trình ngời dùng khácnhau sử dụng chung một đoạn mã với dữ liệu khác nhau

Tóm lại, với cơ chế bảo vệ bộ nhớ dựa vào thanh ghi, ta đã giải quyết đợc vấn

đề tránh truy nhập trái phép vào vùng nhớ của hệ điềuh hành cũng nh tránh việccan thiệp trái phép vào vùng nhớ của ngời dùng này với ngời dùng khác

2.3.4 Phân trang

ở các phần trên, ta đề cập đến kiểu cấp phát một vùng nhớ liên tục cho tiếntrình Tuy nhiên, việc cấp phát liên tục vùng nhớ cho tiến trình có thể gây ra sựphân mảnh cho bộ nhớ Giải pháp cho vấn đề này là cho phép không gian địa chỉvật lý của tiến trình không liên tục, nghĩa là có thể cấp phát cho tiến trình nhữngvùng nhớ tự do bất kỳ, không cần liên tục Ta có các kỹ thuật nh: phân trang, phân

đoạn, phân đoạn kết hợp phân trang

ý tởng: Phân bộ nhớ vật lý thành các khối có kích thớc cố định và bằng nhau,

gọi là khung trang (page frame) Không gian địa chỉ (logic) cũng đợc chia thành

các khối có cùng kích thớc với khung trang, đợc gọi là trang (page) Khi cần nạp

một tiến trình vào bộ nhớ để xử lý, các trang của tiến trình sẽ đợc nạp vào nhữngkhung trang còn trống Một tiến trình có N trang sẽ yêu cầu N khung trang tự do

Hình2.10 Mô hình bộ nhớ phân trang

Page 0 Page 1 Page 2

Page 2 Page 0

Page 1

Frame 0 Frame 1 Frame 2

Frame N

Bộ nhớ vật lý

Bộ nhớ logic

Trang 18

Cơ chế chuyển đổi địa chỉ trong kỹ thuật phân trang

Cơ chế phần cứng hỗ trợ chuyển đổi địa chỉ trong kỹ thuật phân trang là bảng trang (page table), và hệ điều hành quản lý trực tiếp bảng trang này Mỗi phần tử

trong bảng trang chứa địa chỉ bắt đầu của một khung trang trong bộ nhớ vật lý Khi

đó cơ chế chuyển đổi địa chỉ đợc thực hiện nh sau: mỗi địa chỉ logic do CPU sinh

ra bao gồm 2 phần (P n , P 0) trong đó :

- P n là số hiệu trang (trong không gian địa chỉ logic) đợc dùng nh chỉ mục đến

phần tử tơng ứng trong bảng trang

- P 0 là địa chỉ tơng đối trong trang (trong không gian logic)

Giả sử Sp là kích thớc của một trang (hay khung trang), khi đó ta có địa chỉ vật

lý tơng ứng với địa chỉ logic trên là L= P n *Sp +P 0 (kích thớc của một trang do phần

cứng quy định)

Hình2.11 Cơ chế phân trang

Cài đặt bảng trang

Trong trờng hợp đơn giản nhất, bảng trang là một tập các thanh ghi đợc sử dụng

để cài đặt bảng trang Tuy nhiên, việc sử dụng các thanh ghi chỉ phù hợp khi bảngtrang có kích thớc nhỏ, nếu bảng trang có kích thớc lớn, nó phải đợc lu trữ trong bộnhớ chính và sử dụng một thanh ghi để lu địa chỉ bắt đầu lu trữ bảng trang

Tổ chức bảng trang

Mỗi hệ điều hành có một phơng pháp riêng để tổ chức và lu 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 nếu khônggian địa chỉ logic có dung lợng quá lớn (>232, 264) thì có hai giải pháp là dùng: phântrang đa cấp hoặc bảng trang nghịch đảo

P n Địa chỉ cơ sở (BA)

Địa chỉ logic

Địa chỉ vật lý

P n: số hiệu trang

P 0: địa chỉ t ơng

đối trong trang

Bảng trang

Ngày đăng: 14/12/2015, 22:57

HÌNH ẢNH LIÊN QUAN

Hình 2.1 Các mức trừu t ợng  của hệ thông máy tính - CÁC CƠ CHẾ AN TOÀN CƠ BẢN CSDL
Hình 2.1 Các mức trừu t ợng của hệ thông máy tính (Trang 2)
Hình 2.2 minh hoạ các chức năng của một OS trong việc hỗ trợ an toàn, trong - CÁC CƠ CHẾ AN TOÀN CƠ BẢN CSDL
Hình 2.2 minh hoạ các chức năng của một OS trong việc hỗ trợ an toàn, trong (Trang 3)
Hình 2.4 Kiểm tra mật khẩu bằng salt 2.3 Bảo vệ bộ nhớ - CÁC CƠ CHẾ AN TOÀN CƠ BẢN CSDL
Hình 2.4 Kiểm tra mật khẩu bằng salt 2.3 Bảo vệ bộ nhớ (Trang 8)
Hình 2.5 Bảo vệ dựa vào địa chỉ rào - CÁC CƠ CHẾ AN TOÀN CƠ BẢN CSDL
Hình 2.5 Bảo vệ dựa vào địa chỉ rào (Trang 10)
Hình 2.7 Ví dụ về tái định vị động - CÁC CƠ CHẾ AN TOÀN CƠ BẢN CSDL
Hình 2.7 Ví dụ về tái định vị động (Trang 13)
Hình 2.8 Bảo vệ bộ nhớ bằng các thanh ghi cơ sở/giới hạn - CÁC CƠ CHẾ AN TOÀN CƠ BẢN CSDL
Hình 2.8 Bảo vệ bộ nhớ bằng các thanh ghi cơ sở/giới hạn (Trang 14)
Hình 2.8 Sử dụng 2 cặp thanh ghi biên - CÁC CƠ CHẾ AN TOÀN CƠ BẢN CSDL
Hình 2.8 Sử dụng 2 cặp thanh ghi biên (Trang 16)
Bảng trang - CÁC CƠ CHẾ AN TOÀN CƠ BẢN CSDL
Bảng trang (Trang 18)
Hình 2.15 Chia sẻ phân đoạn trong kỹ thuật phân đoạn - CÁC CƠ CHẾ AN TOÀN CƠ BẢN CSDL
Hình 2.15 Chia sẻ phân đoạn trong kỹ thuật phân đoạn (Trang 21)
Hình 2.16  Mô hình hệ thống 2.6  Các chuẩn an toàn - CÁC CƠ CHẾ AN TOÀN CƠ BẢN CSDL
Hình 2.16 Mô hình hệ thống 2.6 Các chuẩn an toàn (Trang 26)
Hình 2.19  Khối mô tả tiến trình - CÁC CƠ CHẾ AN TOÀN CƠ BẢN CSDL
Hình 2.19 Khối mô tả tiến trình (Trang 34)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w