Bài giảng Hệ điều hành - Chương 2: Cấu trúc hệ điều hành - Hà Duy An

pdf 45 trang ngocly 50
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành - Chương 2: Cấu trúc hệ điều hành - Hà Duy An", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_he_dieu_hanh_chuong_2_cau_truc_he_dieu_hanh_ha_duy.pdf

Nội dung text: Bài giảng Hệ điều hành - Chương 2: Cấu trúc hệ điều hành - Hà Duy An

  1. Khoa Công Nghệ Thông Tin & Truyền Thông ĐạihọcCầnThơ Giảng viên: Hà Duy An
  2. 1. Các dịch vụ củahệđiềuhành 2. Giao diệnngười dùng 3. Lờigọihệ thống 4. Chương trình hệ thống 5. Thiếtkế và cài đặt 6. Cấutrúchệđiềuhành 8/17/20132 Chương 2: Cấu trúc hệ điều hành
  3. 8/17/20134 Chương 2: Cấu trúc hệ điều hành
  4. • HĐH cung cấpmôitrường cho các chương trình thực thi và các dịch vụ cho các chương trình và người dùng. • Các dịch vụ cung cấp các tính năng hữuíchvớingười dùng: o User interface (UI) - Hầuhếttấtcả các hệđiềuhànhđiềucó mộtgiaodiệnngười dùng: Command-Line (CLI), Graphics User Interface (GUI), Batch. o Program execution –nạpchương trình vào bộ nhớ,thựcthivà kết thúc nó o I/O operations –dochương trình người dùng không thể thực hiệntrựctiếp các thao tác I/O, HĐHphảicungcấpphương tiện để thựchiện thao tác I/O (file trên đĩa hay các thiếtbị I/O khác) o File-sytem manipulation –cungcấpcácphương tiện để chương trình có thểđọc, ghi, tạo, xóa, liệt kê, tìm kiếm, quảnlýquyền truy cậptrêntập tin/thư mục. 8/17/20135 Chương 2: Cấu trúc hệ điều hành
  5. • Communications –cáctiếntrìnhcóthể trao đổi thông tin với nhautrêncùngmột máy tính hay giữa các máy tính thông qua mạng o Việcgiaotiếpcóthể qua bộ nhớ chia sẽ (shared memory) hay qua phương thứctruyền thông điệp (message passing) • Error detection – để bảo đảm tính toán chính xác HĐHcần phát hiện ra các lỗixảy ra trong hệ thống o Có thể tồntại trong CPU, memory, I/O devices, user program o Vớimỗiloạilỗi, HĐHcầncómộtcơ chế thích hợp để đảmbảo việc tính toán là chính xác và nhất quán. 8/17/20136 Chương 2: Cấu trúc hệ điều hành
  6. • Các dịch vụđảmbảosự hoạt động hiệuquả của chính hệ thống vớicơ chế chia sẽ tài nguyên o Resource allocation – khi có nhiềungười dùng hay nhiều công việc đang thựcthiđồng thời, các nguồn tài nguyên phải đượccấp phát cho mỗi công việc • Có nhiềuloạitàitàinguyên–mộtvàiloạicómãcấpphát riêng biệt (CPU cycles, main memory, file storage), những loại khác có mã yêu cầuvàgiải phóng tài nguyên chung (I/O devices) o Accounting - theo dõi và ghi lại thông tin sử dụng tài nguyên củangười dùng để làm cơ sở tính tiềnsử dụng hệ thống hoặcthống kê sử dụng. 8/17/20137 Chương 2: Cấu trúc hệ điều hành
  7. • Protection and security – đảmbảorằng tấtcả truy cập đếnhệ thống đều đượckiểmsoát. o Protection: đảmbảotấtcả các truy cập đến các nguồntài nguyên củahệ thống điều đượckiểm soát o Security: đảmbảo an toàn cho hệ thống từ các truy cậpbên ngoài o Để đảmbảo an toàn, sự phòng ngừaphải đượcthựchiện trên toàn hệ thống 8/17/20138 Chương 2: Cấu trúc hệ điều hành
  8. • CLI hay command interpreter cho phép nhập các câu lệnh trựctiếp o Có thểđược cài đặt trong nhân hay như là mộtchương trình hệ thống (system program) o Mộthệ thống có thể cài đặt nhiềuCLI–shells • Các CLI có thểđược cung cấpbởibênthứ 3 o Chứcnăng chính là lấylệnh từ người dùng và thực thi nó o Các lệnh trên shell có thểđược cài đặt: • Shell chứamãthực thi các lệnh củangười dùng • Shell thực thi các lệnh củangười dùng bằng cách gọi các chương trình bên ngoài => chương trình CLI nhỏ,việccậpnhật các lệnh không ảnh hưởng đếnCLI 8/17/201310 Chương 2: Cấu trúc hệ điều hành
  9. 8/17/201311 Chương 2: Cấu trúc hệ điều hành
  10. • Giao diệnngười dùng đồ họa (Desktop): thân thiện, dễ sử dụng o Mouse, keyboard, monitor o Icons hiểnthị file, chương trình, thao tác, o Các sự kiệnchuộttrênnhững đốitượng khác nhau trên giao diện là cơ sở cho các thao tác khác nhau o Phát minh tạiXeroxPARC • Nhiềuhệ thống ngày nay có cả CLI và GUI: o Microsoft Windows o Apple Mac OS X o Unix và Linux GUI (CDE, KDE, GNOME), CLI (BASH SHELL, C SHELL, ) 8/17/201312 Chương 2: Cấu trúc hệ điều hành
  11. • Giao diện màn hình cảm ứng: o Không sử dụng chuột o Các thao tác dựatrêncử chỉ o Dùng bàn phím ảo 8/17/201313 Chương 2: Cấu trúc hệ điều hành
  12. • Lờigọihệ thống (System call)làgiaodiệnlậptrìnhđể sử dụng các dịch vụđược cung cấpbởihệđiềuhành • Thường đượcviếtbằng ngôn ngữ cấp cao (C, C++) • Hầuhết các chương trình sử dụng system call thông qua một giao diệnlậptrìnhứng dụng ở mứccao(API)hơn là dùng trựctiếp • 3APIphổ biếnnhất: o Windows API (HĐH Windows) o POSIX API cho POSIX-based systems (tấtcả các phiên bảncủa UNIX, Linux, Mac OS X) o Java API cho Java virtual machine (JVM) 8/17/201315 Chương 2: Cấu trúc hệ điều hành
  13. • Sử dụng system call để saochéptuầntự nội dung một file vào một file khác: 8/17/201316 Chương 2: Cấu trúc hệ điều hành
  14. • Giao diệnlờigọihệ thống (System-call interface): cung cấpgiao diệntrựctiếp đếncáclờigọihệ thống bên trong nhân => bắtcáclời gọi hàm trong API và gọi các lờigọihệ thống cầnthiết • Thông thường, mỗi system call sẽđượckếthợpvớimộtsố o Giao diệnlờigọihệ thống duy trì mộtbảng đượclặpchỉ mụctheocác số này • Giao diệnlờigọihệ thống gọi system call đượcchỉđịnh trong nhân HĐH(OSkernel)vàtrả về trạng thái + giá trị (nếucó)củalờigọihệ thống • Ngườilập trình không cầnbiếtbấtcứ gì về cách thức system call được cài đặt o Chỉ cần tuân theo API và hiểuHĐHsẽ làm gì khi thựchiệnmộtlờigọi o Hầuhết các chi tiếtcủagiaodiệnHĐH ẩnvớingườilậptrìnhbởiAPI 8/17/201318 Chương 2: Cấu trúc hệ điều hành
  15. 8/17/201319 Chương 2: Cấu trúc hệ điều hành
  16. • Thông thường, nhiều thông tin đượcyêucầuhơnlàchỉ có định danh củalờigọihệ thống (kiểu, dữ liệu, tùy chọn) • Nhìn chung có 3 phương pháp để truyềnthamsố cho HĐH: o Đơngiảnnhất: truyền qua các thanh ghi • Có thể có nhiềuthamsố hơnsố lượng thanh ghi có thể chứa o Các tham sốđượclưutrữ như là mộtkhối (block) hay bảng (table) trong bộ nhớ và địachỉ củakhốihaybảng tham sốđược truyềnnhư là mộtthamsố vào thanh ghi (Linux, Solaris) o Dùng stack: các tham sốđược đặt (pushed) vào stack bởichương trình và lấyrabởiHĐH o Phương pháp dùng block hay stack không giớihạnsố lượng hay chiềudàicủathamsố cầntruyền 8/17/201320 Chương 2: Cấu trúc hệ điều hành
  17. 8/17/201321 Chương 2: Cấu trúc hệ điều hành
  18. • CácSystemCallcóthểđược nhóm vào trong 6 loại chính: process control, file manipulation, device manipulation, information maintenance, communications, protection • Process control o end, abort o load, execute o create process, terminate process o get process attributes, set process attributes o wait for time o wait event, signal event o allocate and free memory 8/17/201322 Chương 2: Cấu trúc hệ điều hành
  19. • File management o create file, delete file o open, close file o read, write, reposition o get and set file attributes • Device management o request device, release device o read, write, reposition o get device attributes, set device attributes o logically attach or detach devices 8/17/201323 Chương 2: Cấu trúc hệ điều hành
  20. • Information maintenance o get time or date, set time or date o get system data, set system data o get and set process, file, or device attributes • Communications o create, delete communication connection o send, receive messages if message passing model to host name or process name • From client to server o Shared-memory model create and gain access to memory regions o transfer status information o attach and detach remote devices 8/17/201324 Chương 2: Cấu trúc hệ điều hành
  21. • Protection o Control access to resources o Get and set permissions o Allow and deny user access 8/17/201325 Chương 2: Cấu trúc hệ điều hành
  22. 8/17/201326 Chương 2: Cấu trúc hệ điều hành
  23. • Các chương trình hệ thống (System Programs)cungcấpmộtmôi trường thuậnlợichoviệcpháttriểnvàthựcthichương trình. Nó có thểđơngiảnlàgiaodiện đếncáclờigọihệ thống hay phứctạphơn. Bao gồm: o File management o Status information o File modification o Programming language support o Program loading and execution o Communications o Background services • Hầuhếtngườidùngquantâmđếncácchương trình hệ thống được cung cấp kèm theo HĐH, mà không cầnbiếtvề system call 8/17/201329 Chương 2: Cấu trúc hệ điều hành
  24. • File management – Create, delete, copy, rename, print, dump, list, và các thao tác chung trên các file và thư mục • Status information o Là những chương trình yêu cầuhệ thống cung cấp các thông tin như ngày, giờ,lượng bộ nhớ hay đĩasẵn dùng, số lượng người dùng. o Hay các thông tin chi tiếtphứctạphơn: tình trạng thựcthi, logging, debugging o Các chương trình này định dạng và xuấtdữ liệuramáyinhay các thiếtbị xuất khác o Vài hệ thống cài đặtmột registry –dùngđể lưutrữ và truy xuất thông tin cấuhình 8/17/201330 Chương 2: Cấu trúc hệ điều hành
  25. • File modification o Các trình soạn thảo văn bản dùng để tạo và sửa đổi file o Có cung cấp các lệnh để tìm kiếm nội dung file hay thực hiện việc chuyển đổi văn bản • Programming-language support – Compilers, assemblers, debuggers, interpreters cho các ngôn ngữ phổ biến • Program loading and execution – Absolute loaders, relocatable loaders, linkage editors, and overlay-loaders, debugging systems for higher-level and machine language • Communications – cung cấp cơ chế để tạo các kết nối ảo giữa các tiến trình, người dùng hay các hệ thống máy tính 8/17/201331 Chương 2: Cấu trúc hệ điều hành
  26. • Background Services: disk checking, error monitoring, network daemon o Khởichạyvàothờigianhệ thống đượckhởi động • Vài chương trình dùng để khởi động hệ thống, sau đókết thúc • Vài chương trình thựcthiđến khi hệ thống shutdown o Chạy trong chếđộngười dùng o Đượcbiếtnhư là services, subsystems, daemons 8/17/201332 Chương 2: Cấu trúc hệ điều hành
  27. 8/17/201333 Chương 2: Cấu trúc hệ điều hành
  28. • Có nhiềuhướng tiếpcận • Cấu trúc bên trong các HĐHcóthể rất khác nhau • Bắt đầubằng việcxácđịnh các mục tiêu và đặttả kỹ thuật o Phầncứng, kiểuhệ thống (batch, time sharing, single user, multiuser, distributed, real time, or general purpose) • Mục tiêu người dùng và mục tiêu hệ thống: o Mụctiêungườidùng:HĐHcầntiệndụng, dễ học, đáng tin cậy, an toàn và nhanh o Mụctiêuhệ thống: HĐHcầndễ thiếtkế, cài đặtvàbảotrì,linh hoạt, tin cậy, không lỗivàhiệuquả 8/17/201334 Chương 2: Cấu trúc hệ điều hành
  29. • Nguyên tắt quan trọng: phân chia chính sách (policy) và cơ chế (Mechanism) o Chính sách : cái gì đượclàm? o Cơ chế :làmnhư thế nào? • Đây là nguyên tắt quan trọng cho phép hệ thống có khả năng linh hoạt cao khi các chính sách bị thay đổisauđó 8/17/201335 Chương 2: Cấu trúc hệ điều hành
  30. • Ngôn ngữ sử dụng: o Hợpngữ o Các ngôn ngữ lậptrìnhhệ thống như Algol, PL/1 o C, C++ • Thựctế thường là sự kếthợpcủa nhiều ngôn ngữ: o Mứcthấp: hợpngữ o Phần chính: C o Các chương trình hệ thống: C, C++, scripting languages (PERL, Python, shell scripts) • Việc dùng ngôn ngữ cấpcaochophépHĐHdễ thựcthitrên các phầncứng khác nhau nhưng chậmhơn 8/17/201336 Chương 2: Cấu trúc hệ điều hành
  31.  Các hệ điều hành đa mục đích rất lớn và phức tạp  Các thành phần cần được bố trí cẩn thận => đảm bảo các chức năng và dễ bổ xung sửa đổi 8/17/201337 Chương 2: Cấu trúc hệ điều hành
  32. • MS-DOS – đượcviết để cung cấp nhiềuchứcnăng nhấtvới dung lượng nhỏ nhất. o Không được chia thành các modules. o Mặc dù MS-DOS đượctổ chứccócấutrúc,nhưng các mứcchứcnăng và giao diện giữa chúng không được tách biệt rõ ràng. 8/17/201338 Chương 2: Cấu trúc hệ điều hành
  33. • UNIX – bị giớihạnbởiphầncứng, hệđiềuhànhUNIXkhởi đầucócấutrúcgiớihạn. Gồm2phần riêng biệt: o Các chương trình hệ thống o Nhân (kernel) • Bao gồmtấtcả những gì bên dướigiaodiệnlờigọihệ thống và bên trên phầncứng • Cung cấphệ thống quảnlýtập tin, định thờiCPU,quảnlýbộ nhớ, và các chứcnăng khác củaHĐH=>mộtlượng lớn các chứcnăng trong cùng mộtmức 8/17/201339 Chương 2: Cấu trúc hệ điều hành
  34. • Có cấutrúchơigiống vớicấu trúc phân tầng 8/17/201340 Chương 2: Cấu trúc hệ điều hành
  35. • HĐH được chia thành một số tầng (mức), mỗitầng đượcxâydựng trên nềntảng củamộttầng khác thấphơn. Tầng thấpnhất(layer0)là tầng vật lý, tầng cao nhất (layer N) là giao diệnngười dùng. • Sự phân chia chứcnăng đượcthựchiện sao cho mỗi mộttầng sẽ sử dụng các chứcnăng và các dịch vụ được cung cấpchỉ bởi các tầng mứcthấphơn 8/17/201341 Chương 2: Cấu trúc hệ điều hành
  36. • Di chuyển nhiềuchứcnăng từ nhân lên mứcngười dùng, giữ lạicác phầnchínhyếu: quản lý quá trình, bộ nhớ,giaotiếpgiữa các quá trình → nhân nhỏ hơn • Giao tiếpgiữa các quá trình ngườidùngđượcthựchiệnbằng cơ chế chuyển thông điệpgiántiếp thông qua nhân • Lợiích: o Dễ dàng mở rộng HĐHnhư các dịch vụ mới, đưa vào không gian người dùng o Dễ dàng chuyển đổiHĐH sang các kiếntrúcmới do nhân nhỏ hơn o Tin cậyvàantoànhơn(ítmãlệnh chạy ở mức nhân hơn) • Nhược điểm: o Chi phí cho việcgiaotiếpgiữa các tiến trình trong không gian người dùng và nhân 8/17/201342 Chương 2: Cấu trúc hệ điều hành
  37. Application File Device user Program System Driver mode messages messages Interprocess memory CPU kernel Communication managment scheduling mode microkernel hardware 8/17/201343 Chương 2: Cấu trúc hệ điều hành
  38. • Hầuhết các HĐH dùng các loadable kernel module o Dùng tiếpcậnhướng đốitượng o Các thành phầnlõiđược tách ra o Giao tiếpvới nhau thông qua các interface o Đượcnạp vào trong nhân khi cầnthiết • Nhìn chung gầngiống vớikiến trúc phân tầng nhưng linh hoạt hơn o Linux, Solaris, Mac OS X, Windows, 8/17/201344 Chương 2: Cấu trúc hệ điều hành
  39. 8/17/201345 Chương 2: Cấu trúc hệ điều hành
  40. • Hầuhết các hệđiều hành không thậtsự dùng mộtkiểucấutrúc đơnnhất o Kếthợp nhiềuhướng tiếpcậnnhằm đạt đượchiệusuất, độ an toàn, khả năng linh hoạt cao nhấtcóthể 8/17/201346 Chương 2: Cấu trúc hệ điều hành