1. Trang chủ
  2. » Giáo án - Bài giảng

Hệ điều hành khái niệm và kỹ thuật

46 353 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 46
Dung lượng 403 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong cuốn sách này, chúng tôi lần đầu tiên thảo luận về một khía cạnh ít làm rõ của hệ điều hành, cụ thể là cách hệ điều hành tiếp quản phần cứng và trở thành chủ sở hữu nội bộ thực sự

Trang 1

Khái niệm và kỹ thuật

Hệ điều hành

M Naghibzadeh

Trang 2

2.1.1 Tự Kiểm Tra Nguồn 7

2.1.2 Logo của Nhà Sản Xuất BIOS 7

2.2 Tiến Trình Khởi Động Hệ Điều Hành 8

2.3 Các Cơ Chế Bảo Vệ 9

Trang 3

Lời Tựa

Máy tính được sử dụng rộng rãi trong hầu hết tất cả các hoạt động của người hiện đại ngày nay Chúng được sử dụng bởi người dân ở mọi lứa tuổi trong nhiều môi trường Chúng ta nhận thấy máy tính như là một tập hợp của các thiết bị như vỏ máy, màn hình, bàn phím, chuột,… được gọi chung là phần cứng Trong một phiên làm việc với máy tính, chúng ta bật

nó, chờ một vài phút cho đến khi nó sẵn sàng để sử dụng và sau đó bắt đầu yêu cầu hệ điều hành chạy chương trình mà chúng ta đã chọn Vì vậy, nó là chính xác để giả thiết rằng mỗi máy tính có một hệ điều hành

Hệ điều hành (OS) là chương trình thiết yếu nhất của tất cả mà không có nó thì trở trên hết sức cồng kềnh để làm việc với máy tính Nó là giao diện giữa phần cứng và chúng ta (tức là người dùng máy tính), nó làm cho việc sử dụng phần cứng dễ dàng và dễ chịu hơn nhiều Chúng ta tự mình làm quen với hệ điều hành và các dịch vụ của nó giúp chúng ta dùng máy tính hiệu quả hơn và làm tốt những công việc của chúng ta Với điều này trong tâm trí, chúng

ta cần biết các dịch vụ của hệ điều hành và làm thế nào để sử dụng chúng Bản thân hệ điều hành phải được viết sao cho nó có thể khai thác phần cứng hiệu quả nhất có thể Nhiều nỗ lực đã được đặt vào vấn đề này Từ khi máy tính được phát minh vào những năm 1940,

nhiều nhà khoa học đã cố gắng để làm cho phần mềm này thân thiện người dùng và hiệu quả cho hoạt động của phần cứng Kết quả cuối cùng thực sự là một kiệt tác sử dụng vô số sáng kiến và thành quả của nhiều công việc khó khăn

Có hàng chục hệ điều hành với kích thước và thương hiệu khác nhau, và hàng trăm cuốn sách hướng dẫn chúng ta cách sử dụng chúng Hơn nữa, nhiều nhà cải cách và nhiều tác giả

đã viết sách về giải thích các khái niệm thiết kế hệ điều hành Những độc giả dự kiến sau đó

là các chuyên gia hệ điều hành và sinh viên đại học đang tham gia các khoá học về các chủ

đề tương tự

Trong cuốn sách này, chúng tôi lần đầu tiên thảo luận về một khía cạnh ít làm rõ của hệ điều hành, cụ thể là cách hệ điều hành tiếp quản phần cứng và trở thành chủ sở hữu nội bộ thực sự của máy tính Kiến thức này cộng với một cái nhìn vĩ mô của những gì hệ điều hành làm và cách nó làm điều đó, cung cấp một cái nhìn sâu sắc và ưu việt để làm cho sử dụng tốt hơn các phương tiện tổng thể của máy tính Nó cũng cung cấp nền tảng cho một sự hiểu biết toàn diện hơn trong các khía cạnh phức tạp của hệ điều hành Sau đó, chúng ta chi tiết hoá các khái niệm, phương pháp và kỹ thuật được sử dụng trong thiết kế hệ điều hành

Cuốn sách này dành cho những ai đang sử dụng máy tính nhưng vẫn chưa thoải mái với cách

hệ điều hành quản lý các chương trình và các tài nguyên hiện có để thực hiện các yêu cầu một cách chính xác và nhanh chóng Các sinh viên đại học sẽ được hưởng lợi nhiều nhất khi

họ là những người bắt đầu sử dụng máy tính cho tất cả các loại hoạt động, bao gồm cả thư

Trang 4

điện tử, internet, chat, giáo dục, lập trình, nghiên cứu, chơi game,… Các sinh viên muốn biết thêm về chương trình ( được xem là chương trình nền) mà giúp để làm cho mọi thứ diễn

ra tự nhiên Nó đặc biệt mang lại lợi ích cho sinh viên đại học Công Nghệ Thông Tin, khoa Học Máy Tính, Kỹ Thuật Máy Tính Theo quan điểm của tôi, cuốn sách này chắc chắc phải được đọc bởi các sinh viên tham gia một khoá học hệ điều hành Nó cho một mô tả rõ ràng

về các khái niệm tiên tiến lần đầu tiên được phát minh và cách chúng thực hiện trong những

hệ điều hành hiện đại So với các sách giáo khoa đại học khác về chủ đề tương tự, cuốn sách này được cắt giảm bằng cách loại bỏ các cuộc thảo luận dài dòng về các chủ đề chỉ có giá trị lịch sử

Trong chương 1, một mô hình đơn giản của phần cứng máy tính được trình bày Chúng ta cố gắng không bao gồm bất kỳ chi tiết nào mà không liên quan trực tiếp tới mục tiêu của chúng

ta Chu trình tìm nạp-thi hành của các lệnh thực hiện được mô tả trong chương này

Trong chương 2, vai trò của BIOS trong kiểm tra hệ thống ban đầu và tiến trình khởi động hệ điều hành được giải thích Góc nhìn theo lớp của hệ điều hành được chi tiết hoá Phần Nhân (phần thiết yếu của mầm mống hệ điều hành) và vai trò của nó trong việc giúp đáp ứng nhu cầu của các lớp khác của hệ điều hành và người dùng máy tính được nói đến Một vấn đề quan trọng khác gọi là bảo mật và bảo vệ máy tính được giải thích

Chương 3 mô tả các lý do đằng sau đa lập trình, đa nhiệm, đa xử lý và đa luồng Các yêu cầu

cơ bản nhất để tạo điều kiện thuận lợi cho các kỹ thuật này cũng được thảo luận trong

chương này Một cuộc thảo luận ngắn gọn về các trạng thái tiến trình, sơ đồ chuyển trạng thái và truy cập bộ nhớ trực tiếp được cung cấp Các nền tảng cơ bản của phương pháp đa luồng và điểm giống và khác nhau của nó để đa lập trình được tô sáng

Chương 4 nói về các tiến trình Các câu hỏi quan trọng được trả lời trong chương này như là: tiến trình là gì? Tại sao và làm thế nào một tiến trình được tạo ra? Những thông tin gì chúng

ta cần giữ cho quản lý mỗi tiến trình? Một tiến trình chấm dứt như thế nào? Mối quan hệ giữa một tiến trình con và tiến trình bố mẹ của nó là gì? Khi nào một tiến trình chấm dứt? Một cuộc thảo luận ngắn gọn được bao gồm trên các thuộc tính của hệ điều hành dựa trên tiến trình Các kịch bản cuộc sống thực của chương này được dựa trên hệ điều hành UNIX là một hệ điều hành dựa trên tiến trình Chương này nhấn mạnh tiến trình như thực thể sống duy nhất của hệ điều hành dựa trên tiến trình Chuyển tiếp trạng thái có thể của các tiến trình được thảo luận và vai trò của hệ điều hành trong mỗi chuyển tiếp được giải thích

