Hoc Tap
Learning
 
HomeHome  FAQFAQ  SearchSearch  RegisterRegister  Log inLog in  
Post new topic   Reply to topic
 

Thao Luan Sau Khi Thi Lop HCTH062D

View previous topic View next topic Go down 
AuthorMessage
pham xuan truong




Joined : 22 Jul 2007
Posts : 3

PostSubject: 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
Back to top Go down
To Tuan
Admin



Age : 53
Joined : 08 May 2007
Posts : 190

PostSubject: 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:

Back to top Go down

Thao Luan Sau Khi Thi Lop HCTH062D

View previous topic View next topic Back to top 
Page 1 of 1

Permissions of this forum:You cannot reply to topics in this forum
Hoc Tap :: Môn học HĐH :: Hệ Điều Hành-
Post new topic   Reply to topic