1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Hệ điều hành Linux

62 256 0

Đ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 62
Dung lượng 579,71 KB

Nội dung

Đồng nhất tiến trình những quá trình đặc biệt trong hệ điều hành khi một quá trình gọi một system call để signal, modify, hay wait một quá trình khác và một hay nhiều nhóm ID có thể quyế

Trang 1

4 Hệ điều hành Linux

Trang 3

Mục tiêu

số nguyên tắc bắt buộc để thiết kế Linux

các quá trình và cung cấp truyền thông liên quá trình

xuât nhập như thế nào

Trang 4

Lịch sử

Unix

hợp thêm kernel(nhân) với mục đích chính là có khả năng thích hợp với Unix

toàn thế giới, hầu hết họ trao đổi đều qua internet

máy tính thông thường, hơn nữa Linux còn có thể chạy trên nhiều nền phần cứng khác

nhưng nó có thể chạy nhiều phần mềm Unix miễn phí, đó là kết quảcủa việc tích hợp code để có thể thích hợp Unix

ứng dụng, và các công cụ quản lý

Trang 5

The Linux Kernel

80386- tương thích với vi xử lý intel và trên phần cứng máy

tính, đặc biệt bị giới hạn trong giao tiếp device-drive, và chỉ

cung cấp cho hệ thống file Minix

thích BCD

Ethernet

quả truy xuất đĩa

Trang 6

Linux 2.0

module theo yêu cầu

PC và hệ thống PowerMac

tiên kernel, hỗ trợ bộ nhớ 64-bit

Trang 7

Hệ thống Linux

thống MIT’s X Window, và dự án Free Software Foundation's GNU

Linux đã dần dần cải thiện

Nguồn gốc của mã BSD gần đây như Free BSD đã mượn lại từ

bảng mã này của Linux

các cộng tác trên Internet, với một số lượng nhỏ của các trang web công cộng hoạt động với tiêu chuẩn thực tế

Trang 8

Linux Distributions

thống Linux cơ bản, cài đặt hệ thống, quản lý tiện ích và cơ chế

sẵn sàng để cài đặt các gói của công cụ tiện ích

cấp phương tiện để bung tất cả các tập tin vào nơi thích hợp; các phân phối sau này bao gồm các gói quản lý nâng cao

l Red Hat và Debian là các nhà phân phối phổ biến bao gồm các

nguồn thương mại và không thương mại

Linux

Trang 9

Giấy phép Linux

(GPL), các điều khoản trong đó được đặt ra bởi Free Software

Foundation

làm mất nguồn gốc của các sản phẩm độc quyền; phần mềm phát hành dưới GPL có thể không được cấp phát lại như là sản phẩm binary-only

Trang 10

Nguyên tắc thiết kế

công cụ thích hợp với Unix

thống , và nó thực hiện đầy đủ các tiêu chuẩn mô hình mạng UNIX

posix ; ít nhất có hai phân phối Linux đã chính thức được cấp giấy chứng nhận posix Giao diện lập trình Linux tuân thủ SVR4 UNIX semantics, hơn là để hoạt động BSD

Trang 11

Các thành phần hệ thống Linux

Trang 12

Các thành phần hệ thống Linux(Cont.)

chính; quan trọng nhất là sự khác biệt giữa nhân(kernel) và các

phần khác

của hệ điều hành

đến tất cả các tài nguyên vật lý của máy tính

một không gian địa chỉ đơn

Trang 13

Các thành phần hệ thống Linux(Cont.)

qua các hàm này các ứng dụng có thể tương tác với nhân, và hiện

thực một số chức năng của hệ điều hành, mà không cần ưu tiên

qua mã kernel

Trang 14

Kernel modules

unload không phụ thuộc vào những phần còn lại của kernel

thống, hay một giao thức mạng

phát trong phạm vi giới hạn của họ,có thêm trình điều khiển thiết

bị hay file hệ thống –chúng không được phân phối dưới dạng GPL

chuẩn,nhân nhỏ nhất mà không cần xây dựng thêm bất kỳ trình điều khiển thiết bị nào

Trang 15

Quản lý Module

các phần còn lại của kernel

tục hỏi nhân xem các module động đã được nạp vẫn còn sử dụng không, và khi không cần nữa module này sẽ được xóa

Trang 16

Driver Registration

mới vừa được thêm vào

một tập hợp các routine cho phép các driver này thêm vào hay gõ

Trang 17

Giải quyết mâu thuẫn

tài nguyên trong phần cứng và bảo vệ các tài nguyên này khỏi các tình huống bất ngờ được dùng từ các driver khác

