Tải bản đầy đủ (.pdf) (313 trang)

Bài giảng Hệ điều hành - ThS. Nguyễn Thị Thùy Linh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.45 MB, 313 trang )

TRƯỜNG ĐẠI HỌC ĐỒNG THÁP
KHOA SƢ PHẠM TOÁN – TIN

BÀI GIẢNG

HỆ ĐIỀU HÀNH
Biên soạn : Ths. Nguyễn Thị Thùy Linh

LƢU HÀNH NỘI BỘ

ĐỒNG THÁP 11/2013


LỜI NÓI ĐẦU
Tài liệu đƣợc biên soạn chủ yếu dựa trên kiến thức tích lũy trong giảng dạy nhiều
năm về môn học của tác giả và cũng đƣợc tham khảo từ các nguồn về lý thuyết hệ điều
hành và nguyên lý hệ điều hành của các trƣờng Đại học Huế, Đại học Cần Thơ…
Tổng quan:
Bài giảng giới thiệu về các thế hệ hệ điều hành, các thành phần của hệ điều hành,
chức năng của hệ điều hành, các dịch vụ mà hệ điều hành cung cấp. Sau đó nghiên cứu
chi tiết chức năng các thành phần bên trong hệ điều hành: Quản lý tiến trình, Quản lý
bộ nhớ, Đồng bộ hóa tiến trình, Quản lý Deadlock, Quản lý và cài đặt hệ thống tập tin,
Quản lý đĩa.
Mục tiêu:
Kiến thức:
-

Hiểu đƣợc vai trò của hệ điều hành và cơ chế hoạt động của hệ điều hành

-


Hiểu các kiến trúc thiết kế hệ điều hành.

-

Hiểu các chiến lƣợc trong việc thiết kế các hệ điều hành hiện đại.

-

Biết những vấn đề phát sinh trong quá trình thiết kế hệ điều hành cũng nhƣ
những tiếp cận khác nhau đƣợc dùng để phân tích và giải quyết những vấn đề
đó.

-

Xem xét những chiến lƣợc hệ điều hành phổ biến và cách chúng tác động đến
những dịch vụ của các hệ điều hành hiện đại.

-

Vận dụng các chiến lƣợc trong việc thiết kế hệ điều hành để mơ phỏng lại trên
máy tính.

Kỹ năng:
-

Rèn luyện kỹ năng phân tích và giải quyết các bài tốn về chiến lƣợc trong việc
thiết kế các thành phần bên trong hệ điều hành.

-


Rèn luyện tƣ duy giải thuật, kỹ năng lập trình kỹ thuật mơ phỏng.

-

Kỹ năng làm việc nhóm, tự học, tự nghiên cứu.
1


Thái độ:
- Nhận thức đúng đắn về phía ngƣời thiết kế hệ điều hành trong hệ thống máy tính.
- Nâng cao ý thức tự học, tự nghiên cứu để mở rộng kiến thức.
Đối tượng:
Tài liệu dành cho ngƣời học cao đẳng và đại học chuyên ngành công nghệ thông
tin.
Yêu cầu:
Ngƣời học cần phải hiểu cấu trúc dữ liệu và giải thuật kèm theo ngơn ngữ lập
trình Pascal hoặc một trong các ngôn ngữ C/C++, Java, C#. Ngƣời học cũng cần biết
cấu trúc logic của một máy tính nói riêng cũng nhƣ mạng máy tính nói chung.
Nội dung: Tài liệu bao gồm có 5 chƣơng:
Chƣơng 1: Tổng quan về hệ điều hanh
Chƣơng 2: Quản lý tiến trình
Chƣơng 3: Quản lý bộ nhớ
Chƣơng 4: Quản lý tập tin và đĩa
Chƣơng 5: Quản lý hệ thống nhập/xuất

2


MỤC LỤC
LỜI NÓI ĐẦU ............................................................................................................................. 1

MỤC LỤC ................................................................................................................................... 3
DANH MỤC THUẬT NGỮ VIẾT TẮT .................................................................................... 6
CHƯ NG 1: TỔNG QU N VỀ HỆ ĐIỀU HÀNH ................................................................ 8
1.1. MỤC TIÊU ....................................................................................................................... 8
1.2. KHÁI NI M VỀ H ĐIỀU HÀNH ................................................................................. 8
1.3. CHỨC N NG H ĐIỀU HÀNH ................................................................................... 10
1.4. PH N LOẠI H ĐIỀU HÀNH ..................................................................................... 12
1.4.1. Hệ điều hành xử lý theo lô đơn chƣơng .................................................................. 12
1.4.2. Hệ thống xử lý theo lô đa chƣơng ........................................................................... 14
1.4.3. Hệ thống chia s thời gian ....................................................................................... 15
1.4.4. Hệ thống đa xử lý hệ thống song song .................................................................. 15
1.4.5. Hệ thống phân tán .................................................................................................... 17
1.4.6. Hệ thống xử lý thời gian thực .................................................................................. 18
1.4.7. Hệ xách tay .............................................................................................................. 18
1.5. L CH S PHÁT TRIỂN CỦA H ĐIỀU HÀNH ......................................................... 19
1.5.1. Thế hệ 1 1945 – 1955)............................................................................................ 19
1.5.2 Thế hệ 2 1955 – 1965)............................................................................................. 20
1.5.3. Thế hệ 3 1965 – 1980)............................................................................................ 20
1.5.4. Thế hệ 4 1980-nay ) ............................................................................................... 21
1.6. CẤU TR C CỦA H ĐIỀU HÀNH ............................................................................. 21
1.6.1. Các thành phần bên trong hệ điều hành ................................................................... 21
1.6.2. Các dịch vụ của hệ điều hành .................................................................................. 26
1.6.3. Lời gọi hệ thống ...................................................................................................... 27
1.6.4. Cấu trúc hệ điều hành .............................................................................................. 28
1.7. MỘT S H ĐIỀU HÀNH HI N ĐẠI ......................................................................... 38
1.7.1. Hệ điều hành Windows95........................................................................................ 38
1.7.2. Hệ điều hành Windows 2000................................................................................... 39
1.7.3. Hệ điều hành Linux ................................................................................................. 40
1.7.4. Hệ điều hành Windows 7......................................................................................... 41
1.7.5. Hệ điều hành Windows 8......................................................................................... 42

1.7.6. Hệ điều hành Android ............................................................................................. 42
1.8. TĨM TẮT ...................................................................................................................... 43
Câu hỏi ơn tập ........................................................................................................................ 44
TÀI LI U THAM KHẢO ..................................................................................................... 44
CHƯ NG 2: QUẢN L TIẾN TR NH ................................................................................ 45
2.1. MỤC TIÊU ..................................................................................................................... 45
2.2. TỔNG QUAN VỀ TIẾN TRÌNH ................................................................................... 45
2.2.1. Nhu cầu xử lý đồng hành ......................................................................................... 45
2.2.2. Khái niệm tiến trình ................................................................................................. 46
2.2.3. Phân loại tiến trình................................................................................................... 49
2.2.4. Tiểu trình Thread và mơ hình đa tiểu trình Multithread .................................... 51
2.3. TỔ CHỨC QUẢN LÝ TIẾN TRÌNH ............................................................................ 54
2.3.1. Các trạng thái của tiến trình..................................................................................... 54
2.3.2. Chế độ xử lý của tiến trình ...................................................................................... 60
3


