kiem tien, kiem tien online, kiem tien truc tuyen, kiem tien tren mang
Thứ Hai, 28 tháng 5, 2012



Câu 1:Tổ chứ của hệ thống quản lí nhập xuất ntn?
     LG:
-         Câu trúc của nhập xuất:
        + Nhập xuất » cách thức liên lạc giữa CPU và các DC.
   + Mỗi DC đăng ký 1 hoặc 1 tập thanh ghi + 1 vùng nhớ đệm cục bộ (local buffer)
   + CPU gởi yêu cầu xử lý đến DC qua thanh ghi à DC xử lý và đưa dữ liệu kết quả ra local buffer.
-         Cơ chế nhập xuất:
   + Nhập xuất đồng bộ : DC hoặc CPU sau khi yêu cầu xử lý sẽ chờ cho đến khi nhận được kết quả thích hợp.
        + Nhập xuất không đồng bộ : DC hoặc CPU sau khi yêu cầu xử lý tiếp tục làm công việc khác, chỉ nhận kết quả bằng 1 thông báo bởi 1 ngắt phát sinh do DC được yêu cầu.





Câu 2 : Có bao nhiêu loại thiết bị nhập , xuất .Cho VD 
Trả lời : Có 2 loại thiết bị nhập xuất 
_ Thiết bị khối : 
Các DL được lưu trong khối có kích thước cố định và được định vị bởi địa chỉ .Kích thước thông thường của mỗi khối khoảng từ 128 bytes đến 1024 bytes . Đặc điểm của loại thiết bị này là có thể truy xuất từng khối riêng biệt và truy xuất ngẫu nhiên . 
VD : Đĩa cứng , đĩa mềm , ổ cứng , ... 
_ Thiêt bị tuần tự : 
Việc gửi nhận thông tin dựa trên là chuỗi các bits , không có xác định địa chỉ và không thể truy xuất ngẫu nhiên được . 
VD : Màn hình , máy in , card mạng , ...

Câu 3 : Vai trò của bộ điều khiển thiết bị ? 
Chức năng của bộ điều khiển là giao tiếp với hệ điều hành vì hệ điều hành không thể truy xuất trực tiếp với thiết bị. Việc thông tin thông qua hệ thống đường truyền gọi là bus. 
Công việc của bộ điều khiển là chuyển đổi dãy các bit tuần tự trong một khối các byte và thực hiện sửa chửa nếu cần thiết. Thông thường khối các byte được tổ chức thành từng bit và đặt trong buffer của bộ điều khiển. Sau khi thực hiện checksum nội dung của buffer sẽ được chuyển vào bộ nhớ chính. Ví dụ : bộ điều khiển cho màn hình đọc các byte của ký tự để hiển thị trong bộ nhớ và tổ chức các tín hiệu để điều khiển các tia của CRT để xuất trên màn ảnh bằng cách quét các tia dọc và ngang. Nếu không có bộ điều khiển, lập trình viên hệ điều hành phải tạo thêm chương trình điều khiển tín hiệu analog cho đèn hình. Với bộ điều khiển , hệ điều hành chỉ cần khởi động chúng với một số tham số như số ký tự trên một dòng, số dòng trên màn hình và bộ điều khiển sẽ thực hiện điều khiển các tia.



Câu 4 : Hoạt đông của DMA như thế nào ? 
Trả lời : 
Cơ chế DMA giúp cho CPU không bị lãng phí thời gian. Khi sử dụng, CPU gửi cho bộ điều khiển một số các thông số như địa chỉ trên đĩa của khối, địa chỉ trong bộ nhớ nơi định vị khối, số lượng byte dữ liệu để chuyển. 
Sau khi bộ điều khiển đã đọc toàn bộ dữ liệu từ thiết bị vào buffer của nó và kiểm tra checksum. Bộ điều khiển chuyển byte đầu tiên vào bộ nhớ chính tại địa chỉ được mô tả bởi địa chỉ bộ nhớ DMA. Sau đó nó tăng địa chỉ DMA và giảm số bytes phải chuyển. Quá trình này lập cho tới khi số bytes phải chuyển bằng 0, và bộ điều khiển tạo một ngắt. Như vậy không cần phải copy khối vào trong bộ nhớ, nó đã hiện hữu trong bộ nhớ.




