1. Trang chủ
  2. » Công Nghệ Thông Tin

giáo trình nguyên lý hệ điều hành Chương 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH

20 590 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 20
Dung lượng 1,19 MB

Nội dung

CHƯƠNG 1. TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ............................................................ 41.1. Hệ điều hành là gì? .................................................................................................... 41.1. Hệ điều hành là gì?1.1.1. Giới thiệuHệ điều hành là một phần quan trọng của mọi hệ thống thông tin. Một hệ thống thôngtin gồm 4 thành phần: phần cứng, hệ điều hành, chương trình ứng dụng, người sử dụng.Phần cứng: CPU, bộ nhớ, thiết bị vào ra cung cấp các tài nguyên thông tin cơ sở.Các chương trình ứng dụng: chương trình dịch, hệ thống cơ sở dữ liệu, trình soạn thảovăn bản. qui định cách sử dụng các tài nguyên đó để giải quyết những vấn đề của người sửdụng.1.2. Cấu trúc hệ thống máy tính ....................................................................................... 61.3. Cấu trúc hệ điều hành ............................................................................................. 11

Trang 1

MAI VĂN TÁM – PHAN TRUNG KIÊN

GIÁO TRÌNH NGUYÊN LÝ HỆ ĐIỀU HÀNH

Sơn La, 2012

Trang 2

MỤC LỤC

Trang

CHƯƠNG 1 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH 4

1.1 Hệ điều hành là gì? 4

1.2 Cấu trúc hệ thống máy tính 6

1.3 Cấu trúc hệ điều hành 11

CHƯƠNG 2 QUẢN LÝ TIẾN TRÌNH 21

2.1 Khái niệm tiến trình 21

2.3 Các thao tác điều khiển tiến trình 28

2.4 Giao tiếp giữa các tiến trình 30

2.5 Luồng (Thread) 34

CHƯƠNG 3 LẬP LỊCH CPU 39

3.1 Các khái niệm cơ bản 39

3.2 Tiêu chí lập lịch 41

3.3 Các thuật toán lập lịch 42

3.4 Lập lịch trên hệ thống nhiều CPU 47

CHƯƠNG 4 ĐỒNG BỘ HOÁ TIẾN TRÌNH 49

4.1 Các khái niệm cơ bản 49

4.2 Các giải pháp phần mềm 51

4.3 Các giải pháp phần cứng 54

4.4 Semaphores 55

4.5 Các bài toán đồng bộ kinh điển 58

4.6 Monitors 61

CHƯƠNG 5 BẾ TẮC 64

5.1 Mô hình hệ thống 64

5.2 Các phương pháp giải quyết bế tắc 67

5.3 Ngăn bế tắc 67

5.4 Tránh bế tắc 68

5.5 Phát hiện bế tắc 72

5.6 Phục hồi khỏi bế tắc 74

CHƯƠNG 6 QUẢN LÝ BỘ NHỚ 76

6.1 Bộ nhớ chính 76

6.2 Hoán đổi 80

6.3 Cấp phát bộ nhớ liền kề 82

6.4 Phân trang 85

6.5 Cấu trúc của bảng phân trang 94

6.6 Phân đoạn 97

CHƯƠNG 7 BỘ NHỚ ẢO 102

Trang 3

7.1 Khái quát 102

7.2 Phân trang theo yêu cầu 104

7.3 Copy - on - Write 110

7.4 Thay thế trang 111

7.5 Cấp phát các frame 122

7.6 Thrashing 125

CHƯƠNG 8 HỆ THỐNG TẬP TIN (FILE) 129

8.1 Khái niệm file 129

8.2 Các phương pháp truy nhập 134

8.3 Cấu trúc thư mục 136

8.4 Gắn kết hệ thống file - File-System Mounting 143

8.5 Chia sẻ file 144

8.6 Bảo vệ 146

CHƯƠNG 9 CÀI ĐẶT HỆ THỐNG FILE 149

9.1 Cấu trúc hệ thống file 149

9.2 Cài đặt hệ thống file 150

9.3 Cài đặt thư mục 155

9.4 Các phương pháp cấp phát 156

9.5 Quản lý không gian trống 160

9.6 Phục hồi - Recovery 161

9.7 Các hệ thống file trên mạng NFS 162

CHƯƠNG 10 QUẢN LÝ HỆ THỐNG VÀO RA 165

10.1 Tổng quan 165