2.3.3. Cấu trúc dữ liệu khối quản lý tiến trình ................................................................... 61
2.4. THAO TÁC TRÊN TIẾN TRÌNH ................................................................................. 62
2.4.1. Tạo lập tiến trình ..................................................................................................... 63
2.4.2. Kết thúc tiến trình .................................................................................................... 64
2.4.3. Khi tiến trình thay đổi trạng thái ............................................................................. 64
2.5. CẤP PHÁT TÀI NGUYÊN CHO TIẾN TRÌNH........................................................... 65
2.6. Đ NH THỜI BIỂU CPU ................................................................................................ 66
2.6.1. Giới thiệu ................................................................................................................. 67
2.6.2. Tổ chức định thời biểu ............................................................................................. 70
2.6.3. Các chiến lƣợc định thời biểu CPU ......................................................................... 75
2.7. ĐỒNG BỘ HĨA TIẾN TRÌNH ..................................................................................... 87
2.7.1. Liên lạc giữa các tiến trình ...................................................................................... 87
2.7.2. Các cơ chế thông tin liên lạc.................................................................................... 88

2.7.3. Nhu cầu đồng bộ hóa synchronisation .................................................................. 95
2.7.4. Tài nguyên găng và đoạn găng ................................................................................ 96
2.7.5. Đồng bộ tiến trình qua đoạn găng ......................................................................... 102
2.8. TẮC NGHẼN VÀ CH NG TẮC NGHẼN ................................................................. 125
2.8.1. Khái niệm tắc nghẽn .............................................................................................. 125
2.8.2. Đặc điểm của Deadlock ......................................................................................... 128
2.8.3. Các phƣơng pháp xử lý deadlock .......................................................................... 134
2.9. TĨM TẮT .................................................................................................................... 151
Câu hỏi ơn tập ...................................................................................................................... 153
Bài tập .................................................................................................................................. 156
TÀI LI U THAM KHẢO ................................................................................................... 160
CHƯ NG 3: QUẢN L BỘ NHỚ ...................................................................................... 161
3.1. MỤC TIÊU ................................................................................................................... 161
3.2. NHI M VỤ QUẢN LÝ BỘ NHỚ ............................................................................... 161
3.3. KIẾN THỨC NỀN ....................................................................................................... 164
3.3.1. Một chƣơng trình qua nhiều bƣớc xử lý ................................................................ 164
3.3.2. Không gian địa chỉ luận lý và không gian địa chỉ vật lý ....................................... 166
3.3.3. Bộ quản lý bộ nhớ MMU .................................................................................... 167
3.3.4. Phủ lắp Overlay .................................................................................................. 167
3.3.5. Hoán vị .................................................................................................................. 168
3.4. QUẢN LÝ BỘ NHỚ CHÍNH ...................................................................................... 170
3.4.1. Bộ nhớ cấp phát liên tục ........................................................................................ 170
3.4.2. Cấp phát không liên tục ......................................................................................... 182
3.5. QUẢN LÝ BỘ NHỚ ẢO ............................................................................................. 202
3.5.1. Khái niệm bộ nhớ ảo.............................................................................................. 203
3.5.2. Cài đặt bộ nhớ ảo ................................................................................................... 204
3.5.3. Kỹ thuật bộ nhớ ảo ................................................................................................ 208
3.6. TÓM TẮT .................................................................................................................... 222
Câu hỏi ôn tập ...................................................................................................................... 224
Bài Tập ................................................................................................................................ 225

TÀI LI U THAM KHẢO ................................................................................................... 230
CHƯ NG 4: QUẢN L TẬP TIN VÀ ĐĨ ....................................................................... 231
4.1. MỤC TIÊU ............................................................................................................... 231
4.2. TỔNG QUAN VỀ QUẢN LÝ TẬP TIN VÀ ĐĨA ...................................................... 232
4.2.1. Tập tin và hệ thống quản lý tập tin ........................................................................ 232
4


4.2.2. Bảng danh mục và tập tin chia s .......................................................................... 235
4.2.3. Quản lý không gian đĩa.......................................................................................... 238
4.2.4. Quản lý các block chứa tập tin trên đĩa ................................................................. 241
4.2.5. An toàn trong quản lý tập tin ................................................................................. 246
4.2.6. Hiệu suất hệ thống tập tin ...................................................................................... 251
4.3. MỘT S KHÁI NI M DÙNG TRONG QUẢN LÝ ĐĨA ........................................... 252
4.4. CÁC ĐIỀU KHIỂN H TH NG TẬP TIN ................................................................ 255
4.5. CÁC H TH NG TẬP TIN ĐƢỢC S DỤNG TRÊN CÁC H ĐIỀU HÀNH HI N
NAY 257
4.5.1. FAT12, FAT16, FAT32 ........................................................................................ 257
4.5.2. NTFS ..................................................................................................................... 258
4.5.3. CDFS ..................................................................................................................... 259
4.5.4. UDF ....................................................................................................................... 259
4.6. TỔ CHỨC ĐĨA CỦA MS-DOS ................................................................................... 259
4.6.1. FDISK .................................................................................................................... 259
4.6.2. Tổ chức logic của đĩa............................................................................................. 261
4.7. QUẢN LÝ TẬP TIN TRÊN ĐĨA CỦA MS-DOS ....................................................... 265
4.7.1. Boot sector ............................................................................................................. 266
4.7.2. File Allocation Table (FAT) .................................................................................. 268
4.7.3. Root Directory Bảng thƣ mục gốc ...................................................................... 274
4.7.4. Thƣ mục con Subdirectory .................................................................................. 279
4.8. TỔ CHỨC LƢU TRỮ TẬP TIN TRÊN ĐĨA CD_ROM ............................................ 281

4.8.1. Hệ thống tập tin ISO 9660 ..................................................................................... 282
4.8.2. Mở rộng Rock Ridge ............................................................................................. 283
4.8.3. Mở rộng Joliet ....................................................................................................... 283
4.9. TÓM TẮT .................................................................................................................... 284
Câu hỏi ôn tập ...................................................................................................................... 286
Bài tập .................................................................................................................................. 286
TÀI LI U THAM KHẢO ................................................................................................... 287
CHƯ NG 5: QUẢN L HỆ THỐNG NHẬP/XUẤT ....................................................... 291
5.1. MỤC TIÊU ................................................................................................................... 291
5.2. CÁC KHÁI NI M CƠ BẢN ........................................................................................ 291
5.3. PHẦN CỨNG NHẬP/XUẤT....................................................................................... 292
5.3.1. Thiết bị I/O ............................................................................................................ 292
5.3.2. Tổ chức của chức năng I/O .................................................................................... 293
5.4. GIAO DI N NHẬP/XUẤT ỨNG DỤNG ................................................................... 299
5.5. H TH NG CON NHẬP/XUẤT CỦA NH N KERNEL I/O SUBSYTEM .......... 302
5.5.1. Định thời biểu nhập/xuất ....................................................................................... 302
5.5.2. Vùng đệm .............................................................................................................. 303
5.5.3. Vùng lƣu trữ .......................................................................................................... 303
5.5.4. Vùng chứa.............................................................................................................. 304
5.5.5. Quản lý lỗi ............................................................................................................. 304
5.5.6. Cấu trúc dữ liệu nhân............................................................................................. 305
5.6. CHUYỂN NHẬP/XUẤT TỚI HOẠT ĐỘNG PHẦN CỨNG..................................... 305
5.7. N NG LỰC ................................................................................................................. 308
5.8. TÓM TẮT .................................................................................................................... 310
Câu hỏi ôn tập ...................................................................................................................... 311
Câu hỏi trắc nghiệm ............................................................................................................. 311
5


