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 (590.15 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 khuôn
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à
hoà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, tháng 10 năm 2013
Sinh viên: Hứa Văn Điểm
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. Đị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.
- Ngoà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ô.
II. 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ó yê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.
- 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.
2
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 hoà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à thoá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 nguyên 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
 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.
3
HỆ ĐIỀU HÀNH
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
yê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
hoá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.
- 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.
4
HỆ ĐIỀU HÀNH
- 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 quét 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 toá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:
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
5
HỆ ĐIỀU HÀNH
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 quá trình quét đó đặ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
quá trình chạy, trong quá trình hoà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, quét 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 toá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 = “,”
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
6
HỆ ĐIỀU HÀNH
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 i<str.length
If 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ì
hoãn quá 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) Quét cho các từ khóa:
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
7
HỆ ĐIỀU HÀNH
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 yê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 quá 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ể yê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
Phần 2: Nội dung trình bày và ví dụ minh họa 3
17

×