Tải bản đầy đủ (.pdf) (84 trang)

Tài liệu Hệ điều hành tiếng Việt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.31 MB, 84 trang )

Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 1

Mục lục
Giới thiệu về Hệ điều hành 6
Đối với độc giả 6
Điều kiện tiền đề 6
Tổng quan về Hệ điều hành 6
Định nghĩa 6
Quản lý bộ nhớ 7
Quản lý bộ vi xử lý 8
Quản lý thiết bị 8
Quản lý file 9
Các hoạt động quan trọng khác 9
Các kiểu Hệ điều hành 9
Hệ điều hành Batch 10
Hệ điều hành Time-sharings 10
Hệ điều hành được phân phối (distributed) 11
Hệ điều hành hệ thống 12
Hệ điều hành thời gian thực (real time) 12
Các hệ thống thời gian thực cứng 13
Các Hệ điều hành thời gian thực mềm 13
Các dịch vụ của Hệ điều hành 13
Sự thi hành chương trình 14
Hoạt động I/O 14
Thao tác hệ thống file 15
Giao tiếp 15
Kiểm soát lỗi 16
Quản lý tài nguyên 16
Trình bảo mật 16


Các thuộc tính của Hệ điều hành 16
Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 2

Tiến trình xử lý Batch 17
Các lợi thế 17
Các bất lợi 17
Đa nhiệm 18
Đa chương trình 19
Các lợi thế 20
Các bất lợi 20
Khả năng tương tác 20
Hệ thống thời gian thực 20
Môi trường được phân phối 21
Spooling 21
Các lợi thế 22
Các tiến trình xử lý trong OS 22
Tiến trình xử lý 22
Chương trình 23
Các trạng thái tiến trình 23
Khối kiểm soát tiến trình, PCB 24
Ghi lịch trình tiến trình trong OS 26
Định nghĩa 26
Sắp hàng lịch trình 27
Hai mẫu trạng thái tiến trình 28
Bộ lập lịch trình 28
Bộ lập lịch trình thời hạn dài 29
Bộ lịch trình thời hạn ngắn 29
Bộ lịch trình thời hạn trung 29

So sánh giữa các bộ lịch trình 30
Chuyển bối cảnh (context switch) 31
Các thuật toán lập lịch trình trong OS 32
Lập lịch trình vào đầu phục vụ trước (FCFS) 33
Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 3

Lập lịch trình công việc ngắn nhất phục vụ trước (SJF) 34
Lập lịch trình quyền ưu tiên 35
Lập lịch trình Round Robin 36
Lập lịch trình đa hàng 37
Chế độ đa luồng (Multi-thread) trong OS 37
Thread là gì? 38
Sự khác nhau giữa Tiến trình và thread 38
Các lợi thế của Thread 41
Các kiểu Thread 41
Các thread mức độ người dùng 41
Các lợi thế 42
Các bất lợi 42
Các thread mức độ Kernel 42
Các lợi thế 43
Các bất lợi 43
Các mô hình đa thread 43
Chế độ Many to Many 43
Chế độ Many to One 44
Chế độ One to One 45
Sự khác nhau giữa chế độ mức độ người sử dụng và mức độ Kernel 45
Quản lý bộ nhớ trong OS 46
Tải động (dynamic loading) 47

Kết nối động 48
Không gian địa chỉ vật lý – logic 48
Swapping 48
Sự cấp phát bộ nhớ 49
Sự phân mảnh (Fragmentation) 50
Kỹ thuật đánh số trang 51
Kỹ thuật phân đoạn 53
Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 4

Bộ nhớ ảo trong OS 54
Kỹ thuật đánh số trang yêu cầu (demand paging) 55
Các lợi thế 58
Các bất lợi 58
Thuật toán đổi vị trí trang 58
Chuỗi tham chiếu 59
Thuật toán Vào đầu ra đầu (First In First Out - FIFO) 59
Thuật toán Trang quang học 60
Thuật toán Được sử dụng gần đây nhất (Least Recently Used - LRU) 60
Thuật toán Chuyển hoán đệm trang 61
Thuật toán Được sử dụng thường xuyên ít nhất (Least frequently Used - LFU) 61
Thuật toán Được sử dụng thường xuyên nhất (Most Frequently Used MFU) 61
Phần cứng Nhập/Xuất (IO) trong OS 62
Tổng quan 62
Chuỗi daisy 62
Bộ điều khiển 62
Cổng I/O 62
Polling 63
Các thiết bị I/O 64

Sự truy cập bộ nhớ trực tiếp (DMA) 65
Các bộ điều khiển thiết bị 67
Phần mềm Nhập/Xuất (I/O) trong OS 67
Các phần mềm ngắt (interrupts) 67
Giao diện I/O ứng dụng 68
Các đồng hồ xung 69
Hệ thống phụ Kernel I/O 72
Bộ điều khiển thiết bị 73
Hệ thống file trong OS 73
File 74
Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 5

Cấu trúc file 74
Kiểu file 74
Các file thường 74
File thư mục 74
Các file đặc biệt 74
Kỹ thuật truy cập file 75
Truy cập liên tục 75
Sự truy cập trực tiếp/ngẫu nhiên 75
Sự truy cập liên tục theo chỉ mục 75
Sự cấp phát không gian 76
Sự cấp phát liên tục 76
Sự cấp phát theo kết nối 76
Sự cấp phát theo chỉ mục 76
Bảo mật trong OS 77
Sự xác minh 77
Các mật khẩu Một lần 78

