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

Giới thiệu môn học

 Mục tiêu môn học

 Vai trò của HĐH

 Nội dung

 Nguyên lý hoạt động của HĐH đa nhiệm

 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.2

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ớ

Thi GK

6

4

Quản lý I/O

3

5

Quản lý hệ thống file

6

6

Ôn tập

Thi CK

3

30

1.3

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.4

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)

 Chú ý

 Tiểu luận (2)

nếu nghỉ học quá 20% số tiết quy định

 Học sinh không được dự thi kết thúc học phần và phải học lại

chính đáng thì phải nhận điểm 0

 Học sinh vắng mặt trong các lần kiểm tra mà không có lý do

1.5

Overview CHƯƠNG 1: GIỚI THIỆU

1.6

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.7

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

 Hoạt động của Hệ điều hành

 interrupt

 Các chức năng của Hệ điều hành

 Dual mode và chế độ đặc quyền dành cho hdh

 Các dịch vụ 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

 Một số cấu trúc Hệ điều hành

 Cơ chế truy suất các dịch vụ - system calls

 Giới thiệu cấu trúc của MS DOS, Unix

1.8

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:

 CPU, memory, thiết bị I/O

 Phần cứng (Hardware)

 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

 Hệ điều hành (Operating system)

 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,…

 Các chương trình ứng dụng (Application programs)

 Con người, máy móc, các máy tính khác

 Người dùng (Users)

1.9

4 thành phần chính của 1 hệ thống máy tính

1.10

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.11

Tổ chức của một hệ thống máy tính

1.12

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)

 Các bộ điều khiển thiết bị (device controllers) trực tiếp điều

 CPU đọc/ghi dữ liệu với memory, qua đường truyền bus

khiển hoạt động của các thiết bị I/O

hay ghi ra thiết bị

 Mỗi bộ điều khiển có một local buffer lưu dữ liệu đọc từ thiết bị

buffer

 Hoạt động I/O là hoạt động đọc/ghi dữ liệu giữa thiết bị và local

I/O bằng một ngắt (interrupt)

 Bộ điều khiển thiết bị sẽ thông báo với CPU khi hoàn tất thao tác

1.13

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.14

Hoạt động của một hệ thống máy tính

 Ngắt (interrupt)

một số chức năng chung

 Mỗi thiết kế máy tính có cơ chế ngắt (interrupt) riêng, nhưng có

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

 Sự xuất hiện của 1 sự kiện được thông báo cho OS dưới dạng

 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

 Chương trình đang thi hành bị tạm dừng khi một ngắt phát sinh

1.15

Hoạt động của một hệ thống máy tính

 Ngắt (interrupt)

1.16

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

một ngắt báo hiệu thao tác I/O đã hoàn tất

 Khi thao tác I/O bắt đầu, CPU tạm ngưng xử lý cho đến khi nhận

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

 Hoặc, khi thao tác I/O bắt đầu, CPU tiếp tục xử lý các lệnh của

1.17

Hoạt động của một hệ thống máy tính

 Hoạt động I/O

 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

 DMA (Direct Memory Access)

1.18

Hoạt động của một hệ thống máy tính

 Tổ chức lưu trữ (Storage)

 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

 Main memory (random-access memory or RAM)

 Cung cấp khả năng lưu trữ lớn, bền vững

 Có nhiều loại: magnetic disk,…

 Các thiết bị lưu trữ thứ cấp (secondary storages)

1.19

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ữ

 Tốc độ

 Giá

 Tính bền vững

 Sự khác biệt

 Dữ liệu được chuyển từ bộ nhớ có tốc độ chậm tới bộ nhớ có

tốc độ cao hơn

 Caching

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ữ

1.21

Kiến trúc hệ thống máy tính

 Mô hình hoạt động của Modern Computer

1.22

Kiến trúc hệ thống máy tính

 Single-Processor Systems

 Multiprocessor Systems (parallel systems or multicore systems)

 Tăng thông lượng

 Quy mô kinh tế

 Tăng độ tin cậy

 Lợi thế

 Asymmetric (không đối xứng) multiprocessing

 Symmetric (đối xứng) multiprocessing (SMP)

 Hai dạng multiple-processing systems

1.23

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.24

Kiến trúc hệ thống máy tính

1.25

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

 Hệ điều hành hoàn tất khởi động (thành công) là thời điểm :

 Nạp hệ điều hành vào bộ nhớ và thực thi hệ điều hành

 Quá trình khởi động máy kết thúc

chương trình ứng dụng …

 Người dùng bắt đầu quá trình sử dụng máy tính thông qua các

1.26

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.27

 Multiprogramming

P1

Run

Wait

Run

Wait

Wait

Wait

Wait

Run

Run

P2

Wait

P3

Run

Wait

Run

Wait

Wait

Wait

P1, P2, P3

Run

Run

Run

Run

Run

Run

1.28

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.29

 Time sharing (or multi tasking)

P1

P2

P3

Normal Time interval

P1 Completed

I/O Started by P1

