pham xuan truong
Joined : 22 Jul 2007 Posts : 3
| Subject: Thao Luan Sau Khi Thi Lop HCTH062D 22/7/2007, 16:19 | |
| Kính Chào Thầy Em : Phạm Xuân Trường Lớp : HCTH062D Mục Quản : 66 Mă số : 106ĐH220 Đầu tiên em xin cám ơn thầy đă lập ra diễn đàn này đề chúng em trao đổi nâng cao kiến thức và để thầy hiểu nắm rơ sức học của chúng em. Khi tham gia diễn đàn này em đă từ từ lấp được những khoảng trống trong kiến thức , em hiểu bài hơn . Trong ḱ thi vừa qua , do em chưa chuần bị bài kĩ nên trong bài thi em c̣n có những thiếu sót . Thông qua diễn đàn này em xin bổ sung thêm những thiếu sót mong Thầy xem xét.Sau đây là cách tŕnh bày của em.
câu 1 Nêu ư nghĩa, mục tiêu và cấu trúc môn học. Câu này em hiểu nhưng trả lời chưa đủ ư lắm. a) Ư nghĩa Hiểu sâu nguyên lư hoạt động của phần cứng và phần mềm máy tính. Học phương pháp phân tích,thiết kế và lập tŕnh một hệ thống lớn để áp dụng cho công tác nghiệp vụ sau này. b) Mục tiêu Cung cấp các khái niệm cơ bản về cấu trúc và hoạt động của hệ điều hành c) Cấu trúc môn học - khái niệm chung,lịch sử,phân loại hệ điều hành. -Nguyên lư và hoạt động các khối chức năng. -Giới thiệu ḍng hệ điều hành Windows NT/ 2000/ XP/2003. Câu 2 Quá tŕnh khởi động máy tính và hệ điều hành. Câu này em trả lời c̣n thiếu ư chưa đầy đủ lắm. - sau khi bật nguồn, chương tŕnh mồi Bootstrap lấy từ ROM hoặc EFPROM được khởi động với chức năng khởi hoạt các thiết bị hệ thống : Các thanh ghi CPU, Bộ nhớ,Disk Controllers,… Sau đó khởi động hạt nhân của HĐH nạp từ đĩa cứng. - Hạt nhân (Kernel, Monitor) của HĐH khởi động tiến tŕnh đầu tiên gọi là INIT (Initialization) và chờ các sự kiện (Event) có thể xảy ra. Câu 3 Phân tích vai tṛ của command-interpreter và qua đó phân biệt thông dịch với biên dịch. - Là một phương thức giao tiếp giữa User và Hệ điều hành. - Một số Hệ điều hành coi command-interpreter là bộ phận của hạt nhân (kernel) trong khi Ms-Dos và UNIX coi là chương tŕnh đặc biệt. - Giao diện do command-interpreter hỗ trợ được gọi là Shell. - Một trong những “vơ” thân thiện đầu tiên xuất hiện trong hệ điều hànhMac OS cho máy tính Macintosh. • Thông dịch : thực hiện từng lệnh một,lỗi đâu báo liền. • Biên dịch : thực hiện từ một đoạn mă code sau đó nó biên dịch lai thành mă máy rồi chạy và xuất ra kết quả. Câu 4 Mô h́nh chuyển trạng thái của tiến tŕnh. Câu này em tŕnh bày được mô h́nh nhưng chưa chú thích đầy đủ
 Câu 5 Phát biểu bài toán produce-consemer với thuật giải đồng bộ hóa bằng 2 đèn hiệu. Giả sử p1 có mă s1, p2 có mă s2 cần tổ chức sau cho s2,cần tổ chức sao cho s2 chỉ thực thi sau s1.
 *) Giải Thuật #include <stdio.h> #include <conio.h> #include <windows.h> #define BUFFER_SIZE 10 int buffer[BUFFER_SIZE]; char s[BUFFER_SIZE]; int in=0; int out=0; int nextProduced=1; HANDLE semEmpty, semFull; // Hai đèn hiệu CRITICAL_SECTION critSec; // Biến kiểu Mutex void Producer(void * p){ while (1) { // ... Sản xuất (nextProduced) // Chờ đến khi có chỗ trống WaitForSingleObject(semEmpty, INFINITE); EnterCriticalSection(&critSec); buffer[in]=nextProduced++; switch ((int)p){ case 1: s[in]=’P’; break; case 2: s[in]=’p’; break; default: s[in]=’S’; }; in=(in+1)%BUFFER_SIZE; // Tăng (semFull) lên 1 ReleaseSemaphore(semFull, 1, NULL); LeaveCriticalSection(&critSec); SuspendThread(GetCurrentThread()); } } void Consumer() { int nextConsumed; while (1) { // Chờ đến khi có sản phẩm WaitForSingleObject(semFull, INFINITE); EnterCriticalSection(&critSec); nextConsumed=buffer[out]; out=(out+1)%BUFFER_SIZE; // Tăng (semEmpty) lên 1 ReleaseSemaphore (semEmpty, 1, NULL); LeaveCriticalSection(&critSec); // ... Tiêu thụ (nextConsumed) SuspendThread(GetCurrentThread()); } } void ShowBuffer() { // In nội dung bộ đệm const char * LeftMargin="\n "; int i; printf(LeftMargin); for(i=0; i<(in*5); i++) putchar(' '); printf("!in");
