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

Hướng dẫn tự học môn hệ điều hành đại học kinh tế quốc dân

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 (6.84 MB, 192 trang )

30.11.2016

Hệ điều hành

Thông tin chung

1

Dang Minh Quan - NEU, 2016

Thông tin về giảng viên
• TS. Đặng Minh Quân
• Địa chỉ: C101- ĐHKTQD
• Email:

Dang Minh Quan - NEU, 2016

2

1


30.11.2016

Kế hoạch giảng dạy
Ghi chú

Trong đó
STT

Nội dung



Tổng số
tiết

Lý thuyết

Bài tập, thảo luận, kiểm
tra

1

Chương 1

3

2,5

0,5

2

Chương 2

12

10

2

3


Chương 3

4

3

1

4

Chương 4

5

3

2

5

Chương 5

3

2,5

0,5

6


Chương 6

3

2,5

0,5

7

Chương 7

6

5

1

8

Chương 8

9

7,5

1,5

45


36

9

Cộng
Dang Minh Quan - NEU, 2016

3

Phương pháp đánh giá học phần
• Dự lớp: có mặt trên lớp trên 80% số buổi học
theo môn.
• Thảo luận và dự lớp đánh giá 10% số điểm (hệ
số 0.1)
• Bài kiểm tra: đánh giá 20% số điểm. (hệ số 0.2)
• Thi cuối kỳ: đáng giá 70% số điểm. (hệ số 0.7)
• Thang điểm: 10

Dang Minh Quan - NEU, 2016

4

2


30.11.2016

Môi trường lập trình
• Ngôn ngữ lập trình C/C++

• Trình biên dịch gcc
• Hệ điều hành Ubuntu

5

Dang Minh Quan - NEU, 2016

Tài liệu tham khảo
• Andrew S. Tanenbaum, Modern Operating
Systems (2nd Edition), 2001
• Abraham Silberschatz, Peter B. Galvin, Greg
Gagne, Operating System Concepts (8th
edition), 2008

Dang Minh Quan - NEU, 2016

6

3


30.11.2016

Hệ điều hành
Chương 1: Giới thiệu chung

7

Dang Minh Quan - NEU, 2016


Mục tiêu chương 1
• Nêu được chức năng chính của hệ điều hành
• Phân biệt được các loại hệ điều hành
• Nhận dạng được các thành phần chính của hệ
điều hành

Dang Minh Quan - NEU, 2016

8

4


30.11.2016

Tổng quan





Khái niệm về hệ điều hành
Lịch sử phát triển hệ điều hành
Phân loại hệ điều hành
Cấu trúc hệ điều hành

Dang Minh Quan - NEU, 2016

9


1.1. Khái niệm về hệ điều hành
• Hệ điều hành trong hệ thống máy tính
• Mục tiêu hệ điều hành
• Định nghĩa hệ điều hành

Dang Minh Quan - NEU, 2016

10

5


30.11.2016

Hệ điều hành trong hệ thống máy
tính
Phần cứng - cung cấp các tài
nguyên máy tính cơ bản
(CPU, bộ nhớ, các thiết bị I /
O).
Hệ điều hành - kiểm soát và điều
phối việc sử dụng phần cứng
cho các chương trình ứng
dụng khác nhau và người sử
dụng khác nhau.
Chương trình ứng dụng – sử
dụng tài nguyên hệ thống
máy tính để giải quyết các
vấn đề của người sử dụng.
Người sử dụng (người, máy móc,

các máy tính khác).
11

Dang Minh Quan - NEU, 2016

Mục tiêu hệ điều hành
• Mục tiêu của hệ điều hành:
– Chạy chương trình và giúp giải quyết vấn đề của
người sử dụng dễ dàng hơn.
– Làm cho hệ thống máy tính dễ sử dụng.
– Sử dụng phần cứng máy tính một cách hiệu quả.

Dang Minh Quan - NEU, 2016

12

6


30.11.2016