Câu 5 : Nêu vai trò của phần mềm độc lập thiết bị ?
Trả lời : 
Chức năng cơ bản của phần mềm nhập/xuất độc lập thiết bị là những chức năng chung cho tất cả các thiết bị và cung cấp một giao tiếp đồng nhất cho phần mềm phạm vi người sử dụng. 
_Một là nó phải có chức năng tạo một ánh xạ giữa thiết bị và một tên hình thức. Ví dụ đối với UNIX, tên /dev/tty0 dành riêng để mô tả I-node cho một file đặc biệt, và I-node này chứa chứa số thiết bị chính, được dùng để xác định driver thích hợp và số thiết bị phụ, được dùng để xác định các tham số cho driver để cho biết là đọc hay ghi. 
_Thứ hai là bảo vệ thiết bị, là cho phép hay không cho phép người sử dụng truy xuất thiết bị. Các hệ điều hành có thể có hay không có chức năng này. 
_Thứ ba là cung cấp khối dữ liệu độc lập thiết bị vì ví dụ những đĩa khác nhau sẽ có kích thước sector khác nhau và điều này sẽ gây khó khăn cho các phần mềm người sử dụng ở lớp trên. Chức năng này cung cấp các khối dữ liệu logic độc lập với kích thước sector vật lý. 
_Thứ tư là cung cấp buffer để hỗ trợ cho đồng bộ hóa quá trình hoạt động của hệ thống. Ví dụ buffer cho bàn phím. 
_Thứ năm là định vị lưu trữ trên các thiết bị khối. 
_Thứ sáu là cấp phát và giải phóng các thiết bị tận hiến. 
_Cuối cùng là thông báo lỗi cho lớp bên trên từ các lỗi do device driver báo về.









Câu 6: Định nghĩa HĐH, phân loại HĐH , cho ví dụ?
q   Khái niệm 1: Hệ điều hành là một hệ thống mô hình hoá, mô phỏng hoạt động của máy tính, của người sử dụng và của lập trình viên, hoạt động trong chế độ đối thoại nhằm tạo môi trường khai thác thuận lợi hệ thống máy tính và quản lý tối ưu tài nguyên của hệ thống. 
q     Khái niệm 2: Hệ điều hành là hệ thống chương trình với các chức năng giám sát, điều khiển việc thực hiện các chương trình của người sử dụng, quản lý và phân chia tài nguyên cho nhiều chương trình người sử dụng đồng thời sao cho việc khai thác chức năng của hệ thống máy tính của người sử dụng là thuận lợi và hiệu quả nhất. 
q   Khái niệm 3: Hệ điều hành là một chương trình đóng vai trò như là giao diện giữa người sử dụng và phần cứng máy tính, nó điều khiển việc thực hiện của tất cả các loại chương trình. Khái niệm này rất gần với các hệ điều hành đang sử dụng trên các máy tính hiện nay.
Từ các khái niệm trên chúng ta có thể thấy rằng: Hệ điều hành ra đời, tồn tại và phát triển là để giải quyết vấn đề sử dụng máy tính của người sử dụng, nhằm giúp người sử dụng khai thác hết các chức năng của phần cứng máy tính mà cụ thể là giúp người sử dụng thực hiện được các chương trình của họ trên máy tính.
-         Phân loại hệ điều hành :
Hệ điều hành xử lý theo lô đơn giản: Tại một thời điểm xác định khi 1 chương trình được đưa vào hoạt động thì nó chiếm giữ mọi tài nguyên của hệ thống. vì vậy chương trình khác không thể đưa được vào bộ nhớ trong. Khi một công việc chấm dứt hệ thống sẽ thực hiện công việc kế tiếp mà không cần sự can thiệp của người sử dụng, đo được thời gian thực hiện sẽ nhanh hơn.
Hệ đh theo lô thực hiện công việc lần lượt theo những chỉ định trước.
+ Hệ thống xử lý theo lô đa chương : Hệ điều hành MS_DOS là hệ điều hành đơn nhiệm, đa chương.
+ Hệ điều hành chia sẻ thời gian :  Hệ điều hành chia sẻ thời gian là mở rộng logic của hệ điều hành đa chương và nó thường được gọi là hệ điều hành đa nhiệm (Multitasking). Hệ điều hành Windows 9x/NT là các hệ điều hành đa nhiệm.   

+ Hệ điều hành đa vi xử lý:

    .  Đa xử lý đối xứng (SMP: symmetric):Hệ điều hành Windows NT, hệ điều hành Windows 2000 là các hệ điều hành đa xử lý đối xứng.
  . Đa xử lý bất đối xứng (ASMP: asymmetric):  Hệ ASMP đơn giản hơn nhiều so với hệ SMP,  nhưng trong hệ này nếu có một vi xử lý trong các vi xử lý dành riêng cho hệ điều hành bị hỏng thì hệ thống có thể ngừng hoạt động