10.2 Phần cứng vào ra - I/O Hardware 165

10.3 Ứng dụng giao diện vào ra 171

10.4 Nhân của hệ thống con vào ra 173

10.5 Biến đổi các yêu cầu vào/ra thành các hoạt động của phần cứng 177

10.6 Các dòng - Streams 180

10.7 Hiệu suất 181

10.8 Cấu trúc lưu trữ thứ cấp 183

CHƯƠNG 11 GIỚI THIỆU MỘT SỐ HỆ ĐIỀU HÀNH CỤ THỂ 189

11.1.1 Lịch sử hệ điều hành Linux 189

11.2 Hệ điều hành Windows 2000 193

11.3 Hệ điều hành Windows XP 201

Trang 4

CHƯƠNG 1 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH

1.1 Hệ điều hành là gì?

1.1.1 Giới thiệu

Hệ điều hành là một phần quan trọng của mọi hệ thống thông tin Một hệ thống thông tin gồm 4 thành phần: phần cứng, hệ điều hành, chương trình ứng dụng, người sử dụng Phần cứng: CPU, bộ nhớ, thiết bị vào ra cung cấp các tài nguyên thông tin cơ sở Các chương trình ứng dụng: chương trình dịch, hệ thống cơ sở dữ liệu, trình soạn thảo văn bản qui định cách sử dụng các tài nguyên đó để giải quyết những vấn đề của người sử dụng

Hệ điều hành điều khiển và đồng bộ việc sử dụng phần cứng của các chương trình ứng dụng phục vụ các người sử dụng khác nhau với các mục đích sử dụng phong phú đa dạng Bốn lớp này có mối quan hệ mật thiết với nhau và được thể hiện qua hình 1.1

Hình 1.2 Các thành phần của hệ thống thông tin

- Xét về phía người sử dụng thì hệ điêu hành cần phải tạo được môi trường giao diện giữa người sử dụng và máy tính Thông qua môi trường này, cho phép người sử dụng đưa ra các lệnh, chỉ thị điều khiển hoạt động của hệ thống

- Xét về phía các chương trình ứng dụng thì hệ điều hành phải tạo môi trường để các chương trình ứng dụng hoạt động; cung cấp các cơ chế cho phép kích hoạt và loại bỏ các chương trình ứng dụng

- Xét về phía phần cứng thì hệ điều hành phải quản lý các thiết bị một cách có hiện quả, khai thác được hết khả năng của các thiết bị, cung cấp cho các chương trình và người sử dụng tài nguyên phần cứng khi có yêu cẩu, thu hồi khi cần thiết

Như vậy, có thể coi hệ điều hành là một tập hợp các chương trình hệ thống có chức

Trang 5

năng tạo môi trường giao diện cho người sử dụng, tạo môi trường hoạt động cho các chường trình ứng dụng; quản lý và khai thác hiện quả các thiết bị phần cứng Ta có thể hiểu hệ điều hành là hệ thống các chương trình đảm bảo các chức năng giao tiếp người máy và quản lý tài nguyên hệ thống tính toán

Tuy nhiên có nhiều người quan sát hệ điều hành dưới các góc độ khác nhau vì thế tồn tại nhiều định nghĩa về hệ điều hành

- Đối với người sử dụng: hệ điều hành là tập hợp các chương trình, phục vụ khai thác hệ thống tính toán một cách dễ dàng, thuận tiện

Người sử dụng khi thực hiện một chương trình nào đó trên máy tính điện tử thì chỉ quan tâm đến việc hệ thống có đáp ứng được nhu cầu của họ hay không? Có chương trình cần thực hiện, có đủ bộ nhớ để chạy họ không quan tâm đến việc hệ điều hành làm gì nhằm mục đích gì, có cấu trúc như thế nào?

- Đối với người làm công tác quản lý: hệ điều hành là một tập các chương trình phục vụ quản lý chặt trẽ và sử dụng tối ưu các tài nguyên của hệ thống tính toán

- Đối với cán bộ kỹ thuật: hệ điều hành là hệ thống chương trình bao trùm lên một máy tính vật lý cụ thể để tạo ra một máy logic với những tài nguyên mới và khả năng mới

Các định nghĩa trên phản ánh vị trí quan sát của người nêu Họ đứng ở ngoài hệ thống

và thể hiện điều họ mong đợi và cũng là điều họ nhìn thấy