Các sự đe dọa tới chương trình 78
Các mối đe dọa tới hệ thống 79
Các phân hạng bảo vệ máy tính 79
Hệ điều hành Linux 80
Các thành phần của hệ thống Linux 81
Chế độ kernel và chế độ người dùng 81
Các đặc điểm cơ bản 82
Cấu trúc 83
Tài liệu tham khảo về OS 83
Các đường link hữu ích về Hệ điều hành 84


Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 6

Giới thiệu về Hệ điều hành
Một Hệ điều hành (OS) là một tập hợp phần mềm mà quản lý nguồn tài nguyên phần cứng của
máy tính và cung cấp các dịch vụ phổ biến cho các chương trình máy tính. Hệ điều hành là một bộ
phận mang tính sống còn của phần mềm hệ thống trong hệ thống máy tính.
Phần hướng dẫn này sẽ đưa bạn từng bước tiếp cận với các khái niệm của OS.
Loạt bài hướng dẫn của chúng tôi dựa trên nguồn tài liệu của: Tutorialspoint
Đối với độc giả
Bài tham khảo này giúp cho các sinh viên khoa học máy tính có sự hiểu biết cơ bản về các khái
niệm tiên tiến liên quan đến Hệ điều hành.
Điều kiện tiền đề
Trước khi bắt đầu tiến hành nghiên cứu phần hướng dẫn này, tôi giả sử rằng bạn đã có sự hiểu
biết về các khái niệm máy tính cơ bản như bàn phím, chuột, màn hình, thiết bị đầu vào, bộ nhớ sơ
cấp và bộ nhớ thứ cấp…. Nếu bạn chưa thực sự nắm vững các khái niệm này, thì tôi xin đề nghị
bạn nghiên cứu qua phần hướng dẫn của chúng tôi về Các khái niệm cơ sở về máy tính (Computer

Fundermentals).
Tổng quan về Hệ điều hành
Một Hệ điều hành là một trung gian kết nối giữa người sử dụng và phần cứng máy tính. Nó cung
cấp cho người sử dụng một môi trường mà trong đó một người sử dụng có thể chạy các chương
trình một cách thuận lợi và hiệu quả.
Theo ngôn ngữ kỹ thuật, nó là một phần mềm mà quản lý điều hành phần cứng. Một Hệ điều hành
điều khiển sự cấp phát của các tài nguyên và dịch vụ như bộ nhớ, các bộ xử lý, các thiết bị và
thông tin.
Định nghĩa
Một Hệ điều hành là một chương trình mà hoạt động như một giao diện giữa người sử dụng và
phần cứng máy tính và điều khiển sự thực hiện của tất cả các loại chương trình.
Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 7


Dưới đây là một vài các chức năng quan trọng của một Hệ điều hành:
 Quản lý bộ nhớ;
 Quản lý bộ vi xử lý;
 Quản lý thiết bị;
 Quản lý file;
 Bảo mật;
 Kiểm soát hiệu năng hệ thống;
 Job accounting (Thống kê kế toán);
 Giúp đỡ tìm ra lỗi;
 Kết nối giữa các phần mềm và người sử dụng.
Quản lý bộ nhớ
Là sự quản lý về bộ nhớ sơ cấp hay là bộ nhớ chính. Bộ nhớ chính là một mảng rộng của các từ
hoặc các byte, mà tại nơi đó mỗi từ hoặc byte có một địa chỉ riêng.
Copyright © vietjack.com


Trang chia sẻ các bài học online miễn phí Trang 8

Bộ nhớ chính cung cấp một kho lưu nhanh mà có thể được truy cập trực tiếp bởi CPU. Do đó để
một chương trình có thể chạy được, nó phải trong bộ nhớ chính. Hệ điều hành thực hiện các hoạt
động sau cho Quản lý bộ nhớ:
 Theo dõi bộ nhớ chính, ví dụ như phần nào đang sử dụng bởi ai đó, phần nào không sử
dụng.
 Trong chế độ đa chương trình, OS quyết định tiến trình nào chọn bộ nhớ khi nào và bao
nhiêu.
 Cấp phát bộ nhớ khi một tiến trình yêu cầu.
 Trả lại bộ nhớ khi tiến trình không cần nữa hoặc đã kết thúc.
Quản lý bộ vi xử lý
Trong môi trường đa chương trình, OS quyết định tiến trình nào nhận bộ vi xử lý khi nào và bao
lâu. Chức năng này được gọi là bản danh biểu (lịch trình) của tiến trình. OS thực hiện các hoạt
động sau để quản lý bộ vi xử lý:
 Theo dõi bộ vi xử lý và trạng thái của tiến trình. Chương trình chịu trách nhiệm cho nhiệm
vụ này được biết đến với tên gọi điều khiển luồng tín hiệu.
 Cấp phát bộ vi xử lý (CPU) tới một tiến trình.
 Trả lại cấp phát bộ vi xử lý khi tiến trình không cần nữa.
Quản lý thiết bị
OS quản lý giao tiếp thiết bị thông qua các chương trình điều khiển tương ứng của nó. Hệ điều
hành thực hiện các hoạt động sau để quản lý thiết bị:
 Theo dõi tất cả các thiết bị. Chương trình chịu trách nhiệm thực hiện nhiệm vụ này được
