Đồ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 14 Hệ điều hành Linux
Trang 3Mụ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 4Lị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 5The 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 6Linux 2.0
module theo yêu cầu
PC và hệ thống PowerMac
tiên kernel, hỗ trợ bộ nhớ 64-bit
Trang 7Hệ 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 8Linux 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 9Giấ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 10Nguyê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 11Các thành phần hệ thống Linux
Trang 12Cá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 13Cá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 14Kernel 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 15Quả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 16Driver 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 17Giả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 18Quả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 20Mô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 21Ngữ 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 22Ngữ 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 23Quá 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 2521.25Qua hệ giữa độ ưu tiên v ưu tiên v à độ dài phân thời
gian
Trang 26Danh 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 30Cá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 33Thự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 34Quả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 35trong 80x86
Trang 36Chia Bộ Nhớ thành một Buddy Heap
Trang 37Quả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 3821.07
Trang 39Bộ 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 40Bộ 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 41Bộ 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 42Bộ 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 43Bộ 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 44cơ 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 45Bố Trí Bộ Nhớ cho Chương Tr ương Tr ình ELF
Trang 46Liê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 47Cá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 48Hệ 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 49Ext2fs các Cách Cấp Phát Block
Trang 50Hệ 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 51biệ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 52Cấu Trúc Device-Driver Block
Trang 53Block 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 54Character 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 55Giao 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 56Chuyể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 57Shared 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 58Cấ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 59Cấu Trúc Mạng (tt)
networking là bộ internet protocol suite
thức UDP, TCP và ICMP
Trang 60An 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 61An 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 62End of Chapter 21