+ Hệ điều hành xử lý thời gian thực : Hệ điều hành này khắc phục nhược điểm của hệ điều hành xử lý theo lô, tức là nó có khả năng cho kết quả tức thời, chính xác sau mỗi tác vụ.
+ Hệ điều hành mạng:Hệ điều hành Windows 9x/NT, Windows 200, Linux, là các hệ điều hành mạng máy tính.
Ø    Tóm lại: Qua sự phân loại hệ điều hành ở trên ta có thể thấy được quá trình phát triển (evolution) của hệ điều hành. Để khắc phục hạn chế về lãng phí thời gian xử lý của processor trong hệ điều hành theo lô thì hệ điều hành theo lô đa chương ra đời. Để khai thác tối đa thời gian xử lý của processor và tiết kiệm hơn nữa không gian bộ nhớ chính hệ điều hành chia sẻ thời gian ra đời. Chia sẻ thời gian xử lý của processor kết hợp với chia sẻ không gian bộ nhớ chính đã giúp cho hệ điều hành có thể đưa vào bộ nhớ chính nhiều chương trình, tiến trình hơn và các chương trình, tiến trình này có thể hoạt động đồng thời với nhau, nhờ đó mà hiệu suất của hệ thống tăng lên, và cũng từ đây khái niệm hệ điều hành đa chương ra đời. Hệ điều hành đa xử lý và hệ điều hành mạng được phát triển dựa trên hệ điều hành đa nhiệm. Hệ điều hành thời gian thực ra đời là để khắc phục hạn chế của hệ điều hành theo lô và điều khiển các hệ thống thời gian thực. Từ đây chúng ta rút ra một điều rằng: các hệ điều hành ra đời sau luôn tìm cách khắc phục các hạn chế của hệ điều hành trước đó và phát triển nhiều hơn nữa để đáp ứng yêu cầu ngày càng cao của của người sử dụng và chương trình người sử dụng, cũng như khai thác tối đa các chức năng của phần cứng máy tính để nâng cao hiệu suất của hệ thống. Nhưng chức năng của hệ điều hành càng cao thì chi phí cho nó cũng tăng theo và cấu trúc của hệ điều hành cũng sẽ phức tạp hơn.
Hệ điều hành Windows NT và hệ điều hành Windows 2000 là các hệ điều hành mạnh, nó có đầy đủ các chức năng của các loại hệ điều hành, do đó WindowsNT/2000 chứa rất nhiều thành phần với một cấu trúc khá phức tạp.      





Câu 7: Trình bày các thành phần của hệ điều hành?
a.Hệ thống  quản lý tiến trình
- Tạo lập, hủy bỏ một tiến trình
- Tạm dừng, tái kích hoạt một tiến trình
- Cung cấp các cơ chế trao đổi thông tin giữa các tiến trình
- Cung cấp cơ chế đồng bộ hóa các tiến trình
b. Hệ thống quản lý bộ nhớ
- Cấp phát và thu hồi vùng nhớ cho các tiến trình khi cần thiết
- Ghi nhận tình trạng bộ nhớ chình: vùng đã cấp phát, vùng còn có thể sử dụng…
- Quyết định tiến trình nào được nạp vào bộ nhớ chính khi có một vùng nhớ trống.
c. Hệ thống quản lý nhập xuất
- Gửi các lệnh điều khiển đến các thiết bị
- Tiếp nhận các ngắt
- Xử lý lỗi
d. Hệ thống quản lý tập tin
- Tạo lập, hủy bỏ một tập tin hoặc một thư mục
- Cung cấp các thao tác xử lý tập tin và thư mục
- Tạo lập quan hệ tương ứng giữa tập tin và bộ nhở phụ chứa nó
e. Hệ thống bảo vệ
Xây dựng cơ chế bảo vệ thích hợp (Trong trường hợp nhiều người cùng sử dụng đồng thời các tiến trình)
f. Hệ thống dịch lệnh (Shell)
- Đóng vai trò giao diện giữa người sử dụng và HĐH
- Các lệnh được chuyển đến HĐH dười dạng chỉ thị điều khiển
- Shell nhận lệnh và thông dịch lệnh để HĐH có xử lý tương ứng
g. Quản lý mạng
- Một hệ thống phân bố nhiều bộ xử lý với các bộ nhớ độc lập
- Các tiến trình trong hệ thống có thể kết nối với nhau qua mạng truyền thông.
- Việc truy xuất đến tài nguyên mạng thông qua các trình điều khiển giao tiếp mạng.






Câu 8: Trình bày các thuật toán đọc đĩa? Nêu VD minh họa?     
Lập lịch FCFS
Phương pháp lập lịch đơn giản nhất là FCFS(first-come,first-served). Thuật toánnày rất dể lập trình nhưng không cung cấp được một dịch vụ tốt. Ví dụ : cần phải đọc cáckhối theo thứ tự như sau 
Lập lịch SSTF (shortest-seek-time-first)
Thuật toán này sẽ di chuyển đầu đọc đến các khối cần thiết theo vị trí lần lượt gầnvới vị trí hiện hành của đầu đọc nhất.
 Ví dụ : cần đọc các khối như sau :98, 183, 37, 122, 14, 124, 65, và 67Giả sử hiện tại đầu đọc đang ở vị trí 53. Như vậy đầu đọc lần lượt đi qua các khối 53, 65,67, 37, 14, 98, 122, 124 và 183
