Giới thiệu tổng quan về hệ điều hành
Chia sẻ bởi Tô Công Duy Linh |
Ngày 29/04/2019 |
86
Chia sẻ tài liệu: Giới thiệu tổng quan về hệ điều hành thuộc Bài giảng khác
Nội dung tài liệu:
1
Chương 1
Tổng quan Hệ điều hành
Email:[email protected]
2
Mục tiêu
Phát biểu hệ điều hành là gì
Giải thích vai trò của hệ điều hành trong hệ thống máy tính
Trình bày các chức năng của hệ điều hành
Trình bày đặc điểm của một số kiến trúc hệ điều hành
Trình bày quá trình khởi động máy tính
Dẫn nhập
Đã nghe:
Máy tính là thiết bị
tính toán nhiều tính năng
Máy tính gồm 3 thành phần:
Bộ xử lý
Bộ nhớ
Các thiết bị nhập xuất
Đã sử dụng máy tính:
Chơi game
Nghe nhạc
Lập trình
Đã sử dụng máy tính như thế nào, có dễ không?
3
ENIAC - Máy tính hiện đại đầu tiên
4
...hệ thống xử lý theo lô (batch system)
Phần cứng cung cấp thiết bị tính toán
Làm sao chia sẻ thiết bị đắt tiền giữa nhiều người dùng?
Đăng kí giờ sử dụng?
Đưa chương trình cho người vận hành máy?
Họ chạy CT và trả lại kết quả cho bạ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ự
HĐH luôn nằm trong bộ nhớ
Quản lý thường trú (Resident monitor)
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
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
Tăng hiệu năng - Cuộn (Spooling)
CPU nhanh hơn rất nhiều so với đầu đọc thẻ và máy in
Ổ cứng ra đời, nhanh hơn nhiều so với đầu đọc thẻ
Vậy chúng ta sẽ làm gì?
Đọ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 …
…gọi là spooling: Simultaneous Peripheral Operation On-Line
Có thể sử dụng nhiều đầu đọc thẻ và máy in để theo kịp tốc độ CPU
Cải thiện tốc độ xử lý cũng như thời gian phản hồi
6
Đa chương (Multiprogramming)
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
Ý tưởng: đọc nhiều dữ liệu từ đĩa hơn
Hệ thống đa chương theo lô (Multiprogrammed batch system) ra đời
Nạp đồng thời nhiều chương trình vào đĩa (sau này là vào bộ nhớ)
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
Thiết bị ngoại vi thường chậm hơn trên đĩa (hay bộ nhớ)
Đồ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
Thiết bị ngoại vi phải là bất đồng bộ
Phải biết khi nào công việc nhập xuất xong: ngắt vs. polling
Tiêu chí: bộ xử lý luôn trong tình trạng làm việc
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
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
Chia sẻ thời gian (Time-Sharing)
Các bạn có thể tưởng tượng, theo lô có những hạn chế lớn
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, …
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
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?
Chia sẻ thời gian
Nối nhiều thiết bị đầu cuối đầu cuối đến một máy tính
Điều phối 1 máy tính cho nhiều người dùng
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
Hệ điều hành song song (Parallel OS)
Vài ứng dụng có các công việc có thể thực hiện đồng thời
Dự báo thời tiết, mô phỏng, tính toán lại các bảng tính
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
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
Cần HĐH hỗ trợ đồng bộ và truyền thông nhanh
Nhiều kiến trúc song song khác nhau
9
HĐH thời gian thực (Real-Time OS)
Thực thi các ứng dụng có thời hạn cho trước
Hard real-time system
Hệ thống điều khiển bay, các hệ thống điều khiển công nghiệp, v.v..
Gây thảm họa nếu ta trễ hạn
Thách thức là làm sao không trễ hạn mà không phung phí nhiều tài nguyên
Soft real-time system
Ứng dụng multimedia
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!
Thách thức là làm sao không trễ hạn mà không phung phí nhiều tài nguyên
Thử thách ở chỗ là khi hệ thống quá tải
10
HĐH phân tán (Distributed OS)
Clustering – Hệ thống phân tán cục bộ
Dùng nhiều máy nhỏ để phục vụ các công việc lớn
Rẻ hơn là dùng một máy tính lớn
Độ tin cậy cao hơn, tăng khả năng mở rộng
Hệ thống phân tán trên diện rộng
Cho phép sử dụng tài nguyên phân tán
VD. sử dụng PC để truy cập Web
Không cần mang nhiều thông tin cần thiết theo mình
HĐH hỗ trợ truyền thông và chia sẻ tài nguyên phân tán
VD. hệ lưu trữ tập tin trên mạng
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
HĐH nhúng (Embedded OS)
Phát triển rộng khắp
Hiện thời, ĐTDĐ và PDA
Tương lai, các thiết bị tính toán ở mọi nơi
Đặc tính
Tài nguyên hạn chế: CPU chậm, bộ nhớ nhỏ, không ổ đĩa, v.v.
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ế?
Sử dụng nhiều thiết bị…
Tăng thêm các tiện ích trên thiết bị
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
Quá trình phát triển các khái niệm và tính năng HĐH
13
Hệ điều hành là gì?
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
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ả
Một tập các tiện ích để đơn giản hóa việc phát triển ứng dụng
Phần cứng
Hệ điều hành
Ứng dụng / Người dùng
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
Quản lý tiến trình
Quản lý bộ nhớ
Quản lý hệ thống nhập xuất
Quản lý tập tin
Hệ thống bảo vệ và bảo mật
17
Quản lý tiến trình
Tiến trình là chương trình đang thực thi.
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ó
Thường một hệ thống sẽ có nhiều tiến trình chạy cùng lúc. Tại sao ?
Số lượng CPU, tài nguyên, bộ nhớ << số lượng tiến trình chạy cùng lúc !!!
18
Quản lý tiến trình (tt)
Vai trò của HĐH trong việc quản lý tiến trình
Tạo, hủy, tạm dừng và thực hiện tiếp tiến trình
Quản lý trạng thái các tiến trình
Điều phối tiến trình: FIFO, Round Robin, SJF, …
Cung cấp cơ chế đồng bộ tiến trình
Độc quyền truy xuất
Phối hợp hoạt động
Cung cấp cơ chế kiểm soát deadlock
Cung cấp cách thức trao đổi thông tin giữa các tiến trình
Chia sẻ tài nguyên dùng chung
Trao đổi thông điệp
19
Quản lý bộ nhớ
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
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
Vai trò của HĐH trong việc quản lý bộ nhớ:
Tổ chức cấp phát, thu hồi bộ nhớ khi cần thiết
Mô hình liên tục
Mô hình không liên tục
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
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
Quản lý bộ nhớ ảo
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
20
Quản lý nhập xuất
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
Hệ thống quản lý nhập xuất chịu trách nhiệm:
Tạo môi trường giao tiếp đơn giản với các thiết bị nhập xuất
Quản lý bộ nhớ nhập xuất:
Buffering: lưu dữ liệu tạm thời trong khi truyền
Caching: lưu một phần dữ liệu trên thiết bị lưu trữ nhanh hơn
Spooling: lưu tạm dữ liệu xuất cho các thiết bị
21
Quản lý tập tin
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
HĐH cung cấp cái nhìn logic và đồng nhất về việc lưu trữ thông tin
Trừu tượng hóa thông tin vật lý thành đơn vị lưu trữ logic – tập tin
Tập tin thường được tổ chức trong các thư mục
Quyền truy cập – xác định ai được quyền truy cập cái gì
Vai trò HĐH trong việc quản lý tập tin:
Tạo, xóa tập tin, thư mục
Hỗ trợ các thao tác trên tập tin và thư mục
Ánh xạ tập tin trên hệ thống lưu trữ phụ
Sao lưu dự phòng tập tin trên các thiết bị lưu trữ
Vai trò của HĐH trong việc quản lý đĩa
Quản lý vùng trống trên đĩa
Định vị lưu trữ
Lập lịch cho đĩa
22
Bảo vệ và bảo mật
Hệ thống máy tính luôn đứng trước các mối nguy cơ:
Khách quan: thiên tai, lỗi sử dụng, lỗi phần cứng, phần mềm.
Chủ quan:
Tấn công phá hoại: virus, worm, DoS, …
Ăn cắp tài nguyên: trojan horses, trap doors, Man-in-the-middle, …
Bảo vệ (protection) và Bảo mật (security):
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)
Phòng thủ, chống lại các tấn công
Một số cơ chế:
Sao lưu dự phòng (Backup)
Xác thực người dùng (User Authentication)
Phân quyền (Authorization), chính sách bảo mật (Policy)
Kiểm soát nhật ký (Audit log)
…
Tại sao chúng ta cần hệ điều hành?
Lợi ích cho người lập trình
Dễ dàng hơn trong việc lập trình
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
VD. tập tin chứ không phải các blocks trên ổ cứng
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
Tương thích giữa các hệ thống
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)
Có thể lập trình trực tiếp sử dụng lời gọi hệ thống ?
Lợi ích của người dùng
Dễ dàng sử dụng máy tính
Bạn có thể hình dung việc sử dụng máy tính không cần HĐH?
An toàn
HĐH bảo về chương trình giữa các chương trình khác nhau
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
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
File đến
File đến
25
Một số hàm API
26
API và Lời gọi hệ thống
27
Hàm thư viện C và Lời gọi hệ thống
28
Một số kiến trúc HĐH
Kiến trúc đơn giản
Kiến trúc đơn giản
Các ứng dụng, thư viện, nhân HĐH nằm chung không gian địa chỉ
Ưu điểm:
Xử lý yêu cầu rất nhanh
Dễ mở rộng
Phù hợp với môi trường đơn người dùng
Khuyết điểm
Không có bảo vệ giữa nhân HĐH và các ứng dụng
Những mở rộng có thể gây ra những
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
Một số kiến trúc HĐH
Kiến trúc Monolithic
30
Kiến trúc Monolithic
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
Ưu điểm:
Xử lý yêu cầu nhanh
Dễ hiểu đối với những người phát triển nhân HĐH
Bảo vệ phần nhân HĐH với các ứng dụng
Nhược điểm:
Không có bảo vệ giữa các thành phần trong nhân HĐH
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)
Unix, Windows NT/XP, Linux, BSD
31
Một số kiến trúc HĐH
Kiến trúc MicroKernel
32
Kiến trúc MicroKernel
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
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
Một dịch vụ server bị trục trặc không làm “treo” toàn bộ hệ thống
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
Mach, Chorus, QNX, GNU Hurd
33
Kiến trúc MicroKernel
Ưu điểm:
Dễ mở rộng
Thêm tính năng mới cho HĐH bằng cách thêm 1 dịch vụ server
Phần nhân không xác định môi trường HĐH
Cho phép hỗ trợ chạy nhiều HĐH
Cần 1 server giả lập cho mỗi hệ thống (Mac, Windows, Unix)
Tất cả các ứng dụng cùng chạy trên microkenel
Có thể tùy chọn HĐH để chạy ứng dụng
Các dịch vụ của HĐH độc lập phần cứng
Các thành phần của HĐH được bảo vệ tốt
Dễ mở rộng cho hệ thống nhiều bộ xử lý và hệ thống phân tán
Khuyết điểm
Xử lý yêu cầu chậm
Khó khăn trong việc triển khai hệ thống
34
Nhắc lại qui trình làm việc của CPU
Bộ xử lý gồm: ALU, CU, Register
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)
35
Quá trình khởi động máy tính (1)
Hệ điều hành nằm ở đâu ?
Làm sao để máy tính nạp và chạy HĐH lúc khởi động?
Quá trình để khởi động HĐH gọi là booting
Quá trình khởi động của các máy hiện đại gồm 3 giai đoạn
CPU thực thi lệnh từ địa chỉ cố định biết trước (boot ROM)
Firmware nạp boot loader
Boot loader nạp HĐH
(1) CPU thực thi lệnh từ địa chỉ biết trước trong bộ nhớ
Địa chỉ vùng nhớ này thường trỏ tới vùng nhớ chỉ đọc (ROM – read-only memory)
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
Quá trình khởi động máy tính (2)
(2) ROM chứa mã nguồn “boot”
Loại phần mềm chỉ đọc này gọi là firmware
Với x86, chương trình BIOS thực hiện lần lượt các công việc:
Kiểm tra cấu hình trong CMOS (complementary metal oxide semiconductor)
Nạp trình quản lý ngắt (interrupt handler) và các trình điều khiển thiết bị
Khởi tạo các thanh ghi và quản lý nguồn cung cấp (power management)
Thực hiện quá trình kiểm tra phần cứng
(POST – power-on self-test)
Hiển thị các thiết lập hệ thống
Xác định các thiết bị có khả năng khởi động
Tiếp tục quá trình khởi động
Nạp và thực thi chương trình boot loader.
37
Thực thi firmware
38
Quá trình khởi động máy tính (3)
(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
Boot loader hiểu được nhiều hệ điều hành khác nhau
Boot loader hiểu được nhiều phiên bản khác nhau của các HĐH
Đã bao giờ nghe “dual boot” ?
39
Nạp hệ điều hành
40
Tại sao phải cần 1 chương trình Boot?
Tại sao ta không lưu HĐH vào trong ROM ?
Tách HĐH ra khỏi phần cứng
Nhiều HĐH hay Các phiên bản HĐH khác nhau
Muốn boot từ nhiều thiết bị khác nhau
VD. bảo mật thông qua network boot
HĐH thường khá lớn. Không nên làm giống như firmware
41
42
Bài tập
Hãy so sánh HĐH và các phần mềm khác dựa vào các tiêu chí sau:
Khả năng tự hoạt động ngay sau khi bật máy
Tác động đến máy tính khi chương trình kết thúc
Mức độ cần thiết cho sự hoạt động tối thiểu của máy tính
Khả năng điều khiển phần cứng
Độ phức tạp
Thứ tự cài đặt
Mức độ sử dụng
Hình thức quản lý
Số lượng cài đặt trên mỗi máy tính
Gợi ý
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.
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.
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.
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.
Độ 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
Gợi ý (tt)
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.
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
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.
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
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
Chương 1
Tổng quan Hệ điều hành
Email:[email protected]
2
Mục tiêu
Phát biểu hệ điều hành là gì
Giải thích vai trò của hệ điều hành trong hệ thống máy tính
Trình bày các chức năng của hệ điều hành
Trình bày đặc điểm của một số kiến trúc hệ điều hành
Trình bày quá trình khởi động máy tính
Dẫn nhập
Đã nghe:
Máy tính là thiết bị
tính toán nhiều tính năng
Máy tính gồm 3 thành phần:
Bộ xử lý
Bộ nhớ
Các thiết bị nhập xuất
Đã sử dụng máy tính:
Chơi game
Nghe nhạc
Lập trình
Đã sử dụng máy tính như thế nào, có dễ không?
3
ENIAC - Máy tính hiện đại đầu tiên
4
...hệ thống xử lý theo lô (batch system)
Phần cứng cung cấp thiết bị tính toán
Làm sao chia sẻ thiết bị đắt tiền giữa nhiều người dùng?
Đăng kí giờ sử dụng?
Đưa chương trình cho người vận hành máy?
Họ chạy CT và trả lại kết quả cho bạ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ự
HĐH luôn nằm trong bộ nhớ
Quản lý thường trú (Resident monitor)
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
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
Tăng hiệu năng - Cuộn (Spooling)
CPU nhanh hơn rất nhiều so với đầu đọc thẻ và máy in
Ổ cứng ra đời, nhanh hơn nhiều so với đầu đọc thẻ
Vậy chúng ta sẽ làm gì?
Đọ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 …
…gọi là spooling: Simultaneous Peripheral Operation On-Line
Có thể sử dụng nhiều đầu đọc thẻ và máy in để theo kịp tốc độ CPU
Cải thiện tốc độ xử lý cũng như thời gian phản hồi
6
Đa chương (Multiprogramming)
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
Ý tưởng: đọc nhiều dữ liệu từ đĩa hơn
Hệ thống đa chương theo lô (Multiprogrammed batch system) ra đời
Nạp đồng thời nhiều chương trình vào đĩa (sau này là vào bộ nhớ)
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
Thiết bị ngoại vi thường chậm hơn trên đĩa (hay bộ nhớ)
Đồ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
Thiết bị ngoại vi phải là bất đồng bộ
Phải biết khi nào công việc nhập xuất xong: ngắt vs. polling
Tiêu chí: bộ xử lý luôn trong tình trạng làm việc
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
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
Chia sẻ thời gian (Time-Sharing)
Các bạn có thể tưởng tượng, theo lô có những hạn chế lớn
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, …
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
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?
Chia sẻ thời gian
Nối nhiều thiết bị đầu cuối đầu cuối đến một máy tính
Điều phối 1 máy tính cho nhiều người dùng
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
Hệ điều hành song song (Parallel OS)
Vài ứng dụng có các công việc có thể thực hiện đồng thời
Dự báo thời tiết, mô phỏng, tính toán lại các bảng tính
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
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
Cần HĐH hỗ trợ đồng bộ và truyền thông nhanh
Nhiều kiến trúc song song khác nhau
9
HĐH thời gian thực (Real-Time OS)
Thực thi các ứng dụng có thời hạn cho trước
Hard real-time system
Hệ thống điều khiển bay, các hệ thống điều khiển công nghiệp, v.v..
Gây thảm họa nếu ta trễ hạn
Thách thức là làm sao không trễ hạn mà không phung phí nhiều tài nguyên
Soft real-time system
Ứng dụng multimedia
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!
Thách thức là làm sao không trễ hạn mà không phung phí nhiều tài nguyên
Thử thách ở chỗ là khi hệ thống quá tải
10
HĐH phân tán (Distributed OS)
Clustering – Hệ thống phân tán cục bộ
Dùng nhiều máy nhỏ để phục vụ các công việc lớn
Rẻ hơn là dùng một máy tính lớn
Độ tin cậy cao hơn, tăng khả năng mở rộng
Hệ thống phân tán trên diện rộng
Cho phép sử dụng tài nguyên phân tán
VD. sử dụng PC để truy cập Web
Không cần mang nhiều thông tin cần thiết theo mình
HĐH hỗ trợ truyền thông và chia sẻ tài nguyên phân tán
VD. hệ lưu trữ tập tin trên mạng
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
HĐH nhúng (Embedded OS)
Phát triển rộng khắp
Hiện thời, ĐTDĐ và PDA
Tương lai, các thiết bị tính toán ở mọi nơi
Đặc tính
Tài nguyên hạn chế: CPU chậm, bộ nhớ nhỏ, không ổ đĩa, v.v.
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ế?
Sử dụng nhiều thiết bị…
Tăng thêm các tiện ích trên thiết bị
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
Quá trình phát triển các khái niệm và tính năng HĐH
13
Hệ điều hành là gì?
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
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ả
Một tập các tiện ích để đơn giản hóa việc phát triển ứng dụng
Phần cứng
Hệ điều hành
Ứng dụng / Người dùng
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
Quản lý tiến trình
Quản lý bộ nhớ
Quản lý hệ thống nhập xuất
Quản lý tập tin
Hệ thống bảo vệ và bảo mật
17
Quản lý tiến trình
Tiến trình là chương trình đang thực thi.
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ó
Thường một hệ thống sẽ có nhiều tiến trình chạy cùng lúc. Tại sao ?
Số lượng CPU, tài nguyên, bộ nhớ << số lượng tiến trình chạy cùng lúc !!!
18
Quản lý tiến trình (tt)
Vai trò của HĐH trong việc quản lý tiến trình
Tạo, hủy, tạm dừng và thực hiện tiếp tiến trình
Quản lý trạng thái các tiến trình
Điều phối tiến trình: FIFO, Round Robin, SJF, …
Cung cấp cơ chế đồng bộ tiến trình
Độc quyền truy xuất
Phối hợp hoạt động
Cung cấp cơ chế kiểm soát deadlock
Cung cấp cách thức trao đổi thông tin giữa các tiến trình
Chia sẻ tài nguyên dùng chung
Trao đổi thông điệp
19
Quản lý bộ nhớ
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
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
Vai trò của HĐH trong việc quản lý bộ nhớ:
Tổ chức cấp phát, thu hồi bộ nhớ khi cần thiết
Mô hình liên tục
Mô hình không liên tục
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
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
Quản lý bộ nhớ ảo
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
20
Quản lý nhập xuất
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
Hệ thống quản lý nhập xuất chịu trách nhiệm:
Tạo môi trường giao tiếp đơn giản với các thiết bị nhập xuất
Quản lý bộ nhớ nhập xuất:
Buffering: lưu dữ liệu tạm thời trong khi truyền
Caching: lưu một phần dữ liệu trên thiết bị lưu trữ nhanh hơn
Spooling: lưu tạm dữ liệu xuất cho các thiết bị
21
Quản lý tập tin
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
HĐH cung cấp cái nhìn logic và đồng nhất về việc lưu trữ thông tin
Trừu tượng hóa thông tin vật lý thành đơn vị lưu trữ logic – tập tin
Tập tin thường được tổ chức trong các thư mục
Quyền truy cập – xác định ai được quyền truy cập cái gì
Vai trò HĐH trong việc quản lý tập tin:
Tạo, xóa tập tin, thư mục
Hỗ trợ các thao tác trên tập tin và thư mục
Ánh xạ tập tin trên hệ thống lưu trữ phụ
Sao lưu dự phòng tập tin trên các thiết bị lưu trữ
Vai trò của HĐH trong việc quản lý đĩa
Quản lý vùng trống trên đĩa
Định vị lưu trữ
Lập lịch cho đĩa
22
Bảo vệ và bảo mật
Hệ thống máy tính luôn đứng trước các mối nguy cơ:
Khách quan: thiên tai, lỗi sử dụng, lỗi phần cứng, phần mềm.
Chủ quan:
Tấn công phá hoại: virus, worm, DoS, …
Ăn cắp tài nguyên: trojan horses, trap doors, Man-in-the-middle, …
Bảo vệ (protection) và Bảo mật (security):
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)
Phòng thủ, chống lại các tấn công
Một số cơ chế:
Sao lưu dự phòng (Backup)
Xác thực người dùng (User Authentication)
Phân quyền (Authorization), chính sách bảo mật (Policy)
Kiểm soát nhật ký (Audit log)
…
Tại sao chúng ta cần hệ điều hành?
Lợi ích cho người lập trình
Dễ dàng hơn trong việc lập trình
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
VD. tập tin chứ không phải các blocks trên ổ cứng
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
Tương thích giữa các hệ thống
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)
Có thể lập trình trực tiếp sử dụng lời gọi hệ thống ?
Lợi ích của người dùng
Dễ dàng sử dụng máy tính
Bạn có thể hình dung việc sử dụng máy tính không cần HĐH?
An toàn
HĐH bảo về chương trình giữa các chương trình khác nhau
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
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
File đến
File đến
25
Một số hàm API
26
API và Lời gọi hệ thống
27
Hàm thư viện C và Lời gọi hệ thống
28
Một số kiến trúc HĐH
Kiến trúc đơn giản
Kiến trúc đơn giản
Các ứng dụng, thư viện, nhân HĐH nằm chung không gian địa chỉ
Ưu điểm:
Xử lý yêu cầu rất nhanh
Dễ mở rộng
Phù hợp với môi trường đơn người dùng
Khuyết điểm
Không có bảo vệ giữa nhân HĐH và các ứng dụng
Những mở rộng có thể gây ra những
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
Một số kiến trúc HĐH
Kiến trúc Monolithic
30
Kiến trúc Monolithic
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
Ưu điểm:
Xử lý yêu cầu nhanh
Dễ hiểu đối với những người phát triển nhân HĐH
Bảo vệ phần nhân HĐH với các ứng dụng
Nhược điểm:
Không có bảo vệ giữa các thành phần trong nhân HĐH
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)
Unix, Windows NT/XP, Linux, BSD
31
Một số kiến trúc HĐH
Kiến trúc MicroKernel
32
Kiến trúc MicroKernel
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
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
Một dịch vụ server bị trục trặc không làm “treo” toàn bộ hệ thống
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
Mach, Chorus, QNX, GNU Hurd
33
Kiến trúc MicroKernel
Ưu điểm:
Dễ mở rộng
Thêm tính năng mới cho HĐH bằng cách thêm 1 dịch vụ server
Phần nhân không xác định môi trường HĐH
Cho phép hỗ trợ chạy nhiều HĐH
Cần 1 server giả lập cho mỗi hệ thống (Mac, Windows, Unix)
Tất cả các ứng dụng cùng chạy trên microkenel
Có thể tùy chọn HĐH để chạy ứng dụng
Các dịch vụ của HĐH độc lập phần cứng
Các thành phần của HĐH được bảo vệ tốt
Dễ mở rộng cho hệ thống nhiều bộ xử lý và hệ thống phân tán
Khuyết điểm
Xử lý yêu cầu chậm
Khó khăn trong việc triển khai hệ thống
34
Nhắc lại qui trình làm việc của CPU
Bộ xử lý gồm: ALU, CU, Register
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)
35
Quá trình khởi động máy tính (1)
Hệ điều hành nằm ở đâu ?
Làm sao để máy tính nạp và chạy HĐH lúc khởi động?
Quá trình để khởi động HĐH gọi là booting
Quá trình khởi động của các máy hiện đại gồm 3 giai đoạn
CPU thực thi lệnh từ địa chỉ cố định biết trước (boot ROM)
Firmware nạp boot loader
Boot loader nạp HĐH
(1) CPU thực thi lệnh từ địa chỉ biết trước trong bộ nhớ
Địa chỉ vùng nhớ này thường trỏ tới vùng nhớ chỉ đọc (ROM – read-only memory)
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
Quá trình khởi động máy tính (2)
(2) ROM chứa mã nguồn “boot”
Loại phần mềm chỉ đọc này gọi là firmware
Với x86, chương trình BIOS thực hiện lần lượt các công việc:
Kiểm tra cấu hình trong CMOS (complementary metal oxide semiconductor)
Nạp trình quản lý ngắt (interrupt handler) và các trình điều khiển thiết bị
Khởi tạo các thanh ghi và quản lý nguồn cung cấp (power management)
Thực hiện quá trình kiểm tra phần cứng
(POST – power-on self-test)
Hiển thị các thiết lập hệ thống
Xác định các thiết bị có khả năng khởi động
Tiếp tục quá trình khởi động
Nạp và thực thi chương trình boot loader.
37
Thực thi firmware
38
Quá trình khởi động máy tính (3)
(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
Boot loader hiểu được nhiều hệ điều hành khác nhau
Boot loader hiểu được nhiều phiên bản khác nhau của các HĐH
Đã bao giờ nghe “dual boot” ?
39
Nạp hệ điều hành
40
Tại sao phải cần 1 chương trình Boot?
Tại sao ta không lưu HĐH vào trong ROM ?
Tách HĐH ra khỏi phần cứng
Nhiều HĐH hay Các phiên bản HĐH khác nhau
Muốn boot từ nhiều thiết bị khác nhau
VD. bảo mật thông qua network boot
HĐH thường khá lớn. Không nên làm giống như firmware
41
42
Bài tập
Hãy so sánh HĐH và các phần mềm khác dựa vào các tiêu chí sau:
Khả năng tự hoạt động ngay sau khi bật máy
Tác động đến máy tính khi chương trình kết thúc
Mức độ cần thiết cho sự hoạt động tối thiểu của máy tính
Khả năng điều khiển phần cứng
Độ phức tạp
Thứ tự cài đặt
Mức độ sử dụng
Hình thức quản lý
Số lượng cài đặt trên mỗi máy tính
Gợi ý
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.
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.
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.
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.
Độ 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
Gợi ý (tt)
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.
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
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.
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
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
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Tô Công Duy Linh
Dung lượng: |
Lượt tài: 2
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)