Academia.eduAcademia.edu
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 TỔNG QUAN V H ĐI U HÀNH I Mục tiêu Sau khi học xong ch ơng này, ng ời học nắm đ ợc những kiến thức sau: o Hiểu vai trò của hệ điều hành trong hệ thống máy tính o Biết các giai đoạn phát triển của hệ điều hành o Hiểu sự khác biệt của các hệ điều hành qua từng giai đoạn o Hiểu cách giải quyết các vấn đề phát sinh trong từng hệ điều hành II Giới thi u Hệ điều hành là một ch ơng trình quản lý phần cứng máy tính. Nó cung cấp nền tảng cho các ch ơng trình ứng dụng và đóng vai trò trung gian giao tiếp giữa ng ời dùng máy tính và phần cứng của máy tính đó. Hệ điều hành thiết lập cho các tác vụ này rất đa dạng. Một vài hệ điều hành thiết kế tiện dụng trong khi một số khác thiết kế hiệu quả hoặc kết hợp cả hai. Để hiểu hệ điều hành là gì, tr ớc hết chúng ta phải hiểu chúng đ ợc phát triển nh thế nào. Trong ch ơng này chúng ta điểm lại sự phát triển của hệ điều hành từ những hệ thử nghiệm đầu tiên tới những hệ đa ch ơng và chia thời. Thông qua những giai đoạn khác nhau chúng ta sẽ thấy cách thức mà những thành phần của hệ điều hành đ ợc cải tiến nh những giải pháp tự nhiên cho những vấn đề trong những hệ thống máy tính ban đầu. Xem xét những lý do phía sau sự phát triển của hệ điều hành cho chúng ta một đánh giá về những tác vụ gì hệ điều hành làm và cách hệ điều hành thực hiện chúng. III H đi u hành là gì? Một hệ điều hành là một thành phần quan trọng của mọi hệ thống máy tính. Một hệ thống máy tính có thể đ ợc chia thành bốn thành phần: phần cứng, hệ điều hành, các ch ơng trình ứng dụng và ng ời dùng. o Phần cứng (Hardware): bao gồm bộ xử lý trung tâm (CPU), bộ nhớ, thiết bị xuất/nhập,..cung cấp tài nguyên cơ bản cho hệ thống. o Các chương trình ứng dụng (application programs): trình biên dịch (compiler), trình soạn thảo văn bản (text editor), hệ cơ sở dữ liệu (database system), trình duyệt Web,..định nghĩa cách mà trong đó các tài nguyên đ ợc sử dụng để giải quyết yêu cầu của ng ời dùng. o Người dùng (user): có nhiều loại ng ời dùng khác nhau, thực hiện những yêu cầu khác nhau, do đó sẽ có nhiều ứng dụng khác nhau. o H đi u hành (operating system): hay còn gọi là ch ơng trình hệ thống, điều khiển và hợp tác việc sử dụng phần cứng giữa những ch ơng trình ứng dụng khác nhau cho những ng ời dùng khác nhau. Hệ điều hành có thể đ ợc khám phá từ hai phía: ng ời dùng và hệ thống. Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 1 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 User1 User2 compliler text editor UserN ... ... database t System and Application Programs Operating System Hardware Hình 0-1 Tầm nhìn trừu tượng các thành phần của một h thống máy tính III.1 Tầm nhìn người dùng Tầm nhìn ng ời dùng của máy tính rất đa dạng bởi giao diện đ ợc dùng. Hầu hết những ng ời dùng máy tính ngồi tr ớc máy tính cá nhân gồm có màn hình, bàn phím, chuột và bộ xử lý hệ thống (system unit). Một hệ thống nh thế đ ợc thiết kế cho một ng ời dùng độc quyền sử dụng tài nguyên của nó để tối u hoá công việc mà ng ời dùng đang thực hiện. Trong tr ờng hợp này, hệ điều hành đ ợc thiết kế dễ dàng cho việc sử dụng với sự quan tâm về năng lực nh ng không quan tới việc sử dụng tài nguyên. Năng lực thực hiện là quan trọng với ng ời dùng nh ng không là vấn đề nếu hầu hết hệ thống đang rãnh, chờ tốc độ xuất/nhập chậm từ phía ng ời dùng. Vài ng ời dùng ngồi tại thiết bị đầu cuối (terminal) đ ợc nối kết tới máy tính lớn (mainframe) hay máy tính tầm trung (minicomputer). Những ng ời khác đang truy xuất cùng máy tính thông qua các thiết bị đầu cuối khác. Những ng ời dùng này chia sẻ các tài nguyên và có thể trao đổi thông tin. Hệ điều hành đ ợc thiết kế để tối u hoá việc sử dụng tài nguyên-để đảm bảo rằng tất cả thời gian sẳn dùng của CPU, bộ nhớ và thiết bị xuất nhập đ ợc sử dụng hữu hiệu và không cá nhân ng ời dùng sử dụng độc quyền tài nguyên hơn là chia sẻ công bằng. Những ng ời dùng khác ngồi tại trạm làm việc, đ ợc nối kết tới mạng của các trạm làm việc khác và máy chủ. Những ng ời dùng này có tài nguyên tận hiến là trạm làm việc của mình nh ng họ cũng chia sẻ các tài nguyên trên mạng và các máy chủtập tin, tính toán và các máy phục vụ in. Do đó, hệ điều hành của họ đ ợc thiết kế để thoả hiệp giữa khả năng sử dụng cá nhân và việc tận dụng tài nguyên. Gần đây, sự đa dạng của máy tính xách tay trở thành thời trang cho những ng ời làm việc trong lãnh vực công nghệ thông tin. Các thiết bị này đ ợc sử dụng chỉ bởi cá nhân ng ời dùng. Một vài máy tính này đ ợc nối mạng hoặc nối trực tiếp bằng dây hay thông qua các modem không dây. Do sự giới hạn về năng l ợng (điện) và giao diện, chúng thực hiện t ơng đối ít các thao tác ở xa. Hệ điều hành đ ợc thiết kế chủ yếu cho việc sử dụng cá nhân nh ng năng lực thực hiện trên thời gian sống của pin cũng là yếu tố quan trọng. Một số máy tính có rất ít hay không có tầm nhìn ng ời dùng. Thí dụ, các máy tính đ ợc nhúng vào các thiết bị gia đình và xe ôtô có thể có một bảng số và các đèn hiển thị trạng thái mở, tắt nh ng hầu hết chúng và các hệ điều hành đ ợc thiết kế để chạy mà không cần giao tiếp. Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 2 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 III.2 Tầm nhìn h thống Từ quan điểm của máy tính, hệ điều hành là ch ơng trình gần gủi với phần cứng. Chúng ta có thể thấy một hệ điều hành nh bộ cấp phát tài nguyên. Hệ thống máy tính có nhiều tài nguyên - phần cứng và phần mềm - mà có thể đ ợc yêu cầu để giải quyết một vấn đề: thời gian CPU, không gian bộ nhớ, không gian l u trữ tập tin, các thiết bị xuất/nhập,..Hệ điều hành hoạt động nh bộ quản lý tài nguyên. Đ ơng đầu với một l ợng lớn các yêu cầu có thể xung đột về tài nguyên, hệ điều hành phải quyết định cách cấp phát tài nguyên tới những ch ơng trình cụ thể và ng ời dùng để có thể điều hành hệ thống máy tính hữu hiệu và công bằng. Một tầm nhìn khác của hệ điều hành nhấn mạnh sự cần thiết để điều khiển các thiết bị xuất/nhập khác nhau và ch ơng trình ng ời dùng. Một hệ điều hành là một ch ơng trình điều khiển. Ch ơng trình điều khiển quản lý sự thực thi của các ch ơng trình ng ời dùng để ngăn chặn lỗi và việc sử dụng không hợp lý máy tính. Nó đặc biệt quan tâm với những thao tác và điều khiển các thiết bị nhập/xuất. Nhìn chung, không có định nghĩa hoàn toàn đầy đủ về hệ điều hành. Các hệ điều hành tồn tại vì chúng là cách hợp lý để giải quyết vấn đề tạo ra một hệ thống máy tính có thể sử dụng. Mục tiêu cơ bản của hệ thống máy tính là thực thi ch ơng trình ng ời dùng và giải quyết vấn đề ng ời dùng dễ dàng hơn. H ớng đến mục tiêu này, phần cứng máy tính đ ợc xây dựng. Tuy nhiên, chỉ đơn thuần là phần cứng thì không dễ sử dụng và phát triển các ch ơng trình ứng dụng. Các ch ơng trình khác nhau này đòi hỏi những thao tác chung nào đó, chẳng hạn nh điều khiển thiết bị xuất/nhập. Sau đó, những chức năng chung về điều khiển và cấp phát tài nguyên đ ợc đặt lại với nhau vào một bộ phận phần mềm gọi là hệ điều hành. Cũng không có định nghĩa bao quát nào đ ợc chấp nhận để xác định phần gì thuộc về hệ điều hành, phần gì không. Một quan điểm đơn giản là mọi thứ liên quan khi chúng ta ra lệnh hệ điều hành nên đ ợc xem xét. Tuy nhiên, những yêu cầu về bộ nhớ và những đặc điểm bên trong rất khác nhau trong từng hệ thống. Một định nghĩa bao quát hơn về hệ điều hành là một ch ơng trình chạy liên tục trên máy tính (th ờng gọi là nhân kernel), những ch ơng trình còn lại thuộc về ch ơng trình ứng dụng. III.3 Mục tiêu h thống Định nghĩa những gì hệ điều hành làm thì dễ hơn xác định hệ điều hành là gì. Mục đích chính của hệ điều hành là dễ dàng sử dụng. Vì sự tồn tại của hệ điều hành hỗ trợ nhiều cho máy tính trong việc đáp ứng các ứng dụng của ng ời dùng. Tầm nhìn này đặc biệt rõ ràng hơn khi nhìn hệ điều hành trên các máy tính cá nhân. Mục tiêu thứ hai của hệ điều hành là điều hành hữu hiện hệ thống máy tính. Mục tiêu này đặc biệt quan trọng cho các hệ thống lớn, đ ợc chia sẻ, nhiều ng ời dùng. Những hệ thống tiêu biểu này khá đắt, khai thác hiệu quả nhất các hệ thống này luôn là điều mong muốn. Tuy nhiên, hai mục tiêu tiện dụng và hữu hiệu đôi khi mâu thuẫn nhau. Trong quá khứ, xem xét tính hữu hiệu th ờng quan trọng hơn tính tiện dụng. Do đó, lý thuyết hệ điều hành tập trung nhiều vào việc tối u hoá sử dụng tài nguyên tính toán. Hệ điều hành cũng phát triển dần theo thời gian. Thí dụ, UNIX bắt đầu với bàn phím và máy in nh giao diện của nó giới hạn tính tiện dụng đối với ng ời dùng. Qua thời gian, phần cứng thay đổi và UNIX đ ợc gắn vào phần cứng mới với giao diện thân thiện với ng ời dùng hơn. Nhiều giao diện ng ời dùng đồ hoạ GUIs (graphical user interfaces) đ ợc bổ sung cho phép tiện dụng hơn với ng ời dùng trong khi vẫn quan tâm tính hiệu quả. Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 3 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 Thiết kế hệ điều hành là một công việc phức tạp. Ng ời thiết kế gặp phải nhiều sự thoả hiệp trong thiết kế và cài đặt. Nhiều ng ời tham gia không chỉ mang đến hệ điều hành những lợi điểm mà còn liên tục xem xét và nâng cấp. Để thấy rõ những hệ điều hành là gì và những gì hệ điều hành làm, chúng ta xem xét cách chúng phát triển trong bốn m ơi lăm năm qua. Bằng cách lần theo sự tiến triển, chúng ta có thể xác định những thành phần của hệ điều hành và thấy cách thức và lý do hệ điều hành phát triển nh chúng có. Hệ điều hành và kiến trúc máy tính có mối quan hệ khăng khít nhau. Để dễ dàng sử dụng phần cứng, hệ điều hành đ ợc phát triển. Sau đó, các ng ời dùng hệ điều hành đề nghị những chuyển đổi trong thiết kế phần cứng để đơn giản chúng. Nhìn lại lịch sử ngắn ngủi này, chú trọng cách giải quyết những vấn đề về hệ điều hành để giới thiệu những đặc điểm phần cứng. IV H thống mainframe Những hệ thống máy tính mainframe là những máy tính đầu tiên đ ợc dùng để xử lý ứng dụng th ơng mại và khoa học. Trong phần này, chúng ta lần theo sự phát triển của hệ thống mainframe từ các hệ thống bó (batch systems), ở đó máy tính chỉ chạy một-và chỉ một -ứng dụng, tới các hệ chia sẻ thời gian (time-shared systems), mà cho phép ng ời dùng giao tiếp với hệ thống máy tính. IV.1 H thống bó Những máy tính thời kỳ đầu là những máy cực lớn chạy từ một thiết bị cuối (console). Những thiết bị nhập th ờng là những bộ đọc thẻ và các ổ đĩa băng từ. Các thiết bị xuất thông th ờng th ờng là những máy in dòng (line printers), các ổ đĩa từ và các phiếu đục lỗ. Ng ời dùng không giao tiếp trực tiếp với các hệ thống máy tính. Thay vào đó, ng ời dùng chuẩn bị một công việc- chứa ch ơng trình, dữ liệu và các thông tin điều khiển về tính tự nhiên của công việc-và gởi nó đến ng ời điều hành máy tính. Công việc này th ờng đ ợc thực hiện trong các phiếu đục lỗ. Tại những thời điểm sau đó (sau vài phút, giờ hay ngày), dữ liệu xuất xuất hiện. Dữ liệu xuất chứa kết quả ch ơng trình cũng nh kết xuất bộ nhớ cuối cùng và nội dung các thanh ghi cho việc gở rối. Hệ điều hành trong các máy tính thời kỳ đầu này t ơng đối đơn giản. Tác vụ chính là chuyển điều khiển tự động từ một công việc này sang công việc khác. Hệ điều hành luôn đ ợc th ờng trú trong bộ nhớ. Hệ điều hành Vùng ch ơng trình ng ời dùng Hình 0-2 Sắp x p bộ nhớ cho một h thống bó đơn giản Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 4 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 Để tăng tốc việc xử lý, ng ời điều hành bó các công việc có cùng yêu cầu và chạy chúng thông qua máy tính nh một nhóm. Do đó, các lập trình viên sẽ đ a ch ơng trình của họ cho ng ời điều hành. Ng ời điều hành sẽ sắp xếp ch ơng trình thành những bó với cùng yêu cầu và khi máy tính sẳn dùng sẽ chạy mỗi bó này. Dữ liệu xuất từ mỗi công việc sẽ gởi lại cho lập trình viên t ơng ứng. Trong môi tr ờng thực thi này, CPU luôn rảnh vì tốc độ của các thiết bị xuất/nhập dạng cơ thực chất chậm hơn tốc độ của các thiết bị điện. Ngay cả một CPU chậm (với hàng ngàn chỉ thị lệnh đ ợc thực thi trên giây) cũng chỉ làm việc trong vài phần trăm giây. Thêm vào đó, một bộ đọc thẻ nhanh có thể đọc 1200 thẻ trong thời gian 1 phút (hay 20 thẻ trên giây). Do đó, sự khác biệt giữa tốc độ CPU và thiết bị xuất/nhập của nó có thể là 3 lần hay nhiều hơn. Dĩ nhiên theo thời gian, sự tiến bộ trong công nghệ dẫn đến sự ra đời những thiết bị nhập/xuất nhanh hơn. Tuy nhiên, tốc độ CPU tăng tới một tỷ lệ lớn hơn vì thế vấn đề không những không đ ợc giải quyết mà còn làm tăng. Giới thiệu công nghệ đĩa cho phép hệ điều hành giữ tất cả công việc trên một đĩa hơn trong một bộ đọc thẻ tuần tự. Với việc truy xuất trực tiếp tới nhiều công việc, hệ điều hành có thể thực hiện định thời công việc, để sử dụng tài nguyên và thực hiện các tác vụ hữu hiệu. IV.2 H đa chương Một khía cạnh quan trọng nhất của định thời công việc là khả năng đa ch ơng. Thông th ờng, một ng ời dùng giữ CPU hay các thiết bị xuất/nhập luôn bận. Đa ch ơng gia tăng khả năng sử dụng CPU bằng cách tổ chức các công việc để CPU luôn có một công việc để thực thi. Ý t ởng của kỹ thuật đa ch ơng có thể minh hoạ nh sau: Hệ điều hành giữ nhiều công việc trong bộ nhớ tại một thời điểm. Tập hợp các công việc này là tập con của các công việc đ ợc giữ trong vùng công việc-bởi vì số l ợng các công việc có thể đ ợc giữ cùng lúc trong bộ nhớ th ờng nhỏ hơn số công việc có thể có trong vùng đệm. Hệ điều hành sẽ lấy và bắt đầu thực thi một trong các công việc có trong bộ nhớ. Cuối cùng, công việc phải chờ một vài tác vụ nh một thao tác xuất/nhập để hoàn thành. Trong hệ thống đơn ch ơng, CPU sẽ chờ ở trạng thái rỗi. Trong hệ thống đa ch ơng, hệ điều hành sẽ chuyển sang thực thi công việc khác. Cuối cùng, công việc đầu tiên kết thúc việc chờ và nhận CPU trở lại. Chỉ cần ít nhất một công việc cần thực thi, CPU sẽ không bao giờ ở trạng thái rỗi. 0 Hệ điều hành Công việc 1 Công việc 2 Công việc 3 512K Công việc 4 Hình 0-3 Sắp x p bộ nhớ cho h đa chương Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 5 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 Đa ch ơng là một tr ờng hợp đầu tiên khi hệ điều hành phải thực hiện quyết định cho những ng ời dùng. Do đó, hệ điều hành đa ch ơng t ơng đối tinh vi. Tất cả công việc đ a vào hệ thống đ ợc giữ trong vùng công việc. Vùng này chứa tất cả quá trình định vị trên đĩa chờ đ ợc cấp phát bộ nhớ chính. Nếu nhiều công việc sẳn sàng đ ợc mang vào bộ nhớ và nếu không đủ không gian cho tất cả thì hệ điều hành phải chọn một trong chúng. Khi hệ điều hành chọn một công việc từ vùng công việc, nó nạp công việc đó vào bộ nhớ để thực thi. Có nhiều ch ơng trình trong bộ nhớ tại cùng thời điểm yêu cầu phải có sự quản lý bộ nhớ. Ngoài ra, nếu nhiều công việc sẳn sàng chạy cùng thời điểm, hệ thống phải chọn một trong chúng. Thực hiện quyết định này là định thời CPU. Cuối cùng, nhiều công việc chạy đồng hành đòi hỏi hoạt động của chúng có thể ảnh h ởng tới một công việc khác thì bị hạn chế trong tất cả giai đoạn của hệ điều hành bao gồm định thời quá trình, l u trữ đĩa, quản lý bộ nhớ. IV.3 H chia thời Hệ thống bó-đa ch ơng cung cấp một môi tr ờng nơi mà nhiều tài nguyên khác nhau (chẳng hạn nh CPU, bộ nhớ, các thiết bị ngoại vi) đ ợc sử dụng hiệu quả. Tuy nhiên, nó không cung cấp giao tiếp ng ời dùng với hệ thống máy tính. Chia thời (hay đa nhiệm) là sự mở rộng luận lý của đa ch ơng. CPU thực thi nhiều công việc bằng cách chuyển đổi qua lại giữa chúng, nh ng những chuyển đổi xảy ra quá th ờng xuyên để ng ời dùng có thể giao tiếp với mỗi ch ơng trình trong khi chạy. Một hệ thống máy tính giao tiếp (interactive computer) hay thực hành (handson computer system) cung cấp giao tiếp trực tuyến giữa ng ời dùng và hệ thống. Ng ời dùng cho những chỉ thị tới hệ điều hành hay trực tiếp tới một ch ơng trình, sử dụng bàn phím hay chuột và chờ nhận kết quả tức thì. Do đó, thời gian đáp ứng nên ngắn-điển hình trong phạm vi 1 giây hay ít hơn. Một hệ thống chia thời cho phép nhiều ng ời dùng chia sẻ máy tính cùng một thời điểm. Vì mỗi hoạt động hay lệnh trong hệ chia thời đ ợc phục vụ ngắn, chỉ một ít thời gian CPU đ ợc yêu cầu cho mỗi ng ời dùng. Khi hệ thống nhanh chóng chuyển từ một ng ời dùng này sang ng ời dùng kế, mỗi ng ời dùng đ ợc cho cảm giác rằng toàn bộ hệ thống máy tính đ ợc tận hiến cho mình, nh ng thật sự máy tính đó đang đ ợc chia sẻ cho nhiều ng ời dùng. Một hệ điều hành chia thời sử dụng định thời CPU và đa ch ơng để cung cấp mỗi ng ời dùng với một phần nhỏ của máy tính chia thời. Mỗi ng ời dùng có ít nhất một ch ơng trình riêng trong bộ nhớ. Một ch ơng trình đ ợc nạp vào trong bộ nhớ và thực thi th ờng đ ợc gọi là một quá trình. Khi một quá trình thực thi, điển hình nó thực thi chỉ tại một thời điểm ngắn tr ớc khi nó kết thúc hay cần thực hiện xuất/nhập. Xuất/nhập có thể đ ợc giao tiếp; nghĩa là dữ liệu xuất hiển thị trên màn hình cho ng ời dùng và dữ liệu nhập từ bàn phím, chuột hay thiết bị khác. Vì giao tiếp xuất/nhập chủ yếu chạy ở “tốc độ ng ời dùng”, nó có thể mất một khoảng thời gian dài để hoàn thành. Thí dụ, dữ liệu nhập có thể bị giới hạn bởi tốc độ nhập của ng ời dùng; 7 ký tự trên giây là nhanh đối với ng ời dùng, nh ng quá chậm so với máy tính. Thay vì để CPU rảnh khi ng ời dùng nhập liệu, hệ điều hành sẽ nhanh chóng chuyển CPU tới một ch ơng trình khác. Hệ điều hành chia thời phức tạp hơn nhiều so với hệ điều hành đa ch ơng. Trong cả hai dạng, nhiều công việc đ ợc giữ cùng lúc trong bộ nhớ vì thế hệ thống phải có cơ chế quản lý bộ nhớ và bảo vệ. Để đạt đ ợc thời gian đáp ứng hợp lý, các công việc có thể đ ợc hoán vị vào ra bộ nhớ chính. Một ph ơng pháp chung để đạt mục tiêu này là bộ nhớ ảo, là kỹ thuật cho phép việc thực thi của một công việc có thể không hoàn toàn ở trong bộ nhớ. u điểm chính của cơ chế bộ nhớ ảo là các ch ơng Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 6 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 trình có thể lớn hơn bộ nhớ vật lý. Ngoài ra, nó trừu t ợng hoá bộ nhớ chính thành mảng l u trữ lớn và đồng nhất, chia bộ nhớ luận lý nh đ ợc thấy bởi ng ời dùng từ bộ nhớ vật lý. Sự sắp xếp này giải phóng lập trình viên quan tâm đến giới hạn l u trữ của bộ nhớ. Các hệ chia thời cũng phải cung cấp một hệ thống tập tin. Hệ thống tập tin định vị trên một tập hợp đĩa; do đó quản lý đĩa phải đ ợc cung cấp. Hệ chia thời cũng cung cấp cơ chế cho việc thực thi đồng hành, yêu cầu cơ chế định thời CPU tinh vi. Để đảm bảo thứ tự thực thi, hệ thống phải cung cấp các cơ chế cho việc đồng bộ hoá và giao tiếp công việc, và có thể đảm bảo rằng các công việc không bị deadlock, chờ đợi công việc khác mãi mãi. Ý t ởng chia thời đ ợc giới thiệu trong những năm 1960, nh ng vì hệ chia thời là phức tạp và rất đắt để xây dựng, chúng không phổ biến cho tới những năm 1970. Mặc dù xử lý theo bó vẫn đ ợc thực hiện nh ng hầu hết hệ thống ngày nay là chia thời. Do đó, đa ch ơng và chia thời là những chủ đế trung tâm của hệ điều hành hiện đại và chúng là chủ đề trọng tâm của giáo trình này. V H để bàn (Desktop system) Máy tính cá nhân (PC) xuất hiện vào những năm 1970. Trong suốt thập niên đầu, CPU trong PC thiếu các đặc điểm cần thiết để bảo vệ hệ điều hành từ ch ơng trình ng ời dùng. Do đó, các hệ điều hành PC không là đa ng ời dùng hoặc đa nhiệm. Tuy nhiên, các mục tiêu của hệ điều hành này thay đổi theo thời gian; thay vì tối u hoá việc sử dụng CPU và thiết bị ngoại vi, các hệ thống chọn lựa tối u hoá sự tiện dụng và đáp ứng ng ời dùng. Các hệ thống này gồm các PC chạy các hệ điều hành Microsoft Windows và Apple Macintosh. Hệ điều hành MS-DOS từ Microsoft đ ợc thay thế bằng nhiều ấn bản của Microsoft Windows và IBM đã nâng cấp MS-DOS thành hệ đa nhiệm OS/2. Hệ điều hành Apple Macintosh đ ợc gắn nhiều phần cứng hiện đại hơn và ngày nay chứa nhiều đặc điểm mới nh bộ nhớ ảo và đa nhiệm. Với sự phát hành MacOS X, lõi của hệ điều hành ngày nay dựa trên Mach và FreeBSD UNIX cho sự mở rộng, năng lực và đặc điểm nh ng nó vẫn giữ lại giao diện đồ hoạ ng ời dùng GUI. LINUX, một hệ điều hành t ơng tự nh UNIX sẳn dùng cho máy PC trở nên phổ biến gần đây. Hệ điều hành cho các máy tính này có những thuận lợi trong nhiều cách từ sự phát triển của hệ điều hành cho mainframes. Máy vi tính (microcomputer) lập tức có thể đ ợc chấp nhận một số công nghệ đ ợc phát triển cho hệ điều hành lớn hơn. Thêm vào đó, chi phí phần cứng cho máy vi tính đủ thấp để các cá nhân có thể một mình sử dụng máy tính, và sử dụng CPU không còn quan trọng nữa. Do đó, những quyết định thiết kế đ ợc thực hiện trong hệ điều hành cho mainframes có thể không hợp lý cho các hệ thống nhỏ hơn. Những quyết định thiết kế khác vẫn đ ợc áp dụng. Thí dụ, tr ớc hết bảo vệ hệ thống tập tin không cần thiết trên máy cá nhân. Tuy nhiên, hiện nay các máy tính này th ờng đ ợc nối vào các máy tính khác qua mạng cục bộ hay Internet. Khi những máy tính khác và ng ời dùng khác có thể truy xuất các tập tin này trên một PC, bảo vệ tập tin một lần nữa cũng trở thành một đặc điểm cần thiết của hệ điều hành. Sự thiếu bảo vệ tạo điều kiện dễ dàng cho những ch ơng trình hiểm phá huỷ dữ liệu trên những hệ thống nh MS-DOS và hệ điều hành Macintosh. Các ch ơng trình này có thể tự nhân bản và phát tán nhanh chóng bằng cơ chế worm hay virus và làm tê liệt mạng của các công ty hay thậm chí mạng toàn cầu. Đặc điểm chia thời đ ợc cải tiến nh bộ nhớ bảo vệ và quyền tập tin là ch a đủ để bảo vệ một hệ thống từ sự tấn công. Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 7 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 VI H đa xử lý Hầu hết các hệ thống ngày nay là các hệ thống đơn xử lý; nghĩa là chỉ có một CPU chính. Tuy nhiên, các hệ thống đa xử lý (hay còn gọi là hệ song song hay hệ kết nối chặt) đ ợc phát triển rất quan trọng. Các hệ thống nh thế có nhiều hơn một bộ xử lý trong giao tiếp gần, chia sẻ bus máy tính, đồng hồ, đôi khi còn là bộ nhớ hay thiết bị ngoại vi. Hệ thống đa xử lý có ba u điểm chính: o Thông lượng được gia tăng: bằng cách tăng số l ợng bộ xử lý, chúng ta hy vọng thực hiện nhiều công việc hơn với thời gian ít hơn. Tỉ lệ giữa sự tăng tốc với N bộ xử lý không là N; đúng hơn nó nhỏ hơn N. Trong khi nhiều bộ xử lý cộng tác trên một công việc, một l ợng chi phí phải chịu trong việc giữ các thành phần làm việc phù hợp. Chi phí này cộng với chi phí cạnh tranh tài nguyên đ ợc chia sẻ, làm giảm kết quả đ ợc mong đợi từ những bộ xử lý bổ sung. T ơng tự nh một nhóm gồm N lập trình viên làm việc với nhau không dẫn đến kết quả công việc đang đạt đ ợc tăng N lần. o Tính kinh t của vi c mở rộng: hệ thống đa xử lý có thể tiết kiệm nhiều chi phí hơn hệ thống đơn bộ xử lý, bởi vì chúng có thể chia sẻ ngoại vi, thiết bị l u trữ và điện. Nếu nhiều ch ơng trình điều hành trên cùng tập hợp dữ liệu thì l u trữ dữ liệu đó trên một đĩa và tất cả bộ xử lý chia sẻ chúng sẽ rẻ hơn là có nhiều máy tính với đĩa cục bộ và nhiều bản sao dữ liệu. o Khả năng tin cậy được gia tăng: nếu các chức năng đ ợc phân bổ hợp lý giữa các bộ xử lý thì lỗi trên một bộ xử lý sẽ không dừng hệ thống, chỉ năng lực bị giảm. Nếu chúng ta có 10 bộ xử lý và có 1 bộ xử lý bị sự cố thì mỗi bộ xử lý trong 9 bộ xử lý còn lại phải chia sẻ của công việc của bộ xử lý bị lỗi. Do đó, toàn bộ hệ thống chỉ giảm 10% năng lực hơn là dừng hoạt động. Các hệ thống đ ợc thiết kế nh thế đ ợc gọi là hệ thống có khả năng chịu lỗi (fault tolerant). Việc điều hành vẫn tiếp tục trong sự hiện diện của lỗi yêu cầu một cơ chế cho phép lỗi đ ợc phát hiện, chuẩn đoán và sửa lỗi nếu có thể. Hệ thống Tandem sử dụng sự nhân đôi phần cứng và phần mềm để đảm bảo sự điều hành vẫn tiếp tục mặc dù có lỗi xảy ra. Hệ thống này chứa hai bộ xử lý, mỗi bộ xử lý có bộ nhớ cục bộ riêng. Các bộ xử lý đ ợc nối kết bởi một bus. Một bộ xử lý chính và bộ xử lý kia là dự phòng. Cả hai bản sao đ ợc giữ ở mỗi bộ xử lý: một là chính và một là dự phòng. Tại các điểm kiểm tra (checkpoints) trong việc thực thi của hệ thống, thông tin trạng thái của mỗi công việc-gồm một bản sao hình ảnh bộ nhớ-đ ợc chép từ máy chính tới máy dự phòng. Nếu một lỗi đ ợc phát hiện, bản sao dự phòng đ ợc kích hoạt và đ ợc khởi động lại từ điểm kiểm tra mới nhất. Giải pháp này đắt vì nó bao gồm việc nhân đôi phần cứng. Các hệ thống đa xử lý thông dụng nhất hiện nay sử dụng đa xử lý đối xứng (symmetric multiprocessing-SMP). Trong hệ thống này mỗi bộ xử lý chạy bản sao của hệ điều hành và những bản sao này giao tiếp với các bản sao khác khi cần. Vài hệ thống sử dụng đa xử lý bất đối xứng (asymmetric multiprocessing). Trong hệ thống này mỗi bộ xử lý đ ợc gán một công việc xác định. Một bộ xử lý chủ điều khiển hệ thống; những bộ xử lý còn lại hoặc chờ bộ xử lý chủ ra chỉ thị hoặc có những tác vụ đ ợc định nghĩa tr ớc. Cơ chế này định nghĩa mối quan hệ chủ-tớ. Bộ xử lý chính lập thời biểu và cấp phát công việc tới các bộ xử lý tớ. Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 8 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 Đa xử lý đối xứng có nghĩa tất cả bộ xử lý là ngang hàng; không có mối quan hệ chủ-tớ tồn tại giữa các bộ xử lý. Hình I-4 minh hoạ một kiến trúc đa xử lý đối xứng điển hình. Một thí dụ của đa xử lý đối xứng là ấn bản của Encore của UNIX cho máy tính Multimax. Máy tính này có thể đ ợc cấu hình nh nó đang thực hiện nhiều bộ xử lý, tất cả bộ xử lý đều chạy bản sao của UNIX. u điểm của mô hình này là nhiều quá trình có thể chạy cùng một lúc - N quá trình có thể chạy nếu có N CPU- không gây ra sự giảm sút to lớn về năng lực. Tuy nhiên, chúng ta phải điều khiển cẩn thận xuất/nhập để đảm bảo rằng dữ liệu dẫn tới bộ xử lý t ơng ứng. Vì các CPU là riêng rẻ, một CPU có thể đang rảnh trong khi CPU khác quá tải dẫn đến việc sử dụng không hữu hiệu tài nguyên của hệ thống. Sự không hiệu quả này có thể tránh đ ợc nếu các bộ xử lý chia sẻ các cấu trúc dữ liệu. Một hệ thống đa xử lý của dạng này sẽ cho phép các quá trình và tài nguyên – nh bộ nhớ - đ ợc chia sẻ tự động giữa các quá trình khác nhau và có thể làm giảm sự khác biệt giữa các bộ xử lý. Hầu nh tất cả hệ điều hành hiện đại - gồm Windows NT, Solaris, Digital UNIX, OS/2 và LINUX - hiện nay cung cấp sự hỗ trợ đa xử lý đối xứng. Hình 0-4 Ki n trúc đa xử lý đối xứng Sự khác biệt giữa đa xử lý đối xứng và bất đối xứng có thể là do phần cứng hoặc phần mềm. Phần cứng đặc biệt có thể khác nhau trên nhiều bộ xử lý, hoặc phần mềm có thể đ ợc viết để cho phép chỉ một chủ và nhiều tớ. Thí dụ, SunOS ấn bản 4 cung cấp đa xử lý không đối xứng, ng ợc lại, ấn bản 5 (Solaris 2) là đối xứng trên cùng phần cứng. Khi các bộ vi xử lý trở nên rẻ hơn và mạnh hơn các chức năng bổ sung của hệ điều hành là chuyển tới bộ xử lý tớ. Thí dụ, t ơng đối dễ để thêm bộ vi xử lý với bộ nhớ riêng để quản lý hệ thống đĩa. Bộ vi xử lý có thể nhận một chuỗi các yêu cầu từ bộ nhớ chính và cài đặt hàng đợi đĩa riêng và giải thuật định thời. Sự sắp xếp này làm giảm chi phí định thời đĩa của CPU. PC chứa một bộ vi xử lý trong bàn phím để chuyển những phím nóng thành mã để gởi tới CPU. Thực tế, việc sử dụng các bộ vi xử lý trở nên quá phổ biến đến nổi mà đa xử lý không còn đ ợc xem xét. VII H phân tán Một mạng, trong thuật ngữ đơn giản nhất, là một đ ờng dẫn truyền thông giữa hai hay nhiều hệ thống. Hệ phân tán phụ thuộc vào mạng với những khả năng của nó. Bằng cách cho phép truyền thông, hệ phân tán có thể chia sẻ các tác vụ tính toán và cung cấp nhiều chức năng tới ng ời dùng. Các mạng với sự đa dạng về giao thức đ ợc dùng, khoảng cách giữa các nút và ph ơng tiện truyền. TCP/IP là giao thức mạng phổ biến nhất mặc dù ATM và các giao thức khác đ ợc sử dụng rộng rãi. T ơng tự, hệ điều hành hỗ trợ sự đa dạng về giao thức. Hầu hết các hệ điều hành hỗ trợ TCP/IP, gồm Windows và UNIX. Một số hệ điều hành khác hỗ trợ các giao thức riêng phù hợp với yêu cầu của chúng. Đối với một hệ điều hành, một giao thức mạng chỉ cần một thiết bị giao diện – thí dụ: một Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 9 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 card mạng-với một trình điều khiển thiết bị để quản lý nó và một phần mềm để đóng gói dữ liệu trong giao thức giao tiếp để gởi nó và mở gói để nhận nó. Mạng th ờng dựa trên các khoảng cách giữa các nút. Một mạng cục bộ (LANLocal Area Network) tồn tại trong phạm vi một phòng, một tầng, hay một toà nhà. Một mạng diện rộng (Wide-Area Network) th ờng tồn tại giữa các toà nhà, các thành phố, các quốc gia. Một công ty toàn cầu có thể có một mạng diện rộng để nối kết tới các văn phòng của nó. Các mạng này có thể chạy với một hay nhiều giao thức. Sự tiến bộ liên tục của công nghệ mới hình thành nhiều dạng mạng khác nhau. Thí dụ, mạng đô thị (MAN-Metropolitan Area Network) cũng liên kết các toà nhà trong cùng một thành phố. Các thiết bị BlueTooth giao tiếp qua một khoảng cách ngắn khoảng vài bộ (feet), chủ yếu tạo ra một mạng phạm vi nhỏ (small-area network). Các ph ơng tiện truyền thông làm các mạng t ơng đối khác nhau. Chúng gồm cáp đồng, cáp quang, truyền không dây giữa vệ tinh, các đĩa vi sóng (microware dishes) và sóng radio. Khi các thiết bị tính toán đ ợc nối kết tới các điện thoại di động, chúng tạo ra một mạng. Thậm chí rất nhiều giao tiếp hồng ngoại dãy ngắn có thể đ ợc dùng cho mạng. Tại cấp độ cơ bản, bất cứ khi nào các máy tính giao tiếp chúng sử dụng hay tạo ra một mạng. Các mạng này cũng rất khác nhau về năng lực và khả năng tin cậy. VII.1 H khách hàng-máy phục vụ Một PC có thể trở nên nhanh hơn, mạnh hơn, rẻ hơn nếu ng ời thiết kế thay đổi rất xa từ kiến trúc hệ thống tập trung. Các thiết bị đầu cuối đ ợc nối kết tới các hệ tập trung hiện nay đang đ ợc thay thế bởi các PC. T ơng ứng, chức năng giao diện ng ời dùng đ ợc dùng quản lý trực tiếp bởi các hệ tập trung đang đ ợc quản lý tăng dần bởi các PC. Do đó, các hệ tập trung ngày nay hoạt động nh hệ máy phục vụ để thoả mãn các yêu cầu phát sinh bởi hệ thống khách hàng. Đặc điểm chung của hệ khách hàng- máy phục vụ đ ợc mô tả trong hình-I-5: Hình 0-5 Cấu trúc chung của h khách hàng-máy phục vụ Các hệ máy chủ có thể đ ợc phân loại rộng rãi nh máy phục vụ tính toán và máy phục vụ tập tin o H máy phục vụ tính toán (Compute-server systems): cung cấp giao diện mà khách hàng có thể gởi các yêu cầu để thực hiện hoạt động. Chúng thực thi hoạt động và gởi kết quả cho khách hàng. o H máy phục vụ tập tin (File-server systems ): cung cấp một giao diện hệ thống tập tin nơi khách hàng có thể tạo, cập nhật, đọc và xoá tập tin. Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 10 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 VII.2 H ngang hàng Sự phát triển của mạng máy tính-đặc biệt là Internet và Word Wide Web (WWW)-có ảnh h ởng sâu sắc đến sự phát triển gần đây của hệ điều hành. Khi PC đ ợc giới thiệu vào những năm 1970, chúng đ ợc thiết kế cho việc sử dụng “cá nhân” và th ờng đ ợc xem nh là các máy tính đơn lẻ (standalone computer). Với việc bắt đầu sử dụng Internet phổ biến và rộng rãi vào những năm 1980 với e-mail, ftp, gopher, nhiều PC đ ợc nối vào mạng máy tính. Với sự giới thiệu dịch vụ Web vào giữa những năm 1990, nối kết mạng trở thành một thành phần quan trọng của một hệ thống mạng máy tính. Gần nh tất cả máy tính PC hiện đại và các trạm làm việc có thể chạy trình duyệt Web để truy xuất tài liệu siêu văn bản trên Web. Các hệ điều hành (nh Windows, OS/2, MacOS và UNIX) hiện nay cũng chứa phần mềm hệ thống (nh TCP/IP và PPP) cho phép một máy tính truy xuất Internet qua một mạng cục bộ hay nối kết qua đ ờng điện thoại. Nhiều hệ điều hành chứa trình duyệt Web cũng nh khách hàng và máy phục vụ e-mail, đăng nhập từ xa, và ftp. T ơng phản với các hệ thống kết nối chặt đ ợc thảo luận trong phần I.6, mạng máy tính đ ợc dùng trong các ứng dụng này gồm tập hợp các bộ xử lý không chia sẻ bộ nhớ hay đồng hồ. Thay vào đó, mỗi bộ xử lý có bộ nhớ cục bộ riêng. Bộ xử lý giao tiếp với bộ xử lý khác thông qua các đ ờng truyền thông nh các bus tốc độ cao hay các đ ờng điện thoại. Các hệ thống này th ờng đ ợc xem nh các hệ thống kết nối lỏng (hay hệ thống phân tán). Vài hệ điều hành thực hiện khái niệm mạng hơn là chú trọng cung cấp nối kết mạng. Một hệ điều hành mạng là một hệ điều hành cung cấp các đặc tính nh chia sẻ tập tin qua mạng, nó chứa một cơ chế giao tiếp cho phép các quá trình khác nhau trên các máy khác nhau trao đổi thông điệp. Một máy tính chạy một hệ điều hành mạng hoạt động tự trị từ tất cả máy tính khác trên mạng, mặc dù nó nhận thức sự hiện diện của mạng và có thể giao tiếp với các máy tính đ ợc nối mạng khác. Một hệ điều hành phân tán là một môi tr ờng ít tự trị hơn: Các hệ điều hành phân tán giao tiếp đủ gần để cung cấp một hình ảnh mà chỉ một hệ điều hành đơn lẻ điều khiển mạng. VIII H thống nhóm (Clustered Systems) T ơng tự các hệ song song, hệ thống nhóm tập hợp nhiều CPUs với nhau để thực hiện công việc tính toán. Tuy nhiên, hệ thống nhóm khác hệ thống song song ở điểm chúng đ ợc hợp thành từ hai hay nhiều hệ thống đơn đ ợc kết hợp với nhau. Định nghĩa của thuật ngữ nhóm (clustered) là không cụ thể. Định nghĩa thông th ờng có thể chấp nhận là các máy tính nhóm chia sẻ việc l u trữ và đ ợc liên kết gần qua LAN. Nhóm th ờng đ ợc thực hiện để cung cấp khả năng sẳn dùng cao. Một lớp phần mềm nhóm chạy trên các nút nhóm (cluster nodes). Mỗi nút có thể kiểm soát một hay nhiều hơn một nút (qua mạng LAN). Nếu máy bị kiểm soát gặp sự cố, máy kiểm soát có thể lấy quyền sở hữu việc l u trữ của nó và khởi động lại (các) ứng dụng mà chúng đang chạy trên máy bị sự cố. Máy bị sự cố vẫn ch a hoạt động nh ng ng ời dùng và khách hàng của ứng dụng chỉ thấy một sự gián đoạn ngắn của dịch vụ. Trong nhóm bất đối xứng (asymmetric clustering), một máy ở trong chế độ dự phòng nóng (hot standby) trong khi các máy khác đang chạy các ứng dụng. Máy dự phòng không là gì cả ngoại trừ theo dõi server hoạt động. Nếu server đó bị lỗi, máy chủ dự phòng nóng trở thành server hoạt động. Trong chế độ đối xứng (symmetric mode), hai hay nhiều máy chủ đang chạy ứng dụng và chúng đang kiểm soát lẫn nhau. Chế độ Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 11 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 này chú trọng tính hiệu quả khi nó sử dụng tất cả phần cứng sẳn có. Nó thực hiện yêu cầu nhiều hơn một ứng dụng sẳn dùng để chạy. Các hình thức khác của nhóm gồm các nhóm song song (parallel clusters) và nhóm qua một WAN. Các nhóm song song cho phép nhiều máy chủ truy xuất cùng dữ liệu trên thiết bị l u trữ đ ợc chia sẻ. Vì hầu hết các hệ điều hành hỗ trợ nghèo nàn việc truy xuất dữ liệu đồng thời bởi nhiều máy chủ, các nhóm song song th ờng đ ợc thực hiện bởi các ấn bản phần mềm đặc biệt và sự phát hành của các ứng dụng đặc biệt. Thí dụ, Oracle Parallel Server là một ấn bản cơ sở dữ liệu của Oracle, và lớp phần mềm ghi vết việc truy xuất tới đĩa đ ợc chia sẻ. Mỗi máy có truy xuất đầy đủ tới dữ liệu trong cơ sở dữ liệu. Mặc dù có nhiều cải tiến trong tính toán phân tán, hầu hết các hệ thống không cung cấp các hệ thống tập tin phân tán mục đích chung (general-purpose distributed file systems). Do đó, hầu hết các nhóm không cho phép truy xuất đ ợc chia sẻ tới dữ liệu trên đĩa. Cho mục đích này, các hệ thống tập tin phân tán phải cung cấp điều khiển truy xuất và khoá các tập tin để đảm bảo không có các thao tác xung đột xảy ra. Loại dịch vụ này th ờng đ ợc gọi là bộ quản lý khoá phân tán (distributed lock manager-DLM). Công nghệ nhóm đang nhanh chóng thay đổi. Những định h ớng nhóm gồm các nhóm toàn cục, trong đó các máy có thể định vị bất cứ nơi nào trên thế giới (hay bất cứ nơi nào một WAN đạt tới). Các dự án nh thế vẫn là chủ đề cho nghiên cứu và phát triển. Việc sử dụng hệ thống nhóm và các đặc tính nên mở rộng nh mạng vùng l u trữ (storage-area networks-SANs) chiếm u thế. SANs cho phép gán dễ dàng nhiều máy chủ tới nhiều đơn vị l u trữ. Các nhóm hiện tại th ờng bị giới hạn tới hai hay bốn máy chủ do sự phức tạp của nối kết các máy chủ tới thiết bị l u trữ đ ợc chia sẻ. IX H thời thực Một dạng khác của hệ điều hành có mục đích đặc biệt là hệ thời thực (real-time system). Hệ thời thực đ ợc dùng khi các yêu cầu thời gian khắt khe đ ợc đặt trên thao tác của một bộ xử lý hay dòng dữ liệu; do đó, nó th ờng đ ợc dùng nh một thiết bị điều khiển trong một ứng dụng tận hiến. Các bộ cảm biến mang dữ liệu tới máy tính. Máy tính phải phân tích dữ liệu và có thể thích ứng các điều khiển để hiệu chỉnh các dữ liệu nhập cảm biến. Các hệ thống điều khiển các thí nghiệm khoa học, hệ thống ảnh hoá y tế, hệ thống điều khiển công nghệ và các hệ thống hiển thị,... Các hệ thống phun dầu động cơ ôtô, các bộ điều khiển dụng cụ trong nhà, hệ thống vũ khí cũng là các hệ thống thời thực. Một hệ thống thời thực có sự ràng buộc cố định, rõ ràng. Xử lý phải đ ợc thực hiện trong phạm vi các ràng buộc đ ợc định nghĩa hay hệ thống sẽ thất bại. Một hệ thời thực thực hiện đúng chức năng chỉ nếu nó trả về kết quả đúng trong thời gian ràng buộc. T ơng phản với yêu cầu này trong hệ chia thời, ở đó nó mong muốn (nh ng không bắt buộc) đáp ứng nhanh, hay đối với hệ thống bó, nó không có ràng buộc thời gian gì cả. Hệ thời thực có hai dạng: cứng và mềm. Hệ thời thực cứng đảm bảo rằng các tác vụ tới hạn đ ợc hoàn thành đúng giờ. Mục tiêu này đòi hỏi tất cả trì hoãn trong hệ thống bị giới hạn, từ việc lấy lại dữ liệu đ ợc l u trữ thời gian hệ điều hành hoàn thành bất cứ yêu cầu cho nó. Các ràng buộc thời gian nh thế ra lệnh các ph ơng tiện sẳn có trong hệ thời thực cứng. Thiết bị l u trữ phụ của bất cứ thứ hạng nào th ờng bị giới hạn hay bị mất với dữ liệu đang đ ợc l u trong bộ nhớ l u trữ ngắn hạn (shortterm memory) hay trong bộ nhớ chỉ đọc (ROM). Hầu hết các hệ điều hành hiện đại Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 12 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 không cung cấp đặc điểm này vì chúng có khuynh h ớng tách rời ng ời dùng từ phần cứng và sự tách rời này dẫn đến l ợng thời gian không xác định mà thao tác sẽ mất. Thí dụ, bộ nhớ ảo hầu nh ch a bao giờ thấy trong hệ thời thực. Do đó, những hệ thời thực cứng xung đột với thao tác của hệ chia thời và hai hệ này không thể đan xen nhau. Vì không có hệ điều hành đa mục đích đã có hỗ trợ chức năng thời thực cứng; chúng ta không tập trung với loại hệ thống này trong ch ơng này. Một loại thời thực ít hạn chế hơn là hệ thời thực mềm, ở đó tác vụ thời thực tới hạn có độ u tiên hơn các tác vụ khác và duy trì độ u tiên đó cho đến khi chúng hoàn thành. Nh trong hệ thời thực cứng, sự trì hoãn nhân (kernel) của hệ điều hành trì hoãn yêu cầu đ ợc giới hạn. Một tác vụ thời thực không thể giữ việc chờ không xác định đối với nhân để thực thi. Thời thực mềm là mục tiêu có thể đạt đ ợc và có thể đ ợc đan xen với các loại hệ thống khác. Tuy nhiên, hệ thời thực mềm có những tiện ích giới hạn hơn hệ thời thực cứng. Vì không hỗ trợ tốt cho thời điểm tới hạn, nên hệ thời thực mềm dễ gây rủi ro khi dùng cho việc kiểm soát công nghệ và tự động hoá. Tuy nhiên, chúng có ích trong nhiều lĩnh vực nh đa ph ơng tiện, thực tế ảo, dự án khoa học tiên tiến-nh khám phá trong lòng đại d ơng và khám phá hành tinh. Những hệ thống này cần những đặc điểm hệ điều hành tiên tiến mà không đ ợc hỗ trợ bởi hệ thời thực cứng. Vì việc sử dụng chức năng thời thực mềm đ ợc mở rộng nên chúng ta đang tìm cách đ a chúng vào trong hầu hết các hệ điều hành hiện tại, gồm các ấn bản chính thức của UNIX. X H xách tay Hệ xách tay gồm các máy hỗ trợ cá nhân dùng kỹ thuật số (personal digital assistants-PDAs) nh Palm hay điện thoại di động (cellular telephone) với nối kết tới mạng nh Internet. Những ng ời phát triển hệ xách tay và ứng dụng gặp phải nhiều thử thách, nhất là sự giới hạn về kích th ớc của thiết bị. Thí dụ, một PDA điển hình cao khoảng 5 inches và rộng khoảng 3 inches và trọng l ợng của nó ít hơn 0.5 pound. Do sự giới hạn về kích th ớc này, hầu hết các thiết bị xách tay có bộ nhớ nhỏ gồm các bộ xử lý thấp và màn hình hiển thị nhỏ. Bây giờ chúng ta sẽ xem xét mỗi sự giới hạn này. Nhiều thiết bị xách tay có dung l ợng bộ nhớ 512KB và 8 MB (ng ợc lại, các máy PC hay trạm làm việc có hàng trăm MB bộ nhớ). Do đó, hệ điều hành và các ứng dụng phải quản lý bộ nhớ hiệu quả. Điều này gồm trả về tất cả bộ nhớ đ ợc cấp phát tới bộ quản lý bộ nhớ một khi bộ nhớ không còn đ ợc dùng nữa. Hiện nay, nhiều thiết bị xách tay không dùng kỹ thuật bộ nhớ ảo do đó buộc ng ời phát triển ch ơng trình làm việc trong phạm vi giới hạn của bộ nhớ vật lý. Vấn đề thứ hai quan tâm đến ng ời phát triển các thiết bị xách tay là tốc độ của bộ xử lý đ ợc dùng trong thiết bị. Các bộ xử lý đối với hầu hết các thiết bị xách tay th ờng chạy với tốc độ chỉ bằng một phần tốc độ của một bộ xử lý trong máy PC. Các bộ xử lý nhanh hơn yêu cầu điện năng nhiều hơn. Để chứa một bộ xử lý nhanh hơn bên trong thiết bị xách tay nên yêu cầu nhiều pin hơn hơn và phải đ ợc nạp lại th ờng xuyên. Để tối thiểu hoá kích th ớc của các thiết bị xách tay đòi hỏi bộ xử lý nhỏ hơn, chậm hơn tiêu thụ ít điện năng hơn. Do đó, hệ điều hành và các ứng dụng phải đ ợc thiết kế không đòi hỏi sử dụng nhiều bộ xử lý. Vấn đề cuối cùng gây khó khăn cho ng ời thiết kế ch ơng trình cho các thiết bị xách tay là màn hình hiển thị nhỏ. Trong khi một màn hình cho máy tính ở nhà kích th ớc có thể 21 inches, màn hình cho thiết bị xách tay th ờng có diện tích không quá 3 inches. Những tác vụ quen thuộc nh đọc e-mail hay hiển thị các trang web, phải đ ợc cô đọng vào màn hình nhỏ hơn. Một ph ơng pháp để hiển thị nội dung các trang Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 13 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 web là cắt xén web (web clipping), ở đó chỉ một tập hợp nhỏ trang web đ ợc phân phát và hiển thị trên thiết bị xách tay. Một số thiết bị xách tay có thể dùng công nghệ không dây nh BlueTooth, cho phép truy xuất từ xa tới e-mail và trình duyệt web. Các điện thoại di động với nối kết Internet thuộc loại này. Tuy nhiên, nhiều PDAs hiện tại không cung cấp truy xuất không dây. Để tải dữ liệu xuống các thiết bị này, tr ớc tiên ng ời dùng tải dữ liệu xuống PC hay trạm và sau đó tải dữ liệu xuống PDA. Một số PDA cho phép dữ liệu chép trực tiếp từ một thiết bị này tới thiết bị khác dùng liên kết hồng ngoại. Nhìn chung, các giới hạn trong chức năng của PDA đ ợc cân bằng bởi những tiện dụng và linh động của chúng. Việc sử dụng chúng tiếp tục mở rộng khi các nối kết mạng trở nên sẳn dùng và các chọn lựa khác nh máy ảnh và MP3 players, mở rộng tiện ích của chúng. XI Tóm tắt Hệ điều hành đ ợc phát triển hơn 45 năm qua với hai mục đích chính. Mục đích thứ nhất, hệ điều hành cố gắng lập thời biểu các hoạt động tính toán để đảm bảo năng lực thực hiện của hệ thống là tốt. Mục đích thứ hai, nó cung cấp một môi tr ờng tiện dụng để phát triển và thực thi ch ơng trình. Ban đầu, hệ thống máy tính đ ợc dùng từ một màn hình và bàn phím (thiết bị đầu cuối). Các phần mềm nh bộ hợp ngữ (assembler), bộ nạp (loader), bộ liên kết (linkers) và các trình biên dịch (compiler) cải tiến sự tiện dụng của việc lập trình hệ thống nh ng cũng yêu cầu thời gian thiết lập đáng kể. Để giảm thời gian thiết lập, các ph ơng tiện thuê ng ời điều hành và các công việc tuơng tự đ ợc bó. Các hệ thống xử lý theo lô cho phép sắp xếp công việc tự động bởi hệ điều hành và cải tiến rất nhiều việc tận dụng toàn bộ máy tính. Máy tính không còn phải chờ các thao tác của ng ời dùng. Tuy nhiên, việc tận dụng CPU vẫn còn thấp vì tốc độ của thiết bị xuất nhập thấp hơn nhiều so với tốc độ của CPU. Thao tác ngoại vi (off-line operation) của các thiết bị chậm cung cấp một ph ơng tiện sử dụng nhiều hệ thống bộ đọc tới băng từ (reader-to-tape) và băng từ tới máy in (tape-to-printer) cho một CPU. Để cải tiến toàn bộ năng lực thực hiện của hệ thống máy tính, ng ời phát triển giới thiệu khái niệm đa ch ơng để mà nhiều công việc có thể đ ợc giữ cùng lúc trong bộ nhớ tại cùng một thời điểm. CPU đ ợc chuyển qua lại giữa chúng để gia tăng việc tận dụng CPU và giảm toàn bộ thời gian đ ợc yêu cầu để thực thi các công việc. Đa ch ơng cũng cho phép chia sẻ thời gian. Hệ điều hành chia sẻ thời gian cho phép nhiều ng ời dùng (từ một tới vài trăm) sử dụng hệ thống máy tính giao tiếp tại cùng một thời điểm. PC là máy vi tính; chúng xem nh nhỏ hơn và rẻ hơn hệ thống mainframe. Các hệ điều hành cho các máy tính này lợi hơn việc phát triển hệ điều hành cho máy tính mainframe trong nhiều cách. Tuy nhiên, vì mỗi cá nhân là ng ời dùng duy nhất sử dụng máy tính nên việc tận dụng CPU không còn là mối quan tâm chủ yếu. Do đó, một vài quyết định thiết kế đ ợc thực hiện cho hệ điều hành cho máy mainframe có thể không phù hợp cho cả hệ thống nhỏ và lớn, hiện nay khi các PCs có thể đ ợc nối kết tới các máy tính khác và ng ời dùng thông qua mạng và Web. Các hệ song song có nhiều hơn một CPU trong giao tiếp gần; các CPU chia sẻ bus máy tính và đôi khi chia sẻ bộ nhớ và các thiết bị ngoại vi. Những hệ thống nh thế có thế cung cấp thông l ợng và khả năng tin cậy tăng. Các hệ thống phân tán cho phép chia sẻ tài nguyên trên những máy chủ đ ợc phân tán về mặt địa lý. Các hệ thống đ ợc nhóm cho phép nhiều máy thực hiện việc tính toán trên dữ liệu đ ợc chứa trên Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 14 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 thiết bị l u trữ chia sẻ và để việc tính toán tiếp tục trong tr ờng hợp lỗi của tập hợp con các thành viên nhóm. Một hệ thời thực cứng th ờng đ ợc dùng nh một thiết bị điều khiển trong một ứng dụng tận hiến. Một hệ điều hành thời thực cứng có ràng buộc hoàn toàn xác định và thời gian cố định. Xử lý phải đ ợc thực hiện trong các ràng buộc đ ợc xác định hoặc hệ thống sẽ bị lỗi. Các hệ thống thời thực mềm có ràng buộc thời gian ít nghiêm khắc hơn và không hỗ trợ thời biểu tới hạn. Gần đây sự tác động của Internet và World Wide Web khuyến khích sự phát triển của các hệ điều hành hiện đại. Các hệ điều hành này chứa các trình duyệt Web, mạng và phần mềm truyền thông nh là các đặc điểm tích hợp. Chúng ta đã thể hiện tiến trình luận lý của sự phát hệ điều hành, đ ợc định h ớng bởi sự bao gồm các đặc điểm trong phần cứng CPU đ ợc yêu cầu cho chức năng tiên tiến. Xu h ớng này có thể đ ợc thấy ngày nay trong cuộc cách mạng của PC, với phần cứng ngày một rẻ hơn và đang đ ợc cải tiến đủ để cho phép cải tiến các đặc điểm. Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 15