Lập lịch SCAN 
Theo thuật toán này, đầu đọc sẽ di chuyển về một phía của đĩa và từ đó di chuyểnqua phía kia. Ví dụ : cần đọc các khối như sau :98, 183, 37, 122, 14, 124, 65, và 67
Lập lịch C-SCAN 
Thuật toán này tương tự như thuật toán SCAN, chỉ khác là khi nó di chuyển đếnmột đầu nào đó của đĩa, nó sẽ lập tức trở về đầu bắt đầu của đĩa. Lấy lại ví dụ trên, khi đóthứ tự truy xuất các khối sẽ là : 53, 65, 67, 98, 122, 124, 183, 199, 0, 14, 37

 Lập lịch LOOK 
 Nhận xét rằng cả hai thuật toán lập lịch SCAN và C-SCAN luôn luôn chuyển đầuđọc của đĩa từ đầu này sang đầu kia. Nhưng thông thường thì đầu đọc chỉ chuyển đếnkhối xa nhất ở mỗi hướng chứ không đến cuối. Do đó SCAN và C-SCAN được chỉnhtheo thực tế và gọi là lập lịch LOOK.

 Lựa chọn thuật toán lập lịch:
Với những thuật toán lập lịch, vấn đề là phải lựa chọn thuật toán nào cho hệthống. Thuật toán SSTF thì rất thông thường. Thuật toán SCAN và C-SCAN thích hợpcho những hệ thống phải truy xuất dữ liệu khối lượng lớn. Với bất kỳ thuật toán lập lịchnào, điều quan trọng là khối lượng về số và kiểu khối cần truy xuất. Ví dụ , nếu số khốicần truy xuất là liên tục thì FCFS là thuật toán tốt.


Câu 9: Hãy trình bày các dịch vụ của HĐH?
LG:
Các dịch vụ hệ điều hành

Hệ điều hành cung cấp một môi trường cho việc thực thi các chương trình. Nó cung cấp các dịch vụ xác định tới chương trình và tới người dùng của các chương trình đó. Dĩ nhiên, các dịch vụ được cung cấp khác nhau từ hệ điều hành này với hệ điều hành kia nhưng chúng có thể xác định các lớp chung. Các dịch vụ hệ điều hành được cung cấp sự tiện dụng cho người lập trình để thực hiện tác vụ lập trình dễ dàng.

Thực thi chương trình: hệ thống phải có thể nạp chương trình vào bộ nhớ và
chạy chương trình đó. Chương trình phải có thể kết thúc việc thực thi của nó
bình thường hay không bình thường (hiển thị lỗi).
Thao tác xuất/nhập: một chương trình đang chạy có thể yêu cầu xuất/nhập. Xuất/nhập này có thể liên quan tới tập tin hay thiết bị xuất/nhập. Đối với các thiết bị cụ thể, các chức năng đặc biệt có thể được mong muốn (như quay lại từ đầu một ổ băng từ, hay xoá màn hình). Đối với tính hiệu quả và tính bảo vệ, người dùng thường không thể điều khiển các thiết bị xuất/nhập trực tiếp.
Do đó, hệ điều hành phải cung cấp một phương tiện để thực hiện xuất/nhập..
Thao tác hệ thống tập tin: hệ thống tập tin có sự quan tâm đặc biệt. Các
chương trình cần đọc từ và viết tới các tập tin. Chương trình cũng cần tạo và
xoá tập tin bằng tên.
Giao tiếp: trong nhiều trường hợp, một quá trình cần trao đổi thông tin với các quá trình khác. Giao tiếp như thế có thể xảy ra trong hai cách chính.
Cách đầu tiên xảy ra giữa các quá trình được thực thi trên cùng máy tính;
cách thứ hai xảy ra giữa hai quá trình đang được thực thi trên các máy tính
khác nhau được kết nối với nhau bởi một mạng máy tính. Các giao tiếp có
thể được thực hiện bằng bộ nhớ được chia sẻ, hay bằng kỹ thuật truyền
thông điệp, trong đó các gói tin được di chuyển giữa các quá trình bởi hệ
điều hành.
Phát hiện lỗi: hệ điều hành liên tục yêu cầu nhận biết các lỗi có thể phát
sinh. Các lỗi có thể xảy ra trong CPU và phần cứng bộ nhớ (như lỗi bộ nhớ
hay lỗi về điện), trong các thiết bị xuất/nhập (như lỗi chẳn lẻ trên băng từ,
lỗi nối kết mạng, hết giấy in) và trong chương trình người dùng (như tràn số
học, cố gắng truy xuất một vị trí bộ nhớ không hợp lệ, dùng quá nhiều thời
gian CPU). Đối với mỗi loại lỗi, hệ điều hành nên thực hiện một hoạt động
hợp lý để đảm bảo tính toán đúng và không đổi.

