phan xuân huy {[email protected]}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... ·...

417
1 Hệđiu hành (Operating System) PHAN Xuân Huy {[email protected]}

Upload: others

Post on 25-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

1

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

PHAN Xuân Huy{[email protected]}

Page 2: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

2

Thông tin giới thiệuBố cục môn học: 45 LT + 30 THHình thức thi:

Lý thuyết: 7 điểm (Không sử dụng tài liệu)Thực hành: 3 điểm (Theo qui định của GVHDTH)

Các thắc mắc vui lòng liên hệ:Phan Xuân Huy – [email protected]áo trình môn học:

Hệ điều hành – Lê Khắc Nhiên Ân – ĐHKHTN Tp.HCMHệ điều hành nâng cao - Trần Hạnh Nhi – ĐHKHTN Tp.HCM

Page 3: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

3

Mục tiêu của môn học: Cung cấpCác kiến thức cơ bản về HĐH đa nhiệmHiểu rõ mô hình tổ chức, nguyên lý hoạt động, của các thành phần cơ sở của một HĐH hiện đạiBiết cách sử dụng/quản trị các HĐH thông dụng, khai thác tốt các dịch vụ của HĐH.

Page 4: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4

Thảo luận – 1CPU vs nhiều Chương trình

Nhu cầu: Người dùng luôn thích sử dụng HĐH cho phépchạy vài chương trình đồng thờiHệ đ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 CPUrất đắ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ìnhKhông thể chia CPU làm nhiều phần như chia bánh được

Page 5: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

5

Thảo luận – Chia sẻ bộ nhớ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ônggian nhớ riêng.Vấn đề: bộ nhớ RAM thì có hạn (ví dụ 64MB), vậy khichạy nhiều chương trình thì ra sao ??? Ví dụ:

Windows XP (lõi) 60MBWindows Media Player 12MBVisual Studio .NET 30MB

Làm cách nào mà Windows vẫn chạy được?

Page 6: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

6

Thảo luận – Chia sẻ card soundKhi đ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àinhạc khác nhau trên 2 loa xem? Có được không?

Page 7: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

7

Nội dung môn học: gồm 5 chươngChương 1: Tổng quan về HĐHChương 2: Hệ thống quản lý tập tinChương 3: Hệ thống quản lý xuất nhậpChương 4: Quản lý tiến trìnhChương 5: Quản lý bộ nhớ

Page 8: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

8

Chương 1: Tổng quan về HĐHNội dung chương:

Vai trò của Hệ điều hànhCác thành phần của HĐHMột số kiến trúc HĐHQuá trình phát triển của HĐH Một số HĐH hiện đại

Page 9: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

9

Vai trò của HĐHQuản trị tài nguyên

Tài nguyên: CPU, RAM, HDD, printer…Đối tượng sử dụng tài nguyên: Chương trình ƯDNhiệm vụ: Cung cấp giải thuật cấp phát, quản trị tài nguyêncho 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 NSD.Mục tiêu: Tạo sự độc lập thiết bị.Ví dụ: Làm sao để MS.Word có thể in được với nhiều loại máyin khác nhau như in kim, laser, phun của nhiều hãng khác nhau

Page 10: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10

HĐH và các thành phần của hệ thống

Page 11: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11

HĐH và các thành phần của hệ thống

Page 12: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12

Các dịch vụ của hệ thốngNạp và thi hành chương trình (load & run)Các thao tác xuất nhập (I/O Operations)Các thao tác truy xuất/cập nhật hệ thống tập tin (file system)Các cơ chế liên lạc/trao đổi thông tin giữa các tácvụPhát hiện/chỉnh sửa lỗi…Giao tiếp giữa các chương trình ứng dụng và HĐH được thực hiện phần lớn thông qua các lời gọi hệthống (System Call)

Page 13: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

13

Các thành phần của HĐHQuả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 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ínhInput/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ạngShell (giao tiếp người dùng)

Page 14: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

14

Các thành phần của HĐH

Quaûn lyù tieán trình

Quaûn lyù boä nhôù chính

Quaûn lyù nhaääp xuaát

Quaûn lyù boä nhôù phuï

Heä thoáng taäp tin

Heä thoáng baûo veä

Giao tieáp maïngBoä thoâng dòch leänh

Page 15: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

15

Kiến trúc HĐHKiến trúc đơn giảnKiến trúc phân lớpKiến trúc máy ảoKiến trúc client/server

Page 16: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

16

1. Kiến trúc đơn giảnVí dụ điển hình cho kiến trúc này là DOS, trong đó HĐH chỉ làm một số nhiệm vụ quản lý còn khá đơn giản và cung cấp thêm một số dịch vụ.HĐH = Thư viện hàm.UD của người dùng vẫn cóthể truy cập trực tiếp đến phần cứng thông qua BIOS, cổng phần cứngKhô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

Page 17: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

17

2. Kiến trúc phân lớpHĐH phân thành nhiềulớp.Mỗi lớp phụ trách 1 chức năng đặc thù.Lớp bên trên sử dụngchức năng do các lớp bêndưới cung cấp.Khó xác định số lượnglớp, thứ tự lớp !!!Chi phí truyền tham sốxuyên các lớp !!!

Page 18: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

18

3. Kiến trúc máy ảo (1/4)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 ảoBộ nhớ ảo: mỗi chương trình một không gian nhớ riêng

Page 19: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

19

3.Kiến trúc máy ảo (2/4)

Non-virtual Machine Virtual Machine

Page 20: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

20

3.Kiến trúc máy ảo (3/4)- Ví dụ

Java Virtual Machine

Java OSJava VMOperating SystemHardware

Process Process

Java program

• Độc lập với Platform

Page 21: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

21

3. Kiến trúc máy ảo (4/4)Ưu điểm:

Môi trường thuận lợi cho sự tương thíchTăng tính an toàn cho hệ thống do các VM độc lậpDễ phát triển các HĐH đơn nhiệm cho các VM độc lập.

Khuyết điểmPhức tạp trong việc giả lập.

Page 22: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

22

4. Kiến trúc client/serverCác dịch vụ của HĐH được chia thành 2 phần:

Server: phần hạt nhân, lệ thuộc phần cứngClient: các tiện ích hệ thống, sử dụng dịch vụ do server cung cấp

Page 23: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

23

Giới thiệu các dòng HĐH hiện đạiDòng HĐH Windows

Quá trình phát triểnCác phiên bản chính

Dòng HĐH Unix/LinuxQuá trình phát triểnCác distro chính

Page 24: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

24

Dòng HĐH WindowsPhá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ệuWin2000: 35 triệuWinXP: 40 triệu

Page 25: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

25

Quá trình phát triển của dòng HĐH Windows (1/4)

Windows 1.0 – Phát hành 12/1985Windows 2.0

Phát hành 1987Chỉ hổ trợ bộ vi xử lý Intel 8086 hoặc 8088Có thể truy cập 1MB bộ nhớ

Windows 3.0Phát hành 05/1990Có thể truy cập 16MB bộ nhớ

Page 26: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

26

Quá trình phát triển của dòng HĐH Windows (2/4)

Windows 3.1Phát hành 04/1992Hỗ trợ TrueType fonts/ Multimedia

Windows NTPhát hành 07/1993Hỗ trợ chíp Intel 386, 486 và các chíp khác không củaPentiumLà hệ điều hành dòng server đầu tiênLà HĐH đầu tiên hỗ trợ các ỨD 32 bits

Page 27: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

27

Quá trình phát triển của dòng HĐH Windows (2/4)

