Tài liệu Hệ điều hành - Chương 1: Giới thiệu - Ngô Hữu Dũng: HỆ ĐIỀU HÀNH
(OPERATING SYSTEM CONCEPTS)
Wiley - Operating System
Concepts(Silberschatz).9th
GV TS. Ngô Hữu Dũng
Email ngohuudung@iuh.edu.vn
Site ngohuudung.blogspot.com
1.2
Giới thiệu môn học
Mục tiêu môn học
Vai trò của HĐH
Nguyên lý hoạt động của HĐH đa nhiệm
Nội dung
Chương 1: Tổng quan (Overview)
Chương 2: Quản lý tiến trình (Process Management)
Chương 3: Quản lý bộ nhớ (Memory Management)
Chương 4: Quản lý I/O (I/O Management)
Chương 5: Quản lý hệ thống file (Storage Management)
1.3
Giới thiệu môn học
Nội dung Số
tiết
1 Tổng quan 3
2 Quản lý tiến trình 9
3 Quản lý bộ nhớ 6 Thi GK
4 Quản lý I/O 3
5 Quản lý hệ thống file 6
6 Ôn tập 3 Thi CK
30
1.4
Giới thiệu môn học
Giáo trình / TLTK :
1. Silberschatz, Galvin and Gagne , Operating System Concepts –8th
Edition
2. Ninh Xuân Hải, Hùynh Trọng Thưa. Giáo trình Hệ điều hành, Học viện
CN Bưu chính Viễn thông TP HCM , 2008
3. Lê Khắc Nhiên Ân, Giáo trình Nhập môn Hệ điều hành, ĐH...
60 trang |
Chia sẻ: putihuynh11 | Lượt xem: 659 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Hệ điều hành - Chương 1: Giới thiệu - Ngô Hữu Dũng, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
HỆ ĐIỀU HÀNH
(OPERATING SYSTEM CONCEPTS)
Wiley - Operating System
Concepts(Silberschatz).9th
GV TS. Ngô Hữu Dũng
Email ngohuudung@iuh.edu.vn
Site ngohuudung.blogspot.com
1.2
Giới thiệu môn học
Mục tiêu môn học
Vai trò của HĐH
Nguyên lý hoạt động của HĐH đa nhiệm
Nội dung
Chương 1: Tổng quan (Overview)
Chương 2: Quản lý tiến trình (Process Management)
Chương 3: Quản lý bộ nhớ (Memory Management)
Chương 4: Quản lý I/O (I/O Management)
Chương 5: Quản lý hệ thống file (Storage Management)
1.3
Giới thiệu môn học
Nội dung Số
tiết
1 Tổng quan 3
2 Quản lý tiến trình 9
3 Quản lý bộ nhớ 6 Thi GK
4 Quản lý I/O 3
5 Quản lý hệ thống file 6
6 Ôn tập 3 Thi CK
30
1.4
Giới thiệu môn học
Giáo trình / TLTK :
1. Silberschatz, Galvin and Gagne , Operating System Concepts –8th
Edition
2. Ninh Xuân Hải, Hùynh Trọng Thưa. Giáo trình Hệ điều hành, Học viện
CN Bưu chính Viễn thông TP HCM , 2008
3. Lê Khắc Nhiên Ân, Giáo trình Nhập môn Hệ điều hành, ĐH KHTN TP
HCM
4. Trần Hạnh Nhi, Giáo trình Hệ điều hành nâng cao, ĐH KHTN TP HCM
1.5
Giới thiệu môn học
Kiểm tra và đánh giá :
Kiểm tra giữa kỳ (lý thuyết)
Thi kết thúc môn (lý thuyết)
Tiểu luận (2)
Chú ý
Học sinh không được dự thi kết thúc học phần và phải học lại
nếu nghỉ học quá 20% số tiết quy định
Học sinh vắng mặt trong các lần kiểm tra mà không có lý do
chính đáng thì phải nhận điểm 0
1.6
CHƯƠNG 1:
GIỚI THIỆU
Overview
1.7
Nội dung
Tổ chức của Hệ thống máy tính
Khái niệm Hệ điều hành
Hoạt động của hệ thống máy tính
Các chức năng của Hệ điều hành
Các dịch vụ của Hệ điều hành
Một số cấu trúc Hệ điều hành
1.8
Nội dung
Khái niệm Hệ điều hành
Tổ chức của Hệ thống máy tính
4 thành phần
interrupt
Hoạt động của Hệ điều hành
Dual mode và chế độ đặc quyền dành cho hdh
Các chức năng của Hệ điều hành
Quản lý tiến trình, memory, lưu trữ, I/O , bảo vệ và an ninh
Các dịch vụ của Hệ điều hành
Cơ chế truy suất các dịch vụ - system calls
Một số cấu trúc Hệ điều hành
Giới thiệu cấu trúc của MS DOS, Unix
1.9
Cấu trúc của hệ thống máy tính
Hệ thống máy tính có thể được chia thành 4 phần chính:
Phần cứng (Hardware)
CPU, memory, thiết bị I/O
Hệ điều hành (Operating system)
Phần mềm điều khiển và điều phối việc sử dụng phần cứng
giữa các ứng dụng và người dùng
Các chương trình ứng dụng (Application programs)
Các phần mềm: xử lý văn bản, trình biên dịch, trình duyệt
web, hệ thống quản trị CSDL, game,
Người dùng (Users)
Con người, máy móc, các máy tính khác
1.10
4 thành phần chính của 1 hệ thống máy tính
1.11
Hệ điều hành là gì?
Một chương trình hoạt động trung gian giữa người dùng
và phần cứng máy tính
Các mục tiêu của HĐH
Thực thi các chương trình ứng dụng
Tạo sự thuận tiện, dễ dàng cho người sử dụng hệ
thống máy tính
Sử dụng một cách hiệu quả phần cứng máy tính
1.12
Tổ chức của một hệ thống máy tính
1.13
Hoạt động của một hệ thống máy tính
Hoạt động xử lý của Bộ xử lý trung tâm (CPU)
CPU đọc/ghi dữ liệu với memory, qua đường truyền bus
Các bộ điều khiển thiết bị (device controllers) trực tiếp điều
khiển hoạt động của các thiết bị I/O
Mỗi bộ điều khiển có một local buffer lưu dữ liệu đọc từ thiết bị
hay ghi ra thiết bị
Hoạt động I/O là hoạt động đọc/ghi dữ liệu giữa thiết bị và local
buffer
Bộ điều khiển thiết bị sẽ thông báo với CPU khi hoàn tất thao tác
I/O bằng một ngắt (interrupt)
1.14
Hoạt động của một hệ thống máy tính
Hoạt động xử lý của CPU và hoạt động I/O là song song
Dữ liệu sau khi chuyển từ thiết bị tới local buffer được CPU điều
khiển để ghi từ local buffer vào memory
(Tương tự với chiều ngược lại)
1.15
Hoạt động của một hệ thống máy tính
Ngắt (interrupt)
Mỗi thiết kế máy tính có cơ chế ngắt (interrupt) riêng, nhưng có
một số chức năng chung
Sự xuất hiện của 1 sự kiện được thông báo cho OS dưới dạng
interrupt
Phần cứng gởi tín hiệu (ngắt) tới CPU, thường thông qua các
đường truyền bus
Phần mềm tạo ra ngắt bằng cách thực hiện một system call
Chương trình đang thi hành bị tạm dừng khi một ngắt phát sinh
Interrupt chuyển điều khiển tới trình phục vụ ngắt tương ứng
(interrupt service routine), thông qua interrupt vector – nơi
chứa địa chỉ của tất cả các service routines
OS lưu lại trạng thái của CPU (các thanh ghi và program
counter) trước khi xử lý ngắt
1.16
Hoạt động của một hệ thống máy tính
Ngắt (interrupt)
1.17
Hoạt động của một hệ thống máy tính
Hoạt động I/O: được thiết kế theo 1 trong 2 dạng
Khi thao tác I/O bắt đầu, CPU tạm ngưng xử lý cho đến khi nhận
một ngắt báo hiệu thao tác I/O đã hoàn tất
Hoặc, khi thao tác I/O bắt đầu, CPU tiếp tục xử lý các lệnh của
chương trình mà không chờ thao tác I/O hoàn tất
Khi I/O hoàn tất, một ngắt được phát sinh báo cho CPU, CPU
tạm ngưng xử lý, chuyển sang xử lý ngắt
1.18
Hoạt động của một hệ thống máy tính
Hoạt động I/O
DMA (Direct Memory Access)
Bộ điều khiển thiết bị truyền các block dữ liệu từ buffer tới
memory mà không cần sự điều khiển của CPU
– CPU không tham gia vào quá trình điều khiển chuyển dữ
liệu giữa local buffer và memory
– Một ngắt được phát sinh báo cho CPU khi 1 block dữ
liệu đã được ghi vào memory
1.19
Hoạt động của một hệ thống máy tính
Tổ chức lưu trữ (Storage)
Main memory (random-access memory or RAM)
Thiết bị lưu trữ duy nhất mà CPU có thể truy xuất trực tiếp
Nhỏ để lưu trữ tất cả các chương trình và dữ liệu
Là thiết bị lưu trữ không ổn định: nội dung có thể mất khi tắt
nguồn
Các thiết bị lưu trữ thứ cấp (secondary storages)
Cung cấp khả năng lưu trữ lớn, bền vững
Có nhiều loại: magnetic disk,
1.20
Hoạt động của một hệ thống máy tính
Cấu trúc phân cấp của hệ thống lưu trữ
Sự khác biệt
Tốc độ
Giá
Tính bền vững
Caching
Dữ liệu được chuyển từ bộ nhớ có tốc độ chậm tới bộ nhớ có
tốc độ cao hơn
1.21
Hoạt động của một hệ thống máy tính
Cấu trúc phân cấp của hệ thống lưu trữ
1.22
Kiến trúc hệ thống máy tính
Mô hình hoạt động của Modern Computer
1.23
Kiến trúc hệ thống máy tính
Single-Processor Systems
Multiprocessor Systems (parallel systems or multicore systems)
Lợi thế
Tăng thông lượng
Quy mô kinh tế
Tăng độ tin cậy
Hai dạng multiple-processing systems
Asymmetric (không đối xứng) multiprocessing
Symmetric (đối xứng) multiprocessing (SMP)
1.24
Kiến trúc hệ thống máy tính
Multiprocessing (đa tiến trình) thêm CPU để tăng sức mạnh tính
toán của máy tính
Nếu CPU có tích hợp bộ điều khiển bộ nhớ thêm CPU cũng làm
tăng số lượng bộ nhớ địa chỉ trong hệ thống
1.25
Kiến trúc hệ thống máy tính
1.26
Quá trình khởi động của máy tính
Một chương trình – bootstrap program , được chạy vào lúc bật máy
Nằm trong ROM , hay EPROM
Kiểm tra hoạt động của các thiết bị nhập/xuất căn bản
Nạp hệ điều hành vào bộ nhớ và thực thi hệ điều hành
Hệ điều hành hoàn tất khởi động (thành công) là thời điểm :
Quá trình khởi động máy kết thúc
Người dùng bắt đầu quá trình sử dụng máy tính thông qua các
chương trình ứng dụng
1.27
Cấu trúc hệ điều hành
Multiprogramming
Một người dùng không thể chiếm giữ CPU và thiết bị I/O toàn thời gian
Tổ chức công việc (code and data) để CPU luôn có 1 công việc để xử lý
tăng khả năng sử dụng CPU
Tất cả các công việc trong hệ thống được lưu trữ trong memory
Một công việc được chọn và chạy theo kế hoạch công việc (job
scheduling)
Nếu phải chờ, OS sẽ chuyển sang thực hiện công việc khác
1.28
Multiprogramming
Run Wait Run Wait
Run RunWait Wait
Run RunWait Wait
Wait
Wait
Run Run Run Run Run RunWait Wait
P1
P2
P3
P1, P2, P3
1.29
Cấu trúc hệ điều hành
Time sharing (or multi tasking)
Phần mở rộng logic của multiprogramming
CPU thực hiện nhiều công việc bằng cách chuyển đổi giữa chúng. Khi
việc chuyển đổi xảy ra thường xuyên người dùng có thể tương tác với
các chương trình trong khi chúng đang chạy
Reponse time (thời gian phản hồi) nên < 1second
Mỗi người dùng có ít nhất một chương trình đang xử lý trong memory
process
Khi nhiều công việc sẵn sàng để chạy cùng lúc CPU scheduling
Khi các tiến trình không khớp với memory, swapping di chuyển chúng
ra-vào để chạy
Virtual memory cho phép thực hiện các tiến trình không hoàn toàn
nằm trong memory
1.30
Time sharing (or multi tasking)
P1
P2
P3
Normal Time interval
I/O Started by P1
P1 Completed
1.31
Hoạt động của hệ điều hành
Đáp ứng các ngắt được gởi đến hardware và software
Quản lý cơ chế routine đáp ứng ngắt
Cung cấp các system call đáp ứng ngắt từ software
Dual mode: phân biệt việc thực thi OS code (chức năng hệ thống)
với việc thực thi user program code (chức năng của user program)
nhằm bảo vệ OS khỏi ảnh hưởng lỗi của user program
Chương trình của người dùng hoạt động ở user mode
Hệ điều hành hoạt động ở kernel mode (hay supervisor mode,
system mode, privileged mode)
1.32
Hoạt động của hệ điều hành
Chuyển từ user mode sang kernel mode
Mode bit được add vào hardware để xác định mode hiện tại:
kernel (0), user (1)
Dựa vào mode bit ta có thể phân biệt 1 task được xử lý bởi hệ
điều hành (kernel mode) hay bởi ứng dụng người dùng (user
mode)
1.33
Hoạt động của hệ điều hành
Timer
Được thiết lập để ngắt máy tính sau một khoảng thời gian xác
định (vd: 1/60 second) hoặc một khoảng biến thiên thời gian (vd:
1milisec 1sec)
Tránh user program chạy quá lâu bằng cách đơn giản là đếm
khoảng thời gian mà 1 chương trình được phép chạy
1.34
Chức năng của hệ điều hành
Quản lý tiến trình
Quản lý bộ nhớ
Quản lý lưu trữ
Quản lý I/O
Bảo vệ và an ninh
1.35
Quản lý tiến trình
Tiến trình là chương trình đang thực thi
Tiến trình cần các tài nguyên để hoàn thành nhiệm vụ của nó
CPU, memory, I/O, files
Dữ liệu
Khi tiến trình kết thúc, hệ điều hành thu hồi lại các tài nguyên đã cấp
Mỗi tiến trình có 1 bộ đếm chỉ ra vị trí của lệnh kế tiếp sẽ được thực
thi
Tiến trình thực thi từng lệnh, tuần tự, cho đến khi hoàn tất
1.36
Quản lý tiến trình
Hệ điều hành chịu trách nhiệm thực hiện:
Tạo và xóa các tiến trình
Tạm ngưng hay tiếp tục chạy các tiến trình
Cung cấp các cơ chế để đồng bộ tiến trình
Cung cấp các cơ chế để giao tiếp giữa các tiến trình
Cung cấp các cơ chế để kiểm soát deadlock
1.37
Quản lý bộ nhớ
Bộ nhớ là nơi chứa tiến trình
CPU sẽ đọc và thực thi tuần tự, từng lệnh, từ memory
Quản lý bộ nhớ bao gồm
Quản lý từng phần của bộ nhớ: đang được sử dụng hay không?
Được sử dụng bởi tiến trình nào?
Quyết định tiến trình và data di chuyển vào và ra khỏi bộ nhớ
Cấp phát và thu hồi không gian bộ nhớ khi cần
1.38
Quản lý lưu trữ
Hệ điều hành cung cấp một khung nhìn logic về lưu trữ thông tin
Trừu tượng các thuộc tính vật lý thành đơn vị lưu trữ logic “file”
Hệ điều hành thực hiện quản lý File System
Các file được đặt vào các thư mục
Kiểm soát quyền truy suất vào file system (WHO can access
WHAT)
Cung cấp công cụ để user thực hiện các thao tác trên file và thư
mục
Quản lý ánh xạ file với vị trí lưu trữ trên thiết bị lưu trữ
Back up file
1.39
Quản lý I/O
Một trong những mục đích của hệ điều hành là che dấu sự phức tạp
của các thiết bị phần cứng
Hệ điều hành chịu trách nhiệm
Quản lý buffering, caching, spooling
Cung cấp trình điều khiển thiết bị
General devide-driver
Driver cho các thiết bị phần cứng đặc biệt
1.40
Bảo vệ và An ninh
Bảo vệ
Kiểm soát truy xuất của các tiến trình và người dùng tới tài
nguyên của hệ thống máy tính
An ninh
Bảo vệ hệ thống chống lại những tấn công từ bên trong và bên
ngoài (worm, virus, DOS,)
1.41
Các dịch vụ của hệ điều hành
Dưới góc độ người dùng: HĐH cung cấp các chức năng hữu ích:
Giao diện người dùng: CLI (Command Line Interface) hay GUI
(Graphic User Interface), Batch
Thực thi chương trình
Cho phép chương trình giao tiếp với thiết bị I/O
Quản lý dữ liệu người dùng
Trao đổi thông tin giữa các chương trình trong 1 máy tính, và
giữa các máy tính với nhau
Phát hiện lỗi và cung cấp đáp ứng lỗi
1.42
Các dịch vụ của hệ điều hành
Dưới góc độ người dùng: HĐH cung cấp các chức năng hữu ích:
Quản lý phân phối tài nguyên: multi-user, multitasking
Accounting: ghi nhận thông tin sử dụng hệ thống của user
Đảm bảo mọi truy xuất sử dụng tài nguyên hệ thống là được
kiểm soát
Bảo vệ hệ thống khỏi sự truy xuất và sử dụng không được phép
1.43
Các dịch vụ của hệ điều hành
1.44
Giao diện người dùng HĐH
Giao diện người dùng
Giao diện lập trình
OS cung cấp dịch vụ cho các chương trình ứng dụng qua các
system call
Các system call có thể được gọi thông qua các API (Application
Program Interface)
Các system calls cung cấp các dịch vụ
Process control
File management
Device management
Information maintance
Communication
Protection
1.45
Giao diện người dùng HĐH
1.46
System Calls
System calls: phương thức gọi một dịch vụ do OS cung cấp
Các dạng system calls:
Process control: (end, abort; load, execute; create process,
terminate process; get process attributes, set process attributes;
wait for time; wait event, signal event; allocate and free memory
File management (create file, delete file; open, close; read,
write, reposition; get file attributes, set file attributes)
Device management (request device, release device; read,
write, reposition; get device attributes, set device attributes;
logically attach or detach devices)
Information maintenance
Communication
Protection
1.47
1.48
Example of System Calls
1.49
System Call Implementation
1.50
API – System call – OS relationship
1.51
Standard C Library Example
Trong nhiều phiên bản Unix/Linux OS, thư viện C chuẩn là một
phần của system call interface
C program invoking printf() library call, which calls write() system call
1.52
Các cấu trúc hệ điều hành
Simple structure: MS-DOS
MS-DOS cung cấp hầu hết các chức năng trong không gian ít
nhất (do giới hạn phần cứng vào đầu 80’)
Không chia thành các modules
Giao diện và các tầng chức năng không tách biệt
MS-DOS là hệ thống nhỏ, đơn giản và hệ thống giới hạn
single user, single tasking, command line interface
1.53
Các cấu trúc hệ điều hành
MS-DOS Layer Structure
1.54
Các cấu trúc hệ điều hành
UNIX
Giới hạn bởi chức năng phần cứng, UNIX OS nguyên thủy giới
hạn cấu trúc. UNIX OS gồm 2 phần tách biệt
System programs
The kernel
– Bao gồm tất cả những gì bên dưới system call interface và
bên trên physical hardware
– Cung cấp file system, memory management, và các chức
năng khác của hệ điều hành
1.55
Các cấu trúc hệ điều hành
UNIX
1.56
Hệ điều hành song song (Parallel OS)
Vài ứng dụng có các công việc có thể thực hiện đồng thời
Dự báo thời tiết, mô phỏng, tính toán lại các bảng tính
Có thể tăng tốc độ bằng cách chạy các công việc trên các bộ xử lý
khác nhau song song đồng thời
Cần HĐH và ngôn ngữ lập trình hỗ trợ chia nhỏ công việc thành các
hành động song song
Cần HĐH hỗ trợ đồng bộ và truyền thông nhanh
Nhiều kiến trúc song song khác nhau
Khả năng thực thi và tính mở rộng
1.57
HĐH thời gian thực (Real-Time OS)
Thực thi các ứng dụng có thời hạn cho trước
Hard real-time system
Hệ thống điều khiển bay, các hệ thống điều khiển công nghiệp, v.v..
Gây thảm họa nếu ta trễ hạn
Thách thức là làm sao không trễ hạn mà không phung phí nhiều tài
nguyên
Soft real-time system
Ứng dụng multimedia
Có thể gây khó chịu nhưng không đến nỗi thảm họa nếu bị quá hạn đôi
chút!
Thách thức là làm sao không trễ hạn mà không phung phí nhiều tài
nguyên
Thử thách ở chỗ là khi hệ thống quá tải
1.58
HĐH phân tán (Distributed OS)
Clustering
Dùng nhiều máy nhỏ để phục vụ các công việc lớn
Rẻ hơn là dùng một máy tính lớn
Độ tin cậy cao hơn, tăng khả năng mở rộng
Hệ thống phân tán trong khu vực rộng
Cho phép sử dụng tài nguyên phân tán
V.d. sử dụng PC để truy cập Web
Không cần mang nhiều thông tin cần thiết theo mình
Cần HĐH hỗ trợ truyền thông và chia sẻ tài nguyên phân tán
V.d., hệ lưu trữ tập tin trên mạng
Quan tâm tính thực thi (mặc dù tăng tốc không phải là mục tiêu của
HĐH này), độ tin cậy cao, sử dụng nguồn tài nguyên đa dạng
1.59
HĐH nhúng (Embedded OS)
Phát triển rộng khắp
Hiện thời, ĐTDĐ và PDAs
Tương lai, các thiết bị tính toán ở mọi nơi
Đặc tính
Tài nguyên hạn hẹp: CPU chậm, bộ nhớ nhỏ, không ổ đĩa, v.v.
Chúng ta cần chạy những ứng dụng mạnh hơn!..
Làm sao ta có thể chạy các chương trình mạnh hơn khi mà phần
cứng vẫn như trước đây?
Sử dụng nhiều thiết bị
Tăng thêm các tiện ích trên thiết bị
HĐH giúp quản lý năng lượng, tính di động, tìm kiếm tài nguyên,
v.vv.
1.60
Tóm tắt
Khái niệm Hệ điều hành
Tổ chức của Hệ thống máy tính
4 thành phần
interrupt
Hoạt động của Hệ điều hành
Dual mode và chế độ đặc quyền dành cho hdh
Các chức năng của Hệ điều hành
Quản lý tiến trình, memory, lưu trữ, I/O , bảo vệ và an ninh
Các dịch vụ của Hệ điều hành
Cơ chế truy suất các dịch vụ - system calls
Một số cấu trúc Hệ điều hành
Giới thiệu cấu trúc của MS DOS, Unix
HĐH song song, HĐH thời gian thực, HĐH phân tán, HĐH
nhúng
Các file đính kèm theo tài liệu này:
- he_dieu_hanh_ts_ngo_huu_dung_ch01_os_overview_8742_1985358.pdf