biết đến với tên gọi là Kiểm soát I/O.
 Quyết định tiến trình nào nhận thiết bị khi nào và trong bao lâu;
 Cấp phát thiết bị theo cách hiệu quả nhất.
 Trả lại cấp phát thiết bị.
Copyright © vietjack.com


Trang chia sẻ các bài học online miễn phí Trang 9

Quản lý file
Một hệ thống file thường được tổ chức trong các thư mục để dễ dàng cho việc điều hướng và sử
dụng. Những thư mục này có thể chứa các file và các thư mục khác. Hệ điều hành thực hiện các
hoạt động sau để quản lý file:
 Kiểm tra thông tin, vị trí, trạng thái…. Các phương tiện thu thập này thường được biết như
là hệ thống file.
 Quyết định ai nhận nguồn tài nguyên nào;
 Cấp phát nguồn tài nguyên;
 Trả lại cấp phát nguồn tài nguyên.
Các hoạt động quan trọng khác
Dưới đây là một vài các hoạt động quan trọng mà Hệ điều hành thực hiện.
 Bảo mật Với mật khẩu và các công cụ khác, ngăn chặn các sự truy cập không được cấp
phát quyền tới chương trình và dữ liệu.
 Kiểm soát hiệu năng hệ thống Ghi chép lại thời gian trì hoãn giữa yêu cầu cho một dịch
vụ và sự phản ứng lại từ hệ thống.
 Job accounting Theo dõi thời gian và nguồn tài nguyên được sử dụng bởi các công việc
và người sử dụng khác nhau.
 Giúp đỡ phát hiện ra lỗi Thông báo và phát hiện các lỗi.
 Kết nối giữa người sử dụng và phần mềm Sự kết nối và chỉ định của trình biên dịch,
phiên dịch, bộ biên mã và phần mềm khác tới các người sử dụng khác nhau của hệ thống
máy tính.
Các kiểu Hệ điều hành
Hệ điều hành có từ thế hệ máy tính đầu tiên. Hệ điều hành tiếp tục phát triển theo thời gian. Dưới
đây là một số loại Hệ điều hành mà được sử dụng phổ biến nhất.
Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 10


Hệ điều hành Batch
Những người sử dụng Hệ điều hành Batch không tương tác với máy tính một cách trực tiếp. Mỗi
người sử dụng chuẩn bị phần việc của họ trên một thiết bị off-line như các thẻ đục lỗ (punch cards)
và đệ trình nó tới người điều hành máy tính. Để tăng tốc độ xử lý, các phần việc với các yêu cầu
tương tự nhau được kết tụ lại với nhau và chạy như là một nhóm. Do đó, các nhà lập trình buông
chương trình của họ cho người điều hành. Sau đó người điều hành sắp xếp các chương trình vào
các tụ với các yêu cầu tương tự nhau.
Tuy nhiên có những vấn đề mà xảy ra với Hệ điều hành Batch như sau:
 Thiếu sự tương tác (hay giao diện tương tác) giữa người sử dụng và phần việc của họ.
 CPU thường không làm gì, bởi vì tốc đọ của các thiết bị I/O là chậm hơn CPU.
 Rất khó để cung cấp quyền ưu tiên như ý muốn.
Hệ điều hành Time-sharings
Time-sharings là một kỹ thuật mà cho phép nhiều người, ở tại các terminal khác nhau, khả năng sử
dụng một Hệ điều hành riêng biệt tại cùng một thời điểm. Thời gian của bộ vi xử lý đồng thời được
chia sẻ bởi những người sử dụng. Điểm khác nhau chính giữa Hệ điều hành đa chương trình
Batch và Hệ điều hành đa nhiệm: mục tiêu của Hệ điều hành Batch là tối đa hóa sự sử dụng của
bộ xử lý, trong khi đó mục tiêu của Hệ điều hành đa nhiệm là tối thiểu thời gian phản hồi.
Nhiều chương trình được chạy bởi CPU bằng cách chuyển mạch giữa chúng, nhưng sự chuyển
mạch xảy ra thường xuyên. Do đó, người sử dụng có thể nhận sự phản hồi ngay lập tức. Ví dụ,
trong một tiến trình truyền tải, bộ xử lý chạy mỗi chương trình người sử dụng một xung ngắn của
máy tính hóa. Đó là nếu n người đang sử dụng hiện tại, mỗi người dùng có thể nhận xung thời
gian. Khi người sử dụng đệ trình lệnh, thời gian phản hồi chỉ là trong vài giây ngắn.
Hệ điều hành sử dụng đa chương trình và biểu đồ lập chương trình CPU để cung cấp cho mỗi
người sử dụng với một phần nhỏ của thời gian. Các hệ thống máy tính mà được thiết kế đầu tiên
như Hệ điều hành Batch đã được chỉnh sửa thành dạng Hệ điều hành chia sẻ thời gian.
Các lợi thế của Hệ điều hành Time-sharings như sau:
 Lợi thế của sự phản hồi nhanh.
 Tránh được sự sao nhân của phần mềm.
Copyright © vietjack.com


Trang chia sẻ các bài học online miễn phí Trang 11

 Giảm thời gian CPU không làm việc.