Windows 95Phát hành 08/1995Cũng hỗ trợ các ứng dụng 32-bit (nhưng vẫn tương thích vớicác ƯD 16 bits

Windows 98Phát hành 06/1998Tăng cường về mặt hiệu năng và hỗ trợ phần cứng tốt hơnTích hợp các tính năng Internet

Windows MillenniumPhát hành 12/2000Là phiên bản destop hỗ trợ tốt multimedia.

Page 28: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

28

Quá trình phát triển của dòng HĐH Windows (4/4)

Windows 2000Phát hành 01/2000Hỗ 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ụngThuộ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 2003Windows Longhorn

Hỗ trợ ƯD 64 bits

Page 29: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

29

Quá trình phát triển của dòng HĐH Linux (1/2)

1969: UNIX, Thompson & Ritchie (AT&T Bell Lab)1987: Minix, Andy Tanenbaum1991: birth of Linux

Minix-like OS by Linus Torvardlimited devices, no networking

1994: Linux 1.0 only single-processor i386networking (Internet)enhanced file system (ext2)

1995: Linux 1.2more hardware8086 mode (DOS emulation) includedSupport other architecture:Sparc, Alpha, MIPS

Page 30: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

30

Quá trình phát triển của dòng HĐH Linux (2/2)

1996: Linux 2.0multiple architectures, multiple processorsthreads, memory management …

1999: Linux 2.22001: Linux 2.4

ISA PnP, USB,…12/2003: Linux 2.6

Page 31: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

31

Các distro chính của HĐH LinuxMandrakeFedora/RedhatDebianSUSEGentoo…

Page 32: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

32

Các đặc điểm chính của LinuxLà HĐH tương tự Unix.Là HĐH mã nguồn mở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 2003Chiếm khoảng 10% thị trường HĐH.

Page 33: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

1

Chương 2: Quản lý xuất nhậpNhiệm vụ của bộ phận quản lý xuất nhậpCác thiết bị xuất nhậpMô hình phân lớp trong quản lý xuất nhậpBộ điều khiển thiết bị (device controller)Trình điều khiển thiết bị (device driver)Cơ chế DMAQuản lý lỗi và bảo vệ quá trình xuất nhập

Page 34: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

2

Nhiệm vụMục tiêu của bộ phận quản lý xuất nhập

Giới thiệu lớp trừu tượng và độc lập thiết bịChe giấu các chi tiết kỹ thuật của các thiết bị phần cứng.Quản lý và sửa lỗi.

Làm cho các thiết bị phần cứng đơn giản và dễ dùng.Cho phép chia sẻ các thiết bị phần cứng

Xây dựng các cơ chế bảo vệ các thiết bị được chia sẻ.Điều phối thiết bị để phục vụ cho cùng lúc nhiều nhu cầu sửdụng.

Page 35: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

3

Ví dụ về các thiết bị xuất nhậpCác thiết bị giao tiếp:

Các thiết bị chỉ nhập : bàn phím, chuột, joystick…Các thiết bị chỉ xuất : màn hình, máy inCác thiết bị vừa nhập vừa xuất: card mạng.

Các thiết bị lưu trữThiết bị vừa xuất, vừa nhập: đĩa (cứng/mềm), băng từThiết bị chỉ xuất: CD-ROM.

Page 36: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4

Phân loại các thiết bị nhập xuấtPhân loại theo mục đích sử dụng:

Các thiết bị giao tiếp:Các thiết bị chỉ nhập : bàn phím, chuột, joystick…Các thiết bị chỉ xuất : màn hình, máy inCác thiết bị vừa nhập vừa xuất: card mạng.

Các thiết bị lưu trữThiết bị vừa xuất, vừa nhập: đĩa (cứng/mềm), băng từThiết bị chỉ xuất: CD-ROM

Phân loại theo phương pháp truy xuất:Thiết bị khối:

Tổ chức theo từng khối riêng biệt và truy xuất ngẫu nhiên.

Thiết bị tuần tựGởi nhận theo chuỗi bít và phải truy xuất tuần tự.

Page 37: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

5

Phân loại các thiết bị nhập xuất (tt)HĐH phải gom nhóm các thiết bị khác nhau thành nhữngnhóm cơ bản để dễ dàng quản lý:

StorageHard drives, Tapes, CDROM

NetworkingEthernet, radio, serial line

MultimediaDVD, Camera, microphones

HĐH phải cung cấp các phương thức nhất quán để truycập các nhóm đối tượng trên. Nếu không, lập trình sẽ rấtkhó khăn

Page 38: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

6

Các phương thức truy cập IOSử dụng chung thư viện giao tiếp cho nhiều thiết bị khácnhauVí dụ , với HĐH Unix, sử dụng 4 phương thức chính:

open()close()read()write()

Các phương thức này là các system calls được cung cấpbởi HĐH để cho phép các ứng dụng chúng tương tác vớicác thiết bị xuất nhập.

Page 39: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

7

Các phương thức IO của UnixfileHandle = open(pathName, flags, mode)

filehandle: là một số nguyên, dùng để thao tác với tập tin hay thiết bịpathname: tên trong hệ thống file. Trong Unix, các thiết bị đặtdưới thư mục /dev.

E.g. /dev/ttya là serial port đầu tiên, /dev/sda: là SCSI drive đầu tiên

flags: blocking hoặc là non-blocking …mode: read only, read/write, append …

errorCode = close(fileHandle)Kernel sẽ giải phóng các biến lưu trữ cho thiết bị

Page 40: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

8

Các phương thức IO của Unix (tt)byteCount = read(fileHandle, byte [] buf, count)

Đọc count bytes từ thiết bị và lưu trong buffer buf.Chương trình người dùng phải kiểm tra byteCount để biết sốbyte thật sự đọc được.byteCount < 0 thì là báo lỗi (xem mã lỗi)

byteCount = write(fileHandle, byte [] buf, count)Ghi count byte từ buf vào thiết bịSố byte thật sự ghi được lưu trong byteCountbyteCount âm là bị lỗi

Page 41: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

9

Các đặc tính xuất nhậpBa đặc tính khác nhau cần xem xét khi xử lý 1 thao tácnhập xuất:

blocking vs. non-blockingbuffered vs. unbufferedsynchronous vs. asynchronous

Page 42: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10

Blocking vs. Non-Blocking I/OBlocking – ứng dụng dừng lại cho đến khi số count bytes được đọc hoặc ghi

Ví dụ: Trong thiết bị mạng, nếu muốn ghi 1000 bytes, thì HĐH ghi tất cả các byte cho đến khi ghi hoàn tất.Nếu thiết bị không thể thực hiện lệnh ghi được (ví dụ hỏng dâynối), làm sao? Thì sẽ kết thúc và trả về số bytes đã ghi được.

Nonblocking – HĐH đọc và ghi các bytes khi có thể, không cần ứng dụng phải dừng lại.

Page 43: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11

Buffered vs. Unbuffered I/OTrong trường hợp buffer dữ liệu của thiết bị quá nhỏ, đểkhông phải chờ quá lâu khi thực hiện IO

buffered I/O cho phép kernel copy lại dữ liệu

Bên write(): cho phép ứng dụng tiếp tục ghi dữ liệuBên read(): khi thiết bị báo có dự liệu đến, kernel chép dữ liệuvào buffer. Khi tiến trình gọi read(), kernel chỉ việc copy từbuffer.

Khuyết điểm buffered I/O?Thêm chi phí để thực hiện copyChậm trễ việc gửi dữ liệu

Page 44: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12

Synchronous vs. Asynchronous I/OSynchronous I/O: các xử lý khác của ứng dụng của ngườidùng cuối sẽ dừng lại để chờ các thao tác xuất nhập củanó hoàn tất.Asynchronous I/O: các xử lý khác của ứng dụng có thểthực thi song song với các thao tác xuất nhập

Page 45: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

13

Các loại thiết bị xuất nhậpHầu hết HĐH chia thành 3 nhóm thiết bị:

Thiết bị đọc theo kí tự (character device)Dùng cho các thiết bị tuần tự (v.d. USB port, bàn phím, modem)

Thiết bị mạngDùng cho các card mạng (v.d. Ethernet card)

Thiết bị theo block:Dùng cho các bộ lưu trữ lớn (v.d.ổ đĩa và CDROM)Phương thức read/write sẽ khác nhau với từng loại

Page 46: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

14

Thiết bị xuất nhập theo kí tựHĐH đọc và ghi theo chuỗi các byte

System call write() sẽ ghi từng byte ra thiết bịSystem call read() sẽ đọc từng byte ra thiết bị

Không có điều khiển tỉ lệ read/write, bên gửi có thể gọisystem

call write() 1 lần 1000 bytes, bên nhận có thể gọi read 1000 lần,mỗi lần đọc 1 byte.

Page 47: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

15

Thiết bị mạngUnix và Windows đều dùng khái niệm socket để cho việctruyền, nhận dữ liệu trên mạng

Mỗi write() hoặc là gửi cả block, kích thước của block có giớihạn tùy hệ thống.Bên nhận, read() trả về tất cả các byte trong block.

Page 48: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

16

Thiết bị đọc theo blockHĐH đọc và ghi thiết bị theo các blockMỗi block kích thước xác định (thông thường 1KB - 8KB)Người dùng chỉ có thể read/write các block cùng kích thướcKhông giống thiết bị khác, thiết bị đọc ghi theo block hỗ trợrandom accessChúng ta có thể đọc/ghi bất cứ block nào trên thiết bị, không cầnphải ‘đọc tất cả các bytes’ trướcLàm sao xác định vị trí của block thứ n?

Page 49: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

17

Con trỏ fileMột con trỏ file được gán vào một file đang mở, nếu như thiết bịđang mở thuộc loại đọc theo blockCon trỏ file sẽ trỏ tới vị trí hiện hành trên file cho lệnh đọc/ghi kếtiếpĐơn vị của con trỏ file là byte, chứ không phải blockDi chuyển con trỏ file:

absoluteOffset = lseek(fileHandle, offset, whence);whence xác định vị trí cột mốc, đầu file, cuối file…Vị trí hiện hành được trả về, <0 là lỗiVị trí hiện hành là 1 số nguyên tính theo byte, có thể là bội sốcủa block.

Page 50: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

18

Thiết bị xuất nhậpMàn hình: Thiết bị xuấtchuẩn:

Ký tự hay đồ hoạKhả năng hiển thị:

Độ phân giải: Ví dụ : 25 x 80 ký tựhay 800 x 600 x 256 màu.

Độ làm tươi:30-60 lần/giây.

Page 51: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

19

Thiết bị xuất nhậpBàn phím: Thiết bị nhập chuẩn

Bố trí theo cấu trúc “QWERTY”

Tốc độ nhập dữ liệu chậm (<10 ký tự/giây)

Thiết bị trỏ/định vị: Thiết bị nhập chuẩnChuột (quang, cơ)TrackballJoystick

Tốc độ nhập dữ liệu chậm (vài trăm bytes/giây)

Page 52: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

20

Thiết bị xuất nhậpMáy in

Máy in dòng, máy in điểm, máy in phun, in laser.Tốc độ đẩy dữ liệu chậmHướng ký tự

Máy quétSố hoá các tài liệu in thành các dữ liệu số dướidạng ảnh bitmap.Tốc độ quét chậm

Page 53: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

21

Thiết bị xuất nhậpĐĩa từ : Đĩa mềm (floppy disk), đĩa cứng (hard disk):

Thiết bị xuất nhập theo khối (sector).Dung lượng tuỳ thuộc vào số head,track,sector.Tốc độ truy cập phụ thuộc vào tốc độ quay và mật độ dữ liệutrên đĩa.

Băng từ:Thiết bị truy cập tuần tự dung lượng lớn.Tốc độ truy cập ~2Mb/s

CDROM/DVD:Tốc độ truy cập nhanh.Dung lượng ngày càng lớn và giá thành ngày càng rẻ.

Page 54: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

22

Thiết bị xuất nhậpThiết bị giao tiếp mạng

Card mạngCài đặt các giao thức mạng khác nhau để hỗ trợ cho quátrình truyền nhận các luồng/gói dữ liệu.

ModemChuyển đổi giữa tín hiệu tuần tự và tín hiệu số trên đườngtruyền thoại.Luồng dữ liệu truyền là các dãy bít được gom nhóm thànhcác ký tự.

Đồng hồ hệ thống (clock) và bộ định giờ (timer)Cung cấp thời gian hệ thống để giúp đồng bộ hoá cáchoạt động trên máy tính.

Page 55: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

23

Bộ điều khiển thiết bịMỗi đơn vị nhập xuất thường gồm 2 thành phần:

Thành phần cơ: Bản thân thiết bịThành phần điện: bộ điều khiển (controller)

Bộ điều khiển:Chức năng: Trung gian giao tiếp giữa thiết bị và HĐH.Phương tiện giao tiếp: Thông qua bus - hệ thống mạch truyềndẫn.Công việc:

Nhận lệnh từ HĐH để thực hiện và báo hiệu cho HĐH khi tácvụ hoàn tất.Chuyển đổi dãy bit thành các byte và đặt chúng vào trong bộđệm (buffer) của bộ điều khiển.

Page 56: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

24

Các thiết bị xuất nhập và bus hệ thống

Page 57: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

25

Địa chỉ giao tiếp thiết bịHĐH giao tiếp với thiết bị thông qua địa chỉ xuất nhậpcủa bộ điều khiển:

Page 58: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

26

Mô hình phân lớp trong quản lý xuất nhậpHệ thống xuất nhập được tổ chức theo từng lớp, mỗi lớp có 1 chứcnăng nhất định và có sự hỗ trợ liên hoàn lẫn nhau:

Page 59: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

27

Phần mềm độc lập thiết bịChức năng:

Tạo ra giao tiếp chung cho tất cả các thiết bị.Bảo vệ thiết bịCung cấp khối dữ liệu độc lập thiết bịCung cấp bộ đệm (buffer) để hỗ trợ cho quá trìnhđồng bộ hoá hoạt động của hệ thống.Định vị trí lưu trữ trên các khối thiết bị.Cấp phát và giải phóng thiết bị.Thông báo lỗi cho người dùng (nếu có).

Page 60: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

28

Trình điều khiển thiết bịChức năng:

Nhận yêu cầu từ phía lớp phần mềm độc lập thiết bị.Chuyển đổi yêu cầu trừu tượng này thành cụ thể.Điều phối yêu cầu này cho bộ điều khiển thiết bị (device controller).Giám sát thực hiện yêu cầu.

Ví dụ:HĐH muốn đọc tập tin io.sys trên đĩa ở thư mục C:\.Trình điều khiển đĩa phải hiểu là cần đọc khối nào.Trình điều khiển đĩa chuyển yêu cầu này cho bộ điều khiển đĩa.Bộ điều khiển đĩa phải kiểm tra hoạt động của motor đĩa, xácđịnh đầu đọc đã đúng vị trí chưa.

Page 61: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

29

Trình điều khiển thiết bị

Page 62: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

30

Bộ kiểm soát ngắt (interrupt handler)Tương tác giữa HĐH và các thiết bị phần cứng đều được thực hiệnthông qua cơ chế ngắt (interrupt).Bộ kiểm soát ngắt sẽ tiếp nhận các ngắt từ HĐH và ứng dụng củangười dùng cuối.Dựa trên bảng “Interrupt vector” để phân phối các ngắt đến các bộđiều khiển thiết bị tương ứng.Quản lý và giám sát quá trình thực hiện ngắt.Nhận ngắt thông báo quá trình xuất nhập hoàn tất hoặc có lỗi xảyra trong quá trình xuất nhập từ bộ điều khiển thiết bị để chuyển lêncho HĐH.

Page 63: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

31

Bộ kiểm soát ngắt (interrupt handler)

Page 64: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

32

Cơ chế truy cập bộ nhớ trực tiếpDMA (Direct Memory Access)

Xét quá trình đọc đĩa không có DMA:HĐH chuyển yêu cầu đọc đĩa cho bộ điều khiển đĩa.Bộ điều khiển đọc tuần tự các khối trên đĩa.Đọc từng bit cho đến khi các khối được đưa vào bộ đệm củabộ điều khiển đĩa.Bộ điều khiển đĩa tạo ngắt để báo qua CPU biết quá trình đọcđĩa hoàn tất.CPU lần lượt lấy từng byte dữ liệu từ bộ đệm của bộ điềukhiển đĩa để chuyển về bộ nhớ chính để thao tác.

Nhận xét:Lãng phí thời gian xử lý của CPU để chuyển dữ liệu từ bộ đệmcủa bộ điều khiển đĩa về bộ nhớ chính

Page 65: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

33

Cơ chế DMACơ chế DMA giúp CPU không bị lãng phí bằng cách:

HĐH gởi cho bộ điều khiển đĩa các thông số gồm: các khối cầnđọc + vị trí lưu trữ các khối này bên trong bộ nhớ chính (địa chỉDMA) + số byte cần đọc.Bộ điều khiển đĩa đọc các khối cần thiết lưu vào trong bộ đệmcủa nó.Sau khi đọc xong, bộ điều khiển chuyển lần lượt từng byte từbộ đệm của nó về địa chỉ DMA – nơi cần lưu trữ dữ liệu cầnthiết bên trong bộ nhớ chính.Bộ điều khiển đĩa tạo 1 ngắt để thông báo cho CPU biết quátrình chuyển dữ liệu đã hoàn tất.

Page 66: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

34

Cơ chế DMA

Page 67: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

35

Quản lý lỗi & bảo vệ xuất nhập thiết bịQuá trình xử lý của người dùng cuối hay HĐH có thể vôtình hay cố ý thực hiện các lệnh/thao tác xuất nhập bấthợp pháp gây hại cho hệ thống và thiết bị.Cần định nghĩa trước và gán đặc quyền cho các lệnh xuấtnhập của hệ thống dưới dạng các lời gọi hệ thống(system call).Giám sát quá trình xuất nhập của người dùng cuối.Tất cả quá trình xuất nhập của ƯD phải được thực hiệnthông qua các lời gọi hệ thống.

Page 68: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

36

Quản lý lỗi & bảo vệ xuất nhập thiết bịKhi gặp lỗi trong quá trình xuất nhập, các bộ điều khiểnthiết bị sẽ trả về cho HĐH mã lỗi tương ứngHĐH diễn dịch mã lỗi trả về để có phương án giải quyếtthích hợp.HĐH cũng diễn dịch và lưu vào nhật ký hệ thống (system log) các lỗi tương ứng để giúp người quản trị hệ thốnggiám sát lỗi và phục hồi.

Page 69: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

1

Chương 3: Hệ thống quản lý tập tinNội dung chương:

Các khái niệm cơ bản về hệ thống tập tinCài đặt hệ thống quản lý tập tinMô hình tổ chức và quản lý tập tin của các HĐH thông dụng.Truy xuất hệ thống quản lý tập tin.

Page 70: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

2

Hệ thống lưu trữ trong máy tínhBộ nhớ trong

RAM, ROM, Register, CacheBộ nhớ ngoài

HD (Hard Disk)FD (Floppy Disk)CD (Compact Disk)DVD (Digital Video Disk)USB disk…

cache

Bộ nhớ chính

Bộ nhớ phụ(đĩa)

Bộ nhớ thứ cấp(băng từ) Tố

cđộ

Dun

g lượn

g

Giá

thàn

h

Page 71: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

3

Các khái niệm cơ bảnRAM không có khả năng lưu trữ dữ liệu lâu dài.Máy tính phải sử dụng các thiết bị có khả nănglưu trữ lâu dài vì:

Chứa lượng thông tin lớn.Thông tin được lưu trữ trước khi xử lý.Nhiều ứng dụng muốn truy cập cùng lúc.

Phải sử dụng các thiết bị lưu trữ ngoài gọi là bộnhớ ngoài với các đơn vị lưu trữ được tổ chứcthành:

Tập tinThư mục

Page 72: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4

Tổ chức dữ liệu trên đĩa từCấu trúc vật lý của đĩa từ:

Hình tròn, gồm nhiều mặt gọi là head.Mỗi mặt có nhiều đường tròn đồng tâm gọilà track hay cylinder.Trên các đường tròn (track) được chiathành các cung tròn gọi là sector.Mỗi cung tròn chứa 4096 điểm từ (~ 4096 bit = 512 bytes).Mỗi mặt có 1 đầu đọc để đọc ghi dữ liệuMỗi lần đọc/ghi ít nhất 1 cung tròn (512B).

Page 73: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

5

Cấu trúc đĩa từ

Head 0 Head 2

Page 74: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

6

Cấu trúc đĩa từ

read-write head

track

sectors

cylinder

Page 75: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

7

Cấu trúc đĩa từ

Page 76: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

8

Tổ chức dữ liệu trên đĩa từ (tt)Mỗi lần đọc hay ghi đĩa có thể thực hiện N sector liên tiếp (N>=1).Vị trí của mỗi sector trong đĩa được thể hiện bằng3 tham số : {sector, track, head}.Head được đánh số từ trên xuống bắt đầu từ 0.Track được đánh số từ ngoài vào bắt đầu từ 0.Sector được đánh số bắt đầu từ 1 theo chiềungược với chiều quay của đĩa.

Page 77: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

9

Tổ chức đĩa logic

Thay vì phải dùng đến 3 tham số dựa trên cấu trúc đĩavật lý nên khái niệm đĩa logic được đưa ra để dễ thao tácvà tính toán hơn.Đĩa logic là một dãy sector được đánh số bắt đầu từ 0.Mỗi sector trên đĩa logic tương ứng với 1 sector duy nhấttrên đĩa vật lý sao cho khi truy xuất sector K thì khi truyxuất tiếp sang sector K+1 là nhanh nhất.

N-143210

……

Page 78: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10

Dung lượng đĩaKích thước đĩa phụ thuộc vào các yếu tố sau:

Số mặt từ (platter)Số track trên mỗi mặt từSố sector trên mỗi trackKích thước (byte) trên mỗi track.

Page 79: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11

Ví dụ cách tổ chức đĩa mềmCác thông số trên đĩa mềm 1.44MB:Đĩa có 2 head, 80 track/head, 18 sector/track.Dung lượng đĩa = 2 head/disk *80 track/head *18 sector/track = 2880 sector/disk = 0.5 KB/sector * 2880 sector/disk = 1440 KB/disk (~ 1.4MB)Các sector logic có chỉ số từ 0 đến 2879 và tương ứngvới các sector vật lý như sau:

Sector 0..17 tương ứng với sector vật lý (1,0,0)..(18,0,0)Sector 18..35 tương ứng với sector vật lý (1,0,1)..(18,0,1)…Sector 2879 tương ứng với sector vật lý (18,79,1).

Page 80: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12

Mặt đĩa

Tay quay

Đầu đọc

Thời gian truy cập đĩa

Disk access time =Seek Time+ Latency Time+ Transfer Time

Page 81: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

13

Các thuật toán đọc đĩaFirst-Come-First-Serve (FCFS)SCAN, C-SCANShortest Seek Time First (SSTF)Look

Page 82: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

14

First Come First Serve (FCFS)Phục vụ theo thứ tự yêu cầuĐơn giản nhưng không đáp ứng tốt dịch vụ

time

cylinder number1 5 10 15 20 25

12

Các khối cần đọc (đầu đọc hiện tại tại vị trí 11):14 2 7 21 8 24

schedulingqueue

248

217

2

14

12

Page 83: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

15

SCANDi chuyển đầu đọc về 1 phía của đĩa đến block xa nhất sauđó di chuyển về phía kia.Còn gọi là thuật toán thang máy.tim

e

cylinder number1 5 10 15 20 25

12 14 2 7 21 8 24

schedulingqueue

24821721412Các khối cần đọc (đầu đọc hiện tại tại vị trí 11):

Page 84: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

16

SCAN vs. FCFSTrongtrường hợpnày, SCAN tốt hơnFCFS vìhạn chế sựdi chuyểncủa đầu đọcđĩa

cylinder number1 5 10 15 20 25

time

time

Page 85: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

17

C-SCANNguyên tắc:

Tương tự thuật toán SCAN.Chỉ khác khi di chuyển đến 1 đầu của đĩa thì trở về vịtrí bắt đầu của đĩa.

Page 86: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

18

C-SCAN

Page 87: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

19

LOOKNhận xét:

Hai thuật toán lập lịch SCAN và C-SCAN luôn luôndi chuyển đầu đọc của đĩa từ đầu này sang đầu kianhưng thông thường thì đầu đọc chỉ di chuyển đếnkhối xa nhất ở mỗi hướng chứ không đến cuối.

Nguyên tắc:Giống SCAN và C-SCAN nhưng chỉ di chuyển đầuđọc đến khống xa nhất chứ không đến cuối.

Page 88: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

20

LOOK

Page 89: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

21

SSTFSSTF = Shortest Seek Time FirstNguyên tắc:

Di chuyển đầu đọc đến các khối cần thiết theo vị trílần lượt gần với vị trí hiện hành của đầu đọc nhất

Page 90: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

22

SSTF

Page 91: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

23

Lập trình tương tác với đĩaCác truy xuất đĩa trực tiếp trong C:Đọc nội dung sector trên đĩa logic: hàm absread.Ghi nội dung vào sector logic: abswrite.Thực hiện thao tác trên đĩa vật lý: biosdisk.

Cú pháp:int absread(int drive, int nsects, long lsect, void *buffer).int abswrite (int drive, int nsects, long lsect, void *buffer);int biosdisk (int cmd, int drive, int head, int track, intsector, int nsects, void *buffer);

Page 92: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

24

Tập tin (1/4)Tập tin (file) là đơn vị lưu trữ thông tin trên bộnhớ ngoài.Thông tin chứa trong tập tin là bền vững (khôngbị mất đi khi bị mất điện).Tên tập tin:

Là cơ chế trừu tượng để quản lý tập tin.Có thể phân biệt chữ hoa và thường (tuỳ HĐH cụ thể)Hỗ trợ tên tập tin theo định dạng 8.3 (gồm tên và phầnmở rộng) hay tên dài (Long File Name). Ví dụ: baitap.cpp hay “bai tap lap trinh.cpp”

Page 93: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

25

Tập tin (2/4)Các thuộc tính của tập tin:

Người sở hữu/nhóm sở hữuChỉ đọc (Read-only)Ẩn (Hidden)Hệ thống (System)Lưu trữ (Archive)Ngày giờ tạo.Ngày giờ truy cập cuối cùngNgày giờ thay đổi cuối cùngKích thước

Page 94: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

26

Tập tin (3/4)

TạoXoáMởĐóngĐọcGhi

Các thao tác trên tập tin:ThêmTìmLấy thuộc tínhThiết lập thuộc tínhĐổi tên

Page 95: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

27

Tập tin (4/4)Các loại tập tin:

Tập tin văn bản (text file): chứa các dòng văn bản, cuối dùng có ký hiệu kết thúc dòng (end line)Tập tin nhị phân (binary file): là tập tin có cấu trúc.

Các truy xuất trên tập tin:Tuần tự: Phải đọc từ đầu tập tin đến vị trí mong muốn.Ngẫu nhiên: Có thể di chuyển nhanh (SEEK) đếnđúng vị trí cần đọc.

Page 96: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

28

Khối điều khiển tập tin

Page 97: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

29

Thư mụcGiúp cho việc quản lý các tập tin dễ dàng hơn. Giúp định vị các tập tin 1 cách nhanh chóng.Gom nhóm các tập tin vào trong các thư mục theoý nghĩa và mục đích sử dụng của người dùng.

root

bob sue

www fun3013

Page 98: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

30

Thư mục

Ví dụ 1 cấu trúc cây thư mục phân cấp

Page 99: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

31

Thư mục - Đường dẫn (Path)Dùng để xác định vị trí lưu tập tin khi hệ thốngđược tổ chức thành cây thư mục:Đường dẫn tuyệt đối:

Ví dụ: “C:\Downloads\software\baigiang.doc”

Đường dẫn tương đối:Ví dụ: “software\baigiang.doc” nếu thư mục hiện hành là“C:\Downloads\”

Các thư mục đặc biệt:Thư mục hiện hành (.)Thư mục cha (..)

Page 100: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

32

Thư mụcCác thao tác trên thư mục:

Tạo <> Xoá <> Đổi tênMở <> ĐóngTìm kiếm <> Liệt kêLiên kết: Cho phép 1 tập tin có thể xuất hiện trongnhiều thư mục khác nhau.Bỏ liên kết: Nếu tập tin chỉ có 1 liên kết với 1 thưmục, nó sẽ bị loại bỏ hoàn toàn, ngược lại nó sẽ bịgiảm chỉ số liên kết

Page 101: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

33

Cấp phát vùng nhớ chứa tập tinCác khối (block) đĩa sẽ được cấp phát để lưu trữnội dung tập tin theo các cơ chế cấp phát:

Cấp phát liên tụcCấp phát bằng danh sách liên kếtCấp phát bằng danh sách liên kết sử dụng chỉ mục(index).Cấp phát bằng I-node

Page 102: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

34

Cấp phát liên tụcCấp phát 1 số block liên tục trên đĩa để lưu trữ nộidung tập tinNhận xét:Đơn giản: chỉ cần quản lý số hiệu khối bắt đầu và tổngsố block chiếm bởi tập tin.Truy cập nội dung tập tin nhanh chóng vì các block nằm kề nhau.Gây lãng phí bộ nhớ.Khó khăn khi tập tin mở rộng kích thước.

Page 103: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

35

Cấp phát liên tục (tt)

Page 104: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

36

Cấp phát bằng danh sách liên kếtNội dung tập tin được lưu trữ ở những block không cần liên tục. Các block này được xâu chuỗitạo thành 1 danh sách liên kết để quản lý.Nhận xét:Đơn giản: Chỉ cần quản lý block bắt đầu.Tận dụng hiệu quả không gian đĩa.Truy cập tập tin lâu hơn vì đầu đọc phải di chuyểnnhiều giữa các khối không liên tiếp.Khối dữ liệu bị thu hẹp lại vì mỗi khối phải dùng 1 phần để lưu phần liên kết đến khối kế tiếp.

Page 105: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

37

Cấp phát bằng danh sách liên kết (tt)

Page 106: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

38

Cấp phát bằng danh sách liên kết sửdụng chỉ mục (index)

Tương tự như phương pháp cấp phát bằng danhsách liên kết nhưng thay vì sử dụng 1 phần nhỏcủa mỗi block để lưu chuỗi liên kết thì sử dụng 1 block riêng để lưu toàn bộ chuỗi liên kết.

Các block chỉ chứa dữ liệu.

Page 107: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

39

Cấp phát bằng danh sách liên kết sử dụng chỉmục (index) (tt)

Page 108: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

40

Cấp phát bằng I-nodeMỗi I-node gồm 2 phần:

Các thuộc tính của tập tinĐịa chỉ của các khối dữ liệu: gồm 13 phần tử

10 phần tử đầu tiên: Địa chỉ của các khối dữ liệu trực tiếp.Phần tử thứ 11: Địa chỉ của các khối dữ liệu gián tiếp đơn(single indirect): gồm 1 khối trỏ đến 210 phần tử chứa địachỉ của các khối dữ liệu.Phần tử thứ 12: Địa chỉ của các khối dữ liệu gián tiếp đôi(double indirect): chứa địa chỉ của các khối single indirect.Phần tử thứ 13: Địa chỉ của các khối dữ liệu gián tiếp ba(triple indirect)

Page 109: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

41

Cấp phát bằng I-node (tt)

Page 110: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

42

Cài đặt hệ thống tập tin của các HĐH cụ thể

MS-DOSWindowsUnix

Page 111: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

43

Tổ chức quản lý hệ thống tập tin trên đĩa từ

0 1 2 3 …..

Đĩa từ bao gồm danh sách các sector có kích thước 512Bytes

Kích thước đĩa (bytes) = (tổng số sector) x (512 bytes/sector)

Page 112: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

44

Phân vùng đĩa (Disk Partition)Toàn bộ vùng lưu trữ của đĩa được phân thành cácvùng logic không chồng lên nhau gọi là phânvùng đĩa.

Partition #1 Partition #2 Partition #3unused

Page 113: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

45

Master Boot RecordMột phần nhỏ đầu tiên của đĩa được dành riêng cho cácthông tin quản lý đĩa.

Sector logic thứ 0 của đĩa (CHS = 001) là Master Boot Record chứa thông tin mô tả cấu trúc vật lý của đĩa vàthông tin về các phân vùng logic của đĩa.

MBR

0 1 2 …

partition #1

Page 114: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

46

MBRThông tin chứa trong MBR bao gồm:Đoạn chương trình để giúp khởi động hệ thốngBảng mô tả thông tin các phân vùng logicThông tin nhận diện MBR

signature (2 bytes)

Partition Table (64 bytes)

Bootstrap Loader(446 bytes)512

bytes

Page 115: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

47

Bảng mô tả các phân vùngMBR có thể mô tả cho tối đa 4 phân vùng logic được chia trên đĩa trong đó thường có 1 phânvùng ở trạng thái “Active”

Starting sectorID-number

Partition length(in sectors)

STATUS

TYPE16

bytes

Some fields contain ‘obsolete’ information

Page 116: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

48

Primary Partition vs Extended Partition

Reserved

Reserved

Reserved

Reserved

Reserved

Reserved

Reserved

MBRReserved

Reserved

Reserved

Reserved

Reserved

Reserved

Reserved

Partition Table

Primary Partition Extended Partition

Page 117: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

49

Phân vùng “active” là phân vùng chứa HĐH sẽđược nạp mặc định khi máy tính khởi động.

Bảng mô tả các phân vùng (tt)

Page 118: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

50

Trường TYPE-ID trong bảng mô tả phân vùng

Ý nghĩa của trường Type-ID trong mỗi phân vùngTYPE-ID = 0x07 : Phân vùng chứa “Windows”TYPE-ID = 0x83 : Phân vùng chứa “Linux”TYPE-ID = 0x00 : Phân vùng không sử dụng.

Page 119: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

51

Quá trình khởi động hệ thống và nạp HĐH dựa trên thông tin các phân vùng

B1: POST (Power-On Self-Test)B2: Tải MBR để đọc thông tin bảng phân vùng.B3: Tìm phân vùng “active”.B4: Chuyển quyền điều khiển về cho đoạn mãchương trình nằm trong Boot Record của phânvùng “active”B5: Tải HĐH tại phân vùng “active”.

Page 120: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

52

Tổ chức tập tin trên Windows: FAT (12,16,32)

Page 121: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

53

Tổ chức tập tin trên Windows: FAT (12,16,32) (tt)

FAT: File Allocation Table

Các phiên bản của FAT: FAT12, FAT16, FAT3212,16,32: Số bít dùng để đánh STT các khối (212,216,232)

FAT12: 212 (khối) x 512 bytes/khối = 2MB

FAT16: 216 (khối) x 512 bytes/khối = 32MB

FAT32: 232 (khối) x 512 bytes/khối = 4GBBoot

sector FAT1 FAT2(backup)

Rootdirectory Other directories and files

…000000030004FFFF00060008FFFFFFFF0000

empty File1 File1empty File2File1

File3File2 emptyFile2 empty empty

emptyempty empty empty empty empty

0000

0001

0002

0003

0004

0005

0006

0007

0008

0009

0000 0001 0002 0003 0004 0005

0006 0007 0008 0009 0010 0011

0012 0013 0014 0015 0016 0017

Page 122: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

54

Tổ chức tập tin trên Windows: NTFSNhóm các sector liên tiếp nhau lại để tạo thànhcác Cluster.

Page 123: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

55

Tổ chức tập tin trên Windows: NTFSNTFS không sử dụng khái niệm FAT và Root Dir để quản lý các tập tin lưu trên đĩa mà sử dụngkhái nhiệm MFT (Master File Table).MFT là 1 Metadata file bao gồm 1 danh sách cáctrường chứa thông tin về mỗi tập tin lưu trữ trênđĩa.Thông tin trong MFT có thể giúp thiết lập cácthuộc tính bảo vệ, phục hồi, tìm kiếm, thiết lậpquota… cho từng tập tin, thư mục trên đĩa.

Page 124: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

56

Tổ chức tập tin trên Unix/Linux: I-node

modeowner

…Direct block 0Direct block 1

…Direct block 10Direct block 11Single indirectDouble indirectTriple indirect

Data blockData block

Data blockData block

index

Data blockData block

Data blockData block

index

index

indexindex

indexindex

Data blockData block

Data blockData block

index

index Data block

I-node

Data block

Page 125: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 1

Chöông 4: Quaûn lyù tieán trình

Moâ hình Tieán trìnhTraïng thaùi tieán trìnhThoâng tin quaûn lyù tieán trìnhQuaù trình ñieàu phoái tieán trìnhCaùc thuaät toaùn ñieàu phoái

Page 126: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 2

Khaùi nieäm : Ña nhieäm vaø ña chöông ???

Vì sao muoán xöû lyù ñoàng thôøi nhieàu coâng vieäc treân maùy tính ?

IO CPU IOCPUJob 1

CPU

Job 1

CPU

IO

IO

CPU

IO

CPUJob 2

CPU

CPU

Xöû lyù ñoàng thôøi ñeå taêng hieäu suaát söû duïng CPU

Page 127: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 3

Vì sao muoán xöû lyù ñoàng thôøi nhieàu coâng vieäc treân maùy tính ?

Xöû lyù ñoàng thôøi ñeå taêng toác ñoä xöû lyù

Khaùi nieäm : Ña nhieäm vaø ña chöông ???

Job : kq = a*b + c*d;

CPU #1 CPU #1 CPU #2x = a * b y = c * d

kq = x+y

x = a * b 1

y = c *d 2

kq = x+y 3

Xöù lyù tuaàn töï Xöûù lyù ñoàng haønh

Page 128: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 4

Ña nhieäm vaø ña chöông

Multitasking (ña nhieäm) : cho pheùp nhieàu taùc vuï/ coâng vieäcñöôïc xöû lyù ñoàng thôøi

Ngöôøi duøng luoân mong muoán 1 HÑH ña nhieämNhöng: Maùy tính thöôøng chæ coù 1 CPU?

Multiprogramming (ña chöông) : kyõ thuaät cho pheùp nhieàuchöông trình ñöôïc thöïc hieän ñoàng thôøi (treân 1 CPU)

Giaû laäp nhieàu CPU aûo töø 1 CPU thaät ñeå cho pheùp thi haønh nhieàuchöông trình ñoàng thôøi. AÛo hoaù baèng caùch naøo ? Xaây döïng caùc thuaät toaùn ñeå luaân chuyeånCPU giöõa caùc chöông trình öùng duïng.

Page 129: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 5

Xöû lyù ñoàng haønh, nhöõng khoù khaên ?

HÑH : “ Giaûi quyeát nhieàu coâng vieäc ñoàng thôøi,ñaâu coù deã ! “

- Taøi nguyeân giôùihaïn, öùng duïng“voâ haïn”

- Nhieàu hoaït ñoängñan xen

??? Phaân chia taøinguyeân ?

??? Chia seû taøinguyeân ?

??? Baûo veä?

ExcelVisual C++

CDplayerWinword

Page 130: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 6

Giaûi phaùp

HÑH : “ Ai cuõng coù phaàn khi ñeán löôït maø ! ”

-“Chia ñeå trò”, coâlaäp caùc hoaïtñoäng.

- Moãi thôøi ñieåmchæ giaûi quyeát 1 yeâu caàu.

- Aûo hoaù taøinguyeân : bieán ítthaønh nhieàu

Winword

CDPlayer

Visual C ++

Excel

Page 131: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 7

Giaûi phaùp

CPU

Page 132: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 8

Khaùi nieäm tieán trình (Process)

Tieán trình laø moät chöông trình ñang trong quaù trình thöïc hieänMoãi tieán trình sôû höõu

Moät CPU (aûo) rieângMoät khoâng gian nhôù rieângChieám giöõ 1 soá taøi nguyeân cuûa heä thoáng

Vd: Moät chöông trình Word coù theå ñöôïc chaïy 2 laàn seõ taïo ra2 tieán trình khaùc nhau:

Microsoft Word – [Bai tap1.doc]Microsoft Word – [Bai tap2.doc]

Page 133: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 9

Hai phaàn cuûa tieán trình

int a;

int a;

P1

P2

Doøng xöû lyù

Khoâng gian ñòa chæ

Page 134: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 10

Traïng thaùi tieán trình ?

Taïi 1 thôøi ñieåm, tieán trình ôû moät trong caùc traïng thaùi sau:

ready☺ Rs

CPU

running☺ Rs☺ CPU

blockedRsCPU

Nhaän CPU

Traû CPU

Chôø RNhaän R

Page 135: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 11

Khoái quaûn lyù tieán trình - PCB (Process Control Block)

Định danh (Process ID)Trạng thaùi tiến trìnhNgữ cảnh tiến trình

Trạng thaùi CPUBộ xử lyù (cho maùy nhiều CPU)Bộ nhớ chínhTaøi nguyeân sử dụng/tạo lập

Thoâng tin giao tiếpTiến trình cha, tiến trình conĐộ ưu tieâên

Thoâng tin thống keâ

pidState

(State, details)Context

(IP, Mem, Files…)

Scheduling statistic

Relatives

( Dad, children)

Process control BlockPCB

Page 136: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 12

Ví duï: Khoái quaûn lyù tieán trình cuûa HÑH MachOS

typedef struct machpcb { char mpcb_frame[REGOFF]; struct regs mpcb_regs; // user's saved registers struct rwindow mpcb_wbuf[MAXWIN]; //user window save bufferchar *mpcb_spbuf[MAXWIN]; //sp's for each wbufint mpcb_wbcnt; //number of saved windows in pcb_wbufstruct v9_fpu *mpcb_fpu; // fpu state struct fq mpcb_fpu_q[MAXFPQ]; // fpu exception queue int mpcb_flags; // various state flags int mpcb_wocnt; // window overflow count int mpcb_wucnt; // window underflow countkthread_t *mpcb_thread; // associated thread } machpcb_t;

Page 137: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 13

Caùc thao taùc treân tieán trình

Taïo laäp tieán trìnhKeát thuùc tieán trìnhThay ñoåi traïng thaùi tieán trình :

Assign()Block() Awake()Suspend()Resume()

Page 138: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 14

Taïo laäp tieán trình

Caùc tình huoáng :Khôûi ñoäng batch jobUser logs onKích hoaït 1 service (print...)Process goïi haøm taïo moät tieán trình khaùc

Caùc tieán trình coù theå taïo tieán trình con, hình thaønh caây tieántrình trong heä thoángCaùc tieán trình môùi ñöôïc taïo coù theå thöøa höôûng taøi nguyeân töøcha, hay ñöôïc caáp taøi nguyeân môùi

Page 139: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 15

Keát thuùc tieán trình

Tình huoáng :Tieán trình xöû lyù xong leänh cuoái cuøng hay goïi exit ()Keát thuùc Batch job , Halt instructionUser logs offDo loãi chöông trình

Moät tieán trình coù theå keát thuùc 1 tieán trình khaùc neáu coù ID (ñònh danh) cuûa tieán trình kia.

Ví duï: kill –-s SIGKILL 1234: huyû tieán trình coù ID laø 1234

Page 140: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 16

Moâ hình ña tieán trình (MultiProcesses)

Heä thoáng laø moät taäp caùc tieán trình hoaït ñoäng ñoàng thôøiCaùc tieán trình ñoäc laäp vôùi nhau => khoâng coù söï trao ñoåithoâng tin hieån nhieân..

winwordVisual C CDplayer

Excel

OS

Page 141: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 17

Ví duï moâ hình ña tieán trình

Giôø thi lyù thuyeát moân Heä Ñieàu haønhMoãi sinh vieân laø moät tieán trình :

Cuøng laøm baøi => Hoaït ñoäng ñoàng haønhCoù baøi thi , buùt, giaáy…rieâng => Taøi nguyeân rieâng bieätÑoäc laäp => Khoâng trao ñoåi (veà nguyeân taéc)

Thöïc haønh moân Heä Ñieàu haønh2 sinh vieân/nhoùmHôïp taùc ñoàng haønhNhu caàu trao ñoåiDuøng taøi nguyeân chung

Page 142: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 18

Moâ hình ña tieåu trình (MultiThreads)

Nhieàu tình huoáng caàn coù nhieàu doøng xöû lyù ñoàng thôøi cuønghoaït ñoäng trong moät khoâng gian ñòa chæ => cuøng chia seû taøinguyeân (server, OS, caùc chöông trình tính toaùn song song : nhaân ma traän…)

Khaùi nieäm môùi : tieåu trình (thread)

alta vista

Page 143: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 19

Ví duï Moâ hình ña tieåu trình

Thöïc haønh moân Heä Ñieàu haønhMoãi nhoùm 2 sinh vieân laø moät tieán trình :Moãi sinh vieân laø moät tieåu trình

Cuøng laøm baøi => Hoaït ñoäng ñoàng haønhCoùù baøi thöïc haønh chung => Taøi nguyeân chungTrao ñoåi vôùi nhau

Page 144: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 20

Khaùc bieät giöõa Tieåu trình & Tieán trình

Tieåu trình : 1 doøng xöû lyùTieán trình :

1 khoâng gian ñòa chæ1 hoaëc nhieàu tieåu trình

Caùc tieán trình laø ñoäc laäpCaùc tieåu trình trong cuøng 1 tieán trình khoâng coù söï baûo veälaãn nhau (caàn thieát ? ).

P1

int a;

T1 T2T3

Page 145: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 21

Tieåu trình haït nhaân (Kernel thread)

Khaùi nieäm tieåu trình ñöôïc xaây döïng beân trong haït nhaânÑôn vò xöû lyù laø tieåu trìnhVí duï :

Windows 95/98/NT/2000Solaris, Tru64 UNIX, BeOS, Linux

T1 T2

Kernel Thread

System call

User mode

Kernel mode

Page 146: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 22

Phaân chia CPU ?

1 CPU vaät lyù : laøm theá naøo ñeå taïo aûo giaùc moãi tieán trình sôûhöõu CPU rieâng cuûa mình ?Luaân chuyeån CPU giöõa caùc tieán trình

2 thaønh phaàn ñaûm nhieäm vai troø ñieàu phoái:Scheduler choïn 1 tieán trìnhDispatcher chuyeån CPU cho tieán trình ñöôïc choïn CPU

Page 147: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 23

Caùc danh saùch tieán trình

Ready List P1 P4 P5

Waiting ListsR1 P7P2

P10P3

P6

R2

R3

Page 148: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 24

Scheduler - Nhieäm vuï

Ra quyeát ñònh choïn moät tieán trình ñeå caáp phaùt CPU :ÖÙng cöû vieân = {Caùc tieán trình ready list}0 tieán trình : CPU raûnh roãi (idle)!1 tieán trình : khoâng caàn suy nghó nhieàu, ñuùng khoâng ?>1 : choïn ai baây giôø ? Döïa vaøo caùc thuaät toaùn ñieàu phoái

Ready List P1 P4 P5

Page 149: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 25

Dispatcher - Nhieäm vuï

Nhieäm vuï cuûa Dispatcher: Chuyeån ñoåi ngöõ caûnhXeùt ví duï

Tieán trình A ñang duøng CPU 1 chuùt thì bò HÑH thu hoài CPUHÑH caáp CPU cho B duøng 1 chuùt, HÑH thu hoài laïi CPU.HÑH caáp CPU trôû laïi cho A.Giaù trò caùc thanh ghi giöõa nhöõng laàn chuyeån ñoåi CPU ?

Kòch baûn :Löu ngöõ caûnh tieán trình hieän haønhNaïp ngöõ caûnh tieán trình ñöôïc choïn keá tieáp

Page 150: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 26

Page 151: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 27

Dispatcher - Thaûo luaän

Baûn thaân HÑH cuõng laø 1 phaàn meàm, nghóa laø cuõng söû duïng CPU ñeåcoù theå chaïy ñöôïc.Caâu hoûi: Khi tieán trình A ñang chieám CPU, laøm theá naøo HÑH coùtheå thu hoài CPU laïi ñöôïc ? (vì luùc naøy HÑH khoâng giöõ CPU)

EÙp buoäc NSD thænh thoaûng traû CPU laïi cho HÑH ? Coù khaû thi ?Maùy tính phaûi coù 2 CPU, 1 daønh rieâng cho HÑH ?HÑH söû duïng ngaét ñoàng hoà (ngaét ñieàu phoái) ñeå kieåm soaùt heä thoáng

Moãi khi coù ngaét ñoàng hoà, HÑH kieåm tra xem coù caàn thu hoài CPU töø 1 tieán trình naøoñoù laïi hay khoâng ?HÑH chæ thu hoài CPU khi coù ngaét ñoàng hoà phaùt sinh.Khoaûng thôøi gian giöõa 2 laàn ngaét ñieàu phoái goïi laø chu kyø ñoàng hoà (toái thieåu laø 18.2 laàn / giaây)

Page 152: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 28

Löïa choïn tieán trình ?

Taùc vuï cuûa SchedulerMuïc tieâu ?

Söû duïng CPU hieäu quaûÑaûm baûo taát caû caùc tieán trình ñeàu tieán trieån xöû lyù

Tieâu chuaån löïa choïn ?Taát caû caùc tieán trình ñeàu nhö nhau ?Ñeà xuaát moät ñoä öu tieân cho moãi tieán trình ?

Thôøi ñieåm löïa choïn ? (Thôøi ñieåm kích hoaït Scheduler())

Page 153: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 29

Muïc tieâu ñieàu phoái

Hieäu quûa (Efficiency) Thôøi gian

Ñaùùp öùng (Response time) Hoaøn taát (Turnaround Time = Tquit -Tarrive):Chôø (Waiting Time = T in Ready ) :

Thoâng löôïng (Throughput = # jobs/s )Hieäu suaát Taøi nguyeânChi phí chuyeån ñoåi

Coâng baèng ( Fairness) : Taát caû caùc tieán trình ñeàu coù cô hoäi nhaän CPU

Page 154: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 30

Thôøi ñieåm ra quyeát ñònh ñieàu phoái

Ñieàu phoái ñoäc quyeàn (non-preemptive scheduling):tieán trình ñöôïc choïn coù quyeàn ñoäc chieám CPU

Caùc thôøi ñieåm kích hoaït Scheduler P cur keát thuùcP cur : running ->blocked

Ñieàu phoái khoâng ñoäc quyeàn (preemptive scheduling): tieán trình ñöôïc choïn coù theå bò cöôùpCPU bôûi tieán trình coù ñoä öu tieân cao hôn

Caùc thôøi ñieåm kích hoaït Scheduler P cur keát thuùcP cur : Running -> BlockedQ : Blocked / New -> Ready

Page 155: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 31

Hai nguyeân taéc ñieàu phoái CPU

Khoâng ñoäc quyeànwhile (true) {interrupt Pcursave state PcurScheduler.NextP() Pnextload state pnextresume Pnext

}

Ñoäc quyeàn

while (true) {save state PcurScheduler.NextP() Pnextload state pnextresume Pnextwait for Pnext

}

Page 156: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 32

Ñaùnh giaù chieán löôïc ñieàu phoái

Söû duïng 2 ñaïi löôïng ño :Turn- around time = Tquit –Tarrive: töø luùc vaøo HT ñeán khi hoaøn taátWaiting time = T in Ready

Xeùt tröôøng hôïp trung bìnhN tieán trìnhAvg Turn- around time = (Σ Turn- around time Pi )/NAvg Waiting time = (Σ Waiting time Pi )/N

Page 157: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 33

Caùc chieán löôïc ñieàu phoái

FIFO (FCFS)

Xoay vòng (Round Robin)

Theo độ ưu tiên

Công việc ngắn nhất (SJF)

Nhiều mức độ ưu tiên

Page 158: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 34

FCFS (First comes first served)

Tieán trình vaøo RL laâu nhaát ñöôïc choïntröôùcTheo thứ tự vaøo RLĐộc quyềnABC CPU

Ready List

CPUBCReady List

CPUCReady List

Page 159: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 35

Minh hoïa FCFS

32P3

31P2

240P1

CPU burstTarriveRLP

0:00 P1 vào RLP1 dùng CPU

0:01 P2 vào RL0:02 P3 vào RL

0:24 P1 kết thúcP2 dùng CPU

AvgWT = (23+25)/3 = 16

0:27 P2 kết thúcP3 dùng CPU

27-230-2P3

24-127-1P2

024P1

WTTTP

P1 P2 P30 24 27

Page 160: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 36

Nhaän xeùt FCFS

Ñôn giaûnChòu ñöïng hieän töôïng tích luõy thôøi gian chôø

Tieán trình coù thôøi gian xöû lyù ngaén ñôïi tieán trình coù thôøi gian xöû lyùdaøiÖu tieân tieán trình cpu-bounded

Coù theå xaûy ra tình traïng ñoäc chieám CPU

Page 161: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 37

Ñieàu phoái Round Robin (RR)

ABC CPUReady List

A chỉ chiếm CPU trong q ms

BCA CPUReady List

B được giao quyền sử dụng CPUtrong q ms kế tiếp

CAB CPUReady List

C được giao quyền sử dụng CPUtrong q ms kế tiếp

Ñieàu phoái theo nguyeân taéc FCFSMoãi tieán trình chæ söû duïng moät löôïng q cho moãi laàn söû duïng CPU

Quantum/Time slice

Page 162: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 38

Minh hoïa RR, q=4

32P3

31P2

240P1

CPU burstTarriveRLP

AvgWT = (6+3+5)/3 = 4.66

7-210-2P3

4-17-1P2

0+(10-4)30P1

WTTTP

P1 P2 P3 P1 P1 P1 P1 P10 4 7 10 14 18 22 26 30

0:00 P1 vào, P1 dùng CPU

0:01 P2 vào (đợi)

0:02 P3 vào (đợi)

0:04 P1 hết lượt, P2 dùng CPU

0:07 P2 dừng, P3 dùng CPU0:10 P3 dừng, P1 dùng CPU

0:14 P1 vẫn chiếm CPU…

Page 163: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 39

Minh hoïa RR, q=4

312P3

34P2

240P1

CPU burstTarriveRLP

P1 P1 P2 P1 P3 P1 P1 P10 4 8 11 15 18 22 26 30

RL0:00 P1

0:04

0:8 P2 P1

?

Tranh chaáp vò trí trong RL : “Chung thuûy”1. P : running -> ready2. P : blocked -> ready3. P: new ->ready

Khoâng phaûi luoân luoân coù thöù töï ñieàu phoái P1 P2 P3 P4P1 P2 P3 P4...

0:11 P10:15 P3 P10:18 P1

0:04 P1 P2

0:04 P2 P1

“Chung thuûy”

“Coù môùi nôùi cuõ”

Page 164: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 40

RR : Khi naøo keát thuùc 1 löôït söû duïng CPU

Heát thôøi löôïng q ms (quantum) cho pheùpTieán trình keát thuùcTieán trình bò khoùa

ChờRsChờ biến cố

Page 165: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 41

Nhaän xeùt RR

Söû duïng cô cheá khoâng ñoäc quyeànMoãi tieán trình khoâng phaûi ñôïi quaù laâuLoaïi boû hieän töôïng ñoäc chieám CPUHieäu quaû ?

Phuï thuoäc vaøo vieäc choïn löïa quantum qq quaùù lớn ???q quaù nhỏ ???

Tröôøng hôïp xaáu nhaát cuûa RR ?

Bao laâu ?

Giaûm tíùnh töôngtaùc

Taêng chi phí chuyeån ñoåingöõ caûnh

Page 166: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 42

Ñieàu phoái vôùi ñoä öu tieân

Phân biệt tiến trình quan trọng >< tiến trình bình thường?

WinAmpđộ ưu tiên: cao (-3)

Outlookđộ ưu tiên: thấp (3)

WinWordđộ ưu tiên: trung bình (0)

Độưu

tiên

Tieán trình coù ñoä öu tieân cao nhaát ñöôïc choïn caáp CPU tröôùc

Page 167: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 43

Ví duï: Ñoä öu tieân cuûa HÑH WinNT

WinNT gaùn cho moãi tieán trình ñoä öu tieân coù giaù trò giöõa 0 & 310 (ñoä öu tieân nhoû nhaát): daønh rieâng cho traïng thaùi system idle

Ñoä öu tieân ñöôïc phaân theo nhoùm:Realtime : (16 - 31)

Thích hôïp cho caùc tieán trình thôøi gian thöïcDaønh rieâng cho caùc tieán trình cuûa ngöôøi quaûn trò heä thoáng

Dynamic : (0 - 15)Thích hôïp cho caùc tieán trình cuûa ngöôøi duøng thöôøngChia thaønh 3 möùc :

high (11 - 15)normal (6 - 10) idle (2 - 6)

Page 168: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 44

Bieåu ñoà phaân boá ñoä öu tieân cuûa WinNT

24

realtime

13

high

8

normal

system idledynamic idle

dynamic time-criticalrealtime idle

realtime time-critical

01

15

dynamiclevels 1-15

16

31

realtimelevels 16-31

lowest (-2)below normal (-1)

normal (0)above normal (+1)

highest (+2)

4

idle

Page 169: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 45

Nguyeân taéc ñieàu phoái

Độc quyềnLượt sử dụng CPU kết thuùc khi:

tiến trình kết thuùc,tiến trình bị khoùa

Khoâng độc quyềnLượt sử dụng CPU kết thuùc khi:

tiến trình kết thuùc, tiến trình bị khoùa, coùtiến trình vôùi độ ưu tieân cao hơn vaøo RL

Page 170: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 46

Minh hoïa ñoä öu tieân (khoângñoäc quyeàn)

1

0

2

Priority

32P3

31P2

240P1

CPU burstTRLP

AvgWT = (6+0+2)/3 = 2.66

4-27-2P3

04-1P2

0+(7-1)30P1

WTTTP

0:00 P1 vào, P1 dùng CPU

0:01 P2 vào (độ ưu tiên cao hơn P1)

P2 dành quyền dùng CPU

0:4 P2 kết thúc, P3 dùng CPU0:7 P3 dừng, P1 dùng CPU0:30 P1 dừng

P1 P3 P10 30

P241 7

P22

0:02 P3 vào (độ ưu tiên thấp hơn P2)

P3 không dành được quyền dùng CPU

Page 171: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 47

Nhaän xeùt

Caùch tính ñoä öu tieân ?Heä thoáng gaùn : CPU times…Ngöôøi duøng gaùn töôøng minh

Tính chaát ñoä öu tieân :TónhÑoäng

Soá phaän tieán trình coù ñoä öu tieân thaáp ?Chôø laâu, laâu, laâu ...

starvation

Aging : taêng ñoä öu tieâncho nhöõng tieán trình chôø

laâu trong heä thoáng

Page 172: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 48

Shortest Job First (SJF)

P3(cần 7 chu kỳ)

P1(cần 5 chu kỳ)

P2(cần 3 chu kỳ)

Ngắn nhất

Ready List

CPU

pi = thời_gian_còn_lại(Processi)

Là một dạng độ ưu tiên đặc biệt với độ ưu tiên

Có thể cài đặt độc quyền hoặc không độc quyền

Page 173: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 49

Minh hoïa SJF (ñoäc quyeàn)(1)

32P3

31P2

240P1

CPU burstTarriveRLP

AvgWT = (23+25)/3 = 16

27-230P3

24-127P2

024P1

WTTTP

0:00 P1 vào, P1 dùng CPU

0:01 P2 vào RL

0:02 P3 vào RL

0:24 P1 kết thúc, P2 dùng CPU0:27 P2 dừng, P3 dùng CPU0:30 P3 dừng

P1 P2 P30 24 27 30

Page 174: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 50

Minh hoïa SJF (ñoäc quyeàn)(2)

21P3

31P2

240P1

CPU burstTarriveRLP

AvgWT = (24+22)/3 = 15.33

24-226P3

26-129P2

024P1

WTTTP

0:00 P1 vào, P1 dùng CPU

0:01 P2 vào

0:01 P3 vào

0:24 P1 kết thúc, P3 dùng CPU0:26 P3 dừng, P2 dùng CPU0:29 P2 dừng

P1 P3 P20 24 26 29

Page 175: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 51

Minh hoïa SJF (khoângñoäc quyeàn) (1)

32P3

31P2

240P1

CPU burstTarriveRLP

AvgWT = (6+0+2)/3 = 2.66

4-27-2P3

04-1P2

0+(7-1)30P1

WTTTP

0:00 P1 vào, P1 dùng CPU

0:01 P2 vào (độ ưu tiên cao hơn P1)

P2 dành quyền dùng CPU

0:4 P2 kết thúc, P3 dùng CPU0:7 P3 dừng, P1 dùng CPU0:30 P1 dừng

P1 P3 P10 30

P241 7

Page 176: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 52

Minh hoïa SJF (khoângñoäc quyeàn) (2)

43P3

51P2

240P1

CPU burstTarriveRLP

AvgWT = (9+0+3)/3 = 4

6-310P3

06P2

0+(10-1)33P1

WTTTP

0:00 P1 vào, P1 dùng CPU

0:01 P2 vào (độ ưu tiên cao hơn P1)

P2 dành quyền dùng CPU

0:6 P2 kết thúc, P3 dùng CPU0:9 P3 dừng, P1 dùng CPU0:33 P1 dừng

P1 P3 P10 33

P261 10

P23

0:03 P3 vào (độ ưu tiên < P2)

P2 dành quyền dùng CPU

Page 177: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 53

Minh hoïa SJF (nhieàu chu kyø CPU)

0

4

2

IO2T

1

10

2

IO1T

Null

R1

R2

IO2R

8

1

5

CPU1burst

R2

R1

R1

IO1R

010P3

12P2

20P1

CPU2 burst

TarriveRLP

P1 P30 21

P262 10

P13

CPU

P1 P2

13

1913 15

P23

R1

P1 P3221917 21

R2

P214

P315

P117

P3

Page 178: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 54

Nhaän xeùt SJF

Toái öu thôøi gian chôøChöùng minh ?

Khoâng khaû thiLaøm sao bieát CPU burst ?

AvgWT = (3a+2b+c)Min AvgWT ?

a<b<c

P1a

P2b

P3c

past historyrelative weightmost recent information

( ) nnn t ταατ −+=+ 1 1

length of the nth CPU burst

predicted value for the nth CPU burst0<= α <=1

Page 179: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 55

Ñieàu phoái vôùi nhieàu möùc öu tieân

Toå chöùc N RL öùng vôùinhieàu möùc öu tieânMoãi RLi aùp duïng moätchieán löôïc ñieàu phoáithích hôïpGiöõa caùc RL aùp duïngñieàu phoái theo ñoä öutieân :

RLi roãng môùi ñieàu phoáiRLi +1

Độ ưu tiên1

…2

n

CP

U

Kết hợpnhiều chiến lược

Page 180: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 56

Ñieàu phoái vôùi nhieàu möùc öu tieân – Thöïc teá

Toå chöùc N RL öùng vôùinhieàu möùc öu tieânMoãi RLi aùp duïng RRGiöõa caùc RL aùp duïngñieàu phoái theo ñoä öutieân :

RLi roãng môùi ñieàu phoáiRLi +1

Độ ưu tiên1

…2

n

CP

U

Kết hợpnhiều chiến lược

Page 181: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 57

Khuyeát ñieåm

Starvation !!!Giaûi phaùp Aging :

Chôø laâu quaù : chuyeån leân RL vôùi ñoä öu tieân cao hônChieám CPU laâu quaù : chuyeånxuoáng RL vôùi ñoä öu tieân thaáphôn

2

☺ ☺1 ☺ CPU

Chờ lâu quá

Khi naøo thöïc hieän aging ?Aging tieán trình naøo ?

Page 182: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

10/20/2007 Trần Hạnh Nhi 58

Null00R220311P4

R232R15610P3

R152R2812P2

Null01R1580P1

Thieátbò

Thôøigian

Thieátbò

Thôøigian

IO laàn 2CPU2

IO laàn 1CPU1

Thôøi ñieåmvaøo Ready

list

Tieántrình

Bài tập: Hãy điều phốiCPU: SJF không độc quyền. R1,R2: FIFO

Page 183: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 1

Chöông 5Ñoàng boä hoaù tieán trình

Page 184: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 2

Noäi dung baøi giaûng

Xöû lyù ñoàng haønh vaø caùc vaán ñeà:Vaán ñeà tranh ñoaït ñieàu khieån (Race Condition)Vaán ñeà phoái hôïp xöû lyù

Baøi toaùn ñoàng boä hoùaYeâu caàu ñoäc quyeàn truy xuaát (Mutual Exclusion)Yeâu caàu phoái hôïp xöû lyù (Synchronization)

Caùc giaûi phaùp ñoàng boä hoaùBusy waitingSleep & Wakeup

Caùc baøi toaùn ñoàng boä hoaù kinh ñieånProducer – ConsumerReaders – WritersDinning Philosophers

Page 185: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 3

Nhieàu tieán trình “chung soáng hoaø bình” trong heä thoáng ?

ÑÖØNG HY VOÏNGAn toaøn khi caùc tieán trình hoaøn toaøn ñoäc laäp

Laøm sao coù ñöôïc ??Thöïc teá

Caùc tieán trình chia seû taøi nguyeân chung ( file system, CPU...)Concurrent access => bugs.

Ví duï : Deâ con qua caàu

Xöû lyù ñoàng haønh = ...nhöùc ñaàu

Page 186: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 4

Caùc vaán ñeà

Tranh chaápNhieàu tieán trình truy xuaát ñoàng thôøi moät taøi nguyeân mang baûn chaát khoâng chiaseû ñöôïc

Xaûy ra vaán ñeà tranh ñoaït ñieàu khieån (Race Condition)Keát quaû ?

Khoù bieát , thöôøng laø ...saiLuoân luoân nguy hieåm ?

...Khoâng, nhöng ñuû ñeå caân nhaéc kyõ caøng

Phoái hôïpCaùc tieán trình khoâng bieát töông quan xöû lyù cuûa nhau ñeå ñieàu chænh hoaït ñoängnhòp nhaøng

Caàn phoái hôïp xöû lyù (Rendez-vous)Keát quaû : khoù bieát, khoâng baûo ñaûm aên khôùp

Page 187: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 5

Noäi dung baøi giaûng

Xöû lyù ñoàng haønh vaø caùc vaán ñeà:Vaán ñeà tranh ñoaït ñieàu khieån (Race Condition)Vaán ñeà phoái hôïp xöû lyù

Baøi toaùn ñoàng boä hoùaYeâu caàu ñoäc quyeàn truy xuaát (Mutual Exclusion)Yeâu caàu phoái hôïp xöû lyù (Synchronization)

Caùc giaûi phaùp ñoàng boä hoaùBusy waitingSleep & Wakeup

Caùc baøi toaùn ñoàng boä hoaù kinh ñieånProducer – ConsumerReaders – WritersDinning Philosophers

Page 188: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 6

Tranh ñoaït ñieàu khieån (Race condition) - Ví duï

hits = hits +1; hits = hits + 1;

P1 P2

hits = 0

Keát quaû cuoái cuøng laø bao nhieâu ?

Ñeám soá ngöôøi vaøo Altavista : duøng 2 threads caäpnhaät bieán ñeám hits=> P1 vaø P2 chia seû bieán hits

Page 189: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 7

Tranh ñoaït ñieàu khieån (Race condition) - Ví duï

(4)hits = 0 + 1

(1) read hits (0)

(3) hits = 0 + 1(2)read hits (0)

P1 P2

hits = 1

hits = 0time

Page 190: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 8

Tranh ñoaït ñieàu khieån (Race condition) - Ví duï

(4) hits = 1 + 1

(1) read hits (0)

(2) hits = 0 + 1(3) read hits (1)

P1 P2

hits = 2

hits = 0time

Page 191: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 9

Ai thaéng ?Coù baûo ñaûm raèng seõ coù ngöôøi thaéng ?Neáu moãi tieán trình xöû lyù treân 1 CPU thì sao ?

Tranh ñoaït ñieàu khieån (Race condition) - Ví duï (tt)

Thread b:while(i > -10)

i = i - 1;print “B won!”;

Thread a:while(i < 10)

i = i +1;print “A won!”;

i=0;

Page 192: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 10

Tranh ñoaït ñieàu khieån (Race condition)-Nhaän xeùt

Keát quaû thöïc hieän tieán trình phuï thuoäc vaøo keát quaû ñieàu phoáiCuøng input, khoâng chaéc cuøng outputKhoù debug loãi sai trong xöû lyù ñoàng haønh

Xöû lyùLaøm lô

Deã , nhöng coù phaûi laø giaûi phaùpKhoâng chia seû taøi nguyeân chung : duøng 2 bieán hits1,hits2; xaâycaàu 2 lane...

Neân duøng khi coù theå, nhöng khoâng bao giôø coù theå ñaûm baûo ñuû taøinguyeân, vaø cuõng khoâng laø giaûi phaùp ñuùng cho moïi tröôøng hôïp

Giaûi phaùp toång quaùt : coù hay khoâng ?Lyù do xaûy ra Race condition ? Bad interleavings : moät tieán trình“xen vaøo” quaù trình truy xuaát taøi nguyeân cuûa moät tieán trình khaùcGiaûi phaùp : baûo ñaûm tính atomicity cho pheùp tieán trình hoaøn taát troïnveïn quaù trình truy xuaát taøi nguyeân chung tröôùc khi coù tieán trình khaùccan thieäp

Page 193: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 11

Atomicity : loaïi boû Race Condition

read hits(1)hits = 1 + 1

P1 P2

hits = 2

hits = 0time

read hits (0)hits = 0 + 1

Page 194: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 12

Mieàn gaêng (Critical Section) & Khaû naêng ñoäc quyeàn (Mutual Exclusion)

hits = hits + 1

printf(“Welcome”);

hits = hits + 1

printf(“Welcome”);

P1 P2

CSCS

Mieàn gaêng (CS) laø ñoaïn chöông trình coù khaû naêng gaây rahieän töôïng race condition

Hoã trôï Atomicity : Caàn baûo ñaûm tính “ñoäc quyeàn truyxuaát” (Mutual Exclusion) cho mieàn gaêng (CS)

printf(“Bye”); printf(“Bye”);

Page 195: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 13

Noäi dung baøi giaûng

Xöû lyù ñoàng haønh vaø caùc vaán ñeà:Vaán ñeà tranh ñoaït ñieàu khieån (Race Condition)Vaán ñeà phoái hôïp xöû lyù

Baøi toaùn ñoàng boä hoùaYeâu caàu ñoäc quyeàn truy xuaát (Mutual Exclusion)Yeâu caàu phoái hôïp xöû lyù (Synchronization)

Caùc giaûi phaùp ñoàng boä hoaùBusy waitingSleep & Wakeup

Caùc baøi toaùn ñoàng boä hoaù kinh ñieånProducer – ConsumerReaders – WritersDinning Philosophers

Page 196: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 14

Phoái hôïp hoaït ñoäng

(1) Send(“Anh”);

P1(2) Send(“yeâu”);

P2

(3) Send(“em”);

P3

(4) Send(“Khoâng”);

P4

Page 197: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

Chuyeän gì ñaõ xaûy ra ?

(1) Send(“Anh”);

P1

(2) Send(“yeâu”);

P2

(3) printf(“em”);

P3

(4) Send(“Khoâng”);

P4

(1)Send(“Anh”);

P1

(2) Send(“yeâu”);

P2

(3) Send(“em”);

P3

(4) Send(“Khoâng”);

P4

Page 198: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 16

Phoái hôïp xöû lyù

Laøm theá naøo baûo ñaûm trình töï thöïc hieän Job1 - Job2 ?P1 vaø P2 thöïc hieän “heïn hoø” (Rendez-vous) vôùi nhau

Hoã trôï Rendez-vous : Baûo ñaûm caùc tieán trình phoái hôïp vôùinhau theo 1 trình töï xöû lyù ñònh tröôùc.

P1 P2

Job1;Job2;

Page 199: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 17

Noäi dung baøi giaûng

Xöû lyù ñoàng haønh vaø caùc vaán ñeà:Vaán ñeà tranh ñoaït ñieàu khieån (Race Condition)Vaán ñeà phoái hôïp xöû lyù

Baøi toaùn ñoàng boä hoùaYeâu caàu ñoäc quyeàn truy xuaát (Mutual Exclusion)Yeâu caàu phoái hôïp xöû lyù (Synchronization)

Caùc giaûi phaùp ñoàng boä hoaùBusy waitingSleep & Wakeup

Caùc baøi toaùn ñoàng boä hoaù kinh ñieånProducer – ConsumerReaders – WritersDinning Philosophers

Page 200: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 18

Baøi toaùn ñoàng boä hoaù (Synchronization)

Nhieàu tieán trình chia seû taøi nguyeân chung ñoàng thôøi :Tranh chaáp Race ConditionNhu caàu “ñoäc quyeàn truy xuaát” (Mutual Exclusion)

Caùc tieán trình phoái hôïp hoaït ñoäng :Töông quan dieãn tieán xöû lyù ?Nhu caàu “hoø heïn” (Rendez-vous)

Thöïc hieän ñoàng boä hoaù :Laäp trình vieân ñeà xuaát chieán löôïc

Caùc tieán trình lieân quan trong baøi toaùn phaûi toân troïng caùc luaätñoàng boä

Giaûi phaùp söû duïng caùc cô cheá ñoàng boä :Do laäp trình vieân /phaàn cöùng / HÑH / NNLT cung caáp

Page 201: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 19

Moâ hình ñaûm baûo Mutual Exclusion

Kieåm tra vaø daønh quyeàn vaøo CS

CS;

Töø boû quyeàn söû duïng CS

Nhieäm vuï cuûa laäp trình vieân:Theâm caùc ñoaïn code ñoàng boä hoùa vaøo chöông trình goácTheâm theá naøo : xem moâ hình sau ...

Page 202: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 20

Moâ hình toå chöùc phoái hôïp giöõa hai tieán trình

P1 P2

Job1; Chôø ;Baùo hieäu ; Job2;

Nhieäm vuï cuûa laäp trình vieân:Theâm caùc ñoaïn code ñoàng boä hoùa vaøo 2 chöông trình goácTheâm theá naøo : xem moâ hình sau ...

Nhieàu tieán trình hôn thì sao ?Khoâng coù moâ hình toång quaùtTuøy thuoäc baïn muoán heïn hoø ra sao☺

Page 203: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 21

Noäi dung baøi giaûng

Xöû lyù ñoàng haønh vaø caùc vaán ñeà:Vaán ñeà tranh ñoaït ñieàu khieån (Race Condition)Vaán ñeà phoái hôïp xöû lyù

Baøi toaùn ñoàng boä hoùaYeâu caàu ñoäc quyeàn truy xuaát (Mutual Exclusion)Yeâu caàu phoái hôïp xöû lyù (Synchronization)

Caùc giaûi phaùp ñoàng boä hoaùBusy watingSleep & Wakeup

Caùc baøi toaùn ñoàng boä hoaù kinh ñieånProducer – ConsumerReaders – WritersDinning Philosophers

Page 204: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 22

Giaûi phaùp ñoàng boä hoaù

Moät phöông phaùp giaûi quyeát toát baøi toaùn ñoàng boä hoaù caànthoaû maûn 4 ñieàu kieän sau:Mutual Exclusion : Khoâng coù hai tieán trình cuøng ôû trongmieàn gaêng cuøng luùc.Progess : Moät tieán trình taïm döøng beân ngoaøi mieàn gaêngkhoâng ñöôïc ngaên caûn caùc tieán trình khaùc vaøo mieàn gaêngBounded Waiting : Khoâng coù tieán trình naøo phaûi chôø voâhaïn ñeå ñöôïc vaøo mieàn gaêng.Khoâng coù giaû thieát naøo ñaët ra cho söï lieân heä veà toác ñoäcuûa caùc tieán trình, cuõng nhö veà soá löôïng boä xöû lyù trongheä thoáng.

Page 205: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 23

Caùc giaûi phaùp ñoàng boä hoaù

Nhoùm giaûi phaùp Busy WaitingPhaàn meàm

Söû duïng caùc bieán côø hieäuSöû duïng vieäc kieåm tra luaân phieânGiaûi phaùp cuûa Peterson

Phaàn cöùngCaám ngaétChæ thò TSL

Nhoùm giaûi phaùp Sleep & WakeupSemaphoreMonitorMessage

Page 206: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 24

Caùc giaûi phaùp “Busy waiting”

While (chöa coù quyeàn) donothing() ;

CS;

Töø boû quyeàn söû duïng CS

Tieáp tuïc tieâu thuï CPU trong khi chôø ñôïi vaøo mieàn gaêngKhoâng ñoøi hoûi söï trôï giuùp cuûa Heä ñieàu haønh

Page 207: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 25

Nhoùm giaûi phaùp Busy-Waiting

Caùc giaûi phaùp Busy WaitingCaùc giaûi phaùp phaàn meàm

Giaûi phaùp bieán côø hieäuGiaûi phaùp kieåm tra luaân phieânGiaûi phaùp Peterson

Phaàn cöùngCaám ngaétChæ thò TSL

Page 208: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 26

while (lock == 1); // waitlock = 1;

CS;

lock = 0;

int lock = 0

NonCS;

NonCS;

P0

while (lock == 1); // waitlock = 1;

CS;

lock = 0;

NonCS;

NonCS;

P1

Giaûi phaùp phaàn meàm 1: Söû duïng bieán côø hieäu

Page 209: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 27

while (lock == 1); // waitlock = 1;

CS;

lock = 0;

int lock = 0

NonCS;

NonCS;

P0

while (lock == 1); // waitlock = 1;

CS;

lock = 0;

NonCS;

NonCS;

P1

Giaûi phaùp phaàn meàm 1: Tình huoáng

Page 210: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 28

Nhaän xeùt Giaûi phaùp phaàn meàm 1: Bieán côø hieäu

Coù theå môû roäng cho N tieán trìnhKhoâng baûo ñaûm Mutual Exclusion

Nguyeân nhaân ?

Baûn thaân ñoaïn code kieåm tra vaø daønh quyeàn cuõng laø CS !

while ( lock == 1); // waitlock = 1;Bò ngaét xöû lyù

Taøi nguyeân duøng chung

CS !

Page 211: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 29

Giaûi phaùp phaàn meàm 2 : Kieåm tra luaân phieân

while (turn !=0); // wait

CS;

turn = 1;

int turn = 1

NonCS;

NonCS;

P0

while (turn != 1); // wait

CS;

turn = 0;

NonCS;

NonCS;

P1

Page 212: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 30

Giaûi phaùp phaàn meàm 2 : Tình huoáng

int turn = 1

turn ==1Wait...CS;turn = 1NonCS;CS ? (turn ==1)

P0

CS;turn = 0;NonCS...

P1

P0 khoâng vaøo ñöôïc CS laàn 2 khi P1 döøng trong NonCS !

Page 213: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 31

Nhaän xeùt Giaûi phaùp 2: Kieåm tra luaân phieân

Chæ daønh cho 2 tieán trìnhBaûo ñaûm Mutual Exclusion

Chæ coù 1 bieán turn, taïi 1 thôøi ñieåm chæ cho 1 tieán trình turn vaøo CSKhoâng baûo ñaûm Progress

Nguyeân nhaân ?“Môø cuûa” cho ngöôøi = “Ñoùng cöûa” chính mình !

Page 214: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 32

Keát hôïp yù töôûng cuûa 1 & 2, caùc tieán trình chia seû:int turn; //ñeán phieân aiint interest[2] = FALSE; //interest[i] = T : Pi muoán vaøo CS

Giaûi phaùp phaàn meàm 3 : Peterson’s Solution

j = 1 – i;interest[i] = TRUE;turn = j;while (turn==j && interest[j]==TRUE);

CS;

interest[i] = FALSE;

NonCS;

NonCS;

Pi

Page 215: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 33

Giaûi phaùp phaàn meàm 3 : Peterson

i = 1 – j;interest[j] = TRUE;turn = i;while (turn==i && interest[i]==TRUE);

CS;interest[j] = FALSE;

NonCS;

NonCS;

Pj

Page 216: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 34

Laø giaûi phaùp phaàn meàm ñaùp öùng ñöôïc caû 3 ñieàu kieänMutual Exclusion :

Pi chæ coù theå vaøo CS khi: interest[j] == F hay turn == iNeáu caû 2 muoán veà thì do turn chæ coù theå nhaän giaù trò 0 hay 1 neân chæ coù 1 tieán trình vaøo CS

ProgressSöû duïng 2 bieán interest[i] rieâng bieät => traïng thaùi ñoái phöông khoângkhoaù mình ñöôïc

Bounded Wait : interest[i] vaø turn ñeàu coù thay ñoåi giaù tròKhoâng theå môû roäng cho N tieán trình

Nhaän xeùt giaûi phaùp phaàn meàm 3: Peterson

Page 217: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 35

Nhaän xeùt chung veà caùc giaûi phaùp phaàn meàm trong nhoùmBusy-Waiting

Khoâng caàn söï hoã trôï cuûa heä thoángDeã...sai, Khoù môû roängGiaûi phaùp 1 neáu coù theå ñöôïc hoã trôï atomicity thì seõ toát...

Nhôø ñeán phaàn cöùng ?

Page 218: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 36

Nhoùm Busy-Waiting - Caùc giaûi phaùp phaàn cöùng

Caùc giaûi phaùp Busy WaitingCaùc giaûi phaùp phaàn meàm

Giaûi phaùp bieán côø hieäuGiaûi phaùp kieåm tra luaân phieânGiaûi phaùp Peterson

Caùc giaûi phaùp phaàn cöùngCaám ngaétTest&Set lock Instruction

Page 219: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 37

Nhoùm Busy-Waiting - Giaûi phaùp phaàn cöùng 1: Caám ngaét

Disable Interrupt;

CS;

Enable Interrupt;

NonCS;

NonCS;

Disable Interrupt : Caám moïi ngaét, keå caû ngaét ñoàng hoàEnable Interrupt : Cho pheùp ngaét

Page 220: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 38

Thieáu thaän troïngNeáu tieán trình bò khoaù trong CS ?

System HaltCho pheùp tieán trình söû duïng moät leänh ñaëc quyeàn

Quaù ...lieàu !

Maùy coù N CPUs ?Khoâng baûo ñaûm ñöôïc Mutual Exclusion

Giaûi phaùp phaàn cöùng 1: Caám ngaét

Page 221: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 39

CPU hoã trôï primitive Test and Set LockTraû veà giaù trò hieän haønh cuûa 1 bieán, vaø ñaët laïi giaù trò True cho bieánThöïc hieän moät caùch khoâng theå phaân chia

Nhoùm Busy-Waiting - Giaûi phaùp phaàn cöùng 2: chæ thò TSL()

TSL (boolean &target){

TSL = target;target = TRUE;

}

Page 222: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 40

Aùp duïng TSL

while (TSL(lock)); // wait

CS;

lock = 0;

NonCS;

NonCS;

Pi

int lock = 0

Page 223: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 41

Caàn ñöôïc söï hoã trôï cuûa cô cheá phaàn cöùngKhoâng deã, nhaát laø treân caùc maùy coù nhieàu boä xöû lyù

Deã môû roäng cho N tieán trình

Nhaän xeùt chung caùc giaûi phaùp phaàn cöùng trong nhoùm Busy-Waiting

Page 224: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 42

Söû duïng CPU khoâng hieäu quaûLieân tuïc kieåm tra ñieàu kieän khi chôø vaøo CS

Khaéc phuïcKhoaù caùc tieán trình chöa ñuû ñieàu kieän vaøo CS, nhöôøng CPU chotieán trình khaùc

Phaûi nhôø ñeán SchedulerWait and See...

Nhaän xeùt chung cho caùc giaûi phaùp trong nhoùm Busy Waiting

Page 225: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 43

Caùc giaûi phaùp ñoàng boä hoaù

Nhoùm giaûi phaùp Busy WaitingPhaàn meàm

Söû duïng caùc bieán côø hieäuSöû duïng vieäc kieåm tra luaân phieân Giaûi phaùp cuûa Peterson

Phaàn cöùngCaám ngaétChæ thò TSL

Nhoùm giaûi phaùp Sleep & WakeupSemaphoreMonitorMessage

Page 226: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 44

Caùc giaûi phaùp “Sleep & Wake up”

if (chöa coù quyeàn) Sleep() ;

CS;

Wakeup( somebody);

Töø boû CPU khi chöa ñöôïc vaøo CSKhi CS troáng, seõ ñöôïc ñaùnh thöùc ñeå vaøo CSCaàn ñöôïc Heä ñieàu haønh hoã trôï

Vì phaûi thay ñoåi traïng thaùi tieán trình

Page 227: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 45

YÙ töôûng

Heä Ñieàu haønh hoã trôï 2 primitive :Sleep() : Tieán trình goïi seõ nhaän traïng thaùi BlockedWakeUp(P): Tieán trình P nhaän traïng thaùi Ready

AÙp duïngSau khi kieåm tra ñieàu kieän seõ vaøo CS hay goïi Sleep() tuøy vaøo keátquaû kieåm traTieán trình vöøa söû duïng xong CS seõ ñaùnh thöùc caùc tieán trình bòBlocked tröôùc ñoù

Page 228: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 46

AÙp duïng Sleep() and Wakeup()

int busy; // busy ==0 : CS troángint blocked; // ñeám soá tieán trình bò Blocked chôø vaøo CS

if (busy) {blocked = blocked + 1; Sleep();

}else busy = 1;

busy = 0;if(blocked) { WakeUp(P);

blocked = blocked - 1;}

CS;

Page 229: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 47

Vaán ñeà vôùi Sleep & WakeUp

if (busy) {blocked = blocked + 1; Sleep();

}else busy = 1;

busy = 0;if(blocked) {

WakeUp(P);blocked = blocked - 1;

}

CS;

if (busy) {blocked = blocked + 1; Sleep();

}else busy = 1;

busy = 0;if(blocked) {

WakeUp(P);blocked = blocked - 1;

}

CS;

Nguyeân nhaân : Vieäc kieåm tra ñieàu kieän vaø ñoäng taùc töø boû CPU coù theå bò ngaét quaõngBaûn thaân caùc bieán côø hieäu khoâng ñöôïc baûo veä

P1 P2P1 blocked

vónh vieãn

WakeUpbò “laïc”

Page 230: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 48

Caøi ñaët caùc giaûi phaùp Sleep & WakeUp ?

Heä ñieàu haønh caàn hoã trôï caùc cô cheá cao hônDöïa treân Sleep&WakeUpKeát hôïp caùc yeáu toá kieåm traThi haønh khoâng theå phaân chia

Nhoùm giaûi phaùp Sleep & WakeupSemaphoreMonitorMessage

Page 231: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 49

Giaûi phaùp Sleep & Wakeup 1: Semaphore

Semaphore s; // s >=0

Ñöôïc ñeà nghò bôûi Dijkstra naêm 1965Caùc ñaëc tính : Semaphore s;

Coù 1 giaù tròChæ ñöôïc thao taùc bôûi 2 primitives :

Down(s)Up(s)

Caùc primitive Down vaø Up ñöôïc thöïc hieän khoâng theå phaân chia

Page 232: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 50

Caøi ñaët Semaphore (Sleep & Wakeup)

Semaphore ñöôïc xem nhö laø moät resourceCaùc tieán trình “yeâu caàu” semaphore : goïi Down(s)

Neáu khoâng hoaøn taát ñöôïc Down(s) : chöa ñöôïc caáp resourceBlocked, ñöôïc ñöa vaøo s.L

Caàn coù söï hoã trôï cuûa HÑHSleep() & Wakeup()

typedef struct{

int value;struct process* L;

} Semaphore ;

Giaù trò beân trong cuûa semaphore

Danh saùch caùc tieán trình ñangbò block ñôïi semaphore nhaän

giaù trò döông

Page 233: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 51

Caøi ñaët Semaphore (Sleep & Wakeup)

Down (S){

S.value --;if S.value < 0 {Add(P,S.L);Sleep();

}}

Up(S){S.value ++;if S.value ≤ 0 {Remove(P,S.L);Wakeup(P);

}}

Page 234: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 52

Söû duïng Semaphore

Toå chöùc “ñoäc quyeàn truy xuaát” PiDown (s)

CS;Up(s)

Toå chöùc “hoø heïn”

P1 :Job1;Up(s)

P2:Down (s);Job2;

Semaphore s = ?1

Semaphore s = ?0

Page 235: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 53

Nhaän xeùt Semaphores

Laø moät cô cheá toát ñeå thöïc hieän ñoàng boäDeã duøng cho N tieán trình

Nhöng yù nghóa söû duïng khoâng roõ raøngMutualExclusion : Down & UpRendez-vous : Down & UpChæ phaân bieät qua moâ hình

Khoù söû duïng ñuùngNhaàm laãn

Page 236: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 54

Giaûi phaùp Sleep & Wakeup 2: Monitor

Ñeà xuaát bôûi Hoare(1974) & Brinch (1975)Laø cô cheá ñoàng boä hoaù do NNLT cung caáp

Hoã trôï cuøng caùc chöùc naêng nhö SemaphoreDeã söû duïng vaø kieåm soaùt hôn Semaphore

Baûo ñaûm Mutual Exclusion moät caùch töï ñoängSöû duïng bieán ñieàu kieän ñeå thöïc hieän Synchronization

Page 237: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 55

Monitor : Ngöõ nghóa vaø tính chaát(1)

Laø moät module chöông trình ñònh nghóaCaùc CTDL, ñoái töôïng duøng chungCaùc phöông thöùc xöû lyù caùc ñoái töôïng naøyBaûo ñaûm tính encapsulation

Caùc tieán trình muoán truy xuaát döõ lieäubeân trong monitor phaûi duøng caùc phöôngthöùc cuûa monitor :

P1 : M.C() // i=5P2: M.B() // printf(j)

MethodA

i=0

MethodB

prinf(j)

MethodC

i=5

Share variable: i,j;

Monitor M

Page 238: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 56

Monitor : Ngöõ nghóa vaø tính chaát(2)

Töï ñoäng baûo ñaûm Mutual ExclusionTaïi 1 thôøi ñieåm chæ coù 1 tieán trình ñöôïc thöïchieän caùc phöông thöùc cuûa MonitorCaùc tieán trình khoâng theå vaøo Monitor seõñöôïc ñöa vaøo Entry queue cuûa Monitor

Ví duïP1 : M.A();P6 : M.B();P7 : M.A();P8 : M.C();

MethodA

i = 0MethodB

printf(i)MethodC

i=5

P1

P8P7P6Entryqueue

Share variable: i,j;

Page 239: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 57

Monitor : Ngöõ nghóa vaø tính chaát(3)

Hoã trôï Synchronization vôùi caùc condition variables

Wait(c) : Tieán trình goïi haøm seõ bò blockedSignal(c): Giaûi phoùng 1 tieán trình ñang bòblocked treân bieán ñieàu kieän cC.queue : danh saùch caùc tieán trình blocked treân c

Traïng thaùi tieán trình sau khi goïi Signal?Blocked. Nhöôøng quyeàn vaøo monitor cho tieántrình ñöôïc ñaùnh thöùcTieáp tuïc xöû lyù heát chu kyø, roài blocked

MethodA

i=0;signal(c1)

MethodB

MethodC

wait(C1);i=5

signal(C2 );

C1:

C2: P5

P4

P1

P3

P2

P8P7P6Entryqueue

Share variable: i,j;

Condition variable:

P1

Page 240: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 58

Söû duïng Monitor

Toå chöùc “ñoäc quyeàn truy xuaát”

PiM.AccessMutual(); //CS

Toå chöùc “hoø heïn”

P1 : M.F1();

P2:M.F2();

Monitor M<resource type> RC;Function AccessMutual

CS; // access RC

Monitor MCondition c;Function F1

Job1;Signal(c);

Function F2Wait(c);Job2;

Page 241: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 59

Ñöôïc hoã trôï bôûi HÑHÑoàng boä hoùa treân moâi tröôøng phaân taùn2 primitive Send & Receive

Caøi ñaët theo mode blocking

Server P

1. Send Request

2. Receive Accept

3. Send Finish

Giaûi phaùp Sleep & Wakeup 3: Message

Page 242: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 60

Noäi dung baøi giaûng

Xöû lyù ñoàng haønh vaø caùc vaán ñeà:Vaán ñeà tranh ñoaït ñieàu khieån (Race Condition)Vaán ñeà phoái hôïp xöû lyù

Baøi toaùn ñoàng boä hoùaYeâu caàu ñoäc quyeàn truy xuaát (Mutual Exclusion)Yeâu caàu phoái hôïp xöû lyù (Synchronization)

Caùc giaûi phaùp ñoàng boä hoaùBusy waitingSleep & Wakeup

Caùc baøi toaùn ñoàng boä hoaù kinh ñieånProducer – ConsumerReaders – WritersDinning Philosophers

Page 243: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 61

Baøi toaùn ñoàng boä kinh ñieån 1: Producer - Consumer (Bounded-Buffer Problem)

P

CBuffer (N)Buffer (N)

Moâ taû : 2 tieán trình P vaø C hoaït ñoäng ñoàng haønhP saûn xuaát haøng vaø ñaët vaøo BufferC laáy haøng töø Buffer ñi tieâu thuïBuffer coù kích thöôùc giôùi haïn

Tình huoángP vaø C ñoàng thôøi truy caäp Buffer ?P theâm haøng vaøo Buffer ñaày ?C laáy haøng töø Buffer troáng ?

P khoâng ñöôïc ghi döõ lieäu vaøo buffer ñaõ ñaày (Rendez-vous)C khoâng ñöôïc ñoïc döõ lieäu töø buffer ñang troáng (Rendez-vous)P vaø C khoâng ñöôïc thao taùc treân buffer cuøng luùc (Mutual Exclusion)

Page 244: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 62

Producer – Consummer : Giaûi phaùp Semaphore

Caùc bieán duøng chung giöõa P vaø CBufferSize = N; // soá choã trong boä ñeämsemaphore mutex = 1 ; // kieåm soaùt truy xuaát ñoäc quyeànsemaphore empty = BufferSize; // soá choã troáng semaphore full = 0; // soá choã ñaàyint Buffer[BufferSize]; // boä ñeäm duøng chung

Page 245: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 63

Producer – Consummer : Giaûi phaùp Semaphore

Producer(){int item;while (TRUE) {

produce_item(&item);down(&empty);down(&mutex)enter_item(item,Buffer);up(&mutex);up(&full);

}}

Consumer(){int item;while (TRUE) { down(&full); down(&mutex);remove_item(&item,Buffer); up(&mutex); up(&empty);consume_item(item); }

}

Page 246: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 64

P&C - Giaûi phaùp Semaphore: Thinking...

Producer(){int item;while (TRUE) {

produce_item(&item);down(&mutex)down(&empty);enter_item(item,Buffer);up(&mutex);up(&full);

}}

Consumer(){int item;while (TRUE) { down(&mutex);down(&full); remove_item(&item,Buffer); up(&mutex); up(&empty);consume_item(item); }

}

Page 247: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 65

Producer – Consummer : Giaûi phaùp Monitor

monitor ProducerConsumer

condition full, empty;

int Buffer[N], count;

procedure enter();

{

if (count == N)

wait(full);

enter_item(item,Buffer);

count ++;

if (count == 1)

signal(empty);

}

procedure remove();

{

if (count == 0)

wait(empty)

remove_item(&item,Buffer);

count --;

if (count == N-1)

signal(full);

}

count = 0;

end monitor;

Page 248: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 66

Producer – Consummer : Giaûi phaùp Monitor

Producer()

{

int item;

while (TRUE)

{

produce_item(&item);

ProducerConsumer.enter;

}

}

Consumer();

{

int item;

while (TRUE)

{

ProducerConsumer.remove;

consume_item(item);

}

}

Page 249: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 67

Producer – Consummer : Giaûi phaùp Message

Producer(){int item;message m;

while (TRUE) {produce_item(&item);receive(consumer, Request);create_message(&m, item);send(consumer,&m);

}}

Consumer();{int item;message m;for(0 to N)

send(producer, Request); while (TRUE){receive(producer, &m);remove_item(&m,&item); send(producer, Request);consumer_item(item);

}}

Coi chöøngDeadlock

Page 250: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 68

Baøi toaùn ñoàng boä hoaù kinh ñieån 2:Readers & Writers

Moâ taû : N tieán trình Ws vaø Rs hoaït ñoäng ñoàng haønhRs vaø Ws chia seû CSDLW caäp nhaät noäi dung CSDLRs truy caäp noäi dung CSDL

Tình huoángCaùc Rs cuøng truy caäp CSDL ?W ñang caäp nhaät CSDL thì caùc Rs truy caäp CSDL ?Caùc Rs ñang truy caäp CSDL thì W muoán caäp nhaät CSDL ?

W khoâng ñöôïc caäp nhaät döõ lieäu khi coù ít nhaát moät R ñang truy xuaát CSDL (ME)Rs khoâng ñöôïc truy caäp CSDL khi moät W ñang caäp nhaät noäi dung CSDL (ME)

Taïi moät thôøi ñieåm , chæ cho pheùp moät W ñöôïc söûa ñoåi noäi dung CSDL (ME)

Database

R1

R2 R3

W1 W2

Page 251: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 69

Readers-Writers vôùi “active readers”

Page 252: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 70

Readers-writers vôùi moät “active writer”

Page 253: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 71

Öu tieân ai hôn ñaây ?

Page 254: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 72

Readers & Writers

W ñoäc quyeàn truy xuaát CSDLW hieän taïi keát thuùc caäp nhaät CSDL : ai vaøo ?

Cho W khaùc vaøo, caùc Rs phaûi ñôïiÖu tieân Writer, Reader coù theå starvation

Cho caùc Rs vaøo, Ws khaùc phaûi ñôïiÖu tieân Reader, Writer coù theå starvation

Page 255: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 73

Readers & Writers : Giaûi phaùp Semaphore

Caùc bieán duøng chung giöõa Rs vaø Wssemaphore db = 1; // Kieåm tra truy xuaát CSDL

Page 256: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 74

R&W : Giaûi phaùp Semaphore (1)

Reader(){

down(&db); read-db(Database); up(&db);

}

Writer(){

down(&db); write-db(Database); up(&db);

}

Chuyeän gì xaûy ra ?Chæ coù 1 Reader ñöôïc ñoïc CSDL taïi 1 thôøi ñieåm !

Page 257: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 75

R&W : Giaûi phaùp Semaphore (2)

Reader(){

rc = rc +1;if (rc ==1)

down(&db); read-db(Database); rc = rc – 1;if (rc == 0)

up(&db);}

Writer(){

down(&db); write-db(Database); up(&db);

}

Ñuùng chöa ?rc laø bieán duøng chung giöõa caùcReader...

CS ñoù

Page 258: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 76

Readers & Writers : Giaûi phaùp Semaphore

Caùc bieán duøng chung giöõa Rs vaø Wssemaphore db = 1; // Kieåm tra truy xuaát CSDL

Caùc bieán duøng chung giöõa Rs int rc; // Soá löôïng tieán trình Readersemaphore mutex = 1; // Kieåm tra truy xuaát rc

Page 259: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 77

R&W : Giaûi phaùp Semaphore (3)

Reader(){

down(&mutex);rc = rc +1;if (rc ==1)

down(&db);up(mutex); read-db(Database); down(mutex);rc = rc – 1;if (rc == 0)

up(&db);up(mutex);

}

Writer(){

down(&db); write-db(Database); up(&db);

}

Ai ñöôïc öu tieân ?

Page 260: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 78

R&W : Giaûi phaùp Semaphore (Thinking...)

Reader(){

down(&mutex);rc = rc +1;up(mutex); if (rc ==1)

down(&db);read-db(Database); down(mutex);rc = rc – 1;up(mutex);if (rc == 0)

up(&db);}

Writer(){

down(&db); write-db(Database); up(&db);

}

??? heâ, heâ, heâ ☺

Page 261: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 79

R&W: Giaûi phaùp Monitor

monitor ReaderWriter

? Database;

procedure R1();

{

}

procedure R...();

{

}

procedure W1();

{

}

procedure W...();

{

}

Page 262: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

monitor ReaderWriter

condition OKWrite, OKRead; int rc = 0;Boolean busy = false;

procedure BeginRead(){if (busy)

wait(OKRead);rc++; signal(OKRead);

}procedure FinishRead(){

rc--;if (rc == 0)

signal(OKWrite);}

procedure BeginWrite(){

if (busy || rc != 0) wait(OKWrite);

busy = true;}

procedure FinishWrite() {busy = false;if (OKRead.Queue)signal(OKRead);

elsesignal(OKWrite);

}

end monitor;

Page 263: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 81

Reader&Writer : Giaûi phaùp Monitor

Reader()

{

RW.BeginRead();

Read-db(Database);

RW.FinishRead();

}

Writer();

{

RW.BeginWrite();

Write-db(Database);

RW.FinishWrite();

}

Page 264: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 82

Baøi toaùn ñoàng boä hoaù kinh ñieån 3:Böûa aên cuûa caùc Trieát gia (Dining Philosophers)

Naêm trieát gia ngoài chung quanh baønaên moùn spaghetti (yum..yum)

Treân baøn coù 5 caùi nóa ñöôïc ñaët giöõa 5 caùiñóa (xem hình) Ñeå aên moùn spaghetti moãi ngöôøi caàn coù 2 caùi nóa

Trieát gia thöù i:Thinking...Eating...

Chuyeän gì coù theå xaûy ra ?

Page 265: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 83

Dining Philosophers : Tình huoáng nguy hieåm

2 trieát gia “giaønh giaät” cuøng 1 caùinóa

Tranh chaápCaàn ñoàng boä hoaù hoaït ñoängcuûa caùc trieát gia

Page 266: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 84

Dining Philosophers : Giaûi phaùp ñoàng boä

semaphore fork[5] = 1;

Philosopher (i){

while(true){

down(fork[i]);down(fork[i+1 mod 5])eat;up(fork[i]);up(fork[i+1 mod 5]);think;

}Deadlock

Page 267: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

11/10/2007 Trần Hạnh Nhi 85

Dining Philosophers : Thaùch thöùc

Caàn ñoàng boä sao cho:Khoâng coù deadlockKhoâng coù starvation

Page 268: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 1

Baøi giaûng 6 : Quaûn lyù boä nhôù

Toång quanNhu caàu boä nhôù cuûa tieán trìnhCaùc vaán ñeà veà boä nhôù

Chuyeån ñoåi ñòa chæCaùc coâng ñoaïnCaùc moâ hình chuyeån ñoåi ñòa chæ

Vai troø Quaûn lyù boä nhôù cuûa HÑHCaùc yeâu caàu

Caùc moâ hình toå chöùc boä nhôùMoâ hình Lieân tuïcMoâ hình Khoâng lieân tuïc

Page 269: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 2

Chöông trình caàn ñöôïc naïp vaøo Boä nhôù chính ñeå thi haønhCPU chæ coù theå truy xuaát tröïc tieáp Main Memory Chöông trình khi ñöôïc naïp vaoø BNC seõ ñöôïc toå chöùc theo caáu truùc cuûatieán trình töông öùngAi caáp phaùt BNC cho tieán trình ?

Chöông trình nguoàn söû duïng ñòa chæ symbolicTieán trình thöïc thi truy caäp ñiaï chæ thöïc trong BNCAi chuyeån ñoåi ñòa chæ ?

Toång quan : Nhu caàu veà boä nhôù cuûa tieán trình

HÑHBoä phaän Quaûn lyù Boä nhôù

Moâ hình toå chöùc ? Cô cheá hoã trôï Chieán löôïc thöïc hieän

Page 270: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 3

Toång quan : Caùc vaán ñeà veà Boä nhôù

Caáp phaùt Boä nhôù :Uniprogramming : Khoâng khoùMultiprogramming :

BNC giôùi haïn, N tieán trình ?Baûo veä ? Chia seû ?

Tieán trình thay ñoåi kích thöôùc ?Tieán trình lôùn hôn BNC ?

Chuyeån ñoåi ñòa chæ tieán trìnhThôøi ñieåm chuyeån ñoåi ñòa chæ ?Coâng thöùc chuyeån ñoåi ?

Phuï thuoäc vaøo Moâ hình toå chöùc BNC ?Caàn söï hoã trôï cuûa phaàn cöùng ?

Tieán trình thay ñoåi vò trí trong BNC ?

Page 271: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 4

Ví duï

Neáu nachos caàn theâm khoâng gian ? Neáu nachos coù loãi vaø thöïc hieän thao taùc ghi vaøo ñòa chæ 0x7100? Khi naøo gcc bieát raèng noù thöôøng truù taïi 0x4000?Neáu emacs caàn nhieàu boä nhôù hôn dung löôïng vaät lyù hieän coù?

OS

nachos

gcc

emacs 0x0000

0x40000x3000

0x70000x9000

Moâi tröôøng ña nhieäm

Page 272: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 5

C program: test.c

Executable: test.exe

Compiler

Linker

Loader

Memory

Object:test.o

lib.o

Caùc böôùc chuyeån ñoåi chöông trình

Page 273: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

Caùc böôùc chuyeån ñoåisource program -> .exe

Page 274: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

int x;int y;x = 12;y = 5;F();

A.CF(){ printf(“Hi”);}

B.C

0 // x2 // y4 // [0] = 12;5 // [2] = 5;6 // jmp F

//external// object

A.O B.O0 -2 // F() …

0 // F()3 // x5 // y7 // [3] = 12;8 // [5] = 5;9 // jmp 0

? // F()? // x? // y? // [?] = 12;? // [?] = 5;? // jmp ?

OS

Test.exe

Page 275: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 8

Thuaät ngöõ

Ñòa chæ logic – coøn goïi laø ñòa chæ aûo , laø taát caû caùc ñòa chæ do boä xöû lyù taïo raÑòa chæ physic - laø ñòa chæ thöïc teá maø trình quaûn lyù boä nhôùnhìn thaáy vaø thao taùcKhoâng gian ñòa chæ – laø taäp hôïp taát caû caùc ñòa chæ aûo phaùt sinh bôûi moät chöông trìnhKhoâng gian vaät lyù – laø taäp hôïp taát caû caùc ñòa chæ vaät lyù töông öùng vôùi caùc ñòa chæ aûo

Page 276: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 9

Nhu caàu boä nhôù cuûa tieán trình

Tiến trình gồm có:code segment

read from program file by execusually read-onlycan be shared

data segmentinitialized global variables (0 / NULL)uninitialized global variablesheap

dynamic memorye.g., allocated using mallocgrows against higher addresses

stack segmentvariables in a functionstored register states (e.g. calling function EIP)grows against lower addresses

system data segment (PCB)segment pointerspidprogram and stack pointers…

Stack cho các thread

process A

low address

high address

……...

8048314 <add>:

8048314: push %ebp

8048315: mov %esp,%ebp

8048317: mov 0xc(%ebp),%eax

804831a: add 0x8(%ebp),%eax

804831d: pop %ebp

804831e: ret

804831f <main>:

804831f: push %ebp

8048320: mov %esp,%ebp

8048322: sub $0x18,%esp

8048325: and $0xfffffff0,%esp

8048328: mov $0x0,%eax

804832d: sub %eax,%esp

804832f: movl $0x0,0xfffffffc(%ebp)

8048336: movl $0x2,0x4(%esp,1)

804833e: movl $0x4,(%esp,1)

8048345: call 8048314 <add>

804834a: mov %eax,0xfffffffc(%ebp)

804834d: leave

804834e: ret

804834f: nop

code segment

system data segment (PCB)

data segment

initialized variables

uninitialized variables

data

seg

men

t

heap

stack

“unuse

d”mem

ory

possible stacksfor more threads

Page 277: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 10

Logical and Physical Address Spaces

Page 278: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 11

Truy xuaát boä nhôù

Ñòa chæ cuûa Instruction vaø data trong program source code laøsymbolic:

goto errjmp;X = A + B;

Nhöõng ñòa chæ symbolic naøy caàn ñöôïc lieân keát (bound) vôùi caùc ñòa chæthöïc trong boä nhôù vaät lyù tröôùc khi thi haønh codeAddress binding: aùnh xaï ñòa chæ töø khoâng gian ñòa chæ (KGÑC) naøyvaøo KGÑC khaùcThôøi ñieåm thöïc hieän address binding ?

compile timeload timeexecution time.

Page 279: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 12

Coù theå thöïc hieän vieäc keát buoäc ñòa chæ taïi 1 trong 3 thôøiñieåm :

Compile-time: Phaùt sinh ñòa chæ tuyeät ñoáiPhaûi bieát tröôùc vò trí naïp chöông trìnhPhaûi bieân dòch laïi chöông trình khi vò trí naïp thay ñoåi

Load-time: Khi bieân dòch chæ phaùt sinh ñòa chæ töông ñoáiKhi naïp, bieát vò trí baét ñaàu seõ tính laïi ñòa chæ tuyeät ñoáiPhaûi taùi naïp khi vò trí baét ñaàu thay ñoåi

Execution-time:Khi bieân dòch,naïp chæ phaùt sinh ñòa chæ tuong ñoáiTrì hoaõn thôøi ñieåm keât buoäc ñòa chæ tuyeät ñoái ñeán khi thi haønhKhi ñoù ai tính toaùn ñòa chæ tuyeät ñoái ?

Phaàn cöùng : MMU

Thôøi ñieåm keát buoäc ñòa chæ ?

Page 280: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 13

Chuyeån ñoåi ñòa chæ

gcc

virtual address

Load Store

errordata

Translation box

CPU

legal addr?Illegal?

Physicalmemory

Physicaladdress

MMU

Page 281: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 14

CPU, MMU and Memory

Page 282: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 15

Yeâu caàu quaûn lyù boä nhôù

Taêng hieäu suaát söû duïng CPUCaàn hoã trôï Multiprogramming

Löu tröõ cuøng luùc nhieàu tieán trình trong BNC ?

Caùc yeâu caàu khi toå chöùc löu tröõ tieán trình:1. Relocation2. Protection3. Sharing4. Logical Organization5. Physical Organization

Page 283: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 16

Khoâng bieát tröôùc chöông trình seõ ñöôïc naïp vaøo BN ôû vò trínaøo ñeå xöû lyù.Moät tieán trình coù theå ñöôïc di dôøi trong boä nhôù sau khi ñaõnaïp C

Tieán trình taêng tröôûng ?HÑH saép xeáp laïi caùc tieán trình ñeå coù theå söû duïng BNC hieäu quûahôn.

Taùi ñònh vò (Relocation)

Page 284: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 17

Khoâng cho pheùp tieán trình truy caäp ñeán caùc vò trí nhôù ñaõcaáp cho tieán trình khaùc (khi chöa coù pheùp).Khoâng theå thöïc hieän vieäc kieåm tra hôïp leä taïi thôøi ñieåmbieân dòch hay naïp, vì chöông trình coù theå ñöôïc taùi ñònh vò.Thöïc hieän kieåm tra taïi thôøi ñieåm thi haønh

Caàn söï hoã trôï cuûa phaàn cöùng.

Baûo veä (Protection)

Page 285: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 18

Caàn cho pheùp nhieàu tieán trình tham chieáu ñeán cuøng moätvuøng nhôù maø khoâng toån haïi ñeán tính an toaøn heä thoáng :

Tieát kieäm choå löu tröõ cho caùc module duøng chung.Cho pheùp caùc tieán trình coäng taùc coù khaû naêng chia seû döõ lieäu.

Chia seû (Sharing)

Page 286: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 19

Ngöôøi duøng vieát chöông trình goàm nhieàu module, vôùi caùcyeâu caàu baûo veä cho töøng module coù theå khaùc nhau:

instruction modules : execute-only.data modules : read-only hay read/write.moät soá module laø private, soá khaùc coù theå laø public.

OS caàn hoã trôï caùc cô cheá coù theå phaûn aùnh moâ hình logic cuûa chuông trình

Toå chöùc logic (Logical Organization)

Page 287: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 20

Toå chöùc vaät lyù (Physical Organization)

Caáp phaùt vuøng nhôù vaät lyù sao cho hieäu quaûVaø deã daøng chuyeån ñoåi chöông trình qua laïi giöõa BNC vaøBNP

Page 288: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 21

Caùc moâ hình toå chöùc boä nhôù

Caáp phaùt Lieân tuïc (Contigous Allocation)Linker – LoaderBase & Bound

Caáp phaùt Khoâng lieân tuïc (Non Contigous Allocation)SegmentationPaging

Page 289: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 22

Caáp phaùt Lieân tuïc (Contigous Allocation)

Nguyeân taéc : Chöông trình ñöôïc naïp toaøn theå vaøo BNC ñeå thi haønhCaàn moät vuøng nhôù lieân tuïc, ñuû lôùn ñeå chöùa Chöông trình

Khoâng gian ñòa chæ : lieân tuïcKhoâng gian vaät lyù : coù theå toå chöùc

Fixed partitionVariable partition

2 moâ hình ñôn giaûnLinker – LoaderBase & Bound

Page 290: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 23

Fixed Partitioning

Phaân chia KGVL thaønh caùcpartitions

Coù 2 caùch phaân chia partitions :kích thöôùc baèng nhaukích thöôùc khaùc nhau

Moãi tieán trình seõ ñöôïc naïp vaøomoät partition ñeå thi haønh

Chieán löôïc caáp phaùt partition ?

Page 291: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 24

Chieán löôïc caáp phaùt partitions cho tieán trình

Kích thöôùc partition baèng nhaukhoâng coù gì phaûi suy nghó !

Kích thöôùc partition khoâng baèngnhau :

Söû duïng nhieàu haøng ñôïiCaáp cho tieán trình partition vôùikích thöôùc beù nhaát (ñuû lôùn ñeåchöùa tieân trình)Khuyeát ñieåm : phaân boá caùc tieántrình vaøo caùc partition khoângñeàu, moät soá tieán trình phaûi ñôïitrong khi coù partition khaùctroáng

Page 292: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 25

Chieán löôïc caáp phaùt partitions cho tieán trình

Kích thöôùc partition khoâng baèngnhau :

Söû duïng 1 haøng ñôïiCaáp cho tieán trình partition töïdo vôùi kích thöôùc beù nhaát (ñuûlôùn ñeå chöùa tieân trình)Caàn duøng moät CTDL ñeå theodoõi caùc partition töï do

Page 293: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 26

Nhaän xeùt Fixed Partitioning

Söû duïng BN khoâng hieäu quaûinternal fragmentation : kích thöôùc chöông trình khoâng ñuùng baèng kích thöôùcpartition

Möùc ñoä ña chöông cuûa heä thoáng (Soá tieán trình ñöôïc naïp) bò giôùi haïnbôûi soá partitions

3M

8M

P1 (2M)

P2 (4M)

internal frag

internal frag

Page 294: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 27

Dynamic Partitioning

BNC khoâng ñöôïc phaân chiatröôùc

Caùc partition coù kích thöôùc tuøy yù, seõ hình thaønh trong quaù trình naïpcaùc tieán trình vaøo heä thoáng

Moãi tieán trình seõ ñöôïc caáp phaùtñuùng theo kích thöôùc yeâu caàu

khoâng coøn internal fragmentation

P1 (2M)P2 (4M)

Page 295: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

Dynamic Partitioning: tình huoáng

Choïn löïa partition ñeå caáp phaùt cho tieán trình ?Ñoàng thôøi coù nhieàu partition töï do ñuû lôùn ñeå chöùa tieán trìnhDynamic Allocation problem

Tieán trình vaøo sau khoâng laáp ñaày choã troáng tieán trình tröôùc ñeå laïiexternal fragmentation

P1 (2M)P2 (4M)

P3 (8M)

2M

P4 (1.5M)

external fragmentation

Page 296: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 29

Ví duï Dynamic Partitioning

Page 297: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 30

Ví duï Dynamic Partitioning

Page 298: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 31

Giaûi quyeát vaán ñeà Dynamic Allocation

Caùc chieán löôïc thoâng duïng ñeå choïn partition:First-fit: choïn partition töï do ñaàu tieânBest-fit: choïn partition töï do nhoû nhaát ñuû chöùa tieán trìnhWorst-fit: choïn partition töï do lôùn nhaát ñuû chöùa tieán trình

2MP1

8M

P3 (1M)

P21.5M

Worst Fit

First Fit

Best Fit

Page 299: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 32

Memory Compaction (Garbage Collection)

Giaûi quyeát vaán ñeà External Fragmentation :Doàn caùc vuøng bò phaân maûnh laïi vôùi nhau ñeå taïo thaønh partition lieân tuïc ñuû lôùnñeå söû duïngChi phí thöïc hieän cao

2M

P1

1M

External fragmentations

P21.5M

Page 300: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 33

Caùc moâ hình chuyeån ñoåi ñòa chæ

Fixed/Dynamic partition laø moâ hình toå chöùc naïp tieán trìnhvaøo KGVLCaàn coù moâ hình ñeå chuyeån ñoåi ñòa chæ töø KGÑC vaøo KGVL

Linker LoaderBase & Bound

Page 301: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 34

Moâ hình Linker-Loader

Taïi thôøi ñieåm Link, giöõ laïi caùc ñòa chæ logicVò trí base cuûa tieán trình trong boä nhôù xaùc ñònh ñöôïc vaøo thôøiñieåm naïp :

ñòa chæ physic = ñòa chæ logic + base

0x0000

test.exe0x4000

0x3000

test.exe

jump 0x2000 jump 0x5000

0x7000

OS

(base)

Page 302: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 35

Nhaän xeùt moâ hình Linker-Loader

Khoâng caàn söï hoã trôï phaàn cöùng ñeå chuyeån ñoåi ñòa chæLoader thöïc hieän

Baûo veä ?Khoâng hoã trôï

Dôøi chuyeån sau khi naïp ?Khoâng hoã trôï taùi ñònh vòPhaûi naïp laïi !

Page 303: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 36

Moâ hình Base & Bound

0x0000

Test.exe0x4000

Base0x3000

OS

Test.exe

jump 0x2000 jump 0x2000

Bound0x7000

Taïi thôøi ñieåm Link, giöõ laïi caùc ñòa chæ logicVò trí base , bound ñöôïc ghi nhaän vaøo 2 thanh ghi:Keát buoäc ñòa chæ vaøo thôøi ñieåm thi haønh => taùi ñònh vò ñöôïc :

ñòa chæ physic = ñòa chæ logic + base registerBaûo veä : ñòa chæ hôïp leä ⊆ [base, bound]

Page 304: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 37

Nhaän xeùt moâ hình Base & Bound

Hoã trôïBaûo veäTaùi ñònh vò

MMU+ base reg

logical addrsmemory

physical addrs

CPU

Keát buoäc ñòa chæ taïi thôøi ñieåm thi haønh => caàn hoã trôï cuûa phaàn cöùng

Page 305: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 38

Khuyeát ñieåm cuûa caáp phaùt lieân tuïc

Khoâng coù vuøng nhôù lieân tuïc ñuû lôùn ñeå naïp tieán trình ?Boù tay ...Söû duïng BNC khoâng hieäu qua”!

1MP1

8M

P3 (9M)

P21M

Page 306: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 39

Caùc moâ hình toå chöùc boä nhôù

Caáp phaùt Lieân tuïc (Contigous Allocation)Linker – LoaderBase & Bound

Caáp phaùt Khoâng lieân tuïc (Non Contigous Allocation)SegmentationPaging

Page 307: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 40

Caùc moâ hình caáp phaùt khoâng lieân tuïc

Cho pheùp naïp tieán trình vaøo BNC ôû nhieàu vuøng nhôù khoânglieân tuïcKhoâng gian ñòa chæ : phaân chia thaønh nhieàu partition

Segmentation Paging

Khoâng gian vaät lyù : coù theå toå chöùcFixed partition : PagingVariable partition : Segmentation

Page 308: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 41

Segmentation

Laäp trình vieân : chöông trình laø moät taäp caùc segmentsMoät segment laø moät ñôn vò chöông trình goàm caùc ñoái töôïng coù cuøng nhoùm ngöõnghóaVí duï : main program, procedure, function, local variables, global variables,common block,stack, symbol table, arrays...Caùc segment coù theå coù kích thöôùc khaùc nhau

Moâ hình Segmentation :KGÑC : phaân chia thaønh caùc segmentKGVL : toå chöùc thaønh dynamic partitionsNaïp tieán trình :

Moãi segment caàn ñöôïc naïp vaøo moät partition lieân tuïc, töï do, ñuû lôùn chosegment

partition naøo ? ...Dynamic Allocation !Caùc segment cuûa cuøng 1 chöông trình coù theå ñöôïc naïp vaøo nhöõng partition khoâng lieân tuïc

Page 309: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 42

Moâ hình Segmentation

KGVL

int m;

main ()

{

F1(m);

}

F1(int x)

{ x = 9;

}code

(main,F1)

data(m)

stack

heap

KGDCQuaûn lyù ñòa chæ ?

Page 310: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 43

Toå chöùc Segmentation

Ñiaï chæ logic : <segment-number, offset>Ñòa chæ physic : <real address>Chuyeån ñoåi ñòa chæ : <s,d> <r>Chuyeån ñoåi ñòa chæ vaøo thôøi ñieåm thi haønh

MMU thi haønhSöû duïng Segment Table (baûng phaân ñoaïn) ñeå löu thoâng tin caáp phaùt BNC, laøm côsôû thöïc hieän aùnh xaï ñòa chæMoãi tieán trình coù moät Segment Table

Sâegment Table:Soá phaàn töû cuûa Segment Table = Soá Segment cuûa chöông trìnhMoãi phaàn töû cuûa Segment Table moâ taû cho 1 segment, vaø coù caáu truùc :

base: ñòa chæ vaät lyù trong BNC cuûa partition chöùa segmentlimit : kích thöôùc segment

Löu tröõ Segment Table ?Cache : neáu ñuû nhoûBNC : Segment-table base register (STBR), Segment-table length register (STLR)

Page 311: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 44

Chuyeån ñoåi ñòa chæ trong moâ hình Segmentation

Logical Addr

Seg# offset

3 128

Seg tablebase limit

3 0x1000 512

mem

seg128

+ 0x1000? yesno

fault

012

Page 312: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 45

Logical-to-Physical Address Translation in segmentation

Page 313: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 46

Nhaän xeùt Moâ hình Segmentation

Caáp phaùt khoâng lieân tuïc => taän duïng boä nhôù hieäu quaûHoã trôï taùi ñònh vò

Töøng SegmentHoã trôï Baûo veä vaø Chia seû ñöôïc ôû möùc module

YÙ nghóa cuûa “möùc module” ?Chuyeån ñoåi ñòa chæ phöùc taïp☺ Ñaõ coù MMU...

Söû duïng dynamic partition : chòu ñöïngDynamic Allocation : choïn vuøng nhôù ñeå caáp cho moät segment☺ First fit, Best fit, Worst fit

External Fragmentation :Memory Compaction : chi phí cao

Page 314: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 47

Sharing ofSegments:

Text Editor

Page 315: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 48

Paging

Hoã trôï HÑH khaéc phuïc baøi toaùn caáp phaùt boä nhôù ñoäng, vaø loaïi boûexternal fragmentationMoâ hình Paging :

KGÑC : phaân chia chöông trình thaønh caùc page coù kích thöôùc baèng nhauKhoâng quan taâm ñeán ngöõ nghóa cuûa caùc ñoái töôïng naèm trong page

KGVL : toå chöùc thaønh caùc fixed partitions coù kích thöôùc baèng nhau goïi laø framepage size = frame sizeNaïp tieán trình :

Moãi page caàn ñöôïc naïp vaøo moät frame töï doCaùc pages cuûa cuøng 1 chöông trình coù theå ñöôïc naïp vaøo nhöõng frames khoâng keá caän nhau.Tieán trình kích thöôùc N pages -> caàn N frame töï do ñeå naïp

Page 316: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 49

Moâ hình Paging

KGVL

int m;

main ()

{

F1(m);

}

F1(int x)

{ x = 9;

}

KGDC

Quaûn lyù ñòa chæ ?

int m;

main ()

F1(int x)

stack

heap

Page 317: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 50

Toå chöùc Paging

Ñiaï chæ logic : <page-number, offset>Ñòa chæ physic : <frame-number, offset>Chuyeån ñoåi ñòa chæ : <p,d> <f,d>Chuyeån ñoåi ñòa chæ vaøo thôøi ñieåm thi haønh

MMU thi haønhSöû duïng Page Table ñeå löu thoâng tin caáp phaùt BNC, laøm cô sôû thöïc hieän aùnh xaï ñòachæMoãi tieán trình coù moät Page Table

Page Table Soá phaàn töû cuûa Page Table = Soá Page trong KGÑC cuûa chöông trìnhMoãi phaàn töû cuûa baûng Page Table moâ taû cho 1 page, vaø coù caáu truùc :

frame: soá hieäu frame trong BNC chöùa pageLöu tröõ Page Table ?

Cache : khoâng ñuûBNC : Page-table base register (PTBR), Page-table length register (PTLR)

Page 318: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 51

Chuyeån ñoåi ñòa chæ trong moâ hình Paging

CPU

KGVL

Physical addr

Logical addr

p d f d

f

Page table

Page 319: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 52

Logical-to-Physical Address Translation in Paging

Page 320: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 53

Nhaän xeùt Moâ hình Paging

Loaïi boûDynamic AllocationExternal Fragmentation

“Trong suoát” vôùi LTVHoã trôï Baûo veä vaø Chia seû ôû möùc pageInternal Fragmentation

Löu tröõ Page Table trong boä nhôùToán choãTaêng thôøi gian chuyeån ñoåi ñòa chæ

Page 321: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 54

Löu tröõ Page Table

Giaû söû heä thoáng söû duïng m bit ñòa chæSize of KGÑC = 2m

Kích thöôùc pageTreân nguyeân taéc tuøy yù, thöïc teá choïn pagesize = 2n

Taïi sao ?

Soá trang trong KGÑC: #pages = 2m / 2n = 2m-n

Ví duï : 32-bits ñòa chæ, pagesize = 4KKGÑC = 232 -> #pages= 232-212 = 220 = 1.000.000 pages !#pages = #entry trong PT

Ñiaï chæ logic : Page Table

Moãi tieán trình löu 1 Page Table Soá löôïng phaàn töû quaù lôùn -> Löu BNCMoãi truy xuaát ñòa chæ seõ toán 2 laàn truy xuaát BNC

p d(m-n) n

Page 322: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 55

Löu tröõ Page Table : Tieát kieäm khoâng gian

Söû duïng baûng trang ña caápChia baûng trang thaønh caùc phaàn nhoû, baûn thaân baûng trang cuõng seõ ñöôïc phaân trangChæ löu thöôøng tröïc baûng trang caáp 1, sau ñoù khi caàn seõ naïp baûng trang caáp nhoû hôn thích hôïp...Coù theå loaïi boû nhöõng baûng trang chöùa thoâng tin veà mieàn ñòa chæ khoâng söû duïng

Söû duïng Baûng trang nghòch ñaûoMoâ taû KGVL thay vì moâ taû KGÑC -> 1 IPT cho toaøn boä heä thoáng

Page 323: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 56

Baûng trang ña caáp

Baûng trang tuyeán tínhSöû duïng page-number laøm chæmuïc ñeán Page TablePhaûi löu taát caû caùc phaàn töûmoâ taû taát caû caùc trang trong KGÑC

Nhöõng page khoâng söû duïng : laõng phíNaïp toaøn boä PT vaøo BNC : toán choã

p d 0123...p...789101112131415

f

516

2

9

Page 324: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

Baûng trang ña caáp0123456789101112131415

0123

4567

891011

12131415

0123

13

0123456789101112

12131415

Page Table caáp 1

Page Table caáp 2

Page Table caáp 2

Page Table caáp 2

Page Table caáp 2

Page 325: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 58

Moâ hình baûng trang 2 caáp

Page 326: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 59

Ví duï moâ hình baûng trang 2 caáp

Moät maùy tính söû duïng ñòa chæ 32bít vôùi kích thöôùc trang 4Kb.Ñòa chæ logic ñöôïc chia thaønh 2 phaàn:

Soá hieäu trang : 20 bits.Offset tính töø ñaàu moãi trang :12 bits.

Vì baûng trang laïi ñöôïc phaân trang neân soá hieäu trang laïi ñöôïcchia laøm 2 phaàn:

Soá hieäu trang caáp 1. Soá hieäu trang caáp 2.

Page 327: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 60

Ví duï moâ hình baûng trang 2 caáp

Vì theá, ñòa chæ logic seõ coù daïng nhö sau:page number page offset

pi p2 d10 10 12

Page 328: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

Baûng trang ña caáp 0123

0123

0123

0123

0123

13

0123456789101112

14151617

Page Table caáp 1

Page Table caáp 2

Page Table caáp 2

Page Table caáp 2

Page Table caáp 2

1 2 100

Page 329: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 62

Baûng trang nghòch ñaûo (Inverted Page Table)

Söû duïng duy nhaát moät baûng trang nghòch ñaûo cho taát caû caùc tieán trình Moãi phaàn töû trong baûng trang nghòch ñaûo moâ taû moät frame, coù caáu truùc

<page> : soá hieäu page maø frame ñang chöùa ñöïng<idp> : id cuûa tieán trình ñang ñöôïc sôõ höõu trang

Moãi ñòa chæ aûo khi ñoù laø moät boä ba <idp, p, d >Khi moät tham khaûo ñeán boä nhôù ñöôïc phaùt sinh, moät phaàn ñòa chæ aûo laø <idp, p > ñöôïc ñöa ñeán cho trình quaûn lyù boä nhôù ñeå tìm phaàn töûtöông öùng trong baûng trang nghòch ñaûo, neáu tìm thaáy, ñòa chæ vaät lyù<i,d> seõ ñöôïc phaùt sinh

Page 330: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 63

Kieán truùc baûng trang nghòch ñaûo

Page 331: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 64

Löu tröõ Page table : Tieát kieäm thôøi gian

Moãi truy caäp BNC caàn truy xuaát BNC 2 laàn :Tra cöùu Page Table ñeå chuyeån ñoåi ñòa chæTra cöu baûn thaân data

Laøm gì ñeå caûi thieän :Tìm caùch löu PT trong cache

Cho pheùp tìm kieám nhanhPT lôùn, cache nhoû : laøm sao löu ñuû ?

Löu 1 phaàn PT...Phaàn naøo ?

Caùc soá hieäu trang môùi truy caäp gaàn ñaây nhaát...

Page 332: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 65

Translation Lookaside Buffer (TLB)

Vuøng nhôù Cache trong CPU ñöôïc söû duïng ñeå löu taïm thôøimoät phaàn cuûa PT ñöôïc goïi laø Translation Lookaside Buffer (TLB)

Cho pheùp tìm kieám toác ñoä caoKích thöôùc giôùi haïn (thöôøng khoâng quaù 64 phaàn töû)

Moãi entry trong TLB chöùa moät soá hieäu page vaø frame töôngöùng ñang chöùa pageKhi chuyeån ñoåi ñòa chæ, truy xuaát TLB tröôùc, neáu khoâng tìmthaáy soá hieäu page caàn thieát, môùi truy xuaát vaøo PT ñeå laáythoâng tin frame.

Page 333: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 66

Translation Lookaside Buffer

Page 334: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 67

Chuyeån ñoåi ñòa chæ vôùi Paging

CPU p d

f d

f

d

TLB

Memory

virtual address

physical address

p f

f

PTf

Page 335: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 68

Söû duïng TBL

Page 336: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 69

Baûo veä vaø chia seû trong Segmentation vaø Paging

Baûo veäSegmentation : moãi phaàn töû trong ST ñöôïc gaén theâm caùc bit baûoveä

Moãi segment coù theå ñöôïc baûo veä tuøy theo ngöõ nghóa cuûa caùc ñoái töôïngbeân trong segment

Paging : moãi phaàn töû trong PT ñöôïc gaén theâm caùc bit baûo veäMoãi page khoâng nhaän thöùc ñöôïc ngöõ nghóa cuûa caùc ñoái töôïng beân trongpage, neân baûo veä chæ aùp duïng cho toaøn boä trang, khoâng phaân bieät.

Chia seû: Cho nhieàu phaàn töï trong KGÑC cuøng troû ñeán 1 vòtrí trong KGVL

Segmentation : chia seû möùc module chöông trìnhPaging : chia seû caùc trang

Page 337: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

Sharing Pages: A Text Editor

Page 338: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

Sharing Pages: A Text Editor

ed 3 + data 1

ed 3 + data 3

ed 3 + data 2

Chia seû Page 2 = Chia seû caû code vaø data !

Page 339: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

4/6/2008 Trần Hạnh Nhi 72

Ñaùnh giaù caùc moâ hình chuyeån ñoåi ñòa chæ

Giaû söû coù: tm : thôøi gian truy xuaát BNC

tc : thôøi gian truy xuaát cachehit-ration : tæ leä tìm thaáy moät soá hieäu trang p trong TLB

Coâng thöùc tính thôøi gian truy caäp thöïc teá (Time Effective Acess) ñeán moät ñoái töôïng trong BNC

bao goàm thôøi gian chuyeån ñoåi ñòa chæ vaø thôøi gian truy xuaát döõ lieäuTEA = (time biding add + time acces memory)

Page 340: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

Linker-LoaderTEA = tm

(data)

Base + BoundTEA = (tc + tc) + tm

(Base & Bound) (data)

SegmentationTEA = tc + tm

(ST trong cache) (data)

PagingKhoâng söû duïng TLB :

TEA = tm + tm(PT trong mem) (data)

Coù söû duïng TLB : TEA = hit-ratio ( tc + tm ) + (1- hit-ratio)( tc + tm + tm )

(TLB) (data) (TLB) (PT) (data)

Page 341: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 1

Baøi giaûng 7 : Boä nhôù AÛo

VaÁn ñeà vôùi Real MemoryYÙ töôûng Virtual MemoryThöïc hieän Virtual MemoryCaùc chieán löôïc cuûa Virtual Memory

Chieán löôïc naïpChieán löôïc thay theá trangChieán löôïc caáp phaùt khung trang

Hieän töôïng thrashing Nguyeân nhaânGiaûi phaùp

Page 342: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 2

Caùc caáp boä nhôù

RegistersCache

Memory

Cho ñeán nay : Naïp toaøn boä tieán trình vaøo boä nhôù roài thöïchieän noù...

Neáu kích thöôùc tieán trình lôùn hôn dung löông boä nhôù chính ?

Page 343: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 3

Giaûi phaùp

Taïi moät thôøi ñieåm chæ coù 1 chæ thò ñöôïc thi haønhTaïi sao phaûi naïp taát caû tieán trình vaøo BNC cuøng 1 luùc ?

YÙ töôûngCho pheùp naïp vaø thi haønh töøng phaàn tieán trình

Ai ñieàu khieån vieäc thay ñoåi caùc phaàn ñöôïc naïp vaø thi haønh ?Taïi moät thôøi ñieåm chæ giöõ trong BNC caùc chæ thò vaø döõ lieäu caàn thieáttaïi thôøi ñieåm ñoù

Caùc phaàn khaùc cuûa tieán trình naèm ôû ñaâu ?

Giaûi phaùp Boä nhôù aûo (virtual memory)

Page 344: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 4

RegistersCache

MemoryVirtual Memory

Virtual Memory

Neáu coù moät Virtual Memory vôùi dung löôïng raát raát lôùn cho LTV laøm vieäc...Hoan hoâ !

Page 345: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 5

YÙ töôûngTaùch bieät KGÑC vaø KGVL

LTV : moãi tieán trình laøm vieäc vôùi KGÑC 2m cuûa mình (ñòa chæ töø 0 – (2m -1))HÑH : chòu traùch nhieäm naïp caùc KGÑC vaøo moät KGVL chung

Giaûi phaùp cuûa HÑH : Naïp töøng phaàn tieán trìnhPhaân chia KGÑC thaønh caùc phaàn ?

Paging/SegmentationMôû roäng BNC ñeå löu tröõ caùc phaàn cuûa tieán trình chöa ñöôïc naïp

Duøng BNP(disk) ñeå môû roäng BNCNhaän bieát phaàn naøo cuûa KGÑC chöa ñöôïc naïp ?

Boå sung bit côø hieäu ñeå nhaän daïng tình traïng cuûa moät page/segment laø ñaõñöôïc naïp vaøo BNC hay chöa

Cô cheá chuyeån ñoåi qua laïi caùc phaàn cuûa tieán trình giöõa BNC vaøBNP

Swapping...

Page 346: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 6Caáu truùc moät phaàn töû trong Page Tables

Virtual Memory vôùi cô cheá phaân trang (Paging)

Phaân chia KGÑC thaønh caùc pageDuøng BNP(disk) ñeå môû roäng BNC, löu tröõ caùc phaàn cuûatieán trình chöa ñöôïc naïpBoå sung bit côø hieäu trong Page Table ñeå nhaän daïng tìnhtraïng moät page ñaõ ñöôïc naïp vaøo BNC hay chöa .

Page 347: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 7

Löu tröõ KGÑC ôû ñaâu ?

Söû duïng boä nhôù phuï ñeå löu tröõ taïm thôøi caùc trang chöa söû duïng

P

RAM

DISK

Page 348: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 8

Virtual Memory

1virtual address space

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

7 1 5 4 13 2 18physical memory

3

3

Page 349: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 9

0 0 1 00 0 1 0

Memory Lookup

0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0

12-bit offset

Outgoing physical address

4-bit indexinto page tablevirtual page = 0x0010 = 2

Incoming virtual address(0x2004, 8196)

0 010 11 001 12 110 13 000 14 100 15 011 16 000 07 000 08 000 09 101 1

10 000 011 111 112 000 013 000 014 000 015 000 0Page table

0 0 1 0

present bit

0 0 0 0 0 0 0 0 0 1 0 0

(0x6004, 24580)

1 1 0

0 0 0 0 0 0 0 0 0 1 0 0

Page 350: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 10

0 0 1 00 0 1 0

Memory Lookup

0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0

12-bit offset

Outgoing physical address

4-bit indexinto page tablevirtual page = 0x0010 = 2

Incoming virtual address(0x2004, 8196)

0 010 11 001 12 110 03 000 14 100 15 011 16 000 07 000 08 000 09 101 1

10 000 011 111 112 000 013 000 014 000 015 000 0Page table

0 0 1 0

present bit

0 0 0 0 0 0 0 0 0 1 0 0

PAGE FAULT

Page 351: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 11

Demand Paging

KGVL

i

int i,j;

main ()

{

i = 5;

j = 2;

}

emacs

codeKGDC

i

j

i=5

j=2 gcc

j

Khi naïp moät tieán trình môùi, chæ naïp vaøoBNC page chöùa entry codeKhi truy xuaát ñeán moät chæ thò hay döõ lieäu, page töông öùng môùi ñöôïc naïp vaøo BNC

Page 352: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 12

Swapping

Page 353: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 13

Demand Paging + Swapping

KGVL

i

int i,j;

main ()

{

i = 5;

j = 2;

}

emacs

codeKGDC

i

j

i=5

j=2 gcc

j

Page 354: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 14

Boä nhôù aûo = “True lie“

Ngöôøi duøng : sôû höõu boä nhôù “voâ haïn”, “rieâng bieät”Heä ñieàu haønh : “thaàm laëng” thöïc hieän quaù trình swapping

RAMDISK

# of references

Memory address

10% RAM+

90% DISK

Page 355: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 15

Thöïc hieän Boä nhôù aûo

Baûng trang : theâm 1 bit valid/invalid ñeå nhaän dieän trangñaõ hay chöa ñöôïc naïp vaøo RAM

Truy xuaát ñeán moät trang chöa ñöôïc naïp vaøo boä nhôù :loãi trang (page fault)

17 14183 0177 15721 0

Disk

Mem

Frame valid/invalid

Page 356: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

Page Tables

Page 357: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 17

Xöû lyù loãi trang

Boä nhôù vaät lyù

M

Boä nhôù aûo

naïp M

OS

Page Table

truy xuaát1

2loãi trang

3 xaùc ñònh vò trí löu trang treân ñóa

3’swap out

trang naïn nhaân

4 mang trangcaàn truy xuaát

vaøo boä nhôù

5caäp nhaät

baûng trang

6

taùi kích hoaïttieán trình

frame troáng

i

Page 358: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 18

Caùc böôùc xöû lyù loãi trang

1. Kieåm tra truy xuaát ñeán boä nhôù laø hôïp leä hay baát hôïp leä2. Neáu truy xuaát baát hôïp leä : keát thuùc tieán trình

Ngöôïc laïi : ñeán böôùc 33. Tìm vò trí chöùa trang muoán truy xuaát treân ñóa.4. Tìm moät khung trang troáng trong boä nhôù chính :

a. Neáu tìm thaáy : ñeán böôùc 5b. Neáu khoâng coøn khung trang troáng, choïn moät khung trang naïn nhaân ñeå swap

out, caäp nhaät baûng trang töông öùng roài ñeán böôùc 55. Chuyeån trang muoán truy xuaát töø boä nhôù phuï vaøo boä nhôù chính : naïp

trang caàn truy xuaát vaøo khung trang troáng ñaõ choïn (hay vöøa môùi laøm troáng ) ; caäp nhaät noäi dung baûng trang, baûng khung trang töông öùng.

6. Taùi kích hoaït tieán trình ngöôøi söû duïng.

Page 359: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 19

Caùc caâu hoûi

1. Choïn trang naøo ñeå naïp ? => Chieán löôïc naïp

Demand Paging / Prepageing

2. Choïn trang naïn nhaân ? => Chieán löôïc thay theá trang

FIFO / OPTIMAL/LRU

3. Caáp phaùt khung trang => Chieán löôïc caáp phaùt khung trang

Coâng baèng/ Tyû leä...

Page 360: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 20

Chieán löôïc naïp

Quyeát ñònh thôøi ñieåm naïp moät/nhieàu page vaøo BNCNaïp tröôùc : laøm sao bieát ? =>prepagingNaïp sau : taàn suaát loãi trang cao ? => pure demand paging

Prepaging : Naïp saün moät soá trang caàn thieát vaøo BNC tröôùc khi truy xuaát chuùng

Demand paging : Chæ naïp trang khi ñöôïc yeâu caàu truy xuaát ñeán trang ñoù

ld init pages ld page ld page ld page ...

init pages = ?

Page 361: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 21

Chieán löôïc thay theá trang (Page Replacement)Muïc tieâu :

thay theá trang sao cho taàn suaát xaûy ra loãi trang thaáp nhaátÑaùnh giaù

Söû duïng soá frame cuï theåGiaû söû coù moät chuoãi truy xuaát cuï theå

adresse : 0100, 0432, 0101, 0612, 0102, 0103, 0104, 0611# page : 1, 4, 1, 6, 1, 1, 1, 6,

Thöïc hieän moät thuaät toaùn thay theá trang treân chuoãi truy xuaát naøyÑeám soá loãi trang phaùt sinh

Chuoãi truy xuaát7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 13 frames

Page 362: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 22

Chieán löôït thay theá trang

FIFOOptimalLRU (Least Recently Used)

Page 363: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 23

Chieán löôïc thay theá trang FIFO

Nguyeân taéc : Naïn nhaân laø trang “giaø” nhaátÑöôïc naïp vaøo laâu nhaát trong heä thoáng

Thöïc hieänLöu thôøi ñieåm naïp, so saùnh ñeå tìm min

Chi phí caoToå chöùc FIFO caùc trang theo thöù töï naïp

Trang ñaàu danh saùc laø naïn nhaânNhaän xeùt

Ñôn giaûnCoâng baèng ?Khoâng xeùt ñeán tính söû duïng !

Trang ñöôïc naïp vaøo laâu nhaát coù theå laø trangcaàn söû duïng thöôøng xuyeân !

addvictim

Page 364: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 24

Ví duï : FIFO

7 0 1 00 32 4 2 0 3 2 1 2 0 ...

7 7 7 22 27 2 4 4 0 0 0 0 0

0 0 30 00 3 3 2 2 2 2 1 1

1 11 11 0 0 3 3 3 3 3 2

* * * *** * * * * *

2

3

0

4

2

3

4

0

*

2

3

0

1

2

Page 365: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 25

FIFO vaø hieäu öùng Belady

Söû duïng caøng nhieàu frame...caøng coù nhieàu loãi trang !

Page 366: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 26

Chieán löôïc thay theá trang : Optimal

AGBDCABCABCGABC

victim

Cur page

Nguyeân taéc : Naïn nhaân laø trang laâu söûduïng ñeán nhaát trong töông lai

Laøm sao bieát ?Nhaän xeùt

Baûo ñaûm taàn suaát loãi trang thaáp nhaátKhoâng khaû thi !

Page 367: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 27

Ví duï : Optimal

7 0 1 00 32 4 2 0 3 2 1 2 0 ...

7 7 7 22 27

0

2

4

2 2 2 2 0

0 0 00

1

0

2

4

2

0 0

3

0 1

1 31

0

1 3 3 3 3 3

0

1 2

* * * ** * * *

2

3

4

3

2

3

4 0

1

Page 368: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 28

Chieán löôïc thay theá trang : LRU

AGBDCABCABCGABC

victim

Cur page

Nguyeân taéc : Naïn nhaân laø trang laâu nhaátchöa söû duïng ñeán trong quaù khöù

Nhìn lui : ñuû thoâng tinNhaän xeùt

Xaáp xæ Optimal Thöïc hieän ?

Page 369: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 29

Ví duï : LRU

7 0 1 00 32 4 2 0 3 2 1 2 0 ...

7 7 7 22 27 2 4

2

0 0 0 1 1

0 0 00

1

0

3

0

4

3 3

2

3 3

1 31

0

1

0

3

3

2 2

3

2 2

* * * ** * * *

2

3

4

3

4

2

0

0 1

3

* *

0

*

2

Page 370: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 30

Thöïc hieän LRU

Söû duïng boä ñeám:Theâm tröôøng reference time cho moãi phaàn töû trong baûng trang Theâm vaøo caáu truùc cuûa CPU moät boä ñeám counter. moãi laàn coù söï truy xuaát ñeán moät trang trong boä nhôù

giaù trò cuûa counter taêng leân 1.giaù trò cuûa counter ñöôïc ghi nhaän vaøo reference time cuûa trang töông öùng.

thay theá trang coù reference time laø min .

Söû duïng stack:toå chöùc moät stack löu tröõ caùc soá hieäu trangmoãi khi thöïc hieän moät truy xuaát ñeán moät trang, soá hieäu cuûa trang seõ ñöôïc xoùa khoûi vò trí hieän haønh trong stack vaø ñöa leân ñaàu stack. trang ôû ñænh stack laø trang ñöôïc truy xuaát gaàn nhaát, vaø trang ôû ñaùy stack laøtrang laâu nhaát chöa ñöôïc söû duïng..

Page 371: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 31

Thöïc hieän LRU vôùi stack

Page 372: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 32

Thöïc hieän LRU : thöïc teá

Heä thoáng ñöôïc hoã trôï phaàn cöùng hoaøn chænh ñeå caøi ñaët LRU ?Ñöøng coù mô !

Heä thoáng chæ ñöôïc trang bò theâm moät bit reference :gaén vôùi moät phaàn töû trong baûng trang.ñöôïc khôûi gaùn laø 0ñöôïc phaàn cöùng ñaët giaù trò 1 moãi laàn trang töông öùng ñöôïc truy caäpñöôïc phaàn cöùng gaùn trôû veà 0 sau töøng chu kyø qui ñònh tröôùc.

Bit reference chæ giuùp xaùc ñònh nhöõng trang coù truy caäp, khoâng xaùc ñònh thöù töïtruy caäp

Khoâng caøi ñaët ñöôïc LRUXaáp xæ LRU...

frame protectmodifyreference

Page 373: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 33

4-53

bit referencecaùc bits history

thôøi gian

00000

01010

10110

01010

11000

Xaáp xæ LRU : Söû duïng caùc bits History

söû duïng theâm N bit history phuï trôïSau töøng chu kyø, bit reference seõ ñöôïc cheùp laïi vaøo moät bit history tröôùc khi bi reset

N bit history seõ löu tröõ tình hình truy xuaát ñeán trang trong N chu kyø cuoái cuøng.

Page 374: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

Thôøi gian

00000

01010

01010

Page 375: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

Thôøi gian

00000

01010

10110

01010

10110

Page 376: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

Thôøi gian

00000

01010

10110

01010

01010

10110

01010

Page 377: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

Thôøi gian

00000

01010

10110

01010

11000

01010

10110

01010

11000

Page 378: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 38

Xaáp xæ LRU : Cô hoäi thöù 2 (Clock algorithme)

Söû duïng moät bit reference duy nhaát. Choïn ñöôïc trang naïn nhaân theo FIFO Kieåm tra bit reference cuûa trang ñoù :

Neáu reference = 0, ñuùng laø naïn nhaân roài ☺Neáu reference = 1, cho trang naøy moät cô hoäi thöù hai

reference = 0thôøi ñieåm vaøo Ready List ñöôïc caäp nhaät laïi laø thôøi ñieåm hieän taïi.

Choïn trang FIFO tieáp theo...Nhaän xeùt :

Moät trang ñaõ ñöôïc cho cô hoäi thöù hai seõ khoâng bò thay theá tröôùc khi heä thoáng ñaõ thay theá heát nhöõng trang khaùc. Neáu trang thöôøng xuyeân ñöôïc söû duïng, bit reference cuûa noù seõ duy trì ñöôïc giaù trò 1, vaø trang haàu nhö khoâng bao giôø bò thay theá.

Page 379: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 39

4-55

page#0

page#0

page#1

page#1

page#0

page#1

page#1

Trang FIFO

Naïn nhaân

1

1

0

1

0

0

0

0

Trang FIFO

Xaáp xæ LRU : Cô hoäi thöùc 2 (Clock algorithme)

1

Page 380: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 40

Xaáp xæ LRU : NRU

Söû duïng 2 bit Reference vaø Modify Vôùi hai bit naøy, coù theå coù 4 toå hôïp taïo thaønh 4 lôùp sau :

(0,0) khoâng truy xuaát, khoâng söûa ñoåi(0,1) khoâng truy xuaát gaàn ñaây, nhöng ñaõ bò söûa ñoåi(1,0) ñöôïc truy xuaát gaàn ñaây, nhöng khoâng bò söûa ñoåi(1,1) ñöôïc truy xuaát gaàn ñaây, vaø bò söûa ñoåi

Choïn trang naïn nhaân laø trang coù ñoäöu tieân cao nhaát khi keát hôïp bit R vaø bit M

111

012

103

004

MRPriority

Page 381: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 41

Chieán löôïc caáp phaùt frame

Soá frame caàn caáp phaùt cho moãi tieán trình ?Giaûi söû coù m frame vaø n processCaáp phaùt coâng baèng: #frame(Pi) = m/n

Coâng baèng ???Caáp phaùt theo tyû leä: #frame(pi) = (si / (Σ si ))* m

si = kích thöôùc cuûa boä nhôù aûo cho tieán trình piLoãi trang xaûy ra tieáp theo, caáp phaùt theâm frame cho tieán trình nhö theá naøo ?

Tuøy thuoäc chieán löôïc thay theá trangCuïc boä : chæ choïn trang naïn nhaân trong taäp caùc trang cuûa tieán trình phaùt sinh loãi trang -> soá frame khoâng taêngToaøn cuïc: ñöôïc choïn baát kyø trang naïn nhaân naøo (duø cuûa tieán trình khaùc) -> soá frame coù theå taêng, loãi trang lan truyeàn

Page 382: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 42

Thay theá trang toaøn cuïc vaø...keát cuïc bi thaûm !

Taát caû caùc tieán trình baän roän thay theá trang !

Running CPU IO

P1P2P1P3

P1, errorP1

P1, swap outP2, error P2, swap out

P3, error

Page 383: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 43

Thrashing

Taát caû tieán trình ñaàu baän roän xöû lyù loãi trang !IO hoaït ñoäng 100 %, CPU raûnh ! Heä thoáng ngöøng treä

Real mem

P1 P2 P3

Virtual Memory = Tha hoà xaøi boä nhôùThrashing = aûo töôûng suïp ñoå !Caùc tieán trình trong heä thoáng yeâu caàu boä nhôù nhieàu hôn khaûnaêng cung caáp cuûa heä thoáng !

Page 384: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 44

Thrashing Diagram

Why does paging work?Locality model

Process migrates from one locality (working set) to anotherWhy does thrashing occur?Σ size of working sets > total memory size

Page 385: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 45

Nguyeân nhaân Thrashing

Chæ coù theå kieåm soaùt thrashing do nguyeân nhaân 3.

1. Tieán trình khoâng taùi söû duïng boä nhôù (quaù khöù != töông lai)

2. Tieán trình taùi söû duïng boä nhôù, nhöng vôùi kích thöôc lôùn hôn

3. Quaù nhieàu tieán trình trong heä thoáng

Page 386: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 46

Working set (1968, Denning)

Working set:Working set = taäp hôïp caùc trang tieán trình ñang truy xuaát taïi 1 thôøi ñieåm

Caùc pages ñöôïc truy xuaát trong Δ laàn cuoái cuøng seõ naèm trong working set cuûa tieán trìnhΔ : working set parameterKích thöôùc cuûa WS thay ñoåi theo thôøi gian tuøy vaoø locality cuûa tieán trình

Page 387: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 47

Working-Set Model

Δ ≡ working-set window ≡ soá laàn truy caäpVD: 10,000 instruction2 6 1 5 7 7 7 7 5 1 6 2 3 4 1 2 3 4 4 4 3 4 3 4 4 4 1 3 2 3 Δ=10WS(t1) = {1,2,5,6,7}, WS(t2) = {3,4}

WSSi (working set of Process Pi) =toång soá trang ñöôïc truy caäp trong Δ laàn gaàn ñaây nhaátD = Σ WSSi ≡ Toång caùc frame caàn cho N tieán trình trongheä thoángif D > m ⇒ Thrashing

if D > m, choïn moä/moät soá tieán trình ñeå ñình chæ taïm thôøi.

Page 388: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 48

Giaûi quyeát thrasing vôùi moâ hình Working set

Söû duïng Working setCache partitioning: Caáp cho moãi tieán trình soá frame ñuûchöùa WS cuûa noùPage replacement: öu tieân swap out caùc non-WS pages. Scheduling: chæ thi haønh tieán trình khi ñuû choã ñeå naïp WS cuûa noù

Page 389: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 1

BAØI GIẢNG 8 : LIEÂN LAÏC GIÖÕA CAÙC TIEÁN TRÌNH

CÔ CHECÔ CHEÁÁ ??VAVAÁÁN N ÑÑEEÀÀ ??TRAO TRAO ÑÑOOÅÅI THOÂNG TIN GII THOÂNG TIN GIÖÖÕA CAÕA CAÙÙC TIEC TIEÁÁN TRÌNHN TRÌNH

GGÆÆAI PHAAI PHAÙÙP ?P ?

Page 390: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 2

Nhu Caàu Lieân Laïc

Q

LP

Chia seû thoâng tin

R

Phoái hôïp xöû lyùP

JOB

R1

R2

LQ

Page 391: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 3

Caùc cô cheá lieân laïc

Chia seû taøi nguyeân chungSignalPipeShared Memory

Trao ñoåi thoâng ñieäpMessageSocket

Page 392: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 4

IPC theo nguyeân taéc chia seû taøi nguyeân chung

User Process User Process

OS - Kernelshared resources

Caùc tieán trình chia seû

Memory

File System Space

Communication Facilities, Common communication protocol

Page 393: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 5

SignalSignal

MeaningHandler

Ñònh nghóa tröôùc khi thöïc hieän lieân laïcSIGINT, SIGSTOP…SIGUSR1, SIGUSER2

Hoã trôï lieân laïcKernel vôùi User Process

Process ErrorTimerChild Process keát thuùc…

User process vôí nhauTerminate ProcessSuspend, Resume…

OS

Process

Signal handler

Signal Action

Signal

Page 394: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

Name Value Function

SIGHUP 1 Terminal hangup

SIGINT 2 Interrupt by user: generated by < CTRL C >

SIGQUIT 3 Quit by user: generated by < CTRL \ >

SIGFPE 8 Floating point error such as divide by zero

SIGKILL 9 Kill the process

SIGUSR1 10 User defined signal 1

SIGSEGV 11 Segment violation: process has tried to access memory not assigned to it

SIGUSR2 12 User defined signal 2

SIGALRM 14 Timer set with alarm() function has timed out

SIGTERM 15 Termination request

SIGCHLD 17 Child process termination signal

SIGCONT 18 Continue after a SIGSTOP or SIGSTP signal

SIGSTOP 19 Stop the process

SIGTSTP 20 Terminal stop: generated by < CTRL Z >

SIGWINCH 28 Change of window size

Page 395: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 7

Nhaän xeùt Signals

Lieân laïc khoâng ñoàng boäKhoâng bieát tröôùc thôøi ñieåmThieáu tin caäy

Khoâng cho pheùp trao ñoåi döõ lieäu

Sig

Result

L

Q

SH

LQ

Quiz : OK

?

A B

Page 396: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 8

Pipes

PipeKernel buffer (File) coù kích thöôùc giôùi haïn (4K, 8K…)HÑH cung caáp haøm WritePipe & ReadPipe

WritePipe khi Pipe ñaày ?ReadPipe khi Pipe roãng ?

Phaûiù xeùt ñeán caùc khaû naêng ñoàng boä

Hoã trôï lieân laïc (UNIX original )Giöõa 2 tieán trình Cha - ConMoät chieàuKhoâng caáu truùc (byte transfer)

WritePipe() ReadPipe()

LQ B……….AAB AB

Page 397: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 9

Nhaän xeùt Pipe

Öu ñieåm :Cho pheùp trao ñoåi döõ lieäu khoâng caáu truùc

Khuyeát ñieåmChi phí thöïc hieän cao (system call)Lieân laïc giöõa 2 tieán trìnhLieân laïc moät chieàu

Pipe trong caùc HÑH hieän ñaïi :Anomynous Pipe : This…Named Pipe : Unix , Windows NT…

Truyeàn döõ lieäu coù caáu truùcLieân laïc 2 chieàu

Page 398: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 10

Shared Memory

Shared Memory:Laø moät phaàn khoâng gian nhôù khoâng thuoäc sôû höõu cuûa tieán trìnhnaøoÑöôïc HÑH taïo raCaùc tieán trình coù theå aùnh xaï ñòa chæ vaøo khoâng gian chia seû naøyñeå truy xuaát döõ lieäu (nhö ñoái vôùi khoâng gian noäi boä)

Khoâng giôùi haïn soá löôïng tieán trình, chieàu trao ñoåi, vaø thöù töïtruy caäp

Maâu thuaãn truy xuaát - > nhu caàu ñoàng boä

Page 399: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 11

IPC theo nguyeân taéc trao ñoåi thoâng ñieäp

User Process

OS-Kernel

User Process

OS-Kernel

Network

Khoâng coù boä nhôù chungCaàn coù ñöôøng keát noái giöõa caùc maùy tính

Page 400: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 12

Message

MessageDöõ lieäu coù caáu truùùcCaáu truùc vaø thoâng dòch msg ñöôïc thoûa thuaän giöõa 2 tieán trình lieânlaïc

HÑH cung caáp 2 primitive chínhsend(destination, message)receive(source, message)

Caùc vaán ñeà quan taâm :Direct or indirect addressingBlocking or non-blocking communicationReliable or unreliable communicationBuffered or un-buffered communication

Page 401: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 13

Ñònh daïng Message

Page 402: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 14

Nhaän xeùt message

Laø cô cheá IPC toång quaùtHoã trôï lieân laïc giöõa caùc tieán trính treân cuøng maùyHoã trôï lieän laïc giöõa caùc tieán trính trong heä thoáng phaân taùn

Lieân laïc giöõa caùc heä thoáng khoâng ñoàng nhaát ?

Page 403: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 15

Máy A

(UNIX)Máy B

(Windows)

Lieân laïc giöõa caùc heä thoáng khoâng ñoàng nhaát

P1

P2

Send( ) //UNIX

Receive( ) //WIN

Page 404: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 16

Socket

Endpoint cuûa moät keát noái 2 chieàuTöông ñöông vôùi moät network interface (hardware)

Cho pheùp caùc öùng duïng “plug in” vaøo maïng moät caùch aån duïLaø moät giao dieän laäp trình maïng

Cho pheùp caùc tieán trình lieân laïc 2 chieàu vôùi nhauThieát laäp lieân laïc : taïo 2 socket, keát noái chuùng vôùi nhau

Socket descriptionSöû duïng moät transport protocolCaàn ñaëc taû IPaddress vaø port keát noái

Ñöôïc hoã trôï ñaàu tieân trong Berkeley socketLaø söï môû roäng cuûa nhaäp xuaát file tröøu töôïngHieän nay ñöôïc hoã trôï trong haàu heát HÑH hieän ñaïi

Page 405: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 17

Page 406: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 18

Socket Communication

Page 407: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 19

Máy A

(UNIX)

Máy B

(Windows)

Lieân laïc giöõa caùc heä thoáng khoâng ñoàng nhaát

P1

P2

Send( )

Receive( )

Socket

Socket

Page 408: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 20

Lieân laïc thoâng qua Socket

Hoã trôï 2 phöông thöùc lieân laïcConnection-oriented (TCP/IP)

StreamReliableBi-directional communication

Connectionless (UDP/IP)DatagramUnreliableBi-directional communication

Cho pheùp lieân laïc giöõa caùc tieán trình treân caùc maïng khoângñoàng nhaát

Page 409: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 21

Phöông thöùc Connection-Oriented

Thöïc hieän treân TCP (Transmission Control Protocol.)Phaûi thöïc hieän keát noái giöõa 2 tieán trình tröôùc khi trao ñoåi döõ lieäu

Töông töï heä thoáng ñieän thoaïiDöõ lieäu ñöôïc phaân phoái

in sequence.guaranteed.

Keát noái keát thuùc khi lieân laïc chaám döùt2 modes:

Iterative (synchronous)Concurrent (asynchronous)

Page 410: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 22

Phöông thöùc Connectionless

Thöïc hieän treân UDP (User Datagram Protocol)Khoâng yeâu caàu keát noái toàn taïi tröôùc khi truyeàn döõ lieäu

Töông töï heä thoáng thö tínDöõ lieäu truyeàn coù theå bò maát maùt hay khoâng ñuùng traät töï

2 modes:Iterative (synchronous)Concurrent (asynchronous)

Page 411: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 23

Caáu truùc ñòa chæ Socket

Generic socket address structure:struct sockaddr {

sa_family_t sa_family; /* address family */char sa_data[14]; /* socket address */

};

A popular BSD-derived implementation:struct sockaddr_in {

sa_family_t sin_family; /* address family */in_port_t sin_port; /* protocol port number */struct in_addr sin_addr; /* IP addr in NW byte

order */char sin_zero[8]; /* unused, set to zero */

};

Page 412: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 24

Port Numbers

Port laø 1 khaùi nieäm tröøu töôïng ñöôïc TCP/UDP söû duïngñeå phaân bieät caùc öùng duïng treân moät maùy chuûMoät port ñöôïc xaùc ñònh baèng 1 soá nguyeân 16 bit laø port number.

3 mieàn giaù trò ñöôc daønh choWell-known ports (0-1023)Registered ports (1024-49151)Dynamic ports (49512 – 65535)

Page 413: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 25

Some Well-Known Ports

Page 414: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 26

Socket Types

Socket types:SOCK_STREAM

Stream socket (TCP)SOCK_DGRAM

Datagram socket (UDP)SOCK_RAW

Raw socket (talk to IP directly)

Page 415: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 27

Socket Primitives

Keát thuùc keát noáiCloseNhaän döõ lieäu qua keát noái ñaõ thieát laäpReceiveGôûi döõ lieäu qua keát noái ñaõ thieát laäpSendChuû ñoäng thöïc hieän keát noáiConnectKhoaù caller ñeán khi coù 1 yeâu caàu keát noáiAcceptThoâng baùo saün saøng “laéng nghe” (tieáp nhaän keát noái)ListenKeát buoäc moät local address vôùi 1 socketBindTaïo 1 communication endpointSocket

YÙ nghóaPrimitive

Page 416: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 28

TCP System Calls

bind()

listen()

socket()

socket()

accept()

read()

write()

connect()

write()

read()

blocks until connection from client

process request

Server

Client

close() close()

Page 417: PHAN Xuân Huy {pxhuy@fit.hcmuns.edu.vn}dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/... · 3.Kiến trúc máy ảo (3/4)- Ví dụ ... Phát hành 07/1993 Hỗtrợchíp Intel

12/16/2007 Trần Hạnh Nhi 29

UDP System Calls

socket()

bind()

recvfrom()

sendto()

socket()

recvfrom()

sendto()blocks until data received from a client

process request

data(request)

data(reply)

Server

Client

close()