Chương 5 tập trung vào các luồng Mặc dù tồn tại các tiến trình, lý do cho việc sử dụng các luồng được giải thích cùng với mối quan hệ của nó tới các tiến trình Một số hệ điều hành dựa trên luồng Các chức năng Nhân của kiểu hệ điều hành này được thực hiện bởi tập hợp các luồng Ngoài ra, một luồng sơ cấp được sinh ra ngay khi tiến trình được tạo ra Các câu hỏi khác được nghiên cứu trong chương trình này như: luồng là gì? Tại sao và làm thế nào

Trang 5

một luồng được tạo ra? Những thông tin gì chúng ta cần giữ cho quản lý mỗi luồng? Một luồng chấm dứt như thế nào? Mối quan hệ giữa một luồng con và luồng bố mẹ của nó là gì? Khi nào một luồng chấm dứt? Ví dụ được lấy từ hệ điều hành Windows, các chuyển tiếp trạng thái có thể của các luồng được thảo luận và vai trò của hệ điều hành trong mỗi chuyển tiếp được giải thích.

Lập kế hoạch là chủ đề của chương 6 Đây là một trong những khái niệm có ảnh hưởng nhất trong việc thiết kế các hệ điều hành hiệu quả Đầu tiên, các thuật ngữ liên quan: thời gian yêu cầu, thời gian xử lý, ưu tiên, thời hạn, thời gian chờ và preemptability được định nghĩa ở đây Tiếp theo, các mục tiêu lập kế hoạch được thảo luận: tối đa hoá thông lượng, thời hạn đáp ứng, giảm thời gian chu kỳ quay trung bình, giảm thời gian đáp ứng trung bình, tôn trọng các ưu tiên, tối ưu hoá sử dụng tiến trình, cân bằng hệ thống, và công bằng Bốn hạng mục lập lịch biểu là: mức cao, mức trung bình, mức thấp, và mức I/O được phân biệt rõ ràng Nhiều thuật toán được dùng trong các tiến trình lập lịch biểu trong môi trường đơn bộ xử lý được khảo sát Chúng bao gồm: đến trước được phục vụ trước (FIFS), công việc ngắn nhât (SJF), tỉ lệ đáp ứng cao nhất, chia sẻ ngang hàng, và xoay tua (RR) Hầu hết các thuật toán lập lịch biểu này cũng có thể được dùng trong môi trường đa xử lý Lập lịch biểu theo nhóm cũng được kiểm tra cho các hệ thống đa xử lý Các thuật toán “Intelligent rate-monotonic” và

“thời hạn sớm nhất đầu tiên” được sử dụng rộng rãi trong lập lịch biểu của các hệ thống thời gian thực Các trình lập lịch biểu được giới thệu trong chương này Biểu diễn các nghiên cứu trường hợp được dựa trên Linux

Chương 7 khảo sát các chính sách quản lý bộ nhớ Giới thiệu ngắn gọn các chính sách cũ hơn như phân vùng liên kết đơn, phân vùng tĩnh, phân vùng động, và quản lý bộ nhớ phân đoạn Chính sách quản lý bộ nhớ ảo được thảo luận kế tiếp Quản lý bộ nhớ phân vùng tái định vị được và quản lý bộ nhớ trang cũng là hai đối tượng khác được bao gồm Trọng tâm của chương này là trên các chính sách quản lý bộ nhớ ảo Tất cả chúng đều là chính sách quản lý bộ nhớ ảo dựa trên trang được tuân theo bởi hầu hết các hệ điều hành hiện đại Một phần tốt của phần này được dành cho các thuật toán gỡ bỏ trang Bảng trang của các chương trình lớn chiếm một lượng lớn không gian bộ nhớ Chúng ta đã trình bày tổ chức bảng trang nhiều cấp như là một phương pháp để tận dụng ứng dụng của kỹ thuật bộ nhớ ảo tới các bảng trang khả dĩ Windows sử dụng một bảng trang 2 cấp và mô hình này được khảo sát chi tiết, như nghiên cứu trường hợp của chính sách bảng trang nhiều cấp Chúng ta cẩn thận nghiên cứu các kỹ thuật phiên dịch địa chỉ - đây là bộ phận thiết yếu của bất kỳ quản lý bộ nhớ trang nào cũng như các chính sách quản lý bộ nhớ yêu cầu trang Cả sự phân mảnh bên trong cũng như bên ngoài được nhìn vào Vào cuối chương, một phần bổ sung trong quản lý bộ nhớ đệm

là đặc trưng Thực tế kỹ thuật trình bày trong chương này được dựa trên UNIX

Các tiến trình chạy đồng thời cạnh tranh cho các tài nguyên máy tính Mỗi tiến trình thích chộp các tài nguyên của nó vào thời gian sớm nhất có thể Một hoà giải phải can thiệp để giải quyết xung đột Hoà giải đó là giao tiếp liên tiến trình/đồng bộ hoá hệ thống con của hệ điều

Trang 6

hành Điều kiện tranh đua, khu vực quan trọng, và khái niệm loại trừ lẫn nhau được định nghĩa trước tiên Nó đã được tìm thấy bằng cách đảm bảo loại trừ lẫn nhau, không xung đột tài nguyên chia sẻ trở thành khả dĩ Phương pháp để đạt được điều này được chia thành 5 lớp, cụ thể là: vô hiệu hoá ngắt, bận rộn – chờ đợi, mã hiệu, thiết bị hiển thị, và thông điệp Chúng ta đã bao gồm những phương pháp này để xử lý giao tiếp/đồng bộ hoá trong chương 8.

Bế tắc là một tác dụng phụ không mong muốn của việc đảm bảo loại trừ lẫn nhau Khái niệm này được giải thích và các cách đối phó với Bế tắc được thảo luận Phớt lờ Bế tắc, phòng ngừa Bế tắc, tránh né Bế tắc, phát hiện và phục hồi Bế tắc là 4 cách tiếp cận được thảo luận trong chương 9 Một tác dụng phụ ít quan trọng hơn là Thiếu ăn Tình thế khó xử của các nhà triết học ầm ĩ, như một ví dụ cổ điển của vấn đề giao tiếp liên tiến trình, được định

nghĩa Nó chỉ ra rằng các giải pháp đơn giản có thể gây ra Bế tắc và Thiếu ăn Chúng tôi đã cung cấp một giải pháp Bế tăc chấp nhận được và giải pháp không nhịn đói cho vấn đề này Trong ngữ cảnh này, khái niệm Thiếu ăn được làm sáng tỏ

Chương 10 được dành riêng cho phân hạng hệ điều hành và một giới thiệu tới các phương pháp luận mới trong thiết kế hệ điều hành Với nhứng tiến bộ trong công nghệ phần mềm, thiết kế hệ điều hành và thực thi cũng có tiến bộ Về phương diện này, các hệ điều hành nguyên khối, các hệ điều hành có cấu trúc, các hệ điều hành hướng đối tượng, và các hệ điều hành có tác nhân là những hệ điều hành đặc biệt Dựa vào các thực thể hành động, hệ điều hành được phân hạng như dựa trên tiến trình, dựa trên luồng, và dựa trên tác nhân Những sự khác nhau của các phạm trù này được làm nổi bật trong chương này Nhân là một phần quan trọng của mọi hệ điều hành Chúng tôi đã phân biệt giữa Nhân vĩ mô, Nhân vi mô và các Nhân có thể mở rộng được Thiết kế Nhân mở rộng được là một đề tài nghiên cứu mới và nhiều nỗ lực đang đi vào việc sản xuất thương mại các Nhân mở rộng được Thêm một phân hạng tham số nữa là cấu trúc phần cứng nằm dưới một hệ điều hành Nền tảng có thể là bộ đơn xử lý, bộ đa xử lý, hệ thống phân tán, hay internet Các thuộc tính của các hệ điều hành tương ứng được mô tả Các hệ thống thời gian thực yêu cầu các hệ điều hành đặc biệt cốt để cung cấp điều kiện cơ bản của dịch vụ cần thiết cho những môi trường này Các hệ điều hành thời gian thực và phi thời thời gian thực là những chủ đề cuối cùng được khảo sát trong chương này

