Chương 1: Tổng quan về hệ điều hành

 Phần cứng:  Chương trình vi điều khiển – điều khiển trực tiếp các thiết bị  Thiết bị điện tử  Phần mềm:  Chương trình hệ thống: quản lý hoạt động của máy tính  Chương trình ứng dụng: giải quyết các bài toán của người dùng.

pdf52 trang | Chia sẻ: lylyngoc | Lượt xem: 1578 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Chương 1: Tổng quan về hệ điều hành, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
HỆ ĐIỀU HÀNH  Thời lượng : 20 tiết.  Vị trí môn học : sau Tin Học Đại Cương  Mục đích môn học: trang bị kiến thức về hệ điều hành, để khai thác hệ thống hiệu quả hơn. 2 Tài Liệu Tham Khảo  Nguyên lý hệ điều hành:  TS.Hà Quang Thụy  NXB Khoa học kỹ thuật  Hệ điều hành: Tác giả: Ths.Nguyễn Thanh Tùng  Modern Operating System – Adrew S.Tanenbaum 3 Nội Dung Chương Trình  Chương 1: Tổng quan về hệ điều hành.  Chương 2: Quản lý tiến trình.  Chương 3: Quản lý bộ nhớ.  Chương 4: Quản lý tập tin và đĩa.  Chướng 5: Quản lý xuất nhập. 4 Chương 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH 5 1. Giới thiệu về hệ điều hành  Phần cứng:  Chương trình vi điều khiển – điều khiển trực tiếp các thiết bị  Thiết bị điện tử  Phần mềm:  Chương trình hệ thống: quản lý hoạt động của máy tính  Chương trình ứng dụng: giải quyết các bài toán của người dùng. 6 7Khái niệm Hệ điều hành  HĐH là một bộ phận quan trọng của hệ thống máy tính. Một hệ thống máy tính bao gồm 4 phần:  Phần cứng: CPU; Bộ nhớ; Các thiết bị xuất/nhập  Các chương trình ứng dụng  Hệ điều hành  Đối tượng sử dụng: Người, thiết bị hoặc máy tính khác 8 4 Thành phần của hệ thống máy tính Người sử dụng 1 Người sử dụng 2 Người sử dụng 3 Người sử dụng n Các chương trình ứng dụng Hệ điều hành Phần cứng Trình biên dịch Hợp ngữ Soạn thảo văn bản CSDL Khái niệm Hệ điều hành  Từ quan điểm của người sử dụng: Hệ điều hành là tập hợp các chương trình, phục vụ khai thác hệ thống tính toán một cách dễ dàng, thuận tiện  Từ quan điểm của người quản lý: Hệ điều hành là một tập các chương trình phục vụ quản lý chặt chẽ và sử dụng tối ưu các tài nguyên của hệ thống tính toán 9  Định nghĩa từ quan điểm cán bộ kỹ thuật: Hệ điều hành là hệ thống chương trình, trang bị cho một máy tính cụ thể để tạo ra một máy logic mới với các tài nguyên và khả năng mới.  Định nghĩa từ quan điểm kỹ sư lập trình hệ thống: Hệ điều hành là hệ thống mô hình hóa, mô phỏng các hoạt động của máy, của người sử dụng và của thao tác viên, hoạt động trong chế độ đối thoại, nhằm tạo môi trường khai thác thuận tiện và quản lý tối ưu các tài nguyên của hệ thống tính toán 10  Hệ điều hành là một chương trình hay một hệ chương trình:  Hoạt động giữa người sử dụng và phần cứng của máy tính.  Chuẩn hóa giao diện người dùng đối với các hệ thống phần cứng khác nhau.  Sử dụng hiệu quả tài nguyên phần cứng.  Khai thác tối đa hiệu suất của phần cứng.  Hệ điều hành được coi như là hệ thống quản lý tài nguyên.  Hệ điều hành được coi như là phần mở rộng của hệ thống máy tính điện tử. 11 2. Lịch sử phát triển của hệ điều hành Lịch sử phát triển của HĐH luôn gắn liền với sự phát triển của máy tính điện tử Thế hệ thứ nhất (1945-1955)  Howard Aiken (Havard) và John von Neumann (Princeton)  Dùng các ống chân không với hơn 10000 ống  Lập trình: thiết lập các công tắc  Ngôn ngữ lập trình: ngôn ngữ máy  Tốc độ chậm 12  Ngôn ngữ lập trình và Hệ điều hành chưa được biết đến  Đầu những năm 50->phiếu đục lỗ thay cho bảng điều khiển  Đội thiết kế máy cũng là: Đội lập trình Đội chế tạo máy Quản trị hệ thống Thao tác hệ thống 13 Thế hệ 2 (1955-1965)  Thiết bị bán dẫn ra đời (Transistors)  Lập trình: trên phiếu đục lỗ  Ngôn ngữ lập trình: FORTRAN & Assembly  Công việc: mang tính khoa học  Máy tính: Mainframes  Hệ điều hành: Xử lý theo lô Batch system  Các trường đại học bắt đầu mua máy tính (giá máy lên đến hàng triệu $)  Có sự phân chia giữa người thiết kế, người chế tạo, người vận hành, người lập trình và chuyên viên bảo trì. 14 15 Hệ thống xử lý theo lô - Mang phiếu đến máy IBM 1401 (good at card reading) - Đọc nội dung phiếu ra băng từ - Cho băng từ vào máy IBM 7094 thực hiện tính toán - Cho băng từ vào máy IBM 1401 in kết quả xuất ra ngoài 16 Thế hệ 3 (1965-1980)  Máy tính sử dụng mạch tích hợp (Integrated Circuit – IC)  Lập trình: Băng từ  Ngôn ngữ lập trình: FORTRAN & Assembly  Công việc: khoa học và thương mại  Máy tính: IBM 360, DEC PDPs  Hệ điều hành: Hệ điều hành chia sẻ thời gian Multiprogramming/timesharing, spooling Chương trình hệ điều hành dài cả triệu dòng hợp ngữ và do hàng ngàn lập trình viên thực hiện  Các hệ điều hành phát triển:  MULTICS (cha của các hệ điều hành hiện đại)  UNIX (System V, BSD)  POSIX (bởi IEEE)  MINIX (bởi Tanenbaum)  Linux (derived from MINIX)17 Thế hệ 4: 1980 đến nay  Sử dụng công nghệ Very large scale instruction - VLSI  Lập trình: bậc cao Ngôn ngữ lập trình: C/C++, Java, … Máy tính: PC (Personal Computer) Hệ điều hành: Windows, MacOS, Linux , …  Hệ điều hành mạng và hệ điều hành phân tán 18 3. Tài nguyên hệ thống  Là những tồn tại về mặt vật lý tại một thời điểm nhất định hoặc tại mọi thời điểm, và nó có khả năng tác động đến hiệu suất của hệ thống. Tài nguyên không gian: Là các không gian lưu trữ của hệ thống như đĩa, bộ nhớ chính. Tài nguyên thời gian: Là thời gian thực hiện lệnh của processor và thời gian truy xuất dữ liệu trên bộ nhớ. 19 3. Tài nguyên hệ thống  Bộ nhớ  Bộ xử lý  Thiết bị ngoại vi  Các chương trình của hệ thống 20 Bộ nhớ  Đặc trưng cơ bản của bộ nhớ là thời gian truy cập trực tiếp, thời gian truy cập tuần tự, và dung lượng nhớ.  Phân biệt 2 khái niệm bộ nhớ và truy cập tới bộ nhớ:  Bộ nhớ chỉ vùng vật lý chứa dữ liệu.  Truy cập bộ nhớ là quá trình tìm đến dữ liệu trên bộ nhớ. 21 Bộ xử lý trung tâm CPU  Là tài nguyên quan trọng nhất của hệ thống, nó được truy cập ở mức câu lệnh và chỉ có nó mới làm cho câu lệnh thực hiện. Đặc trưng bởi hai yếu tố là: Tốc độ xử lý (tính theo tần số xung nhip đồng hồ hoặc số phép tính cơ bản trong một giây) và độ dài từ máy (là số lượng bit nhị phân của toán hạng trong phép tính cơ bản của CPU: 8, 16, 32, 64 bit)  Trong thực tế khi xem xét về Bộ xử lý (processor) người ta chỉ chú ý đến thời gian xử lý của processor. 22 Tài nguyên ảo  Là loại tài nguyên cung cấp cho chương trình người sử dụng dưới dạng đã được biến đổi, nó chỉ xuất hiện khi hệ thống cần tới nó hoặc khi hệ thống tạo ra nó và nó sẽ tự động mất đi khi hệ thống kết thúc hay chính xác hơn là khi tiến trình gắn với nó đã kết thúc.  Đĩa ảo trong môi trường MS_DOS. 23 4. Các khái niệm cơ bản  Tiến trình.  Shell.  Tài nguyên hệ thống.  Lời gọi hệ thống. 24 Tiến trình  Tiến trình: Là một bộ phận của chương trình đang thực hiện.  Tiến trình hệ điều hành.  Tiến trình chương trình.  Hoạt động song song.  Tiến trình khác với chương trình:  Chương trình là tập tin thụ động.  Tiến trình là trạng thái động của chương trình.  Tiểu trình: Là các luồng xử lý của tiến trình cùng chia sẻ không gian bộ nhớ. 25 Bộ xử lý shell  Là một tiến trình đặc biệt, có nhiệm vụ nhận lệnh, phân tích lệnh và phát sinh tiến trình mới để thực hiện lệnh.  Trong hệ điều hành đơn nhiệm, khi tiến trình đáp ứng yêu cầu hoạt động thì Shell sẽ chuyển sang trạng thái chờ đến khi tiến trình đó kết thúc, sau đó mới trở lại trạng thái sẵn sàng nhận lệnh mới.  Trong hệ điều hành đa nhiệm, sau khi phát sinh tiến trình đáp ứng yêu cầu và đưa nó vào trạng thái hoạt động thì shell sẽ chuyển sang trạng thái sẵn sàng nhận lệnh mới, nhờ vậy Shell có khả năng khởi tạo nhiều tiến trình đáp ứng yêu cầu để nó hoạt động song song với nhau. 26 Lời gọi hệ thống (System calls)  Để tạo môi trường giao tiếp giữa chương trình của người sử dụng và hệ điều hành, hệ điều hành đưa ra các lời gọi hệ thống.  Chương trình của người sử dụng dùng các lời gọi hệ thống để liên lạc với hệ điều hành và yêu cầu các dịch vụ từ hệ điều hành.  Một số hệ thống cho phép lời gọi hệ thống được thực hiện từ cấp lập trình ngôn ngữ cấp cao, như các hàm và lời gọi hàm. Nó có thể phát sinh lời gọi từ các thủ tục hay gọi trực tiếp inline 27 DUØNG LÔØI GOÏI HEÄ THOÁNG ÑEÅ THÖÏC HIEÄN I/O (Chöông trình ngöôøi duøng) (Heä ñieàu haønh) (Chuyeån ñieàu khieån veà HÑH) (Thöïc hieän I/O) (Veà chöông trình ngöôøi duøng) 5. Cấu trúc của hệ điều hành Các thành phần của hệ điều hành  Thành phần quản lý tiến trình.  Thành phần quản lý bộ nhớ chính.  Thành phần quản lý xuất/nhập.  Thành phần quản lý bộ nhớ phụ.  Thành phần quản lý tập tin.  Thành phần thông dịch.  Thành phần bảo vệ hệ thống. 29 Thành phần quản lý tiến trình Bộ phận quản lý tiến trình của hệ điều hành phải thực hiện những nhiệm vụ sau đây:  Tạo lập, hủy bỏ tiến trình.  Tạm dừng, tái kích hoạt tiến trình.  Tạo cơ chế thông tin liên lạc giữa các tiến trình.  Tạo cơ chế đồng bộ hóa giữa các tiến trình. 30 Thành phần quản lý bộ nhớ Bộ phận quản lý bộ nhớ chính của hệ điều hành thực hiện những nhiệm vụ sau:  Cấp phát, thu hồi vùng nhớ.  Ghi nhận trạng thái bộ nhớ chính.  Bảo vệ bộ nhớ.  Quyết định tiến trình nào được nạp vào bộ nhớ. 31 Thành phần quản lý xuất nhập Bộ phận quản lý xuất nhập của hệ điều hành thực hiện những nhiệm vụ sau:  Gởi mã lệnh điều khiển đến thiết bị.  Tiếp nhận yêu cầu ngắt (Interrupt) từ các thiết bị.  Phát hiện và xử lý lỗi: quá trình trao đổi dữ liệu thường xảy ra các lỗi. 32 Thành phần quản lý tệp tin Bộ phận quản lý tập tin của hệ điều hành thực hiện những nhiệm vụ sau:  Tạo/ xoá một tập tin/ thư mục.  Bảo vệ tập tin khi có hiện tượng truy xuất đồng thời.  Cung cấp các thao tác xử lý và bảo vệ tập tin.  Tạo mối quan hệ giữa tập tin và bộ nhớ phụ chứa tập tin.  Tạo cơ chế truy xuất tập tin thông qua tên tập tin. 33 Thành phần thông dịch  Đóng vai trò giao tiếp giữa hệ điều hành và người sử dụng.  Thành phần này chính là shell 34 Thành phần bảo vệ hệ thống  Hệ điều hành cần phải có các cơ chế để luôn đảm bảo các tài nguyên mà hệ điều hành đã cấp cho một tiến trình thì chỉ có tiến trình đó được quyền tác động đến các thành phần này.  Thành phần này điều khiển việc sử dụng tài nguyên, đặc biệt là các tài nguyên dùng chung, đặc biệt là các tiến trình hoạt động đồng thời với nhau, sao cho không xảy ra sự tranh chấp tài nguyên giữa các tiến trình hoạt đồng đồng thời và không cho phép các tiến trình truy xuất bất hợp lệ lên các vùng nhớ của nhau. 35 Cấu trúc của hệ điều hành  Hệ thống được chia thành một số lớp, mỗi lớp được xây dựng dựa vào lớp bên trong. Lớp trong cùng thường là phần cứng, lớp ngoài cùng là giao diện với người sử dụng.  Mỗi lớp là một đối tượng trừu tượng, chứa dựng bên trong nó các dữ liệu và thao tác xử lý dữ liệu đó. Lớp n chứa dựng một cấu trúc dữ liệu và các thủ tục có thể được gọi bởi lớp n+1 hoặc ngược lại có thể gọi các thủ tục ở lớp n-1. 36 Cấu trúc của hệ điều hành 37 6. Các tính chất của hệ điều hành  Tin cậy và chuẩn xác  An toàn cao  Kế thừa và thích nghi  Hiệu quả  Thuận tiện 38 39 Tin cậy và chuẩn xác  Mọi công việc trong hệ thống đều phải có kiểm tra:  Kiểm tra môi trường điều kiện thực hiện,  Kiểm tra kết quả thực hiện,  Nhiều chức năng KT: chuyển giao cho phần cứng.  Ví dụ: Lệnh COPY A:F1.TXT B:  Sau khi KT cú pháp, bắt đầu thực hiện lệnh. Lần lượt hệ thống sẽ KT gì và có thể có thông báo nào? 40  Kt CARD I/O,  Tồn tại ổ đĩa?  Thiết bị điện tử ổ đĩa?  Động cơ ổ đĩa?  Khả năng truy nhập của ổ đĩa?  Khả năng truy nhập đĩa?  Tồn tại file F1.TXT?  Khả năng truy nhập file?  . . . . . . . . 41 An toàn cao  Hạn chế truy nhập không hợp thức  Hạn chế ảnh hưởng sai sót vô tình hay cố ý  Bảo vệ: Nhiều mức, Nhiều công cụ, Nhiều thời điểm và giai đoạn khác nhau. 42 Kế thừa và thích nghi (Tổng quát theo thời gian) t Thời điểm tạo OS Kế thừa Thích nghi 43  Hệ điều hành cần phải có tính thừa kế, đồng thời có khả năng thích nghi với những thay đổi có thể có trong tương lai.  Đối với việc nâng cấp, tính kế thừa là bắt buộc  Các thao tác, thông báo phải không được thay đổi, nếu có thì không đáng kể và phải được hướng dẫn cụ thể.  Đảm bảo tính thừa kế sẽ duy trì và phát triển đội ngũ người sử dụng 44 Hiệu quả cao  Các tài nguyên của hệ thống phải được khai thác triệt để sao cho ngay cả trong điều kiện tài nguyên hạn chế vẫn có thể giải quyết được những yêu cầu phức tạp.  Hệ thống cần phải duy trì được tính đồng bộ, không để các thiết bị tốc độ chậm trì hoãn họat động của toàn hệ thống. 45 Thuận tiện  Hệ thống phải dễ dàng sử dụng  Có nhiều mức hiệu quả khác nhau  Hệ thống trợ giúp phong phú để người sử dụng có thể tự học ngay trong quá trình thao tác. Hệ thống trợ giúp phải phong phú, đa dạng: Tra cứu, hướng dẫn, tooltip… 7. Phân loại hệ điều hành  Dựa vào cách mà hệ điều hành thực hiện các công việc, các tác vụ, các tiến trình của người sử dụng để phân loại hệ điều hành.  Hệ điều hành xử lý theo lô đơn giản.  Hệ điều hành xử lý theo lô đa chương.  Hệ điều hành chia sẻ thời gian.  Hệ điều hành đa vi xử lý.  Hệ điều hành xử lý thời gian thực.  Hệ điều hành mạng. 46 Hệ điều hành xử lý theo lô đơn giản  Các tác vụ được đưa vào hàng đợi  Thực hiện các tác vụ lần lượt theo những chỉ thị đã được xác định trước  Tác vụ tiếp theo tự động được thực hiện khi tác vụ trước kết thúc 1 cách tự động  Có bộ giám sát thường trực để giám sát việc thực hiện của các tác vụ trong hệ thống Processor rơi vào trạng thái chờ khi hệ thống truy xuất thiết bị vào ra 47 Hệ điều hành xử lý theo lô đa chương  Có khả năng thực hiện nhiều tác vụ, nhiều chương trình đồng thời  Hệ điều hành sẽ nạp một phần code và data của các tác vụ vào bộ nhớ (các phần còn lại sẽ được nạp sau tại thời điểm thích hợp).  Sau đó hệ điều hành bắt đầu thực hiện một tác vụ.  Tác vụ đang thực hiện cần truy xuất thiết bị vào/ra thì processor sẽ được chuyển sang thực hiện các tác vụ khác. Cần có cơ chế lập lịch cho Processor 48 Hệ điều hành xử lý theo lô đa chương  Ưu điểm:  Tiết kiệm bộ nhớ.  Hạn chế thời gian rỗi của CPU.  Nhược điểm:  Chi phí cao cho công việc lập lịch.  Chia sẻ bộ nhớ chính cho các tác vụ. 49 Hệ điều hành chia sẻ thời gian  Chia sẻ thời gian xử lý CPU cho các tác vụ là chia sẻ thời gian xử lý của processor cho các tác vụ, các tiến trình đang ở trong trạng thái sẵn sàng thực hiện.  Việc chuyển processor từ tác vụ khác không phụ thuộc vào việc tác vụ hiện tại có truy xuất đến thiết bị vào/ra hay không mà chỉ phụ thuộc vào sự điều phối processor của hệ điều hành.  Trong hệ điều hành này thời gian chuyển đổi processor giữa các tác vụ là rất nhỏ nên ta có cảm giác các tác vụ thực hiện song song với nhau.  Còn gọi là hệ điều hành đa nhiệm. 50 Hệ điều hành xử lý thời gian thực  HÖ ®iÒu hµnh thêi gian thùc : ë c¸c thêi ®iÓm liªn tôc trong hÖ thèng ch-¬ng tr×nh lu«n ®-îc phôc vô bëi mét CPU vµ cã thÓ lµ ë nh÷ng thêi ®iÓm kh¸c nhau, mét ch-¬ng tr×nh sÏ ®-îc phôc vô bëi c¸c bé xö lý kh¸c nhau.  Trong hệ điều hành này các tác vụ cầu thực hiện không được đưa vào hàng đợi mà được xử lý tức thời và trả lại ngay kết quả hoặc thông báo lỗi cho người sử dụng có yêu cầu.  Hệ điều hành này hoạt động đòi hỏi sự phối hợp cao giữa phần mềm và phần cứng. 51 52 HÖ ®iÒu hµnh tËp trung vµ ph©n t¸n  H§H tËp trung : trong hÖ thèng m¸y tÝnh chØ cã mét hÖ ®iÒu hµnh duy nhÊt cµi ®Æt vµo m¸y chñ, hÖ ®iÒu hµnh nµy cã chøc n¨ng khëi ®éng vµ cung cÊp dÞch vô cho c¸c m¸y tÝnh kh¸c. C¸c m¸y nµy chñ yÕu vµo ra c¸c d÷ liÖu. ViÖc xö lý tËp trung vµo m¸y chñ.  H§H ph©n t¸n: Trong hÖ thèng m¸y tÝnh, mçi m¸y cã hÖ ®iÒu hµnh riªng khëi ®éng ®éc lËp vµ cã chøc n¨ng kh¸c nhau. HÖ ®iÒu hµnh t¹i m¸y chñ ®-îc gäi lµ hÖ ®iÒu hµnh ph©n t¸n v×: Qu¶n lý c¸c tµi nguyªn hÖ thèng kh«ng chØ t¹i m¸y chñ mµ cßn c¶ c¸c m¸y tr¹m trong hÖ thèng. ChÝa sÎ tµi nguyªn ®ång thêi cho nhiÒu m¸y kh¸c nhau.