- Đối với cán bộ lập trình hệ thống: hệ điều hành là hệ thống mô hình hoá, mô phỏng các hoạt động của máy, của người sử dụng và của thao tác viên hoạt động trong các hệ thống đối thoại nhằm tạo môi trường để quản lý chặt trẽ các tài nguyên và tổ chức khai thác chúng một cách thuận tiện và tối ưu

1.1.2 Lịch sử hệ điều hành

Sự phát triển của hệ điều hành gắn liền với sự tiến hóa của phần cứng máy tính và phụ thuộc nhiều vào kiến trúc máy tính

a Thế hệ thứ 1 (1945-1955):

Những máy tính sử dụng các rơ le cơ khí, bóng chân không Việc thiết kế, lập trình, hoạt động, bảo trì do một nhóm người thực hiện Lập trình sử dụng ngôn ngữ máy Có thể coi giai đoạn này chưa có hệ điều hành

b Thế hệ thứ 2 (1955-1965):

Là giai đoạn của transitor và hệ thống xử lý lô (batch system) với các máy lớn (mainframe) Có thể lập trình trên giấy rồi đục lỗ trên thẻ Thường lập trình bằng ngôn ngữ

Fortran và Assembly

Hệ thống xử lý xử lý lô đơn giản, gom lô các công việc Quá trình đưa dữ liệu từ thẻ vào băng từ do một máy đảm nhận (1401), băng từ được đưa cho máy chính xử lý (7094) Băng từ chứa kết quả được đưa cho máy để in (1401)

Hệ điều hành là một chương trình đặc biệt đọc công việc đầu tiên từ băng từ và thi hành, rồi sau đó chuyển sang công việc mới

FMS, IBSYS là các hệ điều hành trong giai đoạn này

Trang 6

Hình 1.2 Hệ thống xử lý theo lô

c Thế hệ thứ 3 (1965-1980):

Khởi đầu thế hệ của các IC và hệ thống đa chương (multiprogramming system)

Hệ thống 360 dùng IC và tích hợp 2 máy tính chính và phụ trong giai đoạn trước làm một

Tính tương thích với các hệ thống cũ được duy trì

Multiprogramming là giải pháp để tăng hiệu suất

Ý tưởng của multiprogramming là cho phép chạy nhiều chương trình cùng một lúc Trong multiprogramming system, hệ điều hành sẽ nạp nhiều công việc vào trong bộ nhớ

Spooling cũng là một giải pháp để tăng hiệu suất

Hình 1.3 Ba công việc cùng trong bộ nhớ của hệ thống đa chương

Spooling là Hệ điều hành sẽ nạp công việc mới từ hệ thống vào/ra trong khi xử lý tính toán cho công việc khác Trong khi thực một công việc, Hệ điều hành đọc công việc mới từ thẻ và in công việc trước đó ra máy in

Kỹ thuật chia xẻ thời gian (timesharing) trong hệ thống đa chương cho phép CPU luân

phiên phục vụ các công việc để tăng đáp ứng của hệ thống

UNIX là một hệ điều hành được phát triển trong thời gian này và đến nay vẫn còn được

sử dụng

d Thế hệ thứ 4 (1980-hiện nay):

Mạch tích hợp với mật độ cao, mỗi vi mạch chứa hàng ngàn transitor

Máy tính cá nhân ra đời Hệ điều hành MS DOS ra đời gắn liền với máy tính IBM PC

Hệ điều hành mạng và hệ điều hành phân tán ra đời trong thời kỳ này Các hệ điều hành có giao diện đồ họa (GUI - Graphical User Interface) như Windows, Linux, … ra đời

1.2 Cấu trúc hệ thống máy tính

Trang 7

1.2.1 Bộ xử lý trung tâm: (CPU)

Là bộ não của máy tính CPU đọc lệnh từ bộ nhớ và thực thi lệnh Quá trình CPU đọc một lệnh và thực thi lệnh đó được gọi là một chu kỳ Một chu kỳ bao gồm:

Đọc lệnh từ bộ nhớ

Giải mã lệnh để xác định lệnh và các toán hạng của lệnh

Thi hành lệnh

Mỗi CPU có một tập lệnh riêng, CPU chỉ có thể thực thi các lệnh trong tập lệnh của nó Thời gian truy xuất bộ nhớ để lấy lệnh lâu hơn thời gian thi hành lệnh nên trong CPU có những thanh ghi để lưu trữ các giá trị quan trọng và kết quả tạm thời Trong tập lệnh có các lệnh để đọc các từ (word) từ bộ nhớ vào thanh ghi, và ghi các từ trong thanh ghi ra bộ nhớ

