Giáo an Bài giảng: Công nghệ thông tin về các hệ điều hành hiện nay

20 548 0
Giáo an Bài giảng: Công nghệ thông tin về các hệ điều hành hiện nay

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương 1 TỔNG QUAN I. KHÁI NIỆM VỀ HỆ ĐIỀU HÀNH Hệ điều hành là một bài toán mở và không có một định nghĩa thật chuẩn xác. Theo định nghĩa của Silberschatz “Hệ điều hành là chương trình quản lý phần cứng máy tính”. Tuy nhiên, quan điểm về một hệ điều hành tùy thuộc nhiều vào nhu cầu và góc nhìn của người dùng vào hệ thống. Quan điểm thứ nhất cho rằng hệ điều hành là một bộ điều phối tài nguyên. Ở quan điểm này, hệ điều hành nắm giữ các tài nguyên, nó có nhiệm vụ cấp phát và thu hồi các tài nguyên này cho người dùng luân phiên nhau. Tài nguyên ở đây bao gồm CPU, bộ nhớ, thiết bị giao tiếp mạng, thiết bị nhập xuất, và ổ đĩa. Trong quan điểm thứ hai, hệ điều hành là một máy ảo. Nghĩa là hệ điều hành cung cấp cho mỗi người dùng một máy ảo. Máy ảo này có thể giống máy vật lý thật, có thể là một máy tính hoàn toàn khác, có thể là một máy tính mạnh hơn. Điều quan trọng là máy ảo tạo cho người dùng tin rằng họ sở hữu riêng các tài nguyên phần cứng cần thiết cho nhu cầu của mình. Một góc nhìn khác nữa là xem hệ điều hành như một bộ trợ giúp chia sẽ tài nguyên chung. Hệ điều hành chịu trách nhiệm phân chia, phòng chống xâm phạm tài nguyên giữa các người dùng. Đồng thời quản lý sự cộng tác của người dùng trong việc sử dụng chung nguồn tài nguyên hạn hẹp. Đây cũng là góc nhìn kinh tế, vì chúng ta không thể mua sắm hết tất cả tài nguyên cần thiết. Theo ba quan điểm ở trên về hệ điều hành, nếu chúng ta có thể cung cấp đủ phần cứng cho mọi người dùng, nghĩa là giải quyết được bài toán quản lý chia xẻ tài nguyên, thì liệu chúng ta có còn cần đến hệ điều hành! Thực tế, ngoài việc chia xẻ tài nguyên chung, hệ thống cần cung cấp các giao diện trung gian, giúp người dùng dễ dàng sử dụng các dịch vụ, các tính năng của phần cứng. Giao diện trung gian ở ngôn ngữ bậc cao luôn tạo sự tiện lợi và thân thiện với người dùng. Không có sự phân biệt rõ ràng giữa phần mềm ứng dụng và hệ điều hành. Tuy nhiên, đôi khi vấn đề này cũng được tranh cãi. Thí dụ trường hợp Bộ Tư pháp Mỹ và Microsoft tranh cãi trình duyệt Internet Explorer có phải là một phần của hệ điều hành Windows không. Cấu tạo bên trong mỗi hệ điều hành khác nhau đáng kể, bởi vì hệ điều hành được cấu thành bởi rất nhiều thành phần khác nhau. Để thiết kế một hệ điều hành, thì mục tiêu của hệ thống phải được xác định trước. Vì nó ảnh hưởng đến việc lựa chọn cấu trúc cũng như các thuật toán bên trong hệ điều hành. Bởi vì hệ điều hành là một giải pháp lớn và phức tạp. Để triển khai nó, người ta phải chia thành nhiều phần nhỏ. Các phần phải được phác họa một cách chi tiết, tỉ mỉ với các định nghĩa rõ ràng về đầu vào, đầu ra, các thủ tục trong mỗi thành phần. II. CHỨC NĂNG CHÍNH YẾU CỦA HỆ ĐIỀU HÀNH II.1 Quản lý chia sẻ tài nguyên Tài nguyên của hệ thống (CPU, bộ nhớ, thiết bị ngoại vi, ) vốn rất giới hạn, nhưng trong các hệ thống đa nhiệm, nhiều người sử dụng có thể đồng thời yêu cầu nhiều tài nguyên. Để thỏa mãn yêu cầu sử dụng chỉ với tài nguyên hữu hạn và nâng cao hiệu quả sử dụng tài nguyên, hệ điều hành cần phải có cơ chế và chiến lược thích hợp để quản lý việc phân phối tài nguyên. Ngoài yêu cầu dùng chung tài nguyên để tiết kiệm chi phí, người sử dụng còn cần phải chia sẻ thông tin (tài nguyên phần mềm) lẫn nhau, khi đó hệ điều hành cần đảm bảo việc truy xuất đến các tài nguyên này là hợp lệ, không xảy ra tranh chấp, mất đồng nhất. II.2 Giả lập một máy tính mở rộng Hệ điều hành làm ẩn đi các chi tiết phần cứng, người sử dụng được cung cấp một giao diện đơn giản, dễ hiểu, dễ sử dụng và không phụ thuộc vào thiết bị phần cứng cụ thể. Thực tế, ta có thể xem hệ điều hành như là một hệ thống bao gồm nhiều máy tính trừu tượng xếp thành nhiều lớp chồng lên nhau, máy tính mức dưới phục vụ cho máy tính mức trên. Lớp trên cùng là giao diện trực quan nhất để chúng ta điều khiển. Ngoài ra có thể chia chức năng của hệ điều hành theo bốn chức năng sau:  Quản lý tiến trình (process management)  Quản lý bộ nhớ (memory management)  Quản lý hệ thống lưu trữ (storage management)  Giao tiếp với người dùng (user interface) Khi phải xây dựng một hệ điều hành mới, chúng ta sẽ phải đưa ra giải pháp cho các vấn đề cốt lõi sau:  Giao diện tương tác với nhân hệ điều hành: nghĩa là máy ảo mà hệ điều hành cung cấp cho người dùng phải như thế nào? Chức năng , giao diện của các hàm, thủ tục (system calls) sẽ được cung cấp cho các ứng dụng người dùng.  Quản lý tài nguyên: tài nguyên phần cứng được điều phối (cấp phát và thu hồi) giữa nhiều người dùng như thế nào.  Chia xẻ: tài nguyên được chia xẻ và bảo vệ giữa những người dùng chung như thế nào.  An toàn: làm sao để bảo vệ người dùng, bảo vệ các chương trình giữa các chương trình khác. Làm sao để bảo vệ an toàn cho các thiết bị dùng chung giữa các chương trình khác nhau, giữa các người dùng khác nhau.  Truyền thông: các ứng dụng giao tiếp với nhau như thế nào, khi chúng trên cùng một máy, hoặc khác máy.  Cấu trúc: tổ chức các thành phần bên trong hệ điều hành như thế nào.  Đồng thời: làm sao để nhiều chương trình có thể thực thi đồng thời. Nghĩa là khi một chương trình chờ đợi tác vụ nhập xuất thì chương trình khác có thể sử dụng CPU.  Thực thi: làm sao để mọi ứng dụng đều thực thi nhanh.  Tin cậy: làm sao để tránh việc “treo”, “sụp” hệ thống. Nếu dữ liệu đầu vào là đúng thì kết quả thực thi phải đúng.  Bền vững: làm sao để dữ liệu không bị mất, hoặc có thể phục hồi được khi chương trình kết thúc bất ngờ, hay máy tính mất nguồn điện.  Sổ sách: làm sao để lưu vết các tài nguyên đang sử dụng.  Phân tán: làm sao để các máy tính dễ dàng hợp tác nhau.  Tính mở rộng: làm sao để hệ điều hành vẫn vận hành tốt khi mà khối lượng công việc, hoặc năng lực phần cứng tăng lên. III. CÁC THÀNH PHẦN CỦA HỆ ĐIỀU HÀNH Về cơ bản, một hệ điều hành thông thường sẽ bao gồm các hệ thống quản lý sau,  Hệ thống quản lý tiến trình  Hệ thống quản lý bộ nhớ  Hệ thống quản lý nhập xuất  Hệ thống quản lý tập tinHệ thống bảo vệHệ thống dịch lệnh  Quản lý mạng III.1 Quản lý tiến trình Tiến trình là phiên bản của một chương trình đang thực thi. Trong máy tính von Neumann, mỗi CPU chỉ có thể thực thi một tiến trình duy nhất tại một thời điểm. Các máy tính cá nhân trước đây, khi sử dụng hệ điều hành MS-DOS, phiên bản hệ điều hành đầu tiên của Microsoft, cũng dừng lại ở giới hạn này. Từ đầu những năm 1960, hệ điều hành cho các máy tính lớn, mainframe, đã hỗ trợ đa nhiệm. Các hệ điều hành hiện nay đều cho phép nhiều chương trình thực thi đồng thời thông qua cơ chế đa nhiệm dù chỉ với một CPU. Hệ quản lý tiến trình chịu trách nhiệm triển khai cơ chế đa nhiệm cho hệ thống. Thông thường một máy tính chỉ có một CPU với một lõi duy nhất, nên việc cho phép đa nhiệm đồng nghĩa với việc phải chuyển đổi giữa các tiến trình một cách nhanh chóng. Hệ quản lý tiến trình sẽ tính toán việc phân phối CPU cũng như những tài nguyên khác cho tiến trình. Hầu hết các hệ điều hành phân loại độ ưu tiên cho các tiến trình, để một số tiến trình ưu tiên được cấp thời gian sử dụng CPU nhiều hơn, hay chiếm được nhiều phần trên bộ nhớ hơn các tiến trình khác. Các tiến trình xử lý ngắt luôn được thực thi với độ ưu tiên cao nhất. Trong nhiều hệ thống, tiến trình nền được triển khai. Tiến trình này được thực thi mỗi khi hệ thống rãnh rỗi. Ví dụ như tiến trình System Idle trong hệ điều hành Windows. III.2 Quản lý bộ nhớ Kiến trúc máy tính đương đại sắp xếp các bộ nhớ máy tính theo phân lớp, bắt đầu bằng các thanh ghi với tốc độ truy cập rất nhanh, đến CPU cache, bộ nhớ chính (RAM - Random Access Memory), bộ nhớ ngoài (đĩa cứng). Hệ quản lý bộ nhớ chịu trách nhiệm quản lý, cấp phát, thu hồi, phối hợp giữa các vùng nhớ để mang lại hiệu quả cao nhất. Công việc quan trọng và cũng nhiều thử thách đó là việc xây dựng và quản lý vùng nhớ ảo. Tạo ra một vùng nhớ lớn hơn nhiều so với bộ nhớ chính, để giúp cho nhiều tiến trình có thể được thực thi song song với nhau. Kĩ thuật thông thường là sử dụng một phần của đĩa cứng làm vùng nhớ phụ cho bộ nhớ chính. Nhưng nếu các tiến trình yêu cầu vùng nhớ quá lớn so với phần cứng có sẳn, hệ thống sẽ rơi vào sự trì trệ (thrashing). Điều này xảy ra bởi vì có sự luân chuyển dữ liệu liên tục giữa RAM và ổ cứng. Một phần quan trọng khác trong quản lý bộ nhớ là việc quản lý địa chỉ ảo. Vì mỗi tiến trình sẽ nhìn thấy toàn bộ địa chỉ ảo, từ 0 đến tối đa. Vì vậy hệ quản lý bộ nhớ không cho phép các tiến trình xâm phạm vùng địa chỉ lẫn nhau. Kĩ thuật hay được sử dụng là bảng trang, để quản lý ánh xạ từ trang ảo đến trang thật trong bộ nhớ vật lý. Hệ quản lý bộ nhớ sẽ lưu giữ thông tin tiến trình nào được lưu giữ trong trang nào. Một khi tiến trình kết thúc, các trang này sẽ được thu hồi lại để cấp cho tiến trình mới. Một kĩ thuật để tăng tốc độ truy xuất dữ liệu là sử dụng cache. Cache là vùng nhớ nhỏ nhưng truy xuất rất nhanh, các dữ liệu thường xuyên được truy xuất có thể lưu tạm trên cache để tăng tốc độ thực thi của chương trình. Cũng với mục tiêu tăng tốc, hệ thống cũng có thể nạp trước những dữ liệu của một tiến trình mới. III.3 Quản lý hệ thống tập tin Các hệ điều hành thường hỗ trợ một số hệ thống tập tin khác nhau. Về mục đích chung thì các hệ quản lý tập tin là giống nhau, nhưng cài đặt thực tế thì có thể khác nhau. Hai ví dụ đơn giản là việc phân biệt kí tự in hoa hay kí tự thường và dấu phân cách giữa các thư mục trong một đường dẫn. Trong khi Unix và các hệ gần Unix thì có phân biệt kí tự hoa, kí tự thường trong tên tập tin, thư mục. Còn Windows thì không phân biệt. Unix thì sử dụng dấu “/” để phân tách các thư mục trong một đường dẫn. Còn MS-DOS sử dụng “\”. Các hệ quản lý tập tin phải cho phép phục hồi tập tin khi máy tính gặp sự cố bất ngờ, như mất nguồn điện hoặc bị “treo”. Việc quản lý tập tin phụ thuộc vào cấu trúc của bảng quản lý tập tin, thư mục. Windows hỗ trợ cho các hệ thống tập tin FAT 12, FAT 16, FAT 32, và NTFS. Windows Embedded CE 6.0 giới thiệu kiến trúc ExFAT. Nhiều phiên bản của Linux hỗ trợ ext2, ext3, ReiserFS, Reiser4, GFS, GFS2, OCFS, OCFS2 và NILFS. FAT 12 là kiến trúc sử dụng ở đĩa mềm 1.4MB, ngày nay gần như không còn sử dụng nữa. Mac OS X hỗ trợ HFS+ như là kiến trúc chính, ngoài ra cũng hỗ trợ FAT 16, FAT 32, NTFS, và ZFS. III.4 Quản lý nhập xuất Việc điều khiển các thiết bị nối kết với máy tính cũng là một mãng chính trong việc thiết kế hệ điều hành. Bởi vì các thiết bị nhập xuất khá đa dạng cả về tính năng lẫn tốc độ (chuột, bàn phím, ổ đĩa, CD-ROM). Nên cần nhiều phương cách khác nhau để điều khiển chúng. Công nghệ sản xuất thiết bị nhập xuất phát triển theo hai hướng xung đột nhau. Hướng thứ nhất là tăng cường chuẩn hóa giao diện giao tiếp của cả phần mềm lẫn phần cứng. Hướng này giúp các thiết bị dễ dàng gắn kết và các máy tính và hệ điều hành có sẳn. Nhưng ở hướng thứ hai, nhà sản xuất có chiều hướng đa dạng hóa thiết bị nhập xuất. Sự đa dạng hóa dẫn đến có nhiều thiết bị mới quá khác với thiết bị cũ, dẫn đến việc khó gắn kết với hệ thống máy tính và hệ điều hành đang có sẳn. Thách thức này xuất hiện khi kết hợp giữa phần cứng và phần mềm. Các thành phần cơ bản của một thiết bị nhập xuất cũng khá đa dạng, ví dụ cổng, bus, bộ điều khiển thiết bị. Vì vậy hệ điều hành phải có một mô đun tích hợp trình điều khiển thiết bị. Mô đun này phải cung cấp một giao diện giao tiếp chuẩn đến các thiết bị cụ thể. Cũng giống như các hàm hệ thống (system calls) cung cấp giao diện cho chương trình người dùng gọi các dịch vụ bên trong hệ điều hành. III.5 Hệ thống dịch lệnh Đây là một trong những bộ phận quan trọng của hệ điều hành. Nó đóng vai trò giao diện giữa người dùng và hệ điều hành. Nó chịu trách nhiệm nhận các chỉ thị điều khiển từ người dùng, ví dụ chương trình shell, phiên dịch thành các lệnh gửi cho hệ điều hành xử lý. Hệ thống thông dịch giúp cho người dùng có thể trực tiếp sử dụng máy tính mà không cần phải lập trình. III.6 Đảm bảo an toàn hệ thống Các hệ điều hành thường triển khai hệ thống an toàn ở những mức độ nhất định. An toàn cho hệ thống dựa trên hai tiêu chí chính: 1. Hệ điều hành quản lý quyền truy cập các tài nguyên, trực tiếp hoặc gián tiếp, ví dụ như tập tin, hàm hệ thống, thông tin tài khoản người dùng, hay các dịch vụ của các chương trình đang thực thi trên máy tính. 2. Hệ điều hành phải phân biệt được một yêu cầu là được phép hay không được phép. Các hệ thống thường dùng định danh của đối tượng yêu cầu để xác định quyền. Đối tượng này được chia làm hai trường hợp: a. Bên trong: nghĩa là mỗi tiến trình đang thực thi có một định danh. Một số hệ thống không giới hạn quyền truy cập từ tiến trình đang thực thi. Đa số hệ thống là kiểm tra quyền của mỗi yêu cầu truy cập tài nguyên. b. Bên ngoài: một yêu cầu từ bên ngoài hệ thống, ví dụ như đăng nhập hệ thống. Trước khi định danh đối tượng truy cập hệ thống, thì quá trình xác thực cần được thực hiện. Thường là đối tượng truy cập được chứng thực bằng nhập tên đăng nhập và mật mã. III.7 Quản lý mạng Hầu hết các hệ điều hành ngày nay đều cài đặt bộ giao thức TCP/IP. Nghĩa là một máy tính có thể trở thành một thành viên trên mạng và các máy tính trên cùng mạng có thể chia xẻ tập tin, máy in, máy scan… thông qua đường truyền có dây hoặc không dây. Ngoài ra các hệ điều hành cũng hỗ trợ các giao thức mạng khác DECnet, IPX/SPX, Apple Talk. Với sự ra đời và phát triển như vũ bảo của Internet, các máy tính ngày nay đều trang bị nhiều thiết bị để truyền thông, cả có dây lẫn không dây. IV. PHÂN LOẠI HỆ ĐIỀU HÀNH IV.1 Hệ thống xử lý theo lô Trong hệ thống xử lý theo lô, hệ điều hành phân loại các công việc thành từng nhóm, thường là dựa trên đặc tính tương đồng của dữ liệu đầu vào. Khi một công việc chấm dứt, hệ thống sẽ thực hiện công việc kế tiếp mà không cần sự can thiệp của người lập trình, do đó thời gian thực hiện sẽ mau hơn. Một chương trình, còn gọi là bộ giám sát thường trực được thiết kế để giám sát việc thực hiện dãy các công việc một cách tự động, chương trình này luôn luôn thường trú trong bộ nhớ chính. CPU thường hay nhàn rỗi do tốc độ làm việc của các thiết bị nhập xuất (thường là thiết bị cơ) chậm hơn rất nhiều lần. Cho dù là một CPU chậm nhất, nó cũng nhanh hơn rất nhiều lần so với thiết bị nhập xuất. Do đó phải có các phương pháp để đồng bộ hóa việc hoạt động của CPU và thao tác nhập xuất.  Xử lý ngoại tuyến: xử lý ngoại tuyến là thay vì CPU phải đọc trực tiếp từ thiết bị nhập và xuất ra thiết bị xuất, hệ thống dùng một bộ lưu trữ trung gian. CPU chỉ thao thác với bộ phận này. Việc đọc hay xuất đều thực hiện với bộ lưu trữ trung gian.  Spooling (simultaneous peripheral operation on-line) là cơ chế cho phép bên gửi chuyển dữ liệu vào một vùng nhớ tạm. Bên nhận sẽ đọc dữ liệu này vào một thời điểm nào đó trong tương lai. IV.2 Hệ thống đa chương (multiprogram) Khi hệ thống muốn tận dụng nguồn tài nguyên hiện có, cho phép nhiều công việc cùng truy xuất lên thiết bị. Hệ thống phải điều phối các tài nguyên giữa các công việc này. Hệ thống này được gọi là đa chương (multiprogram), mục tiêu chính là gia tăng khai thác CPU bằng cách tổ chức các công việc sao cho CPU luôn luôn phải trong tình trạng làm việc. Ý tưởng như sau, hệ điều hành lưu giữ một phần của các công việc trong bộ nhớ. CPU sẽ lần lượt thực hiện các phần công việc này. Khi đang thực hiện, nếu có yêu cầu truy xuất thiết bị thì CPU không nghỉ mà thực hiện tiếp công việc thứ hai, và tiếp tục như vậy. Với hệ đa chương hệ điều hành ra quyết định cho người sử dụng vì vậy, hệ điều hành đa chương rất tinh vi. Hệ phải xử lý các vấn đề lập lịch cho công việc, lập lịch cho bộ nhớ và cho cả CPU. IV.3 Hệ thống chia xẻ thời gian (timesharing) Hệ thống chia xẻ thời gian là một cải tiến của hệ đa chương, với mục tiêu chính là tăng tốc độ phản hồi của máy tính cho người dùng. Hệ thống này còn được gọi là hệ thống đa nhiệm (Multitasking). Nhiều công việc cùng được thực hiện thông qua cơ chế chuyển đổi của CPU như hệ đa chương nhưng thời gian mỗi lần chuyển đổi diễn ra rất nhanh. Hệ thống chia xẻ được phát triển để cung cấp việc sử dụng bên trong của một máy tính có giá trị hơn. Hệ điều hành chia xẻ thời gian dùng kĩ thuật điều phối CPU và đa chương để cung cấp cho mỗi người sử dụng một phần nhỏ trong máy tính chia xẻ. Một chương trình khi thi hành được gọi là một tiến trình. Trong quá trình thi hành của một tiến trình, nó phải thực hiện các thao tác nhập xuất và trong khoảng thời gian đó CPU sẽ thi hành một tiến trình khác. Hệ điều hành chia xẻ cho phép nhiều người sử dụng chia xẻ máy tính một cách đồng bộ do thời gian chuyển đổi nhanh nên họ có cảm giác là các tiến trình đang được thi hành cùng lúc. Hệ điều hành chia xẻ phức tạp hơn hệ điều hành đa chương. Nó phải có các chức năng: quản trị và bảo vệ bộ nhớ, sử dụng bộ nhớ ảo. Nó cũng cung cấp hệ thống tập tin truy xuất trực tuyến. Các hệ điều hành hiện đại ngày nay sử dụng cơ chế chia xẻ. IV.4 Hệ thống song song Ngoài các hệ thống chỉ có một bộ xử lý còn có các hệ thống có nhiều bộ xử lý cùng chia xẻ bus truyền dữ liệu, đồng hồ, bộ nhớ và các thiết bị ngoại vi. Các bộ xử lý này liên lạc bên trong với nhau. Có nhiều nguyên nhân xây dựng dạng hệ thống này. Với sự gia tăng số lượng bộ xử lý, công việc được thực hiện nhanh chóng hơn. Nhưng không phải theo đúng tỉ lệ tuyến tính thời gian, nghĩa là có n bộ xử lý không có nghĩa là sẽ thực hiện nhanh hơn n lần. Hệ thống với máy nhiều bộ xử lý sẽ tối ưu hơn hệ thống có nhiều máy có một bộ xử lý vì các bộ xử lý chia xẻ các thiết bị ngoại vi, hệ thống lưu trữ, nguồn … và rất thuận lợi cho nhiều chương trình cùng làm việc trên cùng một tập hợp dữ liệu. Một lý do nữa là độ tin cậy. Các công việc được xử lý trên nhiều bộ xử lý và sự hỏng hóc của một bộ xử lý sẽ không làm “sụp” đến toàn bộ hệ thống. Hệ thống đa xử lý thông thường sử dụng cách đa xử lý đối xứng, trong cách này mỗi bộ xử lý chạy với một bản sao của hệ điều hành, những bản sao này liên lạc với nhau khi cần thiết. Một số hệ thống sử dụng đa xử lý bất đối xứng, trong đó mỗi bộ xử lý được giao một công việc riêng biệt. Một bộ xử lý chính kiểm soát toàn bộ hệ thống, các bộ xử lý khác thực hiện theo lệnh của bộ xử lý chính hoặc theo những chỉ thị đã được định nghĩa trước. Mô hình này theo dạng quan hệ chủ tớ. Nghĩa là bộ xử lý chính sẽ lập lịch cho các bộ xử lý khác. Một ví dụ về hệ thống xử lý đối xứng là version Encore của UNIX cho máy tính Multimax. Hệ thống này có hàng chục bộ xử lý. Ưu điểm của nó là nhiều tiến trình có thể thực hiện thật sự cùng lúc. Một hệ thống đa xử lý cho phép nhiều công việc và tài nguyên được chia xẻ tự động trong những bộ xử lý khác nhau. Hệ thống đa xử lý không đồng bộ thường xuất hiện trong những hệ thống lớn, trong đó hầu hết thời gian hoạt động đều dành cho xử lý nhập xuất. IV.5 Hệ thống phân tán Hệ thống này cũng tương tự như hệ thống chia xẻ thời gian nhưng các bộ xử lý sở hữu bộ nhớ, đồng hồ cục bộ riêng. Các bộ xử lý thông tin với nhau thông qua các mạng truyền thông, hoặc những bus tốc độ cao. Các bộ xử lý trong hệ phân tán thường khác nhau về tốc độ xử lý và chức năng. Nó có thể bao gồm máy tính cá nhân, máy chủ, thiết bị cầm tay, và những hệ thống máy lớn. Các bộ xử lý thường được gán với nhiều tên khác nhau như site, node, computer v.v tùy thuộc vào chức năng của chúng. Sự cần thiết một hệ thống phân tán bởi vì:  Chia xẻ tài nguyên: Một người sử dụng A có thể sử dụng máy in laser của người sử dụng B và người sử dụng B có thể truy xuất những tập tin của A. Tổng quát, chia xẻ tài nguyên trong hệ thống phân tán cung cấp một cơ chế để chia xẻ tập tin ở xa, xử lý thông tin trong một cơ sở dữ liệu phân tán, in ấn tại một vị trí ở xa, sử dụng những thiết bị ở xa để thực hiện các thao tác.  Tăng tốc độ tính toán: Một thao tác tính toán được chia làm nhiều phần nhỏ cùng thực hiện một lúc. Hệ thống phân tán cho phép phân chia việc tính toán trên nhiều vị trí khác nhau để tính toán song song.  Bền vững: Nếu một vị trí trong hệ thống phân tán bị hỏng, các vị trí khác vẫn tiếp tục làm việc.  Thơng tin liên lạc với nhau: trong nhiều trường hợp, các chương trình cần chuyển đổi dữ liệu với nhau. Nếu các chương trình này thuộc về các máy tính khác nhau, thì chúng cần sự liên lạc với nhau. Hệ thống phân tán giúp cho các máy tính liên lạc cũng như đồng bộ dữ liệu với nhau được dễ dàng. Ví dụ trong hệ thống Windows, thường có sự chia xẻ và chuyển đổi dữ liệu giữa các ứng dụng. Trong một hệ thống mạng, việc trao đổi dữ liệu diễn ra sn sẻ. IV.6 Hệ thống thời gian thực Hệ thống xử lý thời gian thực được sử dụng khi có những đòi hỏi khắt khe về thời gian ở kết quả đầu ra. Thường chia làm hai loại: thời gian thực cứng và thời gian thực mềm. Hệ thống thời gian thực cứng là cơng việc được hồn tất đúng lúc. Hệ thống khơng chấp nhận bất kỳ một sự trễ hạn nào. Việc xử lý theo thời gian thực có thể gây ra xung đột với tất cả hệ thống liệt kê ở trên. Dạng thứ hai là hệ thống thời gian thực mềm, việc thỉnh thoảng xảy ra sự trễ hạn là có thể chấp nhận được. Một số lĩnh vực có thể phù hợp với khái niệm này là multimedia hay thực tại ảo. Một hệ điều hành xử lý thời gian thực phải được xử lý nhanh. Hệ thống phải cho kết quả chính xác trong khoảng thời gian xác định trước. V. CẤU TRÚC CỦA HỆ ĐIỀU HÀNH Để xây dựng một hệ thống lớn và phức tạp như các hệ điều hành hiện đại là cơng việc hết sức khó khăn. Một cách tiếp cận thơng thường là chia một cơng việc khổng lồ thành những cơng việc nhỏ hơn. Mỗi cơng việc nhỏ phải được định nghĩa một cách rõ ràng về thơng tin đầu vào, kết quả ở đầu ra, các chức năng bên trong. Trong phần này, chúng ta sẽ trình bày một số cấu trúc cơ bản của hệ điều hành. V.1 Cấu trúc đơn giản Những hệ điều hành khởi đầu nhỏ, đơn giản, trong hệ thống nhỏ. MS-DOS là một ví dụ. Mục tiêu của hệ điều hành này là cung cấp nhiều tiện ích, tính năng trong khơng gian giới hạn. Vì vậy nó khơng chia thành các mơ đun chun biệt. Hình V-1 minh họa cấu trúc của MS-DOS Chương trình ứng dụng Chương trình hệ thống thường trú Trình điều khiển thiết bò Trình điều khiển ROM-BIOS Hình V-1. Cấu trúc MS-DOS Trong MS-DOS, chức năng và giao diện của các hàm khơng có phân biệt rõ ràng. Ví dụ, các chương trình ứng dụng có thể truy cập trực tiếp các hàm nhập xuất để xuất dữ liệu ra màn hình hay ổ đĩa. Điều này làm cho MS-DOS dễ dàng bị “sụp” khi mà chương trình ứng dụng bị lỗi. V.2 Cấu trúc phân lớp Với sự hỗ trợ thích hợp của phần cứng, hệ điều hành có thể chia thành các phần nhỏ và thích hợp hơn. Mỗi phần có chức năng đặc tính riêng biệt. Người lập trình có nhiều tự do hơn khi phát triển chi tiết bên trong mỗi thành phần. Một hệ thống có thể mơ đun hóa theo nhiều cách. Phân lớp là một trong những phương cách có thể lựa chọn, với cách này hệ điều hành được chia thành nhiều lớp. Lớp thấp nhất (lớp 0) là phần cứng; lớp cao nhất (lớp N) là giao diện giao tiếp người dùng, Hình V-2. Lớp 0 phần cứng Giao diện người dùng lớp N … Hình V-2. Hệ điều hành theo cấu trúc phân lớp Lớp thứ M chuẩn bị dữ liệu, phương thức cho các lớp cấp cao hơn sử dụng. Đương nhiên, lớp M có thể gọi các hàm ở các lớp cấp thấp hơn. Ưu điểm của cấu trúc phân lớp là việc dễ tìm kiếm, sửa lỗi cũng như kiểm chứng tính đúng đắn của từng phân hệ trong hệ điều hành. Hình V-3 là ví dụ về phân lớp trong hệ điều hành UNIX truyền thống. Điều khiển màn hình Điều khiển thiết bò lưu trữ Điều khiển bộ nhớ Giao tiếp giữa nhân và phần cứng Hàm hệ thống-giao tiếp với nhân hệ điều hành Điều phối CPU Quản lý bộ nhớ ảo Giao tiếp với thiết bò nhập xuất, màn hình Nhân Shell Thư viện trình thông dòch (người dùng) Hình V-3. Cấu trúc hệ điều hành UNIX Thử thách của hệ phân lớp là làm sao để thiết kế các phân lớp một cách hợp lý nhất. Bởi vì các lớp ở trên chỉ sử dụng được các chức năng được cung cấp bởi các lớp bên dưới. Một giới hạn khác của hệ phân lớp là khi một hàm được gọi thực thi, nó phải trãi qua nhiều phân lớp, với tham số đầu vào có thể thay đổi theo từng phân lớp. Như vậy hiệu quả thực thi của hệ thống bị giảm. V.3 Lõi nhân tối thiểu Khi một hệ điều hành phát triển, phần nhân thường phình to lên và khó quản lý. Vào giữa những năm 1980, các nhà nghiên cứu ở đại học Carnegie Mellon (CMU) phát triển hệ điều hành Mach, sử dụng cách tiếp cận đơn giản hóa nhân. Phương pháp này loại bỏ tất cả các thành phần khơng thiết yếu ra khỏi nhân hệ điều hành. Để giữ một nhân nhỏ và giản đơn, các thành phần khơng nhất thiết ở trong nhân sẽ được cài đặt ở phần khơng gian người dùng, hoặc một lớp hệ thống ở trung gian. Ưu điểm của cấu trúc nhân đơn giản là việc mở rộng hệ điều hành chỉ phải phát triển các dịch vụ trong khơng gian người dùng, khơng phải thay đổi phần nhân. Khi phần nhân cần phải thay đổi, thì việc sửa đổi cũng sẽ ít, vì phần nhân nhỏ. Như vậy hệ điều hành cũng dễ dàng thích ứng với nhiều phần cứng khác nhau. Tính an tồn của hệ thống cũng được nâng cao vì hầu hết các tiến trình là tiến trình người dùng chứ khơng phải tiến trình hệ thống. Mặt trái của thiết kế này là phần nhân có thể bị q tải, vì số lượng hàm hệ thống ít trong khi phải phục vụ nhiều u cầu từ phần dịch vụ, cũng như tiến trình người dùng. V.4 Mơ đun Có lẽ phương thức thiết kế hệ điều hành tốt nhất hiện nay là dựa trên tư tưởng thiết kế hướng đối tượng. Nhân hệ điều hành được cấu thành bởi một tập các thành phần lõi, chúng được liên kết động với nhau. Tùy theo cơng việc hiện hành mà thành phần nào sẽ được nạp lên. Ví dụ cấu trúc của hệ điều hành Solaris, hinh, có bảy mơ đun xung quanh phần lõi nhân. Thiết kế này cho phép cung cấp các dịch cơ bản của nhân hệ điều hành, đồng thời cũng cho phép thêm vào hệ thống các dịch vụ mới, như trình điều khiển thiết bị. Lõi nhân Solaris Hệ thống tập tin Hàm hệ thống Điều phối Điều khiển thiết bò và bus Mô đun hỗn hợp Mô đun STREAMS Mô đun thực thi [...]... V-4 Cấu trúc hệ điều hành Solaris Hệ điều hành Mac OS X của máy Apple sử dụng cấu trúc lai Nghĩa là Mac OS X sử dụng phân lớp, trong đó phần nhân (được xem như một lớp) sử dụng kiến trúc nhân nhỏ của hệ điều hành Mach VI LỊCH SỬ PHÁT TRIỂN HỆ ĐIỀU HÀNH Lịch sử hệ điều hành gắn liền với lịch sử phát triển phần cứng máy tính Chúng tơi sẽ lượt qua các thế hệ máy tính để giới thiệu các hệ điều hành đi cùng... nhiều trình điều khiển cho các hệ điều hành phổ dụng Việc nhập hay xuất ra thiết bị có thể được làm theo ba cách:    Busy waiting: người dùng gọi hàm hệ thống, trình điều khiển khởi động việc nhập xuất và chờ đợi đến khi hồn thành, trả về kết quả cho hệ điều hành HĐH trả kết quả về cho người dùng Ngắt: xem Hình VII-5 bước 1, trình điều khiển thiết bị ra lệnh cho bộ điều khiển thơng qua các thanh ghi... trong ổ cứng đang là partition chính (active) Hệ điều hành được đọc từ partition này và nắm quyền điều khiển máy tính Hệ điều hành lấy thơng tin cấu hình hệ thống thơng qua BIOS Nó kiểm tra trình điều khiển của mỗi thiết bị, nếu khơng có thì u cầu cài đặt Một khi có đầy đủ trình điều khiển thiết bị, hệ điều hành nạp chúng vào phần nhân Sau đó tạo các bảng chứa thơng tin quản lý, khởi động các tiến trình... thế hệ thứ hai Ý tưởng về một hệ thống phần mềm trợ giúp cho các máy tính khác nhau có thể tương thích với nhau ra đời Và kết quả là một hệ điều hành cồng kềnh và phức tạp với hàng triệu dòng lệnh hợp ngữ, được lập trình bởi hàng nghìn lập trình viên ra đời Đó là OS/360, hệ điều hành này chứa hàng nghìn lỗi, mà khi có một phiên bản mới sửa các lỗi cũ thì lại phát sinh thêm các lỗi mới Mặc dù hệ điều hành. .. đặt trên các vị trí (sector) đặc biệt trên ổ cứng Ngày nay dung lượng ổ cứng dao dộng từ 100 GB đến vài TB VII.4 Thiết bị nhập xuất Quản lý các thiết bị nhập xuất cũng là một phần chính yếu trong một hệ điều hành Các thiết bị thường gồm hai phần, như trong Hình VII-1 gồm có thiết bị và bộ điều khiển Bộ điều khiển là một hay một tập các chip điều khiển các thiết bị Nó nhận lệnh từ hệ điều hành và thực... phương có một hệ điều hành tương ứng DOS (Disk Operating System) Gates mua lại hệ điều hành này với giá 50,000 đơ la Mĩ, và mua được dễ dàng Gates tạo ra sản phẩm đóng gói DOS/BASIC và bán cho IBM IBM đồng ý mua nhưng u cầu phải có một số sửa đổi nhất định Gates lúc đó mới th người đã viết DOS, Tim Paterson về làm cho mình và thành lập cơng ty Microsoft Hệ điều hành này được chuyển thành tên MS-DOS... ra khỏi hệ điều hành, tuy nhiên đến phiên bản Windows NT 4.0 thì mới thực hiện được hồn tồn Sau đó Microsoft, với vị trí thống lãnh thị trường hệ điều hành, cho ra đời liên tục các phiên bản Windows 98, Me, XP, Vista, Windows 7 dựa trên phiên bản Windows 95 Còn dòng sản phẩm Windows 2000, Windows Server 2003, Windows Server 2008 là bắt nguồn từ hệ điều hành Windows NT VII PHẦN CỨNG MÁY TÍNH Về cơ bản,... Điều khiển bàn phím Điều khiển ổ đóa Hình VII-1 Một vài thành phần trong máy tính cơ bản Ngồi các thanh ghi chung, hầu hết máy tính đều có những thanh ghi đặc biệt Đầu tiên là thanh ghi chỉ lệnh (program counter hoặc instruction pointer) Thanh ghi này lưu địa chỉ của lệnh kế tiếp trong bộ nhớ sẽ được gọi thực thi Thanh ghi quan trọng khác là thanh ghi stack (stack pointer), trỏ đến đỉnh của stack hiện. .. gian chuyển đổi giữa hai tiểu trình là nano giây Multithread chip cho phép hệ điều hành thấy mỗi thread là một CPU Nếu một hệ thống có hai CPU vật lý, mỗi CPU có hai thread Thì hệ điều hành sẽ thấy hệ thống có bốn CPU luận lý Một chip đa lõi (mulitcore chip) Hình VII-2, có thể chứa bốn chip nhỏ trên nó, mỗi chip là một bộ xử lý độc lập Để tận dụng hệ thống nhiều lõi CPU vật lý thì buộc phải sử dụng hệ. .. 1987, Tanenbaum cho ra đời MINIX, phiên bản nhỏ của UNIX, để dành riêng cho học thuật Với ý niệm cho ra đời một hệ điều hành miễn phí, Linus Torvalds phát triển từ MINIX cho ra đời hệ điều hành Linux VI.4 Thế hệ thứ 4 (1980 – hiện nay) máy tính cá nhân Với sự phát triển của mạch tích hợp lớn (LSI – large scale Intergration), chip có khả năng chứa đến hàng nghìn transistor trên một centimet vng, thế hệ . thực thi. Thanh ghi quan trọng khác là thanh ghi stack (stack pointer), trỏ đến đỉnh của stack hiện tại trong bộ nhớ. Một thanh ghi quan trọng nữa là PSW (Program Status Word). Thanh ghi này. mỏy tớnh ó tt i. Cỏc thanh ghi (register) l phn b nh truy cp nhanh nht, chỳng c lm cựng vt liu vi CPU nờn tc nhanh nh CPU (1 nano giõy). Tc truy xut nhanh k tip l cache (2 nano giõy), c qun. hai cache. Cp th nht gi l cache L1 (dung lng thng l 16 MB), c t bờn trong CPU dựng lu v cung cp cỏc lnh ó gii mó cho b phn thi hnh. Cache L2 cú sc cha vi MB. S khỏc bit ca cache L1 v cache L2

Ngày đăng: 22/04/2014, 14:51

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan