Bài giảng Hệ điều hành - Chương 1: Tổng quan hệ điều hành - Phạm Tuấn Sơn

pdf 44 trang hapham 410
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 1: Tổng quan hệ điều hành - Phạm Tuấn Sơn", để 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_1_tong_quan_he_dieu_hanh_pham.pdf

Nội dung text: Bài giảng Hệ điều hành - Chương 1: Tổng quan hệ điều hành - Phạm Tuấn Sơn

  1. Chương 1 Tổng quan Hệ điều hành Phạm Tuấn Sơn Email: ptson@fit.hcmuns.edu.vn 1
  2. Mục tiêu n Phát biểu hệ điều hành là gì n Giải thích vai trò của hệ điều hành trong hệ thống máy tính n Trình bày các chức năng của hệ điều hành n Trình bày đặc điểm của một số kiến trúc hệ điều hành n Trình bày quá trình khởi động máy tính 2
  3. Dẫn nhập n Đã nghe: q Máy tính là thiết bị tính toán nhiều tính năng q Máy tính gồm 3 thành phần: n Bộ xử lý n Bộ nhớ n Các thiết bị nhập xuất n Đã sử dụng máy tính: q Chơi game q Nghe nhạc q Lập trình n Đã sử dụng máy tính như thế nào, có dễ không? 3
  4. ENIAC -Máy tính hiện đại đầu tiên 4
  5. hệ thống xử lý theo lô (batch system) n Phần cứng cung cấp thiết bị tính toán q Làm sao chia sẻ thiết bị đắt tiền giữa nhiều người dùng? n Đăng kí giờ sử dụng? n Đưa chương trình cho người vận hành máy? n Họ chạy CT và trả lại kết quả cho bạn n Hệ điều hành (HĐH) được phát triển để thực hiện các công việc một cách tuần tự n HĐH luôn nằmtrong bộ nhớ q Quản lý thường trú(Resident monitor) n Người điều khiển đưa cho máy một chuỗi các chương trình được phân cách q Thông thường, chương trình nằm trong các thẻ đọc (card) được phân cách bởi các thẻ điều khiển (control card). Đầu đọc thẻ (card reader) sẽ đọc dữ liệu trên các thẻ này 5
  6. Tăng hiệu năng -Cuộn (Spooling) n CPU nhanh hơn rất nhiều so với đầu đọc thẻ và máy in n Ổ cứng ra đời, nhanh hơn nhiều so với đầu đọc thẻ n Vậy chúng ta sẽ làm gì? q Đọc cv 1 từ thẻ vào đĩa. Thực thi cv 1, trong khi đó đọc cv 2 từ thẻ vào đĩa; lưu kết quả cv 1 vào đĩa. In kết quả cv 1, trong khi đó thực thi cv 2 và đọc cv 3 từ thẻ vào đĩa. Và tiếp tục như vậy q gọi là spooling: Simultaneous Peripheral Operation On-Line n Có thể sử dụng nhiều đầu đọc thẻ và máy in để theo kịp tốc độ CPU n Cải thiện tốc độ xử lý cũng như thời gian phản hồi 6
  7. Đa chương (Multiprogramming) n CPU vẫn sẽ rảnh mỗi khi chương trình thực thi cần giao tiếp với thiết bị ngoại vi q Ý tưởng: đọc nhiều dữ liệu từ đĩa hơn n Hệ thống đa chương theo lô (Multiprogrammed batch system) ra đời q Nạp đồng thời nhiều chương trình vào đĩa (sau này là vào bộ nhớ) q Chuyển sang công việc kế tiếp nếu công việc hiện thời đang thực hiện lệnh nhập/xuất n Thiết bị ngoại vi thường chậm hơn trên đĩa (hay bộ nhớ) q Đồng thời thực hiện nhập/xuất của chương trình này và tính toán cho chương trình khác q Thiết bị ngoại vi phải là bất đồng bộ q Phải biết khi nào công việc nhập xuất xong: ngắt vs. polling q Tiêu chí: bộ xử lý luôn trong tình trạng làm việc n Tăng khả năng phục vụ của hệ thống, có thể tốn nhiều thời gian hơn để phản hồi q Khi nào thì tốt cho thời gian phản hồi? Khi nào thì xấu cho thời gian phản hồi? 7
  8. Chia sẻ thời gian (Time-Sharing) n Các bạn có thể tưởng tượng, theo lô có những hạn chế lớn q Bạn nhập 1 công việc, đợi một lúc, nhận kết quả, thấy lỗi, cố gắng tìm ra chỗ sai, nhập lại công việc, n Công nghệ mới hơn:có các thiết bị đầu cuối (màn hình) và hỗ trợ giao diện tương tác n Làm sao chia sẻ cùng 1 máy (nhớ là máy tính lúc đó rất đắt) giữa nhiều người dùng và vẫn duy trì giao diện giao tiếp với người dùng? n Chia sẻ thời gian q Nối nhiều thiết bị đầu cuối đầu cuối đến một máy tính q Điều phối 1 máy tính cho nhiều người dùng q Chuyển đổi phục vụ giữa các chương trình người dùng sao cho đủ nhanh để người sử dụng có thể tương tác với chương trình trong khi chúng đang chạy (tạo cảm giác mỗi người dùng đang dùng máy riêng của mình) 8
  9. Hệ điều hành song song (Parallel OS) n Vài ứng dụng có các công việc có thể thực hiện đồng thời q Dự báo thời tiết, mô phỏng, tính toán lại các bảng tính n Có thể tăng tốc độ bằng cách chạy các công việc trên các bộ xử lý khác nhau song song đồng thời n Cần HĐH và ngôn ngữ lập trình hỗ trợ chia nhỏ công việc thành các hành động song song n Cần HĐH hỗ trợ đồng bộ và truyền thông nhanh n Nhiều kiến trúc song song khác nhau 9
  10. HĐH thời gian thực (Real-Time OS) n Thực thi các ứng dụng có thời hạn cho trước n Hard real-time system q Hệ thống điều khiển bay, các hệ thống điều khiển công nghiệp, v.v q Gây thảm họa nếu ta trễ hạn q Thách thức là làm sao không trễ hạn mà không phung phí nhiều tài nguyên n Soft real-time system q Ứng dụng multimedia q Có thể gây khó chịu nhưng không đến nỗi thảm họa nếu bị quá hạn đôi chút! q Thách thức là làm sao không trễ hạn mà không phung phí nhiều tài nguyên q Thử thách ở chỗ là khi hệ thống quá tải 10
  11. HĐH phân tán (Distributed OS) n Clustering –Hệ thống phân tán cục bộ q Dùng nhiều máy nhỏ để phục vụ các công việc lớn n Rẻ hơn là dùng một máy tính lớn n Độ tin cậy cao hơn, tăng khả năng mở rộng n Hệ thống phân tán trên diện rộng q Cho phép sử dụng tài nguyên phân tán n VD. sử dụng PC để truy cập Web n Không cần mang nhiều thông tin cần thiết theo mình n HĐH hỗ trợ truyền thông và chia sẻ tài nguyên phân tán q VD. hệ lưu trữ tập tin trên mạng n Quan tâm tính thực thi (mặc dù tăng tốc không phải là mục tiêu của HĐH này), độ tin cậy cao, sử dụng nguồn tài nguyên đa dạng 11
  12. HĐH nhúng (Embedded OS) n Phát triển rộng khắp q Hiện thời, ĐTDĐ và PDA q Tương lai, các thiết bị tính toán ở mọi nơi n Đặc tính q Tài nguyên hạn chế: CPU chậm, bộ nhớ nhỏ, không ổ đĩa, v.v. q Làm sao ta có thể chạy các chương trình mạnh hơn trong điều kiện tài nguyên phần cứng hạn chế? n Sử dụng nhiều thiết bị n Tăng thêm các tiện ích trên thiết bị n HĐH giúp quản lý năng lượng, tính di động, tìm kiếm tài nguyên, v.vv. 12
  13. Quá trình phát triển các khái niệm và tính năng HĐH 13
  14. Hệ điều hành là gì? Ứng dụng / Người dùng Hệ điều hành Phần cứng n Một lớp phần mềm ở giữa phần cứng và các chương trình ứng dụng/người dùng, nó ảo hóa (virtualize) các thành phần phần cứng nhằm giúp việc giao tiếp: dễ dàng và an toàn n Một bộ quản lý tài nguyên (resource manager) cho phép các chương trình/người dùng chia sẻ tài nguyên phần cứng: công bằng và hiệu quả n Một tập các tiện ích để đơn giản hóa việc phát triển ứng dụng
  15. Tổng quát hóa các thành phần của hệ thống 15
  16. Các thành phần của hệ điều hành n Quản lý tiến trình CPU Memory n Quản lý bộ nhớ n Quản lý hệ thống nhập xuất memory bus n Quản lý tập tin n Hệ thống bảo vệ và bảo mật I/O bus disk Net interface 16
  17. Quản lý tiến trình n Tiến trình là chương trình đang thực thi. n Một tiến trình cần các tài nguyên CPU, bộ nhớ, tập tin, thiết bị nhập xuất để hoàn tất công việc của nó n Thường một hệ thống sẽ có nhiều tiến trình chạy cùng lúc.Tại sao ? n Số lượng CPU, tài nguyên, bộ nhớ << số lượng tiến trình chạy cùng lúc !!! 17
  18. Quản lý tiến trình (tt) n Vai trò của HĐH trong việc quản lý tiến trình q Tạo, hủy, tạm dừng và thực hiện tiếp tiến trình q Quản lý trạng thái các tiến trình q Điều phối tiến trình: FIFO, Round Robin, SJF, q Cung cấp cơ chế đồng bộ tiến trình n Độc quyền truy xuất n Phối hợp hoạt động q Cung cấp cơ chế kiểm soát deadlock q Cung cấp cách thức trao đổi thông tingiữa các tiến trình n Chia sẻ tài nguyên dùng chung n Trao đổi thông điệp 18
  19. Quản lý bộ nhớ n Mọi chương trình (mã nguồn + dữ liệu) cần được nạp vào bộ nhớ chính để thi hành n Nhiều tiến trình chạy đồng thời à Quản lý bộ nhớ sao cho tối ưu việc tận dụng CPU và đáp ứng kịp thời cho người sử dụng n Vai trò của HĐH trong việc quản lý bộ nhớ: q Tổ chức cấp phát, thu hồi bộ nhớ khi cần thiết n Mô hình liên tục n Mô hình không liên tục q Lưu trữ thông tin về các vị trí trong bô nhớ đã nhớ đã được sử dụng và tiến trình nào sử dụng q Chuyển đổi địa chỉ được sử dụng trong tập tin chương trình thành địa chỉ trong bộ nhớ chính q Quản lý bộ nhớ ảo n Quyết định chương trình/ một phần chương trình nào được nạp vào/ ra bộ nhớ như thế nào 19
  20. Quản lý nhập xuất n Che đi đặc thù phức tạp của các thiết bị nhập xuất đối với người sử dụng n Hệ thống quản lý nhập xuất chịu trách nhiệm: q Tạo môi trường giao tiếp đơn giản với các thiết bị nhập xuất q Quản lý bộ nhớ nhập xuất: n Buffering: lưu dữ liệu tạm thời trong khi truyền n Caching: lưu một phần dữ liệu trên thiết bị lưu trữ nhanh hơn n Spooling: lưu tạm dữ liệu xuất cho các thiết bị 20
  21. Quản lý tập tin n Nhiều loại thiết bị lưu trữ đa dạng về tốc độ truy xuất, khả năng lưu trữ, tốc độ truyền dữ liệu, phương thức truy xuất n HĐH cung cấp cái nhìn logic và đồng nhất về việc lưu trữ thông tin q Trừu tượng hóa thông tin vật lý thành đơn vị lưu trữ logic – tập tin n Tập tin thường được tổ chức trong các thư mục n Quyền truy cập –xác định ai được quyền truy cập cái gì n Vai trò HĐH trong việc quản lý tập tin: q Tạo, xóa tập tin, thư mục q Hỗ trợ các thao tác trên tập tin và thư mục q Ánh xạ tập tin trên hệ thống lưu trữ phụ q Sao lưu dự phòng tập tin trên các thiết bị lưu trữ n Vai trò của HĐH trong việc quản lý đĩa q Quản lý vùng trống trên đĩa q Định vị lưu trữ q Lập lịch cho đĩa 21
  22. Bảo vệ và bảo mật n Hệ thống máy tính luôn đứng trước các mối nguy cơ: q Khách quan: thiên tai, lỗi sử dụng, lỗi phần cứng, phần mềm. q Chủ quan: n Tấn công phá hoại: virus, worm, DoS, n Ăn cắp tài nguyên: trojan horses, trap doors, Man-in-the-middle, n Bảo vệ (protection) và Bảo mật (security): q Kiểm soát quá trình truy xuất tài nguyên của tiến trình /người dùng (kernel mode vs. user mode) q Phòng thủ, chống lại các tấn công n Một số cơ chế: q Sao lưu dự phòng (Backup) q Xác thực người dùng (User Authentication) q Phân quyền (Authorization), chính sách bảo mật (Policy) q Kiểm soát nhật ký (Audit log) q 22
  23. Tại sao chúng ta cần hệ điều hành? n Lợi ích cho người lập trình q Dễ dàng hơn trong việc lập trình n Chỉ thấy mức trừu tượng cao, không cần phải biết chi tiết phần cứng q VD. tập tin chứ không phải các blocks trên ổ cứng n Mỗi HĐH cung cấp một tập các hàm cơ bản, gọi là lời gọi hệ thống (system call) để phục vụ cho các yêu cầu từ các chương trình q Tương thích giữa các hệ thống n Cần phân biệt: Lời gọi hệ thống & Hàm thư viện của HĐH (VD. Win32 API for Windows) & Hàm thư viện của ngôn ngữ lập trình (VD. thư viện C) q Có thể lập trình trực tiếp sử dụng lời gọi hệ thống ? n Lợi ích của người dùng q Dễ dàng sử dụng máy tính n Bạn có thể hình dung việc sử dụng máy tính không cần HĐH? q An toàn n HĐH bảo về chương trình giữa các chương trình khác nhau n HĐH bảo về người dùng giữa các người dùng khác nhau 23
  24. Ví dụ về việc sử dụng Lời gọi hệ thống n Chuỗi các lời gọi hệ thống được thực hiện để sao chép nội dung của 1 tập tin sang 1 tập tin khác 24
  25. Một số hàm API 25
  26. API và Lời gọi hệ thống ReadFile( ) read() read() 26
  27. Hàm thư viện C và Lời gọi hệ thống 27
  28. Một số kiến trúc HĐH Kiến trúc đơn giản 28
  29. Kiến trúc đơn giản n Các ứng dụng, thư viện, nhân HĐH nằm chung không gian địa chỉ n Ưu điểm: q Xử lý yêu cầu rất nhanh q Dễ mở rộng q Phù hợp với môi trường đơn người dùng n Khuyết điểm q Không có bảo vệ giữa nhân HĐH và các ứng dụng q Những mở rộng có thể gây ra những n MS-DOS, Mac OS 9, Windows ME, 98, 95, 3.1, Palm OS và HĐH cho một số hệ thống nhúng 29
  30. Một số kiến trúc HĐH Kiến trúc Monolithic 30
  31. Kiến trúc Monolithic n Nhân HĐH bao gồm toàn bộ các thành phần quản lý nằm ở không gian riêng biệt với các ứng dụng n Ưu điểm: q Xử lý yêu cầu nhanh q Dễ hiểu đối với những người phát triển nhân HĐH q Bảo vệ phần nhân HĐH với các ứng dụng n Nhược điểm: q Không có bảo vệ giữa các thành phần trong nhân HĐH q Cấu trúc phức tạp, khó mở rộng (do không có ranh giới rõ ràng giữa các thành phần) n Unix, Windows NT/XP, Linux, BSD 31
  32. Một số kiến trúc HĐH Kiến trúc MicroKernel 32
  33. Kiến trúc MicroKernel n Tiêu chí: nhân hệ điều hành (phụ thuộc phần cứng) càng đơn giản càng tốt n Các thành phần quản lý của HĐH chạy như các dịch vụ server ở mức người dùng n Một dịch vụ server bị trục trặc không làm “treo” toàn bộ hệ thống n Các chương trình ứng dụng hoạt động như các client yêu cầu các dịch vụ server bằng các gửi thông điệp thông qua nhân HĐH n Mach, Chorus, QNX, GNU Hurd 33
  34. Kiến trúc MicroKernel n Ưu điểm: q Dễ mở rộng n Thêm tính năng mới cho HĐH bằng cách thêm 1 dịch vụ server q Phần nhân không xác định môi trường HĐH n Cho phép hỗ trợ chạy nhiều HĐH n Cần 1 server giả lập cho mỗi hệ thống (Mac, Windows, Unix) n Tất cả các ứng dụng cùng chạy trên microkenel n Có thể tùy chọn HĐH để chạy ứng dụng q Các dịch vụ của HĐH độc lập phần cứng q Các thành phần của HĐH được bảo vệ tốt q Dễ mở rộng cho hệ thống nhiều bộ xử lý và hệ thống phân tán n Khuyết điểm q Xử lý yêu cầu chậm q Khó khăn trong việc triển khai hệ thống 34
  35. Nhắc lại qui trình làm việc của CPU n Bộ xử lý gồm: ALU, CU, Register n Quá trình bộ xử lý thực thi yêu cầu (dưới dạng các lệnh): lấy lệnh –giải mã –thực thi (fetch –decode –execute) Bộ nhớ 0 CPU 1 Phép toán +,-,*,/-,*,/ 2 3 Phép logic ,!= 4 Bộ đếm CT (PC) 8 5 Thanh ghi 0 6 7 Thanh ghi 1 8 Thanh ghi n 9 35
  36. Quá trình khởi động máy tính (1) n Hệ điều hành nằm ở đâu ? n Làm sao để máy tính nạp và chạy HĐH lúc khởi động? q Quá trình để khởi động HĐH gọi là booting n Quá trình khởi động của các máy hiện đại gồm 3 giai đoạn q CPU thực thi lệnh từ địa chỉ cố định biết trước (boot ROM) q Firmware nạp boot loader q Boot loader nạp HĐH n (1) CPU thực thi lệnh từ địa chỉ biết trước trong bộ nhớ q Địa chỉ vùng nhớ này thường trỏ tới vùng nhớ chỉ đọc (ROM – read-only memory) q Với x86, địa chỉ này là 0xFFFF0, trỏ tới địa chỉ chương trình BIOS (basic input-output system) trong ROM 36
  37. Quá trình khởi động máy tính (2) n (2) ROM chứa mã nguồn “boot” q Loại phần mềm chỉ đọc này gọi là firmware q Với x86, chương trình BIOS thực hiện lần lượt các công việc: n Kiểm tra cấu hình trong CMOS (complementary metal oxide semiconductor) n Nạp trình quản lý ngắt (interrupt handler) và các trình điều khiển thiết bị n Khởi tạo các thanh ghi và quản lý nguồn cung cấp (power management) n Thực hiện quá trình kiểm tra phần cứng (POST –power-on self-test) n Hiển thị các thiết lập hệ thống n Xác định các thiết bị có khả năng khởi động n Tiếp tục quá trình khởi động q Nạp và thực thi chương trình boot loader. 37
  38. Thực thi firmware 38
  39. Quá trình khởi động máy tính (3) n (3) Boot loader sau đó nạp phần còn lại của HĐH. Chú ý rằng tại thời điểm này HĐH vẫn chưa chạy q Boot loader hiểu được nhiều hệ điều hành khác nhau q Boot loader hiểu được nhiều phiên bản khác nhau của các HĐH q Đã bao giờ nghe “dual boot” ? 39
  40. Nạp hệ điều hành 40
  41. Tại sao phải cần 1 chương trình Boot? n Tại sao ta không lưu HĐH vào trong ROM ? n Tách HĐH ra khỏi phần cứng q Nhiều HĐH hay Các phiên bản HĐH khác nhau n Muốn boot từ nhiều thiết bị khác nhau q VD. bảo mật thông qua network boot n HĐH thường khá lớn. Không nên làm giống như firmware 41
  42. Bài tập n HãysosánhHĐHvàcácphầnmềmkhácdựavào cáctiêuchísau: q Khả năng tự hoạt động ngay sau khi bật máy q Tác động đến máy tính khi chương trình kết thúc q Mức độ cần thiết cho sự hoạt động tối thiểu của máy tính q Khả năng điều khiển phần cứng q Độ phức tạp q Thứ tự cài đặt q Mức độ sử dụng q Hình thức quản lý q Số lượng cài đặt trên mỗi máy tính 42
  43. Gợi ý n Khả năng tự hoạt động ngay sau khi bật máy: HĐH thường có khả năng này còn các phần mềm khác thì không. n Tác động đến máy tính khi chương trình kết thúc: khi kết thúc HĐH thì máy tính không sử dụng được nữa (và HĐH thường tự thực hiện luôn thao tác tắt máy), các phần mềm khác không như vậy. n Mức độ cần thiết cho sự hoạt động tối thiểu của máy tính: HĐH là phần mềm bắt buộc phải có, các phần mềm khác thì không tới mức bắt buộc. n Khả năng điều khiển phần cứng: Các phần mềm khác không điều hành trực tiếp các thiết bị phần cứng (trong 1 số trường hợp hiếm hoi thì cũng có –nhưng khi đó chỉ điều hành 1 vài thiết bị), còn HĐH điều hành tất cả các thiết bị phần cứng. n Độ phức tạp: HĐH thường được thiết kế công phu, phức tạp hơn các phần mềm khác. 43
  44. Gợi ý (tt) n Thứ tự cài đặt: HĐH phải được cài đặt vào máy tính trước các phần mềm khác. n Mức độ sử dụng: người dùng máy tính nào cũng phải sử dụng HĐH, còn những phần mềm khác thì người có người không n Hình thức quản lý: Các phần mềm khác không quản l ý, điều hành HĐH mà là ngược lại: HĐH quản lý, điều hành các phần mềm khác. n Số lượng cài đặt trên mỗi máy tính: mỗi máy tính cao cấp thường chỉ có 1 hoặc vài HĐH, nhưng thường có rất nhiều phần mềm n Số lượng hoạt động trên mỗi máy tính: mỗi thời điểm chỉ có 1 HĐH hoạt động nhưng thường có nhiều phần mềm đang chạy cùng lúc. 44