Tài liệu Bài giảng Hệ điều hành - Lương Trần Hy Hiến: Ths. Lương Trần Hy Hiến
www.hutechos.tk
Giảng viên:
Ths. Lương Trần Hy Hiến (HIENLTH)
Khoa CNTT, ĐH Sư phạm TpHCM (FIT – HCMUP)
Email: hienlth@hcmup.edu.vn
Tài liệu môn học:
2
Tài liệu tham khảo
Sách, giáo trình Hệ điều hành,
HUTECH
Abraham Silberschatz, Peter Baer
Galvin, Greg Gagne (2013),
Operating System Concepts - 9th
edition, ISBN: 978-1-118-06333-0
3
1. Hệ điều hành là gì?
2. Cấu trúc phần cứng
3. Đa chương và chia sẽ thời gian
4. Hoạt động Hệ điều hành
5. Cấu trúc Hệ điều hành
6. Lời gọi hệ thống (System Call)
7. Quá trình khởi động máy tính
4
5 Nhu cầu: Người dùng luôn thích sử dụng HĐH cho phép
chạy vài chương trình đồng thời
Hệ điều hành như thế gọi là gì?
Thực tế: Hầu hết các máy tính chỉ có
một bộ vi xử lý (các máy có >1 CPU
khá đắt tiền)
Làm sao thỏa mãn được nhu cầu người dùng?
Một CPU rõ ràng chỉ có thể chạy được một chương trình
Không thể chia CPU làm nhiều phần như chia bánh được
Các chương trình muốn c...
77 trang |
Chia sẻ: putihuynh11 | Lượt xem: 802 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Hệ điều hành - Lương Trần Hy Hiến, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Ths. Lương Trần Hy Hiến
www.hutechos.tk
Giảng viên:
Ths. Lương Trần Hy Hiến (HIENLTH)
Khoa CNTT, ĐH Sư phạm TpHCM (FIT – HCMUP)
Email: hienlth@hcmup.edu.vn
Tài liệu môn học:
2
Tài liệu tham khảo
Sách, giáo trình Hệ điều hành,
HUTECH
Abraham Silberschatz, Peter Baer
Galvin, Greg Gagne (2013),
Operating System Concepts - 9th
edition, ISBN: 978-1-118-06333-0
3
1. Hệ điều hành là gì?
2. Cấu trúc phần cứng
3. Đa chương và chia sẽ thời gian
4. Hoạt động Hệ điều hành
5. Cấu trúc Hệ điều hành
6. Lời gọi hệ thống (System Call)
7. Quá trình khởi động máy tính
4
5 Nhu cầu: Người dùng luôn thích sử dụng HĐH cho phép
chạy vài chương trình đồng thời
Hệ điều hành như thế gọi là gì?
Thực tế: Hầu hết các máy tính chỉ có
một bộ vi xử lý (các máy có >1 CPU
khá đắt tiền)
Làm sao thỏa mãn được nhu cầu người dùng?
Một CPU rõ ràng chỉ có thể chạy được một chương trình
Không thể chia CPU làm nhiều phần như chia bánh được
Các chương trình muốn có thể chạy thì trước hết cần phải được
nạp vào trong bộ nhớ chính (RAM).
Khi có nhiều chương trình cùng sử dụng bộ nhớ thì HĐH sẽ thực
hiện việc chia sẻ cho mỗi chương trình không gian nhớ riêng.
Vấn đề: bộ nhớ RAM thì có hạn (ví dụ 64MB), vậy khi chạy nhiều
chương trình thì ra sao ??? Ví dụ:
Windows XP (lõi) 60MB
Windows Media Player 12MB
Visual Studio .NET 30MB
Làm cách nào mà Windows vẫn chạy được?
6
Khi đang nghe nhạc, nếu Windows gặp lỗi, ta có nghe được tiếng
báo lỗi?
Chỉ có các hệ điều hành như ME, 2000, XP,
Vậy HĐH đã sử dụng giải pháp nào?
Luân phiên?
Tuần tự?
Chia bánh?
Giải pháp khác?
☺Về nhà bạn thử làm cho Windows phát 2 bài nhạc khác nhau trên
2 loa xem? Có được không?
7
8
Phần mềm
Ứng dụng
Hệ thống
Phần cứng
Thiết bị xử lý
và lưu trữ
Thiết bị nhập liệu
Windows XP, 7, 8, ...
Thiết bị xuất
(monitor)
Hệ điều hành
Là 1 chương trình quản lý phần cứng máy tính
Trung gian giữa người dùng và phần cứng máy tính
Cung cấp môi trường cho các ứng dụng khác thực
thi
Hệ điều hành mạng
Là 1 hệ điều hành
Cung cấp những khả năng cần thiết để kết nối mạng
VD: WinXP, Win 2000 server
Tiến trình (Process)
Chương trình đang thực thi trên máy
VD: mở 1 file word tạo ra 1 tiến trình PW
Tiểu trình (thread)
Một dòng xử lý trong 1 tiến trình
Một tiến trình có 1 hay nhiều tiểu trình
VD: trong tiến trình PW
▪ Luồng nhận thao tác của người dùng
▪ Luồng kiểm tra lỗi
▪
Process P
int a;
T1 T2 T
3
01/2009 KHOA CNTT - ĐH KHTN TP.HCM 13
Quản trị tài nguyên
CPU, RAM, HDD, printer
Nhiệm vụ: Cung cấp giải thuật cấp phát, quản trị tài
nguyên cho các đối tượng hoạt động.
Mục tiêu:Cấp phát đầy đủ, công bằng, hiệu quả
Điều khiển thiết bị
Nhiệm vụ: Che dấu các chi tiết phần cứng, tạo môi
trường dễ làm việc hơn cho người dùng.
Mục tiêu: Tạo sự độc lập thiết bị.
Giao tiếp với người dùng (user interface - UI)
Command-line interface (CLI)
Batch interface (Thực thi trên 1 file lưu các lệnh)
Graphical user interface (GUI)
Nạp và Thực thi chương trình (load & run)
Nhập xuất (I/O Operations)
Thao tác với hệ thống tập tin (file system)
Liên lạc giữa các tiến trình
Chia sẻ bộ nhớ
Truyền thông điệp
Phát hiện lỗi
Định vị tài nguyên
Accounting
Bảo mật
Mục tiêu thiết kế
Lựa chọn phần cứng
Loại hệ thống:
▪ Batch
▪ Single/multi-user
▪ time-shared
▪ Distributed
▪ Real-time
▪
Góc độ người dùng
Góc độ hệ thống
Cơ chế và chính sách (how – what)
Cài đặt
ASM, C, C++, .
Quản lý tài nguyên là vai trò quan trọng nhất của HĐH, do đó
cần có một số thành phần quản lý CPU, quản lý bộ nhớ,
CPU : quản lý tiến trình(bao gồm quản lý CPU)
RAM : quản lý bộ nhớ chính
Input/Output : quản lý nhập/xuất (thấy rõ ở DOS)
Hệ thống tập tin : Quản lý tập tin
Hệ thống bảo vệ
Quản lý mạng
Shell (giao tiếp người dùng)
01/2009 KHOA CNTT - ĐH KHTN TP.HCM 17
Thế hệ thứ 1:
Vacuum tube
Plug board
Tại 1 thời điểm: 1 công việc
Vấn đề: lãng phí
Thế hệ thứ 2:
Transistors
Batch system
Sử dụng cơ chế spooling (thực hiện đồng thời nhiều thao tác của 1
công việc)
Sử dụng CPU tốt hơn, nhưng vẫn thực thi 1 công việc tại 1 thời
điểm
1945 1955 1965 1980
Thế hệ 1st Thế hệ 2nd Thế hệ 3rd Thế hệ 4th
Thế hệ thứ 3:
Integrated circuits (ICs)
Đa nhiệm (multiprogramming)
Chia sẻ thời gian: thực thi nhiều công việc cùng 1 lúc
Thế hệ thứ 4:
Thể thống nhất lớn
Dùng cho PC
Thế hệ tiếp theo:
Hệ thống kết nối thông qua mạng???
Quản lý tài nguyên trên diện rộng???
Một số loại HĐH hiện đại
Mainframe: MVS
Server: Solaris, FreeBSD
Multiprocessor: Cellular IRIX
PC: Windows, Unix
Thời gian thực (real-time): VxWorks
Hệ điều hành nhúng
Hệ điều hành card thông minh (smart card)
Windows
Unix/Linux
Phát triển bởi Microsoft.
Hiện đang chiếm 80% 90% thị trường HĐH.
Số lượng dòng mã chương trình:
WinNT: 4 triệu
Win2000: 35 triệu
WinXP: 40 triệu
Windows 1.0 – Phát hành 12/1985
Windows 2.0
Phát hành 1987
Chỉ hỗ trợ bộ vi xử lý Intel 8086 hoặc 8088
Có thể truy cập 1MB bộ nhớ
Windows 3.0
Phát hành 05/1990
Có thể truy cập 16MB bộ nhớ
Windows 3.1
Phát hành 04/1992
Hỗ trợ TrueType fonts/ Multimedia
Windows NT
Phát hành 07/1993
Hỗ trợ chíp Intel 386, 486 và các chíp khác không của Pentium
Là hệ điều hành dòng server đầu tiên
Là HĐH đầu tiên hỗ trợ các ỨD 32 bits
Windows 95
Phát hành 08/1995
Cũng hỗ trợ các ứng dụng 32-bit (nhưng vẫn tương
thích với các ƯD 16 bits
Windows 98
Phát hành 06/1998
Tăng cường về mặt hiệu năng và hỗ trợ phần cứng
tốt hơn
Tích hợp các tính năng Internet
Windows Millennium
Phát hành 12/2000
Là phiên bản desktop hỗ trợ tốt multimedia.
Windows 2000
Phát hành 01/2000
Hỗ trợ tính đa xử lý đối xứng : 2-32 CPU.
Hỗ trợ đầy đủ tính năng đa ngôn ngữ (UNICODE)
Tính hợp đầy đủ các chồng giao thức mạng thông dụng
Thuộc dòng HĐH server chuyên dụng.
Các dòng sản phẩm: Windows 2000 Professional,
Windows 2000 Server, Windows 2000 Advanced Server,
Windows 2000 Datacenter Server
Windows server 2003
Phát hành 4/2003
Hiệu năng (performance) của các dịch vụ nhanh hơn Win2k
Phiên bản: web, standard, enterprise, datacenter, small business
server, storage server
Windows Vista
Phát hành: 11/2006
Hỗ trợ về giao diện và multimedia
Phiên bản: Home Basic, Home Premium, Business, Enterprise, Ultimate
Windows 2008 server
Phát hành: 02/2008
Windows 7:
Phát hành: 10/2009
Windows 8:
Phát hành: 10/2012
Là HĐH mã nguồn mở
Linux là HĐH tương tự Unix.
Bao gồm khoảng 6 triệu dòng mã (kernel v2.6)
Tăng trưởng khoảng 25%/năm từ năm 2003
Chiếm khoảng 10% thị trường HĐH.
1969: UNIX, Thompson & Ritchie (AT&T Bell Lab)
1987: Minix, Andy Tanenbaum
1991: birth of Linux
Minix-like OS by Linus Torvard
limited devices, no networking
1994: Linux 1.0
only single-processor i386
networking (Internet)
enhanced file system (ext2)
1995: Linux 1.2
more hardware
8086 mode (DOS emulation) included
Support other architecture:Sparc, Alpha, MIPS
1996: Linux 2.0
multiple architectures, multiple processors
threads, memory management
1999: Linux 2.2
2001: Linux 2.4
ISA PnP, USB,
12/2003: Linux 2.6
Các dòng:
Mandrake
Fedora/Redhat
Debian
SUSE
Gentoo
Ubuntu
Hệ thống máy tính có thể được chia thành bốn
thành phần:
phần cứng,
hệ điều hành,
các chương trình ứng dụng và chương trình hệ thống
ngoài hệ điều hành,
người dùng.
31
Hệ điều hành là một bộ chương trình liên quan
mật thiết đến phần cứng, có các chức năng chủ
yếu sau :
Cung cấp môi trường làm việc cho phép người dùng
thực hiện và phát triển các chương trình máy tính một
cách thuận tiện, hiệu quả.
Phân bổ tài nguyên máy tính cho các chương trình và
người dùng đang hoạt động một cách công bằng và
hiệu quả nhất.
Điều khiển, giám sát các thiết bị I/O và các chương
trình người dùng, đảm bảo an ninh hệ thống.
32
Hệ thống máy tính đa năng hiện đại bao gồm một hay
nhiều CPU và một số thiết bị khác.
Chúng được kết nối với nhau thông qua một bus chung,
cung cấp việc truy cập bộ nhớ chia sẻ.
Mỗi loại hình cụ thể của thiết bị có một bộ điều khiển thiết
bị (device controler) chịu trách nhiệm điều khiển nó.
CPU và các bộ điều khiển thiết bị có thể hoạt động song
song, cùng sử dụng chung bộ nhớ.
Để đảm bảo trật tự truy cập bộ nhớ chia sẻ, hệ thống máy
tính cung cấp một bộ điều khiển bộ nhớ có chức năng
đồng bộ hóa việc truy cập vào bộ nhớ.
33
34
CPUs vẫn sẽ nhàn rỗi mỗi khi chương trình thực thi cần giao tiếp với
thiết bị ngoại vi
Đọc dữ liệu từ đĩa
Hệ thống đa chương theo lô (Multiprogrammed batch systems) ra đời
Nạp nhiều chương trình vào đĩa cùng một thời gian (sau này là vào bộ
nhớ)
Chuyển sang công việc kế tiếp nếu công việc hiện thời đang thực hiện
lệnh I/O
▪ Thiết bị ngoại vi thường chậm hơn trên đĩa (hay bộ nhớ)
Đồng thời thực hiện I/O của chương trình này và tính toán cho chương
trình khác
Thiết bị ngoại vi phải là bất đồng bộ
Phải biết khi nào công việc I/O xong: ngắt vs. polling
Tăng khả năng phục vụ của hệ thống, có thể tốn nhiều thời gian hơn để
phản hồi
Khi nào thì tốt cho thời gian phản hồi? Khi nào thì xấu cho thời gian
phản hồi?
Vấn đề
Làm sao chia sẻ cùng một máy tính (lúc đó rất đắt)
giữa nhiều người dùng và vẫn duy trì giao diện giao
tiếp với người dùng?
Chia sẻ thời gian
Nối nhiều thiết bị đầu cuối đầu cuối đến một máy tính
Điều phối sử dụng máy tính cho nhiều người dùng
Chuyển đổi phục vụ giữa các chương trình người
dùng sao cho đủ nhanh để người sử dụng có thể
tương tác với chương trình trong khi chúng đang chạy
(máy phải đủ nhanh để tạo cảm giác mỗi người dùng
đang dùng máy riêng của mình)
o Định thời công việc (job scheduling)
o Quản lý bộ nhớ (Memory Management)
▪ Các công việc được hoán chuyển giữa bộ nhớ chính và đĩa
▪ Virtual memory: cho phép một công việc có thể được thực thi
mà không cần phải nạp hoàn toàn vào bộ nhớ chính
o Quản lý các process (Process Management)
▪ Định thời CPU (CPU scheduling)
▪ Đồng bộ các công việc (synchronization)
▪ Tương tác giữa các công việc ( process communication)
▪ Tránh Deadlock
o Quản lý hệ thống file, hệ thống lưu trữ (disk
management)
o Phân bổ các thiết bị tài nguyên
o Cơ chế bảo vệ (protection)
Đa chương tức là khả năng thực hiện nhiều
chương trình cùng lúc. Lập trình đa chương cho
phép tăng hiệu suất sử dụng CPU.
Trong hệ thống đa chương, khi công việc đang thực
thi cần phải chờ đợi một sự kiện nào đó, hệ điều
hành thực thi một công việc khác đang nằm trong
bộ nhớ. Do vậy, khi có ít nhất một công việc cần
phải thực thi, CPU không bao giờ nhàn rỗi.
Hệ thống đa chương cung cấp một môi trường
trong đó các tài nguyên hệ thống khác nhau được
sử dụng có hiệu quả, nhưng không cung cấp cho
người dùng sự tương tác với hệ thống máy tính.
38
Trong hệ thống chia sẻ thời gian, CPU thực
hiện nhiều công việc bằng cách chuyển đổi giữa
chúng, các chuyển đổi xảy ra thường xuyên nên
người dùng có thể tương tác với mỗi chương
trình trong khi nó đang chạy.
Các vấn đề quan trọng trong hệ thống chia sẻ
thời gian và đa chương là điều phối CPU, quản
lý tiến trình, quản lý bộ nhớ, quản lý hệ thống
file, v.v
39
Chế độ hoạt động kép: Để đảm bảo hệ điều
hành chạy tốt, phải có khả năng phân biệt giữa
việc thực thi mã lệnh của hệ điều hành và việc
thực thi mã lệnh của người dùng. Do vậy cần
hai chế độ riêng biệt của hoạt động: chế độ
người dùng (user mode) và chế độ hạt nhân
(kernel mode, còn gọi là chế độ giám sát, chế
độ hệ thống, hoặc chế độ đặc quyền).
Timer: Bộ đếm thời gian được dùng để ngăn
chặn một chương trình người dùng chạy quá
lâu.
40
41
Cấu trúc đơn giản
Cấu trúc phân lớp
Cấu trúc máy ảo
Cấu trúc Modules
43
Thủ tục chính
Thủ tục dịch vụ
Thủ tục tiện ích
Ví dụ điển hình: HĐH MS-DOS
HĐH chỉ làm một số nhiệm vụ
quản lý khá đơn giản và cung
cấp thêm một số dịch vụ.
HĐH = Thư viện hàm.
Ứng dụng của người dùng vẫn
có thể truy cập trực tiếp phần
cứng thông qua BIOS, cổng
phần cứng
Không hỗ trợ đa nhiệm.
Đánh giá: khi chương trình
treo?
Ứng dụng
Hệ điều hành (DOS)
Phần cứng (BIOS, port)
Tiện ích thường trú
Ví dụ với HĐH DOS
HĐH phân thành nhiều
lớp. Mỗi lớp phụ trách 1
chức năng đặc thù.
Lớp bên trên sử dụng
chức năng do các lớp bên
dưới cung cấp.
Lớp 5: Chương trình ứng dụng
Lớp 4: Quản lý bộ đệm cho t/bị xuất nhập
Lớp 3:Trình quản lý thao tác console
Lớp 2: Quản lý bộ nhớ
Lớp 1: Điều phối CPU
Lớp 0: Phần cứng
Ưu điểm:
▪ đơn giản việc tìm lỗi và kiểm chứng hệ thống
▪ Đơn giản trong việc thiết kế và cài đặt
Khuyết điểm:
▪ Bao nhiêu lớp là đủ ?, thứ tự sắp xếp các lớp ?
▪ Kém hiệu quả do 1 lời gọi thủ tục có thể kích hoạt
lan truyền các thủ tục ở các lớp bên trong => chi phí
truyền thông số, chuyển đổi ngữ cảnh tăng
47
Có nghe đến máy ảo bao giờ? Ví dụ?
Do mục tiêu của HĐH là chạy được nhiều chương trình
đồng thời trên một máy tính nên cách tốt nhất là tạo ra
nhiều máy tính ảo từ một máy tính thật để các chương
trình chạy riêng trên các máy ảo.
Về nguyên tắc các chương trình không biết mình đang
chạy trên máy ảo, cũng không biết mình đang phải chia
sẻ tài nguyên với các chương trình khác. Ví dụ:
CPU ảo: mỗi chương trình sở hữu một CPU ảo
Bộ nhớ ảo: mỗi chương trình một không gian nhớ riêng
Đa nhiệm và phân chia thời gian
Phân tách 2 chức năng của hđh:
▪ Cung cấp đa chương (multiprogramming)
▪ Cung cấp 1 máy tính mở rộng
48
49
Non-virtual Machine Virtual Machine
50
TTrình
HĐH
Phần cứng Phần cứng
Máy ảo
HĐH
TTrình
HĐH
TTrình
HĐH
TTrình
Giao diện lập trình
Ưu điểm:
Môi trường thuận lợi cho sự tương thích
Tăng tính an toàn cho hệ thống do các VM độc lập
Dễ phát triển các HĐH đơn nhiệm cho các VM độc lập.
Tài nguyên hệ thống được bảo vệ hoàn toàn
Phân tách đa chương và máy tính mở rộng
Khuyết điểm
Phức tạp trong việc giả lập phần cứng
Core Solaris
kernel
Scheduling
classesDevice &
bus drivers
Miscellaneous
modules
STREAM
modules
Executable
formats
Loadable
system calls
File systems
Ví dụ kiến trúc của HĐH Solaris
53
Là tập các hàm cơ bản nhất của hệ điều hành
để phục vụ các yêu cầu từ các chương trình
người dung.
Lời gọi hệ thống cung cấp một giao diện cho
các dịch vụ được cung cấp bởi hệ điều hành.
Các chương trình người dùng sử dụng các dịch
vụ của hệ điều hành thông qua giao diện là các
lời gọi hệ thống. Các lời gọi hệ thống được viết
bằng C, C + + hoặc hợp ngữ (Assembler).
54
Ví dụ, chuỗi các lời gọi hệ thống được thực hiện
để sao chép nội dung của một tập tin sang một
tập tin khác
55
Thông thường, chương trình người dùng không gọi trực
tiếp các lời gọi hệ thống của hệ điều hành.
Hệ điều hành thường cung cấp bộ thư viện các hàm lập
trình, chẳng hạn Win32 API, POSIX API (application
programming interface), giúp việc lập trình dễ dàng hơn
phải dùng các lời gọi hệ thống.
Tuy nhiên, thông thường người lập trình thường dùng
các hàm thư viện của các ngôn ngữ lập trình như thư
viện C, Java, (do dễ sử dụng hơn các hàm thư viện
của hệ điều hành).
Cho dù là sử dụng hàm ngôn ngữ lập trình hay hàm thư
viện hệ điều hành thì cuối cùng cũng sẽ chuyển thành
các lời gọi hệ thống tương ứng.
ReadFile()
read()
read()
điều khiển tiến trình,
quản lý tập tin,
quản lý thiết bị,
bảo trì thông tin,
truyền thông,
bảo vệ.
59
Quản lý bộ xử lý – Quản lý tiến trình
Quản lý bộ nhớ
Quản lý nhập xuất
Quản lý lưu trữ - Hệ thống tập tin
Hệ thống bảo vệ và bảo mậtCPU Memory
memory bus
I/O bus
disk Net interface
Tiến trình là chương trình đang thực thi.
Một tiến trình cần sử dụng các tài nguyên: CPU, bộ nhớ,
tập tin, thiết bị nhập xuất để hoàn tất công việc của nó
Hệ thống đa chương: sẽ có nhiều tiến trình chạy cùng
lúc.
Số lượng tài nguyên << số lượng tiến trình chạy cùng
lúc !!! Tranh chấp
Vai trò của HĐH trong việc quản lý
tiến trình
Tạo, hủy, tạm dừng và thực hiện tiếp
tiến trình
Quản lý trạng thái các tiến trình
Điều phối tiến trình: FIFO, Round
Robin, SJF,
Cung cấp cơ chế đồng bộ tiến trình
▪ Độc quyền truy xuất
▪ Phối hợp hoạt động
Cung cấp cơ chế kiểm soát deadlock
Cung cấp cách thức trao đổi thông tin
giữa các tiến trình
▪ Chia sẻ tài nguyên dùng chung
▪ Trao đổi thông điệp
Mọi chương trình (mã nguồn + dữ liệu)
cần được nạp vào bộ nhớ chính để thi
hành
Nhiều tiến trình chạy đồng thời Quản
lý bộ nhớ sao cho tối ưu việc tận dụng
CPU và đáp ứng kịp thời cho người sử
dụng
Vai trò của HĐH trong việc quản lý bộ
nhớ:
Tổ chức cấp phát, thu hồi bộ nhớ khi cần thiết
▪ Mô hình cấp phát (liên tục, không liên tục)
▪ Quản lý không gian địa chỉ của tiến trình
Quản lý bộ nhớ ảo
▪ Quyết định chương trình/ một phần chương trình
nào được nạp vào/ ra bộ nhớ như thế nào
Hệ thống quản lý nhập xuất chịu trách
nhiệm:
Tạo môi trường giao tiếp đơn giản, đồng nhất
với các thiết bị nhập xuất
▪ Trình điều khiển thiết bị: che đi đặc thù phức tạp
của các thiết bị nhập xuất đối với người sử dụng
Quản lý hiệu quả nhập xuất:
▪ Điều phối yêu cầu nhập xuất
▪ Tổ chức lưu trữ đệm (buffering, spooling,)
▪ Quản lý lỗi
Nhiều loại thiết bị lưu trữ đa dạng về tốc
độ truy xuất, đơn vị lưu trữ, phương
thức truy xuất (đĩa cứng, USB, CD,)
HĐH cung cấp cái nhìn logic và đồng
nhất về việc lưu trữ thông tin – tập tin
Tập tin thường được tổ chức trong các
thư mục
Vai trò HĐH trong việc quản lý tập tin:
Tổ chức tập tin, thư mục trên đĩa
Hỗ trợ các thao tác trên tập tin và thư mục
Quản lý quyền truy cập
Sao lưu dự phòng tập tin trên các thiết bị lưu trữ
Hệ thống máy tính luôn đứng trước các
mối nguy cơ:
Khách quan: thiên tai, lỗi sử dụng, lỗi phần
cứng, phần mềm.
Chủ quan:
▪ Tấn công phá hoại: virus, worm, DoS,
▪ Ăn cắp tài nguyên: trojan horses, trap doors, Man-
in-the-middle,
Bảo vệ (protection) và Bảo mật (security):
Kiểm soát quá trình truy xuất tài nguyên của tiến trình/
người dùng
Phòng thủ, chống lại các tấn công
Một số cơ chế:
Hoạt động ở 2 chế độ (kernel mode vs. user mode)
Sao lưu dự phòng (Backup)
Xác thực người dùng (User Authentication)
Phân quyền (Authorization), chính sách bảo mật
(Policy)
Kiểm soát nhật ký (Audit log)
+,-,*,/
CPU
0
1
2
Bộ nhớ
3
4
5
7
6
8
9
8Bộ đếm CT (PC)
Phép toán
Phép logic ,!=
Thanh ghi 0
Thanh ghi 1
Thanh ghi n
Bộ xử lý gồm: ALU, CU, Register
Quá trình bộ xử lý thực thi yêu cầu (dưới dạng các
lệnh): lấy lệnh – giải mã – thực thi (fetch – decode –
execute)
69
Power on
Reboot
Khởi tạo hệ thống
CPU, device controller, main memory, load đoạn code khởi động hđh
Hệ điều hành nằm ở đâu ?
Làm sao để máy tính nạp và chạy HĐH lúc khởi động?
Quá trình để khởi động HĐH gọi là booting
Quá trình khởi động của các máy hiện đại gồm 3 giai
đoạn
CPU thực thi lệnh từ địa chỉ cố định biết trước (boot ROM)
Firmware nạp boot loader
Boot loader nạp HĐH
(1) CPU thực thi lệnh từ địa chỉ biết trước trong bộ nhớ
Địa chỉ vùng nhớ này thường trỏ tới vùng nhớ chỉ đọc (ROM –
read-only memory)
Với x86, địa chỉ này là 0xFFFF0, trỏ tới địa chỉ chương trình
BIOS (basic input-output system) trong ROM
(2) ROM chứa mã nguồn “boot”
Loại phần mềm chỉ đọc này gọi là
firmware
Với x86, chương trình BIOS thực hiện
lần lượt các công việc:
▪ Kiểm tra cấu hình trong CMOS (complementary
metal oxide semiconductor)
▪ Nạp trình quản lý ngắt (interrupt handler) và các
trình điều khiển thiết bị
▪ Khởi tạo các thanh ghi và quản lý nguồn cung
cấp (power management)
▪ Thực hiện quá trình kiểm tra phần cứng
(POST – power-on self-test)
▪ Hiển thị các thiết lập hệ thống
▪ Xác định các thiết bị có khả năng khởi động
▪ Tiếp tục quá trình khởi động
Nạp và thực thi chương trình boot loader.
(3) Boot loader sau đó nạp phần còn lại của HĐH.
Chú ý rằng tại thời điểm này HĐH vẫn chưa chạy
Boot loader hiểu được nhiều hệ điều hành khác nhau
Boot loader hiểu được nhiều phiên bản khác nhau của các HĐH
Đã bao giờ nghe “dual boot” ?
Bài giảng này có tham khảo từ:
Slide Bài giảng Hệ điều hành, ĐH KHTN
TpHCM.
Slide Bài giảng Hệ điều hành, ĐH CNTT.
76
77
Các file đính kèm theo tài liệu này:
- bai_giang_he_dieu_hanh_ths_luong_tran_hy_hien_6004_1984623.pdf