Bất lợi của Hệ điều hành này là:
 Vấn đề của sự đáng tin cậy.
 QVấn đề bảo mật và tính nguyên vẹn của các chương trình và dữ liệu của người sử dụng
được đặt dấu hỏi.
 Vấn đề về sự trao đổi dữ liệu.
Hệ điều hành được phân phối (distributed)
Hệ điều hành này sử dụng nhiều bộ xử lý trung tâm để phục vụ nhiều ứng dụng và nhiều người sử
dụng. Các chương trình xử lý dữ liệu được phân phối bên trong các bộ xử lý một cách phù hợp mà
mỗi chương trình có thể thực hiện một công việc một cách hiệu quả nhất.
Các bộ xử lý giao tiếp với nhau thông qua các đường kết nối đa dạng (như các cổng bus tốc độ
cao hoặc các đường dây điện thoại). Những cái này được gọi như là các hệ thống bị ghép một
cách lỏng lẻo hoặc các hệ thống được phân phối. Các bộ xử lý trong hệ thống này có thể đa dạng
cả về kích cỡ và chức năng. Những bộ xử lý được gọi như các site, các nút, các máy tính….
Các lợi thế của Hệ điều hành được phân phối là:
 Với nguồn tài nguyên dễ dàng chia sẻ, người sử dụng tại cùng một site có thể để sử dụng
các tài nguyên có sẵn tại site khác.
 Tăng tốc độ trao đổi dữ liệu với nhau thông qua mail điện tử.
 Nếu một site bị lỗi trong hệ thống phân phối, thì các site còn lại có thể có khả năng tiếp tục
hoạt động.
 Chất lượng phục vụ tốt hơn đối với khách hàng.
 Giảm thiểu lượng tải trên máy host.
 Giảm thiểu sự trì hoãn trong quá trình xử lý dữ liệu.
Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 12

Hệ điều hành hệ thống

Network Operating System chạy trên một server và cung cấp cho server khả năng để quản lý dữ
liệu, các người sử dụng, các nhóm, sự bảo mật, các chương trình ứng dụng và các chức năng hệ
thống khác. Mục đích đầu tiên của Hệ điều hành này là để cho phép các file được chia sẻ và việc
truy cập vào máy in trong nhiều máy tính trong một hệ thống, đặc biệt như trong hệ thống mạng
LAN, hệ thống mạng cá nhân hoặc các hệ thống khác. Các ví dụ của mạng hệ thống là Microsoft
Windows Server 2003, Microsoft Windows Server 2008, Unix, Linux, Mac OS X, Novell NetWare,
và BSD.
Các lợi thế của Hệ điều hành hệ thống là:
 Server trung tâm mang tính ổn định cao.
 Sự bảo mật là được quản lý.
 Việc nâng cấp với công nghệ và phần cứng mới có thể dễ dàng được tích hợp vào trong hệ
thống.
 Có thể truy cập từ xa tới server từ các máy nội bộ và các kiểu hệ thống khác nhau.
Sự bất lợi của loại Hệ điều hành này là:
 Chi phí cao để mua sắm và chạy một server;
 Phụ thuộc vào một vị trí server trung tâm cho hầu hết các hoạt động;
 Luôn yêu cầu được duy trì và cập nhật;
Hệ điều hành thời gian thực (real time)
Hệ điều hành thời gian thực là một định nghĩa như là hệ thống xử lý dữ liệu mà trong đó khoản thời
gian cần thiết để xử lý và phản hồi tới các dữ liệu đầu vào là ngắn để mà nó kiểm soát môi trường.
Tiến trình xử lý thời gian thực thường là trực tuyến trong khi hệ thống trực tuyến không cần thiết
phải là thời gian thực. Thời gian tốn bởi hệ thống để phản hồi tới mỗi dữ liệu đầu vào và hiển thị
thông tin được cập nhật theo yêu cầu được gọi là thời gian phản hồi. Vì thế trong phương thức này
thời gian phản hồi là ít hơn khi so sánh với tiến trình xử lý trực tuyến.
Hệ điều hành thời gian thực được sử dụng khi có các yêu cầu thời gian cứng nhắc trên một hoạt
động của một bộ xử lý hoặc luồng dữ liệu và các hệ thống thời gian thực có thể được sử dụng như
Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 13


là một thiết bị điều khiển. Hệ điều hành này được xác định rõ, ràng buộc về thời gian được bố trí,
nếu không thì hệ thống sẽ gặp sự cố. Ví dụ, các thí nghiệm khoa học, các hệ thống ảnh y tế, hệ
thống vũ khí, robot, hệ thống quản lý luồng bay….
Có hai kiểu Hệ điều hành thời gian thực:
Các hệ thống thời gian thực cứng
Các hệ thống này đảm bảo rằng các nhiệm vụ quan trọng được hoàn thành đúng thời gian. Trong
hệ thống thời gian thực cứng, kho lưu thứ cấp được hạn chế hoặc bị quên với dữ liệu được lưu
trong ROM. Trong các hệ thống này, bộ nhớ ảo thường không bao giờ được tìm thấy.
Các Hệ điều hành thời gian thực mềm
Các hệ thống này thì ít có sự giới hạn hơn. Các nhiệm vụ quan trọng nhận quyền ưu tiên thực hiện
so với các nhiệm vụ khác và trả lại quyền ưu tiên tới khi nó hoàn thành. Hệ điều hành này có các
tiện ích bị giới hạn hơn các hệ thống thời gian thực cứng. Ví dụ, đa phương tiện, các dự án khoa
học tiên tiến như tham dò đáy biển, thăm dò không gian….
Các dịch vụ của Hệ điều hành
Một Hệ điều hành cung cấp các dịch vụ tới cả người sử dụng và tới các chương trình:
 Nó cung cấp các chương trình một môi trường để chạy;
 Nó cung cấp cho người sử dụng các dịch vụ để thực hiện các chương trình theo cách tiện
