Tải bản đầy đủ (.doc) (17 trang)

Trình bày Nguyên lý Macroprocessor. Nêu rõ vai trò và ý nghĩa của nguyên lý này trong các giai đoạn xây dựng và hoạt động của hệ thống. Điều gì xảy ra khi nguyên lý này bị vi phạm? Cho ví dụ minh họa trong WINDOWS?

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 (588.63 KB, 17 trang )

HỆ ĐIỀU HÀNH

LỜI NÓI ĐẦU
Hệ điều hành là một phần mềm chạy trên máy tính, dùng để điều hành, quản lý các
thiết bị phần cứng và các tài nguyên phần mềm trên máy tính. Hệ điều hành đóng vai
trị trung gian trong việc giao tiếp giữa người sử dụng và phần cứng máy tính, cung
cấp một mơi trường cho phéo người sử dụng phát triển và thực hiện các ứng dụng của
họ một cách dễ dàng.
Trên cơ sở kiến thức đã học được trong môn nguyên lý Hệ điều hành và trong khn
khổ tìm hiểu đề tài bài tập lớn về Nguyên lý Macroprocessor: trình bày nguyên lý
macroprocessor trong các giai đoạn xây dựng và hoạt động của hệ thống, các vai trò
và ý nghĩa của nguyên lý trong các giai đoạn, và cả những điều xảy ra khi nguyên lý
bị vi phạm. Nguyên lý được trình bày đi kèm theo một đề tài ví dụ minh họa là
chương trình tiền biên dịch của C trong Windows để người đọc hình dung ra các bước
thực hiện. Đề tài được viết ra dựa trên tài liệu giáo trình của khoa, tài liệu trên các
trang mạng và một chút hiểu biết của bản thân.
Do kiến thức còn hạn hẹp và thời gian thực hiện khơng được nhiều nên đề tài của tơi
cịn nhiều sai sót. Tơi mong có sự đóng góp và sửa chữa để đề tài có tính khả thi và
hồn thiện hơn.
Em xin cảm ơn thầy Nguyễn Thanh Tùng đã giảng dạy em bộ môn Hệ điều hành này.

Hà Nội, ngày 15 tháng 4 năm 2023
Sinh viên: Bùi Thị Phương Thảo Chó

1


HỆ ĐIỀU HÀNH

Đề tài 02: Trình bày Nguyên lý Macroprocessor. Nêu rõ vai trò và ý nghĩa của
nguyên lý này trong các giai đoạn xây dựng và hoạt động của hệ thống. Điều gì xảy ra


khi nguyên lý này bị vi phạm? Cho ví dụ minh họa trong WINDOWS?

Phần 1: Khái quát chung.
I.
-

-

-

-

II.

-

Định nghĩa
Macro processor là gì?
Macro processor là một chương trình đọc các tập tin để tìm một số từ khóa. Khi tìm
ra một từ khóa thì nó sẽ được thay thế bằng một cụm từ nào đó. Tổ hợp từ khóa/ cụm
từ thay thế được gọi là macro. Ví dụ như là chương trình tiền biên dịch của C.
Một Macro là viết tắt cho một chuỗi các hoạt động.
Macro được sử dụng để tạo bộ sưu tập dễ dàng hơn và khả thi hơn. Macro được sử
dụng để thay thế văn bản và giúp giải quyết các vấn đề như khả năng đọc và đơn
giản.
Một hoạt động vĩ mô cho phép viết một chuỗi các hướng dẫn lắp ráp và sử dụng tên
của nó để thay thế nó. Nó chính là một bộ xử lý ngôn ngữ với cú pháp và quy tắc
riêng của mình.
Ngồi ra Macro cịn làm nhiều hơn là chỉ thay thế văn bản nơi nó là cần
thiết. Một số các tính năng bổ sung của các macro như sau:

 Macro có thể có các thơng số có giá trị có thể được thay thế trong vịng
vĩ mơ mở rộng. Điều này làm cho việc sử dụng vĩ mô năng động hơn
 Macro có thể được sử dụng để có điều kiện bao gồm mã phụ thuộc vào
