Bài giảng Hệ điều hành - Nguyễn Thị Thùy Linh
1.1. MỤC TIÊU
Sau khi học xong chƣơng này, ngƣời học nắm đƣợc các kiến thức sau:
- Hiểu chức năng của hệ điều hành trong hệ thống máy tính
- Biết phân loại hệ điều hành
- Biết hệ điều hành phát triển qua nhiều giai đoạn
- Các thành phần bên trong hệ điều hành
- Các dịch vụ mà hệ điều hành cung cấp
- Biết đƣợc cấu trúc các hệ điều hành
Bài học này cung cấp cho chúng ta một cái nhìn tổng quát về những nguyên lý cơ
bản của hệ điều hành. Chúng ta bắt đầu với việc xem x t mục tiêu và các chức năng
của hệ điều hành, sau đó phân loại chúng và tìm hiểu quá trình phát triển hệ điều hành
qua từng giai đoạn. Phân biệt các thành phần hệ thống và các thành phần bên trong hệ
điều hành. Thông qua các 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 cũng nhƣ các dịch vụ mà hệ điều hành cung
cấp, cuối cùng là khảo sát các cấu trúc khác nhau của các hệ điều hành.
1.2. KHÁI NIỆM VỀ HỆ ĐIỀU HÀNH
Hệ điều hành là một chƣơng trình hệ thống hay một hệ chƣơng trình đóng vai tr
trung gian giữa ngƣời dùng máy tính và phần cứng máy tính. Mục tiêu của hệ điều
hành là cung cấp một môi trƣờng thuận lợi để ngƣời dùng d dàng thực hiện các
chƣơng trình ứng dụng của họ trên máy tính và khai thác triệt để các chức năng phần
cứng máy tính.
Hệ điều hành là một phần quan trọng của hầu hết các hệ thống máy tính. Một hệ
thống máy tính thƣờng đƣợc chia làm bốn phần chính: phần cứng, hệ điều hành, các
chƣơng trình ứng dụng và ngƣời dùng (user).
Phần cứng bao gồm bộ xử lý, bộ nhớ, các thiết bị nhập xuất, đây là những tài
nguyên cơ bản của máy tính. Chương trình ứng dụng nhƣ các chƣơng trình dịch trong
ngôn ngữ lập trình Pascal, C, , hệ thống cơ sở dữ liệu (Access, SQL), các chƣơng9
trình tr chơi, và các chƣơng trình thƣơng mại. Các chƣơng trình này sử dụng tài
nguyên của máy tính để giải quyết các yêu cầu của ngƣời dùng. Hệ điều hành làm
nhiệm vụ điều khiển và phối hợp việc sử dụng phần cứng cho những ứng dụng khác
nhau của nhiều người dùng khác nhau bao gồm cả thiết bị đầu cuối, hệ thống máy tính
khác). Hệ điều hành cung cấp một môi trƣờng mà các chƣơng trình có thể làm việc hữu
hiệu trên đó.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Tóm tắt nội dung tài liệu: Bài giảng Hệ điều hành - Nguyễn Thị Thùy Linh
Bộ định thời biểu nhập/xuất sắp xếp lại thứ tự của hàng đợi để cải tiến toàn bộ tính hiệu quả hệ thống và thời gian đáp ứng trung bình dựa theo kinh nghiệm bởi ứng dụng. Hệ điều hành cũng cố gắng giữ bình đẳng để mà không ứng dụng nào nhận đƣợc dịch vụ nghèo nàn hay nó cho dịch vụ ƣu tiên đối với các yêu cầu trì ho n nhạy cảm. Thí dụ, các yêu cầu từ hệ thống con bộ nhớ ảo có thể lấy độ ƣu tiên qua các yêu cầu của ứng dụng. Một cách mà hệ thống con nhập/xuất cải tiến tính hiệu quả của máy tính là bằng cách định thời biểu các hoạt động nhập/xuất. Một cách khác là dùng không gian lƣu trữ trong bộ nhớ chính hay trên đĩa, với các kỹ thuật đƣợc gọi là vùng đệm, vùng lƣu trữ và vùng chứa. 5.5.2. Vùng đệm Vùng đệm là một vùng bộ nhớ lƣu trữ dữ liệu trong khi chúng đƣợc chuyển giữa hai thiết bị hay giữa thiết bị và ứng dụng. Vùng đệm đƣợc thực hiện với 3 lý do. Thứ nh t là đối phó với việc không tƣơng thích về tốc độ giữa ngƣời sản xuất và ngƣời tiêu dùng của d ng dữ liệu. Thứ hai cho việc sử dụng vùng là làm thích ứng giữa các thiết bị có kích thƣớc truyền dữ liệu khác nhau. Thứ ba cho việc dùng vùng đệm là hỗ trợ ngữ nghĩa sao ch p cho nhập/xuất ứng dụng. 5.5.3. Vùng lưu trữ Vùng lƣu trữ cache là một vùng bộ nhớ nhanh quản lý các bản sao dữ liệu. Truy xuất tới một bản sao đƣợc lƣu trữ hiệu quả hơn truy xuất tới bản gốc. Ví dụ, các chỉ thị của quá trình hiện đang chạy đƣợc lƣu trên đĩa, đƣợc lƣu trữ trong bộ nhớ vật lý và đƣợc sao ch p một lần nữa trong vùng lƣu trữ phụ và chính. Sự khác nhau giữa vùng đệm là vùng lƣu trữ là vùng đệm có thể giữ chỉ bản sao của thành phần dữ liệu đ có, ngƣợc lại một vùng lƣu trữ giữ vừa đủ một bản sao trên thiết bị lƣu trữ nhanh hơn của một thành phần nằm ở một nơi nào khác.Vùng lƣu trữ và vùng đệm có chức năng khác nhau nhƣng đôi khi một vùng bộ nhớ có thể đƣợc dùng cho cả hai mục đích. 303 5.5.4. Vùng chứa Một vùng chứa spool là một vùng đệm giữ dữ liệu xuất cho một thiết bị nhƣ máy in mà không thể chấp nhận các d ng dữ liệu đan xen nhau. Mặc dù một máy in có thể phục vụ chỉ một công việc tại một thời điểm, nhƣng nhiều ứng dụng muốn in đồng thời mà không có dữ liệu xuất của chúng đan xen với nhau. Hệ điều hành giải quyết vấn đề này bằng cách ngăn chặn tất cả dữ liệu xuất tới máy in. Dữ liệu xuất của mỗi ứng dụng đƣợc chứa trong một tập tin riêng. Khi một ứng dụng kết thúc việc in, hệ thống vùng chứa xếp tập tin chứa tƣơng ứng cho dữ liệu xuất tới máy in. Hệ thống vùng chứa ch p các tập tin đƣợc xếp hàng tới máy in một tập tin tại một thời điểm. Trong một hệ điều hành, vùng chứa đƣợc quản lý bởi một quá trình hệ thống chạy ở chế độ nền. Trong một số hệ điều hành khác, nó đƣợc quản lý bởi luồng nhân. Trong mỗi trƣờng hợp, hệ điều hành cung cấp một giao diện điều khiển cho ph p ngƣời dùng và ngƣời quản trị hệ thống hiển thị hàng đợi để xóa các công việc không mong muốn trƣớc khi các công việc đó in, để tạm dừng việc in trong khi máy in đƣợc phục vụ,.. 5.5.5. Quản lý lỗi Một hệ điều hành sử dụng bộ nhớ bảo vệ có thể chống lại nhiều lỗi phần cứng và ứng dụng vì thế một lỗi toàn hệ thống không là kết quả của mỗi sự trục trặc cơ học thứ yếu. Các thiết bị và truyền nhập/xuất có thể bị lỗi trong nhiều cách, có thể là các lý do tạm thời nhƣ mạng trở nên quá tải, hay các lý do thƣờng xuyên nhƣ trình điều khiển đĩa bị lỗi. Các hệ điều hành thƣờng trả giá cho tính hiệu quả vì các lỗi tạm thời. Ví dụ, lỗi đọc đĩa read dẫn đến cố gắng làm lại read và lỗi gởi dữ liệu trên mạng send dẫn tới việc gởi lại resend nếu giao thức đƣợc xác định rõ. Tuy nhiên, nếu một thành phần quan trọng bị lỗi thƣờng xuyên thì hệ điều hành không nghĩ đến việc phục hồi. Nhƣ một qui tắc thông thƣờng, một lời gọi hệ thống nhập/xuất trả về 1 bit của thông tin về trạng thái của lời gọi, biểu thị thành công hay thất bại. Trong hệ điều hành UNIX, một biến nguyên có tên errno đƣợc dùng để trả về một m lỗi-một trong 100 giá trị-hiển thị tính tự nhiên của lỗi ví dụ: đối số vƣợt quá giới hạn, lỗi con trỏ, tập tin không thể mở,.. . Ngƣợc lại, một số phần cứng cung cấp thông tin lỗi đƣợc mô tả chi tiết mặc dù nhiều hệ điều hành hiện tại không đƣợc thiết kế để truyền đạt thông tin này tới ứng dụng. 304 5.5.6. Cấu tr c dữ liệu nhân Nhân cần giữ thông tin trạng thái về việc dùng các thành phần nhập/xuất. Nó thực hiện nhƣ thế thông qua một d y các cấu trúc dữ liệu trong nhân nhƣ bảng tập tin đang mở. Nhân dùng nhiều cấu trúc tƣơng tự để ghi vết các nối kết mạng, giao tiếp thiết bị dạng ký tự và các hoạt động nhập/xuất khác. Tóm lại, hệ thống con nhập/xuất điều phối tập hợp dịch vụ mở rộng sẵn có đối với ứng dụng và những phần khác của nhân. Hệ thống con nhập/xuất điều khiển: Quản lý không gian tên cho các tập tin và các thiết bị Điều khiển truy xuất tới các tập tin và các thiết bị Điều khiển hoạt động ví dụ, một modem không thể tìm seek Cấp phát không gian hệ thống tập tin Cấp phát thiết bị Vùng đệm, vùng lƣu trữ và vùng chứa Định thời biểu nhập/xuất Điều khiển trạng thái thiết bị, quản lý lỗi, và phục hồi lỗi Cấu hình và khởi tạo trình điều khiển thiết bị Cấp cao hơn của hệ thống con nhập/xuất truy xuất thiết bị qua giao diện đồng nhất đƣợc cung cấp bởi các trình điều khiển thiết bị. 5.6. CHUYỂN NHẬP/XUẤT TỚI HOẠT ĐỘNG PHẦN CỨNG Phần trƣớc chúng ta mô tả việc bắt tay giữa một trình điều khiển thiết bị và bộ điều khiển thiết bị, nhƣng chúng ta không giải thích cách hệ điều hành nối kết yêu cầu ứng dụng tới tập hợp dây mạng hay một sector đĩa xác định nhƣ thế nào. Ví dụ: Một ứng dụng muốn đọc một tập tin từ đĩa. Nó tham chiếu tới dữ liệu bằng tên tập tin. Trong một đĩa, hệ thống tập tin ánh xạ từ tên tập tin thông qua các thƣ mục hệ thống tập tin để lấy không gian cấp phát của tập tin. Các hệ điều hành hiện đại đạt đƣợc khả năng linh hoạt cao từ nhiều giai đoạn của bảng tra cứu trong đƣờng dẫn giữa yêu cầu và bộ điều khiển thiết bị vật lý. Các cơ chế truyền yêu cầu giữa ứng dụng và trình điều khiển là phổ biến. Do đó, chúng ta có thể giới thiệu các thiết bị mới và trình điều khiển vào máy tính mà không biên dịch lại nhân. Thật vậy, một số hệ điều hành có khả năng nạp trình điều khiển thiết bị theo yêu cầu. Tại thời điểm khởi động, hệ thống đầu tiên thăm d các bus phần cứng để xác định 305 thiết bị nào hiện diện và sau đó hệ thống nạp các trình điều khiển cần thiết ngay lập tức hay khi đƣợc yêu cầu bởi một yêu cầu nhập/xuất đầu tiên. Bây giờ chúng ta mô tả chu trình sống điển hình của một yêu cầu đọc bị nghẽn, nhƣ trong Hình 5.6. Hình này đề nghị rằng một thao tác nhập/xuất yêu cầu nhiều bƣớc và tiêu tốn số lƣợng lớn chu kỳ CPU. 1) Một quá trình phát ra một lời gọi hệ thống read tới bộ mô tả tập tin đ đƣợc mở trƣớc đó. 2) M lời gọi hệ thống trong nhân kiểm tra tính đúng đắn của các tham số. Trong trƣờng hợp nhập, nếu dữ liệu đ có sẵn trong vùng đệm thì dữ liệu đƣợc trả về tới quá trình và yêu cầu nhập/xuất đƣợc hoàn thành. 3) Ngƣợc lại, nhập/xuất vật lý cần đƣợc thực hiện để mà quá trình đƣợc xóa từ hàng đợi thực thi và đƣợc đặt vào hàng đợi chờ thiết bị, và yêu cầu nhập/xuất đƣợc lập thời biểu. Cuối cùng, hệ con nhập/xuất gởi yêu cầu tới trình điều khiển thiết bị. Phụ thuộc vào hệ điều hành, yêu cầu đƣợc gởi bằng lời gọi thủ tục con hay bằng thông điệp trong nhân. 4) Trình điều khiển thiết bị cấp phát vùng đệm nhân để nhận dữ liệu và lập thời biểu nhập/xuất. Cuối cùng, trình điều khiển gởi lệnh tới bộ điều khiển thiết bị bằng cách viết vào thanh ghi điều khiển của thiết bị. 5) Trình điều khiển thiết bị thao tác trên phần cứng thiết bị để thực hiện truyền dữ liệu. 6) Trình điều khiển có thể thăm d trạng thái và dữ liệu hay thiết lập truyền DMA vào bộ nhớ nhân. Chúng ta thừa nhận rằng truyền đƣợc quản lý bởi bộ điều khiển DMA sinh ra một ngắt khi việc truyền hoàn thành. 7) Bộ quản lý ngắt tƣơng ứng nhận ngắt bằng bằng vector ngắt, lƣu bất cứ dữ liệu cần thiết, báo hiệu trình điều khiển thiết bị và trả về từ ngắt. 8) Trình điều khiển thiết bị nhận tín hiệu, xác định yêu cầu nhập/xuất hoàn thành, xác định trạng thái yêu cầu và báo hiệu cho hệ con nhập/xuất nhân rằng yêu cầu đ hoàn thành. 9) Nhân truyền dữ liệu hay trả về m tới không gian địa chỉ của quá trình đƣợc yêu cầu và di chuyển quá trình từ hàng đợi chờ tới hàng đợi sẵn sàng. Di chuyển quá trình tới hàng đợi sẵn sàng không làm nghẽn quá trình. Khi bộ định thời 306 biểu gán quá trình tới CPU, quá trình tiếp tục thực thi tại thời điểm hoàn thành của lời gọi hệ thống. Hình 5.6. Chu trình sống của y u cầu nh p/xu t28 28 Nguy n Phú Trƣờng, Giáo trình hệ điều hành, ĐH Cần Thơ, 2005, Tr.251 307 5.7. N NG LỰC Nhập/xuất là một yếu tố quan trọng trong năng lực hệ thống. Nó đặt nhiều yêu cầu trên CPU để thực thi m trình điều khiển thiết bị và định thời biểu quá trình công bằng và hiệu quả khi các quá trình này nghẽn và không nghẽn. Chuyển đổi ngữ cảnh chú trọng đến CPU và vùng lƣu trữ phần cứng. Nhập/xuất cũng hiển thị tính không hiệu quả trong các cơ chế quản lý ngắt trong nhân, và nhập/xuất tải xuống bus bộ nhớ trong suốt thời gian sao ch p giữa vùng đệm nhân và không gian dữ liệu ứng dụng. Ch p một cách hợp lý tất cả yêu cầu này là một trong những quan tâm chính của kiến trúc máy tính. Mặc dù các máy tính hiện đại có thể quản lý hàng ngàn ngắt trên giây, quản lý ngắt là một công việc tƣơng đối đắt: mỗi ngắt gây cho hệ thống thực hiện một thay đổi trạng thái, để thực thi bộ quản lý ngắt và sau đó phục hồi trạng thái. Nhập/xuất đƣợc lập trình có thể hiệu quả hơn nhập/xuất hƣớng ngắt nếu số chu kỳ tiêu tốn cho việc chờ đợi bận là không quá mức. Hoàn thành một thao tác nhập/xuất không nghẽn một quá trình dẫn đến toàn bộ chi phí của việc chuyển đổi ngữ cảnh. Có nhiều nguyên tắc để cải tiến tính hiệu quả của nhập/xuất: Cắt giảm số lƣợng chuyển ngữ cảnh Cắt giảm số lần dữ liệu phải đƣợc ch p vào bộ nhớ trong khi truyền giữa thiết bị và ứng dụng. Cắt giảm tần số xuất hiện ngắt bằng cách dùng sự truyền lớn, bộ điều khiển thông tin và vùng chứa nếu chờ đợi bận có thể là nhỏ nhất . Gia tăng tính đồng hành dùng các bộ điều khiển tri thức DMA hay các kênh để giảm gánh nặng ch p dữ liệu đơn giản từ CPU. Di chuyển các hàm xử lý cơ bản vào phần cứng, để cho ph p họat động của chúng trong các bộ điều khiển thiết bị đồng hành với các thao tác CPU và bus. Cân bằng CPU, hệ con bộ nhớ, bus và năng lực nhập/xuất vì quá tải trong một vùng bất kỳ sẽ gây rảnh rỗi trong vùng khác. Ở đây các chức năng nhập/xuất nên đƣợc cài đặt: trong phần cứng thiết bị, trong trình điều khiển thiết bị hay trong phần mềm ứng dụng? Chúng ta quan sát tiến trình đƣợc mô tả trong Hình 5.7. 308 Hình 5.7. Tiến trình mô t chức năng thiết bị Khởi đầu, chúng ta cài đặt giải thuật nhập/xuất thử nghiệm tại cấp ứng dụng vì m ứng dụng là linh hoạt và những lỗi ứng dụng là chƣa chắc gây ra sự sụp đổ hệ thống. Ngoài ra, bằng phát triển m tại cấp ứng dụng, chúng ta tránh yêu cầu khởi động hay nạp lại trình điều khiển thiết bị sau mọi thay đổi tới m . Tuy nhiên, cài đặt cấp ứng dụng có thể không đủ vì chi phí chuyển ngữ cảnh và vì ứng dụng không thể lấy lợi điểm của những cấu trúc dữ liệu nhân bên trong và chức năng nhân nhƣ truyền thông điệp hữu hiệu trong nhân, luồng và khóa . Khi một giải thuật cấp ứng dụng chứng minh tính giá trị của nó, chúng ta có thể cài đặt lại nó trong nhân. Điều này có thể cải tiến năng lực nhƣng nỗ lực phát triển có thử thách nhiều hơn vì nhân hệ điều hành lớn, phần mềm hệ thống phức tạp. Ngoài ra, việc cài đặt trong nhân phải đƣợc gỡ rối toàn bộ để tránh hƣ hỏng dữ liệu và sụp đổ hệ thống. Năng lực cao nhất có thể đạt đƣợc bởi cài đặt chuyên dụng trong phần cứng, trong thiết bị hay trong bộ điều khiển. Sự bất lợi của việc cài đặt phần cứng gồm khó 309 khăn và chi phí của việc tạo những cải tiến xa hơn hay sửa lỗi, thời gian phát triển tăng và khả năng linh hoạt giảm. 5.8. TÓM TẮT Các thành phần phần cứng cơ bản đƣợc nạp vào nhập/xuất là các bus, các bộ điều khiển thiết bị, và chính các thiết bị. Công việc chuyển dữ liệu giữa thiết bị và bộ nhớ chính đƣợc thực hiện bởi CPU khi nhập/xuất đƣợc lập trình, hay đƣợc chuyển tải tới bộ điều khiển DMA. Module nhân điều khiển một thiết bị là một trình điều khiển thiết bị. Giao diện lời gọi hệ thống cung cấp tới ứng dụng đƣợc thiết kế để quản lý nhiều chủng loại cơ bản của phần cứng, sockets mạng và bộ đếm thời gian đến đƣợc lập trình. Hệ con nhập/xuất của nhân cung cấp nhiều dịch vụ. Các dịch vụ này là định thời biểu nhập/xuất, vùng đệm, vùng chứa, quản lý lỗi và đặt trƣớc thiết bị. Một dịch vụ khác là dịch tên, để tạo nối kết giữa các thiết bị phần cứng và tên tập tin tƣợng trƣng đƣợc dùng bởi ứng dụng. Nó liên quan nhiều cấp ánh xạ mà dịch từ tên chuỗi ký tự tới một trình điều khiển thiết bị xác định và địa chỉ thiết bị và sau đó tới địa chỉ vật lý của cổng nhập/xuất hay bộ điều khiển bus Các lời gọi hệ thống nhập/xuất tính chi phí theo thuật ngữ tiêu tốn CPU vì nhiều lớp phần mềm giữa thiết bị vật lý và ứng dụng. Các lớp này ngụ ý chi phí chuyển ngữ cảnh để đi qua phạm vi bảo vệ của nhân, của tín hiệu và bộ quản lý ngắt để phục vụ các thiết bị nhập/xuất, và của tải trên CPU và hệ thống bộ nhớ để ch p dữ liệu giữa vùng đệm nhân và không gian ứng dụng. 310 Câu hỏi ôn tập 1. Tổ chức của hệ thống quản lý I/O nhƣ thế nào ? 2. Có bao nhiêu loại thiết bị I/O? Với mỗi loại cho ví dụ cụ thể. 3. Vai tr của bộ điều khiển thiết bị là gì? 4. Cơ chế hoạt động DMA nhƣ thế nào? 5. Có thể thực hiện I/O mà không sử dụng điều khiển thiết bị không? Tại sao? Câu hỏi trắc nghiệm 1. t ốn quản lý I/O của u n l : a. Một cơ chế trên mọi thiết bị tin học c. Bàn phím b. Một phần của hệ điều hành d. Máy in 2. t ốn quản lý I/O của một u n bao ồm : a. Phần cứng I/O và phần mềm I/O c. Kiểm soát ngắt b. DMA d. a, b, c đều sai. 3. DMA l v ết tắt của : a. Direct Management Access c. Direct Memory Access b. Direct Memory Application d. Direct Mainboard Access TÀI LIỆU TH M KHẢO [1] Nguyễn Kim Tuấn, Giáo trình Hệ điều hành, Đại học Huế, 2004. [2] Nguyễn Ph Trường, Giáo trình Hệ điều hành, Đại học Cần Thơ, 2005. 311 TÀI LIỆU TH M KHẢO [1] Trần Hạnh Nhi, Giáo trình hệ điều hành nâng cao, Đại học Khoa học Tự nhiên TP.HCM, 2004. [2] [Lê Khắc Nhiên n, Hoàng Kiếm], Giáo trình Nh p môn hệ điều hành, Đại học Khoa học Tự nhiên, TP.HCM 2004. [3] Nguyễn Kim Tuấn, Giáo trình Hệ điều hành, Đại học Huế, 2004. [4] Nguyễn Ph Trường, Giáo trình Hệ điều hành, Đại học Cần Thơ, 2005. [5] Jean Bacon & Tim Harris, Operating Systems, Addison-Wesley, 2003. [6] Silberschatz, Galvin, Gagne, Operating System Concepts, John Wiley & Sons, 2003. 312
File đính kèm:
- bai_giang_he_dieu_hanh_nguyen_thi_thuy_linh.pdf