Trang 18

Quản lý tiến trình

trình mới thành hai thao tác độc lập

duy trì t track để chứa các bối cảnh của một hiện thực đơn trong

quá trình đơn

của quá trình, môi trường, và bối cảnh

Trang 19

Đồng nhất tiến trình

những quá trình đặc biệt trong hệ điều hành khi một quá trình gọi một system call để signal, modify, hay wait một quá trình khác

và một hay nhiều nhóm ID có thể quyết định quyền truy xuất vào tài nguyên và file của hệ thống

nhưng trong Linũ thì mỗi quá trình có một định danh liên kết cá

nhân-mà nó có thể sửa các sematic của một số system call

các system call này thích hợp với một số tính năng của Unix

Trang 20

Môi trường tiến trình

soạn thảo thành 2 vector kết thúc bằng 0:

invoke the running program; conventionally starts with the name of the program itself

associates named environment variables with arbitrary textual

values

thừa kế của tiến trình con, việc chuyển thông tin đến các phần của phần mềm hệ thống user-mode trở nên linh động

này được tạo ra ở mỗi quá trình, chứ không phải là định cầu hình hệthống cho toàn bộ

Trang 21

Ngữ cảnh quá trình

điểm thời gian

trình; đó là thông tin mà bộ định thời cần có để tạm ngưng hay khởi động lại quá trình

sử dụng bởi mỗi quá trình, tổng số tài nguyên được sử dụng bởi quá trình từ lúc bắt đầu đến khi kết thúc

các file bởi địa chỉ của nó trong bảng

Trang 22

Ngữ cảnh quá trình

file-system context cung cấp yêu cầu để mở một file mới

cho việc tìm kiếm file mới được chứa trong đó

địa chỉ quá trình được gọi khi có một tín hiệu đặc biệt đến

chỉ riêng nó

Trang 23

Quá trình và luồng

trình và luồng; một luồng đơn giản chỉ là một quá trình mới, mà xảy

ra việc chia sẻ không gian địa chỉ với quá trình cha của nó

gọi system call clone

trình ngữ cảnh của nó

được cho phép để chia sẻ cấu trúc dữ liệu của quá trình cha

xác những gì được chia sẻ giữa hai luồng

Trang 24

Định thời

phạm vi hệ điều hành

quá trình Trong Linux, việc chạy các chươn trình cũng bao gồm các tác vụ kernel khác nhau

quá trình đang chạy và các tác vụ thực thi thay mặt cho một thiết

bị điều khiển

Trang 25

21.25Qua hệ giữa độ ưu tiên v ưu tiên v à độ dài phân thời

gian

Trang 26

Danh sách các địa chỉ được ưu tiên

Trang 27

Đồng bộ hóa Kernel

cách:

của hệ điều hành, hoặc rõ ràng hơn thì qua system call Ví dụ: khi lỗi trang xảy ra

cho CPU bắt đầu thực thi từng ngắt

chấp của nhân chạy mà không ngắt các vùng tranh chấp khác

Trang 28

Đồng bộ hóa Kernel

1 Mã kernel bình thường thì nonpreemptible (until 2.4)

– khi có một ngắt xảy ra trong khi chương trình đang thực thi

một tác vụ của hệ thống nhân, cờ need_resched của kernel

được bật lên để bộ định thời sẽ chạy system call đến khi hoàn thành và điều khiển trả về chế độ người sử dụng

2 Kỹ thuật thứ hai là vùng tranh chấp xảy ra trong service routine– bằng cách dùng ngắt vi xử lý để điều khiển không cho ngắt xảy ra trong vùng tranh chấp, kernel đảm bảo rằng nó có thể

xử lý mà không có một lỗi nào do các cấu trúc dữ liệu chia xẻtruy suất cùng lúc

Trang 29

Đồng bộ hóa Kernel

trúc đồng bộ, để cho phép những vùng tranh chấp dài chạy mà

không vô hiệu các ngắt cho độ dài của tất cả các vùng tranh chấp

bottom half.

không cho phép ngắt lặp lại

thời nhỏ để chắc rằng các bottom half không bao giờ ngắt

chính nó

lựa chọn các bottom half trong khi đang thực thi bình thường,

mã nhân foreground

Trang 30

Các Cấp Độ Bảo Vệ Ngắt

bao giờ bị ngắt bởi mã thực thi cùng cấp hay thấp hơn

trình khác khi một time-sharing scheduling interrupt xuất hiện

Trang 31

Định Thời Tiến Trình

nhiều tiến trình

đối quan trọng hơn sự cân bằng

