Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
CHƯƠNG VIII. BỘ NHỚ MÁY TÍNH – HỆ THỐNG VÀO
- RA (I/O)
1. Tổng quan về hệ thống nhớ của máy tính
1.1. Các đặc trưng của hệ thống nhớ
Vị trí
Bên trong CPU:
tập thanh ghi
Bộ nhớ trong:
bộ nhớ chính
bộ nhớ cache
Bộ nhớ ngoài: các thiết bị nhớ
Dung lượng
Độ dài từ nhớ (tính bằng bit)
Số lượng từ nhớ
Đơn vị truyền
Từ nhớ
Khối nhớ
Phương pháp truy nhập
Truy nhập tuần tự (băng từ)
Truy nhập trực tiếp (các loại đĩa)
Truy nhập ngẫu nhiên (bộ nhớ bán dẫn)
Truy nhập liên kết (cache)
Hiệu năng (performance)
Thời gian truy nhập
Chu kỳ nhớ
Tốc độ truyền
Kiểu vật lý
Bộ nhớ bán dẫn
Bộ nhớ từ
Bộ nhớ quang
Các đặc tính vật lý
Khả biến / Không khả biến
(volatile / nonvolatile)
Xoá được / không xoá được
Tổ chức
1.2. Phân cấp hệ thống nhớ
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 119
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
Từ trái sang phải:
dung lượng tăng dần
tốc độ giảm dần
giá thành/1bit giảm dần
1.3. Phát hiện và hiệu chỉnh lỗi trong bộ nhớ
Nguyên tắc chung: cần tạo ra và lưu trữ thêm thông tin dư thừa.
Từ dữ liệu cần ghi vào bộ nhớ: m bit
Cần tạo ra và lưu trữ từ mã: k bit Lưu trữ (m+k) bit
Khi đọc ra có các khả năng sau:
Không phát hiện thấy dữ liệu lỗi
Phát hiện thấy dữ liệu lỗi và có thể hiệu chỉnh dữ liệu thành đúng
Phát hiện thấy lỗi nhưng không có khả năng hiệu chỉnh Æ cần phát ra tín hiệu báo lỗi.
Sơ đồ phát hiện và hiệu chỉnh lỗi
Ví dụ mã sửa lỗi Hamming (m=4, k=3)
2. Bộ nhớ bán dẫn
Phân loại
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 120
Trường ĐH Tài Chính - Marketing
Kiểu bộ nhớ
Read Only Memory
(ROM)
Programmable ROM
(PROM)
Erasable PROM
(EPROM)
Electrically Erasable
PROM (EEPROM)
Tiêu
chuẩn
Khả năng xoá
Bộ nhớ
chỉ đọc
Không xoá
được
Bộ nhớ
hầu như
chỉ đọc
Flash memory
Random Access
Memory (RAM)
Bộ nhớ
đọc-ghi
Giáo Trình kiến trúc máy tính và hệ điều hành
Cơ chế ghi
Mặt nạ
bằng tia cực tím,
cả chip
bằng điện,
mức từng byte
Tính
khả biến
Bằng điện
Không
khả biến
bằng điện,
từng khối
bằng điện,
mức từng byte
Bằng điện
Khả biến
ROM (Read Only Memory)
Bộ nhớ không khả biến
Lưu trữ các thông tin sau:
Thư viện các chương trình con
Các chương trình điều khiển hệ thống (BIOS)
Các bảng chức năng
Vi chương trình
Các kiểu ROM
ROM mặt nạ:
thông tin được ghi khi sản xuất
rất đắt
PROM (Programmable ROM)
Cần thiết bị chuyên dụng để ghi bằng chương trình
chỉ ghi được một lần
EPROM (Erasable PROM)
Cần thiết bị chuyên dụng để ghi bằng chương trình -> ghi được nhiều lần
Trước khi ghi lại, xóa bằng tia cực tím
EEPROM (Electrically Erasable PROM)
Có thể ghi theo từng byte
Xóa bằng điện
Flash memory (Bộ nhớ cực nhanh)
Ghi theo khối
Xóa bằng điện
RAM (Random Access Memory)
Bộ nhớ đọc-ghi (Read/Write Memory)
Khả biến
Lưu trữ thông tin tạm thời
Có hai loại: SRAM và DRAM (Static and Dynamic)
SRAM (Static) – RAM tĩnh
Các bit được lưu trữ bằng các Flip-Flop
thông tin ổn định
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 121
Trường ĐH Tài Chính - Marketing
Cấu trúc phức tạp
Dung lượng chip nhỏ
Tốc độ nhanh
Đắt tiền
Dùng làm bộ nhớ cache
DRAM (Dynamic) – RAM động
Các bit được lưu trữ trên tụ điện
Cấu trúc đơn giản
Dung lượng lớn
Tốc độ chậm hơn
Rẻ tiền hơn
Giáo Trình kiến trúc máy tính và hệ điều hành
cần phải có mạch làm tươi
Dùng làm bộ nhớ chính
Các DRAM tiên tiến
Enhanced DRAM
Cache DRAM
Synchronous DRAM (SDRAM): làm việc
được đồng bộ bởi xung clock
DDR-SDRAM (Double Data Rate SDRAM)
Rambus DRAM (RDRAM)
3. Bộ nhớ chính
3.1. Các đặc trưng cơ bản
Chứa các chương trình đang thực hiện và các dữ liệu đang được sử dụng
Tồn tại trên mọi hệ thống máy tính
Bao gồm các ngăn nhớ được đánh địa chỉ trực tiếp bởi CPU
Dung lượng của bộ nhớ chính nhỏ hơn không gian địa chỉ bộ nhớ mà CPU quản lý.
Việc quản lý logic bộ nhớ chính tuỳ thuộc vào hệ điều hành
3.2. Tổ chức bộ nhớ đan xen (interleaved memory)
Độ rộng của bus dữ liệu để trao đổi với bộ nhớ: m = 8, 16, 32, 64,128 ... bit
Các ngăn nhớ được tổ chức theo byte
tổ chức bộ nhớ vật lý khác nhau
4. Bộ nhớ cache (Bộ nhớ đệm nhanh)
4.1. Nguyên tắc chung của cache
Nguyên lý cục bộ hoá tham chiếu bộ nhớ: Trong một khoảng thời gian đủ nhỏ
CPU thường chỉ tham chiếu các thông tin trong một khối nhớ cục bộ
Ví dụ:
Cấu trúc chương trình tuần tự
Vòng lặp có thân nhỏ
Cấu trúc dữ liệu mảng
Cache có tốc độ nhanh hơn bộ nhớ chính
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 122
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
Cache được đặt giữa CPU và bộ nhớ chính nhằm tăng tốc độ CPU truy cập bộ nhớ
Cache có thể được đặt trên chip CPU
Ví dụ về thao tác của cache
CPU yêu cầu nội dung của ngăn nhớ
CPU kiểm tra trên cache với dữ liệu này
Nếu có, CPU nhận dữ liệu từ cache (nhanh)
Nếu không có, đọc Block nhớ chứa dữ liệu từ bộ nhớ chính vào cache
Tiếp đó chuyển dữ liệu từ cache vào CPU
Cấu trúc chung của cache / bộ nhớ chính
Bộ nhớ chính có 2N byte nhớ
Bộ nhớ chính và cache được chia thành các khối có kích thước bằng nhau
Bộ nhớ chính: B0, B1, B2, ... , Bp-1 (p Blocks)
Bộ nhớ cache: L0, L1, L2, ... , Lm-1 (m Lines)
Kích thước của Block = 8,16,32,64,128 byte
Một số Block của bộ nhớ chính được nạp vào các Line của cache.
Nội dung Tag (thẻ nhớ) cho biết Block nào của bộ nhớ chính hiện đang được
chứa ở Line đó.
Khi CPU truy nhập (đọc/ghi) một từ nhớ, có hai khả năng xảy ra:
Từ nhớ đó có trong cache (cache hit)
Từ nhớ đó không có trong cache (cache miss).
4.2. Các phương pháp ánh xạ
(Chính là các phương pháp tổ chức bộ nhớ cache)
Ánh xạ trực tiếp (Direct mapping)
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 123
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
Ánh xạ liên kết toàn phần (Fully associative mapping)
Ánh xạ liên kết tập hợp (Set associative mapping)
4.3. Phương pháp ghi dữ liệu khi cache hit
Ghi xuyên qua (Write-through):
ghi cả cache và cả bộ nhớ chính
tốc độ chậm
Ghi trả sau (Write-back):
chỉ ghi ra cache
tốc độ nhanh
khi Block trong cache bị thay thế cần phải ghi trả cả Block về bộ nhớ chính
4.4. Cache trên các bộ xử lý Intel
80486: 8KB cache L1 trên chip
Pentium: có hai cache L1 trên chip
Cache lệnh = 8KB
Cache dữ liệu = 8KB
Pentium 4 (2000): hai mức cache L1 và L2 trên chip
Cache L1:
mỗi cache 8KB
Kích thước Line = 64 byte
ánh xạ liên kết tập hợp 4 đường
cache L2
256KB
Kích thước Line = 128 byte
ánh xạ liên kết tập hợp 8 đường
5. Bộ nhớ ngoài
5.1. Các kiểu bộ nhớ ngoài
Băng từ
Đĩa từ
Đĩa quang
Flash Disk
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 124
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
5.2. Đĩa từ
Các đặc tính đĩa từ
Đầu từ cố định hay đầu từ di động
Đĩa cố định hay thay đổi
Một mặt hay hai mặt
Một đĩa hay nhiều đĩa
Cơ chế đầu từ
Tiếp xúc (đĩa mềm)
Không tiếp xúc
Nhiều đĩa
Cylinders
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 125
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
Đĩa mềm
8”, 5.25”, 3.5”
Dung lượng nhỏ: chỉ tới 1.44Mbyte
Tốc độ chậm
Thông dụng
Rẻ tiền
Tương lai có thể không dùng nữa ?
Đĩa cứng
Một hoặc nhiều đĩa
Thông dụng
Dung lượng tăng lên rất nhanh
1993: 200MB
2004: 30GB, 40GB
Tốc độ đọc/ghi nhanh
Rẻ tiền
RAID
Redundant Array of Inexpensive Disks
Redundant Array of Independent Disks
Hệ thống nhớ dung lượng lớn
Đặc điểm của RAID
Tập các đĩa cứng vật lý được OS coi như một ổ logic duy nhất dung lượng lớn
Dữ liệu được lưu trữ phân tán trên các ổ đĩa vật lý truy cập song song (nhanh)
Có thể sử dụng dung lượng dư thừa để lưu trữ các thông tin kiểm tra chẵn lẻ, cho
phép khôi phục lại thông tin trong trường hợp đĩa bị hỏng an toàn thông tin
7 loại phổ biến (RAID 0 – 6)
5.3. Đĩa quang
CD-ROM (Compact Disk ROM)
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 126
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
CD-R (Recordable CD)
CD-RW (Rewriteable CD)
Dung lượng thông dụng 650MB
Ổ đĩa CD:
Ổ CD-ROM
Ổ CD-Writer: Ghi một phiên hoặc ghi nhiều phiên
Ổ CD-RW
Tốc độ đọc cơ sở 150KByte/s.
Tốc độ bội, ví dụ: 48x, 52x,...
DVD
Digital Video Disk: chỉ dùng trên ổ đĩa xem video
Digital Versatile Disk: ổ trên máy tính
Ghi một hoặc hai mặt
Một hoặc hai lớp trên một mặt
Thông dụng: 4,7GB/lớp
5.4. Flash Disk
Thường kết nối qua cổng USB
Không phải dạng đĩa
Bộ nhớ bán dẫn cực nhanh (flash memory)
Dung lượng tăng nhanh
Thuận tiện
6. Bộ nhớ ảo (Virtual Memory)
Khái niệm bộ nhớ ảo: gồm bộ nhớ chính và bộ nhớ ngoài mà được CPU coi như là
một bộ nhớ duy nhất (bộ nhớ chính).
Các kỹ thuật thực hiện bộ nhớ ảo:
Kỹ thuật phân trang: Chia không gian địa chỉ bộ nhớ thành các trang nhớ có kích thước
bằng nhau và nằm liền kề nhau
Thông dụng: kích thước trang = 4KBytes
Kỹ thuật phân đoạn: Chia không gian nhớ thành các đoạn nhớ có kích thước thay đổi, các
đoạn nhớ có thể gối lên nhau.
7. Hệ thống nhớ trên PC hiện nay
Bộ nhớ cache: tích hợp trên chip vi xử lý
Bộ nhớ chính: Tồn tại dưới dạng các mô-đun nhớ RAM
SIMM – Single Inline Memory Module
30 chân: 8 đường dữ liệu
72 chân: 32 đường dữ liệu
DIMM – Dual Inline Memory Module
64 đường dữ liệu
RIMM – Rambus DRAM
ROM BIOS chứa các chương trình sau:
Chương trình POST (Power On Self Test)
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 127
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
Chương trình CMOS Setup
Chương trình Bootstrap loader
Các trình điều khiển vào-ra cơ bản (BIOS)
CMOS RAM:
Chứa thông tin cấu hình hệ thống
Đồng hồ hệ thống
Có pin nuôi riêng
Video RAM: quản lý thông tin của màn hình
Các loại bộ nhớ ngoài
8. Tổng quan về hệ thống vào-ra
8.1. Giới thiệu chung
Chức năng của hệ thống vào-ra: Trao đổi thông tin giữa máy tính với thế giới bên
ngoài
Các thao tác cơ bản:
Vào dữ liệu (Input)
Ra dữ liệu (Output)
Các thành phần chính:
Các thiết bị ngoại vi
Các mô-đun vào-ra
Cấu trúc cơ bản của hệ thống vào-ra
Đặc điểm của vào-ra
Tồn tại đa dạng các thiết bị ngoại vi khác nhau về:
Nguyên tắc hoạt động
Tốc độ
Khuôn dạng dữ liệu
Tất cả các thiết bị ngoại vi đều chậm hơn CPU và RAM
Cần có các mô-đun vào-ra để nối ghép các thiết bị ngoại vi với CPU và bộ nhớ
chính
8.2. Thiết bị ngoại vi
Chức năng: chuyển đổi dữ liệu giữa bên trong và bên ngoài máy tính
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 128
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
Phân loại:
Thiết bị ngoại vi giao tiếp người-máy: Bàn phím, Màn hình, Máy in,...
Thiết bị ngoại vi giao tiếp máy-máy: gồm các thiết bị theo dõi và kiểm tra
Thiết bị ngoại vi truyền thông: Modem, Network Interface Card (NIC)
Cấu trúc chung của thiết bị ngoại vi
Các thành phần của thiết bị ngoại vi
Bộ chuyển đổi tín hiệu: chuyển đổi dữ liệu giữa bên ngoài và bên trong máy tính
Bộ đệm dữ liệu: đệm dữ liệu khi truyền giữa mô-đun vào-ra và thiết bị ngoại vi
Khối logic điều khiển: điều khiển hoạt động của thiết bị ngoại vi đáp ứng theo yêu
cầu từ mô-đun vào-ra
8.3. Mô-đun vào-ra
Chức năng của mô-đun vào-ra:
Điều khiển và định thời
Trao đổi thông tin với CPU
Trao đổi thông tin với thiết bị ngoại vi
Đệm giữa bên trong máy tính với thiết bị
ngoại vi
Phát hiện lỗi của thiết bị ngoại vi
Cấu trúc chung của mô-đun vào-ra
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 129
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
Các thành phần của mô-đun vào-ra
Thanh ghi đệm dữ liệu: đệm dữ liệu trong quá trình trao đổi
Các cổng vào-ra (I/O Port): kết nối với thiết bị ngoại vi, mỗi cổng
có một địa chỉ xác định
Thanh ghi trạng thái/điều khiển: lưu giữ thông tin trạng thái/điều
khiển cho các cổng vào-ra
Khối logic điều khiển: điều khiển mô-đun vào-ra
8.4. Địa chỉ hoá cổng vào-ra
a. Không gian địa chỉ của bộ xử lý
Một số bộ xử lý chỉ quản lý duy nhất một không gian địa chỉ:
không gian địa chỉ bộ nhớ: 2N địa chỉ
Ví dụ: Các bộ xử lý 680x0 (Motorola)
Một số bộ xử lý quản lý hai không gian địa chỉ tách biệt:
Không gian địa chỉ bộ nhớ: 2N địa chỉ
Không gian địa chỉ vào-ra: 2N1 địa chỉ
Có tín hiệu điều khiển phân biệt truy nhập không gian địa chỉ
Tập lệnh có các lệnh vào-ra chuyên dụng
Ví dụ: Pentium (Intel)
không gian địa chỉ bộ nhớ = 232 byte = 4GB
không gian địa chỉ vào-ra = 216 byte = 64KB
Tín hiệu điều khiển
Lệnh vào-ra chuyên dụng: IN, OUT
b. Các phương pháp địa chỉ hoá cổng vào-ra
Vào-ra riêng biệt (Isolated IO hay IO mapped IO)
Vào-ra theo bản đồ bộ nhớ (Memory mapped IO)
Vào-ra riêng biệt
Cổng vào-ra được đánh địa chỉ theo không gian địa chỉ vào-ra
CPU trao đổi dữ liệu với cổng vào-ra thông qua các lệnh vào-ra chuyên dụng (IN,
OUT)
Chỉ có thể thực hiện trên các hệ thống có quản lý không gian địa chỉ vào-ra riêng
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 130
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
biệt
Vào-ra theo bản đồ bộ nhớ
Cổng vào-ra được đánh địa chỉ theo không gian địa chỉ bộ nhớ
Vào-ra giống như đọc/ghi bộ nhớ
CPU trao đổi dữ liệu với cổng vào-ra thông qua các lệnh truy
nhập dữ liệu bộ nhớ
Có thể thực hiện trên mọi hệ thống
9. Các phương pháp điều khiển vào-ra
Vào-ra bằng chương trình (Programmed IO)
Vào-ra điều khiển bằng ngắt (Interrupt Driven IO)
Truy nhập bộ nhớ trực tiếp - DMA (Direct Memory Access)
9.1. Vào-ra bằng chương trình
Nguyên tắc chung: CPU điều khiển trực tiếp vào-ra bằng chương trình
phải lập trình vào-ra.
Các tín hiệu điều khiển vào-ra
cần
Tín hiệu điều khiển (Control): kích hoạt thiết bị ngoại vi
Tín hiệu kiểm tra (Test): kiểm tra trạng thái của mô-đun vào-ra và thiết bị ngoại vi
Tín hiệu điều khiển đọc (Read): yêu cầu mô-đun vào-ra nhận dữ liệu từ thiết bị ngoại vi và đưa
vào thanh ghi đệm dữ liệu, rồi CPU nhận dữ liệu đó
Tín hiệu điều khiển ghi (Write): yêu cầu mô- đun vào-ra lấy dữ liệu trên bus dữ liệu đưa đến
thanh ghi đệm dữ liệu rồi chuyển ra thiết bị ngoại vi
Các lệnh vào-ra
Với vào-ra riêng biệt: sử dụng các lệnh vào-ra chuyên dụng (IN,
OUT).
Với vào-ra theo bản đồ bộ nhớ: sử dụng các lệnh trao đổi dữ
liệu với bộ nhớ.
Lưu đồ đoạn chương trình vào-ra
Hoạt động của vào-ra bằng chương trình
CPU yêu cầu thao tác vào-ra
Mô-đun vào-ra thực hiện thao tác
Mô-đun vào-ra thiết lập các bit trạng thái
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 131
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
CPU kiểm tra các bit trạng thái:
Nếu chưa sẵn sàng thì quay lại kiểm tra
Nếu sẵn sàng thì chuyển sang trao đổi dữ
liệu với mô-đun vào-ra
Đặc điểm
Vào-ra do ý muốn của người lập trình
CPU trực tiếp điều khiển vào-ra
CPU đợi mô-đun vào-ra
tiêu tốn thời gian của CPU
9.2. Vào-ra điều khiển bằng ngắt
Nguyên tắc chung:
CPU không phải đợi trạng thái sẵn sàng của mô-đun vào-ra, CPU thực hiện một chương
trình nào đó
Khi mô-đun vào-ra sẵn sàng thì nó phát tín hiệu ngắt CPU
CPU thực hiện chương trình con vào-ra tương ứng để trao đổi dữ liệu
CPU trở lại tiếp tục thực hiện chương trình đang bị ngắt
Chuyển điều khiển đến chương trình con ngắt
Hoạt động vào dữ liệu: nhìn từ mô-đun vào-ra
Mô-đun vào-ra nhận tín hiệu điều khiển đọc từ CPU
Mô-đun vào-ra nhận dữ liệu từ thiết bị ngoại vi, trong khi đó CPU làm việc khác
Khi đã có dữ liệu mô-đun vào-ra phát tín hiệu ngắt CPU
CPU yêu cầu dữ liệu
Mô-đun vào-ra chuyển dữ liệu đến CPU
Hoạt động vào dữ liệu: nhìn từ CPU
Phát tín hiệu điều khiển đọc
Làm việc khác
Cuối mỗi chu trình lệnh, kiểm tra tín hiệu ngắt
Nếu bị ngắt:
Cất ngữ cảnh (nội dung các thanh ghi)
Thực hiện chương trình con ngắt để vào dữ liệu
Khôi phục ngữ cảnh của chương trình
đang thực hiện
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 132
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
Các vấn đề nảy sinh khi thiết kế
Làm thế nào để xác định được mô-đun vào-ra nào phát tín hiệu ngắt ?
CPU làm như thế nào khi có nhiều yêu cầu ngắt cùng xảy ra ?
Các phương pháp nối ghép ngắt
Sử dụng nhiều đường yêu cầu ngắt
Hỏi vòng bằng phần mềm (Software Poll)
Hỏi vòng bằng phần cứng (Daisy Chain or Hardware Poll)
Sử dụng bộ điều khiển ngắt (PIC)
9.3. Truy cập bộ nhớ trực tiếp (DMA - Direct Memory Access)
Vào-ra bằng chương trình và bằng ngắt do CPU trực tiếp điều khiển:
Chiếm thời gian của CPU
Tốc độ truyền bị hạn chế vì phải chuyển qua CPU
Để khắc phục dùng DMA
Thêm mô-đun phần cứng trên bus DMAC (Controller)
DMAC điều khiển trao đổi dữ liệu giữa mô-đun vào-ra với bộ nhớ chính
Sơ đồ cấu trúc của DMAC
Các thành phần của DMAC
Thanh ghi dữ liệu: chứa dữ liệu trao đổi
Thanh ghi địa chỉ: chứa địa chỉ ngăn nhớ dữ liệu
Bộ đếm dữ liệu: chứa số từ dữ liệu cần trao đổi
Logic điều khiển: điều khiển hoạt động của DMAC
Hoạt động DMA
CPU “nói” cho DMAC
Vào hay Ra dữ liệu
Địa chỉ thiết bị vào-ra (cổng vào-ra tương ứng)
Địa chỉ đầu của mảng nhớ chứa dữ liệu nạp vào thanh ghi địa chỉ
Số từ dữ liệu cần truyền nạp vào bộ đếm dữ liệu
CPU làm việc khác
DMAC điều khiển trao đổi dữ liệu
Sau khi truyền được một từ dữ liệu thì:
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 133
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
nội dung thanh ghi địa chỉ tăng
nội dung bộ đếm dữ liệu giảm
Khi bộ đếm dữ liệu = 0, DMAC gửi tín hiệu ngắt
CPU để báo kết thúc DMA
Các kiểu thực hiện DMA
DMA truyền theo khối (Block-transfer DMA): DMAC sử dụng bus để truyền xong cả khối
dữ liệu
DMA lấy chu kỳ (Cycle Stealing DMA): DMAC cưỡng bức CPU treo tạm thời từng chu kỳ
bus, DMAC chiếm bus thực hiện truyền một
từ dữ liệu.
DMA trong suốt (Transparent DMA): DMAC nhận biết những chu kỳ nào CPU không sử
dụng bus thì chiếm bus để trao đổi một từ dữ liệu.
Cấu hình DMA
Mỗi lần truyền, DMAC sử dụng bus hai lần
Giữa mô-đun vào-ra với DMAC
Giữa DMAC với bộ nhớ
DMAC điều khiển một hoặc vài mô-đun vào-ra
Mỗi lần truyền, DMAC sử dụng bus một lần
Giữa DMAC với bộ nhớ
Bus vào-ra tách rời hỗ trợ tất cả các thiết bị
cho phép DMA
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 134
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
Mỗi lần truyền, DMAC sử dụng bus một lần
Giữa DMAC với bộ nhớ
Đặc điểm của DMA
CPU không tham gia trong quá trình trao đổi dữ liệu
DMAC điều khiển trao đổi dữ liệu giữa bộ nhớ chính với mô-đun vào-ra (hoàn
toàn bằng phần cứng) tốc độ nhanh
Phù hợp với các yêu cầu trao đổi mảng dữ liệu có kích thước lớn
9.4. Kênh vào-ra (bộ xử lý vào-ra)
Việc điều khiển vào-ra được thực hiện bởi một bộ xử lý vào-ra chuyên dụng
Bộ xử lý vào-ra hoạt động theo chương trình của riêng nó
Chương trình của bộ xử lý vào-ra có thể nằm trong bộ nhớ chính hoặc nằm trong
một bộ nhớ riêng
Hoạt động theo kiến trúc đa xử lý
10. Nối ghép thiết bị ngoại vi
10.1. Các kiểu nối ghép vào-ra
Nối ghép song song
Nối ghép nối tiếp
Nối ghép song song
Truyền nhiều bit song song
Tốc độ nhanh
Cần nhiều đường truyền dữ liệu
Nối ghép nối tiếp
Truyền lần lượt từng bit
Cần có bộ chuyển đổi từ dữ liệu song song sang nối tiếp hoặc/và ngược lại
Tốc độ chậm hơn
Cần ít đường truyền dữ liệu
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 135
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
10.2. Các cấu hình nối ghép
Điểm tới điểm (Point to Point)
Thông qua một cổng vào-ra nối ghép với một thiết bị ngoại vi
Điểm tới đa điểm (Point to Multipoint)
Thông qua một cổng vào-ra cho phép nối ghép được với nhiều thiết
bị ngoại vi
Ví dụ:
SCSI (Small Computer System Interface): 7 hoặc
15 thiết bị
USB (Universal Serial Bus): 127 thiết bị
IEEE 1394 (FireWire): 63 thiết bị
11. Các cổng vào-ra thông dụng trên PC
Các cổng PS/2: nối ghép bàn phím và chuột
Cổng nối ghép màn hình
Cổng LPT (Line Printer): nối ghép với máy in, là cổng song song (Parallel Port) – 25 chân
Cổng COM (Communication): nối ghép với
MODEM, là cổng nối tiếp (Serial Port) - 9 hoặc
25 chân
Cổng USB (Universal Serial Bus): Cổng nối tiếp đa năng, cho phép nối ghép tối đa 127 thiết bị,
nhờ các USB Hub
...
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 136
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
CHƯƠNG IX. TỔNG QUAN VỀ HỆ ĐIỀU HÀNH
1. Khái niệm về hệ điều hành
Hệ điều hành là một chương trình hay một hệ chương trình hoạt động giữa người sử dụng
(user) và phần cứng của máy tính. Mục tiêu của hệ điều hành là cung cấp một môi trường để
người sử dụng có thể thi hành các chương trình. Nó làm cho máy tính dể sử dụng hơn, thuận
lợi hơn và hiệu quả hơn.
Hệ điều hành là một phần quan trọng của hầu hết các hệ thống máy tính. Một hệ thống máy
tính thường được chia làm bốn phần chính : phần cứng, hệ điều hành, các chương trình ứng
dụng và người sử dụng.
Phần cứng bao gồm CPU, bộ nhớ, các thiết bị nhập xuất, đây là những tài nguyên của máy
tính. Chương trình ứng dụng như các chương trình dịch, hệ thống cơ sở dữ liệu, các trò chơi,
và các chương trình thương mại. Các chương trình này sử dụng tài nguyên của máy tính để
giải quyết các yêu cầu của người sử dụng. Hệ điều hành điều khiển và phối hợp việc sử dụng
phần cứng cho những ứng dụng khác nhau của nhiều người sử dụng khác nhau. Hệ điều hành
cung cấp một môi trường mà các chương trình có thể làm việc hữu hiệu trên đó.
CHƯƠNG I.
CHƯƠNG II. Mô hình trừu tượng của hệ thống máy tính
Hệ điều hành có thể được coi như là bộ phân phối tài nguyên của máy tính. Nhiều tài nguyên
của máy tính như thời gian sử dụng CPU, vùng bộ nhớ, vùng lưu trữ tập tin, thiết bị nhập
xuất v.v… được các chương trình yêu cầu để giải quyết vấn đề. Hệ điều hành hoạt động như
một bộ quản lý các tài nguyên và phân phối chúng cho các chương trình và người sử dụng khi
cần thiết. Do có rất nhiều yêu cầu, hệ điều hành phải giải quyết vấn đề tranh chấp và phải
quyết định cấp phát tài nguyên cho những yêu cầu theo thứ tự nào để hoạt động của máy tính
là hiệu quả nhất. Một hệ điều hành cũng có thể được coi như là một chương trình kiểm soát
việc sử dụng máy tính, đặc biệt là các thiết bị nhập xuất.
Tuy nhiên, nhìn chung chưa có định nghĩa nào là hoàn hảo về hệ điều hành. Hệ điều hành tồn
tại để giải quyết các vấn đề sử dụng hệ thống máy tính. Mục tiêu cơ bản của nó là giúp cho
việc thi hành các chương trình dễ dàng hơn. Mục tiêu thứ hai là hỗ trợ cho các thao tác trên
hệ thống máy tính hiệu quả hơn. Mục tiêu này đặc biệt quan trọng trong những hệ thống
nhiều người dùng và trong những hệ thống lớn(phần cứng + quy mô sử dụng). Tuy nhiên hai
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 137
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
mục tiêu này cũng có phần tương phản vì vậy lý thuyết về hệ điều hành tập trung vào việc tối
ưu hóa việc sử dụng tài nguyên của máy tính.
2. Phân loại hệ điều hành
2.1. Hệ thống xử lý theo lô
Bộ giám sát thường trực :
Khi một công việc chấm dứt, hệ thống sẽ thực hiện công việc kế tiếp mà không cần sự can
thiệp của người lập trình, do đó thời gian thực hiện sẽ mau hơn. Một chương trình, còn gọi là
bộ giám sát thường trực được thiết kế để giám sát việc thực hiện dãy các công việc một cách
tự động, chương trình này luôn luôn thường trú trong bộ nhớ chính.
Hệ điều hành theo lô thực hiện các công việc lần lượt theo những chỉ thị định trước.
CPU và thao tác nhập xuất :
CPU thường hay nhàn rỗi do tốc độ làm việc của các thiết bị nhập xuất (thường là thiết bị cơ)
chậm hơn rất nhiều lần so với các thiết bị điện tử. Cho dù là một CPU chậm nhất, nó cũng
nhanh hơn rất nhiều lần so với thiết bị nhập xuất. Do đó phải có các phương pháp để đồng bộ
hóa việc hoạt động của CPU và thao tác nhập xuất.
Xử lý off_line :
Xử lý off_line là thay vì CPU phải đọc trực tiếp từ thiết bị nhập và xuất ra thiết bị xuất, hệ
thống dùng một bộ lưu trữ trung gian. CPU chỉ thao thác với bộ phận này. Việc đọc hay xuất
đều đến và từ bộ lưu trữ trung gian.
Spooling :
Spool (simultaneous peripheral operation on-line) là đồng bộ hóa các thao tác bên ngoài
on-line. Cơ chế này cho phép xử lý của CPU là on-line, sử dụng đĩa để lưu các dữ liệu nhập
cũng như xuất.
2.2. Hệ thống xử lý theo lô đa chương
Khi có nhiều công việc cùng truy xuất lên thiết bị, vấn đề lập lịch cho các công việc là cần
thiết. Khía cạnh quan trọng nhất trong việc lập lịch là khả năng đa chương. Đa chương
(multiprogram) gia tăng khai thác CPU bằng cách tổ chức các công việc sao cho CPU luôn
luôn phải trong tình trạng làm việc .
Ý tưởng như sau : hệ điều hành lưu giữ một phần của các công việc ở nơi lưu trữ trong bộ
nhớ . CPU sẽ lần lượt thực hiện các phần công việc này. Khi đang thực hiện, nếu có yêu cầu
truy xuất thiết bị thì CPU không nghỉ mà thực hiện tiếp công việc thứ hai…
Với hệ đa chương hệ điều hành ra quyết định cho người sử dụng vì vậy, hệ điều hành đa
chương rất tinh vi. Hệ phải xử lý các vấn đề lập lịch cho công việc, lập lịch cho bộ nhớ và
cho cả CPU nữa.
2.3. Hệ thống chia xẻ thời gian
Hệ thống chia xẻ thời gian là một mở rộng logic của hệ đa chương. Hệ thống này còn được
gọi là hệ thống đa nhiệm (multitasking). Nhiều công việc cùng được thực hiện thông qua cơ
chế chuyển đổi của CPU như hệ đa chương nhưng thời gian mỗi lần chuyển đổi diễn ra rất
nhanh.
Hệ thống chia xẻ được phát triển để cung cấp việc sử dụng bên trong của một máy tính có giá
trị hơn. Hệ điều hành chia xẻ thời gian dùng lập lịch CPU và đa chương để cung cấp cho
mỗi người sử dụng một phần nhỏ trong máy tính chia xẻ. Một chương trình khi thi hành được
gọi là một tiến trình. Trong quá trình thi hành của một tiến trình, nó phải thực hiện các thao
tác nhập xuất và trong khoảng thời gian đó CPU sẽ thi hành một tiến trình khác. Hệ điều hành
chia xẻ cho phép nhiều người sử dụng chia xẻ máy tính một cách đồng bộ do thời gian
chuyển đổi nhanh nên họ có cảm giác là các tiến trình đang được thi hành cùng lúc.
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 138
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
Hệ điều hành chia xẻ phức tạp hơn hệ điều hành đa chương. Nó phải có các chức năng : quản
trị và bảo vệ bộ nhớ, sử dụng bộ nhớ ảo. Nó cũng cung cấp hệ thống tập tin truy xuất online…
Hệ điều hành chia xẻ là kiểu của các hệ điều hành hiện đại ngày nay.
2.4. Hệ thống song song
Ngoài các hệ thống chỉ có một bộ xử lý còn có các hệ thống có nhiều bộ xử lý cùng chia xẻ
hệ thống đường truyền dữ liệu, đồng hồ, bộ nhớ và các thiết bị ngoại vi. Các bộ xử lý này liên
lạc bên trong với nhau .
Có nhiều nguyên nhân xây dựng dạng hệ thống này. Với sự gia tăng số lượng bộ xử lý, công
việc được thực hiện nhanh chóng hơn, Nhưng không phải theo đúng tỉ lệ thời gian, nghĩa là
có n bộ xử lý không có nghĩa là sẽ thực hiện nhanh hơn n lần.
Hệ thống với máy nhiều bộ xử lý sẽ tối ưu hơn hệ thống có nhiều máy có một bộ xử lý vì các
bộ xử lý chia xẻ các thiết bị ngoại vi, hệ thống lưu trữ, nguồn … và rất thuận tiện cho nhiều
chương trình cùng làm việc trên cùng một tập hợp dữ liệu.
Một lý do nữa là độ tin cậy. Các chức năng được xử lý trên nhiều bộ xử lý và sự hỏng hóc
của một bộ xử lý sẽ không ảnh hưởng đến toàn bộ hệ thống.
Hệ thống đa xử lý thông thường sử dụng cách đa xử lý đối xứng, trong cách này mỗi bộ xử
lý chạy với một bản sao của hệ điều hành, những bản sao này liên lạc với nhau khi cần thiết.
Một số hệ thống sử dụng đa xử lý bất đối xứng, trong đó mỗi bộ xử lý được giao một công
việc riêng biệt.. Một bộ xử lý chính kiểm soát toàn bộ hệ thống, các bộ xử lý khác thực hiện
theo lệnh của bộ xử lý chính hoặc theo những chỉ thị đã được định nghĩa trước. Mô hình này
theo dạng quan hệ chủ tớ. Bộ xử lý chính sẽ lập lịch cho các bộ xử lý khác.
Một ví dụ về hệ thống xử lý đối xứng là version Encore của UNIX cho máy tính Multimax.
Hệ thống này có hàng tá bộ xử lý. Ưu điểm của nó là nhiều tiến trình có thể thực hiện cùng
lúc . Một hệ thống đa xử lý cho phép nhiều công việc và tài nguyên được chia xẻ tự động
trong những bộ xử lý khác nhau.
Hệ thống đa xử lý không đồng bộ thường xuất hiện trong những hệ thống lớn, trong đó hầu
hết thời gian hoạt động đều dành cho xử lý nhập xuất.
2.5. Hệ thống phân tán
Hệ thống này cũng tương tự như hệ thống chia xẻ thời gian nhưng các bộ xử lý không chia xẻ
bộ nhớ và đồng hồ, thay vào đó mỗi bộ xử lý có bộ nhớ cục bộ riêng. Các bộ xử lý thông tin
với nhau thông qua các đường truyền thông như những bus tốc độ cao hay đường dây điện
thoại.
Các bộ xử lý trong hệ phân tán thường khác nhau về kích thước và chức năng. Nó có thể bao
gồm máy vi tính, trạm làm việc, máy mini, và những hệ thống máy lớn. Các bộ xử lý thường
được tham khảo với nhiều tên khác nhau như site, node, computer v.v.... tùy thuộc vào trạng
thái làm việc của chúng.
Các nguyên nhân phải xây dựng hệ thống phân tán là:
Chia xẻ tài nguyên : Một người sử dụng A có thể sử dụng máy in laser của người sử dụng B
và người sử dụng B có thể truy xuất những tập tin của A. Tổng quát, chia xẻ tài nguyên trong
hệ thống phân tán cung cấp một cơ chế để chia xẻ tập tin ở vị trí xa, xử lý thông tin trong một
cơ sở dữ liệu phân tán, in ấn tại một vị trí xa, sử dụng những thiết bị ở xa đểõ thực hiện các
thao tác.
Tăng tốc độ tính toán : Một thao tác tính toán được chia làm nhiều phần nhỏ cùng thực hiện
một lúc. Hệ thống phân tán cho phép phân chia việc tính toán trên nhiều vị trí khác nhau để
tính toán song song.
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 139
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
An toàn : Nếu một vị trí trong hệ thống phân tán bị hỏng, các vị trí khác vẫn tiếp tục làm
việc.
Thông tin liên lạc với nhau :Có nhiều lúc , chương trình cần chuyển đổi dữ liệu từ vị trí này
sang vị trí khác. Ví dụ trong hệ thống Windows, thường có sự chia xẻ và chuyển dữ liệu giữa
các cửa sổ. Khi các vị trí được nối kết với nhau trong một hệ thống mạng, việc trao đổi dữ
liệu diễn ra rất dễ. Người sử dụng có thể chuyển tập tin hay các E_mail cho nhau từ cùng vị
trí hay những vị trí khác.
2.6. Hệ thống xử lý thời gian thực
Hệ thống xử lý thời gian thực được sử dụng khi có những đòi hỏi khắt khe về thời gian trên
các thao tác của bộ xử lý hoặc dòng dữ liệu, nó thường được dùng điều khiển các thiết bị
trong các ứng dụng tận hiến (dedicated). Máy tính phân tích dữ liệu và có thể chỉnh các điều
khiển giải quyết cho dữ liệu nhập.
Một hệ điều hành xử lý thời gian thực phải được định nghĩa tốt, thời gian xử lý nhanh. Hệ
thống phải cho kết quả chính xác trong khoảng thời gian bị thúc ép nhanh nhất. Có hai hệ
thống xử lý thời gian thực là hệ thống thời gian thực cứng và hệ thống thời gian thực mềm..
Hệ thống thời gian thực cứng là công việc được hoàn tất đúng lúc. Lúc đó dữ liệu thường
được lưu trong bộ nhớ ngắn hạn hay trong ROM. Việc xử lý theo thời gian thực sẽ xung đột
với tất cả hệ thống liệt kê ở trên.
Dạng thứ hai là hệ thống thời gian thực mềm, mỗi công việc có một độ ưu tiên riêng và sẽ
được thi hành theo độ ưu tiên đó. Có một số lĩnh vực áp dụng hữu hiệu phương pháp này là
multimedia hay thực tại ảo.
3. Cấu trúc của hệ điều hành
3.1. Các thành phần của hệ thống
Quản lý tiến trình
Một chương trình không thực hiện được gì cả nếøu như nó không được CPU thi hành. Một
tiến trình là một chương trình đang được thi hành, nhưng ý nghĩa của nó còn rộng hơn. Một
công việc theo lô là một tiến trình. Một chương trình người dùng chia xẻ thời gian là một tiến
trình, một công việc của hệ thống như soopling xuất ra máy in cũng là một tiến trình.
Một tiến trình phải sử dụng tài nguyên như thời gian sử dụng CPU, bộ nhớ, tập tin, các thiết
bị nhập xuất để hoàn tất công việc của nó. Các tài nguyên này được cung cấp khi tiến trình
được tạo hay trong quá trình thi hành. Khi tiến trình được tạo, nó sử dụng rất nhiều tài
nguyên vật lý và luận lý.cũng như một số khởi tạo dữ liệu nhập. Ví dụ , khảo sát tiến trình
hiển thị trạng thái của tập tin lên màn hình. Đầu vào của tiến trình là tên tập tin, và tiến trình
sẽ thực hiện những chỉ thị thích hợp, thực hiện lời gọi hệ thống để nhận được những thông tin
mong muốn và hiển thị nó lên màn hình. Khi tiến trình kết thúc, hệ điềûu hành sẽ tái tạo lại
các tài nguyên có thể được dùng lại..
Một tiến trình là hoạt động (active) hoàn toàn-ngược lại với một tập tin trên đĩa là thụ động
(passive)-với một bộ đếm chương trình cho biết lệnh kế tiếp được thi hành.Việc thi hành
được thực hiện theo cơ chế tuần tự , CPU sẽ thi hành từ lệnh đầu đến lệnh cuối.
Một tiến trình được coi là một đơn vị làm việc của hệ thống. Một hệ thống có thể có nhiều
tiến trình cùng lúc , trong đó một số tiến trình là của hệ điều hành, một số tiến trình là của
người sử dụng. các tiến trình này có thể diễn ra đồng thời.
Vai trò của hệ điều hành trong việc quản lý tiến trình là :
Tạo và hủy các tiến trình của người sử dụng và của hệ thống.
Ngưng và thực hiện lại một tiến trình.
Cung cấp cơ chế đồng bộ tiến trình.
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 140
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
Cung cấp cách thông tin giữa các tiến trình.
Cung cấp cơ chế kiểm soát deadlock(khái niệm này sẽ được trình bày trong chương II).
Quản lý bộ nhớ chính :
Trong hệ thống máy tính hiện đại, bộ nhớ chính là trung tâm của các thao tác, xử lý. Bộ nhớ
chính có thể xem như một mảng kiểu byte hay kiểu word. Mỗi phần tử đều có địa chỉ. Đó là
nơi lưu dữ liệu được CPU truy xuất một cách nhanh chóng so với các thiết bị nhập/xuất. CPU
đọc những chỉ thị từ bộ nhớ chính. Các thiết bị nhập/xuất cài đặt cơ chế DMA(xem chương
IV) cũng đọc và ghi dữ liệu trong bộ nhớ chính. Thông thường bộ nhớ chính chứa các thiết bị
mà CPU có thể định vị trực tiếp. Ví dụ CPU truy xuất dữ liệu từ đĩa, những dữ liệu này được
chuyển vào bộ nhớ qua lời gọi hệ thống nhập/xuất.
Một chương trình muốn thi hành trước hết phải được ánh xạ thành địa chỉ tuyệt đối và nạp
vào bộ nhớ chính.Khi chương trình thi hành, hệ thống truy xuất các chỉ thị và dữ liệu của
chương trình trong bộ nhớ chính. Ngay cả khi tiến trình kết thúc , dữ liệu vẫn còn trong bộ
nhớ cho đến khi một tiến trình khác được ghi chồng lên.
Để tối ưu hóa quá trình hoạt động của CPU và tốc độ của máy tính, một số tiến trình được lưu
giữ trong bộ nhớ. Có rất nhiều kế hoạch quản trị bộ nhớ do có nhiều ứng dụng bộ nhớ khác
nhau và hiệu quả của các thuật toán phụ thuộc vào tùy tình huống cụ thể. Lựa chọn một thuật
toán cho một hệ thống được mô tả trước phụ thuộc vào nhiều yếu tố, đặc biệt là phần cứng
của hệ thống.
Hệ điều hành có những vai trò như sau trong việc quản lý bộ nhớ chính :
Lưu giữ thông tin về các vị trí trong bộ nhớ đã được sử dụng và ai sử dụng.
Quyết định tiến trình nào được nạp vào bộ nhớ chính, khi bộ nhớ đã có thể dùng được.
Cấp phát và thu hồi bộ nhớ khi cần thiết.
Quản lý bộ nhớ phụ :
Mục tiêu chính của hệ thống máy tính là thi hành chương trình. Những chương trình với dữ
liệu truy xuất của chúng phải được đặt trong bộ nhớ chính trong suốt quá trình thi hành.
Nhưng bộ nhớ chính quá nhỏ để có thể lưu giữ mọi dữ liệu và chương trình, ngoài ra dữ liệu
sẽ mất khi không còn được cung cấp năng lượng. Hệ thống máy tính ngày nay cung cấp hệ
thống lưu trữ phụ. Đa số các máy tính đều dùng đĩa để lưu trữ cả chương trình và dữ liệu.
Hầu như tất cả chương trình : chương trình dịch, hợp ngữ, thủ tục, trình soạn thảo, định
dạng... đều được lưu trữ trên đĩa cho tới khi nó được thực hiện, nạp vào trong bộ nhớ chính
và cũng sử dụng đĩa để chứa dữ liệu và kết quả xử lý. Vì vậy một bộ quản lý hệ thống đĩa rất
quan trọng cho hệ thống máy tính.
Vai trò của hệ điều hành trong việc quản lý đĩa :
Quản lý vùng trống trên đĩa.
Định vị lưu trữ.
Lập lịch cho đĩa.
Vì hệ thống đĩa được sử dụng thường xuyên, nên nó phải được dùng hiệu quả.Tốc độ của
toàn bộ hệ thống tuỳ thuộc rất nhiều vào tốc độ truy xuất đĩa.
Quản lý hệ thống nhập xuất :
Một trong những mục tiêu của hệ điều hành là che dấu những đặc thù của các thiết bị phần
cứng đối với người sử dụng thay vào đó là một lớp thân thiện hơn, người sử dụng dể thao tác
hơn. Một hệ thống nhập/xuất bao gồm :
Hệ thống buffer caching.
Giao tiếp điều khiển thiết bị (device drivers) tổng quát.
Bộ điều khiển cho các thiết bị phần cứng.
Chỉ có device driver mới hiểu đến cấu trúc đặc thù của thiết bị mà nó mô tả.
Quản lý hệ thống tập tin :
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 141
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
Hệ thống quản lý tập tin là thành phần rõ ràng nhất trong hệ điều hành. Máy tính có thể lưu
trữ thông tin trong nhiều dạng thiết bị vật lý khác nhau : băng từ, đĩa từ, , đĩa quang, ... Mỗi
dạng có những đặc thù riêng về mặt tổ chức vật lý. Mỗi thiết bị có một bộ kiểm soát như bộ
điều khiển đĩa (disk driver) và có những tính chất riêng. Những tính chất này là tốc độ, khả
năng lưu trữ, tốc độ truyền dữ liệu và cách truy xuất.
Để cho việc sử dụng hệ thống máy tính thuận tiện, hệ điều hành cung cấp một cái nhìn logic
đồng nhất về hệ thống lưu trữ thông tin. Hệ điều hành định nghĩa một đơn vị lưu trữ logic là
tập tin. Hệ điều hành tạo một ánh xạ từ tập tin đến vùng thông tin trên đĩa và truy xuất những
tập tin này thông qua thiết bị lưu trữ.
Một tập tin là một tập hợp những thông tin do người tạo ra nó xác định. Thông thường một
tập tin đại diện cho một chương trình và dữ liệu. Dữ liệu của tập tin có thể là số, là ký tự, hay
ký số. Tập tin thường có dạng tự do, như tập tin văn bản, nhị phân...(là tập tin chứa dãy các
bit). (Xem bài VIII)
Vai trò của hệ điều hành trong việc quản lý tập tin :
Tạo và xoá một tập tin.
Tạo và xoá một thư mục.
Hỗ trợ các thao tác trên tập tin và thư mục.
Ánh xạ tập tin trên hệ thống lưu trữ phụ.
Backup tập tin trên các thiết bị lưu trữ.
Hệ thống bảo vệ :
Trong một hệ thống nhiều người sử dụng và cho phép nhiều tiến trình diễn ra đồng thời, các
tiến trình phải được bảo vệ đối với những hoạt động khác.Do đó, hệ thống cung cấp cơ chế để
đảm bảo rằng tập tin, bộ nhớ, CPU, và những tài nguyên khác chỉ được truy xuất bởi những
tiến trình có quyền. Ví dụ, bộ nhớ đảm bảo rằng tiến trình chỉ được thi hành trong phạm vi
địa chỉ của nó. Bộ thời gian đảm bảo rằng không có tiến trình nào độc chiếm CPU. Cuối cùng
các thiết bị ngoại vi cũng được bảo vệ.
Hệ thống bảo vệ là một cơ chế kiểm soát quá trình truy xuất của chương trình, tiến trình, hoặc
người sử dụng với tài nguyên của hệ thống. Cơ chế này cũng cung cấp cách thức để mô tả lại
mức độ kiểm soát.
Hệ thống bảo vệ cũng làm tăng độ an toàn khi kiểm tra lỗi trong giao tiếp giữa những hệ
thống nhỏ bên trong.
Hệ thống cơ chế dòng lệnh :
Một trong những phần quan trọng của chương trình hệ thống trong một hệ điều hành là cơ
chế dòng lệnh, đó là giao tiếp giữa người sử dụng và hệ điều hành. Một số hệ điều hành đặt
cơ chế dòng lệnh bên trong hạt nhân, số khác như MS-DOS và UNIX thì xem hệ điều hành
như là một chương trình đặt biệt, được thi hành khi các công việc bắt đầu hoặc khi người sử
dụng login lần đầu tiên.
Các lệnh đưa vào hệ điều hành thông qua bộ điều khiển lệnh. Trong các hệ thống chia xẻ thời
gian một chương trình có thể đọc và thông dịch các lệnh điều khiển được thực hiện một cách
tự động. Chương trình này thường được gọi là bộ thông dịch điều khiển card, cơ chế dòng
lệnh hoặc Shell. Chức năng của nó rất đơn giản đó là lấy lệnh kế tiếp và thi hành.
Mỗi hệ điều hành sẽ có những giao tiếp khác nhau, dạng đơn giản theo cơ chế dòng lệnh,
dạng thân thiện với người sử dụng như giao diện của Macintosh có các biểu tượng, cửa sổ
thao tác dùng chuột.
Các lệnh có quan hệ với việc tạo và quản lý các tiến trình, kiểm soát nhập xuất, quản lý bộ
lưu trữ phụ, quản lý bộ nhớ chính, truy xuất hệ thống tập tin và cơ chế bảo vệ.
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 142
Trường ĐH Tài Chính - Marketing
Giáo Trình kiến trúc máy tính và hệ điều hành
3.2. Các dịch vụ của hệ điều hành
Hệ điều hành cung cấp một môi trường để thi hành các chương trình, bằng cách cung cấp các
dịch vụ cho chương trình và cho người sử dụng. Các dịch vụ này trên mỗi hệ thống là khác
nhau nhưng cũng có những lớp chung. Các dịch vụ này giúp cho các lập trình viên thuận tiện
hơn và việc lập trình dể dàng hơn.
Thi hành chương trình : hệ thống phải có khả năng nạp chương trình vào bộ nhớ và thi
hành nó. Chương trình phải chấm dứt thi hành theo cách thông thường hay bất thường (có
lỗi).
Thao tác nhập xuất : Một chương trình thi hành có thể yêu cầu nhập xuất. Nhập xuất này có
thể là tập tin hay thiết bị. Đối với thiết bị có một hàm đặc biệt được thi hành. Để tăng hiệu
quả, người sử dụng không truy xuất trực tiếp các thiết bị nhập xuất mà thông qua cách thức
do hệ điều hành cung cấp.
Thao tác trên hệ thống tập tin .
Thông tin : có nhiều tình huống một tiến trình cần trao đổi thông tin với một tiến trình khác.
Có hai cách thực hiện: Một là thực hiện thay thế tiến trình trên cùng máy tính, hai là thay thế
tiến trình trên hệ thống khác trong hệ thống mạng. Thông tin có thể được cài đặt qua chia xẻ
bộ nhớ, hoặc bằng kỹ thuật chuyển thông điệp. Việc chuyển thông tin được thực hiện bởi hệ
điều hành.
Phát hiện lỗi : hệ điều hành phải có khả năng báo lỗi. Lỗi xảy ra có thể do CPU, bộ nhớ,
trong thiết bị nhập xuất, … hay trong các chương trình. Đối với mỗi dạng lỗi, hệ điều hành sẽ
có cách giải quyết tương ứng.
3.3. Lời gọi hệ thống
Lời gọi hệ thống cung cấp một giao tiếp giữa tiến trình và hệ điều hành. Lời gọi này cũng
như các lệnh hợp ngữ.
Một số hệ thống cho phép lời gọi hệ thống được thực hiện từ cấp lập trình ngôn ngữ cấp cao,
như các hàm và lời gọi hàm. Nó có thể phát sinh lời gọi từ các thủ tục hay gọi trực tiếp trong
dòng.
Để hiểu quá trình hoạt động của lời gọi hệ thống chúng ta cùng khảo sát một chương trình
nhỏ dùng để đọc dữ liệu từ một tập tin chép qua tập tin khác. Dữ liệu nhập đầu tiên của của
chương trình là tên của hai tập tin : tập tin nhập và tập tin xuất. Tên này được mô tả bằng
nhiều cách tùy thuộc vào thiết kế hệ điều hành như : chương trình yêu cầu người sử dụng cho
biết tên của hai tập tin, họ cũng có thể cung cấp bằng cách lựa chọn với chuột. Khi có tên của
hai tập tin, chương trình mở tập tin nhập và tạo tập tin xuất. Mỗi thao tác này được thực hiện
bởi những lời gọi hệ thống khác. Cũng có những trường hợp phát sinh lỗi : Khi chương trình
mở tập tin nhập, có thể xảy ra trường hợp không có tập tin có tên như mô tả hoặc tập tin bị
cấm truy cập. Trong trường hợp này chương trình phải xuất thông điệp lên màn hình. Nếu tập
tin nhập tồn tại, phải tạo tập tin mới. Hệ thống phải kiểm tra tiếp xem đã có tập tin xuất tồn
tại không và sẽ có những lời gọi hệ thống tương ứng để giải quyết hoặc là hủy tiến trình, hai
là xóa tập tin đã tồn tại và tạo tập tin mới. Sau khi đã thiết lập xong tập tin, hệ thống tiếp tục
tạo vòng lặp đọc dữ liệu từ tập tin nhận và ghi lên tập tin xuất. Mỗi bước đều có kiểm tra lỗi.
Sau khi chép xong, chương trình sẽ đóng hai tập tin lại (dùng một lời gọi hệ thống khác), xuất
thông báo lên màn hình (dùng lời gọi hệ thống) cuối cùng chấm dứt chương trình (lời gọi hệ
thống cuối cùng).
Trong các ngôn ngữ lập trình cấp cao, người sử dụng không cần quan tâm đến chi tiết mà chỉ
cần thông qua các hàm hay các lệnh để thực hiện.Lời gọi hệ thống có thể diễn ra theo một
cách khác. Kiểu và khối lượng thông tin tùy thuộc vào hệ thống và lúc gọi.
Nguyễn Thanh Trường - Khoa Công nghệ thông tin
Trang 143