Hình 1.4 Cấu trúc hệ thống máy tính

Trong CPU còn có một số thanh ghi đặc biệt như :

Thanh ghi bộ đếm chương trình (program counter): để chứa địa chỉ của lệnh kế tiếp trong bộ nhớ CPU tự động cập nhật giá trị trong thanh ghi này mỗi khi lấy xong một lệnh

Con trỏ ngăn xếp (stack pointer): Chỉ vào đỉnh của ngăn xếp trong bộ nhớ

Thanh ghi từ trạng thái PSW (program status word): Chứa các bit điều khiển như kết

quả so sánh, độ ưu tiên CPU, chế độ hoạt động (user hoặc kernel), …

Hệ điều hành phải kiểm soát tất cả các thanh ghi đó, trong hệ điều hành đa chương, Hệ điều hành thường phải tạm ngưng một chương trình và cho phép một chương trình khác chạy, khi đó Hệ điều hành phải lưu tất cả nội dung các thanh ghi lại, và khôi phục lại cho các thanh ghi này khi chương trình đó được chạy tiếp

Để tăng tốc độ xử lý của CPU, người ta thiết kế CPU với cấu trúc superscalar (thay cho cấu trúc ống dẫn ba tầng-three-stage pipeline)

Monitor

Bus

Trang 8

Hình 1.5 a Cấu trúc ống dẫn ba tầng b Cấu trúc superscalar

Cấu trúc ống dẫn ba tầng:

Trong ống dẫn CPU có ba đơn vị là đơn vị lấy lệnh, đơn vị giải mã lệnh và đơn vị thực thi lệnh

Trong khi CPU thực thi lệnh n, nó có thể giải mã cho lệnh n+1, và lấy lệnh cho lệnh n+2

Cấu trúc superscalar: Cũng có cấu trúc ống dẫn nhưng có nhiều đơn vị thực thi lệnh (một cho xử lý số nguyên, một cho xử lý số chấm động, một cho xử lý Boolean) Có một hay nhiều đơn vị lấy lệnh, giải mã lệnh và các đơn vị giải mã lệnh này được nối với một bộ đệm trước khi đưa vào các đơn vị thực thi lệnh.Khi đơn vị thực thi lệnh nào rảnh thì lệnh ở bộ đệm được lấy ra và đưa cho đơn vị thực thi lệnh này xử lý

Hầu hết các CPU (ngoại trừ các CPU đơn giản sử dụng trong các hệ thống nhúng) có hai chế độ hoạt động là chế độ nhân (kernel) và chế độ người dùng (user) Chế độ hoạt động được điều khiển bởi một bit trong thanh ghi PSW

Ở chế độ kernel CPU có thể thi hành mọi lệnh trong tập lệnh và có thể sử dụng mọi tính năng của phần cứng Hệ điều hành chạy ở chế độ kernel và có thể truy xuất toàn bộ phần cứng

Ngược lại, các chương trình của người sử dụng chạy ở chế độ user, chỉ sử dụng một phần của tập lệnh CPU và một số tính năng của phần cứng Thông thường, các lệnh liên quan đến bảo vệ bộ nhớ và vào/ra không được thực hiện ở chế độ user

Hình 1.6 Chuyển đổi từ chế độ người dùng sang chế độ nhân

Để sử dụng các dịch vụ của hệ điều hành, chương trình của người sử dụng sẽ gọi các hàm của hệ điều hành Thao tác này được gọi là gọi hàm hệ thống (system call)

Khi chương trình người sử dụng gọi hàm hệ thống, chế độ hoạt động sẽ được chuyển từ

Trang 9

chế độ user sang chế độ kernel, và hệ điều hành sẽ được chạy Khi công việc hoàn tất, điều khiển sẽ được trả về cho chương trình của người sử dụng ngay sau lời gọi hàm hệ thống và chế độ chuyển về chế độ user

1.2.2 Bộ nhớ

Bộ nhớ là thành phần quan trọng thứ hai sau CPU trong hệ thống máy tính

Bộ nhớ được xây dựng theo cấu trúc phân cấp

Thanh ghi: Nằm bên trong CPU, tốc độ truy xuất rất nhanh Khả năng lưu trữ thông thường là 32x32 bits trong CPU 32 bits, 64x64 bits trong thanh ghi 64 bits