TÀI LI U THAM KHẢO ................................................................................................... 311


D NH MỤC THUẬT NGỮ VIẾT TẮT
K HIỆU
API
CDFS

THUẬT NGỮ
Application Programming Interface
CD-ROM File System

CLI
CPU
CRT
CS
CSDL
DMA
FAT
FCFS
FDD
FIFO
FSD
HDD
I/O device
IC
ISO

Clean Interrupt
Processor
Cathode-Ray Tube
Critical Section

Cơ sở dữ liệu
Direct Memory Access
File Allocation Table
First-Come, First-Served
Floppy Disk
First In First Out
File System Driver
Hard disk
Input/Output device
Integrated C rcuit
International Organization for
Standardization

KTCN
LCNs
LFU
LRU
LWP

Logical Cluster Numbers
The Least Frequently Used
Least-Recently-Used
Lightweight Process

MEM
MFT
MFU
MMU
MS-DOS
NRU

NTFS
OPT
OS
P
PC

Memory
Master File Table
The Most Frequently Used
Memory Management Unit
Microsoft Disk Operrating System
Not Recently Used
New Technology File System
Optimal
Operating System
Process
Personal Computer
6

NGHĨ
Là hệ thống tập tin đƣợc đƣa ra để
quản lý các tập tin, thƣ mục trên
các đĩa CD_ROM.
Cấm ngắt
Bộ xử lý
ng phóng điện tử chân không
Miền găng, đoạn găng
Truy xuất bộ nhớ trực tiếp
Bảng cấp phát tập tin
Đến trƣớc đƣợc phục vụ trƣớc

Đĩa mềm
Vào trƣớc ra trƣớc
Điều khiển hệ thống tập tin
Đĩa cứng
Thiết bị nhập/xuất
Mạch tích hợp
Tổ chức tiêu chuẩn hố quốc tế
Kiểm tra cập nhật
Số hiệu Cluster logic
Ít đƣợc dùng thƣờng xuyên nhất.
Lâu nhất chƣa sử dụng
Liên kết các tiểu trình của cùng
một tiến trình
Bộ nhớ
Trang đƣợc sử dụng nhiều nhất
Đơn vị quản lý bộ nhớ
Hệ điều hành MS-DOS
Không sử dụng gần đây
Hệ thống tập tin NTFS
Tối ƣu hóa
Hệ điều hành
Tiến trình, q trình
Máy tính cá nhân


PCB
PCT
PDA
PTBR
RID


Program Counter
Process Control Block
Page Control Table
Personal Digital Assistant
Page Table Base Register
Resource Identification

ROM
RR
SCT
SJF
STBR

Read Only Memory
Round Robin
Segment Control Table
Shortest Job First
Segment Table Base Register

STI
STLR

Setting Interrupt
Segment Table Length Register

THE
TLBs
TSL
UDF


Technische Hogeschool Eindhoven
Translation Look-aside Buffers
Test and Set

UMA
USER
VCNs

Uniform Memory Access
USER
Virtual Cluster Numbers

7

Nghĩa khác: Bộ đếm chƣơng trình
Khối điều khiển tiến trình
Bảng trang
Thiết bị kỹ thuật số hỗ trợ cá nhân
Thanh ghi nền bảng trang
Định danh của khối quản lý tài
nguyên
Bộ nhớ chỉ đọc
Bảng phân đoạn
Công việc ngắn nhất trƣớc
Thanh ghi nền của bảng phân
đoạn
Mở ngắt
Thanh ghi giới hạn của bảng phân
đoạn

Hệ điều hành THE
Bộ nhớ kết hợp
Kiểm tra khóa
Là hệ thống tập tin đƣợc đƣa ra để
quản lý các đĩa từ/quang, chủ yếu
là các đĩa DVD_ROM
Truy xuất bộ nhớ đồng nhất
Ngƣời dùng
Số hiệu Cluster ảo


CHƯ NG 1: TỔNG QU N VỀ HỆ ĐIỀU HÀNH
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 q 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
ngun 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ƣơng
8



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
ngun 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 đó.
Ngƣời dùng
1

Chƣơng trình

Ngƣời dùng
2

Ngƣời dùng
3

Hợp ngữ

Soạn thảo văn

dịch

Ngƣời dùng
4

CSDL

bản
Chƣơng trình ứng dụng


Hệ điều hành
Phần cứng
Hình 1.1. Mơ hình trừu tượng của hệ thống máy tính
Hệ điều hành có thể đƣợc coi nhƣ là bộ phân phối tài nguyên của máy tính. Nhiều
tài nguyên của máy tính nhƣ thời gian sử dụng CPU, không gian bộ nhớ, vùng lƣu trữ
tập tin, thiết bị nhập xuất v.v… đƣợc các chƣơng trình yêu cầu để giải quyết vấn đề. Hệ
điều hành hoạt động nhƣ một bộ quản lý các tài nguyên và phân phối chúng cho các
chƣơng trình và ngƣời dùng khi cần thiết. Do có rất nhiều yêu cầu, hệ điều hành phải
giải quyết vấn đề tranh chấp và phải quyết định cấp phát tài nguyên cho những yêu cầu
theo thứ tự nào để hoạt động của máy tính là hiệu quả nhất. Một hệ điều hành cũng có
thể đƣợc coi nhƣ là một chƣơng trình kiểm sốt việc sử dụng máy tính, đặc biệt khi
ngƣời dùng sử dụng các thiết bị nhập xuất.
Tuy nhiên, nhìn chung chƣa có định nghĩa nào là hoàn hảo về hệ điều hành. Hệ
điều hành tồn tại để giải quyết các vấn đề sử dụng hệ thống máy tính. Mục tiêu cơ bản
của nó là giúp cho việc thi hành các chƣơng trình d dàng hơn. Mục tiêu thứ hai là hỗ
9


trợ cho các thao tác trên hệ thống máy tính hiệu quả hơn. Mục tiêu này đặc biệt quan
trọng trong những hệ thống nhiều ngƣời dùng và trong những hệ thống lớn. Tuy nhiên
hai mục tiêu này cũng có phần tƣơng phản vì vậy

thuyết về hệ điều hành à đứng về

phía người thiết ế ra hệ điều hành n n t p trung vào việc tối ưu h a việc s dụng tài
nguy n của máy tính à quan trọng nh t
1.3. CHỨC N NG HỆ ĐIỀU HÀNH
Để đạt mục tiêu trên hệ điều hành thực hiện hai chức năng chính nhƣ sau:
-


Gi

p một máy tính m rộng: Máy tính là một thiết bị vi điện tử, nó đƣợc cấu

thành từ các bộ phận nhƣ: Bộ xử lý, bộ nhớ, thiết bị nhập/xuất, BUS, ... Do đó, để
làm việc với máy tính ngƣời dùng phải hiểu đƣợc cơ chế hoạt động của các bộ phận
này và phải tác động trực tiếp vào nó, tất nhiên là dùng m máy ký số 0,1 . Điều
này là quá khó đối với ngƣời dùng. Để đơn giản hơn, hệ điều hành phải che dấu hết
các chi tiết phức tạp của phần cứng máy tính bởi một một máy tính m rộng. Máy
tính mở rộng này có đầy đủ các chức năng của một máy tính thực nhƣng đơn giản
và d sử dụng. Theo đó khi cần tác động vào máy tính thực ngƣời sử dụng chỉ cần
tác động vào máy tính mở rộng, mọi sự chuyển đổi thông tin điều khiển từ máy tính
mở rộng sang máy tính thực hoặc ngƣợc lại điều do hệ điều hành thực hiện. Mục
đích của chức năng này là: giúp ngƣời sử dụng khai thác các chức năng phần cứng
máy tính d dàng và hiệu quả hơn.
-