Định nghĩa hệ điều hành
• Bộ cấp phát tài nguyên - quản lý và phân bổ
tài nguyên.
• Chương trình điều khiển - điều khiển việc
thực hiện các chương trình của người sử
dụng và hoạt động của các thiết bị I / O.
• Hạt nhân - một chương trình luôn luôn chạy.

Dang Minh Quan - NEU, 2016


13

1.2. Lịch sử phát triển hệ điều
hành
• Các hệ thống mainframe
– Hệ thống xử lý theo lô
– Hệ thống đa chương trình
– Hệ thống đa người dùng








Hệ thống để bàn
Hệ thống đa xử lý
Các hệ thống phân tán: khách – chủ, điểm tới điểm
Hệ thống cluster
Hệ thống thời gian thực
Hệ thống cầm tay

Dang Minh Quan - NEU, 2016

14

7



30.11.2016

Hệ thống xử lý theo lô
• Người dùng không tương tác
trực tiếp với hệ thống máy
tính
• Người dùng chuẩn bị một
công việc và đệ trình tới
người vận hành máy tính
• Người dùng nhận lại kết quả
sau 1 khoảng thời gian không
xác định
Dang Minh Quan - NEU, 2016

15

Hệ thống đa chương trình
• HĐH giữ nhiều chương trình
trong bộ nhớ
• HĐH chạy 1 chương trình
trong số đó, khi chương trình
này phải đợi, HĐH chuyển
sang chạy chương trình khác.

Dang Minh Quan - NEU, 2016

16

8



30.11.2016

Hệ thống đa người dùng
• Còn gọi là hệ thống chia sẻ thời gian, cho
phép nhiều người dùng tương tác với máy
tính
• Mỗi người dùng có ít nhất 1 chương trình
đang chạy gọi là tiến trình.
• Hệ thống chia cho mỗi tiến trình một khe thời
gian.
• Khi hết khe thời gian thì hệ thống chay tiến
trình khác
17

Dang Minh Quan - NEU, 2016

Hệ thống để bàn
• Một người dùng sử dụng toàn bộ hệ thống
• Tận dụng hiệu năng CPU không còn là vấn
đề quan tâm hàng đầu
• Một số tính năng của hệ thống chia sẻ thời
gian vẫn được áp dụng cho hệ thống để bàn

Dang Minh Quan - NEU, 2016

18

9



30.11.2016

Hệ thống đa xử lý
• Phổ biến là hệ thống đa xử lý đối xứng
• Mỗi CPU chạy một bản copy của HĐH và
liên lạc với nhau khi cần
• Hệ thống đa xử lý có các lợi ích sau
– Tăng hiệu năng
– Tăng tính kinh tế khi mở rộng
– Tăng độ tin cậy

19

Dang Minh Quan - NEU, 2016

Hệ thống khách – chủ

• Hệ thống máy chủ dùng phục vụ các yêu cầu
từ nhiều máy khách
Dang Minh Quan - NEU, 2016

20

10


30.11.2016


Hệ thống điểm tới điểm
• Một HĐH mạng cung cấp một giao thức liên
lạc cho phép các tiến trình khác nhau trên các
máy tính khác nhau có thể truyền tin được
cho nhau.
• Một máy tính trong hệ thống này hoạt động
độc lập nhưng vẫn nhận biết được mạng và
có thể liên lạc với các máy tính khác trong
mạng.
• Máy tính trong hệ thống vừa sử dụng dịch vụ
vừa cung cấp dịch vụ
21

Dang Minh Quan - NEU, 2016

Hệ thống cluster
• Hệ thống cluster bao gồm 2 hay nhiều hệ
thống đơn lẻ
• Thường dùng để tăng độ sẵn sàng và hiệu
năng

Dang Minh Quan - NEU, 2016

22

11


30.11.2016


Hệ thống thời gian thực
• Hệ thống thời gian thực phải đáp ứng các
thách thức về mặt thời gian
• Công việc phải được hoàn thành trong một
giới hạn thời gian đã xác định
• Hệ thống thời gian thực cứng đảm bảo các
tác vụ quan trọng được hoàn thành đúng hạn
• Hệ thống thời gian thực mềm đảm bảo các
tác vụ quan trọng có độ ưu tiên cao nhất