lợi nhất.
Dưới đây là một vài dịch vụ phổ biến được cung cấp bởi các Hệ điều hành:
 Sự thi hành chương trình
 Các hoạt động I/O
 Thao tác hệ thống file
 Giao tiếp
 Thẩm tra lỗi
 Cấp phát tài nguyên
Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 14

 Bảo vệ

Sự thi hành chương trình
Hệ điều hành vận dụng nhiều loại hoạt động từ các chương trình người dùng đến các chương trình
hệ thống như Spooler, tên server, file server…. Mỗi một hoạt động được đóng gói như là một tiến
trình.
Một tiến trình bao gồm một dãy thi hành đầy đủ (mã để chạy, dữ liệu để thao tác, đăng ký, nguồn
OS để sử dụng). Dưới đây là các hoạt động chính của một Hệ điều hành liên quan tới quản lý
chương trình:
 Tải một chương trình vào trong bộ nhớ.
 Chạy chương trình đó.
 Điều khiển sự thi hành của chương trình.
 Cung cấp một kỹ thuật cho sự đồng bộ tiến trình xử lý.
 Cung cấp một kỹ thuật cho giao tiếp tiến trình.
 Cung cấp một kỹ thuật cho việc xử lý các sự bế tắc.
Hoạt động I/O
Hệ thống phụ I/O bao gồm các thiết bị I/O và phần mềm điều khiển (drivers) tương ứng. Các bộ
điều khiển ẩn những nét đặc thù của các thiết bị phần cứng cụ thể từ người sử dụng.
Hệ điều hành quản lý giao tiếp giữa người dùng và các thiết bị drivers. Dưới đây là các hoạt động
chính của một Hệ điều hành liên quan tới hoạt động I/O:
 Hoạt động I/O nghĩa là hoạt động đọc hoặc viết bất kỳ file nào hoặc bất kỳ thiết bị I/O cụ thể
nào.
 Chương trình có thể yêu cầu bất cứ thiết bị I/O nào trong khi chạy.
 Hệ điều hành cung cấp sự truy cập tới các thiết bị I/O khi được yêu cầu.
Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 15

Thao tác hệ thống file
File đại diện cho một tập hợp các thông tin liên quan được thu thập. Máy tính có thể lưu file trên ổ
cứng (kho lưu thứ cấp), cho mục đích lưu trong thời gian dài. Một vài ví dụ của phương tiện lưu giữ
là các băng từ, đĩa từ và các đĩa quang như CD, DVD. Mỗi một phương tiện có các thuộc tính riêng

của nó như tốc độ, dung lượng, tỉ lệ trao đổi dữ liệu và các phương thức truy cập dữ liệu.
Một hệ thống file thường được tổ chức vào trong các thư mục để sử dụng và điều hướng dễ dàng.
Những thư mục này có thể chứa các file và các thư mục khác. Dưới đây là các hoạt động chính
của một Hệ điều hành liên quan tới quản lý file:
 Chương trình cần đọc hoặc viết một file.
 Hệ điều hành cung cấp sự cho phép tới chương trình để thực hiện hoạt động trên các file.
 Sự cho phép đa dạng từ chỉ đọc (read-only), đọc-viết,…
 Hệ điều hành cung cấp một giao diện tới người sử dụng để tạo/xóa các file.
 Hệ điều hành cung cấp một giao diện tới người sử dụng để tạo/xóa các thư mục.
 Hệ điều hành cung cấp một giao diện tới người sử dụng để tạo bản dự phòng (các bản sao)
của hệ thống file.
Giao tiếp
Trong hệ thống được phân phối mà là một tập hợp của các bộ xử lý không chia sẻ bộ nhớ, các
thiết bị ngoại vi, hoặc đồng hồ xung thì Hệ điều hành này quản lý sự truyền thông tin giữa các tiến
trình xử lý. Nhiều tiến trình xử lý với trao đổi thông tin với nhau thông qua các đường dẫn thông tin
trong mạng hệ thống.
Hệ điều hành kiểm soát chiến lược kết nối và tuyến đường, và các vấn đề về các sự xung đột và
bảo mật. Dưới đây là các hoạt động chính của một Hệ điều hành liên quan tới trao đổi thông tin:
 Hai tiến trình thường yêu cầu dữ liệu được truyền tải giữa chúng;
 Cả hai tiến trình có thể trên một máy tính hoặc trên hai máy tính khác nhau nhưng được kết
nối với nhau thông qua mạng hệ thống máy tính.
 Giao tiếp có thể được thực hiện theo hai phương thức: bởi Bộ nhớ được chia sẻ hoặc bởi
thông báo trao đổi.
Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 16