Qu n

tài nguy n hệ thống gồm Bộ xử lý, bộ nhớ, thiết bị nhập/xuất, tập tin,...

Đây là những tài nguyên cơ bản mà hệ điều hành cấp phát cho các tiến trình trong
khi điều khiển sự hoạt động của hệ thống.
Khi ngƣời dùng cần thực hiện một chƣơng trình hay khi một chƣơng trình cần
nạp thêm một tiến trình mới vào bộ nhớ thì hệ điều hành phải cấp phát khơng gian nhớ
cho chƣơng trình, tiến trình đó để chƣơng trình, tiến trình đó nạp đƣợc vào bộ nhớ và
hoạt động đƣợc. Trong môi trƣờng hệ điều hành đa nhiệm có thể có nhiều chƣơng
trình, tiến trình đồng thời cần đƣợc nạp vào bộ nhớ, nhƣng không gian lƣu trữ của bộ
nhớ có giới hạn, do đó hệ điều hành phải tổ chức cấp phát bộ nhớ sao cho hợp lý để

đảm bảo tất cả các chƣơng trình, tiến trình khi cần đều đƣợc nạp vào bộ nhớ để hoạt
động. Ngoài ra hệ điều hành c n phải tổ chức bảo vệ các không gian nhớ đ cấp cho
các chƣơng trình, tiến trình để tránh sự truy cập bất hợp lệ và sự tranh chấp bộ nhớ
10


giữa các chƣơng trình, tiến trình, đặc biệt là các tiến trình đồng thời hoạt động trên hệ
thống. Đây là một trong những nhiệm vụ quan trọng của hệ điều hành.
Trong quá trình hoạt động của hệ thống, đặc biệt là các hệ thống đa ngƣời dùng,
đa chƣơng trình, đa tiến trình, c n xuất hiện một hiện tƣợng khác, đó là nhiều chƣơng
trình, tiến trình đồng thời sử dụng một không gian nhớ hay một tập tin dữ liệu, chƣơng
trình nào đó. Trong trƣờng hợp này hệ điều hành phải tổ chức việc chia s và giám sát
việc truy xuất đồng thời trên các tài nguyên nói trên sao cho việc sử dụng tài nguyên có
hiệu quả nhƣng tránh đƣợc sự mất mát dữ liệu và làm hỏng các tập tin.
Trên đây là hai dẫn chứng điển hình để chúng ta thấy vai tr của hệ điều hành
trong việc quản lý tài nguyên hệ thống, sau này chúng ta sẽ thấy việc cấp phát, chia s ,
bảo vệ tài nguyên của hệ điều hành là một trong những công việc khó khăn và phức tạp
nhất. Hệ điều hành đ tốn nhiều chi phí cho cơng việc nói trên để đạt đƣợc mục tiêu:
Trong mọi trƣờng hợp tất cả các chƣơng trình, tiến trình nếu cần đƣợc cấp phát tài
nguyên để hoạt động thì sớm hay muộn nó đều đƣợc cấp phát và đƣợc đƣa vào trạng
thái hoạt động.
Các nhà thiết kế hệ điều hành luôn hƣớng tới việc phát triển một hệ điều hành
ngày càng thân thiện d sử dụng, c c

u

n

n


t

c

nc cc

cn n

sau1:
-

Hệ điều hành cho phép thực hiện nhiều chương trình đồng thời trong mơi
trường đa tác vụ (đa nhiệm). Hệ điều hành đa nhiệm bao gồm: Windows NT,
Windows 2000, Linux và OS/2. Trong hệ thống đa nhiệm, hệ điều hành phải xác
định khi nào thì một ứng dụng đƣợc chạy và mỗi ứng dụng đƣợc chạy trong
khoản thời gian bao lâu thì phải dừng lại để cho các ứng dụng khác đƣợc chạy.

-

Hệ điều hành tự nạp n vào bộ nhớ: Quá trình nạp hệ điều hành vào bộ nhớ
đƣợc gọi là quá trình Booting. Chỉ khi nào hệ điều hành đ đƣợc nạp vào bộ nhớ
thì nó mới cho ph p ngƣời dùng giao tiếp với phần cứng. Trong các hệ thống có
nhiều ứng dụng đồng thời hoạt động trên bộ nhớ thì hệ điều hành phải chịu trách
nhiệm chia s không gian bộ nhớ RAM và bộ nhớ cache cho các ứng dụng này.

-

Hệ điều hành và API (Application Programming Interface): là một tập các
hàm/thủ tục đƣợc xây dựng sẵn bên trong hệ thống, nó có thể thực hiện đƣợc


1

Nguy n Kim Tuấn, Giáo trình lý thuyết hệ điều hành, ĐH Huế, 2004,Tr.3.

11


nhiều chức năng khác nhau nhƣ shutdown hệ thống, đảo ngƣợc hiệu ứng màn
hình, khởi động các ứng dụng,… Hệ điều hành giúp cho chƣơng trình của ngƣời
dùng giao tiếp với API hay thực hiện một lời gọi đến các hàm/thủ tục của API.
-

Nạp dữ iệu cần thiết vào bộ nhớ: Dữ liệu do ngƣời dùng cung cấp đƣợc đƣa
vào bộ nhớ để xử lý. Khi nạp dữ liệu vào bộ nhớ hệ điều hành phải lƣu lại địa
chỉ của bộ nhớ nơi mà dữ liệu đƣợc lƣu ở đó. Hệ điều hành phải luôn theo dõi
bản đồ cấp phát bộ nhớ, nơi dữ liệu và chƣơng trình đƣợc lƣu trữ ở đó. Khi một
chƣơng trình cần đọc dữ liệu, hệ điều hành sẽ đến các địa chỉ bộ nhớ nơi đang
lƣu trữ dữ liệu mà chƣơng trình cần đọc để đọc lại nó.

-

Hệ điều hành bi n dịch các chỉ thị chương trình: Hệ điều hành phải đọc và giải
m các thao tác cần đƣợc thực hiện, nó đƣợc viết trong chƣơng trình của ngƣời
dùng. Hệ điều hành cũng chịu trách nhiệm sinh ra thông báo lỗi khi hệ thống
gặp lỗi trong khi đang hoạt động.

-

Hệ điều hành qu n


tài nguy n: Nó đảm bảo việc sử dụng thích hợp tất cả các

tài nguyên của hệ thống nhƣ là: bộ nhớ, đĩa cứng, máy in, …
1.4. PH N LOẠI HỆ ĐIỀU HÀNH
Có nhiều cách khác nhau để phân loại hệ điều hành, ở đây chúng tôi dựa vào cách
mà hệ điều hành thực hiện các công việc, các tác vụ, các tiến trình của ngƣời dùng để
phân loại hệ điều hành.
1.4.1. Hệ điều hành xử lý theo lô đơn chương
Hệ điều hành loại này thực hiện các tác vụ ần ượt theo những chỉ thị đ đƣợc
xác định trƣớc. Khi một tác vụ chấm dứt thì hệ thống sẽ tự động thực hiện tác vụ tiếp
theo mà không cần sự can thiệp từ bên ngồi, do đó hệ thống đạt tốc độ thực hiện cao.
Để thực hiện đƣợc điều này hệ điều hành phải có bộ giám sát thƣờng trực.
Bộ giám sát thường trực: Khi một công việc chấm dứt, hệ thống sẽ thực hiện
công việc kế tiếp mà khơng cần sự can thiệp của ngƣời lập trình, do đó thời gian thực
hiện sẽ mau hơn. Một chƣơng trình, c n gọi là bộ giám sát thƣờng trực đƣợc thiết kế để
giám sát việc thực hiện d y các cơng việc một cách tự động, chƣơng trình này ln
ln thƣờng trú trong bộ nhớ chính.