dựa trên credit

credits:

credits = +

Trang 32

Định Thời Tiến Trình (tt)

trong cả hai trường hợp, mỗi tiến trình có một mức ưu tiên ngoài lớp định thời của nó

trình có cùng mức ưu tiên, nó chạy tiến trình đã chờ lâu nhất

chặn lại

và chuyển vào cuối hàng đợi định thời, do đó các tiến trình

round-robing có cùng mức ưu tiên tự động chia sẻ thời gian với nhau

Trang 33

Thực Hiện Đa Tiến Trình Đồng Bộ

các tiến trình hay tuyến có thể thực thi song song trên có bộ xử lý riêng biệt

đòi hỏi một hạn chế, thông qua một kernel spinlock đơn, mà mỗi lần chỉ có một bộ xử lý có thể thực thi mã kernel-mode

Trang 34

Quản Lý Bộ Nhớ

giải phóng các trang, nhóm trang và các block bộ nhớ

không gian địa chỉ của các tiến trình đang hoạt động

Trang 35

trong 80x86

Trang 36

Chia Bộ Nhớ thành một Buddy Heap

Trang 37

Quản Lý Bộ Nhớ Vật Lý

cấp phát một khoảng các trang kề vật lý với nhau nếu có yêu cầu

có thể dùng được

kế bên

để tạo một region lớn hơn

cấp phát một region nhớ nhỏ còn trống, thì một region trống lớn hơn sẽ được chia ra làm hai để đáp ứng yêu cầu

dự trữ một khu vực bộ nhớ liên tiếp trong lúc khởi động hệ thống) hay động (thông qua page allocator)

Trang 38

21.07

Trang 39

Bộ Nhớ Ảo

trình: nó tạo các trang bộ nhớ ảo theo yêu cầu, và quản lý việc tải các trang từ đĩa hoặc swap trở ra đĩa khi cần

chỉ bộ nhớ của tiến trình :

trí không gian địa chỉ

cái biểu diễn một tập con không gian địa chỉ kế tiếp nhau và đồng chỉ trang (page-aligned)

trong các bảng (table) trang phần cứng cho tiến trình

Trang 40

Bộ Nhớ Ảo (tt)

region; các regions thường được backed bởi một file hoặc

không có gì hết (demand-zero memory)

copy-on-write)

1 Khi một tiến trình chạy một chương trình mới bằng lời gọi hệ

thống exec

2 Trong lúc tạo một tiến trình mới bằng lời gọi hệ thống fork

Trang 41

Bộ Nhớ Ảo (tt)

gian địa chỉ ảo mới hoàn toàn rỗng; các thủ tục tải chương trình đưa các region bộ nhớ ảo đến trú ở không gian địa chỉ này

đủ của không gian địa chỉ ảo của tiến trình đang có

một tập hợp page table cho tiến trình con

con, với reference count của mỗi trang được che giấu được tăng lên

nhớ vật lý trong không gian địa chỉ của chúng

Trang 42

Bộ Nhớ Ảo (tt)

ngoài ra ngoài bộ nhớ khi bộ nhớ được cần cho thứ gì khác

ghi ra ngoài đĩa

lại vào bộ nhớ vật lý khi cần

Trang 43

Bộ Nhớ Ảo (tt)

kiến trúc gồm không gian địa chỉ ảo của mỗi tiến trình cho việc sửdụng bên trong nó

vật lý bộ nhớ sẵn dùng trong hệ thống, do đó có một sự

chuyển đổi đơn giản từ địa chỉ vật lý sang ảo khi chạy mã kernel

mục đích xác định nào; các page-table entry của nó có thể được thay đổi trỏ tới bất cứ khu vực (area) nào của bộ nhớ

Trang 44

cơ hội để tải file được cho khi có một lời gọi hệ thống

định dạng nhị phân ELF và a.out

mới tạo ra một lỗi trang trong trang đang được tải vào bộ nhớ

vật lý

phân đoạn (section) page-aligned

đoạn của file vào các region riêng biệc của bộ nhớ ảo

Trang 45

Bố Trí Bộ Nhớ cho Chương Tr ương Tr ình ELF

Trang 46

Liên Kết Tĩnh và Động

thi nhị phân của chương trình thì liên kết tĩnh (statically) với các

thư viện của nó

phải sao chép chính xác các hàm thư viện giống nhau

lẫn không gian đĩa vì nó tải các thư việc hệ thống vào bộ nhớ chỉmột lần

Trang 47

Các Hệ Thống File

mục có cấp bậc tuân theo UNIX semantics