1.30

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

 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

 Cung cấp các system call đáp ứng ngắt từ software

 Chương trình của người dùng hoạt động ở user mode

system mode, privileged mode)

 Hệ điều hành hoạt động ở kernel mode (hay supervisor mode,

1.31

Hoạt động của hệ điều hành

 Chuyển từ user mode sang kernel mode

kernel (0), user (1)

 Mode bit được add vào hardware để xác định mode hiện tại:

 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.32

Hoạt động của hệ điều hành

 Timer

định (vd: 1/60 second) hoặc một khoảng biến thiên thời gian (vd: 1milisec  1sec)

 Được thiết lập để ngắt máy tính sau một khoảng thời gian xác

khoảng thời gian mà 1 chương trình được phép chạy

 Tránh user program chạy quá lâu bằng cách đơn giản là đếm

1.33

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.34

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

 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

 Dữ liệu

 Tiến trình thực thi từng lệnh, tuần tự, cho đến khi hoàn tất

1.35

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.36

Quản lý bộ nhớ

 Bộ nhớ là nơi chứa tiến trình

 Quản lý bộ nhớ bao gồm

 CPU sẽ đọc và thực thi tuần tự, từng lệnh, từ memory

Được sử dụng bởi tiến trình nào?

 Quản lý từng phần của bộ nhớ: đang được sử dụng hay không?

 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.37

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

 Hệ điều hành thực hiện quản lý File System

 Trừu tượng các thuộc tính vật lý thành đơn vị lưu trữ logic “file”

 Các file được đặt vào các thư mục

WHAT)

 Kiểm soát quyền truy suất vào file system (WHO can access

mục

 Cung cấp công cụ để user thực hiện các thao tác trên file và thư

 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.38

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

 General devide-driver

 Driver cho các thiết bị phần cứng đặc biệt

 Cung cấp trình điều khiển thiết bị

1.39

Bảo vệ và An ninh

 Bảo vệ

nguyên của hệ thống máy tính

 An ninh

 Kiểm soát truy xuất của các tiến trình và người dùng tới tài

ngoài (worm, virus, DOS,…)

 Bảo vệ hệ thống chống lại những tấn công từ bên trong và bên

1.40

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:

(Graphic User Interface), Batch

 Giao diện người dùng: CLI (Command Line Interface) hay GUI

 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

giữa các máy tính với nhau

 Trao đổi thông tin giữa các chương trình trong 1 máy tính, và

 Phát hiện lỗi và cung cấp đáp ứng lỗi

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:

 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

kiểm soát

 Đảm bảo mọi truy xuất sử dụng tài nguyên hệ thống là được

 Bảo vệ hệ thống khỏi sự truy xuất và sử dụng không được phép

1.42

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

1.43

Giao diện người dùng HĐH

 Giao diện người dùng

 Giao diện lập trình

system call

 OS cung cấp dịch vụ cho các chương trình ứng dụng qua các

Program Interface)

 Các system call có thể được gọi thông qua các API (Application

 Process control

 File management

 Device management

 Information maintance

 Communication

 Protection

 Các system calls cung cấp các dịch vụ

1.44

Giao diện người dùng HĐH

1.45

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:

terminate process; get process attributes, set process attributes; wait for time; wait event, signal event; allocate and free memory

 Process control: (end, abort; load, execute; create process,

write, reposition; get file attributes, set file attributes)

 File management (create file, delete file; open, close; read,

 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.46

1.47

Example of System Calls

1.48

System Call Implementation

1.49

API – System call – OS relationship

1.50

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.51

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

 Simple structure: MS-DOS

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 cung cấp hầu hết các chức năng trong không gian ít

single user, single tasking, command line interface

 MS-DOS là hệ thống nhỏ, đơn giản và hệ thống giới hạn 

1.52

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

 MS-DOS Layer Structure

1.53

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

 UNIX

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

 Giới hạn bởi chức năng phần cứng, UNIX OS nguyên thủy giới

1.54

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

 UNIX

1.55

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

 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

 Dự báo thời tiết, mô phỏng, tính toán lại các bảng tính

1.56

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.57

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.58

HĐH nhúng (Embedded OS)

 Phát triển rộng khắp

 Đặc tính

 Hiện thời, ĐTDĐ và PDAs  Tương lai, các thiết bị tính toán ở mọi nơi

 Chúng ta cần chạy những ứng dụng mạnh hơn!..

 Tài nguyên hạn hẹp: CPU chậm, bộ nhớ nhỏ, không ổ đĩa, v.v.

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.

 Làm sao ta có thể chạy các chương trình mạnh hơn khi mà phần

1.59

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

 Hoạt động của Hệ điều hành

 interrupt

 Các chức năng của Hệ điều hành

 Dual mode và chế độ đặc quyền dành cho hdh

 Các dịch vụ 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

 Một số cấu trúc Hệ điều hành

 Cơ chế truy suất các dịch vụ - system calls

 Giới thiệu cấu trúc của MS DOS, Unix

nhúng

 HĐH song song, HĐH thời gian thực, HĐH phân tán, HĐH

1.60