một số điều kiện.này rất hữu ích cho mã số có thể khác nhau trên kiến
trúc khác nhau.
 Macro mà tồn tại trong một vĩ mô.
Nguyên lý chung của Macroprocessor trong xây dựng và hoạt động của hệ thống.

Trong hệ thống chỉ có sẵn các chương trình tiếp nhận yêu cầu và các chương
trình điều khiển. Mỗi khi có u cầu đưa vào hệ thống sẽ tạo ra chương trình
tương ứng và thực hiện chương trình vừa tạo ra.

2


HỆ ĐIỀU HÀNH

-

-

Nguyên lý làm việc này được áp dụng với cả hệ điều hành. Trên đĩa khơng có
hệ điều hành mà chỉ có các thành phần, các mơ đun từ đó có thể lắp ráp thành
hệ điều hành.
Để có thể làm việc với máy tính việc đầu tiên người ta phải nạp hệ thống, bắt
đầu từ chương trình mồi – một chương trình nhỏ làm nhiệm vụ đọc một số dữ
liệu và chương trình nhỏ, chuyển điều khiển cho chương trình này. Chương
trình được kích hoạt sẽ đọc tiếp các chương trình và các dữ liệu mới, kích hoạt
chúng,…Cứ như vậy cho đến khi có một hệ điều hành hồn thiện để cùng với
máy tính tạo thành một hệ thống đủ khả năng phục vụ người sử dụng. Hệ điều

hành chỉ thực sự tồn tại sau khi quá trình nạp hoàn thành và tồn tại trong một
khoảng thời gian khá ngắn – cho đến khi người dùng đóng và thốt khỏi hệ
thống (Shut down).

Phần 2: Nội dung trình bày và ví dụ minh họa.
I.

Trình bày ngun lý Macroprocessor? Ví dụ về vĩ mô xử lý cho C trong
Windows?
Sơ đồ các giai đoạn xây dựng và hoạt động của nguyên lý trong hệ thống:

 Nạp các phiếu yêu cầu
 Phân tích
 Thiết kế, xây dựng các chương trình tương ứng
3


HỆ ĐIỀU HÀNH

 Thực hiện chương trình và cho ra kết quả
Vĩ mơ xử lý cho C là một ví dụ điển hình về cách macro làm việc trong hội
đồng ngôn ngữ dễ nhớ để tạo thành một hệ thống đủ khả năng phục vụ người
sử dụng.
Yêu cầu về phần cứng và phần mềm trong ví dụ:
Các yêu cầu phần cứng và phần mềm cho ví dụ này được giới hạn chỉ có các
u cầu của một trình biên dịch C trên một máy UNIX hay Windows.
 Yêu cầu phần cứng:
 Pentium 60 MHz hoặc cao hơn
 8 MB Ram hoặc cao hơn
 10 MB không gian đĩa cứng miễn phí (khơng bao gồm khơng gian

hốn đổi cần thiết cho hệ điều hành).
 Yêu cầu phần mềm:
 Borland Turbo C trình biên dịch hoặc bất kỳ phiên bản khác phù hợp
với IO suối.
 Windows 98 hoặc mới hơn
 Thực hiện được trên hệ điều hành UNIX với điều chỉnh nhỏ.
1. Nạp các phiếu yêu cầu:
Để có thể làm việc được với máy tính, việc đầu tiên là chúng ta phải nạp hệ
thống(nạp chương trình mồi).
Ví dụ chương trình tiền biên dịch của C thì đầu vào phải hợp lệ C/C++ mã nguồn
trong tập tin với C.
2. Phân tích:
Nhiệm vụ này là một nhiệm vụ trước khi xử lý và không có kết quả trong trình
biên dịch của mã, nhưng là một bước trước khi biên dịch.
Macro sẽ giúp giảm thời gian xử lý và các chi phí trong các giai đoạn xây dựng và
hoạt động của hệ thống:
-

Ít sử dụng các chức năng cho gọi mã lặp đi lặp lại.

-

Ít tốn kém hơn khi các chức năng ít được sử dụng.

- Giảm thời gian xử lý. (Mặc dù, mã có thể được lặp đi lặp lại, nó là cần thiết và
khơng cần thiết. Vì vậy, mã nguồn vẫn cịn hiệu quả).
-