thống file khác nhau thông qua một lớp trừu tượng, đó là, hệ thống

file ảo virtual file system (VFS)

và gồm có hai thành phần :

phép) trông như thế nào

riêng biệc

 file system object biểu diễn cả một hệ thống file

Trang 48

Hệ Thống File Ext2fs của Linux

việc định vị các block dữ liệu tới một file xác định

chúng

được chia nhỏ thành các phân mảnh 1Kb để lưu trữ các file nhỏhay các block được làm đầy một phần ở cuối file

đơn vị nhỏ hơn

2Kb và 4Kb cũng được hỗ trợ

luận lý của một file vào các block kề vật lý trên đĩa, do đó nó cóthể chấp nhận một yêu cầu I/O cho vài block đĩa như một thao tác đơn

Trang 49

Ext2fs các Cách Cấp Phát Block

Trang 50

Hệ Thống File Proc của Linux

được tính toán theo yêu cầu theo các yêu cầu file I/O người dùng

đó; sau đó nó phải xác định một inode number duy nhất và bền vững cho mỗi thư mục và file trong đó

thiết khi một người dùng cố đọc từ một file đặc biệt hay thực hiện tìm kiếm trong một inode thư mục đặc biệt

thập thông tin thích hợp, định dạng nó thành văn bản và đặt nóvào buffer đọc của tiến trình yêu cầu

Trang 51

biệt được ghi mục lục (index) bởi disk physical block

l block devices cho phép truy cập ngẫu nhiên vào các block dữ

liệu có kích thước cố định và hoàn toàn độc lập

l character devices gồm hầu hết các thiết bị khác; chúng không

cần hỗ trợ functionality của các file thông thường

l network devices được kết nối thông qua networking subsystem

của kernel

Trang 52

Cấu Trúc Device-Driver Block

Trang 53

Block Devices

n Block buffer cache thực hiện hai chức năng chính:

n Request manager quản lý việc đọc và ghi nội dung buffer từ và đến

một block device driver

Trang 54

Character Devices

block dữ liệu cố định

hiện thực các thao tác file I/O khác nhau của driver

file đến một character device, mà đơn giản chuyển yêu cầu đến cho thiết bị

character device drivers thực hiện terminal devices, đã được

kernel duy trì một giao diện chuẩn cho nó

Trang 55

Giao Tiếp Liên Tiến Trình

xuất hiện thông qua các tín hiệu

tin: chỉ có sự kiện một tín hiệu xuất hiện là có giá trị với tiến trình

trình đang chạy ở kernel mode, mà, giao tiếp nội trong kernel được thực hiện thông qua các trạng thái định thời và các cấu trúc hàm

đợi wait.queue

Trang 56

Chuyển Dữ Liệu Giữa các Tiến Trình

kênh giao tiếp từ cha nó, dữ liệu viết lên một đầu của pipe có thể được đọc ở đầu còn lại

liệu nào được viết bởi một tiến trình vào một shared memory

region (vùng bộ nhớ chia sẻ) có thể được đọc ngay lập tức bởi bất

cứ tiến trìn nào đã map vùng (region) đó vào không gian địa chỉ

của nó

dụng kết hợp với cơ chế giao tiếp liên tiến trình

Trang 57

Shared Memory Object

shared-memory regions cùng cách mà một file có thể hành động với một memory-mapped memory region

trang từ một đối tượng shared-memory bền vững

tiến trình nào đang map chúng vào bộ nhớ ảo

Trang 58

Cấu Trúc Mạng

tiếp UNIX

hành nonUNIX, đặc biệt, các nghi thức được sử dụng trên các mạng PC, như Appletalk và IPX

Trang 59

Cấu Trúc Mạng (tt)

networking là bộ internet protocol suite

thức UDP, TCP và ICMP

Trang 60

An Ninh

Linux

thành phần hệ thống nào cần nhận biết người dùng

thực hiện thông qua việc sử dụng các unique numeric identifiers

(uid và gid)

tượng một protections mask, xác định các chế độ nào —read,

write, hay execute— được cấp cho tiến trình với truy cập người dùng, nhóm, hay tất cả

Trang 61

An Ninh (tt)

cho phép một tiến trình lặp đi lặp lại việc bỏ và lấy lại uid hiệu quả của nó

các quyền của uid hiệu quả

có lựa chọn lối vào cho một file đơn vào tiến trình server nào đó

mà không cấp cho nó đặc quyền nào khác

Trang 62

End of Chapter 21

Ngày đăng: 22/12/2016, 12:50

TỪ KHÓA LIÊN QUAN

w