Tôi muốn bày tỏ sự biết ơn tới sự khích lệ và động viên của vợ, con trai và con gái của tôi Những sự hỗ trợ của họ làm cho việc viết cuốn sách này là một điều hấp dẫn đối với tôi Ngoài ra, tôi muốn cám ơn Victoria Balderrama về sự hỗ trợ của cô ấy trong việc đính chính cuốn sách này

M Naghibzadeh

Trang 7

Chương 1 TỔ CHỨC PHẦN CỨNG MÁY TÍNH

Một máy tính gồm có một tập hợp các mô-đun phần cứng đúng mức được nối cùng nhau để tương tác theo cách mà toàn bộ hệ thống thì đáng tin cậy và thực hiện nhiệm vụ của nó trong một phương thức đúng đắn Hệ điều hành nằm trên phần cứng máy tính Nó sử dụng các phương tiện phần cứng để làm những gì mà nó được giả định để làm Để hiểu hệ điều hành, nó rất có ích nếu một hình chiếu đơn giản hoá của phần cứng được hiện ra đầu tiên Việc đi vào các chi tiết của các mô-đun và các mạch là không cần thiết và vì thế sẽ làm lệch hướng sự chú ý ra khỏi các mục đích chính của chúng ta

Máy tính là một thiết bị chạy các chương trình Một chương trình là một tập hợp các câu lệnh được chuyển bị để làm một công việc đặc biệt Những chương trình khác nhau được viết để làm những công việc khác nhau Điều này làm cho máy tính có thể làm những thứ khác nhau cho chúng ta Một chương trình được lưu trữ trên đĩa như thường lệ Chúng có thể là một đĩa quang (CD), đĩa mềm, …, nhưng nó cần phải có bộ nhớ chính của máy tính cốt để chạy Bộ nhớ chính của máy tính thường được gọi là RAM

Bộ nhớ chính được gọi là RAM vì thời gian truy cập của tất cả các vị trí là như nhau Nó không có vấn

đề gì dù vị trí trong bộ nhớ ở nơi bắt đầu, nơi kết thúc hay bất kỳ nơi nào ở giữa.

Ngay khi một chương trình sẵn sàng chạy thì nó không còn được gọi là chương trình, đúng hơn là nó được gọi là tiến trình Chúng ta sẽ không kén chọn, trong chương này, và tuy nhiên sẽ sử dụng chương trình và tiến trình có thể thay thế cho nhau

Cái gì đem chương trình tới bộ nhớ chính? Dĩ nhiên, đó là một chương trình khác được gọi là chương trình nạp với sự giúp đỡ của hệ điều hành Sử dụng ngôn ngữ máy tính, các chương trình được viết bởi lập trình viên (con người) Những chương trình này phải được dịch thành một ngôn ngữ thân thiện máy tính mà thông thường gọi là ngôn ngữ máy Cái gì thực hiện dịch? Một lần nữa, một chương trình được gọi là chương trình dịch với sự giúp đỡ của hệ điều hành sẽ thực hiện việc này

CHU TRÌNH TÌM NẠP - THI HÀNH

Máy tính đọc một câu lệnh từ RAM và di chuyển nó tới một vị trí tạm gọi là thanh ghi lệnh (Instruction Register – IR) trong CPU Sau đó nó tìm ra những gì phải làm đối với câu lệnh này và thực hiện hoạt động Máy tính lặp lại chu trình di chuyển một câu lệnh này từ bộ nhớ chính tới CPU và thi hành nó rất nhiều lần Một cách nhìn chi tiết hơn về hoạt động được thể hiện ở hình 1.1

Trang 8

Trong hình 1.1, bộ đếm chương trình (Program Counter – PC) là thanh ghi duy trì giám sát những gì câu lệnh phải được thi hành tiếp theo PC được điền tự động với một giá trị ban đầu khi máy tính được khởi

động và sau đó nó được cập nhật như thể hiện trong hình 1.1.

Hình 1.1: Một mô hình chức năng đơn giản hóa của một máy tính

Một thanh ghi là một bộ nhớ nhỏ tạm thời trong CPU Trong một số sách, PC được gọi là bộ đếm vị trí (Location Counter – LC), nhưng khi phân biệt là cần thiết, chúng ta sẽ sử dụng LC khi nói về một con trỏ trỏ vào câu lệnh kế tiếp của chương trình hiện hành và PC khi chúng ta nói đến thanh ghi trong CPU giữ LC của chương trình hiện hành Các phương tiện tìm nạp di chuyển một câu lệnh từ bộ nhớ chính tới CPU và thực hiện một số hành động sơ bộ như điều chỉnh LC và giải mã lệnh (tìm ra những thao táo của nó).

Trang 9

Các câu lệnh bắt nguồn từ một chương trình mà hiện giờ đang được thi hành Bên trong một chương trình, khi một câu lệnh được thi hành, câu lệnh tiếp theo được tìm nạp là hầu hết có thể theo sau ngay lập tức Tuy nhiên, điều đó không là trường hợp thường xuyên Quan sát một phần của chương trình dưới đây được viết trong định dạng mã giả (pseudo code)

Một mã giả là một thuật toán (hoặc một mẩu thuật toán) được thể hiện trong một ngôn ngữ đơn giản tương tự như một ngôn ngữ lập trình, nhưng điều đó đó không phải là thực tế.

Mô hình được trình bày trong hình 1.1 là cho máy tính tuần tự, nghĩa là, nói đại khái, một máy tính với một đơn vị xử lý tổng quát được gọi là CPU Có những máy tính được gọi là máy tính đa bộ xử lý thì nhanh hơn nhiều so với các máy tính tuần tự và có thể chạy nhiều chương trình cùng một lúc Hầu hết các máy tính mà chúng ta đang sử dụng, ví dụ máy tính cá nhân là kiểu tuần tự

John Von Neumann, Presper Eckert, John Mauchly, và Hermann Goldstine là những nhà khoa học phát minh ra máy tính kỹ thuật số điện tử đầu tiên

Trong thời gian thực hiện một chương trình, dữ liệu và các câu lệnh được lấy từ bộ nhớ chính, vì thế, nó

là cần thiết để có những chuẩn bị trước Kỹ thuật này được gọi là khái niệm chương trình lưu trữ và được ghi nhận đầu tiên bởi John Von Neumann Theo khái niệm này, các chương trình, dữ liệu, và kết quả được lưu trữ trong bộ nhớ giống nhau, trái ngược với những bộ nhớ riêng biệt Việc đổi mới chương trình lưu trữ là một bước tiến lớn trong việc thúc tiến lĩnh vực khoa học và kỹ thuật máy tính từ các thẻ đục lỗ đến các bộ nhớ có thể tái sử dụng nhanh chóng

CPU của máy tính gồm có đơn vị logic số học (Arithmetic Logic Unit – ALU), đơn vị điều khiển

(Control Unit – CU), các thanh ghi đặc biệt, và các bộ nhớ tạm ALU là tập hợp của tất cả các hệ mạch thực hiện các phép tính số học và logic như cộng, nhân, so sánh, và logic “AND” CU chịu trách nhiệm diễn dịch của mỗi lệnh, chỉ định các bước nhỏ phải được giữ để tiến hành lệnh, và kích hoạt thực tế của các hệ mạch để làm mỗi bước Chúng ta đã sử dụng các thanh ghi đặc biệt Hai trong số đó là thanh ghi lệnh (IR) và bộ đếm chương trình (PC) Có nhiều thanh ghi khác giữ các kết quả của lệnh hiện hành, các tình trạng máy tính, và hơn thế nữa Cũng có một hay nhiều tập các thanh ghi được dành riêng cho chương trình đang chạy (tức là đang được thi hành) Dữ liệu được cần đến thường xuyên hoặc sẽ cần

