1 / 48

Chương 2:Cấu trúc hệ điều hành

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

jetta
Download Presentation

Chương 2:Cấu trúc hệ điều hành

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chương 2:Cấu trúchệđiềuhành Trương Văn Quốc Trần Văn Quang Nguyễn Hồng Quân

  2. 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

  3. 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

  4. 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ý

  5. 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

  6. 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

  7. 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

  8. 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)

  9. 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)

  10. 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 File đích File nguồn

  11. 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 đọc

  12. 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)

  13. API – System Call – Quan hệ trong HDH Ứng dụng cho ngươi dùng Hệ thống gọi giao diện

  14. Ví dụ về thư viện C chuẩn Chương trình C Thư viện C chuẩn

  15. 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

  16. Truyền tham số vào bảng Thanh ghi Người dùng Hệ Điều hành

  17. 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

  18. Sự thực hiện MS_DOS Quá trình Lệnh phiên dịch Khi mới khởi động Khi đang chạy chương trình

  19. Chương trình hoạt động nhiều nhánh liên tục tự do BSD

  20. 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

  21. Solaris 10 dtrace Following System Call

  22. 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 đó

  23. 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

  24. 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

  25. 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 đó

  26. 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ể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

  27. Cấu trúc tầng của MS-DOS 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

  28. 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

  29. Các tầng của hệ điều hành

  30. 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ầ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 độ

  31. Cấu trúc hệ UNIX

  32. 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

  33. Cấu trúc Mac OS X 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

  34. 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

  35. Các cấp thiết lập Cách tiếp cận Solaris Modular Trình điều khiển Bus và thiết bị Hệ thống file Lời gọi hệ thống có thể tải được Nhân của HĐH Modules hỗn hợp Các dạng có thể thực thi Modules luồng

  36. 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.

  37. 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

  38. Giao diện của chương trình dang chạy Sử lý Nhân Việc thi hành của thiết bị ảo Phần cứng

  39. 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ở

  40. Kiến trúc VMware ứng dụng HĐH khách CPU ảo bộ nhớ ảo Thiết bị ảo lớp ảo hóa

  41. 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

  42. Máy ảo JAVA 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

  43. Máy ảo Java Chương trình Nền phần cứng java Nền Java trong UNIX Nền Java trong windows

  44. 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ã bytecodes di chuyển xuyên qua file cục bộ hệ thống hoặc mạng Môi trường chạy

  45. Hệ điều hành JAVA Tên miền A Tên miền B Đối tượng và lớp Tiến trình Java Cổng Miền 0

  46. 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ó.

  47. 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

  48. Kết thúc chương 2

More Related