Kiểm soát lỗi
Các lỗi hay trục trặc có thể xảy ra bất cứ lúc nào và bất cứ đâu. Lỗi có thể xảy ra trong CPU, trong
các thiết bị I/O hoặc trong bộ nhớ cứng. Dưới đây là các hoạt động chính của một Hệ điều hành

liên quan tới kiểm soát lỗi:
 Hệ điều hành liên tục nhận biết các lỗi có thể nhận biết.
 Hệ điều hành thực hiện các hành động phù hợp để chỉnh sửa các lỗi.
Quản lý tài nguyên
Trong môi trường đa nhiệm hoặc nhiều người sử dụng, các nguồn tài nguyên như bộ nhớ chính,
CPU, và việc lưu giữ file được cấp phát tới mỗi người sử dụng hoặc mỗi công việc. Dưới đây là
các hoạt động chính của một Hệ điều hành liên quan tới quản lý tài nguyên:
 Hệ điều hành quản lý tất cả nguồn tài nguyên bằng việc sử dụng các bảng biểu lịch trình.
 Giải thuật lịch trình CPU được sử dụng để mang lại sự tiện ích hóa lớn nhất của CPU.
Trình bảo mật
Giả sử rằng một hệ thống đang có nhiều người sử dụng đang chạy đồng thời nhiều tiến trình, thì
khi đó mỗi tiến trình khác nhau phải được bảo vệ từ các hoạt động của nó.
Trình bảo mật này liên quan tới kỹ thuật hoặc phương thức để kiểm soát sự truy cập vào các
chương trình, các bộ xử lý, hoặc người sử dụng tới các nguồn tài nguyên được xác định rõ bởi hệ
thống máy tính. Dưới đây là các hoạt động chính của Hệ điều hành liên quan tới trình bảo mật:
 OS đảm bảo rằng tất cả các sự truy cập tới tài nguyên hệ thống được kiểm soát.
 OS bảo đảm rằng các thiết bị ngoại vi được bảo về từ các cố gắng truy cập không được cấp
phép.
 OS cung cấp tính năng xác minh cho mỗi người sử dụng (gọi là mật khẩu).
Các thuộc tính của Hệ điều hành
Dưới đây là các nhiệm vụ quan trọng mà Hệ điều hành kiểm soát:
Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 17

Tiến trình xử lý Batch
Tiến trình xử lý Batch là một kỹ thuật trong đó Hệ điều hành thu thập các chương trình và dữ liệu
với nhau trong một batch trước khi bắt đầu tiến trình xử lý. Hệ điều hành thực hiện các hoạt động
sau liên quan tới tiến trình xử lý batch:
 OS xác định rõ một công việc mà sắp hàng trước theo thứ tự các lệnh, các chương trình và

dữ liệu như là một đơn vị đơn lẻ.
 OS giữ số hiệu của các công việc trong bộ nhớ và thực hiện chúng mà không cần bất cứ
thông tin nhãn hiệu.
 Các công việc được xử lý theo thứ tự đề trình, ví dụ: số hiệu đầu tiên thì xử lý đầu tiên.
 Khi công việc kết thúc, bộ nhớ của nó được giải phóng và kết quả đầu ra cho công việc
được sao vào trong spool đầu ra để cho tiến trình xử lý hoặc tiến trình in sau đó.

Các lợi thế
 Tiến trình xử lý batch thực hiện nhiều công việc của người điều hành tới máy tính.
 Tăng hiệu suất: một công việc mới được bắt đầu ngay sau khi công việc trước kết thúc mà
không cần bất cứ sự xen vào nào của người điều khiển.
Các bất lợi
 Khó để gỡ lỗi (debug) chương trình.
 Một công việc có thể nhập một vòng lặp vô hạn.
Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 18

 Do thiếu lịch trình bảo mật, một Batch có thể ảnh hưởng đến các công việc đang trong
quãng thời gian chờ xử lý.
Đa nhiệm
Đa nhiệm liên quan tới khái niệm trong đó nhiều công việc được thực hiện liên tục bởi CPU bằng
cách chuyển đổi giữa chúng. Trình chuyển đổi này xảy ra liên tục để người sử dụng có thể tương
tác với mỗi chương trình trong khi nó đang chạy. Hệ điều hành thực hiện các hoạt động sau liên
quan đến đa nhiệm:
 Người sử dụng cung cấp chỉ dẫn tới Hệ điều hành hoặc tới chương trình một cách trực tiếp,
và nhận phản hồi ngay lập tức.
 Hệ điều hành điều khiển đa nhiệm theo cách mà nó có thể kiểm soát nhiều hoạt động/thực
hiện nhiều chương trình cùng một lúc.
 Hệ điều hành đa nhiệm cũng còn được biết là Hệ điều hành Time-Sharing.

 Hệ điều hành đa nhiệm được phát triển để cung cấp giao diện sử dụng của một hệ thống
máy tính ở một mức chi phí hợp lý.
 Hệ điều hành time-sharings sử dụng khái niệm lịch trình và chế độ đa chương trình CPU để
cung cấp cho mỗi người sử dụng mộ phần nhỏ của một CPU được chia sẻ phiên sử dụng.
 Mỗi người sử dụng có ít nhất một chương trình riêng trong bộ nhớ.

 Một chương trình được tải vào trong bộ nhớ và đang thực hiện một tiến trình phổ biến.
Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 19

 Khi một tiến trình thực hiện, nó chạy chỉ trong một thời gian ngắn trước khi nó kết thúc hoặc
