Cấu trúc hệ điều hành
Trang 2CHƯƠNG 2: CấU TRÚC Hệ ĐIềU HÀNH
Trang 3MụC TIÊU
Mô tả các dịch vụ hệ điều hành cung cấp cho người sử dụng, các quy trình và các hệ thống khác
Thảo luận về sự khác nhau trong cấu trúc hệ điều hành
Phương pháp để cài đặt , tuỳ chỉnh, cách khởi động hệ điều hành
3
Trang 4CÁC Hệ THốNG THÔNG TIN DịCH Vụ
Một hệ điều hành – dịch vụ cung cấp các chức năng hữu ích cho người sử dụng :
Giao diện người sử dụng-Hầu hết các HĐH đều có giao diện người sử dụng(user interface –UI)
Sự khác nhau giữa Command-Line (CLI), Graphics User Interface (GUI), Batch
Thực hiện chương trình - Các hệ thống cần phải có khả năng tải một chương trình vào bộ nhớ và để chạy chương trình đó, kết thúc thực hiện, hoặc là bình thường hay khác thường (chỉ lỗi)
Hoạt động vào ra(I/O)- Một chương trình chạy có thể yêu cầu vào ra, trong đó có thể bao gồm một tập tin hoặc một thiết bị vào ra (I/O device)
Sử dụng file hệ thống - Các file hệ thống là đặc biệt quan trọng Rõ ràng, các chương trình cần phải đọc và viết các file và thư mục, tạo và xóa chúng, họ tìm kiếm, danh sách tập tin Thông tin, cho phép quản lý
4
Trang 5CÁC Hệ THốNG THÔNG TIN DịCH Vụ
(TIếP)
Một hệ điều hành – dịch vụ cung cấp các chức năng hữu
ích cho người sử dụng (tiếp):
Truyền thông – điều khiển quá trình trao đổi thông tin, trên
cùng một máy tính hoặc giữa các máy tính trên một mạng
lưới
Truyền thông có thể được chia sẻ thông qua bộ nhớ hoặc thông qua tin
nhắn (gói chuyển bởi các hệ điều hành)
Phát hiện lỗi - Hệ điều hành cần phải được liên tục có thể
nhận ra các lỗi
Có thể xảy ra trong CPU và bộ nhớ vật lý, trong thiết bị vào ra, trong
chương trinh của người sủ dụng
Đối với mỗi loại hình báo lỗi, hệ điều hành nên dùng các hành động
thích hợp để đảm bảo chính xác và tính toán phù hợp
Các tiện ích gỡ lỗi có thể giúp người dùng và các lập trình viên tăng
Trang 6CÁC Hệ THốNG THÔNG TIN DịCH Vụ
(TIếP)
Một chức năng khác của hệ điều hành là bảo đảm sự tồn tại cho hiệu quả hoạt động
của mình thông qua hệ thống chia sẻ tài nguyên
Phân bổ nguồn lực - Khi có nhiều người dùng hoặc nhiều công việc làm đồng thời,
nguồn tài nguyên phải được chia nhỏ ra
Nhiều loại hình tài nguyên - Một số (như là chu kỳ CPU, bộ nhớ chính, và lưu
trữ file) có thể được phân bổ mã đặc biệt, một số khác (chẳng hạn như thiết bị vào ra) có thể có yêu cầu nói chung và phát hành mã
Thống kê- Để theo dõi trong đó có bao nhiêu người sử dụng và các loại tài nguyên
của máy tính
Bảo vệ và an ninh - Các chủ sở hữu của thông tin được lưu giữ trong một máy tính
dùng chung hay hệ thống mạng máy tính có thể muốn kiểm soát việc sử dụng
thông tin đó, các quy trình xảy ra đồng thời không nên can thiệp với nhau
Bảo vệ bao gồm việc bảo đảm rằng tất cả các truy cập vào hệ thống tài nguyên
phải được kiểm soát
An ninh của hệ thống việc truy cập từ bên ngoài phải được xác nhận, kéo dài
để bảo vệ bên ngoài thiết bị vào ra truy cập từ các nỗ lực không hợp lệ
Nếu là một hệ thống được bảo vệ và an toàn, nghĩa là phải được đặt nền móng
cho chính nó Một chuỗi chỉ như mạnh mẽ nhờ các yếu liên kết
6
Trang 7GIAO DIệN Hệ ĐIềU HÀNH CủA NGƯờI Sử
DụNG
(USER OPERATING SYSTEM INTERFACE – CLI)
CLI(Command-line) cho phép trực tiếp nhập lệnh
Đôi khi triển khai thực hiện trong kernel , đôi khi do hệ thống
chương trình
Đôi khi nhiều mùi vị triển khai thực hiện – Vỏ
Chủ yếu tìm nạp một lệnh từ người dùng và thực thi nó
Đôi khi xây dựng lệnh, đôi khi chỉ cần tên của các chương trình
Nếu sau, việc thêm các tính năng mới không cần sửa đổi, bổ sung thêm
7
Trang 8USER OPERATING SYSTEM
INTERFACE)
Thân thiện với người dùng máy tính để bàn giao diện ẩn
Thông thường chuột, bàn phím, và màn hình
Icon đại diện cho file, chương trình, hành động, vv
Dùng con chuột tác động đến các đối tượng khác nhau trong
giao diện gây ra nhiều hoạt động (cung cấp thông tin, lựa chọn,
thực hiện chức năng, mở thư mục )
Được phát minh tại Xerox PARC
Nhiều hệ thống hiện nay bao gồm cả hai CLI và giao diện GUI
Microsoft Windows là GUI với CLI “command" shell
Apple Mac OS X như là "Aqua" GUI giao diện với UNIX kernel
bên dưới và hệ vỏ có sẵn
Solaris là CLI với tùy chọn giao diện GUI (Java Desktop, KDE)
8
Trang 9 Phần lớn các truy cập thông qua một chương trình cao cấp-Lập
trình Ứng dụng (API) hơn là trực tiếp sử dụng hệ thống gọi
Ba API phổ biến nhất là Win32 API cho Windows, posix API
cho posix dựa trên hệ thống (bao gồm hầu như tất cả các phiên
bản của UNIX, Linux, và hệ điều hành Mac OS X), và Java
API cho các máy ảo Java (JVM)
Tại sao phải sử dụng các API hơn là các lời gọi hệ thống?
(Lưu ý rằng lời gọi hệ thống là tên được sử dụng trong suốt văn
bản này là chung)
9
Trang 10VÍ Dụ Về LờI GọI Hệ THốNG
Lời gọi hệ thống được dùng để sao chép nội dung của 1
file vào 1 file khác
10
File nguồn File đích
Trang 11VÍ Dụ Về STANDARD API
Xem xét cách đọc của JAVA
byte [] b – bộ đệm là nơi đọc dữ liệu
Int off - bắt đầu offset trong b, nơi các đọc dữ liệu
Int len - tối đa số byte đọc
11
Trang 12Sự THI HÀNH CUA LờI GọI Hệ THốNG
Thông thường, một số liên kết với mỗi hệ thống gọi
Hệ thống-gọi giao diện duy trì một bảng mục theo những con
số
Hệ thống giao diện gọi dẫn ra hệ thống gọi trong hệ điều
hành kernel và trở về tình trạng của hệ thống gọi và trả về
giá trị
Người gọi cần biết gì về cách lời gọi hệ thống được thực
hiện
Chỉ cần phải tuân theo các API và hiểu rõ những gì sẽ làm hệ
điều hành như là một kết quả cuộc gọi
Hầu hết các chi tiết của giao diện hệ điều hành dều ẩn do các
lập trình viên từ API
Quản lý bởi thời gian chạy hỗ trợ thư viện (bộ các chức năng được
xây dựng vào thư viện bao gồm trình biên dịch) 12
Trang 13API – SYSTEM CALL – QUAN Hệ TRONG
HDH
13
Ứng dụng cho ngươi dùng
Hệ thống gọi giao diện
Trang 14VÍ Dụ Về THƯ VIệN C CHUẩN
14
Chương trình C
Thư viện C chuẩn
Trang 15TRUYềN THAM Số CHO CÁC LờI GọI Hệ
THốNG
Bình thường, nhiều thông tin được yêu cầu nhận dạng một cách
đơn giản hơn mong muốn của hệ thống gọi
Loại và số lượng của thông tin khác nhau tùy thuộc vào hệ điều
hành và cách gọi
Ba phương pháp chính được sử dụng để gửi tham số cho các hệ
điều hành
Đơn giản nhất: truyền tham số vào các thanh ghi
Trong một số trường hợp, có thể có nhiều tham số hơn số thanh ghi
Các tham số được lưu giữ trong một khối, hoặc bảng, trong bộ nhớ,
và địa chỉ của khối được truyền bằng tham số vào trong thanh ghi
Phương pháp tiếp cận này được sủ dụng cho Linux và Solaris
Các tham số được đặt, hoặc đưa vào stack bởi các chương trình và
lấy ra khỏi stack do hệ điều hành
Khối và stack các phương thức không giới hạn số lượng hay chiều
Trang 16TRUYềN THAM Số VÀO BảNG
16
Thanh ghi
Hệ Điều hành Người dùng
Trang 18Sự THựC HIệN MS_DOS
18
(a) Khi mới khởi động
(b) Khi đang chạy chương trình
Lệnh phiên
dịch
Quá trình
Trang 19CHƯƠNG TRÌNH HOạT ĐộNG NHIềU
NHÁNH LIÊN TụC Tự DO BSD
19
Trang 20CÁC CHƯƠNG TRÌNH Hệ THốNG
Các chương trình hệ thống của máy tính cung cấp một môi trường
tiện lợi cho sự phát triển và thực hiện của chương trình Có thể đuợc
phân chia thành:
Sự thao tác dữ liệu
Hiện trạng thông tin
Sửa đổi dữ liệu
Chu cấp ngôn ngữ lập trình
Tải và thực hiện chương trình hoạt động
Sự giao tiếp
Những chương trình áp dụng
Hầu hết ý kiến của những người sử dụng của hệ thống hoạt động
được nhận dạng bởi hệ thống những chương trình, không phải là hệ
thống những cuộc gọi 20
Trang 21SOLARIS 10 DTRACE FOLLOWING
SYSTEM CALL
21
Trang 22CÁC CHƯƠNG TRÌNH Hệ THốNG
Cung cấp môi trường tiện lợi cho sự phát triển và thực hiện của chương trình
hoạt động
Một số người sử dụng dễ dàng sử dụng giao diện trong hệ thống cuộc
gọi Số khác thì xem ra quá phức tạp
Quản lý dữ liệu - chế tạo, xoá bỏ, sao chép, sửa tên, in ra, vứt bỏ, kê khai, sử
dụng dữ liệu và những danh bạ điện thoại
Hiện trạng thông tin
Một số yêu cầu về những thông tin – ngày, giờ, số lượng bộ nhớ sẵn có,
khoảng trống trong đĩa số lượng người sử dụng
Một số khác cung cấp chi tiết các đặc trưng, sổ ghi và sự chỉnh lý thông
tin
Tiêu biểu, những chương trình này định dạng và in ra trong giai đoạn
cuối cùng của việc in ra hoặc trong những thiết bị ra khác
Một số hệ thống thực hiện đăng ký - người dùng có thể lưu trữ và tìm lại
Trang 23CÁC CHƯƠNG TRÌNH Hệ THốNG(TIếP)
Sửa đổi dữ liệu
Những người biên tập văn bản để tạo ra và sửa đỏi dữ liệu
Những khả năng đặc biệt để tìm kiếm nội dung dữ liệu hoặc thực hiện
thay đổi văn bản
Lập trình – chu cấp ngôn ngữ - biên soạn tài liệu, tập hợp, gỡ rối và thỉnh
thoảng cung cấp việc phiên dịch
Chương trình tải và thực hiện - tải đơn thuần, tải di chuyển, kết nối trình soạn
thảo và tải không hạn chế, hệ thống gỡ rối được nâng trình độ cao hơn và
ngôn ngữ máy tính
Giao tiếp – cung cấp máy móc cho việc sáng tạo là kết nối thực tế giữa quy
trình, người sử dụng và hệ thống máy tính
cho phép người sử dụng gởi tin nhắn đến màn hình của người khác, lướt web,
gởi thư điện tử(e-mail), nối mạng, trao đổi dữ liệu giữa máy này với máy
khác
23
Trang 24Hệ ĐIềU HÀNH, THIếT Kế VÀ THựC HIệN
sự thiết kế và thực hiện của hệ điều hành không “solvable”,
nhưng một số cách thức được cải tiến thành công
Cấu trúc bên trong của những hệ điều hành khác nhau có thể thay
đổi rất nhiều
Bắt đầu bởi những mục đích xác định và quy cách kỹ thuật
Bị ảnh hưởng bởi sự lựa chọn của phần cứng, thể loại hệ thống
Mục đích của người sử dụng và mục đích của hệ thống
Mục đích của người sử dụng - hệ điều hành nên tiện lợi để sử
dụng, dễ dàng để học, đáng tin cậy, an toàn và nhanh
Mục đích của hệ thống - hệ điều hành nên dễ dàng thiết kế,
thực hiện, và bảo trì, cũng linh hoạt, đáng tin cậy, không bị
mắc lỗi và công hiệu
24
Trang 25Hệ ĐIềU HÀNH, THIếT Kế VÀ THựC HIệN
(TIếP)
Nguyên tắc chung quan trọng để phân biệt
Chính sách: Sẽ được làm gì?
Cơ cấu: Thực hiện bằng cách nào?
Cơ cấu quyết định cách để thực hiện một số việc, chính
sách quyết định sẽ được làm gì
Sự phân chia của chính sách từ cơ cấu là một nguyên lý
rất quan trọng, nó cho phép linh hoạt một cách tối đa nếu
những quyết định của khế ước được thay đổi sau đó
25
Trang 26CấU TRÚC ĐƠN GIảN
MS-DOS – được viết để cung cấp những chức năng trong
những dấu cách tối thiểu
Không phân chia thành những bộ phận độc lập
Mặc dù MS-DOS có một số cấu trúc nhưng những cấp độ của
chức năng và giao diện của nó không được phân chia tốt
26
Trang 27CấU TRÚC TầNG CủA MS-DOS
27
Chương trình
ứng dụng
Chương trình lưu trú hệ thống
Driver của thiết
bị của MS-DOS
Driver cua
ROM-BIOS
Trang 28PHƯƠNG PHÁP TầNG
Hệ điều hành được phân chia thành một số tầng (cấp độ),
mỗi cái được xây dựng trên những tầng thấp hơn Tầng
cuối (tầng 0) là phần cứng, tầng; tầng cao nhất (tầng N) là
giao diện của người sử dụng
Với sự điều chỉnh đó, những tầng được lựa chọn để mỗi
cái sử dụng nhiều chức năng (hoạt động) và những dịch
vụ của chỉ những tầng cấp độ thấp
28
Trang 29CÁC TầNG CủA Hệ ĐIềU HÀNH
29
Trang 30Hệ ĐIềU HÀNH UNIX
UNIX – được giới hạn bởi những chức năng phần cứng,
nguyên bản hệ điều hành UNIX đã có cấu trúc bị giới
hạn hệ điều hành UNIX bao gồm 2 thành phần
Hệ thống chương trình
Kernel(nhân)
Bao gồm cả những thứ trên giao diện hệ thống cuộc gọi và trên phần
cứng vật lý
Cung cấp hệ thống dữ liệu, điều khiển CPU, quản lý bộ nhớ, và những
chức năng hệ điều hành khác; có nhiều chức năng cho một cấp độ
30
Trang 31CấU TRÚC Hệ UNIX
31
Trang 32Hệ THốNG CấU TRÚC MICROKERNEL
(KERNEL)
Chuyển nhiều thứ từ hạt nhân vào trong khoảng sử dụng
Thông tin lấy từ trong đơn vị sử dụng được sử dụng để kết thúc
thông điệp
Ưu điểm:
Dễ dàng mở rộng hạt nhân
Dễ dang tạo kiến trúc cho cổng của hệ điều hành
Đáng tin cậy hơn (ít mã được chạy trong phương thức hạt nhân)
Bảo đảm hơn
Nhược điểm:
Sự thi hành lệnh được nâng lên trong khoảng sử dụng tới thông
tin trong hạt nhân
32
Trang 3333
Trang 34 Mỗi thành phần có thể được tải khi cần trong nhân(kernel)
Nói chung là như phân lớp nhưng phức tạp hơn
34
Trang 35Trình điều khiển Bus
và thiết bị
Các cấp thiết lập
Hệ thống file
Lời gọi hệ thống có thể tải được
Các dạng có thể thực thi
Trang 36MÁY ảO
Một máy ảo tạo nên một cách tiếp cận phân tầng tới phần
kết thúc logic của nó Nó xem phần cứng và nhân hệ điều
hành như thể chúng là tất cả phần cứng vậy
Một máy ảo cung cấp một giao diện y hệt như các phần
cứng cơ sở
hệ điều hành tạo nên một bộ đa xử lí ảo (đa tiến trình ảo)
mà mỗi cái thực hiện trên bộ xử lí và bộ nhớ (ảo) của
chúng
36
Trang 37MÁY ảO (TIếP)
Các nguồn tài nguyên của máy tính tự nhiên được chia sẻ
để tạo nên máy ảo
Sự thiết lập CPU tạo một thể hiện mà người dùng có bộ
xử lí riêng
Sự cuộn lại (nén lại) và một hệthống file có thể cung cấp
một thẻ đọc ảo, và một máy in dòng ảo
Một giới hạn thời gian người dùng bình thường phục vụ
như là một bảng điều khiển ảo
37
Trang 39MÁY ảO (TIếP)
Khái niệm máy ảo cung cấp một sự bảo vệ hoàn hảo cho
tài nguyên hệ thống bởi vì mỗi máy ảo là độc lập với
những máy ảo khác Tuy nhiên, sự độc lập này không cho
phép chia sẻ trực tiếp nguồn tài nguyên
Một hệ thống máy ảo là một phương tiện hòan hảo cho
việc nghiên cứu và phát triển hệ điều hành Sự phát triển
của hệ điều hành được tiến hành trên máy ảo thay vì trên
máy tính bình thường vì thế không phá vỡ hệ điều
hành bình thường
Khái niệm máy ảo thật khó để thực thi đầy đủ bởi vì sự
nỗ lực đòi hỏi cung cấp một bản sao chính xác đối với
Trang 42Chương trình java(file class)
javaAPI(file class)
HĐHMÁY ảO JAVA
42
Trang 44Môi trường phát triển Java
Trình biên dịch java Môi trường thời gian biên
Trang 45Tên miền A Tên miền B
Đối tượng và lớp
Tiến trình Java
Hệ ĐIềU HÀNH JAVA
45
Trang 46TổNG QUÁT Hệ ĐIềU HÀNH
HĐH được thiết kế để chạy một lớp bất kì của máy hệ
thống phải được cấu hình một địa chỉ (site) nhất định
Chương trình SYSGEN chứa những thông tin liên quan
đến cấu hình chỉ định của phần cứng máy tính
Booting: Khởi động máy tính bằng việc tải nhân hđh
Chương trình Bootrap – mã lưu trữ trong ROM mà có thể
định vị cho nhân, tải nó vào bộ nhớ và thực thi nó
46
Trang 47 Đôi lúc tiến trình hai bước nơi mà khối boot tại một nơi
cố định tải Bootrap Loader
Khi nguồn được thiết lập, các chương trình khởi động
thực thi tại nơi của bộ nhớ cố định
Firmware được sử dụng để lưu lại các mã cài đặt Boot
47
Trang 48KếT THÚC CHƯƠNG 2
48