Ngoài ra, một tập chức năng khác của hệ điều hành tồn tại không giúp người
dùng, nhưng đảm bảo các điều hành hữu hiệu của chính hệ thống. Các hệ thống với nhiều người dùng có thể đạt tính hữu hiệu bằng cách chia sẻ tài nguyên máy tính giữa các người dùng.
Cấp phát tài nguyên: khi nhiều người dùng đăng nhập vào hệ thống hay
nhiều công việc đang chạy cùng lúc, tài nguyên phải được cấp tới mỗi người
dùng. Nhiều loại tài nguyên khác nhau được quản lý bởi hệ điều hành. Một
số tài nguyên (như chu kỳ CPU, bộ nhớ chính, lưu trữ tập tin) có mã cấpphát đặt biệt, trái lại các tài nguyên khác (như thiết bị xuất/nhập) có mã yêu cầu và giải phóng thường hơn. Thí dụ, xác định cách tốt nhất để dùng CPU, hệ điều hành có các thủ tục định thời biểu CPU. Các thủ tục này xem xét tốc độ CPU, các công việc phải được thực thi, số thanh ghi sẳn dùng và các yếu tố khác. Cũng có các thủ tục cấp phát ổ băng từ để dùng cho một công việc. Một thủ tục như thế định vị ổ băng từ chưa được dùng và đánh dấu một bảng bên trong để ghi người dùng mới của ổ băng từ. Một thủ tục khác được dùng để xoá bảng đó. Các thủ tục này cũng có thể cấp phát các máy vẽ, modem, các thiết bị ngoại vi khác.
Tính toán: chúng ta muốn giữ vết người dùng nào sử dụng bao nhiêu và loại tài nguyên máy tính nào. Giữ vết này có thể được dùng để tính toán (tính tiền người dùng) hay đơn giản thống kê sử dụng. Thống kê sử dụng có thể là công cụ có giá trị cho người nghiên cứu muốn cấu hình lại hệ thống để cải tiến các dịch vụ tính toán.
·        Bảo vệ: người sở hữu thông tin được lưu trong hệ thống máy tính đa người dùng muốn điều khiển thông tin này. Khi nhiều quá trình riêng rẻ thực thi đồng hành, không thể cho một quá trình can thiệp tới các quá trình khác hay tới chính hệ điều hành. Bảo vệ đảm bảo rằng tất cả truy xuất tài nguyên của hệ thống được kiểm soát. An toàn hệ thống từ người dùng bên ngoài cũng là vấn đề quan trọng. An toàn bắt đầu với mỗi người dùng có quyền đối với hệ thống, thường bằng mật khẩu để được phép truy xuất tài nguyên. Mở rộng việc bảo vệ đối với các thiết bị xuất/nhập bên ngoài, bao gồm modem, card mạng từ những truy xuất không hợp lệ, và ghi lại các nối kết để phát hiện đột nhập vào hệ thống. Nếu hệ thống bảo vệ và bảo mật, những cảnh báo phải được thiết lập xuyên suốt.




Câu 10:Đoạn găng là gì. Một tiến trình đang ở trong đoạn găng có thể có các trạng thái nào. Giải thích?
     Đoạn Găng là đoạn mã lệnh có khả năng xảy ra mâu thuẫn khi truy xuất tài nguyên chung
-         Một tiến trình đang ở trong đoạn Găng có thể có các trạng thái Running và Ready bởi vì đoạn Găng sẽ quyết định chỉ cho một tiến trình hợp lệ vào miền Găng để thực hiện các lệnh trong miền này (tức là đang ở trạng thái Running), còn lại các tiến trình khác phải chờ khi tiến trình ở trong miền Găng thực hiện xong mới có thể thực hiện (tức là đang ở trạng thái Ready) và chúng không thể vào trong miền Găng gây xung đột trong quá trình xử lý.

Câu 11:Phân biệt lập lịch độc quyền và không độc quyền:
Độc quyền (nonpreemptive)
Không độc quyền (preemptive)
Khi tiến trình được phân phối CPU, nó sẽ sử dụng CPU cho đến khi nó giải phóng CPU bằng cách kết thúc hoặc chuyển sang trạng thái chờ

Khi một tiến trình có độ ưu tiên cao hơn, nó có thể đẩy tiến trình đang được thực hiện để giành quyền điều khiển CPU. Tiến trình đang được thực hiện sẽ được chuyển sang trạng thái chờ

Trong 2 giải thuật thực hiện lập lịch: FCFS, SJC, RR, giải thuật FCFS là thực hiện lập lịch độc quyền; giải thuật SJC có thể vừa độc quyền có thế không độc quyền; giải thuật RR thực hiện lập lịch độc quyền