Cơng cụ lập trình được sử dụng bao la.


-

Giúp giảm mã spaghetti và cuối cùng làm cho mã dễ đọc hơn.

4


HỆ ĐIỀU HÀNH

- Giúp với việc sử dụng các biến thậm chí trong mã lặp đi lặp lại. Tương tự như
các thơng số cho chức năng, nhưng mà khơng có phí.
- Thay thế văn bản trong mã như người sử dụng mong muốn và không chứa tài
liệu tham khảo cũng không con trỏ.
-

Sử dụng các công cụ tiền xử lý để chuẩn bị nguồn mã cho biên soạn.

-

Biên soạn có điều kiện tùy thuộc vào kiến trúc hệ thống nhất định và yêu cầu.

- Cung cấp giá trị năng động và biến khối tĩnh của văn bản yêu cầu thay thế. (Ví
dụ, việc sử dụng # xác định với các thơng số có thể thay thếcác đoạn mã với giá trị
khác nhau được truyền cho nó). Điều này được thực hiện mà khơng cóvấn đề chi
phí lập trình gây ra bởi việc sử dụng lặp đi lặp lại các chức năng.
3. Thiết kế, xây dựng các chương trình tương ứng:
(vai trò, ý nghĩa trong các gia đoạn xây dựng và hoạt động hệ thống)
 Mơ-đun chi tiết:
Chương trình chủ yếu chia thành hai phần chính. Logic theo sau là một bộ xử lý
hai vượt qua. Đèo đầu tiên thực hiện quét cho các macro và làm cho một mục nhập

của macro sẽ được tìm thấy trong mã nguồn chính. Đèo thứ hai qt thay thế của
các macro trong mã nguồn chính. Trong các mơ-đun, nó có thể được tiếp tục chia
nhỏ cho các mơ-đun nhỏ khác cho sự hiểu biết tốt và tinh tế hơn.
 Đèo đầu tiên:
Đèo đầu tiên thực hiện chức năng quét của các macro. Các loại macro ở đây
thường rất đơn giản. Các mơ-đun ở đèo đầu tiên thường có các chức năng kiểm tra
lỗi và tập tin chuẩn bị.
Ví dụ về một trình biên dịch C:
Thuật tốn đèo 1:
 Tìm kiếm # xác định vị trí
 Nhập tên macro và gõ MNT(tên bảng macro)
 Nhập định nghĩa vĩ mô trong MDT(Mcro định nghĩa)
 Nhập bắt đầu và kết thúc của MDT trong MNT.
Macro một dịng có dấu hiệu khởi đầu của họ với các biểu tượng '#' và kết thúc
với các ký tự xuống dịng '\ n'. Do đó, nếu một dịng mới là gặp phải trước khi
tên vĩ mơ và định nghĩa, sau đó vĩ mơ có trước khi kết thúc chín chắn. Cuộc
gặp gỡ như vậy khơng nên dừng lại công việc tiền xử lý, nhưng chỉ đơn thuần
là làm nổi bật các lập trình viên là có lỗi với tờ khai vĩ mô. Lỗi mà bỏ qua được
đưa về chăm sóc trong các đường chuyền tiếp theo.
o Chức năng
a) Kiểm tra lỗi:
5


HỆ ĐIỀU HÀNH

Lỗi được đánh dấu để các lập trình viên khi có yêu cầu, sửa chữa khác càng
nhiều càng tốt. Ví dụ, khoảng trắng thường khơng bao giờ được coi như một
phần của thói quen biên dịch
b) Tập tin Chuẩn bị:

Macro được phát hiện và báo cáo thành công và chương trình đầu vào được lưu
trữ trong một tập tin khác nhau mà khơng có các macro. Tên vĩ mơ và các định
nghĩa được lưu trữ trong một cấu trúc. Nhưng kiểm tra lỗi vẫn tiếp tục, hai biến
mà giữ các giá trị cho tên vĩ mô và định nghĩa vĩ mô. Các tập tin là một lựa
chọn tốt hơn nhưng số lượng của các macro có thể là rất lớn. Mảng sẽ không
phù hợp để giữ các giá trị như xử lý nhân vật mảng trong C rất nhạy cảm và tốn
kém. Vì vậy, mục cho các macro không nên được ghi vào file, nếu có bất kỳ sai
sót trong q trình qt đó đặc biệt vĩ mơ.
 Đèo thứ hai:
Đèo thứ hai liên quan đến việc thay thế các macro và loại bỏ họ định nghĩa như họ
khơng thẻ mà khơng có ý nghĩa để trình biên dịch. Tuy nhiên, nó có nền tảng hơn
q trình chạy, trong q trình hồn thành thay thế các macro và chuẩn bị các mã
nguồn thức. Đèo thứ hai mơ-đun có các tính năng: Error- Checking, qt cho các
từ khóa,vĩ mơ mở rộng, tập tin chuẩn bị.
Ví dụ về một trình biên dịch C:
o Thuật tốn đèo 2:
 Đọc chuỗi từ mã nguồn cho đến khi nhân vật phá vỡ tìm thấy được:S1
 Tìm kiếm S1 trong MNT
Nếu tìm thấy sau đó
Take type, argc from MNT : T, argc
(arg_index là chỉ số của các đối số; arg_name là đối số)
If tt=”O” || argc=0
Có được bắt đầu,kết thúc chỉ số từ MNT nhập
For i=start to end
Extract MDT[i]
Trích xuất thân cột B1
Sao chép B1 đến tập tin đích
Đặt con trỏ tới dòng tiếp theo
End for
Sao chép nhân vật tĩnh để file đích

Else
Argtc=0
I=1
While ch = “)”
Đọc ch từ tập tin
While not ch = “,”
6


HỆ ĐIỀU HÀNH

Str=str+ch
End while
Set argt[i]=str
Đọc tiếp theo ch
End while
For i=start to end
Extract MDT[i]
Trích xuất thân cột B1 :str1
Nếu khơng có # trong str1
Sao chép cột B1 đến tập tin đích
Đặt con trỏ tới dong tiếp theo
Else
Finalstr=nul
I=0
While iIf str[i]=#
{
Đọc trong chuoix tiếp theo cho đến u có được số khơng
Character; str2

Nhận được giá trị từ argt[str2] vall
Finalstr=finalstr+vall
I=str2.length+i+1;
}
Else
{
Finalstr=finalstr+str[i]
I++
}
Sao chépfinalstr để đến tập tin
Set con trỏ tới dịng tiếp theo
End for
Else
Sao chép tập tin đích + phá vỡ nhân vật.
o Chức năng:
a) Error-Checking
Khoảng trắng lại một lần nữa là một lỗi lập trình phổ biến mà khơng cần trì
hỗn q trình biên dịch. Vì vậy, khi một tên vĩ mô đang gặp phải,các chức
năng quét nên bắt đầu một lần cuối khoảng trắng. Lỗi nhỏ khác nên được nhìn
thấy và báo cáo và theo thơng qua nếu poss nhìn thấy được.
b) Qt cho các từ khóa:
7


HỆ ĐIỀU HÀNH

Cho việc thiết kế bộ vi xử lý vĩ mơ trong dự án này, có hai từ khóa mà yêu cầu
được thực hiện. Từ khoá đầu tiên là '#' biểu tượng. Điều này biểu tượng có thể
mang hai ý nghĩa-một định nghĩa macro hoặc một chỉ thị có điều kiện vĩ mơ.
Do đó, các chỉ thị vĩ mơ theo các biểu tượng '#' nên được quét để xác định