23

Dang Minh Quan - NEU, 2016

Hệ thống cầm tay
• Bị giới hạn về sức mạnh phần cứng: tốc độ
CPU, kích thước bộ nhớ, kích thước màn
hình
• Rất tiện lợi và mang đi được

Dang Minh Quan - NEU, 2016

24

12


30.11.2016

Các môi trường tính toán

• Tính toán truyền thống
• Tính toán dựa trên Web
• Tính toán nhúng

Dang Minh Quan - NEU, 2016

25

1.3. Phân loại hệ điều hành





Hệ thống xử lý thời gian thực
HĐH đơn nhiệm, đơn người sử dụng
HĐH đa nhiệm, đơn người sử dụng
HĐH đa người sử dụng

Dang Minh Quan - NEU, 2016

26

13


30.11.2016

1.4. Cấu trúc hệ điều hành







Cấu trúc máy tính
Các dịch vụ hệ điều hành
Cấu trúc HĐH: đơn giản
Cấu trúc HĐH: phân lớp
Cấu trúc HĐH: Máy ảo

27

Dang Minh Quan - NEU, 2016

Cấu trúc máy tính

Dang Minh Quan - NEU, 2016

28

14


30.11.2016

Các dịch vụ hệ điều hành

29


Dang Minh Quan - NEU, 2016

Cấu trúc HĐH: đơn giản
• MS-DOS có cấu trúc nhưng
giữa giao diện và chức
năng không có sự phân chia
rõ rệt
• UNIX bao gồm hai phần :
hạt nhân và các chương
trình hệ thống

Dang Minh Quan - NEU, 2016

30

15


30.11.2016

Cấu trúc HĐH: phân lớp
• Các hệ thống điều hành
được chia thành một số lớp,
mỗi lớp được xây dựng trên
đỉnh các lớp thấp hơn. Các
lớp dưới cùng (layer 0), là
phần cứng, lớp cao nhất
(layer N) là giao diện người
dùng.
• Với tính mô đun, một lớp

chỉ sử dụng chức năng và
dịch vụ của các lớp cấp
thấp hơn.
31

Dang Minh Quan - NEU, 2016

Cấu trúc HĐH: Máy ảo

Dang Minh Quan - NEU, 2016

32

16


30.11.2016

Nội dung chính chương 1
• Khái niệm về hệ điều hành: vị trí, vai trò,
định nghĩa.
• Lịch sử phát triển hệ điều hành cùng với sự
phát triển của các hệ thống máy tính
• Phân loại hệ điều hành: thời gian thực, đơn
nhiệm, đa nhiệm.
• Cấu trúc hệ điều hành: đơn giản, phân lớp,
máy ảo

33


Dang Minh Quan - NEU, 2016

Tài liệu tham khảo
• Abraham Silberschatz, Peter B. Galvin, Greg
Gagne (2008), Operating System Concepts
(8th edition), Wiley. Chương I, trang 3 – 46;
Chương II, trang 49-97

Dang Minh Quan - NEU, 2016

34

17


30.11.2016

Hệ điều hành
Chương 2: Quản lý tiến trình

35

Dang Minh Quan - NEU, 2016

Mục tiêu chương 2
• Phân biệt được chương trình và tiến trình
• Áp dụng được các thuật toán điều phối vào
các tình huống giả định
• Nêu được các kỹ thuật liên lạc giữa các tiến
trình và đồng bộ hóa tiến trình


Dang Minh Quan - NEU, 2016

36

18


30.11.2016

Tổng quan






Giới thiệu tổng quan về tiến trình và luồng
Điều phối tiến trình và luồng
Cơ chế thông tin liên lạc giữa các tiến trình
Đồng bộ hoá tiến trình
Tắc nghẽn

Dang Minh Quan - NEU, 2016

37

2.1. Tổng quan về tiến trình và
luồng