cần thực hiện I/O.
 Khi I/O tương tác chạy, nó tốn một thời gian khá dài để kết thúc. Trong suốt thời gian này,
một CPU có thể được tiện ích hóa (trưng dụng để sử dụng) bởi một chương trình khác.
 Hệ điều hành cho phép những người sử dụng chia sẻ máy tính một cách liên tục. Khi mỗi
hoạt động hoặc lệnh trong hệ thống time-sharing dự định hoạt động trong một thời gian
ngắn, thì chỉ một phần nhỏ thời gian CPU được cần cho mỗi người sử dụng.
 Khi hệ thống chuyển đổi CPU một cách nhanh chóng từ một người sử dụng/một chương
trình tới kế tiếp, mỗi người sử dụng được cung cấp một khoảng CPU riêng cho mình, trong
khi mà một CPU thực sự đang được chia sẻ bên trong những người sử dụng.
Đa chương trình
Khi hai hoặc nhiều chương trình đang ở trong bộ nhớ tại cùng một thời điểm, thì bộ xử lý được
chia sẻ tới đa chương trình. Đa chương trình giả định một bộ xử lý được chia sẻ. Đa chương trình
làm tăng tiến ích hóa CPU bằng việc tổ chức các công việc để mà CPU luôn luôn thực hiện một
công việc.
Hình dưới biểu thị bộ nhớ cho hệ thống đa chương trình.

Copyright © vietjack.com


Trang chia sẻ các bài học online miễn phí Trang 20

Hệ điều hành thực hiện các hoạt động sau liên quan tới đa chương trình:
 Giữ một số công việc trong bộ nhớ tại cùng một thời điểm.
 Bộ tổng hợp phụ lịch trình công việc được giữ trong khu vực công việc.
 Đa chương trình chọn và bắt đầu chạy một công việc trong bộ nhớ.
 Đa chương trình giám sát trạng thái của tất cả các chương trình đang hoạt động và nguồn
tài nguyên hệ thống sử dụng chương trình quản lý bộ nhớ để đảm bảo rằng CPU không
bao giờ rảng rỗi trừ khi không có công việc nào được đệ trình.
Các lợi thế
 Tối đa sử dụng CPU ở tốc độ cao và hiệu quả.
 Người sử dụng cảm nhận rằng nhiều chương trình được cấp phát CPU một cách liên tục.
Các bất lợi
 Lịch trình CPU được yêu cầu.
 Để dàn xếp chỗ cho nhiều công việc trong bộ nhớ, chương trình quản lý bộ nhớ được yêu
cầu.
Khả năng tương tác
Khái niệm này là một người sử dụng có khả năng tương tác với hệ thống máy tính. Hệ điều hành
thực hiện các hoạt động liên quan tới khả năng tương tác như sau:
 OS cung cấp người sử dụng một giao diện để tương tác với hệ thống.
 OS quản lý các thiết bị đầu vào để nhận dữ liệu đầu vào từ người sử dụng. Ví dụ: bàn
phím.
 OS quản lý các thiết bị đầu ra để hiển thị kết quả đầu ra tới người sử dụng. Ví dụ: màn hình.
 Thời gian phản hồi hệ thống cần ngắn từ lúc người sử dụng đệ trình và chờ đợi kết quả.
Hệ thống thời gian thực
Hệ thống thời gian thực thường là các hệ thống được nhúng. Hệ điều hành thực hiện các hoạt
động sau liên quan tới hệ thống thời gian thực.
Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 21


 Trong những hệ thống này, Hệ điều hành một cách đặc trưng đọc và phản ứng lại các dữ
liệu nhạy.
 Hệ điều hành phải bảo đảm sự phản hồi tới các sự kiện trong một thời gian đã được chỉnh
trước để đảm bảo việc thực hiện chính xác.
Môi trường được phân phối
Môi trường được phân phối liên quan tới nhiều CPU hoặc bộ xử lý độc lập trong hệ thống máy tính.
Hệ điều hành thực hiện các hoạt động sau liên quan tới môi trường được phân phối:
 OS phân phối các logic kỹ thuật tính toán trong các bộ xử lý vật lý.
 Các bộ xử lý không chia sẻ bộ nhớ và một đồng hồ xung.
 Thay vào đó, mỗi bộ xử lý có một bộ nhớ nội bộ riêng.
 OS quản lý trao đổi thông tin giữa các bộ xử lý. Chúng trao đổi thông tin với nhau thông qua
các đường dẫn trao đổi đa dạng.
Spooling
Spooling là từ viết tắt cho các hoạt động ngoại vi đồng thời trên đường dây dẫn. Spooling đề cập
đến việc đặt dữ liệu của các công việc I/O đa dạng vào trong một bộ đệm. Bộ đệm này là một khu
vực đặc biệt trong bộ nhớ hoặc ổ cứng mà có thể truy cập tới các thiết bị I/O. Hệ điều hành thực
hiện các hoạt động liên quan đến môi trường được phân phối như sau:
 OS kiểm soát việc spooling các dữ liệu thiết bị I/O khi các thiết bị có các tỉ lệ truy cập dữ liệu
khác nhau.
 OS duy trì bộ đệm spooling mà cung cấp một ga chờ, tại nơi này dữ liệu có thể chờ đợi