12


Hệ điều hành
Vùng chƣơng
trình ngƣời
dùng

Bản 1.1. S p xếp bộ nhớ của hệ thống x

theo ô đơn chương


Môi trƣờng sử dụng
Nhập cơng việc

Mơi trƣờng máy tính

Hàng đợi cơng việc
Kết quả

n

2. Cài đ t hàng đợi các công việc người d ng

Trong hệ điều hành này khi hệ thống cần thực hiện một cơng việc thì nó phải lƣu
chƣơng trình và dữ liệu của các công việc vào hàng đợi các cơng việc, sau đó sẽ thực
hiện lần lƣợt từng bộ chƣơng trình và dữ liệu của cơng việc tƣơng ứng trong hàng đợi
và cho ra lần lƣợt các kết quả. B ng 1 1 ở trên minh họa cho sự hoạt động của hệ thống
theo lô đơn chƣơng.
Với cách tổ chức hàng đợi cơng việc, thì hệ thống khơng thể thay đổi chƣơng
trình và dữ liệu của các cơng việc ngay cả khi chúng c n nằm trong hàng đợi, đây là
một hạn chế. Mặt khác trong quá trình thực hiện công việc nếu công việc chuyển sang
truy xuất trên thiết bị vào/ra thì CPU rơi vào trạng thái chờ điều này gây l ng phí thời
gian xử lý của CPU. Các thao tác khác của hệ điều hành xử lý theo lô đơn chƣơng:
-

CPU và thao tác nh p xu t: CPU thƣờng hay nhàn rỗi do tốc độ làm việc của
các thiết bị nhập xuất thƣờng là thiết bị cơ chậm hơn rất nhiều lần so với các
thiết bị điện tử CPU . Cho dù là một CPU chậm nhất, nó cũng nhanh hơn rất
nhiều lần so với thiết bị nhập xuất. Do đó phải có các phƣơng pháp để đồng bộ
hóa việc hoạt động của CPU và thao tác nhập xuất.


13


-

X

off_ ine: Thay vì CPU phải đọc trực tiếp từ thiết bị nhập và xuất ra thiết bị

xuất, hệ thống dùng một bộ lƣu trữ trung gian. CPU chỉ thao thác với bộ phận
lƣu trữ trung gian này.
-

Spool (simultaneous peripheral operation online : là đồng bộ hóa các thao tác
bên ngoài online. Cơ chế này cho ph p xử lý của CPU là online, sử dụng đĩa để
lƣu các dữ liệu nhập/xuất.

1.4.2. Hệ thống xử lý theo lô đa chương
Một trong những hạn chế của hệ điều hành xử lý theo lơ đơn giản là l ng phí thời
gian xử lý của CPU khi công việc hiện tại truy xuất đến thiết bị vào/ra. Hệ điều hành
xử lý theo lô đa chƣơng sẽ khắc phục hạn chế này.
Hệ điều hành
Công việc 1
Công việc 2
Công việc 3
Công việc 4
Bản

2. S p xếp bộ nhớ của hệ thống x


theo ô đa chương

Khi có nhiều cơng việc cùng truy xuất lên thiết bị, vấn đề lập lịch cho các công
việc là cần thiết. Khía cạnh quan trọng nhất trong việc lập lịch là khả năng đa chƣơng
(multiprogram). Mục ti u của n

à gia tăng hiệu su t s dụng CPU b ng cách t chức

các công việc sao cho CPU uôn uôn ph i trong trạng thái àm việc.
Hệ điều hành loại này có khả năng thực hiện nhiều cơng việc, nhiều chƣơng trình
đồng thời. Khi cần thực hiện nhiều cơng việc đồng thời hệ điều hành sẽ nạp một phần
m lệnh và dữ liệu vào bộ nhớ các phần c n lại sẽ đƣợc nạp sau tại thời điểm thích
hợp và tất cả đều ở trạng thái sẵn sàng thực hiện. Sau đó hệ điều hành dùng bộ định
thời CPU chọn ra một cơng việc nào đó và cho nó thực thi trong CPU, nhƣng khi công
việc đang thực hiện cần truy xuất thiết bị vào/ra thì CPU sẽ đƣợc chuyển sang thực
hiện các công việc khác, và cứ nhƣ thế hệ điều hành tổ chức chuyển hƣớng CPU để
14


thực hiện hết các phần công việc trong bộ nhớ cũng nhƣ các công việc mà hệ thống yêu
cầu.
Hệ điều hành loại này mang lại hai ƣu điểm đó là tiết iệm được bộ nhớ, vì hơng
nạp hết mã ệnh và dữ iệu của các công việc vào bộ nhớ, và hạn chế thời gian rỗi của
CPU. Tuy nhiên nó phải trả chi phí cao cho việc lập lịch CPU, tức là khi CPU r nh hệ
điều hành phải xem x t nên chuyển nó cho cơng việc nào trong số các công việc đang
đợi ở trạng thái sẵn sàng. Ngoài ra hệ điều hành c n phải giải quyết việc chia s bộ nhớ
chính cho các cơng việc khác nhau. Hệ điều hành MS-DOS là hệ điều hành đơn nhiệm,
đa chƣơng.
Với hệ đa chƣơng hệ điều hành ra quyết định cho ngƣời dùng. Vì vậy, hệ điều
hành đa chƣơng rất tinh vi. Hệ phải xử lý các vấn đề lập lịch cho công việc, lập lịch

cho bộ nhớ và cho cả CPU.
1.4.3. Hệ thống chia s thời gian
Hệ thống chia s thời gian là một mở rộng logic của hệ đa chƣơng. Hệ thống này
c n đƣợc gọi là hệ thống đa nhiệm nhƣ Windows 9x/NT. Chia sẻ thời gian
à chia sẻ thời gian x

đây chính

của CPU cho các cơng việc, các tiến trình đang ở trong trạng

thái sẵn sàng thực hiện. Mục ti u của n

à cung c p cơ chế cho phép người d ng giao

tiếp với mỗi chương trình trong hi chạy.
Nguyên tắc của hệ điều hành chia s thời gian tƣơng tự nhƣ trong hệ điều hành xử
lý theo lô đa chƣơng nhƣng việc chuyển CPU từ tác vụ, tiến trình này sang tác vụ, tiến
trình khác khơng phụ thuộc vào việc tác vụ, tiến trình hiện tại có truy xuất đến thiết bị
vào/ra hay không mà chỉ phụ thuộc vào sự điều phối CPU của hệ điều hành. Công việc
điều phối CPU của hệ điều hành rất phức tạp phụ thuộc vào nhiều yếu tố khác nhau,
chúng ta sẽ đề cập đến vấn đề này trong chƣơng sau của tài liệu này.
Hệ điều hành chia s phức tạp hơn hệ điều hành đa chƣơng. Nó phải có các chức
năng: quản trị và bảo vệ bộ nhớ, sử dụng bộ nhớ ảo. Nó cũng cung cấp hệ thống tập tin
truy xuất online…Hệ điều hành chia s là kiểu của các hệ điều hành hiện đại ngày nay.
1.4.4. Hệ thống đa xử lý hệ thống song song)