printf(LeftMargin); for (i=0; i<BUFFER_SIZE-1; i++) printf("%c%2d, ", s[i], buffer[i]); printf("%c%2d", s[BUFFER_SIZE-1], buffer[BUFFER_SIZE-1]); printf(LeftMargin); for(i=0; i<(out*5); i++) putchar(' '); printf("^out"); printf("\n"); } int main() { HANDLE ProducerHandle1, ProducerHandle2; HANDLE ConsumerHandle1, ConsumerHandle2; DWORD ProducerID1, ProducerID2; DWORD ConsumerID1, ConsumerID2; semEmpty=CreateSemaphore(0, BUFFER_SIZE, BUFFER_SIZE, 0); semFull=CreateSemaphore(0, 0, BUFFER_SIZE, 0); InitializeCriticalSection(&critSec); // Tạo các luồng nhưng ở trạng thái ngủ (Suspend) ProducerHandle1=CreateThread(0,0, (LPTHREAD_START_ROUTINE)Producer, (void *) 1, 4, &ProducerID1); ProducerHandle2=CreateThread(0,0, (LPTHREAD_START_ROUTINE)Producer, (void *) 2, 4, &ProducerID2);
ConsumerHandle1=CreateThread(0,0, (LPTHREAD_START_ROUTINE)Consumer, 0, 4, &ConsumerID1); ConsumerHandle2=CreateThread(0,0, (LPTHREAD_START_ROUTINE)Consumer, 0, 4, &ConsumerID2); while(1) { printf("\n- Nhấn P/p để sản xuất, C/c để tiêu thụ:"); switch (getch()) { case 'P': // Đánh thức luồng SX 1 ResumeThread(ProducerHandle1); break; case 'p': // Đánh thức luồng SX 2 ResumeThread(ProducerHandle2); break; case 'C': // Đánh thức luồng TT 1 ResumeThread(ConsumerHandle1); break; case 'c': // Đánh thức luồng TT 2 ResumeThread(ConsumerHandle2); break; case '0': // Kết thúc ứng dụng printf("\n"); CloseHandle(semEmpty); CloseHandle(semFull); DeleteCriticalSection(&critSec); return 0; } EnterCriticalSection(&critSec); ShowBuffer(); LeaveCriticalSection(&critSec); Câu 6 Trong Linux,so sánh Soft Link vớI Hard Link và tŕnh bày cách tạo lập.
1. Soft Link (Liên kết tắt mềm) - Như tập tin.LNK trong Windows. - Lệnh tạo lập: $ ln -s /bin mybin $ ls -l mybin lrwxrwxrwx 1 mk books 9 May 23 16:14 mybin->/bin $ ln -s /bin/calculator.exe /programs/calc $ /programs/calc 2.Hard Link (Liên kết tắt cưng ) - Không có khái niệm tương đương trong Win 9X. - Lệnh tạo lập : $ cat >testfile Cong Hoa Xa Hoi Chu Nghia Viet Nam Doc lap - Tu do - Hanh phuc ^[ $ ls -l test* -rw-rw-r-- 1 mk books 50 May 13 18:30 testfile $ ln testfile test1 $ ls -l test* -rw-rw-r-- 2 mk books 50 May 13 20:41 test1 -rw-rw-r-- 2 mk books 50 May 13 18:30 testfile $ ln testfile test2 hoặc ln test1 test2 $ ls -l test* -rw-rw-r-- 3 mk books 50 May 13 20:41 test1 -rw-rw-r-- 3 mk books 50 May 13 20:46 test2 -rw-rw-r-- 3 mk books 50 May 13 18:30 testfile $ rm testfile test1 $ ls -l test* -rw-rw-r-- 1 mk books 50 May 13 20:46 test2 $ cat test2 Cong Hoa Xa Hoi Chu Nghia Viet Nam Doc lap - Tu do - Hanh phuc A. Cách tạo lập a) Soft Link Tập tin .LNK (shortcut) - tạo lập qua giao diện Windows Explorer - Tạo lập bằng VBScript và JavaScript - Tạo lập bằng Visual Basic 6.0 Dùng Windows Script Host Object Model với tham chiếu đến \Windows\System32\WSHOM.ocx b) Hard Link ( Tạo liên kết tắt cứng trong Windows NT/2000/XP/2003 trong hệ tập tin NTFS) Tạo lập bằng hàm CreateHardLink của Win32 API Câu 7 Ở câu này em hiểu và làm được nhưng không biết cách tŕnh bày có đúng ư thầy hay không . Nếu có ǵ sai sót , c̣n thiếu mong thầy chỉ cho em thêm. a)chứng minh trạng thái này an toàn ta có Available = 4-3=1 Nedd = Max- Allocation

vậy tồn tại chuổi an toàn < p1,p2,p3 > vậy trong trạng thái hệ thống ở thời điểm Ti là an toàn. b) xác định có nên đáp ứng hay không yêu cầu xin thêm 1 ổ nữa của p2 . Giả sử p2 bây giờ nêu yêu cầu mới là 1 Yêu cầu này phải thỏa các điều kiên sau: 1. Request1 <= Need1 v́ 1 <= 1 2. Request1 <= Available v́ 1 <= 1 Như vậy đủ để cấp nhưng nếu đáp ứng,hệ sẽ chuyển sang trạng thái không an toàn do không tồn tại chuổi an toàn.
Trên đây là các cách tŕnh bày của em . Nếu có sơ sót hoặc c̣n thiếu mong thầy góp ư cho em để lần sau em làm tốt hơn . Em rất cám ơn thầy |
|
To Tuan Admin

Age : 53 Joined : 08 May 2007 Posts : 190
| Subject: Loi giai cua ban Truong 23/7/2007, 09:50 | |
| Bạn Trường tŕnh bày lại lời giải của minh rất tốt.
Cách giải Câu 7 về cơ bản là đúng, nhưng cần bổ sung thêm cho đầy đủ: Tại sao không t́m được chuỗi an toàn?
Phần lư thuyết, nên hạn chế Copy/Paste mà tŕnh bày theo cách hiểu của ḿnh (đọc kỹ tài liệu rồi hiểu thế nào tŕnh bày thế đấy, thế mới giá trị và Thày cần như vậy)
Bạn Trường không làm được Câu 8, nhưng thử giải và tŕnh bày xem thế nào.
Các bạn khác cũng thử làm như bạn Trường.
Đây là cơ hội học tập và cải thiện điểm, ít nhất cũng để thi Lần 2 cho tốt hơn.
Bạn Trường hướng dẫn các bạn Quy tŕnh đưa một Image (ảnh bitmap) vào nội dung trả lời của ḿnh (xen kẽ với văn bản), như trong ví dụ dưới đây:

Lời giải Câu 8 có dạng: Từ http://www.imgspot.com:

hoặc từ http://www.photobucket.com:
 |
|