Trang 10

đến trong tương lai gần, có thể được giữ trong các thanh ghi này Bằng cách này, chúng ta tiết kiệm thời gian bằng cách không gửi chúng tới hoặc lui tới bộ nhớ chính Bộ nhớ đệm cũng là một phần thiết yếu của các máy tính hiện nay Nó là bộ nhớ tạm tương đối lớn hơn có thể lưu trữ một phần dữ liệu và các câu lệnh của chương trình Chúng thực sự là bản sao của của dữ liệu và các câu lệnh giống nhau cư trú trong bộ nhớ chính.

TỔ CHỨC PHẦN CỨNG MÁY TÍNH

Trong mỗi máy tính có nhiều các thiết bị phần cứng CU, ALU, bộ nhớ đệm, và bộ nhớ chính là các thiết

bị bên trong cơ bản Các thiết bị khác hoặc là được cài đặt bên trong hoặc như các thiết bị bên ngoài Tất

cả các thiết bị này một cách tổng thể tạo thành đơn vị bị nhập/xuất (I/O) của máy tính Hình 1.2 minh hoạ một mô hình phần cứng của một máy tính đa dụng Chỉ có các kết nối thiết yếu được hiện thị trên hình này

Một máy tính đa dụng có thể chạy nhiều chương trình khác nhau Vì thế, nó có thể thực hiện nhiều tác

vụ và nó không bị giới hạn để làm một (hoặc rất ít) tác vụ Mặt khác, chúng ta có thể nghĩ đến một máy tính chuyên dụng Một máy tính chuyên dụng được thiết kế và xây dựng để được sử dụng trong một môi trường cụ thể và làm một hay một vài các tác vụ cụ thể có hiệu quả Ở loại máy tính này, chương trình

mà nó chạy không thường xuyên thay đổi Trong thực tế, tất cả các mô-đun của một máy tính được kết nối thông qua một bus bên trong

Bus có thể được xem như một đường cao tốc ba làn xe, với mỗi làn được giao để sử dụng cụ thể Một

làn để truyền dữ liệu, một làn khác để truyền địa chỉ và làn thứ ba để kiểm soát tín hiệu

Mỗi byte (tập hợp các ô) trong bộ nhớ chính được cấp một địa chỉ tạo điều kiện cho truy tìm byte đó Định địa chỉ bắt đầu ừ 0 được gán cho các byte đầu tiên cuả bộ nhớ Bằng cách cấp các số nguyên liên tiếp đến các vị trí liên tiếp, định địa chỉ tiếp tục đến vị trí cuối cùng của bộ nhớ

Trang 11

Hình 1.2: Mô hình tổ chức máy tính

Chúng ta đều biết những gì là dữ liệu 123 là một dữ kiện, “Jonh” là một dữ kiện, …, if một dữ kiện/câu lệnh được cần từ bộ nhớ chính, yêu cầu thiết bị phải cung cấp địa chỉ trong bộ nhớ chính Các địa chỉ truyền qua bus địa chỉ Một địa chỉ là nhận dạng của một vị trí trong bộ nhớ chính Để truy cập bộ nhớ chính, chúng ta phải cung cấp vị trí để được truy cập Điều này là tính chất thiết yếu của các bộ nhớ chính đương thời

Trong một máy tính, mỗi vi hoạt động được thực hiện dưới sự kiểm soát và giám sát của CU Các lệnh đơn vị điều khiển được gửi qua bus điều khiển Đối với việc ra quyết định của mình, CU thu thập thông tin từ hầu hết các thiết bị được kết nối với máy tính Ví dụ, một lệnh không nên được gửi tới một thiết bị không được bật CU phải chắc chắn các thiết bị sẵn sàng nhận lệnh Thông tin như vậy được thu thập từ bản thân thiết bị

Phần lớn các thiết bị máy tính không được kết nối trực tiếp với bus bên trong của máy tính Một thiết bị được thêm vào trong một cổng được kết nối tới bus Có nhiều cơ chế sở hữu bus địa chỉ và bus dữ liệu, nếu không dữ liệu và các địa chỉ từ các thiết bị khác nhau có thể trở thành lẫn lộn Một mô hình bus dựa trên tổ chức máy tính được hiển thị trong hình 1.3

Trang 12

Hình 1.3: Tổ chức máy tính dựa trên Bus

Các thiết bị phần cứng, ngoại trừ CPU và bộ nhớ chính phải được cài đặt trước khi sử dụng Chuột, ổ mềm, bút cảm ứng (bút quang), … là một vài thiết bị như thế Cài đặt một thiết bị liên quan đến việc đăng ký thiết bị với hệ điều hành và cung cấp một trình điều khiển thiết bị cho sự giao tiếp giữa thiết bị

và các bộ phận khác của máy tính Tiến trình cài đặt được bắt đầu hoặc là tự động bởi bản thân hệ điều hành hoặc thao tác bằng tay bởi người dùng Các hệ điều hành ngày nay thì thông minh; và một khi máy tính được bật, hệ điều hành nhận ra hầu như tất cả các thiết bị phần cứng được kết nối mới và ngay lập tức bắt đầu tiến trình cài đặt Vì thế, một thiết bị mà tiến trình cài đặt bắt đầu tự động bởi hệ điều hành

và thường không đòi hỏi bất kỳ sự can thiệp nào từ con người, được gọi là thiết bị cắm và chạy and-Play) Không nhiều các thiết bị phần cứng có người dùng thao tác bằng tay khởi xướng tiến trình cài đặt Nếu đây là trường hợp, sau đó hệ điều hành sẽ tương tác với người dùng để hoàn tất tiến trình