15


Ngồi hệ thống một bộ xử lý c n có các hệ thống c nhiều bộ x


c ng chia sẻ

hệ thống đường truyền dữ iệu, đồng hồ, bộ nhớ và các thiết bị ngoại vi. Các bộ xử lý
này liên lạc bên trong với nhau.

n
Có n
-

u n uyên n ân xây d n

3. Hệ thống đa x
t ốn d n n y:

Thông ượng được gia tăng: Với sự gia tăng số lƣợng bộ xử lý, công việc đƣợc
thực hiện nhanh chóng hơn, Nhƣng khơng phải theo đúng tỉ lệ thời gian, nghĩa
là có n bộ xử lý khơng có nghĩa là sẽ thực hiện nhanh hơn n lần. Vì 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.

-

Tính inh 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.

-

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 đó,
tồ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 2.

2

Nguy n Phú Trƣờng, Giáo trình hệ điều hành, ĐH Cần Thơ, 2005,tr.8

16


Hệ thống đa xử lý thông thƣờng sử dụng cách đa x

đối xứng, trong cách này

mỗi bộ xử lý chạy với một bản sao của hệ điều hành, những bản sao này liên lạc với
nhau khi cần thiết. Một ví dụ về hệ thống xử lý đối xứng là phiên bản Encore của
UNIX cho máy tính Multimax. Hệ thống này có hàng chục bộ xử lý. Ƣu điểm của nó là
nhiều tiến trình có thể thực hiện cùng lúc. Một hệ thống đa xử lý cho ph p nhiều công
việc và tài nguyên đƣợc chia s tự động trong những bộ xử lý khác nhau.
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.
Một số hệ thống sử dụng đa x


b t đối xứng, trong đó mỗi bộ xử lý đƣợc giao

một công việc riêng biệt. Một bộ xử lý chính kiểm sốt tồn bộ hệ thống, các bộ xử lý
khác thực hiện theo lệnh của bộ xử lý chính hoặc theo những chỉ thị đ đƣợc định
nghĩa trƣớc. Mơ hình này theo dạng quan hệ chủ tớ. Bộ xử lý chính sẽ lập lịch cho các
bộ xử lý khác.
1.4.5. Hệ thống phân tán
Hệ thống này cũng tƣơng tự nhƣ hệ thống chia s thời gian nhƣng các bộ xử lý
không chia s bộ nhớ và đồng hồ, thay vào đó mỗi bộ xử lý có bộ nhớ cục bộ riêng.
Các bộ x

thông tin với nhau thông qua các đường truyền thông như những bus tốc

độ cao hay đường dây điện thoại.
Các bộ xử lý trong hệ phân tán thƣờng khác nhau về kích thƣớc và chức năng. Nó
có thể bao gồm máy vi tính, trạm làm việc, máy mini, và những hệ thống máy lớn. Các
bộ xử lý thƣờng đƣợc tham khảo với nhiều tên khác nhau nhƣ Site, Node, Computer
v.v.... tùy thuộc vào trạng thái làm việc của chúng.
C c n uyên n ân p ả xây d n
-

t ốn p ân t n l :

Chia sẻ tài nguy n: Một ngƣời dùng A có thể sử dụng máy in của ngƣời dùng B
và ngƣời dùng B có thể truy xuất những tập tin của A. Tổng quát, chia s tài
nguyên trong hệ thống phân tán cung cấp một cơ chế để chia s tập tin ở vị trí
xa, xử lý thơng tin trong một cơ sở dữ liệu phân tán, in ấn tại một vị trí xa, sử
dụng những thiết bị ở xa để thực hiện các thao tác.


17


-

Tăng tốc độ tính tốn: Một thao tác tính tốn đƣợc chia làm nhiều phần nhỏ
cùng thực hiện một lúc. Hệ thống phân tán cho ph p phân chia việc tính tốn
trên nhiều vị trí khác nhau để tính tốn song song.

-

An tồn: Nếu một vị trí trong hệ thống phân tán bị hỏng, các vị trí khác vẫn tiếp
tục làm việc.

-

Thơng tin i n ạc với nhau: Có nhiều lúc, chƣơng trình cần chuyển đổi dữ liệu
từ vị trí này sang vị trí khác. Ví dụ trong hệ thống Windows, thƣờng có sự chia
s và chuyển dữ liệu giữa các cửa sổ. Khi các vị trí đƣợc nối kết với nhau trong
một hệ thống mạng, việc trao đổi dữ liệu di n ra rất d . Ngƣời dùng có thể
chuyển tập tin hay các Email cho nhau từ cùng vị trí hay những vị trí khác.

1.4.6. Hệ thống xử lý thời gian thực
Hệ thống x

thời gian thực được s dụng hi c những đòi hỏi h t he về thời

gian tr n các thao tác của bộ x

ho c dịng dữ iệu, nó thƣờng đƣợc dùng điều khiển


các thiết bị trong các ứng dụng tận hiến. Máy tính phân tích dữ liệu và có thể chỉnh các
điều khiển giải quyết cho dữ liệu nhập.
Một hệ điều hành xử lý thời gian thực phải đƣợc định nghĩa tốt, thời gian xử lý
nhanh. Hệ thống phải cho kết quả chính xác trong khoảng thời gian bị thúc p nhanh
nhất. Có hai hệ thống xử lý thời gian thực là hệ thống thời gian thực cứng và hệ thống
thời gian thực mềm..
Hệ thống thời gian thực cứng là cơng việc đƣợc hồn tất đúng lúc. Lúc đó dữ liệu
thƣờng đƣợc lƣu trong bộ nhớ ngắn hạn hay trong ROM. Việc xử lý theo thời gian thực
sẽ xung đột với tất cả hệ thống liệt kê ở trên.
Dạng thứ hai là hệ thống thời gian thực mềm, mỗi cơng việc có một độ ƣu tiên
riêng và sẽ đƣợc thi hành theo độ ƣu tiên đó. Có một số lĩnh vực áp dụng hữu hiệu
phƣơng pháp này là các ứng dụng đa phƣơng tiện.
1.4.7. Hệ xách tay
Hệ xách tay gồm các máy ỹ thu t số hỗ trợ cá nhân (personal digital assistantsPDAs nhƣ Palm hay điện thoại di động với nối kết 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ề ích thƣớc của
thiết bị. Thí dụ, một PDA điển hình cao khoảng 12,7cm và rộng khoảng 7,62cm và
18


trọng lƣợng của nó ít hơn 225g. 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à 8MB 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ả. 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 mà ngƣời phát triển cần quan tâm đến là tốc độ của bộ xử lý đƣợc
dùng trong thiết bị. 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 yêu cầu nhiều pin hơn và phải đƣợc nạp
lại thƣờng xun. Để tối thiểu hố 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ỏ. Màn hình cho thiết bị xách tay thƣờng có diện tích
khơng q 7,62cm. Những tác vụ quen thuộc nhƣ đọc email 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 web là cắt xén web, ở đó 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.
1.5. L CH S

PHÁT TRIỂN CỦ HỆ ĐIỀU HÀNH

1.5.1. Thế hệ 1 1945 – 1955)
Vào khoảng giữa thập niên 1940, Howard Aiken ở Havard và John Von Neumann
ở Princeton, đ thành cơng trong việc xây dựng máy tính dùng ống chân không. Những
máy này rất lớn với hơn 10000 ống chân không nhƣng chậm hơn nhiều so với máy r
nhất ngày nay3.
Mỗi máy đƣợc một nhóm ngƣời thực hiện tất cả các khâu từ thiết kế, xây dựng
lập trình, thao tác đến quản lý. Lập trình bằng ngơn ngữ máy tuyệt đối, thƣờng là bằng