Câu 12: luồng là gì? Phân biệt luông với tiến trình? GIải thích?
Định nghĩa luồng:
Một luồng là một dòng xử lý cơ bản trong hệ thống . Mỗi luồng xử lý tuần tự đoạn code của nó, sỡ hữu một con trỏ lệnh, tập các thanh ghi và một vùng nhớ stack riêng
Phân biệt luồng với tiến trình:
Tiến trình mang ý nghĩa rộng hơn và lớn hơn so với luồng, luồng là một phần của tiến trình nằm bên trong tiến trình và chịu sự quản lý của tiến trình, một tiến trình có thể có nhiều luồng, cùng hoạt động, chia sẽ code, bộ nhớ,...,của tiến trình, các luồng trong tiến trình có thể hoạt động đồng bộ với nhau, khi thay đổi code của tiền trình hay một luồng thì sự thay đổi đó có tác động lên toàn bộ các luồng khác.
Tiến trình chịu sự quản lý của hệ điều hành với nhiều thông tin phức tạp và chi tiết hơn so với luồng(vdu: PCB lưu trạng thái của tiến trình, các hàng đợi), cơ chế điều phối tiến trình của hệ điều hành cũng phức tạp hơn so với việc quản lý luồng của tiến trình, hệ điều hành sử dụng các hàng đợi(Job queue, Ready quueu, Device queue...) để điều phối tiến trình, trong khi tiến trình sử dụng cơ chế ngủ thông qua các hàm API để thiết lập chế độ hoạt động của luồng(khởi tạo luồng, đặt luồng vào trạng thái ngủ, đánh thức trở lại, kết thúc luồng...) Khi tiến trình kết thúc thì các luồng trong tiến trình cũng kết thúc nhưng tiến trình phải đợi các luồng kết thúc rồi tiến trình mới kết thúc. 
Tiến trinh
Luồng
+ Tiến trình (Process)là chương trình trong thời gian thực hiện (đặt dưới sự quản lý của HDH).Nếu coi tiến trình là 1 khu rừng.
+ tiến trình thì hoàn toàn độc lập nên khó chia sẻ tài nguyên
+Tiến trình chịu sự quản lý của hệ điều hành với nhiều thông tin phức tạp và chi tiết hơn so với luồng

+ Một tiến trình có thể sinh ra nhiều tiến trình con khác khi thực hiện
+ Chạy nhiều tiến trinh tốn bộ nhớ hơn.
+Luồng(Thread) còn gọi là tiến trình nhẹ(LWP- Light Weight Process), một đơn vị cơ bản sử dụng CPU.Luồng có có xem như 1 cây thuôc khu rừng.
+luồng cùng chia sẽ tài nguyên với các luồng khác
+chịu sự quản lý của tiến trình
+  luồng thì  không sinh ra đc luồng
+ Chương trình có nhiều luồng sẽ tiết kiệm dc nhiều bộ nhớ hơn so với chạy nhiều tiến trình để cùng hoàn thành một mục đích, công việc nào đó.
Câu 14:Thế nào là chiến lược phân đoạn,chiến lược phân trang?Tại sao phải dùng kết hợp giữa chiến lược phân trang và chiến lược phân đoạn?
LG:
·        PHÂN TRANG:
Không gian địa chỉ logic của tiến trình có thể không liên tục,các tiến trình định vị bộ nhớ vật lí với vùng còn tự do.
Cơ chế phân trang (paging)

-         Cơ chế phân trang cho phép không gian địa chỉ thực (physical address space) của một process có thể không liên tục nhau.
-         Bộ nhớ thực (vật lý) được chia thành các khối có kích thước cố định gọi là frame.
Chia bộ nhớ logic thành những khối có cùng kích thước gọi là trang (page).
Lưu thông tin của tất cả các frame còn tự do.
–       Thông thường kích thước của frame là lũy thừa của 2, từ khoảng 512 byte đến 16MB.
-         Bộ nhớ luận lý (logical memory) hay không gian địa chỉ luận lýlà tập mọi địa chỉ luận lý mà một chương trình bất kỳ có thể sinh ra.
–Ví dụ
•MOV REG,1000 1000 là một địa chỉ luận lý
–Địa chỉ luận lý còn có thể được chương trình sinh ra bằng cách dùng indexing, base register, segment register,…
Hiện thực bảng phân trang
-         Tạo bảng trang để chuyển địa chỉ logic thành địa chỉ vật lý.
-         Để chạy chương trình có kích thước n trang cần tìm n frame còn tự do để nạp chương trình.
+ Bảng phân trang thường được lưu giữ trong bộ nhớ chính
–Mỗi process được hệ điều hành cấp một bảng phân trang
–Thanh ghi page-table base (PTBR) trỏ đến bảng phân trang
–Thanh ghi page-table length (PTLR) biểu thị kích thước của bảng phân trang (có thể được dùng trong cơ chế bảo vệ bộ nhớ)
+ Mỗi tác vụ truy cập dữ liệu/lệnh cần hai thao tác truy xuất vùng nhớ
–Một thao tác dùng page number p làm index để truy cập mục trong bảng phân trang nhằm lấy số frame và kế đến là một thao tác dùng page offset d để truy xuất dữ liệu/lệnh trong frame
–Thường dùng một bộ phận cache phần cứng có tốc độ truy xuất và tìm kiếm cao, gọi là thanh ghi kết hợp (associative register) hoặc translation look-aside buffers(TLBs)

