Bài giảng Hệ điều hành - Chương 1: Tổng quan Hệ điều hành
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
̀ trả lại kết quả cho bạnHệ đ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áchThô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ày5Tă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-LineCó thể sử dụng nhiều đầu đọc thẻ và máy in để theo kịp tốc độ CPUCải thiện tốc độ xử lý cũng như thời gian phản hồi6Đ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ơnHệ thống đa chương theo lô (Multiprogrammed batch system) ra đờiNạ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ấtThiế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ácThiế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. pollingTiêu chí: bộ xử lý luôn trong tình trạng làm việcTă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ồiKhi 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?7Chia 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ớnBạ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ácLà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 gianNố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ùngChuyể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)8Hệ đ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ờiDự báo thời tiết, mô phỏng, tính toán lại các bảng tínhCó 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ờiCầ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 songCần HĐH hỗ trợ đồng bộ và truyền thông nhanhNhiều kiến trúc song song khác nhau9HĐ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 systemHệ 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ạnThách thức là làm sao không trễ hạn mà không phung phí nhiều tài nguyênSoft real-time systemỨng dụng multimediaCó 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ênThử thách ở chỗ là khi hệ thống quá tải10HĐ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ớnRẻ 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ộngHệ thống phân tán trên diện rộngCho phép sử dụng tài nguyên phân tánVD. sử dụng PC để truy cập WebKhông cần mang nhiều thông tin cần thiết theo mìnhHĐH hỗ trợ truyền thông và chia sẻ tài nguyên phân tánVD. hệ lưu trữ tập tin trên mạngQuan 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ạng11HĐH nhúng (Embedded OS)Phát triển rộng khắpHiện thời, ĐTDĐ và PDATương lai, các thiết bị tính toán ở mọi nơiĐặc tínhTà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.12Quá trình phát triển các khái niệm và tính năng HĐH13Hệ đ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ànMộ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ụngPhần cứngHệ điều hànhỨng dụng / Người dùngTổng quát hóa các thành phần của hệ thống1516Các thành phần của hệ điều hànhQuản lý tiến trìnhQuản lý bộ nhớQuản lý hệ thống nhập xuấtQuản lý tập tinHệ thống bảo vệ và bảo mậtCPUMemorymemory busI/O busdiskNet interface17Quản lý tiến trìnhTiế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ớ ,!=Thanh ghi 0Thanh ghi 1Thanh ghi nQuá 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ạnCPU thực thi lệnh từ địa chỉ cố định biết trước (boot ROM)Firmware nạp boot loaderBoot 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 ROM36Quá 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à firmwareVớ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ốngXác định các thiết bị có khả năng khởi độngTiếp tục quá trình khởi độngNạp và thực thi chương trình boot loader.37Thực thi firmware38Quá 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ạyBoot 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” ?39Nạp hệ điều hành40Tạ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ứngNhiề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 nhauVD. bảo mật thông qua network bootHĐH thường khá lớn. Không nên làm giống như firmware4142Bài tậpHã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áyTác động đến máy tính khi chương trình kết thúcMức độ cần thiết cho sự hoạt động tối thiểu của máy tínhKhả năng điều khiển phần cứngĐộ phức tạpThứ tự cài đặtMức độ sử dụngHình thức quản lýSố lượng cài đặt trên mỗi máy tínhGợ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.43Gợ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ôngHì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ềmSố 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
File đính kèm:
- CH01 - Gioi thieu tong quan HDH.ppt