những hành động được thực hiện.
c) Vĩ mô mở rộng:
Đây là một phần rõ ràng của công việc tiền xử lý. Từ tên vĩ mô và định nghĩa
vĩ mô tương ứng được lưu trữ trong cấu trúc mở rộng là chỉ thị cần thay thế tên
vĩ mơ với định nghĩa của nó. Nếu khơng có tên vĩ mơ tồn tại cho các từ khóa
tìm thấy, sau đó các lỗi cần được nhấn mạnh và các văn bản cần được duy
trì. Nếu tên vĩ mơ là khơng hợp lệ, sau đó có thể là văn bản đang được u cầu
đầu ra khơng đổi. Điều này có thể xảy ra trong báo cáo printf. Tuy nhiên, nếu
tên vĩ mô không tồn tại, các định nghĩa tương ứng cũng không đổi.
d) Tập tin chuẩn bi:
Cuối cùng, đầu ra của chương trình sẽ là một tập tin C đã sẵn sàng để biên
dịch. Các tập tin cuối cùng sẽ được miễn phí tất cả các chỉ thị vĩ mơ như '#'
biểu tượng. Quan trọng nhất, là tất cả các xử lý và nguồn lực cần được phát
hành. Tập tin mới được tạo nên có phần mở rộng C.
 Chi tiết mơ-đun:
Thực hiện 2 bộ vi xử lý vĩ mô vượt qua. Làm việc cơ bản của Passes như sau:
 Vượt qua 1:
 Kiểm tra tất cả đang hoạt động.
 Lưu tất cả các định nghĩa vĩ mô trong một MDT (Macro Bảng xác định).
 Lưu một bản sao của văn bản đầu vào, trừ định nghĩa vĩ mô trên lưu trữ thứ cấp
để sử dụng trong các đường chuyền II.
 Chuẩn bị một tên bảng vĩ mô (MNT)
 Vượt qua 2:
 Kiểm tra tất cả các chuỗi trong chương trình
 Thay thế mỗi tên vĩ mơ với các văn bản thích hợp từ vĩ mơ định nghĩa.
4. Thực hiện chương trình và đưa ra kết quả:
Mã sẽ được tạo ra với sự mở rộng của Macro và khơng có định nghĩa vĩ mơ. Các
cấu trúc dữ liệu sẽ được sử dụng cho chế biến. Các cấu trúc dữ liệu cũng sẽ được
cung cấp như một đầu ra.
Cụ thể cấu trúc dữ liệu khác nhau được sử dụng và định dạng của họ trong ví dụ

như sau:
 Cấu trúc dữ liệu

8


HỆ ĐIỀU HÀNH

9


HỆ ĐIỀU HÀNH

Có 3 cấu trúc dữ liệu tham gia vào một bộ xử lý vĩ mô thông qua: MDT(hay DETAB),
MNT(hay NAMTAB), ARG(hay ARGTAB)

-

Vượt qua 1:
 Đầu vào vĩ mô nguồn boong.
 MDT, được sử dụng để lưu trữ các định nghĩa vĩ mô
 MNT, được sử dụng để lưu trữ tên của các định nghĩa vĩ mô
 ALA (Đối số Danh sách Array), để thay thế đánh dấu chỉ mục cho đối
số giả. Trước khi lưu trữ các nét vĩ mô
10


HỆ ĐIỀU HÀNH

-


Vượt qua 2:
 Sản lượng mở rộng nguồn boong được sử dụng làm đầu vào cho lắp ráp.
 MDT và MNT được tạo ra bởi đèo I.
 ALA (Đối số Danh sách Array), để thay thế đối số gọi vĩ mô cho các chỉ
số đánh dấu trong định nghĩa vĩ mơ được lưu trữ. 
Hình ảnh minh họa các bước thực hiện trong ví dụ trên:

11


HỆ ĐIỀU HÀNH

12


HỆ ĐIỀU HÀNH

13


HỆ ĐIỀU HÀNH

II. Vai trò và ý nghĩa của nguyên lý trong xây dựng và hoạt động của hệ thống.
1. Vai trò
- Thay thế được hiệu quả các mã với sự giúp đỡ của macro.
14


HỆ ĐIỀU HÀNH


-

Sử dụng được các khái niệm như tập tin con trỏ, cấu trúc để thực hiện nhiệm vụ
của mình.
- Lỗi nổi bật do macro mà các lập trình viên có thể khắc phục trước khi các mã
được gửi cho biên soạn chứ khơng để sai sót trong q trình biên dịch.
- Sản xuất được các tập tin đầu ra, ngay cả khi có là lỗi hoặc cảnh báo trong các
tập tin đầu vào.
- Duy trì một tập tin đầu vào riêng biệt và một tập tin đầu ra riêng biệt để xác
minh dữ liệu và cải chính.
- Duy trì tên vĩ mơ và định nghĩa của họ trong cấu trúc, do đó làm giảm số lượng
tài nguyên liên quan đến mảng ký tự và rất hữu ích để gỡ lỗi các mục đích.
- Tab và khoảng trắng và nội dung ban đầu của tập tin đầu vào được duy trì thậm
chí khi họ cịn trong các tập tin mã nguồn thức.
2. Ý nghĩa:
- Nguyên lý được thiết lập để giúp các lập trình viên làm việc với các mảng và
các tập tin tốt hơn. Các macro có thể được sử dụng để thực hiện nhiệm vụ
thường xuyên như sắp xếp các yếu tố tăng dần hoặc giảm dần, hoặc để mở tập
tin với một tên tập tin nhất định và tập tin chế độ. Những chi tiết cụ thể có thể
được áp dụng với nhiều đầu vào từ các lập trình viên để giảm bớt số lượng
nhập và giúp tăng khả năng đọc. Tạo ra được một hệ thống tốt và đủ khả năng
phục vụ người sử dụng.
III. Vi phạm
Điều gì xảy ra khi nguyên lý này bị vi phạm?
Nguyên lý này thường xảy ra vi phạm ở hai phần: thông tin xác nhận và tên chỉ thị.
1. Vi phạm về thông tin xác nhận cơ bản:
 Các tên của tập tin là đầu vào được đưa ra như một tham số với việc thực hiện
chương trình. Nếu tên tập tin được cung cấp như là đầu vào không hợp lệ hoặc
không tồn tại trong thư mục hiện hành, chương trình sẽ kết thúc và báo cáo rằng

các tập tin không tồn tại hoặc không thể mở được.
Khắc phuc: Các tập tin đầu vào đã tồn tại trước khi xử lý.
2. Vi phạm về tên của chỉ thị:

15


HỆ ĐIỀU HÀNH

 Đối với tiết kiệm vĩ mô, chỉ # xác định macro được đưa về chăm sóc. Các macro
khác được xem như lỗi cho các lần trước, nhưng có thể có giá trị cho các đường
truyền tiếp theo. Các chương trình làm nổi bật tất cả các chỉ thị khác không được #
xác định là lỗi có thể có và có thể u cầu cải chính. Các chỉ thị khơng phù hợp,
được bao quanh *** cùng với số dịng để đưa nó đến sự chú ý của các lập trình
viên. Chăm sóc cần được thực hiện bởi các lập trình để khơng bao gồm các bộ
phận của nguồn dự định mã trong cùng một dòng như một chỉ thị tiền xử.

16


HỆ ĐIỀU HÀNH

MỤC LỤC:
LỜI NÓI ĐẦU.......................................................................................................................... 1
Phần 1: Khái quát chung...................................................................................................2
I.

Định nghĩa..........................................................................................................................2

Macro processor là gì?................................................................................................................2

II.

Nguyên lý chung của Macroprocessor trong xây dựng và hoạt động của hệ thống...........2

Phần 2: Nội dung trình bày và ví dụ minh họa...................................................................3
I.

Trình bày ngun lý Macroprocessor? Ví dụ về vĩ mơ xử lý cho C trong Windows?.............3
1. Nạp các phiếu yêu cầu:......................................................................................................................4
2. Phân tích:............................................................................................................................................4
3. Thiết kế, xây dựng các chương trình tương ứng:.............................................................................5
(vai trị, ý nghĩa trong các gia đoạn xây dựng và hoạt động hệ thống).........................................................5
4. Thực hiện chương trình và đưa ra kết quả:.....................................................................................9

II.

Vai trò và ý nghĩa của nguyên lý trong xây dựng và hoạt động của hệ thống.................16

1.
2.

Vai trò............................................................................................................................................... 16
Ý nghĩa:.............................................................................................................................................16

III.

Vi phạm.........................................................................................................................16

1.
2.


Vi phạm về thông tin xác nhận cơ bản:..........................................................................................16
Vi phạm về tên của chỉ thị:..............................................................................................................16

17



×