·        PHÂN ĐOẠN:
-         Là lược đồ quản trị bộ nhớ hỗ trợ khung nhìn của người sử dụng với bộ nhớ.
-         Không gian địa chỉ logic là một tập các đoạn, mỗi đoạn là một dvi logic có tên và kích thước riêng: main program,object,method,... 
-         Một địa chỉ logic chứa 2 bộ: <segment,offset>

Hiện thực phân đoạn  
+ Bảng phân đoạn (segment table): gồm nhiều mục, mỗi mục chứa
–base, chứa địa chỉ khởi đầu của segment trong bộ nhớ
–limit, xác định kích thước của segment
+ Segment-table base register (STBR): trỏ đến vị trí bảng phân đoạn trong bộ nhớ
+ Segment-table length register (STLR): số lượng segment của chương trình
+  Một chỉ số segment s là hợp lệ nếu  s < STLR
Kết hợp phân trang và phân đoạn
-         Hệ thông kết hợp phân đoạn với phân trang đã giải quyết bài toán lỗ hông rời rạc và thời gian tìm kiếm bị kéo dài bởi phân trang các đoạn.
-         Trong entry của bảng phân đoạn k phải là địa chỉ cơ sở của đoạn mà là dc cơ sở của bảng phân trang của đoạn đó.

Kết hợp phân trang và phân đoạn nhằm kết hợp các ưu điểm đồng thời hạn chế các khuyết điểm của phân trang và phân đoạn:
–Vấn đề của phân đoạn: Nếu một đoạn quá lớn thì có thể không nạp nó được vào bộ nhớ.
–Ý tưởng giải quyết: paging đoạn, khi đó chỉ cần giữ trong bộ nhớ các page của đoạn hiện đang cần.
Có nhiều cách kết hợp. Sau đây là một cách đơn giản, gọi là segmentation with paging
• Mỗi process sẽ có:
–Một bảng phân đoạn
–Nhiều bảng phân trang: mỗi đoạn có một bảng phân trang

•Một địa chỉ logic bao gồm:
segment number: là chỉ số của một mục trong bảng phân đoạn, mục này chứa địa chỉ nền (base address) của bảng phân trang cho đoạn đó
page number: là chỉ số của một mục trong bảng phân trang, mục này chứa chỉ số frame trong bộ nhớ thực
offset:độ dời của vị trí nhớ trong frame nói trên.

Câu 15 : Tập tin là gì ? Thư mục là gì ? Tại sao phải quản lý tập tin và thư mục ? 
_Tập tin 
Tập tin là đơn vị lưu trữ thông tin của bộ nhớ ngoài. Các tiến trình có thể đọc hay tạo mới tập tin nếu cần thiết. Thông tin trên tập tin là vững bền không bị ảnh hưởng bởi các xử lý tạo hay kết thúc các tiến trình, chỉ mất đi khi user thật sự muốn xóa. Tập tin được quản lý bởi hệ điều hành. 
_Thư mục 
Để lưu trữ dãy các tập tin, hệ thống quản lý tập tin cung cấp thư mục, mà trong nhiều hệ thống có thể coi như là tập tin.
Để dễ dàng tìm kiếm hoặc kiểm tra khi cần thiết, vì số lượng tập tin và thư mục sẽ sinh sôi và nẩy nở theo thời gian chúng ta phải quản lý tập tin và thư mục
Câu 16 : Nêu chức năng của tập tin và thư mục .
*Tập tin : 
+Chức năng tập tin : 
_Tạo : một tập tin được tạo chưa có dữ liệu. Mục tiêu của chức năng này là thông báo cho biết rằng tập tin đã tồn tại và thiết lập một số thuộc tính. 
_Xóa :khi một tập tin không còn cần thiết nữa, nó được xóa để tăng dung lượng đĩa. Một số hệ điều hành tự động xoá tập tin sau một khoảng thời gian n ngày. 
_Mở : trước khi sử dụng một tập tin, tiến trình phải mở nó. Mục tiêu của mở là cho phép hệ thống thiết lập một số thuộc tính và địa chỉ đĩa trong bộ nhớ để tăng tốc độ truy xuất. 
_Đóng : khi chấm dứt truy xuất, thuộc tính và địa chỉ trên đĩa không cần dùng nữa, tập tin được đóng lại để giải phóng vùng nhớ. Một số hệ thống hạn chế tối đa số tập tin mở trong một tiến trình. 
_Đọc : đọc dữ liệu từ tập tin tại vị trí hiện thời của đầu đọc, nơi gọi sẽ cho biết cần bao nhiêu dữ liệu và vị trí của buffer lưu trữ nó. 
_Ghi : ghi dữ liệu lên tập tin từ vị trí hiện thời của đầu đọc. Nếu là cuối tập tin,kích thước tập tin sẽ tăng lên, nếu đang ở giữa tập tin, dữ liệu sẽ bị ghi chồng lên.
_Thêm : gần giống như WRITE nhưng dữ liệu luôn được ghi vào cuối tập tin. 
_Tìm :dùng để truy xuất tập tin ngẫu nhiên. Khi xuất hiện lời gọi hệ thống, vị trí con trỏ đang ở vị trí hiện hành được di chuyển tới vị trí cần thiết. Sau đó dữ liệu sẽ được đọc ghi tại vị trí này. 
_Lấy thuộc tính :lấy thuộc tính của tập tin cho tiến trình 
_Thiết lập thuộc tính :thay đổi thuộc tính của tập tin sau một thời gian sử dụng. 
_Đổi tên :thay đổi tên của tập tin đã tồn tại. 

