Tin học
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Những Bài Tập Thực Hành Môn Hệ Điều Hành -Thầy Vũ Lê Hùng - Chủ đề 3: Quản lý bộ nhớ

Go down

Những Bài Tập Thực Hành Môn Hệ Điều Hành -Thầy Vũ Lê Hùng - Chủ đề 3: Quản lý bộ nhớ  Empty Những Bài Tập Thực Hành Môn Hệ Điều Hành -Thầy Vũ Lê Hùng - Chủ đề 3: Quản lý bộ nhớ

Bài gửi  NguyenMinhHoang10H1012029 5/11/2011, 03:57

1. Tài liệu tham khảo
- The Design of the UNIX Operating System- Andrew S. Tanenbaum, Chương 7
- Interprocess Communications in UNIX-The Nooks and Crannies.
- Tài liệu hướng dẫn thực hành Hệ điều hành, Hồ Quốc Thuần.
2. Tìm hiểu các hàm truy cập bộ nhớ :
- Tìm hiểu cách tạo quá trình trong UNIX dùng hàm fork( ).
- Tìm hiểu cách cấp phát bộ nhớ cho quá trình trong hệ điều hành UNIX.
- Tìm hiểu các hàm cho phép lấy các thông tin về vùng nhớ cấp cho quá trình cũng như cho phép thay đổi các vùng nhớ đó.
3. Ngôn ngữ lập trình sử dụng: C trên UNIX

Bài 3.1 :
Viết chương trình có khai báo 4 biến như sau:
- global là biến nguyên toàn cục không khởi động trị.
- local là biến nguyên khai báo cục bộ trong hàm doNoth( ) (hàm này không làm gì cả)
- intarray là một con trỏ đến biến kiểu nguyên.
Trong hàm main(), hãy gán global=1, sau đó in địa chỉ các segment của quá trình ra màn hình. Cho biết địa chỉ các biến global, local và intarray (1). Tiếp theo, hãy dùng hàm fork() tạo ra một quá trình con. Cho biết giá trị các địa chỉ trên ở trong quá trình con (2). Hãy gán global=2 trong quá trình con và cho biết giá trị mới của biến global trong quá trình con và quá trình cha.
Trong quá trình cha, sau khi dùng fork(), hãy gọi hàm doNoth(), sau đó dùng malloc() để xin một vùng nhớ cho một mảng 10 số nguyên và gán địa chỉ đầu mảng vào biến intarray.
Trả lời các câu hỏi sau:
- Biến global là biến chung hay biến riêng của từng quá trình?
- Biến intarray của quá trình cha nằm trên stack hay trên heap?
- Biến local của quá trình cha nằm trên stack hay trên heap?
- Các địa chỉ ở (1) và (2) có khác nhau không? Giải thích?
Bài 3.2 :
Viết các hàm mymalloc() và myfree() dựa trên các hàm cung cấp sẵn là brk() và sbrk().

NguyenMinhHoang10H1012029

Tổng số bài gửi : 9
Join date : 02/09/2011

Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết