Upload
jetta
View
83
Download
0
Embed Size (px)
DESCRIPTION
Chương 2:Cấu trúc hệ điều hành. Trương Văn Quốc Trần Văn Quang Nguyễn Hồng Quân. Chương 2: Cấu trúc hệ điều hành. Các hệ thống thông tin dịch vụ Giao diện hệ điều hành của người sử dụng Lời gọi hệ thống Các lời gọi hệ thống Các chương trình hệ thống Hệ điều hành thiết kế và cài đặt - PowerPoint PPT Presentation
Citation preview
CHƯƠNG 2:CấU TRÚC Hệ ĐIềU HÀNH
1
Trương Văn QuốcTrần Văn QuangNguyễn Hồng Quân
CHƯƠNG 2: CấU TRÚC Hệ ĐIềU HÀNH
Các hệ thống thông tin dịch vụ Giao diện hệ điều hành của người sử dụng Lời gọi hệ thống Các lời gọi hệ thống Các chương trình hệ thống Hệ điều hành thiết kế và cài đặt Cấu trúc hệ điều hành Máy ảo Tổng quát hệ điều hành Khởi động hệ thống
2
Mụ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
CÁ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
CÁ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
khả năng sử dụng hiệu quả các hệ thống 5
CÁ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
GIAO 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
USER OPERATING SYSTEM INTERFACE – GUI(GRAPHICS USER 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
LờI GọI Hệ THốNG
Lập trình giao diện cho các dịch vụ được cung cấp bởi các hệ điều hành
Thường được viết trong một ngôn ngữ cấp độ cao (C hoặc C + +)
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
VÍ 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ồnFile đích
VÍ 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 đọc11
Sự 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
API – SYSTEM CALL – QUAN Hệ TRONG HDH
13
Ứng dụng cho ngươi dùng
Hệ thống gọi giao diện
VÍ Dụ Về THƯ VIệN C CHUẩN
14
Chương trình C
Thư viện C chuẩn
TRUYề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 dài của tham số được truyền vào 15
TRUYềN THAM Số VÀO BảNG
16
Thanh ghi
Hệ Điều hành
Người dùng
CÁC LờI HọI Hệ THốNG:
Quá trình điều khiển Quản lý dữ liệu Quản lý thiết bị Sự duy trì thông tin Sự giao tiếp
17
Sự 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
CHƯƠNG TRÌNH HOạT ĐộNG NHIềU NHÁNH LIÊN TụC Tự DO BSD
19
CÁ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
SOLARIS 10 DTRACE FOLLOWING SYSTEM CALL
21
CÁ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 các thông tin đó 22
CÁ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
Hệ Đ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
Hệ Đ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
Cấ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ểuKhông phân chia thành những bộ phận độc lậpMặ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
Cấ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
PHƯƠ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
CÁC TầNG CủA Hệ ĐIềU HÀNH
29
Hệ Đ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ầnHệ 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
CấU TRÚC Hệ UNIX
31
Hệ 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
Môi trường ứng dụng và dịch vụ phổ biến
Nhân của môi trường
Nhân của HĐH BSD & MACH
CấU TRÚC MAC OS X
33
MODULE
Sử dụng cách tiếp cận hướng đối tượng
Mỗi thành phần nhân là độc lập
Mỗi thành phần giao tiếp với nhau bằng một giao thức định trước
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
Trình điều khiển Bus và thiết bị
Các cấp thiết lậpHệ thống file
Lời gọi hệ thống có thể tải được
Các dạng có thể thực thi
Modules hỗn hợp
Modules luồng
Nhân của HĐH
CÁCH TIếP CậN SOLARIS MODULAR
35
MÁ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
MÁ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
38
Sử lý
Nhân
Phần cứng
Giao diện của chương trình dang chạy
Việc thi hành của thiết bị ảo
MÁ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 máy tính cơ sở
39
ứng dụng
HĐH khách
CPU ảo
bộ nhớ ảo
Thiết bị ảolớp ảo hóa
KIếN TRÚC VMWARE40
JAVA:
Java chứa
Một định nghĩa(mô tả) ngôn ngữ lập trình
Một giao diện lập trình ứng dụng
Một mô tả máy ảo
41
Chương trình java(file class)javaAPI(file class)
Trình thông dịch Java Trình tải lớp
HĐH
MÁY ảO JAVA42
Chương trình
Nền Java trong UNIX Nền Java trong windows
Nền phần cứng java
MÁY ảO JAVA
43
Môi trường phát triển Java
Trình biên dịch java Môi trường thời gian biên dịch
Môi trường chạy
Mã bytecodes di chuyển xuyên qua file cục bộ hệ
thống hoặc mạng
44
Tên miền A Tên miền B
Đối tượng và lớp
Tiến trình Java
Miền 0Cổng
Hệ ĐIềU HÀNH JAVA
45
Tổ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
KHởI ĐộNG Hệ THốNG
HĐH cần phải đươc sẵn sàng cho phần cứng để phần cứng có thể khởi động nó
Những đoạn mã nhỏ - Bootrap Loader- định vị nhân, tải nó vào bộ nhớ và khởi động nó.
Đô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
KếT THÚC CHƯƠNG 2
48