trong khi các thiết bị chậm hơn bắt kịp nó.
 OS duy trì kỹ thuật tính toán song song bởi vì tiến trình spooling khi một máy tính thực hiện
I/O trong fashing song song. Nó có thể đọc dữ liệu từ băng, ghi dữ liệu vào đĩa và viết ra
một băng in khác trong khi nó đang thực hiện công việc tính toán.
Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 22



Các lợi thế
 Hoạt động spooling sử dụng một đĩa cứng như là bộ đệm lớn.
 Spooling có khả năng chồng các hoạt động I/O cho một công việc với các hoạt động bộ xử
lý cho công việc khác.
Các tiến trình xử lý trong OS
Tiến trình xử lý
Tiến trình xử lý là một chương trình đang thực hiện. Việc thi hành một tiến trình phải được phát
triển một cách tuần tự. Sự định nghĩa của tiến trình xử lý như sau:
 Tiến trình được xác định rõ như là một thực thể mà tượng trưng cho đơn vị cơ bản của
công việc được thực hiện trong hệ thống.
Các thành phần của tiến trình như sau:
STT
Thành phần & Miêu tả
1
Chương trình đối tượng
Mã để được chạy
2
Dữ liệu
Dữ liệu để được sử dụng cho chạy chương trình.
Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 23

3
Nguồn tài nguyên
Trong khi chạy chương trình, nó có thể yêu cầu một số nguồn tài
nguyên
4
Trạng thái
Xác định trạng thái việc thực hiện tiến trình. Một tiến trình xử lý có thể

chạy tới khi hoàn thành chỉ khi tất cả các nguồn tài nguyên được yêu
cầu đã được cấp phát tới nó. Hai hoặc nhiều tiến trình xử lý có thể
được thi hành cùng một chương trình, mỗi trong số chúng sử dụng
dữ liệu và nguồn tài nguyên riêng.
Chương trình
Một chương trình chính nó không phải là một tiến trình xử lý. Nó là một thực thể tĩnh trong khi tiến
trình xử lý là một thực thể động.
Một chương trình lấy khoảng không gian trong bộ nhớ chính và tiếp tục ở tại vị trí đó. Một chương
trình không thực hiện bất cứ hoạt động nào bởi chính nó.
Các trạng thái tiến trình
Khi một tiến trình xử lý thực hiện, nó thay đổi các trạng thái. Trạng thái của tiến trình được xác định
rõ như là hoạt động hiện tại của tiến trình.
Tiến trình xử lý có thể có một trong 5 trạng thái sau tại một thời điểm:
STT
Trạng thái & Miêu tả
1
Mới (New)
Tiến trình mới được tạo
2
Sẵn sàng (Ready)
Tiến trình đang đợi để được chỉ định tới một bộ xử lý. Hay là các tiến
trình đang trong trạng thái sẵn sàng đang đợi để có một bộ xử lý
được cấp phát cho tới chúng bởi Hệ điều hành để mà chúng có thể
Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 24

chạy.
3
Đang chạy (Running)

Các chỉ dẫn tiến trình vừa được thực hiện (ví dụ: tiến trình đang thực
hiện).
4
Đang chờ (Waiting)
Tiến trình đang chờ cho một số sự kiện xảy ra (như sự hoàn thành
của một hoạt động I/O).
5
Hoàn thành (Terminate)
Tiến trình đã kết thúc việc thực hiện.

Khối kiểm soát tiến trình, PCB
Mỗi tiến trình được biểu diễn trong một Hệ điều hành bởi một khối kiểm soát (PCB), mà cũng được
gọi là khối điều khiển nhiệm vụ. PCB là một cấu trúc dữ liệu được sử dụng bởi Hệ điều hành. Hệ
điều hành nhóm tất cả thông tin mà cần cho những tiến trình cụ thể.
PCB chứa nhiều phần thông tin liên kết với một tiến trình cụ thể mà được miêu tả trong bảng dưới
đây:
Copyright © vietjack.com

Trang chia sẻ các bài học online miễn phí Trang 25

STT
Thông tin & Miêu tả
1
Con trỏ
Chỉ tới khối điều khiển tiến trình khác. Con trỏ được sử dụng để duy
trì bảng biểu của chương trình.
2
Trạng thái tiến trình
Có thể là mới, sẵn sàng, đang chạy, đang đợi, ….
3

Bộ đếm chương trình
Chỉ địa chỉ của chỉ lệnh tiếp theo để được thực hiện cho tiến trình
này.
4
Thanh ghi CPU
Bao gồm các thanh ghi mang mục đích chung, các con trỏ stack, các
thanh ghi chỉ số,… Số lượng và kiểu của thanh ghi nhìn chung phụ
thuộc vào kiến trúc máy tính.
5
Thông tin quản lý bộ nhớ
Thông tin này có thể bao gồm giá trị của các thanh ghi cơ sở và giới
hạn, trang bảng, hoặc bảng phân đoạn phụ thuộc vào hệ thống bộ
nhớ được sử dụng bởi Hệ điều hành. Thông tin này là hữu ích cho
việc trả lại cấp phát bộ nhớ khi tiến trình hoàn thành.
6
Thông tin kế toán (thống kê)
Bao gồm dung lượng CPU và thời gian thực được sử dụng, thời gian
giới hạn, số hiệu công việc hoặc tiến trình, tổng số….

×