Giáo trình Hệ điều hành (operating system) - pdf 16

Download miễn phí Giáo trình Hệ điều hành (operating system) Học viện công nghệ bưu chính viễn thông thành phố Hồ Chí Minh



MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU VỀHỆ ĐIỀU HÀNH Trang
1.1 Hệ điều hành là gì, các khái niệm của hệ điều hành. 3
1.2 Lịch sửphát triển của hệ điều hành 4
1.3 Các loại hệ điều hành 4
1.4 Các dịch vụcủa hệ điều hành 8
1.5 Cấu trúc của hệ điều hành 11
1.6 Nguyên lý thiết kếhệ điều hành 14
CHƯƠNG 2: QUẢN LÝ NHẬP/XUẤT VÀ QUẢN LÝ HỆTHỐNG TẬP TIN
2.1. Quản lý nhập/xuất 16
2.1.1 Phân loại và đặc tính của thiết bịnhập/xuất 16
2.1.2 Bộ điều khiển thiết bịnhập/xuất 17
2.1.3 Các chương trình thực hiện nhập/xuất và tổchức hệthống nhập/xuất 18
2.1.4 Cơchếnhập/xuất và cơchếDMA 20
2.1.5 Các thuật toán lập lịch di chuyển đầu đọc 20
2.1.6 Hệsố đan xen và ram disk 22
2.2 Quản lý hệthống tập tin 23
2.2.1 Các khái niệm về đĩa cứng, tập tin, thưmục, bảng thưmục 23
2.2.2 Các phương pháp cài đặt hệthống tập tin. 28
2.2.3 Phương pháp quản lý danh sách các khối trống 32
2.2.4 Phương pháp quản lý sựan toàn của hệthống tập tin 33
2.2.5 Giới thiệu một sốhệthống tập tin: MSDOS/Windows, UNIX. 34
CHƯƠNG 3: QUẢN LÝ TIẾN TRÌNH
3.1 Các khái niệm vểtiến trình 44
3.2 Điều phối các tiến trình 53
3.3 Liên lạc giữa các tiến trình 61
3.4 Đồng bộcác tiến trình 66
3.5 Tính trạng tắc nghẽn (deadlock) 80
CHƯƠNG 4: QUẢN LÝ BỘNHỚ
4.1 Các vấn đềphát sinh khi quản lý bộnhớ. 99
4.2 Các mô hình cấp phát bộnhớ. 101
4.3 Bộnhớ ảo 116
CHƯƠNG 5: QUẢN LÝ PROCESSOR
5.1 Processor Vật lý và Processor logic 130
5.2 Ngắt và xửlý ngắt 131
5.3 Xửlý ngắt trong IBM-PC 136
CHƯƠNG 6: HỆ ĐIỀU HÀNH NHIỀU BỘVI XỬLÝ
6.1 Cấu hình nhiều processor 140
6.2 Các loại hệ điều hành hỗtrợnhiều bộvi xửlý 146
6.3 Đồng bộtrong hệthống đa xửlý 149
6.4 Điều phối trong hệthống đa xửlý 152
Tóm tắt nội dung tài liệu: lại, không chấp nhận 3 Linux hacker và 1 nhân viên Microsoft trên cùng một chiếc
thuyền.
OP
EN
.P
TIT
.E
DU
.V
N
97
c. Tất cả các trường hợp kết hợp khác đều hợp pháp.
d. Thuyền chỉ khởi hành khi đã có đủ 4 hành khách.
Cần xây dựng 2 thủ tục HackerArrives() và EmployeeArrives() được gọi tương ứng bởi 1 hacker
hay 1 nhân viên khi họ đến bờ sông để kiểm tra điều kiện có cho phép họ xuống thuyền không ?
Các thủ tục này sẽ sắp xếp những người thích hợp có thể lên thuyền. Những người đã được lên
thuyền khi thuyền chưa đầy sẽ phải chờ đến khi người thứ 4 xuống thuyền mới có thể khởi hành
qua sông. (Không quan tâm đến số lương thuyền hay việc thuyền qua sông rồi trở lại…Xem như
luôn có thuyền để sắp xếp theo các yêu cầu hợp lệ)
Giả sử hoạt động của mỗi hacker được mô tả bằng một tiến trình Hacker() sau đây:
Hacker()
{
RuntoRiver(); // Đi đến bờ sông
HackerArrives (); // Kiểm tra điều kiện xuống thuyền
CrossRiver(); // Khởi hành qua sông
}
và hoạt động của mỗi nhân viên được mô tả bằng một tiến trình Employee() sau đây:
Employee()
{
RuntoRiver(); // Đi đến bờ sông
EmployeeArrives (); // Kiểm tra điều kiện xuống thuyền
CrossRiver(); // Khởi hành qua sông
}
19. Bài toán Điều phối hành khách xe bus tại một trạm dừng
Mỗi xe bus có 10 chỗ, 4 chỗ dành cho khách ngồi xe lăn, 6 chỗ dành cho khách bình thường, khi
xe đầy khách thì sẽ khởi hành. Có thể có nhiều xe và nhiều hành khách vào bến cùng lúc, nguyên
tắc điều phối sẽ xếp khách vào đầy một xe, cho xe này khởi hành rồi mới điều phối cho xe khác.
Giả sử hoạt động điều phối khách cho 1 chiếc xe bus được mô tả qua tiến trình GetPassengers();
hoạt động của mỗi loại hành khách được mô tả bằng tiến trình WheelPassenger() và
NonWheelPassenger(). Hãy sửa chữa các đoạn code, sử dụng semaphore để đồng bộ hoá .
GetPassenger() //chương trình điều phối khách cho 1 xe
{
ArriveTerminal(); // tiếp nhận một xe vào bến
OpenDoor(); // mở cửa xe
for (int i=0; i<4; i++) // tiếp nhận các khách ngồi xe lăn
{
ArrangeSeat(); // đưa 1 khách ngồi xe lăn vào chỗ
}
for (int i=0; i<6; i++) // tiếp nhận các khách bình thường
OP
EN
.P
TIT
.E
DU
.V
N
98
{
ArrangeSeat(); // đưa 1 khách bình thường vào chỗ
}
CloseDoor(); // đóng cửa xe
DepartTerminal(); // cho một xe rời bến
}
WheelPassenger() //chương trình tạo khách ngồi xe lăn
{
ArriveTerminal(); // đến bến
GetOnBus(); // lên xe
}
NonWheelPassenger() // chương trình tạo khách bình thường
{
ArriveTerminal(); // đến bến
GetOnBus(); // lên xe
}
20. Nhà máy sản xuất thiết bị xe hơi, có 2 bộ phận hoạt động song song
- Bộ phận sản xuất 1 khung xe :
MakeChassis()
{
Produce_chassis();// tạo khung xe
}
- Bộ phận sản xuất 1 bánh xe :
Make_Tires()
{
// tạo bánh xe và gắn vào khung xe
Produce_tire();
Put_tire_to_Chassis();
}
Hãy đồng bộ hoạt động trong việc sản xuất xe hơi theo nguyên tắc sau :
- Sản xuất một khung xe, trước khi tạo bánh xe.
- Cần có đủ 4 bánh xe cho 1 khung xe được sản xuất ra, sau đó mới tiếp tục sản xuất khung xe
khác…
21. Thuật toán các triết gia ăn tối sau đúng hay sai?
semaphore s[5]; //có các giá ban trị đầu bằng 1
//tiến trình triết gia thứ i:
{
OP
EN
.P
TIT
.E
DU
.V
N
99
down(s); //lấy đũa
down(s[(i+1)%5]); //lấy đũa của người bên cạnh
eat();
up(s); //bỏ đũa
up(s[(i+1)%5]); //trả đũa cho người bên cạnh
}
22. Xét trạng thái hệ thống:
Max Allocation Available
R1 R2 R3 R1 R2 R3 R1 R2 R3
P1 3 2 2 1 0 0 4 1 2
P2 6 1 3 2 1 1
P3 3 1 4 2 1 1
P4 4 2 2 0 0 2
Nếu tiến trình P2 yêu cầu 4 cho R1, 1 cho R3. hãy cho biết yêu cầu này có thể đáp ứng mà bảo
đảm không xảy ra tình trạng deadlock hay không ?
23. Xét trạng thái hệ thống sau:
Max Allocation Available
A B C D A B C D A B C D
P1 0 0 1 2 0 0 1 2 1 5 2 0
P2 1 7 5 0 1 0 0 0
P3 2 3 5 6 1 3 5 4
P4 0 6 5 2 0 6 3 2
P5 0 6 5 6 0 0 1 4
a) Cho biết nội dung của bảng Need.
OP
EN
.P
TIT
.E
DU
.V
N
100
b) Hệ thông có ở trạng thái an toàn không?
c) Nếu tiến trình P2 có yêu cầu tài nguyên ( 0,4,2,0), yêu cầu này có được đáp ứng tức thời
không?
TÀI LIỆU THAM KHẢO
[1]. Gary J. Nutt, University of Colorado. Centralized And Distributed Operating Systems.
Second Edition, 2000.
[2]. Robert Switzer. Operating Systems, A Practical Approach. Prentice-Hall International, Inc.
1993.
[3]. Andrew S. Tanenbaum. Modern Operating Systems. Prentice-Hall International, Inc. Second
Edition, 2001.
[4]. Abraham Silberschatz & Peter Baer Galvin. Operating System concepts. John Wiley & Sons,
Inc. Fifth Edition, 1999.
[5]. H. M. Deitel. Operating Systems. Addison-Wesley Inc. Second Edition, 1999.
[6]. Trần Hạnh Nhi & Lê Khắc Nhiên Ân & Hoàng Kiếm. Giáo trình hệ điều hành (tập 1 & 2).
ĐHKHTN 2000.
OP
EN
.P
TIT
.E
DU
.V
N
101
CHƯƠNG 4
QUẢN LÝ BỘ NHỚ
Chương “QUẢN LÝ BỘ NHỚ" sẽ giới thiệu và giải thích các vấn đề sau:
4.1 Các vấn đề phát sinh khi quản lý bộ nhớ.
4.2 Các mô hình cấp phát bộ nhớ.
4.3 Bộ nhớ ảo
4.1 CÁC VẤN ĐỀ PHÁT SINH KHI QUẢN LÝ BỘ NHỚ
+ Chuyển đổi địa chỉ tương đối trong chương trình thành địa chỉ thực trong bộ nhớ chính.
+ Quản lý bộ nhớ đã cấp phát và chưa cấp phát.
+ Các kỹ thuật cấp phát bộ nhớ sao cho:
- Ngăn chặn các tiến trình xâm phạm đến vùng nhớ đã được cấp phát cho tiến trình khác.
- Cho phép nhiều tiến trình có thể dùng chung một phần bộ nhớ của nhau.
- Mở rộng bộ nhớ để có thể lưu trữ được nhiều tiến trình đồng thời.
4.1.1 Chuyển đổi địa chỉ tương đối sang tuyệt đối
Các địa chỉ trong chương trình thực thi (dạng exe) là địa chỉ tương đối, và cần được chuyển đổi
các địa chỉ này thành các địa chỉ tuyệt đối trong bộ nhớ chính. Việc chuyển đổi có thể xảy ra vào
một trong những thời điểm sau:
+ Thời điểm biên dịch (compile time):
Nếu tại thời điểm biên dịch, có thể biết vị trí mà tiến trình sẽ được nạp vào trong bộ nhớ, trình
biên dịch có thể phát sinh ngay mã với các địa chỉ tuyệt đối. Tuy nhiên, nếu về sau có sự thay đổi
vị trí của chương trình, cần biên dịch lại chương trình. Ví dụ các chương trình .com chạy
trên hệ điều hành MS-DOS có mã tuyệt đối ngay khi biên dịch.
+ Thời điểm nạp (load time):
Nếu tại thời điểm biên dịch, chưa thể biết vị trí mà tiến trình sẽ được nạp vào trong bộ nhớ, trình
biên dịch chỉ phát sinh mã tương đối. Khi nạp chương trình vào bộ nhớ, hệ điều hành sẽ chuyển
các địa chỉ tương đối thành địa chỉ tuyệt đối do đã biết vị trí bắt đầu lưu trữ tiến trình. Khi có sự
thay đổi vị trí lưu trữ, cần nạp lại chương trình để thực hiện lại việc chuyển đổi địa chỉ, không cần
biên dịch lại chương trình.
+ Thời điểm xử lý (execution time):
Nếu có nhu cầu di chuyển tiến trình từ vùng nhớ này sang vùng nhớ khác trong quá trình tiến trình
xử lý, thì việc chuyển đổi địa chỉ sẽ được thực hiện vào lúc tiến trình thực thi. Chức năng chuyển
đổi địa chỉ do phần cứng cung cấp gọi là MMU (memory management unit). Các hệ điều hành
thường dùng việc chuyển đổi theo cách này.


Link download cho anh em:
Download...

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status