*Thư mục : 
+Chức năng thư mục : 
_Tạo : một tập tin được tạo chưa có dữ liệu. Mục tiêu của chức năng này là thông báo cho biết rằng tập tin đã tồn tại và thiết lập một số thuộc tính. 
_Xóa :khi một tập tin không còn cần thiết nữa, nó được xóa để tăng dung lượng đĩa. Một số hệ điều hành tự động xoá tập tin sau một khoảng thời gian n ngày. 
_Mở : trước khi sử dụng một tập tin, tiến trình phải mở nó. Mục tiêu của mở là cho phép hệ thống thiết lập một số thuộc tính và địa chỉ đĩa trong bộ nhớ để tăng tốc độ truy xuất. 
_Đóng : khi chấm dứt truy xuất, thuộc tính và địa chỉ trên đĩa không cần dùng nữa, tập tin được đóng lại để giải phóng vùng nhớ. Một số hệ thống hạn chế tối đa số tập tin mở trong một tiến trình. 
_Đọc : đọc dữ liệu từ tập tin tại vị trí hiện thời của đầu đọc, nơi gọi sẽ cho biết cần bao nhiêu dữ liệu và vị trí của buffer lưu trữ nó. 
_Ghi : ghi dữ liệu lên tập tin từ vị trí hiện thời của đầu đọc. Nếu là cuối tập tin,kích thước tập tin sẽ tăng lên, nếu đang ở giữa tập tin, dữ liệu sẽ bị ghi chồng lên. 
_Thêm : gần giống như WRITE nhưng dữ liệu luôn được ghi vào cuối tập tin.
_Tìm :dùng để truy xuất tập tin ngẫu nhiên. Khi xuất hiện lời gọi hệ thống, vị trí con trỏ đang ở vị trí hiện hành được di chuyển tới vị trí cần thiết. Sau đó dữ liệu sẽ được đọc ghi tại vị trí này. 
_Lấy thuộc tính :lấy thuộc tính của tập tin cho tiến trình 
_Thiết lập thuộc tính :thay đổi thuộc tính của tập tin sau một thời gian sử dụng. 
_Đổi tên :thay đổi tên của tập tin đã tồn tại.

Câu 17. Tập tin có những đặc tính gì ? .Những đặc tính nào là quan trọng ? Tại sao
+Các đặc tính của tập tin : 
Các tiến trình có thể đọc hay tạo mới tập tin nếu cần thiết , thông tin trên tập tin là vững bền không bị ảnh hưởng bởi các xử lý tạo hay kết thúc các tiến trình ,chỉ mất đi khi user thật sự muốn xóa . 
+Đặc tính quan trọng của tập tin là thông tin trên tập tin là vững bền không bị ảnh hưởng bởi các xử lý tạo hay kết thúc các tiến trình vì tập tin là đơn vị lưu trữ thông tin của bộ nhớ ngoài dùng để lưu trữ dữ liệu nếu bị mất khi tạo hoặc kết thúc tiến trình thì nó sẽ mất đi chức năng quan trọng nhất của tập tin là lưu trữ dữ liệu cho ngươì sử dụng hoặc cho các tiến trình .




0 nhận xét:

Đăng nhận xét

domain, domain name, premium domain name for sales

Bài đăng phổ biến