3

Nguy n Hạnh Nhi, Bài giảng điện tử hệ điều hành nâng cao, Trƣờng Đại học Khoa học Tự nhiên

19


cách dùng bảng điều khiển để thực hiện các chức năng cơ bản. Ngơn ngữ lập trình chƣa

đƣợc biết đến và hệ điều hành cũng chưa nghe đến.
Vào đầu thập niên 1950, phiếu đục lổ ra đời và có thể viết chƣơng trình trên phiếu
thay cho dùng bảng điều khiển.
1.5.2 Thế hệ 2 1955 – 1965)
Sự ra đời của thiết bị bán dẫn vào giữa thập niên 1950 làm thay đổi bức tranh
tổng thể. Máy tính trở nên đủ tin cậy hơn. Nó đƣợc sản xuất và cung cấp cho các khách
hàng. Lần đầu tiên có sự phân chia rõ ràng giữa ngƣời thiết kế, ngƣời xây dựng, ngƣời
vận hành, ngƣời lập trình, và ngƣời bảo trì.
Để thực hiện một cơng việc một chƣơng trình hay một tập hợp các chƣơng
trình , lập trình viên trƣớc hết viết chƣơng trình trên giấy bằng hợp ngữ hay
FORTRAN sau đó đục lỗ trên phiếu và cuối cùng đƣa phiếu vào máy. Sau khi thực
hiện xong nó sẽ xuất kết quả ra máy in.
Hệ thống x

theo ơ ra đời, nó lƣu các u cầu cần thực hiện lên băng từ, và hệ

thống sẽ đọc và thi hành lần lƣợt. Sau đó, nó sẽ ghi kết quả lên băng từ xuất và cuối
cùng ngƣời dùng sẽ đem băng từ xuất đi in.
Hệ thống xử lý theo lô hoạt động dƣới sự điều khiển của một chƣơng trình đặc
biệt là tiền thân của hệ điều hành sau này. Ngơn ngữ lập trình sử dụng trong giai đoạn
này chủ yếu là FORTRAN và hợp ngữ.
1.5.3. Thế hệ 3 1965 – 1980)
Trong giai đoạn này, máy tính đƣợc sử dụng rộng r i trong khoa học cũng nhƣ
trong thƣơng mại. Máy IBM 360 là máy tính đầu tiên sử dụng mạch tích hợp IC . Từ
đó kích thƣớc và giá cả của các hệ thống máy tính giảm đáng kể. Các thiết bị ngoại vi
dành cho máy xuất hiện ngày càng nhiều và thao tác điều khiển bắt đầu phức tạp.
Hệ điều hành ra đời nhằm điều phối, kiểm soát hoạt động và giải quyết các yêu
cầu tranh chấp thiết bị. Chƣơng trình hệ điều hành dài cả triệu d ng hợp ngữ và do
hàng ngàn lập trình viên thực hiện.
Sau đó, hệ điều hành đa chương ra đời, có nhiều cơng việc cùng xuất hiện trong

bộ nhớ. CPU không bao giờ r nh. Bộ nhớ đƣợc chia làm nhiều phần để lƣu các công
việc khác nhau, khi một công việc chờ thực hiện nhập xuất, CPU sẽ xử lý các công
20


việc khác. Tuy nhiên khi có nhiều cơng việc cùng tồn tại trong bộ nhớ, vấn đề là phải
có một cơ chế bảo vệ tránh các công việc ảnh hƣởng đến nhau.
Giai đoạn này cũng đánh dấu sự ra đời của hệ điều hành chia sẻ thời gian nhƣ
CTSS4 của MIT5. Đồng thời các hệ điều hành lớn ra đời nhƣ MULTICS, UNIX và hệ
thống các máy mini cũng xuất hiện nhƣ DEC PDP-1.
1.5.4. Thế hệ 4 1980-nay )
Giai đoạn này đánh dấu sự ra đời của máy tính cá nhân, đặc biệt là hệ thống IBM
PC với hệ điều hành MS-DOS và Windows sau này. Bên cạnh đó là sự phát triển mạnh
của các hệ điều hành tựa Unix trên nhiều hệ máy khác nhau nhƣ Linux. Ngoài ra, từ
đầu thập niên 90 cũng đánh dấu sự phát triển mạnh mẽ của hệ điều hành mạng và hệ
điều hành phân tán.
Các chuyên gia về kiến trúc máy tính cũng dự đốn thế hệ thứ 5 dành cho các
máy tính xử lý song song. Thế hệ của những máy tính thơng minh, dựa trên các ngơn
ngữ trí tuệ nhân tạo nhƣ LISP và PROLOG,... và các giao diện ngƣời – máy. Năm
2004, Robot thông minh gần giống con ngƣời nhất là ASIMO Advanced Step
Innovative Mobility: Bƣớc chân tiên tiến của đổi mới và chuyển động .
1.6. CẤU TR C CỦ HỆ ĐIỀU HÀNH
1.6.1. Các thành phần ên trong hệ điều hành
1.6.1.1. Quản lý tiến trình
Một chƣơng trình khơng thực hiện đƣợc gì cả nếu nhƣ nó khơng đƣợc CPU thi
hành. Một t ến tr n

à một chương trình đang được thực thi, nhƣng ý nghĩa của nó

c n rộng hơn. Một cơng việc theo lơ là một tiến trình. Một chƣơng trình ngƣời dùng

chia s thời gian là một tiến trình, một cơng việc của hệ thống nhƣ soopling xuất ra
máy in cũng là một tiến trình. Một tiến trình ph i s dụng tài nguy n như thời gian s
dụng CPU, hông gian bộ nhớ, t p tin, các thiết bị nh p xu t,

đ hồn t t cơng việc

của mình. Các tài nguyên này đƣợc cung cấp khi tiến trình đƣợc tạo hay trong quá trình
thi hành. Khi tiến trình đƣợc tạo, nó sử dụng rất nhiều tài nguyên vật lý và luận lý. Ví
dụ, khảo sát tiến trình hiển thị trạng thái của tập tin lên màn hình. Đầu vào của tiến

4
5

Bộ máy tính chia s thời gian thực khổng lồ đƣợc gọi là CTSS
Viện công nghệ Massachusetts MIT vào giữa những năm 1960

21


trình là tên tập tin, và tiến trình sẽ thực hiện những chỉ thị thích hợp, thực hiện lời gọi
hệ thống để nhận đƣợc những thông tin mong muốn và hiển thị nó lên màn hình. Khi
tiến trình kết thúc, hệ điều hành sẽ thu hồi các tài nguyên trƣớc đây đ cấp phát cho
tiến trình.
Một tiến trình đƣợc coi là một đơn vị làm việc của hệ thống. Một hệ thống có thể
có nhiều tiến trình cùng lúc, trong đó một số tiến trình là của hệ điều hành, một số tiến
trình là của ngƣời dùng. các tiến trình này có thể di n ra đồng thời.
Va trị của

u


n tron v c quản lý t ến tr n l :

-

Tạo và hủy các tiến trình của ngƣời dùng và của hệ thống.