(Plug-Nếu không có bất kỳ phần mềm nào, máy tính được gọi là một máy trống, có tiềm năng để thực hiện nhiều chức năng nhưng không có khả năng để làm như thế trong trạng thái hiện tại của nó Chúng ta sẽ thêm các tính năng khác, trong một kiểu cách được phân lớp, để làm cho máy tính của chúng ta tiện dụng và thân thiện người dùng Khung nhìn hiện hành của máy tính trừu tượng của chúng ta được thể hiện trong hình 1.3.1

Trang 13

Hình 1.3.1: Máy trống

TÓM TẮT

Từ quan điểm phần cứng, một máy tính bao gồm một tập hợp các thiết bị, mỗi dự định thực hiện một tác

vụ cụ thể Thiết kế theo mô-đun của các hệ thống máy tính đã làm tác vụ của việc xây dựng dễ dàng hơn nhiều và đáng tin cậy hơn so với phương pháp thiết kế nguyên khối Tuy nhiên, thiết kế một hệ thống máy tính phức tạp đến nỗi để hiểu được nó đòi hỏi một nền tảng nhất định bao gồm nhiều khoá học đại học Trong bất kỳ trường hợp nào, kiến thức về toàn bộ các chi tiết phần cứng là không cần thiết để hiểu cách một hệ điều hành được thiết kế như thế nào và cách nó sử dụng các phương tiện phần cứng để giúp chạy các chương trình chính xác và hiệu quả Một sự hiểu biết đơn giản về phần cứng máy tính là hết sức cần thiết để nắm vững các chủ đề trong các chương tiếp theo Chu kỳ tìm nạp/thi hành giải thích các

vi lệnh liên quan đến thi hành mỗi lệnh máy và nhiều thiết bị và các mạch liên quan đến thi hành lệnh Kiến thức này là vô cùng hữu ích để hiểu cách các chương trình được thi hành và cách chuyển đổi chương trình được làm ra sao Một tổ chức toàn cầu về phần cứng máy tính cung cấp một cơ sở cho tất

cả các loại giao tiếp giữa các mô-đun thiết yếu của hệ thống

CÁC VẤN ĐỀ

1 Bộ xử lý kiểm tra ngắt lúc bắt đầu mỗi chu trình tìm nạp Nếu có một ngắt được lộ, bộ xử lý phải

xử lý ngắt trước tiên trước khi tìm nạp lệnh kế tiếp Sửa đổi phần đầu tiên của hình 1.1 để nó phản ánh khái niệm này

2 Trong chu trình tìm nạp/thi hành, cốt là điều chỉnh PC cho lệnh kế tiếp, chiều dài của lệnh hiện hành được thể hiện bằng các byte được thêm vào PC Phân loại các lệnh bộ xử lý của máy tính dựa trên chiều dài của chúng

Trang 14

3 Lợi ích của việc điều chỉnh thanh ghi PC trong lúc chu kỳ tìm nạp mặc dù chúng ta phải điều chỉnh lại nó trong lúc chu trình thi hành với một số lệnh là gì?

4 Đối với một bộ xử lý sử dụng 2 phân đoạn khác nhau, ví dụ, đoạn mã và các đoạn dữ liệu cho các lệnh và dữ liệu Bạn sẽ giải thích khái niệm lưu trữ chương trình như thế nào?

5 Giải thích những lợi thế và những bất lợi của bus dựa trên tổ chức đôi với kết nối điểm nối điểm

6 Giả sử bạn vừa mua một máy tính cá nhân mới Không có hệ điều hành được cài đặt trên nó và bạn sẽ phải làm điều này Hiện giờ nó có phải là một máy trống hay không? Nếu không, nó có những phần mềm nào? Và cho những mục đích gì?

7 Giả sử máy tính của bạn là máy tính 32 bit Một số câu lệnh không có toán hạng và một số có một trường toán hạng Trường toán hạng dài 24 bit và nó có thể có một giá trị ngay lập tức như

2958 hoặc một địa chỉ của dữ kiện trong bộ nhớ chính

a Kích thước bộ nhớ tối đa mà máy tính của bạn có thể trực tiếp xử lý là gì (không sử dụng thanh ghi cơ bản)?

b Bây giờ giả sử từ 24 bit này, một bit được sử dụng cho một thanh ghi cơ bản Nếu nội dung của bit đó là 0, thanh ghi cơ bản không được sử dụng Thanh ghi cơ bản dài 32 bit, địa chỉ hiệu dụng trong trường hợp này là nội dung của thanh ghi cơ bản cộng với nội dung của 23 bit còn lại của trường địa chỉ Bây giờ, nếu bus địa chỉ rộng 32 bit, kích thước bộ nhớ tối đa

mà bộ xử lý của máy tính của bạn có thể trực tiếp xử lý là gì?

Trang 15

Chương 2 TIẾN TRÌNH KHỞI ĐỘNG và BIOS-BASIC IINPUT/OUPUT SYSTEM (Hệ Thống Nhập/Xuất Cơ Bản)

Bộ nhớ chính, bộ nhớ đệm, và các thanh ghi bên trong của CPU có nghĩa vụ phải khả biến (dễ thay đổi) Thông tin được lưu trữ trong những thiết bị này bị mất khi nguồn của máy tính bị tắt Từ chương trước, chúng ta đã biết một máy tính là một thiết bị tìm nạp lệnh từ bộ nhớ chính mà thanh ghi PC trỏ tới Máy

tính sau đó thi hành lệnh Chu kỳ này được lặp đi lặp lại cho đến khi máy tính bị tắt

“Khả biến” là một thuật ngữ cho một thiết bị lưu trữ có các nội dung bị mất khi nguồn của nó bị tắt Bộ lưu trữ khả biến có thể được làm “không khả biến”(không mất đi, không đổi, cố định) bằng cách kết nối

nó với một bộ pin( nguồn điện) Tuy nhiên, điều này không phải là điều giả định trong quá trình thiết kế máy tính Các thiết bị như các đĩa từ và các đĩa quang về mặt khác là không khả biến.

Tuy nhiên, nếu chúng ta chỉ có các bộ nhớ khả biến (hay thay đổi), không có câu lệnh nào trong bộ nhớ chính khi máy tính được bật Để khắc phục vấn đề này, một chương trình được thiết kế và được lưu trong một bộ nhớ đặc biệt gọi là bộ nhớ chỉ đọc (Read Only Memory – ROM) và nó được cài đặt vào bo mạch chủ của máy tính Chương trình này được gọi là hệ thống nhập/xuất cơ bản (Basic Input/Output

System – BIOS)

ROM là bộ nhớ cố định được làm đầy với chương trình BIOS bởi nhà sản xuất Có nhiều loại ROM với chức năng tương tự Bo mạch chủ là một nền sẵn sàng để lắp vào tấp cả các thiết bị bên trong của máy tính Nó có nhiều cổng là cần thiết cho kết nối các thiết bị bên ngoài vào máy tính Trong các thuật ngữ đơn giản hoá, chúng ta có thể nghĩ nó như là bus máy tính.

Khi máy tính được bật, một địa chỉ được tự động nạp vào thanh ghi PC Điều này được thực hiện bởi hệ mạch phần cứng Địa chỉ đã cho là vị trí của câu lệnh được thi hành đầu tiên trong BIOS Cuộc hành trình bắt đầu từ đó Các BIOS được sản xuất bởi nhiều nhà máy, nhưng thực hiện các chức năng cơ bản giống nhau

2.1 CÁC HÀNH ĐỘNG BIOS

Sau đây là danh sách các hành động có cả một phần được tự động và một phần bởi người dùng máy tính, đúng sau khi máy được bật:

Tự kiểm tra khởi động

Hiển thị logo của nhà sản xuất BIOS

CMOS và thay đổi thiết lập

Trang 16

2.1.1 TỰ KIỂM TRA KHỞI ĐỘNG

Tự kiểm tra khởi động (Power-On Selft Test – POST) là một phần quan trọng của bất kỳ BIOS nào Sau khi máy tính được bật, POST tiếp quản kiểm soát hệ thống Trước khi máy tính có thể tiến hành thi hành bất kỳ chương trình bình thường nào, POST kiểm tra để chắc chắn mỗi thiết bị cần tìm ngay lập tức được kết nối và hoạt động Trong giai đoạn này, bộ nhớ chính, màn hình, bàn phím, ổ mềm đầu tiên, ổ cứng đầu tiên, đĩa quang đầu tiên, và bất kỳ mọi thiết bị từ đó hệ điều hành có thể khởi động được kiểm tra Một tiếng bíp sẽ thông báo cho người dùng nếu có điều gì đó không ổn Loa không cần phải được kết nối với máy tính để nghe được âm thanh này Tiếng bíp phát ra từ một chiếc loa nguyên thuỷ nội bộ bên trong máy tính Miễn là tiếng này xảy ra trước khi bất kỳ hệ thống âm thanh nào có thể đã được cài đặt

2.1.2 LOGO của Nhà Sản Xuất BIOS

Tại thời khắc sớm nhất có thể sau khi tiến trình POST, logo của nhà sản xuất BIOS sẽ được hiện lên trên màn hình Có nhiều công ty sản xuất BIOS: Compaq, Phoenix, Intel, IBM, và Award cộng với một danh sách dài của các công ty khác Tuỳ thuộc vào thương hiệu của BIOS được cài đặt trên bo mạch chủ của máy tính của bạn, thông tin về nhà sản xuất và logo sẽ khác nhau và sẽ được hiện lên trên màn hình

2.1.3 CMOS và Thay Đổi Thiết Lập

Ngày và giờ chúng ta có thể xem trên màn hình của chúng ta có nguồn gốc từ một phần của BIOS gọi là BIOS CMOS CMOS là từ viết tắt của bộ nhớ chất bán dẫn kim loại oxit bổ sung (Complementary Metal Oxide Semiconductor) Đây là một trong những công nghệ được dùng để chế tạo CPU, DRAM và các loại chíp khác của máy tính Nó là một bộ nhớ đọc/ghi trái ngược với ROM Khả năng của một thiết lập/sửa đổi CMOS được yêu cầu cốt để có khả năng thay đổi mọi thứ như ngày-giờ trong BIOS Nhớ rằng có nhiều lý do tại sao chúng ta có thể cần phải thay đổi các dữ liệu này, ví dụ, sử dụng ngày-giờ địa phương trong những khu vực khác nhau trên thế giới BIOS CMOS được kết nối tới một pin bền nhỏ có thể hoạt động trong nhiều năm

Mặc dù một lượng lớn thông tin có thể được lưu trữ trong BIOS CMOS, kích thước của nó thì nhỏ, khoảng 64 byte Công nghệ CMOS là công nghệ tiết kiệm năng lượng, nghĩa là nó sử dụng rất ít điện

Trang 17

năng CMOS là một bộ nhớ truy cập ngẫu nhiên ổn định (No-Volatile Random Access Memory –

NVRAM).

Ở giai đoạn này, hệ thống sẽ cho phép bạn định nghĩa và/hoặc thay đổi các cài đặt CMOS Có nhiều khả năng và các tuỳ chọn được phân loại như bên dưới Như đã thấy, danh sách thì dài hợp lý chứng tỏ rằng chúng ta có thể lưu trữ một lượng lớn thông tin trong CMOS Một khía cạnh thú vị của CMOS là tổng kiểm tra là tất cả thông tin trong CMOS cũng được lưu trữ trong CMOS Tổng kiểm tra là kết hợp của toàn bộ thông tin trong CMOS Nếu sảy ra một lỗi và dữ liệu bị hỏng, hệ thống sẽ nhận ra điều này từ tổng kiểm tra Khi chúng ta thực hiện thay đổi CMOS khi đang thiết lập, tổng kiểm tra được tính toán lại

để biểu diễn cho trạng thái mới và sau đó khôi phục trong CMOS Sau đây là một danh sách ngắn gọn của thiết lập/sửa đổi có thể với CMOS:

Thiết lập/sửa đổi ngày-giờ và các thuộc tính ổ mềm và ổ cứng

Thiết lập/sửa đổi thứ tự trong các thiết bị ổn định (đĩa mềm, đĩa cứng, CD…) có thể được sử dụng để nạp hệ điều hành vào bộ nhớ chính

Thiết lập/sửa đổi quản lý nguồn cho phép màn hình và các ổ đĩa tắt khi chúng ta không sử dụng trong một thời gian dài Điều này để giữ năng lượng Các thiết bị này sẽ tự động bật trở lại với hoạt động đầu tiên của người dùng

Thiết lập/sửa đổi on-board serial và các cổng song song, được sử dụng cho kết nối các thiết bị ngoại vi.Thiết lập/sửa đổi mật khẩu người dùng Một người dùng có thể được chỉ định là quản trị viên của máy tính Anh/Chị ấy có một mật khẩu để thiết lập/sửa đổi dữ liệu CMOS Những người dùng khác bị chặn xâm nhập vào chương trình thiết lập/sửa đổi CMOS

Bây giờ chúng ta có một máy tính với BIOS có thể bắt đầu, tự kiểm tra, cho phép thiết lập/sửa đổi các thuộc tính thiết yếu… Vì thế, cái nhìn của chúng ta về hệ thống tổng thể phải được sửa đổi, phù hợp Hình 2.1 minh hoạ cái nhìn hiện tại

Hình 2.1 cho thấy bước đầu tiên của thiết kế hệ điều hành theo lớp Khái niệm này được định nghĩa trong hệ điều hành đa chương (đa lập trình) gọi là THE, hệ điều hành được thiết kế bởi Edsger Dijkstra

Một hệ điều hành được gọi là THE là cơ sở của hầu hết các hệ điều hành hiện đại, ví dụ UNIX và

Windows Hệ điều hành THE sử dụng 2 khái niệm rất quan trọng, cụ thể là thiết kế hệ điều hành phân cấp và đa lập trình Người thiết kế hệ điều hành THE là Edsger W Dijkstra, ông là một trong những người tiên phong trong lĩnh vực hệ điều hành

Trang 18

Hình 2.1: Máy 2 lớp với BIOS hệ thống

2.2 TIẾN TRÌNH KHỞI ĐỘNG HỆ ĐIỀU HÀNH

Một trong những chức năng của BIOS là để bắt đầu tiến trình nạp hệ điều hành

Nạp là mang một chương trình tới bộ nhớ chính và chuyển bị nó cho thi hành Trong hoàn cảnh khác,

nó cũng có thể có nghĩa làm đầy thanh ghi với dữ liệu, câu lệnh, hoặc địa chỉ.

Hệ điều hành là một chương trình khổng lồ không thể được lưu trữ trong một bộ nhớ ROM nhỏ Mặc dù vậy, chúng ta muốn máy tính của chúng ta linh hoạt sao cho chúng ta có thể chạy bất kỳ hệ điều hành nào mà chúng ta thích Vì thế, hệ điều hành phải được cài đặt sau khi máy tính được mua về Hệ điều hành thường được lưu trữ trên một CD và phải được chuyển vào bộ nhớ chính để trở thành thiết thực Ổ cứng nhanh hơn nhiều so với ổ CD, vì thế chúng ta thích chuyển vĩnh viễn hệ điều hành từ CD vào đĩa cứng Điều này sẽ tiết kiệm một lượng rất lớn thời gian trong việc sử dụng hệ điều hành tương lai Tiến trình chuyển toàn bộ hệ điều hành từ một CD vào một đĩa cứng trong khi giải nén các tập tin nén và khởi tạo hệ thống toàn bộ cho sử dụng được gọi là cài đặt hệ điều hành

Nén là tiến trình chuyển một tập tin vào một định dạng đòi hỏi không gian ít hơn, trong khi bảo toàn tính toàn vẹn của thông tin Tập tin phải được xả nén trước khi được sử dụng bằng phần mềm tương ứng.

Trong một số hoàn cảnh, ví dụ, chi chúng ta đã cài đặt một hệ điều hành và muốn cài đặt một hệ điều hành thứ hai, có thể nạp nguồn hệ điều hành từ CD vào đĩa cứng và sau đó bắt đầu chương trình thích hợp (tập tin cài đặt) để thực hiện việc cài đặt Như đã thấy, hoặc hệ điều hành thực hiện tiến trình tự cài đặt hoặc một hệ điều hành đã cài đặt trước đó giúp cài đặt hệ điều hành mới

Giả sử ổ CD được cài là thiết bị khởi động đầu tiên Nếu có một CD trong ổ CD hoặc không phải là hệ điều hành hoặc không có khả năng khởi động, khi máy tính được bắt đầu, hệ thống sẽ không sẽ không

Trang 19

thể khởi động hệ điều hành Một thông báo lỗi sẽ được hiển thị trên màn hình bởi BIOS Đây là trường hợp cho các thiết bị có khả năng khởi động theo thứ tự và chúng được kiểm tra bởi BIOS.

Trong một chốc lát, hãy quan sát một chiếc ô tô bình thường Nó được sản xuất để chuyên chở người lái

và hành khách từ một vị trí đến một ví trí khác Nó có 4 bánh xe, một động cơ, một khung xe, hai hay nhiều ghế ngồi, … Tuy nhiên, tất cả các ô tô thông thường là không giống nhau Một số thì nhỏ, lớn, an toàn, nguy hiểm, đắt tiền, hay rẻ Một số được thiết kế tốt và một số khác được thế kế kém Tương tự, không phải tất cả hệ điều hành được thiết kế là giống nhau BIOS không biết tất cả các thuộc tính và các chi tiết của hệ điều hành được nạp Vì thế, BIOS chỉ bắt đầu tiến trình nạp hệ điều hành và sau đó

chuyển kiểm soát cho chính bản thân hệ điều hành khi hoàn tất tiến trình Điều này nghe có vẻ hợp lý BIOS phải biết ít nhất vị trí của hệ điều hành nằm ở đâu Nó nằm trên một hay nhiều đĩa mềm, trên một đĩa cứng, trên một hay nhiều CD …?

Thiết bị nạp chương trình khởi tạo (Initial Program Load – IPL) là thiết bị có thể có một hệ điều hành, như CD hoặc đĩa cứng Một thiết bị chứa hệ điều hành và từ đó hệ điều hành có thể được nạp được gọi

là một thiết bị có khả năng khởi động Nếu bạn nhớ, thứ tự các thiết bị có khả năng khởi động ổn định được sử dụng để nạp hệ điều hành có thể được xác định hoặc sửa đổi bởi người dùng khi đang thiết lập BIOS Có một bảng IPL và một điều khiển vô tuyến ưu tiên IPL cho mục đích này trong CMOS BIOS Bảng liệt kê tất cả các thiết bị có khả năng khởi động được công nhận và các trạng thái điều khiển vô tuyến theo thứ tự mà trong đó chúng được kiểm tra tại thời điểm tiến trình khởi động

BIOS chỉ nạp một khối dữ liệu từ thiết bị có khả năng khởi động hợp pháp đầu tiên vào bộ nhớ chính Khối dữ liệu này được lấy từ một nơi cụ thể và cố định của thiết bị có khả năng khởi động và được đặt vào mội nơi cụ thể và cố định của bộ nhớ chính Kích thước của dữ liệu thường là 512 byte và được lấy

ra từ khối 0 của rãnh 0 của thiết bị có khả năng khởi động Đây là khối đầu tiên của thiết bị Khối chứa một chương trình nhỏ đôi khi được gọi là mồi khởi động Sau khi nạp mồi khởi động, kiểm soát sau đó được chuyển cho chương trình nhỏ này Bằng cách làm như vậy, BIOS không đủ tư cách làm chủ bên trong máy tính Điều này không có nghĩa là chúng ta sẽ không cần BIOS nữa Chúng ta sẽ tiếp tục sử dụng các phương tiện BIOS, nhưng dưới sự kiểm soát của hệ điều hành BIOS chứa nhiều các thủ tục (chương trình nhỏ) hữu ích khác, đặc biệt cho tương tác với các thiết bị I/O

Bây giờ chúng ta có một phần nhỏ hệ điều hành được nạp và chạy trong bộ nhớ chính Điều quan trọng nên biết là chương trình nhỏ này (tức là mồi khởi động) thì khác nhau đối với Windows, UNIX, MAC,

… và được thiết kế riêng để thực hiện các yêu cầu của một hệ điều hành cụ thể Chương trình này có trách nhiệm nạp khúc dữ liệu lớn kế tiếp của hệ điều hành và thường nạp toàn bộ Nhân của hệ điều hành tương ứng Nhân là một phần thiết yếu hay phần bên trong của mầm mống hệ điều hành Mặt khác, Nhân là một chương trình gồm có nhiều thường trình để thực hiện các hoạt động không được thực hiện bởi bất kỳ thao tác đơn nào của phần cứng máy tính Mỗi thường trình được xây dựng sử dụng các lệnh máy và/hoặc các chức năng BIOS Ngoài ra, Nhân gồm có nhiều tiến trình thiết yếu (các luồng hoặc các tác nhân), mỗi thiết kế để tiến thực hiện trách nhiệm của hệ điều hành

Trang 20

Mọi đĩa cứng được tổ chức thành một tập hợp các tấm đồng trục Mỗi tấm có hai mặt Trên mỗi bề mặt

có nhiều vòng đồng tâm được gọi là các rãnh nhờ đó thông tin được lưu trữ trên đó Những rãnh này có thể hoặc không thể hiện thị rõ cho chúng ta, tùy thuộc vào loại phương tiện nào Mỗi rãnh lại được phân chia thành các số nguyên của các phần được gọi là các cung từ Số cung từ là giống nhau cho mọi rãnh không quan trọng đối với bán kính của chúng và/hoặc chu vi của rãnh Một khối là tập hợp của một hay nhiều cung từ Nó là đơn vị nhỏ nhất của dữ liệu mà có thể được đọc hoặc ghi trong quá trình truy cập tới ổ đĩa.

Tiến trình khởi động có thể dừng lại ở đây hoặc nó có thể thực hiện thêm 1 bước nữa Nếu là để làm thêm 1 bước nữa, nó sẽ chuyển kiểm soát cho một chương trình trong Nhân sẽ mang một đoạn dữ liệu khác của hệ điều hành tới bộ nhớ chính Với Nhân sẽ được nạp, mô hình phân cấp hệ điều hành của chúng ta sẽ giống như những gì được thể hiện trong hình 2.2

Một Nhân nguyên thủy bao gồm rất ít các câu lệnh và/hoặc các chức năng BIOS Một Nhân nguyên thủy chỉ thực hiện một tác vụ nhỏ và nó được cho phép truy cập trực tiếp các thiết bị phần cứng Nói cách khác, cấu trúc phân cấp được mô tả trong hình 2.2 thì không nghiêm ngặt Nhân có thể bỏ qua BIOS và trực tiếp truy cập phần cứng Thực tế là không có gì là an toàn từ Nhân Nhớ rằng, Nhân là một phần thiết yếu của hệ điều hành và được thiết kế với độ chính xác cao nhất Những khái niệm sử dụng trong Nhân được lý thuyết chứng minh là làm việc tốt và không sảy ra bất kỳ tác dụng phụ không mong muốn nào

Hình 2.2: Máy 3 lớp với BIOS hệ thống và nhân OS

Trang 21

Có một hay nhiều các lớp của hệ điều hành nằm trên cùng của nhân Số lượng các lớp khác nhau tùy theo từng hệ điều hành Số lượng chính xác các lớp không quan trọng với chúng ta vì chúng ta quan tâm nhiều hơn đến cấu trúc toàn cục và cách hệ điều hành được đưa vào bộ nhớ chính Trên thực tế, không phải tất cả các bộ phận của hệ điều hành luôn luôn thường trú trong bộ nhớ chính Trong một phiên làm việc với máy tính, một số bộ phận của hệ điều hành có thể không bao giờ được sử dụng Vì thế, không cần thiết phải mang chúng vào bộ nhớ chính Bằng cách không nạp chúng, người dùng sẽ có nhiều không gian hơn trong bộ nhớ chính cho các chương trình riêng của họ Vì hệ thống không biết phần nào của hệ điều hành sẽ được sử dụng hoặc không được sử dụng, các phần không thiết yếu được đưa vào bộ nhớ chính theo yêu cầu và được gỡ bỏ khi không còn cần thiết Mô hình phân cấp hoàn chỉnh của một máy tính hiện đại của chúng ta được tiết lộ trong hình 2.3.

Hình 2.3: Một hệ điều hành phân lớp hoàn chỉnh

Cấu trúc Windows 2000 được biểu diễn trong hình 2.4 là một hệ điều hành phân lớp Trong các chương sắp tới, chúng ta sẽ nghiên cứu một số bộ phận của nó một cách chi tiết như một hệ điều hành tổng quát

Trang 22

Hình 2.4: Cấu trúc phân lớp và được đơn giản hóa của Windows 2000

2.3 CÁC CƠ CHẾ BẢO VỆ

Các chương trình ứng dụng của chúng ta nằm trên cùng của hệ điều hành Chúng dùng các phương tiện cung cấp bởi tất cả các lớp của hệ thống một cách có hệ thống và bảo mật, để làm những gì các chương trình ứng dụng này buộc phải làm Nó đáng được nhắc lại lần nữa, với hệ điều hành hiện tại, các chương trình không thể trực tiếp và tự do sử dụng các phương tiện trong các lớp thấp hơn Đây là hệ điều hành giám sát các hoạt động của mọi chương trình đang chạy Sự thiếu vắng bất kỳ một cơ chế bảo vệ nào, những điều kỳ lạ có thể xảy ra và hệ thống có thể trở nên không đáng tin cậy Trong một hệ thống nhiều người dùng, tiến trình của một cá nhân (chương trình) có thể thay đổi tiến trình của người khác, khiến nó làm một cái gì đó không nên làm Một tiến trình thậm chí có thể sửa đổi bản thân hệ điều hành, do đó, khiến nó vô ích và thậm chí gây hại tới các chương trình khác Sự tồn tại và lây lan của các virus, sâu, ngựa gỗ thành Troa (Trojan horses), … trong các máy tính trực tiếp liên quan đến sự tồn tại của các điểm bảo mật yếu trong hệ điều hành

Virus là một chương trình hay một mẩu mã (không phải chương trình hoàn chỉnh) được viết để làm tổn hại một cái gì đó Nó được truyền vào máy tính của chúng ta mà chúng ta không biết và cũng không được chúng ta cho phép Virus có thể tự sao chép và có thể đính kèm vào các tập tin của chúng ta, làm ô

Trang 23

nhiễm các tập tin này Tùy từng trường hợp, virus có thể kích hoạt chính nó và làm những gì buộc phải làm.

Sâu cũng là một chương trình phá hoại có thể tự sao chép Trong một mạng, nó có thể tự chủ di chuyển

từ máy tính này sang máy tính khác Sâu không cần chương trình máy chủ để đính kém chính nó vào Khi các điều kiện cụ thể được đáp ứng và đến thời gian đã định trước, sâu được kích hoạt và thực hiện các hành động độc hại của nó.

Sự tồn tại của các chương trình nguy hiểm này không phải làm cho chúng ta tin tưởng là không có những cơ chế bảo vệ trong máy tính Thay vào đó, nên thuyết phục chúng ta bảo vệ hệ thống khỏi các

hacker và các cracker là một công việc khó khăn

Hacker là người cố gắng vượt qua các cơ chế bảo vệ và bảo mật của máy tính cốt để đánh cắp thông tin.

Cracker là người muốn phá vỡ hệ thống bảo vệ và bảo mật của máy tính hay mạng nhằm mục đích khoe khoang và/hoặc ăn cắp thông tin.

Nhiều nhà nghiên cứu hệ điều hành và mạng được độc quyền làm việc để làm cho hệ thống của chúng ta

ít bị tổn thương hơn

Sự bảo vệ được áp dụng cho tất cả các lớp của hệ thống Nằm sâu trong lõi phần cứng máy tính, các hệ mạch thực hiện các lệnh máy Mọi máy tính thường hỗ trợ 256 (28) lệnh máy Những lệnh này có thể được phân loại thành một số lượng nhỏ các lớp Ví dụ, trong lớp “cộng” chúng ta có thể có: cộng 2 số nguyên nhỏ, 2 số nguyên trung bình, 2 số nguyên lớn, 2 số thực trung bình, 2 số thực lớn, 2 số thực lớn hơn nữa, nội dung của thanh ghi, và cộng với số nhớ,…

Không phải tất cả các lệnh máy là có sẵn cho người dùng máy tính và thậm chí ở các cấp độ cao hơn của

hệ điều hành Các lệnh máy thuộc về hoặc các lớp đặc quyền hoặc các lớp không đặc quyền Trong một

hệ điều hành đáng tin cậy, bất kỳ chương trình nào cũng có thể sử dụng sử dụng một lệnh không đặc quyền Tuy nhiên, Nhân hệ điều hành (hay lõi) là chương trình duy nhất có thể sử dụng một lệnh đặc quyền Ví dụ, trong Pentium 4, lệnh máy HLT dừng việc thi hành lệnh và đặt bộ xử lý vào trạng thái tạm dừng Một lệnh cho phép ngắt (chúng ta sẽ nói về các ngắt trong chương sắp tới) hoặc khởi động máy tính bởi người dùng quyết định thi hành thao tác HLT và đặt máy tính vào trạng thái ngủ Sau đó tất cả các chương trình khác cũng sẽ được tạm dừng Bằng cách khởi động lại máy tính, chúng ta sẽ mất tất cả những gì đã được thực hiện bởi các chương trình chạy trước đây

Một cơ chế bảo vệ khác là để cấm một chương trình ghi một cái gì đó vào một vị trí của bộ nhớ chính bị chiếm bởi một chương trình khác hoặc thậm chí bởi bản thân hệ điều hành Bảo vệ bộ nhớ cũng được thực hiện thông qua nỗ lực chung của phần cứng và hệ điều hành Trong bất kỳ hệ điều hành đáng tin cậy nào, các cơ chế bảo vệ thích hợp bị bắt buộc sao cho mỗi chương trình được bảo vệ từ các chương trình khác có thể cố gắng thay đổi cái gì đó trong không gian địa chỉ của nó

Ngày đăng: 03/02/2015, 11:20

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Một mô hình chức năng đơn giản hóa của một máy tính - Hệ điều hành   khái niệm và kỹ thuật
Hình 1.1 Một mô hình chức năng đơn giản hóa của một máy tính (Trang 8)
Hình 1.2: Mô hình tổ chức máy tính - Hệ điều hành   khái niệm và kỹ thuật
Hình 1.2 Mô hình tổ chức máy tính (Trang 11)
Hình 1.3: Tổ chức máy tính dựa trên Bus - Hệ điều hành   khái niệm và kỹ thuật
Hình 1.3 Tổ chức máy tính dựa trên Bus (Trang 12)
Hình 2.1: Máy 2 lớp với BIOS hệ thống - Hệ điều hành   khái niệm và kỹ thuật
Hình 2.1 Máy 2 lớp với BIOS hệ thống (Trang 18)
Hình 2.2: Máy 3 lớp với BIOS hệ thống và nhân OS - Hệ điều hành   khái niệm và kỹ thuật
Hình 2.2 Máy 3 lớp với BIOS hệ thống và nhân OS (Trang 20)
Hình 2.3: Một hệ điều hành phân lớp hoàn chỉnh - Hệ điều hành   khái niệm và kỹ thuật
Hình 2.3 Một hệ điều hành phân lớp hoàn chỉnh (Trang 21)
Hình 2.4: Cấu trúc phân lớp và được đơn giản hóa của Windows 2000 - Hệ điều hành   khái niệm và kỹ thuật
Hình 2.4 Cấu trúc phân lớp và được đơn giản hóa của Windows 2000 (Trang 22)
Hình 3.1 : Chu kỳ sống của các tiến trình trong môi trường đơn lập trình - Hệ điều hành   khái niệm và kỹ thuật
Hình 3.1 Chu kỳ sống của các tiến trình trong môi trường đơn lập trình (Trang 28)
Hình 3.2 : sơ đồ chuyển tiếp trạng thái tiến trình trong đa lập trình - Hệ điều hành   khái niệm và kỹ thuật
Hình 3.2 sơ đồ chuyển tiếp trạng thái tiến trình trong đa lập trình (Trang 32)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w