Hình 1.7 Cấu trúc phân cấp của bộ nhớ

Cache: Thường được điều khiển bởi phần cứng, được chia thành những đường cache (cache line), mỗi đường 64 bytes Nhưng đường cache thường dùng nhất sẽ ở gần CPU, khi chương trình cần đọc dữ liệu từ bộ nhớ, phần cứng cache sẽ kiểm tra xem dữ liệu có trên cache chưa, nếu có thì sẽ được đọc, nếu không thì mới đọc từ bộ nhớ chính

Bộ nhớ chính: Thường là RAM (Random Access Memory) Đây là chỗ chứa chương trình, dữ liệu chính để đưa vào CPU xử lý, dữ liệu sẽ mất đi nếu tắt máy tính

Đĩa từ (đĩa cứng): Dung lượng lớn hơn bộ nhớ chính, rẻ hơn so với bộ nhớ chính Tốc

độ truy xuất chậm hơn nhiều so với bộ nhớ chính Dùng để lưu chương trình và dữ liệu Khi tắt máy tính, dữ liệu trong đĩa cứng không bị mất

Đĩa cứng gồm nhiều lớp đĩa xếp chồng nhau, tốc độ quay 5400, 7200, 10800 vòng/phút Cánh tay mang nhiều đầu đọc di chuyển vào/ra để đọc và ghi dữ liệu

Thông tin được ghi trên đĩa theo những vòng tròn đồng tâm được gọi là track Các track

ở cùng một vị trí của cánh tay trên các đĩa gọi là cylinder Đầu đọc di chuyển từ cylinder này sang cylinder kế tiếp mất khoảng 1ms, và di chuyển đến cylinder bất kỳ mất khoảng từ 5-10ms

Trang 10

Hình 1.8 Cấu trúc của đĩa cứng

Mỗi track được chia nhỏ thành những sector, thông thường có 512bytes/sector Khi đầu đọc đã di chuyển đến đúng bị trí track phải đọc, đĩa phải quay để đầu đọc ở đúng vị trí của sector phải đọc, thời gian này khoảng 5-10ms, và đầu đọc bắt đầu đọc hay ghi dữ liệu Tốc độ đọc hay ghi khoảng 5MB/sec-150MB/sec

Trong máy tính còn có một bộ nhớ nhỏ gọi là ROM (Read Only Memory), dữ liệu trong ROM không mất đi khi ngưng cung cấp điện cho máy tính ROM được lập trình bởi nhà sản xuất và không thể thay đổi dữ liệu trong ROM Trong một số máy tính, chương trình khởi động máy tính được ghi ở trong ROM, một số card IO cũng có ROM để điều khiển thiết bị ở mức độ thấp EEPROM (Electrical Erasable ROM) và flash ROM là ROM mà có thể xoá và ghi lại được

Bộ nhớ chính cho phép chứa nhiều chương trình cùng một lúc Nếu một chương trình phải block (ngừng thi hành) để chờ đọc đĩa thì chương trình khác có thể sử dụng CPU (có thể chạy), điều này tăng hiệu suất CPU 7

Việc kiểm tra và biến đổi địa chỉ từ địa chỉ của chương trình (được gọi là địa chỉ ảo) sang địa chỉ thật trong bộ nhớ (địa chỉ vật lý) được thực hiện bởi đơn vị quản lý bộ nhớ (Memory Management Unit – MMU) Đơn vị này được thiết kế trong CPU hoặc ở gần CPU, tuy nhiên về mặt chức năng logic thì nằm giữa CPU và bộ nhớ Ví dụ một MMU có hai cặp thanh ghi base và limit, cặp thanh ghi base và limit thứ nhất dùng cho chương trình và cặp thanh ghi base và limit thứ hai dành cho dữ liệu của chương trình Như vậy hệ thống cho phép nhiều chương trình có thể sử dụng chung mã nguồn, và chỉ có một bản mã nguồn trong bộ nhớ

Khi chương trình thứ nhất chạy, hai cặp thanh ghi base và limit như ở hình 1.9 a, khi chương trình thứ hai chạy (chương trình này dùng chung mã nguồn với chương trình thứ nhất) như ở hình 1.9 b Việc chuyển từ chương trình này sang chương trình khác được gọi là chuyển ngữ cảnh (context switch)

Ngày đăng: 16/03/2015, 19:12

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w