Khái niệm tiến trình
Khái niệm luồng
Các trạng thái của tiến trình
Chế độ xử lý của tiến trình
Cấu trúc dữ liệu khối quản lý tiến trình
Thao tác trên tiến trình
Tiến trình và luồng trên LINUX

Dang Minh Quan - NEU, 2016

38

19


30.11.2016

Khái niệm tiến trình
• Chương trình là một thực thể thụ động, chứa
đựng các chỉ thị điều khiển máy tính để tiến
hành một tác vụ nào đó.
• Tiến trình là một chương trình đang xử lý, sở
hữu

– một con trỏ lệnh,
– tập các thanh ghi
– các biến.

39

Dang Minh Quan - NEU, 2016

Khái niệm tiến trình
• Tiến trình trong bộ
nhớ

Dang Minh Quan - NEU, 2016

40

20


30.11.2016

Các trạng thái của tiến trình
• Khi một tiến trình được chạy, nó sẽ thay đổi
trạng thái





new: Tiến trình đang được tạo ra

running: Các lệnh đang được xử lý
waiting: Tiến trình đang đợi một sự kiện nào đó
ready: Tiến trình đang đợi để được gán cho một
quá trình xử lý
– terminated: Tiến trình kết thúc

Dang Minh Quan - NEU, 2016

41

Các trạng thái của tiến trình

Dang Minh Quan - NEU, 2016

42

21


30.11.2016

Khối quản lý tiến trình PCB
Lưu giữ thông tin của một tiến trình
• Trạng thái tiến tình
• Bộ đếm chương trình
• Các thanh ghi CPU
• Thông tin lập lịch CPU
• Thông tin quản lý bộ nhớ
• Thông tin tài khoản
• Thông tin trạng thái I/O

Dang Minh Quan - NEU, 2016

43

Cấu trúc dữ liệu khối quản lý tiến
trình

Dang Minh Quan - NEU, 2016

44

22


30.11.2016

Thao tác trên tiến trình
• Hệ điều hành cung cấp các thao tác
chủ yếu sau đây trên một tiến trình :






Tạo lập tiến trình (create)
Kết thúc tiến trình (destroy)
Tạm dừng tiến trình (suspend)
Tái kích hoạt tiến trình (resume)
Thay đổi độ ưu tiên tiến trình


45

Dang Minh Quan - NEU, 2016

Tạo lập tiến trình (1)
• Một tiến trình có thể tạo lập nhiều tiến trình
mới bằng cách sử dụng một lời gọi hệ thống
tương ứng

Dang Minh Quan - NEU, 2016

46

23


30.11.2016

Tạo lập tiến trình (2)
• Định danh cho tiến trình mới phát sinh
• Đưa tiến trình vào danh sách quản lý của hệ
thống
• Xác định độ ưu tiên cho tiến trình
• Tạo PCB cho tiến trình
• Cấp phát các tài nguyên ban đầu cho tiến
trình

47


Dang Minh Quan - NEU, 2016

Tạo lập tiến trình (3)
• Tiến trình cha tiếp tục xử lý đồng hành với
tiến trình con.
• Tiến trình cha chờ đến khi một tiến trình con
nào đó, hoặc tất cả các tiến trình con kết thúc
xử lý.

Dang Minh Quan - NEU, 2016

48

24


30.11.2016

Tạo lập tiến trình (4)
• Hàm fork()
– Tạo tiến trình con

• Hàm exec()
– Chạy chương trình

49

Dang Minh Quan - NEU, 2016

Tạo lập tiến trình (5)

#include <sysltypes.h>
#include <stdio.h>
#include <unistd.h>
int main() {
pid_t pid;
pid =fork();
if (pid < 0) {
fprintf(stderr, "Fork Failed");
return 1;
} else if (pid == 0) { /* child process */ execlp("/bin/ls","ls",NULL);
} else { /* parent process */
/* parent will wait for the child to complete */ wait (NULL) ;
printf("Child Complete");
}
return 0;
}
Dang Minh Quan - NEU, 2016

50

25


×