-

Ngƣng và kích hoạt lại một tiến trình.

-

Cung cấp cơ chế đồng bộ tiến trình.

-

Cung cấp các thơng tin liên lạc giữa các tiến trình.

-

Cung cấp cơ chế quản lý deadlock xem chƣơng2 .

1.6.1.2. Quản lý ộ nhớ chính
Trong hệ thống máy tính hiện đại, bộ n ớ c ín (Physical Memory) là trung tâm
của các thao tác, xử lý. Bộ nhớ chính có thể xem nhƣ một mảng kiểu Byte hay kiểu
word. Mỗi phần tử đều có địa chỉ. Đó là nơi lƣu dữ liệu đƣợc CPU truy xuất một cách
nhanh chóng so với các thiết bị nhập/xuất. CPU đọc những chỉ thị từ bộ nhớ chính. Các
thiết bị nhập/xuất cài đặt cơ chế DMA xem chƣơng 4 cũng đọc và ghi dữ liệu trong
bộ nhớ chính. Thơng thƣờng bộ nhớ chính chứa các thiết bị mà CPU có thể định vị trực
tiếp. Ví dụ CPU truy xuất dữ liệu từ đĩa, những dữ liệu này đƣợc chuyển vào bộ nhớ

qua lời gọi hệ thống nhập/xuất.
Một chƣơng trình muốn thi hành trƣớc hết phải đƣợc ánh xạ thành địa chỉ tuyệt
đối và nạp vào bộ nhớ chính. Khi chƣơng trình thi hành, hệ thống truy xuất các chỉ thị
và dữ liệu của chƣơng trình trong bộ nhớ chính. Ngay cả khi tiến trình kết thúc, dữ liệu
vẫn c n trong bộ nhớ chính cho đến khi một tiến trình khác đƣợc ghi chồng lên.
Để tối ƣu hóa quá trình hoạt động của CPU và tốc độ của máy tính, một số tiến
trình đƣợc lƣu giữ trong bộ nhớ. Có rất nhiều kế hoạch quản trị bộ nhớ do có nhiều ứng
dụng bộ nhớ khác nhau và hiệu quả của các thuật tốn phụ thuộc tùy vào tình huống cụ
22


thể. Lựa chọn một thuật toán cho một hệ thống đƣợc mô tả trƣớc phụ thuộc vào nhiều
yếu tố, đặc biệt là phần cứng của hệ thống.
u
-

n có n ữn va trò n ư sau tron v c quản lý bộ n ớ c ính:

Lƣu giữ thơng tin về các vị trí trong bộ nhớ đ đƣợc sử dụng và tiến trình nào sử
dụng.

-

Quản lý khơng gian bộ nhớ trống

-

Quyết định tiến trình nào đƣợc nạp vào bộ nhớ chính, khi bộ nhớ đ sẳn dùng.

-


Cấp phát và thu hồi bộ nhớ khi cần thiết.

-

Lập lịch cho vấn đề đọc/ghi thông tin trên đĩa của đầu từ.

1.6.1.3. Quản lý ộ nhớ phụ
Mục tiêu chính của hệ thống máy tính là thực hiện chƣơng trình. Những chƣơng
trình với dữ liệu cần truy xuất của chúng phải đƣợc đặt trong bộ nhớ chính trong suốt
q trình thi hành. Nhƣng bộ nhớ chính quá nhỏ để có thể lƣu giữ mọi dữ liệu và
chƣơng trình, ngồi ra dữ liệu sẽ mất khi khơng c n đƣợc cung cấp năng lƣợng. Hệ
thống máy tính ngày nay cung cấp hệ thống ưu trữ phụ backing store nằm trên
không gian c n trống của đĩa từ. Đa số các máy tính đều dùng đĩa để lƣu trữ cả chƣơng
trình và dữ liệu. Hầu nhƣ tất cả chƣơng trình: chƣơng trình dịch, hợp ngữ, thủ tục, trình
soạn thảo, định dạng... đều đƣợc lƣu trữ trên đĩa cho tới khi nó đƣợc thực hiện, nạp vào
trong bộ nhớ chính và cũng sử dụng đĩa để chứa dữ liệu và kết quả xử lý. Vì vậy một
bộ quản lý hệ thống đĩa rất quan trọng cho hệ thống máy tính.
Va trị của

u

n tron v c quản lý ĩa:

-

Quản lý không gian trống trên đĩa.

-


Định vị lƣu trữ.

-

Lập lịch cho đĩa.
Vì hệ thống đĩa đƣợc sử dụng thƣờng xuyên, nên nó phải đƣợc dùng hiệu quả.

Tốc độ của tồn bộ hệ thống tuỳ thuộc rất nhiều vào tốc độ truy xuất đĩa.
1.6.1.4. Quản lý hệ thống nhập/xuất

23


Mỗi thiết bị nhập/xuất có trình điều khiển thiết bị riêng. Chỉ có device driver mới
hiểu đến cấu trúc đặc thù của thiết bị mà nó mơ tả.
Một trong những mục tiêu của hệ điều hành là giúp ngƣời dùng khai thác hệ
thống máy tính d dàng và hiệu quả, do đó các thao tác trao đổi thơng tin trên thiết bị
nhập/xuất phải trong suốt đối với ngƣời dùng.
Để thực hiện đƣợc điều này hệ điều hành phải tồn tại một bộ phận điều khiển
thiết bị, bộ phận này phối hợp cùng CPU để quản lý sự hoạt động và trao đổi thơng tin
giữa hệ thống, chƣơng trình ứng dụng và ngƣời dùng với các thiết bị xuất/nhập. Bộ
ph n điều hi n thiết bị thực hiện những nhiệm vụ sau:
-

G i mã ệnh điều hi n đến thiết bị: Hệ điều hành điều khiển các thiết bị bằng
các m điều khiển, do đó trƣớc khi bắt đầu một quá trình trao đổi dữ liệu với
thiết bị thì hệ điều hành phải gởi m điều khiển đến thiết bị.

-


Tiếp nh n y u cầu ng t từ các thiết bị: Các thiết bị khi cần trao đổi với hệ thống
thì nó phát ra một tín hiệu u cầu ngắt, hệ điều hành tiếp nhận yêu cầu ngắt từ
các thiết bị, xem x t và thực hiện một thủ tục để đáp ứng yêu cầu từ các thiết bị.

-

Phát hiện và x

ỗi: quá trình trao đổi dữ liệu thƣờng xảy ra các lỗi nhƣ: thiết

bị vào ra chƣa sẵn sàng, đƣờng truyền hỏng, ... do đó hệ điều hành phải tạo ra
các cơ chế thích hợp để phát hiện lỗi sớm nhất và khắc phục các lỗi vừa xảy ra
nếu có thể.
Một

t ốn n ập/xuất bao ồm:

-

Hệ thống buffer caching.

-

Giao tiếp điều khiển thiết bị tổng quát.

-

Bộ điều khiển cho các thiết bị phần cứng.

1.6.1.5. Quản lý hệ thống tập tin

Máy tính có thể lƣu trữ thơng tin trên nhiều loại thiết bị lƣu trữ khác nhau, mỗi
thiết bị lại có tính chất và cơ chế tổ chức lƣu trữ thơng tin khác nhau, điều này gây khó
khăn cho ngƣời dùng. Để khắc phục điều này hệ điều hành đƣa ra khái niệm đồng nhất
cho tất cả các thiết bị lƣu trữ vật lý, đó là tập tin.

24


×