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

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 toá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  
3
 
4
5
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  
  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.  
CLI  
Clean Interrupt  
Cấm ngắt  
CPU  
CRT  
CS  
Processor  
Cathode-Ray Tube  
Critical Section  
Bộ xử lý  
 ng phóng điện tử chân không  
Miền găng, đoạn găng  
CSDL  
DMA  
FAT  
FCFS  
FDD  
FIFO  
FSD  
HDD  
I/O device  
IC  
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  
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  
Input/Output device  
Integrated C rcuit  
Thiết bị nhập/xuất  
Mạch tích hợp  
ISO  
International Organization for  
Standardization  
Tổ chức tiêu chuẩn hoá quốc tế  
KTCN  
LCNs  
LFU  
LRU  
LWP  
Kiểm tra cập nhật  
Logical Cluster Numbers  
The Least Frequently Used  
Least-Recently-Used  
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  
Lightweight Process  
MEM  
MFT  
MFU  
MMU  
MS-DOS  
NRU  
NTFS  
OPT  
OS  
Memory  
Master File Table  
The Most Frequently Used  
Memory Management Unit  
Microsoft Disk Operrating System Hệ điều hành MS-DOS  
Not Recently Used  
New Technology File System  
Optimal  
Operating System  
Process  
Bộ nhớ  
Trang đƣợc sử dụng nhiều nhất  
Đơn vị quản lý bộ nhớ  
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, quá trình  
Máy tính cá nhân  
P
PC  
Personal Computer  
6
 
Program Counter  
Process Control Block  
Page Control Table  
Nghĩa khác: Bộ đếm chƣơng trình  
Khối điều khiển tiến trình  
Bảng trang  
PCB  
PCT  
PDA  
PTBR  
RID  
Personal Digital Assistant  
Page Table Base Register  
Resource Identification  
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  
ROM  
RR  
Read Only Memory  
Round Robin  
Bộ nhớ chỉ đọc  
SCT  
SJF  
STBR  
Segment Control Table  
Shortest Job First  
Segment Table Base Register  
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  
STI  
Setting Interrupt  
Mở ngắt  
STLR  
Segment Table Length Register  
Thanh ghi giới hạn của bảng phân  
đoạn  
THE  
TLBs  
TSL  
Technische Hogeschool Eindhoven Hệ điều hành THE  
Translation Look-aside Buffers  
Test and Set  
Bộ nhớ kết hợp  
Kiểm tra khóa  
UDF  
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  
UMA  
USER  
VCNs  
Uniform Memory Access  
USER  
Virtual Cluster Numbers  
Số hiệu Cluster ảo  
7
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 quá trình phát triển hệ điều hành  
qua từng giai đoạn. Phân biệt các thành phần hệ thống và các thành phần bên trong hệ  
điều hành. Thông qua các giai đoạn khác nhau chúng ta sẽ thấy cách thức mà những  
thành phần của hệ điều hành đƣợc cải tiến cũng nhƣ các dịch vụ mà hệ điều hành cung  
cấp, cuối cùng là khảo sát các cấu trúc khác nhau của các hệ điều hành.  
1.2. KHÁI NIỆM VỀ HỆ ĐIỀU HÀNH  
Hệ điều hành là một chƣơng trình hệ thống hay một hệ chƣơng trình đóng vai tr  
trung gian giữa ngƣời dùng máy tính và phần cứng máy tính. Mục tiêu của hệ điều  
hành là cung cấp một môi trƣờng thuận lợi để ngƣời dùng d  dàng thực hiện các  
chƣơng trình ứng dụng của họ trên máy tính và khai thác triệt để các chức năng phần  
cứng máy tính.  
Hệ điều hành là một phần quan trọng của hầu hết các hệ thống máy tính. Một hệ  
thống máy tính thƣờng đƣợc chia làm bốn phần chính: phần cứng, hệ điều hành, các  
chƣơng trình ứng dụng và ngƣời dùng (user).  
Phần cứng bao gồm bộ xử lý, bộ nhớ, các thiết bị nhập xuất, đây là những tài  
nguyên cơ bản của máy tính. Chương trình ứng dụng nhƣ các chƣơng trình dịch  trong  
ngôn ngữ lập trình Pascal, C,… , hệ thống cơ sở dữ liệu (Access, SQL), các chƣơ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  
nguyên của máy tính để giải quyết các yêu cầu của ngƣời dùng. Hệ điều hành làm  
nhiệm vụ điều khiển và phối hợp việc sử dụng phần cứng cho những ứng dụng khác  
nhau của nhiều người dùng khác nhau  bao gồm cả thiết bị đầu cuối, hệ thống máy tính  
khác). Hệ điều hành cung cấp một môi trƣờng mà các chƣơng trình có thể làm việc hữu  
hiệu trên đó.  
Ngƣời dùng  
Ngƣời dùng  
Ngƣời dùng  
Ngƣời dùng  
1
2
3
4
Chƣơng trình  
dịch  
Hợp ngữ  
Soạn thảo văn  
bản  
CSDL  
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 soá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    n c c c  c n 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 ngoà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 luôn  
luôn 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 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 dữ  iệu của các công việc 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   đây chính  
 à chia sẻ thời gian x     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  
   
Ngoà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    3. Hệ thống đa x     
 n   u n uyên n ân xây d n     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 đó,  
toàn bộ hệ thống chỉ giảm 10% năng lực hơn là dừng hoạt động. Các hệ thống  
đƣợc thiết kế nhƣ thế đƣợc gọi là hệ thống có khả năng chịu lỗi  fault tolerant 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 soát toà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  
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 toán: Một thao tác tính toá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 toán  
trên nhiều vị trí khác nhau để tính toán song song.  
- An toà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 hoà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 assistants-  
PDAs  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 xuyên. Để tối thiểu hoá kích thƣớc của các thiết bị xách tay đ i hỏi bộ xử lý  
nhỏ hơn, chậm hơn tiêu thụ ít điện năng hơn. Do đó, hệ điều hành và các ứng dụng  
phải đƣợc thiết kế không đ i hỏi sử dụng nhiều bộ xử lý.  
Vấn đề cuối cùng gây khó khăn cho ngƣời thiết kế chƣơng trình cho các thiết bị  
xách tay là màn hình hiển thị nhỏ. Màn hình cho thiết bị xách tay thƣờng có diện tích  
không quá 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  
   
Tải về để xem bản đầy đủ
pdf 313 trang yennguyen 07/04/2022 6640
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành - Nguyễn Thị Thùy Linh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_he_dieu_hanh_nguyen_thi_thuy_linh.pdf