Cấu trúc hệ thống Linux bao gồm các lớp sau:
Lớp phần cứng - Bao gồm tất cả các thiết bị ngoại vi (RAM/HDD/CPU ).
Kernel - Thành phần lõi của Hệ điều hành, tương tác trưc tiếp với phần cứng, cung cấp các
dịch vụ cấp thấp tới các thành phần lớp trên.
Shell - Một giao diện tới kernel, ẩn giấu sự phức tạp của các chức năng của Kernel tới
người sử dụng. Nhận các lệnh từ người sử dụng và thực hiện các tính năng của Kernel.
Các tiện ích - Các chương trình tiện ích cung cấp cho người sử dụng hầu hết các tính năng
của Hệ điều hành.
Bạn đang xem trước 20 trang tài liệu Tài liệu Hệ điều hành, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ạng thái.
Quản lý bộ nhớ cung cấp sự bảo vệ bởi việc sử dụng hai thanh ghi, một thanh ghi cơ sở và một
thanh ghi giới hạn. Thanh ghi cơ sở giữ địa chỉ bộ nhớ vật lý nhỏ nhất và thanh ghi giới hạn xác
định kích cớ của dãy. Ví dụ, nếu một thanh ghi cơ sở giữ 300000 và thanh ghi giới hạn là 1209000,
thì khi đó chương trình có thể truy cập tất cả các địa chỉ từ 300000 tới 411999.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 47
Các chỉ lệnh và dữ liệu tới các địa chỉ bộ nhớ có thể được thực hiện theo các cách sau:
Thời gian biên dịch -- Khi nó được biết tại thời gian biên dịch, tại nơi các tiến trình sẽ ở lại,
việc ràng buộc thời gian biên dịch được sử dụng để tạo mã tuyệt đối.
Thời gian tải -- Khi nó không được biết tại thời gian biên dịch, tại nơi tiến trình ở lại trong
bộ nhớ, sau đó bộ biên dịch tạo mã có thể đặt lại vị trí.
Thời gian chạy -- Nếu một tiến trình có thể được di chuyển trong suốt thời gian chạy của
nó từ một phân đoạn bộ nhớ tới phân đoạn khác, thì khi đó việc ràng buộc phải bị trì hoãn
để được thực hiện tại thời gian chạy.
Tải động (dynamic loading)
Trong Dynamic Loading, một đoạn chương trình không được tải tới khi nó được gọi bởi một
chương trình. Tất cả các đoạn được giữ trên đĩa trong định dạng tải có thể đặt lại vị trí. Chương
trình chính được tải vào trong bộ nhớ và được thực hiện. Các phương thức đoạn hoặc môdun
khác được tải theo yêu cầu. Dynamic loading tạo sự tiện ích hóa không gian bộ nhớ tốt hơn và các
đoạn chương trình không sử dụng thì không bao giờ được tải.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 48
Kết nối động
Việc kết nối là tiến trình của việc thu thập và kết nối các module đa dạng của mã và dữ liệu vào
trong một file có thể chạy mà có thể được tải vào trong bộ nhớ và thực hiện. Hệ điều hành có thể
kết nối các thư viện hệ thống tới một chương trình. Khi nó kết nối các thư viện tại thời gian tải, việc
kết nối được gọi là kết nối tĩnh và khi việc kết nối này được thực hiện tại thời điểm của việc thực
hiện, nó được gọi là kết nối động.
Trong kết nối tĩnh, các thư viện kết nối tại thời gian biên dịch, vì thế cỡ mã chương trình trở lên lớn
hơn. Trong khi kết nối động, các thư viện kết nối tại thời gian chạy để cỡ mã chương trình trở lên
nhỏ hơn.
Không gian địa chỉ vật lý – logic
Một địa chỉ tạo bởi một CPU là một địa chỉ logic trong khi địa chỉ thực sự có sẵn trên đơn vị bộ nhớ
là một địa chỉ vật lý. Địa chỉ logic cũng còn được biết như là một địa chỉ ảo.
Các địa chỉ ảo và vật lý là cùng trong giản đồ ràng buộc địa chỉ thời gian biên dịch và thời gian tải.
Các địa chỉ này khác nhau trong biểu đồ ràng buộc địa chỉ thời gian thực hiện.
Tập hợp của tất cả các địa chỉ logic tạo bởi một chương trình liên quan tới không gian địa chỉ logic.
Tập hợp của tất cả các địa chỉ vật lý tương ứng tới các địa chỉ logic liên quan tới không gian địa chỉ
vật lý.
Biểu đồ thời gian chạy từ bộ nhớ ảo tới vật lý được thực hiện bởi đơn vị quản lý bộ nhớ (MMU) mà
là một thiết bị phần cứng. MMU sử dụng kỹ thuật sau để chuyển đổi địa chỉ ảo thành địa chỉ vật lý:
Giá trị của một thanh ghi cơ sở được thêm vào tới mỗi địa chỉ được tạo ra bởi một tiến trình
người sử dụng mà được đối xử như là offset tại thời điểm nó được gửi tới bộ nhớ. Ví dụ,
nếu giá trị thanh ghi cơ sở là 10000, thì một sự thử bởi người dùng để sử dụng các vị trí
địa chỉ 100 sẽ được cấp phát lại tới vị trí 10000.
Chương trình người sử dụng chỉ thực hiện với các địa chỉ ảo. Nó không bao giờ quan sát
các địa chỉ vật lý.
Swapping
Swapping là một kỹ thuật trong đó một tiến trình có thể được trao đổi một cách liên tục bên ngoài
bộ nhớ tới một kho lưu sau (backing store), và sau đó mang lại sau vào trong bộ nhớ để tiếp tục
chạy.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 49
Kho lưu sau thường là một thiết bị đĩa cứng hoặc bất cứ một kho lưu thứ cấp khác mà nhanh trong
truy cập và đủ lớn để đặt vị trí các bản sao của tất cả ảnh bộ nhớ cho tất cả người dùng. Nó phải
có khả năng cung cấp sự truy cập trực tiếp tới các ảnh bộ nhớ này.
Phần lớn thời gian của swapping là thời gian trao đổi. Tổng thời gian trao đổi là trực tiếp tỷ lệ thuận
với lượng bộ nhớ được trao đổi. Giả sử rằng tiến trình sử dụng là 100KB và kho lưu sau là một đĩa
cứng tiêu chuẩn với tỷ lệ trao đổi là 1MB/giây. Thì thời gian thực sự trao đổi của tiến trình 100KB
tới hoặc từ bộ nhớ sẽ là:
100KB / 1000KB mỗi giây
= 1/10 giây
= 100 mini giây
Sự cấp phát bộ nhớ
Bộ nhớ chính thường có hai ngăn:
Low Memory -- Hệ điều hành ở trong bộ nhớ này
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 50
High Memory -- Các tiến trình sử dụng được giữ trong bộ nhớ này.
Hệ điều hành sử dụng các kỹ thuật cấp phát bộ nhớ sau:
STT Sự cấp phát bộ nhớ Miêu tả
1 Sự cấp phát ngăn đơn Trong kiểu cấp phát này, giản đồ thanh ghi
đặt lại vị trí được sử dụng để bảo vệ các
tiến trình người dùng từ các tiến trình người
dùng khác, và từ việc thay đổi mã Hệ điều
hành và dữ liệu. Thanh ghi đặt lại vị trí
chứa giá trị các địa chỉ địa chỉ vật lý nhỏ
nhất, nếu không thanh ghi giới hạn chứa
dãy các địa chỉ logic. Mỗi địa chỉ logic phải
nhỏ hơn thanh ghi giới hạn.
2 Sự cấp phát đa ngăn Trong kiểu cấp phát này, bộ nhớ chính
được phân chia nhỏ thành các ngăn có cỡ
cố định, tại nơi này mỗi ngăn nên chỉ chứa
một tiến trình. Khi một ngăn là rỗi, một tiến
trình được chọn từ hàng đầu vào và được
tải vào trong ngăn rỗi đó. Khi tiến trình hoàn
thành, ngăn này lại sẵn sàng cho tiến trình
khác.
Sự phân mảnh (Fragmentation)
Khi các tiến trình được tải và được gỡ bỏ từ bộ nhớ, phần không gian bộ nhớ rỗi được chia nhỏ
thành nhiều phần. Việc chia nhỏ xảy ra sau một vài lần khi mà các tiến trình không được cấp phát
tới khối bộ nhớ với việc giả sử rằng kích cỡ của chúng là nhỏ và các khối bộ nhớ vẫn chưa được
sử dụng. Vấn đề này được biết như là sự phân mảnh (Fragmentation).
Có hai kiểu Fragmentation:
STT Fragmentation Miêu tả
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 51
1 Sự phân mảnh ngoại vi Tổng không gian bộ nhớ là đủ để thỏa
mãn một yêu cầu hoặc để cư trú một tiến
trình trong đó, nhưng nó không kề nhau để
nó có thể được sử dụng.
2 Sự phân mảnh nội vi Khối bộ nhớ được chỉ định cho tiến trình là
lớn hơn. Một vài phần của bộ nhớ sẽ trở
nên không được sử dụng khi nó không thể
được sử dụng bởi tiến trình khác (đã chỉ
định cho tiến trình trước).
Sự phân mảnh ngoại vi có thể giảm bằng cách nén hoặc trộn các nội dung bộ nhớ ngẫu nhiên để
đặt tất cả các phần bộ nhớ rỗi trong một khối lớn hơn. Để làm cho việc nén trở nên dễ dàng, sự đặt
lại vị trí nên ở trạng thái động.
Kỹ thuật đánh số trang
Sự phân mảnh ngoại vi được tránh bởi kỹ thuật đánh số trang. Trong kỹ thuật này thì bộ nhớ vật lý
được chia nhỏ thành các khối cùng kích thước được gọi là các trang (kích thước là 2, giữa 512
byte và 8192 byte). Khi một tiến trình được thực hiện, các trang tương ứng của nó được tải vào
trong bất kỳ một khung bộ nhớ có sẵn nào.
Không gian địa chỉ logic của một tiến trình có thể không liền kề và một tiến trình được cấp phát bộ
nhớ vật lý bất cứ khi nào khung bộ nhớ rỗi có sẵn. Hệ điều hành theo dõi tất cả các khung bộ nhớ
rỗi. Hệ điều hành cần n khung rỗi để chạy một chương trình với kích cỡ là n trang.
Địac chỉ tạo bởi CPU được phân chia thành:
Số trang (p) -- được sử dụng như là một danh mục trong một bảng trang mà chứa địa chỉ
cơ sở của mỗi trang trong bộ nhớ vật lý.
Offset trang (d) -- được kết nối với địa chỉ cơ bản để xác định rõ địa chỉ bộ nhớ vật lý.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 52
Biểu đồ dưới là cấu trúc bảng trang:
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 53
Kỹ thuật phân đoạn
Sự phân đoạn là một kỹ thuật để phân chia bộ nhớ thành các phần logic nhỏ tại đó mỗi phần đại
diện cho một nhóm thông tin liên quan với nhau. Ví dụ, các phân đoạn dữ liệu hoặc phân đoạn mã
cho mỗi tiến trình, phân đoạn dữ liệu cho Hệ điều hành Sự phân đoạn có thể được thực hiện với
việc sử dụng hoặc không sử dụng kỹ thuật đánh số trang.
Không giống kỹ thuật đánh số trang, phân đoạn là có nhiều kích cỡ và như vậy nó khử sự phân
mảnh nội vi. Sự phân mảnh ngoại vi vẫn tồn tại nhưng với phạm vi nhỏ hơn.
Địa chỉ được tạo ra bởi CPU được phân chia thành:
Số phân đoạn (s) -- được sử dụng như là một chỉ mục trong bảng phân đoạn mà chứa địa
chỉ cơ bản của mỗi phân đoạn trong bộ nhớ vật lý và giới hạn của phân đoạn.
Offset phân đoạn (o) -- được kiểm tra đầu tiên để so sánh với giới hạn và sau đó được kết
nối với địa chỉ cơ sở để xác định rõ địa chỉ bộ nhớ vật lý.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 54
Bộ nhớ ảo trong OS
Bộ nhớ ảo là một kỹ thuật mà cho phép việc thực hiện các tiến trình mà không hoàn toàn có sẵn
trong bộ nhớ. Lợi thế thấy rõ chính của giản đồ này là chương trình đó có thể lớn hơn bộ nhớ vật
lý. Bộ nhớ ảo là phần riêng biệt của bộ nhớ logic người dùng từ bộ nhớ vật lý.
Phần riêng biệt này cho phép một bộ nhớ ảo lớn được cung cấp cho các người lập chương trình
khi mà chỉ có bộ nhớ vật lý nhỏ hơn là có sẵn. Dưới đây là các tình huống, khi toàn bộ chương
trình là không được yêu cầu tải toàn bộ trong bộ nhớ chính:
Các đoạn chương trình kiểm soát lỗi được viết bởi người dùng chỉ được sử dụng khi một lỗi
xảy ra trong dữ liệu hoặc trong tính toán.
Các chức năng và tính năng nào đó của chương trình hiếm khi được sử dụng.
Nhiều bảng được chỉ định một số lượng cố định không gian địa chỉ ngay cả khi chỉ có một
số lượng bảng thực sự được sử dụng.
Khả năng để chạy một chương trình mà chỉ một phần trong bộ nhớ sẽ đem lại nhiều lợi ích.
Số lượng ít các I/O cần để tải hoặc trao đổi mỗi chương trình người dùng trong bộ nhớ.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 55
Một chương trình có thể không bị hạn chế bởi số lượng bộ nhớ vật lý có sẵn.
Mỗi chương trình người dùng có thể dùng ít bộ nhớ vật lý hơn, nhiều chương trình có thể
chạy cùng một thời điểm, với sự tăng lên tương ứng của việc tiện ích hóa CPU.
Bộ nhớ ảo thường được thực hiện bởi kỹ thuật đánh số trang yêu cầu. Nó cũng có thể được thực
hiện trong hệ thống phân đoạn. Sự phân đoạn yêu cầu có thể cũng được sử dụng để cung cấp bộ
nhớ ảo.
Kỹ thuật đánh số trang yêu cầu (demand paging)
Hệ thống đánh số trang yêu cầu là khá giống với hệ thống đánh số trang với việc swapping. Khi
chúng ta muốn thực hiện một chương trình, chúng ta trao đổi nó vào trong bộ nhớ. Thay vì việc
trao đổi toàn bộ tiến trình vào trong bộ nhớ, chúng ta sử dụng một máy nhắn tin pager.
Khi một tiến trình được trao đổi, pager dự đoán các trang nào sẽ được sử dụng trước khi tiến trình
được trao đổi lại ra ngoài. Thay vì trao đổi trong một tổng thể chương trình, pager chỉ mang những
trang cần thiết vào trong bộ nhớ. Vì thế, nó tránh đọc các trang bộ nhớ mà sẽ không được sử
dụng, giảm được thời gian trao đổi và lượng bộ nhớ vật lý cần thiết.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 56
Sự hỗ trợ phần cứng là cần thiết để phân biệt giữa các trang mà trong bộ nhớ với các trang trong
phần cứng. Tại nơi các trang có hiệu lực và không có hiệu lực có thể được kiểm tra bởi việc kiểm
tra bit. Đánh dấu một trang sẽ không hiệu quả nếu tiến trình không bao giờ thử truy cập vào trang.
Trong khi tiến trình thực hiện và truy cập vào trang mà ở trong bộ nhớ, sự thực hiện được tiến
hành bình thường.
Truy cập tới một trang được đánh dấu là không hiệu lực vì một bẫy trang lỗi (page-fault trap). Bẫy
này là kết quả của lỗi hệ thống để mang các trang yêu cầu vào trong bộ nhớ. Nhưng lỗi trang có
thể được giải quyết như sau:
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 57
Bước Miêu tả
Bước 1 Kiểm tra một bảng nội vi cho tiến trình này, để xác định sự
liên hệ là hiệu lực hay không hoặc nó là một sự truy cập bộ
nhớ không hiệu lực.
Bước 2 Nếu sự liên hệ là không hiệu lực, kết thúc tiến trình. Nếu nó
là hiệu lực, nhưng trang vẫn chưa được mang vào, trang ở
thứ tự sau.
Bước 3 Tìm một khung rỗi.
Bước 4 Lập giản đồ một hoạt động đĩa để đọc trang yêu cầu vào
trong khung được cấp phát mới nhất.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 58
Bước 5 Khi đọc đĩa kết thúc, chỉnh sửa bảng nội vi được giữ cùng
với tiến trình và bảng trang để chỉ dẫn rằng trang bây giờ
trong bộ nhớ.
Bước 6 Bắt đầu lại chỉ lệnh mà đã bị ngắt bởi bẫy địa chỉ không hợp
lệ. Tiến trình bây giờ có thể truy cập vào trang. Bởi vậy, Hệ
điều hành đọc các trang yêu cầu vào trong bộ nhớ và bắt
đầu lại tiến trình khi mà trang đã luôn luôn ở trong bộ nhớ.
Các lợi thế
Dưới đây là các lợi thế của Đánh số trang yêu cầu:
Bộ nhớ ảo lớn.
Hiệu quả hơn trong việc sử dụng bộ nhớ.
Đa chương trình không bị gò bó. Không có giới hạn về mức độ đa chương trình.
Các bất lợi
Dưới đây là các bất lợi của Đánh số trang yêu cầu:
Số lượng các bảng và lượng bộ xử lý vượt quá để giải quyết việc ngắt trang là lớn hơn
trong trường hợp các kỹ thuật quản lý đánh trang đơn.
Do thiếu một sự ràng buộc rõ ràng trên một kích cỡ không gian địa chỉ công việc.
Thuật toán đổi vị trí trang
Thuật toán đổi vị trí trang là các kỹ thuật sử dụng mà Hệ điều hành quyết định các trang bộ nhớ
nào được trao đổi, viết vào đĩa khi một trang của bộ nhớ cần được cấp phát. Đánh số trang xảy ra
bất cứ khi nào một lỗi trang xảy ra và một trang rỗi không thể được sử dụng cho mục đích cấp
phát, lý do mà các trang không có sẵn hoặc số trang rỗi là ít hơn các trang yêu cầu.
Khi trang mà được chọn để đổi vị trí và được đánh trang, được liên hệ lại thì khi đó nó phải đọc từ
đĩa, và yêu cầu này cho sự kết thúc I/O. Tiến trình này quyết định loại thuật toán đổi vị trí trang:
thời gian đợi để trang vào ít hơn, thì thuật toán là tốt hơn. Một thuật toán đổi vị trí trang quan sát
thông tin bị giới hạn về việc truy cập vào các trang được cung cấp bởi phần cứng, và cố gắng để
chọn các trang nào nên được đổi vị trí để tối thiểu hóa tổng lượng trang bị quên, trong khi việc cân
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 59
bằng nó với phí tổn của kho lưu sơ cấp và thời gian bộ xử lý của chính thuật toán. Có nhiều thuật
toán đổi vị trí trang khác nhau. Chúng ta tính toán một thuật toán bằng việc chạy nó trên một chuỗi
cụ thể của bộ nhớ tham chiếu và tính toán lượng trang lỗi.
Chuỗi tham chiếu
Chuỗi tham chiếu được tạo ra một cách giả tạo hoặc bằng cách lần theo một hệ thống đã cho và
ghi lại địa chỉ của mỗi tham chiếu bộ nhớ. Sự chọn sau tạo một số lớn dữ liệu, tại nơi này chúng ta
viết hai thứ sau:
Với một cỡ trang đã cho chúng ta cần suy xét chỉ số trang, không phải toàn bộ địa chỉ.
Nếu chúng ta có một sự tham chiếu tới một trang, thì khi đó bất kỳ các tham chiếu sau ngay
lập tức tới trang p sẽ không bao giờ gây ra lỗi trang. Trang p sẽ trong bộ nhớ sau tham
chiếu đầu tiên; các tham chiếu sau ngay lập tức sẽ lỗi.
Ví dụ, giả sử có dãy các địa chỉ liên tục sau: 123,215,600,1234,76,96.
Nếu cỡ trang là 100 thì khi đó chuỗi tham chiếu là 1,2,6,12,0,0.
Thuật toán Vào đầu ra đầu (First In First Out - FIFO)
Các trang vào đầu tiên trong bộ nhớ là một trang được chọn để đổi vị trí.
Dễ dàng để thực hiện, giữ một danh sách, đổi các trang từ đuôi và thêm các trang mới tại
đầu.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 60
Thuật toán Trang quang học
Thuật toán đổi vị trí trang quang học có tỉ lệ trang lỗi ít nhất trong tất cả các thuật toán. Một
thuật toán đổi vị trí quang học tồn tại và đã được gọi là OPT hoặc MIN.
Đổi vị trí trang mà không được sử dụng cho thời gian dài nhất. Sử dụng thời gian khi một
trang được sử dụng.
Thuật toán Được sử dụng gần đây nhất (Least
Recently Used - LRU)
Trang mà không được sử dụng cho thời gian dài nhất trong bộ nhớ chính là một trang được
chọn để đổi vị trí.
Dễ dàng để thực hiện, giữ một danh sách, đổi các trang bởi việc quan sát các lần nhập
trang sau.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 61
Thuật toán Chuyển hoán đệm trang
Để bắt đầu tiến trình một cách nhanh chóng, giữ một pool của các khung rỗi.
Trên trang lỗi, chọn một trang để được đổi vị trí.
Viết trang mới trong khung rỗi, đánh dấu bảng trang và bắt đầu lại tiến trình.
Bây giờ viết trang lỗi ra đĩa và đặt vị trí khung giữ trang đổi vị trí trong khu vực rỗi.
Thuật toán Được sử dụng thường xuyên ít nhất (Least
frequently Used - LFU)
Trang với lượng tính nhỏ nhất là một trang được chọn để đổi vị trí.
Thuật toán này được sử dụng nhiều trong giai đoạn đầu của tiến trình, nhưng sau đó nó
không bao giờ được sử dụng lại.
Thuật toán Được sử dụng thường xuyên nhất (Most
Frequently Used MFU)
Thuật toán này trên cơ sở trang với tính toán trang nhỏ nhất là có thể được mang vào trong
và chưa được sử dụng.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 62
Phần cứng Nhập/Xuất (IO) trong OS
Tổng quan
Máy tính hoạt động trên nhiều loại thiết bị. Các loại chung bao gồm các thiết bị lưu trữ (các đĩa, các
băng), các thiết bị trao đổi (các thẻ mạng hệ thống, các modem) và các thiết bị giao diện người
dùng (màn hình, bàn phím, chuột). Các thiết bị khác thì đặc biệt hơn. Một thiết bị giao tiếp với hệ
thống máy tính bằng việc gửi các tín hiệu thông qua một cáp hoặc thông qua không khí.
Thiết bị giao tiếp với máy móc thông qua một điểm kết nối đặt trong một cổng (port) (ví dụ: một
serial port). Nếu một hoặc nhiều thiết bị sử dụng một bộ dây wire chung, sự kết nối này được gọi là
bus. Một bus là một bộ thiết lập của các wire và một giao thức được xác định rõ một cách cứng
nhắc mà xác định một bộ thiết lập các thông báo có thể được gửi trên các wire.
Chuỗi daisy
Khi thiết bị A có một cáp mà cắm vào trong thiết bị B, và thiết bị B có một cáp cắm vào thiết bị C, và
thiết bị C cắm vào trong một port trên máy tính, sự sắp xếp này được gọi là daisy chain. Nó thường
tổ chức như là một bus.
Bộ điều khiển
Là một tập hợp các thiết bị điện tử mà có thể điều hành một port, một bus, hoặc một thiết bị. Một
bộ điều khiển serial port là một ví dụ của một bộ điều khiển thiết bị đơn. Đây là một chip trong máy
tính mà điều khiển các tín hiệu trên các wire của một serial port.
Bộ điều khiển SCSI bus thường được thực hiện như là một bảng mạch riêng mà cắm vào trong
máy tính. Nó chứa một bộ xử lý, vi cốt, và một vài bộ nhớ tư nhân để cho nó khả năng xử lý các
thông báo giao thức SCSI. Một vài thiết bị có các bộ điều khiển riêng được xây dựng trong nó.
Cổng I/O
Một cách đặc trưng thì I/O port chứa 4 thanh ghi được gọi là các thanh ghi trạng thái, điều khiển,
dữ liệu nhập và dữ liệu ra:
STT Thanh ghi & Miêu tả
1 Thanh ghi trạng thái
Chứa các bit mà có thể sẵn sàng bởi host. Những bit này chỉ trạng
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 63
thái mà có hay không các lệnh hiện tại đã hoàn thành, có hay không
một byte là có sẵn để được đọc từ thanh ghi đầu vào, và có hay
không đã có một thiết bị bị lỗi.
2 Thanh ghi điều khiển
Thanh ghi điều khiển này có thể được viết bởi host để bắt đầu một
lệnh hoặc để thay đổi chế độ của một thiết bị. Ví dụ, một bit ngẫu
nhiên trong thanh ghi điều khiển của một serial port chọn giữa sự giao
tiếp full-duplex và half-duplex, cái khác cho khả năng ngang bậc kiểm
soát, một bit thứ ba thiết lập độ dài từ từ 7-8 bit, các bit khác chọn
một trong những tốc độ được hỗ trợ bởi serial port.
3 Thanh ghi dữ liệu nhập
Thanh ghi dữ liệu nhập được đọc bởi host để nhận dữ liệu đầu vào.
4 Thanh ghi dữ liệu ra
Thanh ghi dữ liệu ra được viết bởi host để gửi kết quả đầu ra.
Polling
Polling là một tiến trình bởi nó mà một host đợi cho bộ điều khiển phản hồi. Nó là một tiến trình lặp,
đọc trạng thái thanh ghi thông qua các bit bận của thanh trạng thái đến hết. Bộ điều khiển sử
dụng/thiết lập bit bận khi nó đang làm việc trên một lệnh, và làm sạch các bit bận khi nó là sẵn
sàng để chấp nhận lệnh tiếp. Host báo hiệu điều nó muốn thông qua bit lệnh-sẵn sàng trong thanh
lệnh. Host thiết lập bit này khi một lệnh là có sẵn cho bộ điều khiển để thực hiện.
Trong ví dụ sau, host viết kết quả đầu ra thông qua một port, mà kết nối với bộ điều khiển:
Host lặp đi lặp lại đọc bit bận tới khi bit đó trở nên rỗng.
Host thiết lập bit viết trong thanh lệnh và viết một byte vào trong thanh dữ liệu đầu ra.
Host thiết lập bit lệnh-sẵn sàng.
Khi bộ điều khiển thông báo rằng bit lệnh-sẵn sàng đã được thiết lập, nó thiết lập bit bận.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 64
Bộ điều khiển đọc thanh lệnh và quan sát lệnh write.
Nó đọc thanh dữ liệu đầu ra để nhận các byte, và thực hiện I/O tới thiết bị.
Bộ điều khiển dọn sạch bit lệnh-sẵn sàng, dọn sạch bit lỗi trong thanh trạng thái để chỉ rằng
các thiết bị I/O thực hiện thành công, và dọn sạch bit bận để chỉ rằng nó đã hoàn thành.
Các thiết bị I/O
Các thiết bị I/O có thể được phân thành các loại sau:
STT Loại & Miêu tả
1 Người dùng có thể đọc
Các thiết bị người dùng có thể đọc phù hợp cho giao tiếp với người
sử dụng máy tính. Các ví dụ là máy in, video, bàn phím
2 Máy móc có thể đọc
Các thiết bị máy móc có thể đọc phù hợp cho giao tiếp với các thiết bị
điện tử. Các ví dụ là các đĩa, băng, bộ điều khiển.
2 Giao tiếp
Các thiết bị trao đổi thông tin phù hợp cho giao tiếp với các thiết bị
điều khiển. Các ví dụ là các đường dây dẫn kỹ thuật và các modem.
Dưới đây là sự khác nhau giữa các thiết bị I/O:
STT Tiêu chuẩn & Miêu tả
1 Tỉ lệ dữ liệu
Có thể có sự khác biệt về các bậc cường độ giữa các tỉ lệ truyền tải
dữ liệu.
2 Ứng dụng
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 65
Các thiết bị khác nhau có sự sử dụng khác nhau trong hệ thống.
3 Tính phức tạp của điều khiển
Một đĩa thì phức tạp hơn trong khi máy in yêu cầu giao thức tương
tác điều khiển đơn.
4 Đơn vị truyền tải
Dữ liệu có thể được truyền tải như là một luồng các byte hoặc các ký
tự hoặc trong các khối lớn hơn.
5 Sự đại diện (mã hóa) cho dữ liệu
Các giản đồ mã hóa dữ liệu khác nhau được sử dụng cho các thiết bị
khác nhau.
6 Các điều kiện lỗi
Khác nhau một cách rộng rãi cho từng thiết bị.
Sự truy cập bộ nhớ trực tiếp (DMA)
Nhiều máy tính tránh gánh nặng của CPU chính với I/O được chương trình hóa bởi việc dừng tải
một vài công việc tới bộ xử lý mục đích đặc biệt. Kiểu này của bộ xử lý được gọi là một bộ điều
khiển truy cập bộ nhớ trực tiếp. Một đơn vị điều khiển đặc biệt được sử dụng để truyền tải khối dữ
liệu một cách trực tiếp giữa các thiết bị ngoại vi và bộ nhớ chính, mà không cần sự can thiệp của
bộ xử lý. Hướng tiếp cận này được gọi là Direct Memory Access (DMA).
DMA có thể được sử dụng với phần mềm polling hoặc phần mềm ngắt. DMA là đặc biệt hữu ích
trên các thiết bị như các đĩa, nơi mà rất nhiều byte thông tin có thể được truyền tải trong các hoạt
động I/O đơn. Khi sử dụng với một phần mềm ngắt, CPU được thông báo chỉ sau khi cả khối của
dữ liệu đã được truyền tải. Đối với mỗi byte hoặc từ được truyền tải, nó phải cung cấp địa chỉ bộ
nhớ và tất các tín hiệu bus điều khiển việc truyền tải dữ liệu. Tương tác với bộ điều khiển thiết bị
được quản lý thông qua một driver thiết bị.
Handshaking là một tiến trình giữa bộ điều khiển DMA và bộ điều khiển thiết bị. Nó được thực hiện
thông qua các wire bằng sử dụng các mục yêu cầu DMA và sự công nhận DMA.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 66
Bước Miêu tả
1 Driver thiết bị được chỉ dẫn để truyền tải dữ liệu từ đĩa tới một bộ
đệm địa chỉ X.
2 Driver thiết bị sau đó chỉ dẫn bộ điều khiển đĩa để truyền tải dữ liệu
tới bộ đệm.
3 Bộ điều khiển đĩa bắt đầu truyền tải DMA.
4 Bộ điều khiển đĩa gửi từng byte tới bộ điều khiển DMA.
5 Bộ điều khiển DMA truyền tải các byte tới bộ đệm, làm tăng địa chỉ
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 67
bộ nhớ, giảm bộ đếm từ C tới 0.
6 Khi C trở về 0, DMA ngắt CPU để gửi tín hiệu việc hoàn thành
truyền tải.
Các bộ điều khiển thiết bị
Một hệ thống máy tính chứa nhiều kiểu thiết bị I/O và các bộ điều khiển riêng phần.
Thẻ hệ thống
Đầu đọc đồ họa (graphics adapter)
Bộ điều khiển đĩa
Bộ điều khiển DVD-ROM
Serial port
USB
Thẻ âm thanh
Phần mềm Nhập/Xuất (I/O) trong OS
Các phần mềm ngắt (interrupts)
Phần cứng CPU sử dụng một đường wire yêu cầu ngắt mà giúp CPU cảm nhận sau khi thực hiện
mỗi chỉ lệnh. Khi CPU kiểm tra rằng một bộ điều khiển đã đặt một tín hiệu trên dây yêu cầu ngắt,
CPU lưu trạng thái, như giá trị hiện tại của điểm con trỏ chỉ lệnh, và nhảy tới đoạn kiểm soát ngắt
tại một địa chỉ cố định. Phần kiểm soát ngắt quyết định việc gây ra ngắt, thực hiện tiến trình cần
thiết và chạy một chỉ lệnh ngắt để trả lại tới CPU về trạng thái thực hiện của nó.
Kỹ thuật ngắt cơ bản cho CPU khả năng để phản hồi tới một sự kiện không đồng bộ, như khi một
bộ điều khiển thiết bị trở lên sẵn sàng để phục vụ. Hầu hết CPU có hai đường dây yêu cầu ngắt:
Ngắt không che dấu (non-maskable) - Loại này được dành cho những sự kiện như các lỗi
bộ nhớ mà không thể phát hiện.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 68
Ngắt che dấu (maskable) - Loại này có thể được chuyển đổi tắt bởi CPU trước khi sự thực
hiện của các chỉ lệnh quan trọng mà không được ngắt.
Kỹ thuật ngắt chấp nhận một địa chỉ - một số mà chọn chức năng/đoạn điều khiển ngắt đặc trưng
từ một bộ thiết lập nhỏ. Trong hầu hết các cấu trúc, địa chỉ này là một kho lưu offset trong một
bảng được gọi là bảng vecto ngắt. Vecto này chứa các địa chỉ bộ nhớ của các bộ điều khiển ngắt
đặc biệt.
Giao diện I/O ứng dụng
Giao diện I/O ứng dụng đại diện cho các kỹ thuật cấu trúc và các giao diện cho Hệ điều hành để
cho các thiết bị I/O khả năng để đối xử theo một cách tiêu chuẩn, đồng nhất. Sự khác nhau thực sự
nằm ở các modun mức độ hạt nhân gọi bộ điều khiển thiết bị mà được thiết kế riêng tương ứng
cho các thiết bị nhưng chỉ một trong các giao diện tiêu chuẩn được áp dụng. Mục đích của bộ điều
khiển thiết bị là để ẩn dấu sự khác nhau trong các bộ điều khiển thiết bị từ hệ thống phụ I/O của hạt
nhân, như các triệu hồi hệ thống I/O. Dưới đây là các đặc trưng của các giao diện I/O riêng tới các
thiết bị:
Ký tự-luồng / khối - Một thiết bị ký tự-luồng/khối truyền tải các byte theo kiểu một tới một,
nếu không thì một thiết bị khối truyền tải một đơn vị đầy đủ đầy đủ của các byte.
Liên tục / ngẫu nhiên-truy cập - Một thiết bị liên tục truyền tải dữ liệu theo một thứ tự cố
định được quyết định bởi thiết bị, thiết bị ngẫu nhiên/truy cập có thể được ra chỉ lệnh để tìm
kiếm vị trí tới bất cứ các vị trí kho lưu dữ liệu có sẵn nào.
Đồng bộ / không đồng bộ - Một thiết bị đồng bộ thực hiện việc truyền tải dữ liệu với thời
gian phản hồi đã biết trong khi đó một thiết bị không đồng bộ chỉ thời gian truyền tải không
dự đoán được.
Có thể chia sẻ / chuyên dụng - Một thiết bị có thể chia sẻ có thể được sử dụng đồng thời
bởi một vài tiến trình hoặc chuỗi trong khi một thiết bị chuyên dụng không thể được sử
dụng như vậy.
Tốc độ hoạt động - Các tốc độ thiết bị có thể xếp dãy từ một vài byte mỗi giây tới một vài
GB mỗi giây.
Viết-đọc, chỉ đọc hoặc chỉ viết - Một vài thiết bị thực hiện cả đầu vào và đầu ra, nhưng
những cái khác chỉ hỗ trợ một chiều dữ liệu mà chỉ đọc.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 69
Các đồng hồ xung
Các đồng hồ xung cũng được gọi là bộ đếm thời gian. Phần mềm đồng hồ xung nhận mẫu của một
bộ điều khiển thiết bị dù cho một đồng hồ xung không là một thiết bị khối hoặc là một thiết bị trên
cơ sở ký tự. Phần mềm đồng hồ xung là driver đồng hồ xung. Chức năng chính xác của bộ điều
khiển này có thể đa dạng phụ thuộc vào Hệ điều hành. Một cách chung nhất, các chức năng của
bộ điều khiển này bao gồm:
STT Nhiệm vụ Miêu tả
1 Duy trì thời gian của ngày Bộ điều
khiển
đồng hồ
xung
thực hiện
thời gian
của ngày
hoặc
chức
năng
đồng hồ
thời gian
thực. Nó
yêu cầu
việc
lượng gia
một bộ
đếm tại
mỗi tích
tắc đồng
hồ.
2 Ngăn cản tiến trình chạy thời gian quá dài Khi một
tiến trình
bắt đầu,
giản đồ
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 70
khởi tạo
bộ đếm
lượng tử
trong các
tích tắc
đồng hồ
cho tiến
trình. bộ
điều
khiển
đồng hồ
xung
giảm bộ
đếm
lượng tử
về 1, tại
điểm mà
mỗi đồng
hồ ngắt.
Khi bộ
đếm về
0, driver
này gọi
giản đồ
để thiết
lập tiến
trình
khác. Do
đó, bộ
điều
khiển
đồng hồ
xung
giúp
ngăn
ngừa tiến
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 71
trình
chạy dài
hơn thời
gian
được
phép.
3 Thống kê kế toán về sự sử dụng CPU Chức
năng
khác
thực hiện
bởi bộ
điều
khiển
đồng hồ
xung là
thống kê
kế toán
sự sử
dụng
CPU.
Thống kê
này nói
rằng thời
gian tiến
trình
chạy là
bao lâu.
4 Cung cấp bộ bấm giờ watchdog cho mỗi phần của chính
hệ thống
Bộ đồng
hồ bấm
giờ
watchdog
là các bộ
thiết lập
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 72
đồng hồ
bấm giờ
bởi các
phần nào
đó của
hệ thống.
Ví dụ, để
sử dụng
đĩa mềm,
hệ thống
phải bật
động cơ
và sau
đó đợi
trong 500
mini giây
cho nó
khởi
động tới
tốc độ
hoạt
động.
Hệ thống phụ Kernel I/O
Hệ thống phụ này có chức năng cung cấp nhiều dịch vụ liên quan tới I/O. Dưới đây là một số dịch
vụ được cung cấp:
Lập giản đồ - Kernel lập giản đồ một bộ các yêu cầu I/O để quyết định một thứ tự tốt trong
đó để thực hiện chúng. Khi một ứng dụng thông báo một triệu hồi hệ thống I/O đóng khối,
yêu cầu được đặt trên hàng cho thiết bị đó. Bộ giản đồ hạt nhân I/O sắp xếp lại thứ tự của
hàng để cải thiện hiệu quả toàn hệ thống và thời gian phản hồi trung bình bởi các ứng
dụng.
Tạo đệm - Hệ thống phụ hạt nhân I/O duy trì một khu vực bộ nhớ mà được biết đến như là
bộ đệm mà lưu dữ liệu trong khi chúng được truyền tải giữa hai thiết bị hoặc giữa một thiết
bị với một hoạt động ứng dụng. Tạo đệm được thực hiện để đối phó với một tốc độ không
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 73
kết nối giữa nhà sản xuất và khách hàng về luồng dữ liệu hoặc để thích nghi giữa các thiết
bị mà có cỡ dữ liệu truyền tải khác nhau.
Bộ nhớ ẩn - Kernel duy trì một bộ nhớ ẩn (thường gọi là bộ nhớ cây - cache) mà là miền bộ
nhớ nhanh mà giữ các bản sao của dữ liệu. Truy cập vào bản sao bộ nhớ ẩn này là hiệu
quả hơn truy cập vào bộ nhớ ban đầu.
Điều kiện hạn chế thiết bị và spooling Một spool là một bộ đệm mà giữ đầu ra cho một
thiết bị, như máy in, mà không thể chấp nhận các luồng dữ liệu được chen vào. Hệ thống
spooling sao chép các ống file được sắp hàng tới máy in tại một thời điểm. Trong một vài
Hệ điều hành, spooling được quản lý bởi tiến trình daemon hệ thống. Trong các Hệ điều
hành khác, nó được kiểm soát bởi một thread hạt nhân.
Kiểm soát lỗi Một Hệ điều hành mà sử dụng bộ nhớ được bảo vệ có thể tránh được nhiều
loại lỗi phần cứng và lỗi ứng dụng.
Bộ điều khiển thiết bị
Bộ điều khiển thiết bị là một chương trình hoặc một đoạn chương trình cho một thiết bị I/O. Một bộ
điều khiển thiết bị thực hiện các hoạt động I/O hoặc chạy trên một loại thiết bị đặc biệt. Ví dụ, một
hệ thống hỗ trợ một hoặc nhiều các nhãn điện cực, tất cả các điện cực khác nhau chút ít này có
thể có một bộ điều khiển điện cực đơn. Trong cấu trúc lớp của hệ thống I/O, bộ điều khiển thiết bị
nằm giữa bộ kiểm soát ngắt và phần mềm I/O độc lập. Công việc của bộ điều khiển thiết bị như
sau:
Chấp nhận yêu cầu từ phần mềm độc lập thiết bị ở trên nó.
Quan sát tới các yêu cầu được thực hiện.
Cách một bộ điều khiển thiết bị kiểm soát một yêu cầu như sau: Giả sử một yêu cầu tới để đọc một
khối N. Nếu bộ điều khiển là rỗi tại thời điểm một yêu cầu đến, nó bắt đầu thực hiện yêu cầu ngay
lập tức. Nếu không thì, nếu thiết bị đã bận với một vài yêu cầu khác, nó đặt yêu cầu mới trong
hàng yêu cầu trong lúc chờ đợi.
Hệ thống file trong OS
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 74
File
Một file là một tập hợp được đặt tên của các thông tin liên quan mà được ghi vào kho lưu thứ cấp
như các đĩa từ, các băng từ và các đĩa quang. Về tổng thể, một file là một sự sắp hàng của các bit,
các byte, các dòng hoặc các bản ghi mà ý nghĩa của nó được xác định rõ bởi người tạo ra nó.
Cấu trúc file
Cấu trúc file là một cấu trúc, mà theo một định dạng được yêu cầu để Hệ điều hành có thể hiểu.
Một file có một cấu trúc xác định nào đó theo kiểu của nó.
Một file văn bản là một chuỗi liên tục các ký tự được tổ chức trong các dòng.
Một file nguồn là một chuỗi liên tục các phương thức và chức năng.
Một file đối tượng là một chuỗi liên tục các byte được tổ chức vào trong các khối mà có thể
hiểu bởi máy móc.
Khi Hệ điều hành định nghĩa các cấu trúc file khác nhau, nó cũng chứa code để hỗ trợ
những cấu trúc file này. Unix, MS-DOS hỗ trợ số lượng nhỏ nhất các cấu trúc file.
Kiểu file
Kiểu file liên quan tới khả năng của Hệ điều hành để phân biệt các kiểu khác nhau của file như các
file văn bản, các file nguồn, và các file nhị phân. Rất nhiều Hệ điều hành hỗ trợ nhiều kiểu file
khác nhau. Hệ điều hành như MS-DOS và Unix có các kiểu file sau:
Các file thường
Đây là các file chứa thông tin người dùng.
Những file này chứa văn bản, cơ sở dữ liệu hoặc chương trình có thể chạy được.
Người dùng có thể áp dụng các hoạt động đa dạng trên những file này như thêm, chỉnh
sửa, xóa hoặc gỡ bỏ toàn bộ file.
File thư mục
Những file này chứa danh sách các tên file và thông tin khác liên quan đến những file này.
Các file đặc biệt
Những file này cũng được biết như những file thiết bị.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 75
Đại diện cho các thiết bị vật lý như các đĩa, các máy in, mạng hệ thống,
Những file này có hai kiểu:
Các file ký tự đặc biệt - Dữ liệu được điều khiển tới từng ký tự như trong trường hợp các
điện cực hoặc máy in.
Các file khối đặc biệt - Dữ liệu được điều khiển trong các khối như trong trường hợp của
các đĩa và các băng.
Kỹ thuật truy cập file
Kỹ thuật truy cập file liên quan đến phương thức mà trong đó các bản ghi của file được truy cập.
Có một số cách sau để truy cập vào file:
Truy cập liên tục
Truy cập trực tiếp/ngẫu nhiên
Truy cập liên tục theo chỉ mục
Truy cập liên tục
Trong sự truy cập này thì các bản ghi được truy cập trong một vài dãy, ví dụ như thông tin trong file
được xử lý theo thứ tự, bản ghi này tới bản ghi sau. Phương thức truy cập này là nguyên sơ nhất.
Ví dụ: bộ biên dịch thường truy cập vào các file theo cách này.
Sự truy cập trực tiếp/ngẫu nhiên
Hoạt động truy cập file ngẫu nhiên cung cấp việc truy cập các bản ghi một cách trực tiếp.
Mỗi bản ghi có địa chỉ riêng của nó trên file, với sự giúp đỡ này nó có thể được truy cập trực
tiếp để đọc hoặc viết.
Các bản ghi không cần ở trong một dãy trong file và chúng không cần trong các vị trí lân
cận trên kho lưu trung gian.
Sự truy cập liên tục theo chỉ mục
Kỹ thuật này được xây dựng trên cơ sở truy cập liên tục.
Một danh mục được tạo ra cho mỗi file mà chứa các điểm con trỏ tới các khối khác nhau.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 76
Chỉ mục được tìm kiếm liên tục và điểm trỏ của nó được sử dụng để truy cập vào file một
cách trực tiếp.
Sự cấp phát không gian
Các file được cấp phát không gian đĩa bởi Hệ điều hành. Các Hệ điều hành triển khai ba cách
chính sau để cấp phát không gian đĩa tới các file:
Sự cấp phát liên tục
Sự cấp phát theo kết nối
Sự cấp phát theo chỉ mục
Sự cấp phát liên tục
Mỗi file chiếm một không gian địa chỉ liên tục trên đĩa.
Địa chỉ đĩa được chỉ định là theo thứ tự.
Dễ dàng để thực hiện.
Sự phân mảnh ngoại vi là một kết quả chính của kiểu kỹ thuật cấp phát này.
Sự cấp phát theo kết nối
Mỗi file mang theo một danh sách các kết nối tới các khối đĩa.
Thư mục chứa điểm trỏ/liên kết tới khối đầu tiên trong một file.
Không có sự phân mảnh ngoại vi.
Được sử dụng một cách hiệu quả trong sự truy cập file liên tục.
Không hiệu quả trong trường hợp truy cập trực tiếp vào file.
Sự cấp phát theo chỉ mục
Cung cấp các giải pháp cho các vấn đề của sự cấp phát liên tục và sự cấp phát theo kết
nối.
Một khối được lập chỉ mục được tạo mà có tất cả các điểm trỏ tới các file.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 77
Mỗi file có một khối chỉ mục riêng mà giữ các địa chỉ của không gian đĩa được chiếm giữ
bởi file.
Thư mục chứa các địa chỉ của các khối chỉ mục của file.
Bảo mật trong OS
Sự bảo mật liên quan đến việc cung cấp một hệ thống bảo vệ tới các nguồn tài nguyên hệ thống
máy tính như CPU, bộ nhớ, đĩa, chương trình phần mềm và hầu hết thông tin/dữ liệu quan trọng
được giữ trong hệ thống máy tính. Nếu một chương trình máy tính được chạy bởi người sử dụng
không được trao quyền thì khi đó anh ta/cô ta có thể gây ra các sự phá hoại tới máy tính hoặc dữ
liệu được lưu trong nó. Vì thế, một hệ thống máy tính phải được bảo vệ chống lại các sự truy cập
không được trao quyền, các sự truy cập mang tính bất chính tới bộ nhớ, các virut. Chúng ta sẽ
bàn luận các chủ đề sau trong chương này:
Sự xác minh (Authentication)
Các mật khẩu Một lần (One-Time)
Các sự đe dọa tới chương trình
Các sự đe dọa tới hệ thống
Các sự phân hạng bảo vệ máy tính
Sự xác minh
Sự xác định liên quan tới việc xác nhận mỗi người sử dụng của hệ thống và việc liên kết với việc
thực hiện các chương trình với những người sử dụng đó. Nó là trách nhiệm của Hệ điều hành để
tạo ra một hệ thống bảo vệ mà đảm bảo rằng một người sử dụng đang chạy một chương trình cụ
thể nào đó là đáng tin cậy. Hệ điều hành theo cách chung xác nhận những người sử dụng theo ba
cách sau:
Tên sử dụng/mật khẩu - Người sử dụng cần nhập một tên sử dụng và mật khẩu đã đăng
ký với Hệ điều hành để đăng nhập vào hệ thống.
Thẻ/key người sử dụng - Người sử dụng cần đút thẻ vào trong khe thẻ hoặc nhập khóa
được tạo bởi bộ tạo khóa trong chức năng được cung cấp bởi Hệ điều hành để đăng nhập
vào hệ thống.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 78
Dấu hiệu nhận biết/thuộc tính người sử dụng - Người sử dụng cần sử dụng đặc điểm
nhận dạng của mình qua thiết bị nhận dạng được sử dụng bởi Hệ điều hành để đăng nhập
vào hệ thống.
Các mật khẩu Một lần
Các mật khẩu Một lần cung cấp sự bảo vệ thêm vào với sự xác nhận thông thường. Trong hệ
thống mật khẩu một lần, một mật khẩu duy nhất được yêu cầu mỗi khi người dùng cố gắng đăng
nhập vào hệ thống. Một khi một mật khẩu một lần được sử dụng, thì khi đó nó không thể được sử
dụng lại. Mật khẩu một lần có thể được thực hiện theo các cách đa dạng sau:
Các số ngẫu nhiên - Các người sử dụng cung cấp các thẻ có các số được in song song
với bảng chữ cái tương ứng. Hệ thống yêu cầu các số tương ứng tới một số chữ cái ngẫu
nhiên được chọn.
Khóa mật - Người dùng được cung cấp một thiết bị phần cứng mà có thể tạo một ID mật
kết nối với id sử dụng. Hệ thống yêu cầu những id mật này mà được tạo ra mỗi khi đăng
nhập vào.
Mật khẩu hệ thống - Một vài ứng dụng thương mại gửi mật khẩu một lần tới người sử
dụng trên mail/điện thoại đã đăng ký mà được yêu cầu để nhập vào trước khi đăng nhập.
Các sự đe dọa tới chương trình
Các tiến trình và kernel Hệ điều hành thực hiện các nhiệm vụ nhận dạng như được chỉ dẫn. Nếu
một chương trình người dùng tạo các tiến trình mà thực hiện các nhiệm vụ có ác ý thì khi đó nó
được biết đến như là các mối đe dọa tới chương trình. Một trong những ví dụ thường thấy của mối
đe dọa tới chương trình là một chương trình được cài đặt trong một máy tính mà có thể giữ và gửi
ủy nhiệm người dùng thông qua mạng hệ thống tới một số hacker. Dưới đây là danh sách một số
các mối đe dọa tới chương trình thường thấy:
Trojan Horse - Những chương trình này bẫy người dùng đăng nhập các ủy nhiệm và giữ
chúng để gửi tới một vài người sử dụng ác ý mà có thể sau đó đăng nhập vào máy tính và
có thể truy cập vào các nguồn tài nguyên hệ thống.
Trap Door - Nếu một chương trình mà được thiết kế để làm việc theo yêu cầu, có một hố
bảo vệ trong mã của nó và thực hiện các hành động không được phép mà người sử dụng
không biết thì khi đó nó được gọi là có một cửa bẫy.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 79
Logic Bomb - là một tình huống khi một chương trình cư xử không đúng đắn chỉ khi gặp
các điều kiện cụ thể, nếu không nó làm việc như là một chương trình bình thường (đáng tin
cậy). Nó là khó hơn để kiểm soát.
Virus - Như tên đã đề cập, nó có thể nhân bản chính nó trên hệ thống máy tính. Chúng rất
nguy hiểm và có thể chỉnh sửa/xóa các file, làm hệ thống sụp đổ. Theo cách hiểu chúng thì
một virut là một mã nhỏ được nhúng vào trong một chương trình. Khi người dùng truy cập
vào chương trình, virut bắt đầu nhúng vào các file/chương trình khác và có thể làm cho hệ
thống không dùng được cho người dùng.
Các mối đe dọa tới hệ thống
Các mỗi đe dọa tới hệ thống liên quan đến sự dùng sai (lạm dụng) các dịch vụ hệ thống và các kết
nối mạng hệ thống để đặt người sử dụng vào trong tình trạng rắc rối. Các mối đe dọa này có thể
được sử dụng để khởi động các mối đe dọa tới chương trình trên toàn mạng hệ thống được gọi
như là sự công kích chương trình. Các mối đe dọa hệ thống tạo ra một môi trường mà nguồn tài
nguyên/các file người dùng Hệ điều hành bị lạm dụng. Dưới đây là danh sách của các mối đe dọa
hệ thống.
Worm -là một tiến trình mà có thể giảm hiệu suất hệ thống bởi việc sử dụng nguồn tài
nguyên tới mức độ cao nhất. Một tiến trình worm tạo các bản sao mà mỗi bản sử dụng
nguồn tài nguyên hệ thống, ngăn cản tất cả các tiến trình khác để nhận các nguồn tài
nguyên theo yêu cầu. Các tiến trình worm có thể vẫn tắt toàn bộ hệ thống.
Port Scanning - là một kỹ thuật hoặc hiểu theo nghĩa mà một hacker có thể thăm dò các
tính chất có thể tấn công của hệ thống để tạo một sự tấn công trên hệ thống.
Sự từ chối phục vụ (Denial of Service) - thông thường tấn công để ngăn cản người dùng
để thực hiện những sự sử dụng hợp pháp của hệ thống. Ví dụ, người dùng không thể sử
dụng internet nếu sự từ chối phục vụ tấn công các thiết lập nội dung của trình duyệt.
Các phân hạng bảo vệ máy tính
Có 4 phân hạng bảo vệ máy tính là A, B, C, và D. Nó được sử dụng rộng rãi để xác định sự bảo vệ
hệ thống và các giải pháp bảo mật. Dưới đây là các miêu tả ngắn gọn về mỗi phân hạng.
STT Hạng Miêu tả
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 80
1 Hạng
A
Mức độ cao nhất. Sử dụng các thiết kế chi tiết kỹ thuật và sự
xác minh chính thức. Ban cho một mức độ cao của việc bảo
vệ tiến trình.
2 Hạng
B
Cung cấp hệ thống bảo vệ mang tính bắt buộc. Có tất cả các
thuộc tính của hệ thống hạng C2. Đính kèm một nhãn nhạy
cảm cho mỗi đối tượng. Nó có 3 kiểu:
B1 - Duy trì nhãn bảo mật của mỗi đối tượng trong hệ
thống. Nhãn được sử dụng để tạo các quyết định để điều
khiển sự truy cập.
B2 - Mở rộng các nhãn nhạy cảm tới mỗi nguồn tài nguyên
hệ thống, như các đối tượng kho lưu, kiểm tra các sự kiện.
B3 - Cho phép tạo các danh sách hoặc nhóm người sử
dụng để điều khiển sự truy cập tới việc cấp cho hoặc hủy
bỏ sự truy cập tới một đối tượng được đặt tên đã cho.
3 Hạng
C
Cung cấp sự bảo vệ và tính khả tính người dùng sử dụng các
khả năng kiểm tra. Nó có hai kiểu:
C1 - Các điều khiển kết hợp chặt chẽ để mà những người
sử dụng có thể bảo vệ thông tin tư nhân của họ và tránh
những người sử dụng khác tình cờ đọc/xóa dữ liệu của họ.
Các phiên bản Unix hầu hết là ở hạng này.
C2 - Thêm các điều khiển truy cập đơn mức độ tới khả
năng của một hệ thống mức độ C1.
4 Hạng
D
Mức độ thấp nhất. Sự bảo vệ là nhỏ nhất. MS-DOS, Window
3.1 ở trong mức độ này.
Hệ điều hành Linux
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 81
Linux là một phiên bản phổ biến của Hệ điều hành UNIX. Nó là nguồn mở khi mà các mã nguồn
của nó là có sẵn miến phí trên mạng. Nó là miễn phí để sử dụng. Linux được thiết kế để tương hợp
với UNIX. Các tính năng của nó khá tương tự như của UNIX.
Các thành phần của hệ thống Linux
Hệ điều hành Linux đầu tiên có 3 thành phần:
Kernel - Là phần lõi của Linux. Nó có trách nhiệm cho tất cả các hoạt động của Hệ điều
hành. Nó bao gồm các modun đa dạng và nó tương tác trực tiếp với phần cứng nằm bên
dưới. Kernel cung cấp trạng thái cần thiết để che giấu các chi tiết phần cứng cấp thấp tới
hệ thống hoặc các chương trình ứng dụng.
Thư viện hệ thống - Là các chức năng đặc biệt hoặc chương trình sử dụng mà các
chương trình ứng dụng hoặc các tiện ích hệ thống truy cập các tính năng của Kernel.
Những thư viện này thực hiện hầu hết các chức năng của Hệ điều hành và không yêu cầu
các quyền truy cập mã của modun hạt nhân.
Tiện ích hệ thống - Các chương trình tiện ích hệ thống có trách nhiệm để thực hiện các
nhiệm vụ mức độ đơn đặc biệt.
Chế độ kernel và chế độ người dùng
Mã thành phần kernel thực hiện trong một chế độ đặc quyền đặc biệt được gọi là chế độ kernel với
quyền truy cập đầy đủ tới tất cả các nguồn tài nguyên của máy tính. Mã này đại diện cho một tiến
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 82
trình đơn, chạy trong một không gian địa chỉ đơn, và không yêu cầu bất cứ sự chuyển bối cảnh nào
và do đó nó rất hiệu quả và nhanh. Kernel chạy mỗi tiến trình và cung cấp các dịch vụ hệ thống tới
các tiến trình, cung cấp sự truy cập được bảo vệ tới các phần cứng cho các tiến trình.
Mã hỗ trợ mà không được yêu cầu để chạy trong chế độ Kernel là trong thư viện hệ thống.
Chương trình người sử dụng và chương trình hệ thống khác làm việc trong chế độ người sử dụng
mà không truy cập tới các phần cứng hệ thống và chế độ Kernel. Các chương trình/tiện ích người
dùng sử dụng các thư viện hệ thống để truy cập các chức năng kernel để nhận các nhiệm vụ cấp
thấp của hệ thống.
Các đặc điểm cơ bản
Dưới đây là một số đặc điểm cơ bản của Hệ điều hành Linux:
Tính động - Nghĩa là các phần mềm có thể làm việc trên các kiểu khác nhau của phần
cứng theo cách giống nhau. Kernel và các chương trình ứng dụng hỗ trợ sự cài đặt của nó
trên bất kỳ nền cứng nào.
Nguồn mở - Mã nguồn Linux là có sẵn miễn phies và nó là sở hữu chung dựa trên dự án
phát triển. Nhiều team làm việc trong sự cộng tác để tăng hiệu suất của Hệ điều hành Linux
và nó tiếp tục tiến triển.
Đa người dùng - Linux là một hệ thống đa người dùng nghĩa là nhiều người sử dụng có
thể truy cập vào các nguồn tài nguyên hệ thống như bộ nhớ/ram/các chương trình ứng
dụng tại cùng một thời gian.
Đa chương trình - Linux là một hệ thống đa chương trình nghĩa là nhiều ứng dụng có thể
chạy tại cùng một thời gian.
Hệ thống file có thứ bậc - Linux cung cấp một cấu trúc file tiêu chuẩn trong đó các file hệ
thống/các file người dùng được sắp xếp.
Shell - Linux cung cấp một chương trình biên dịch đặc biệt mà có thể được sử dụng để
thực hiện các lệnh của Hệ điều hành. Nó có thể được sử dụng để thực hiện các kiểu đa
dạng của các hoạt động, gọi các chương trình ứng dụng.
Bảo mật - Linux cung cấp sự bảo vệ sử dụng các tính năng xác nhận như mật khẩu bảo
vệ/sự truy cập được kiểm soát tới các file đặc trưng.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 83
Cấu trúc
Cấu trúc hệ thống Linux bao gồm các lớp sau:
Lớp phần cứng - Bao gồm tất cả các thiết bị ngoại vi (RAM/HDD/CPU).
Kernel - Thành phần lõi của Hệ điều hành, tương tác trưc tiếp với phần cứng, cung cấp các
dịch vụ cấp thấp tới các thành phần lớp trên.
Shell - Một giao diện tới kernel, ẩn giấu sự phức tạp của các chức năng của Kernel tới
người sử dụng. Nhận các lệnh từ người sử dụng và thực hiện các tính năng của Kernel.
Các tiện ích - Các chương trình tiện ích cung cấp cho người sử dụng hầu hết các tính năng
của Hệ điều hành.
Tài liệu tham khảo về OS
Các nguồn sau chứa thông tin hữu ích về Hệ điều hành - Operating System. Mong bạn tham khảo
chúng để hiểu sâu hơn những gì chúng tôi đã đề cập trong loạt bài này.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Trang 84
Các đường link hữu ích về Hệ điều hành
Tutorialspoint − Loạt bài hướng dẫn của chúng tôi xây dựng dựa trên nguồn này.
Operating system − Một wikipage cung cấp miêu tả ngắn gọn về Hệ điều hành.
What is an Operating System − Hệ điều hành là phần mềm quan trọng nhất chạy trên máy
tính.
Computer Basics by BBC − Giới thiệu về máy tính bao gồm các phần trong máy tính và bảo
mật.
Some Basic Terminology − Các phần trong máy tính được giải thích đơn giản và dễ hiểu.
Basic Computer Literacy Information − Một phân tích nhanh về Basic Computer Literacy
Information.
Các file đính kèm theo tài liệu này:
- tai_lieu_he_dieu_hanh_tieng_viet_9338.pdf