markdown:
[Thảo luận Bài 3](/t5647-topic)
Trang
**1**trong tổng số **2**trang • [Share](#)• [Trang 1 trong tổng số 2 trang](javascript:Pagination();) • **1**, [2](/t5647p25-topic) ![ Next](https://illiweb.com/fa/empty.gif)
![ Next](https://illiweb.com/fa/empty.gif)
[Thảo luận Bài 3](/t5647-topic#27979)
Thảo luận những vấn đề liên quan đến Bài 3.
**Admin**
- Admin
- Tổng số bài gửi : 291
Join date : 18/02/2009
[Sự khác nhau giữa biên dịch và thông dịch](/t5647-topic#28013)
1. Trình thông dịch
Trình thông dịch là một trình để thông dịch ngôn ngữ. Trong thông dịch mã nguồn của chương trình không được dịch trước thành ngôn ngữ máy, mà khi chạy chương trình mã nguồn mới được dịch và thực thi từng dòng lệnh 1.
Tất cả các ngôn ngữ không biên dịch ra mã máy một lần duy nhất điều phải sử dụng trình thông dịch (VB,Java...). Các ngôn ngữ theo trình thông dịch thường được gọi là script (kịch bản).
Như vậy chương trình viết bằng ngôn ngữ script phải có một trình thông dịch kèm theo khi chạy chương trình.
Ưu điểm
- Phát triển nhanh chóng
- Có thể chỉnh sửa mã nguồn bất kỳ khi nào
- Mạnh xử lý cú pháp
- Uyển chuyển mềm dẻo.
- Có thể chạy trên mọi nền tảng ( hệ điều hành) nếu có trình thông dịch tương ứng, tại vì không phải là ngôn ngữ máy(chỉ là file văn bản) nên không bị phụ thuộc vào HĐH.
Nhược điểm
- Tại vì là ngôn ngữ thông dịch chạy line by line nên nên ngôn ngữ thông dịch không hỗ trợ đa luồn (multi thread), giao dịch (transaction)
- Cũng do chạy line by line nên tốc độ thực thi không nhanh bằng các chương trình viết bằng ngôn ngữ biên dịch (C, C++...) đã chuyên trực tiếp ra ngôn ngữ máy.
2. Trình biên dịch
Trình biên dịch sẽ dịch mã nguồn thành mã máy trên một HĐH xác định và chỉ chạy trên hệ điều hành đó, do đó các chương trình được biên dịch sẽ phụ thuộc nhiều vào nền tảng và hệ điều hành
Ưu điểm
- Ràng buộc chặt chẽ về kiểu trong ngôn ngữ.
- Hỗ trợ các tính năng đa tuyến, transtion ...
- Do đã biên dịch phụ thuộc vào hệ điều hành nên chương trình có thể tận dụng toàn bộ các tính năng đặc trưng của HĐH
- Tốc độ thực thi tốt
- Bảo mật tốt (không thể xâm phạm mã nguồn làm thay đổi chức năng của chương trình)
Nhược điểm
- Sau khi biên dịch ra ngôn ngữ máy thì chỉ có thể chạy trên một HDH xác định.
- Dễ bị virut tấn công.
Trình thông dịch là một trình để thông dịch ngôn ngữ. Trong thông dịch mã nguồn của chương trình không được dịch trước thành ngôn ngữ máy, mà khi chạy chương trình mã nguồn mới được dịch và thực thi từng dòng lệnh 1.
Tất cả các ngôn ngữ không biên dịch ra mã máy một lần duy nhất điều phải sử dụng trình thông dịch (VB,Java...). Các ngôn ngữ theo trình thông dịch thường được gọi là script (kịch bản).
Như vậy chương trình viết bằng ngôn ngữ script phải có một trình thông dịch kèm theo khi chạy chương trình.
Ưu điểm
- Phát triển nhanh chóng
- Có thể chỉnh sửa mã nguồn bất kỳ khi nào
- Mạnh xử lý cú pháp
- Uyển chuyển mềm dẻo.
- Có thể chạy trên mọi nền tảng ( hệ điều hành) nếu có trình thông dịch tương ứng, tại vì không phải là ngôn ngữ máy(chỉ là file văn bản) nên không bị phụ thuộc vào HĐH.
Nhược điểm
- Tại vì là ngôn ngữ thông dịch chạy line by line nên nên ngôn ngữ thông dịch không hỗ trợ đa luồn (multi thread), giao dịch (transaction)
- Cũng do chạy line by line nên tốc độ thực thi không nhanh bằng các chương trình viết bằng ngôn ngữ biên dịch (C, C++...) đã chuyên trực tiếp ra ngôn ngữ máy.
2. Trình biên dịch
Trình biên dịch sẽ dịch mã nguồn thành mã máy trên một HĐH xác định và chỉ chạy trên hệ điều hành đó, do đó các chương trình được biên dịch sẽ phụ thuộc nhiều vào nền tảng và hệ điều hành
Ưu điểm
- Ràng buộc chặt chẽ về kiểu trong ngôn ngữ.
- Hỗ trợ các tính năng đa tuyến, transtion ...
- Do đã biên dịch phụ thuộc vào hệ điều hành nên chương trình có thể tận dụng toàn bộ các tính năng đặc trưng của HĐH
- Tốc độ thực thi tốt
- Bảo mật tốt (không thể xâm phạm mã nguồn làm thay đổi chức năng của chương trình)
Nhược điểm
- Sau khi biên dịch ra ngôn ngữ máy thì chỉ có thể chạy trên một HDH xác định.
- Dễ bị virut tấn công.
[CaoBaDuc-25-HLT3](/u1980)
- Tổng số bài gửi : 11
Join date : 16/03/2014
[Máy ảo - ưu điểm và nhược điểm ](/t5647-topic#28023)
- Máy ảo sử dụng mô hình phân tầng. Nó xem phần cứng và nhân HĐH đều là phần cứng.
- Một máy ảo cung cấp giao diện đồng nhất cho phần cứng thực bên dưới.
- Tài nguyên thực của máy tính được chia sẻ để tạo ra các máy ảo.
- HĐH tạo ảo giác nhiều máy (nhiều quá trình), mỗi máy sử dụng phần CPU và bộ nhớ ảo của nó giống như hệ thống truyền thống.
![ ](http://i59.tinypic.com/iemjw0.png)
Ưu điểm và nhược điểm của máy ảo
Máy ảo cung cấp cơ chế bảo vệ tuyệt đối các tài nguyên hệ thống do mỗi máy ảo được tách biệt khỏi tất cả các máy ảo khác. Tuy nhiên, sự tách biệt này không cho phép việc chia sẻ trực tiếp tài nguyên.
- Hệ thống máy ảo là công cụ hoàn hảo cho việc nghiên cứu và phát triển HĐH.
+ Việc phát triển hệ thống được hoàn thành trên máy ảo thay vì trên máy tính vật lý thật, vì vậy nó không ngắt quãng hoạt động bình thường của hệ thống.
- Máy ảo khó cài đặt do yêu cầu đặt ra là phải cung cấp bản sao chính xác phần cứng của máy thật.
[NguyenHaAn(I22A)](/u1921)
- Tổng số bài gửi : 11
Join date : 26/03/2013
[Máy ảo - Ưu điểm - Nhược điểm](/t5647-topic#28027)
Kỹ thuật máy ảo
- Máy ảo là sự phát triển lô-gic của kiến trúc phân lớp.
- Bằng cách Điều phối CPU và kỹ thuật Bộ nhớ ảo, có thể tạo cho người dùng ảo giác rằng người đó đang dùng bộ xử lý và bộ nhớ của riêng mình.
- Nói cách khác: Máy tính ảo của người dùng được giả lập trên nền máy tính vật lý.
* Ưu điểm:
- Tính bảo mật cao do các máy ảo độc lập với nhau. Các tài nguyên của máy vật lý được bảo vệ hoàn toàn vì các máy ảo có Thiết bị ảo (Một ổ đĩa ảo, thậm chí toàn bộ máy ảo thực tế chỉ là một tập tin của máy vật lý). Có thể lấy từ Internet về một chương trình lạ và thử vận hành trên máy ảo mà không sợ bị ảnh hưởng (ví dụ do virus) vì nếu có sao cũng chỉ hỏng máy ảo.
- Dễ phát triển hệ thống (System Development) mà không sợ làm ảnh hưởng đến công việc toàn hệ máy đang vận hành. HĐH là chương trình phức tạp, cần liên tục thử nghiệm, tinh chỉnh, hoàn thiện và nâng cấp. Có thể tiến hành Phát triển hệ thống trên một máy ảo thay vì làm trên máy thực.
* Nhược điểm:
- Vấn đề lưu trữ vật lý. Thông thường, mỗi máy ảo chỉ dùng một tập tin để lưu tất cả những gì diễn ra trong máy ảo. Do đó nếu bị mất tập tin này xem như mất tất cả.
- Nếu máy tính có cấu hình phần cứng thấp nhưng cài quá nhiều chương trình máy ảo, máy sẽ chậm và ảnh hưởng đến các chương trình khác.
- Do tập trung vào một máy tính, nếu máy bị hư thì toàn bộ các máy tính ảo đã thiết lập trên nó cũng bị ảnh hưởng theo.
- Ở góc dộ bảo mật, nếu hacker nắm quyền điều khiển máy tính chứa các máy ảo thì hacker có thể kiểm soát được tất cả các máy ảo trong nó.
- Máy ảo là sự phát triển lô-gic của kiến trúc phân lớp.
- Bằng cách Điều phối CPU và kỹ thuật Bộ nhớ ảo, có thể tạo cho người dùng ảo giác rằng người đó đang dùng bộ xử lý và bộ nhớ của riêng mình.
- Nói cách khác: Máy tính ảo của người dùng được giả lập trên nền máy tính vật lý.
* Ưu điểm:
- Tính bảo mật cao do các máy ảo độc lập với nhau. Các tài nguyên của máy vật lý được bảo vệ hoàn toàn vì các máy ảo có Thiết bị ảo (Một ổ đĩa ảo, thậm chí toàn bộ máy ảo thực tế chỉ là một tập tin của máy vật lý). Có thể lấy từ Internet về một chương trình lạ và thử vận hành trên máy ảo mà không sợ bị ảnh hưởng (ví dụ do virus) vì nếu có sao cũng chỉ hỏng máy ảo.
- Dễ phát triển hệ thống (System Development) mà không sợ làm ảnh hưởng đến công việc toàn hệ máy đang vận hành. HĐH là chương trình phức tạp, cần liên tục thử nghiệm, tinh chỉnh, hoàn thiện và nâng cấp. Có thể tiến hành Phát triển hệ thống trên một máy ảo thay vì làm trên máy thực.
* Nhược điểm:
- Vấn đề lưu trữ vật lý. Thông thường, mỗi máy ảo chỉ dùng một tập tin để lưu tất cả những gì diễn ra trong máy ảo. Do đó nếu bị mất tập tin này xem như mất tất cả.
- Nếu máy tính có cấu hình phần cứng thấp nhưng cài quá nhiều chương trình máy ảo, máy sẽ chậm và ảnh hưởng đến các chương trình khác.
- Do tập trung vào một máy tính, nếu máy bị hư thì toàn bộ các máy tính ảo đã thiết lập trên nó cũng bị ảnh hưởng theo.
- Ở góc dộ bảo mật, nếu hacker nắm quyền điều khiển máy tính chứa các máy ảo thì hacker có thể kiểm soát được tất cả các máy ảo trong nó.
[VoThiHuynhVan(TH09A2)](/u1965)
- Tổng số bài gửi : 12
Join date : 13/03/2014
[CẤU TRÚC CỦA HỆ ĐIỀU HÀNH](/t5647-topic#28030)
Quản lý tiến trình
Một chương trình không thực hiện được gì cả nếøu như nó không được CPU thi hành. Một tiến trình là một chương trình đang được thi hành, nhưng ý nghĩa của nó còn rộng hơn. Một công việc theo lô là một tiến trình. Một chương trình người dùng chia xẻ thời gian là một tiến trình, một công việc của hệ thống như soopling xuất ra máy in cũng là một tiến trình.
Một tiến trình phải sử dụng tài nguyên như thời gian sử dụng CPU, bộ nhớ, tập tin, các thiết bị nhập xuất để hoàn tất công việc của nó. Các tài nguyên này được cung cấp khi tiến trình được tạo hay trong quá trình thi hành. Khi tiến trình được tạo, nó sử dụng rất nhiều tài nguyên vật lý và luận lý.cũng như một số khởi tạo dữ liệu nhập. Ví dụ , khảo sát tiến trình hiển thị trạng thái của tập tin lên màn hình. Đầu vào của tiến trình là tên tập tin, và tiến trình sẽ thực hiện những chỉ thị thích hợp, thực hiện lời gọi hệ thống để nhận được những thông tin mong muốn và hiển thị nó lên màn hình. Khi tiến trình kết thúc, hệ điềûu hành sẽ tái tạo lại các tài nguyên có thể được dùng lại..
Một tiến trình là hoạt động (active) hoàn toàn-ngược lại với một tập tin trên đĩa là thụ động (passive)-với một bộ đếm chương trình cho biết lệnh kế tiếp được thi hành.Việc thi hành được thực hiện theo cơ chế tuần tự , CPU sẽ thi hành từ lệnh đầu đến lệnh cuối.
Một tiến trình được coi là một đơn vị làm việc của hệ thống. Một hệ thống có thể có nhiều tiến trình cùng lúc , trong đó một số tiến trình là của hệ điều hành, một số tiến trình là của người sử dụng. các tiến trình này có thể diễn ra đồng thời.
Vai trò của hệ điều hành trong việc quản lý tiến trình là :
Tạo và hủy các tiến trình của người sử dụng và của hệ thống.
Ngưng và thực hiện lại một tiến trình.
Cung cấp cơ chế đồng bộ tiến trình.
Cung cấp cách thông tin giữa các tiến trình.
Cung cấp cơ chế kiểm soát deadlock(khái niệm này sẽ được trình bày trong chương II).
Quản lý bộ nhớ chính :
Trong hệ thống máy tính hiện đại, bộ nhớ chính là trung tâm của các thao tác, xử lý. Bộ nhớ chính có thể xem như một mảng kiểu byte hay kiểu word. Mỗi phần tử đều có địa chỉ. Đó là nơi lưu dữ liệu được CPU truy xuất một cách nhanh chóng so với các thiết bị nhập/xuất. CPU đọc những chỉ thị từ bộ nhớ chính. Các thiết bị nhập/xuất cài đặt cơ chế DMA(xem chương IV) cũng đọc và ghi dữ liệu trong bộ nhớ chính. Thông thường bộ nhớ chính chứa các thiết bị mà CPU có thể định vị trực tiếp. Ví dụ CPU truy xuất dữ liệu từ đĩa, những dữ liệu này được chuyển vào bộ nhớ qua lời gọi hệ thống nhập/xuất.
Một chương trình muốn thi hành trước hết phải được ánh xạ thành địa chỉ tuyệt đối và nạp vào bộ nhớ chính.Khi chương trình thi hành, hệ thống truy xuất các chỉ thị và dữ liệu của chương trình trong bộ nhớ chính. Ngay cả khi tiến trình kết thúc , dữ liệu vẫn còn trong bộ nhớ cho đến khi một tiến trình khác được ghi chồng lên.
Để tối ưu hóa quá trình hoạt động của CPU và tốc độ của máy tính, một số tiến trình được lưu giữ trong bộ nhớ. Có rất nhiều kế hoạch quản trị bộ nhớ do có nhiều ứng dụng bộ nhớ khác nhau và hiệu quả của các thuật toán phụ thuộc vào tùy tình huống cụ thể. Lựa chọn một thuật toán cho một hệ thống được mô tả trước phụ thuộc vào nhiều yếu tố, đặc biệt là phần cứng của hệ thống.
Hệ điều hành có những vai trò như sau trong việc quản lý bộ nhớ chính :
Lưu giữ thông tin về các vị trí trong bộ nhớ đã được sử dụng và ai sử dụng.
Quyết định tiến trình nào được nạp vào bộ nhớ chính, khi bộ nhớ đã có thể dùng được.
Cấp phát và thu hồi bộ nhớ khi cần thiết.
Quản lý bộ nhớ phụ :
Mục tiêu chính của hệ thống máy tính là thi hành chương trình. Những chương trình với dữ liệu truy xuất của chúng phải được đặt trong bộ nhớ chính trong suốt quá trình thi hành. Nhưng bộ nhớ chính quá nhỏ để có thể lưu giữ mọi dữ liệu và chương trình, ngoài ra dữ liệu sẽ mất khi không còn được cung cấp năng lượng. Hệ thống máy tính ngày nay cung cấp hệ thống lưu trữ phụ. Đa số các máy tính đều dùng đĩa để lưu trữ cả chương trình và dữ liệu. Hầu như tất cả chương trình : chương trình dịch, hợp ngữ, thủ tục, trình soạn thảo, định dạng... đều được lưu trữ trên đĩa cho tới khi nó được thực hiện, nạp vào trong bộ nhớ chính và cũng sử dụng đĩa để chứa dữ liệu và kết quả xử lý. Vì vậy một bộ quản lý hệ thống đĩa rất quan trọng cho hệ thống máy tính.
Vai trò của hệ điều hành trong việc quản lý đĩa :
Quản lý vùng trống trên đĩa.
Định vị lưu trữ.
Lập lịch cho đĩa.
Vì hệ thống đĩa được sử dụng thường xuyên, nên nó phải được dùng hiệu quả.Tốc độ của toàn bộ hệ thống tuỳ thuộc rất nhiều vào tốc độ truy xuất đĩa.
Quản lý hệ thống nhập xuất :
Một trong những mục tiêu của hệ điều hành là che dấu những đặc thù của các thiết bị phần cứng đối với người sử dụng thay vào đó là một lớp thân thiện hơn, người sử dụng dể thao tác hơn. Một hệ thống nhập/xuất bao gồm :
Hệ thống buffer caching.
Giao tiếp điều khiển thiết bị (device drivers) tổng quát.
Bộ điều khiển cho các thiết bị phần cứng.
Chỉ có device driver mới hiểu đến cấu trúc đặc thù của thiết bị mà nó mô tả.
Quản lý hệ thống tập tin :
Hệ thống quản lý tập tin là thành phần rõ ràng nhất trong hệ điều hành. Máy tính có thể lưu trữ thông tin trong nhiều dạng thiết bị vật lý khác nhau : băng từ, đĩa từ, , đĩa quang, ... Mỗi dạng có những đặc thù riêng về mặt tổ chức vật lý. Mỗi thiết bị có một bộ kiểm soát như bộ điều khiển đĩa (disk driver) và có những tính chất riêng. Những tính chất này là tốc độ, khả năng lưu trữ, tốc độ truyền dữ liệu và cách truy xuất.
Để cho việc sử dụng hệ thống máy tính thuận tiện, hệ điều hành cung cấp một cái nhìn logic đồng nhất về hệ thống lưu trữ thông tin. Hệ điều hành định nghĩa một đơn vị lưu trữ logic là tập tin. Hệ điều hành tạo một ánh xạ từ tập tin đến vùng thông tin trên đĩa và truy xuất những tập tin này thông qua thiết bị lưu trữ.
Một tập tin là một tập hợp những thông tin do người tạo ra nó xác định. Thông thường một tập tin đại diện cho một chương trình và dữ liệu. Dữ liệu của tập tin có thể là số, là ký tự, hay ký số. Tập tin thường có dạng tự do, như tập tin văn bản, nhị phân...(là tập tin chứa dãy các bit). (Xem bài VIII)
Vai trò của hệ điều hành trong việc quản lý tập tin :
Tạo và xoá một tập tin.
Tạo và xoá một thư mục.
Hỗ trợ các thao tác trên tập tin và thư mục.
Ánh xạ tập tin trên hệ thống lưu trữ phụ.
Backup tập tin trên các thiết bị lưu trữ.
Hệ thống bảo vệ :
Trong một hệ thống nhiều người sử dụng và cho phép nhiều tiến trình diễn ra đồng thời, các tiến trình phải được bảo vệ đối với những hoạt động khác.Do đó, hệ thống cung cấp cơ chế để đảm bảo rằng tập tin, bộ nhớ, CPU, và những tài nguyên khác chỉ được truy xuất bởi những tiến trình có quyền. Ví dụ, bộ nhớ đảm bảo rằng tiến trình chỉ được thi hành trong phạm vi địa chỉ của nó. Bộ thời gian đảm bảo rằng không có tiến trình nào độc chiếm CPU. Cuối cùng các thiết bị ngoại vi cũng được bảo vệ.
Hệ thống bảo vệ là một cơ chế kiểm soát quá trình truy xuất của chương trình, tiến trình, hoặc người sử dụng với tài nguyên của hệ thống. Cơ chế này cũng cung cấp cách thức để mô tả lại mức độ kiểm soát.
Hệ thống bảo vệ cũng làm tăng độ an toàn khi kiểm tra lỗi trong giao tiếp giữa những hệ thống nhỏ bên trong.
Hệ thống cơ chế dòng lệnh :
Một trong những phần quan trọng của chương trình hệ thống trong một hệ điều hành là cơ chế dòng lệnh, đó là giao tiếp giữa người sử dụng và hệ điều hành. Một số hệ điều hành đặt cơ chế dòng lệnh bên trong hạt nhân, số khác như MS-DOS và UNIX thì xem hệ điều hành như là một chương trình đặt biệt, được thi hành khi các công việc bắt đầu hoặc khi người sử dụng login lần đầu tiên.
Các lệnh đưa vào hệ điều hành thông qua bộ điều khiển lệnh. Trong các hệ thống chia xẻ thời gian một chương trình có thể đọc và thông dịch các lệnh điều khiển được thực hiện một cách tự động. Chương trình này thường được gọi là bộ thông dịch điều khiển card, cơ chế dòng lệnh hoặc Shell. Chức năng của nó rất đơn giản đó là lấy lệnh kế tiếp và thi hành.
Mỗi hệ điều hành sẽ có những giao tiếp khác nhau, dạng đơn giản theo cơ chế dòng lệnh, dạng thân thiện với người sử dụng như giao diện của Macintosh có các biểu tượng, cửa sổ thao tác dùng chuột.
Các lệnh có quan hệ với việc tạo và quản lý các tiến trình, kiểm soát nhập xuất, quản lý bộ lưu trữ phụ, quản lý bộ nhớ chính, truy xuất hệ thống tập tin và cơ chế bảo vệ.
Một chương trình không thực hiện được gì cả nếøu như nó không được CPU thi hành. Một tiến trình là một chương trình đang được thi hành, nhưng ý nghĩa của nó còn rộng hơn. Một công việc theo lô là một tiến trình. Một chương trình người dùng chia xẻ thời gian là một tiến trình, một công việc của hệ thống như soopling xuất ra máy in cũng là một tiến trình.
Một tiến trình phải sử dụng tài nguyên như thời gian sử dụng CPU, bộ nhớ, tập tin, các thiết bị nhập xuất để hoàn tất công việc của nó. Các tài nguyên này được cung cấp khi tiến trình được tạo hay trong quá trình thi hành. Khi tiến trình được tạo, nó sử dụng rất nhiều tài nguyên vật lý và luận lý.cũng như một số khởi tạo dữ liệu nhập. Ví dụ , khảo sát tiến trình hiển thị trạng thái của tập tin lên màn hình. Đầu vào của tiến trình là tên tập tin, và tiến trình sẽ thực hiện những chỉ thị thích hợp, thực hiện lời gọi hệ thống để nhận được những thông tin mong muốn và hiển thị nó lên màn hình. Khi tiến trình kết thúc, hệ điềûu hành sẽ tái tạo lại các tài nguyên có thể được dùng lại..
Một tiến trình là hoạt động (active) hoàn toàn-ngược lại với một tập tin trên đĩa là thụ động (passive)-với một bộ đếm chương trình cho biết lệnh kế tiếp được thi hành.Việc thi hành được thực hiện theo cơ chế tuần tự , CPU sẽ thi hành từ lệnh đầu đến lệnh cuối.
Một tiến trình được coi là một đơn vị làm việc của hệ thống. Một hệ thống có thể có nhiều tiến trình cùng lúc , trong đó một số tiến trình là của hệ điều hành, một số tiến trình là của người sử dụng. các tiến trình này có thể diễn ra đồng thời.
Vai trò của hệ điều hành trong việc quản lý tiến trình là :
Tạo và hủy các tiến trình của người sử dụng và của hệ thống.
Ngưng và thực hiện lại một tiến trình.
Cung cấp cơ chế đồng bộ tiến trình.
Cung cấp cách thông tin giữa các tiến trình.
Cung cấp cơ chế kiểm soát deadlock(khái niệm này sẽ được trình bày trong chương II).
Quản lý bộ nhớ chính :
Trong hệ thống máy tính hiện đại, bộ nhớ chính là trung tâm của các thao tác, xử lý. Bộ nhớ chính có thể xem như một mảng kiểu byte hay kiểu word. Mỗi phần tử đều có địa chỉ. Đó là nơi lưu dữ liệu được CPU truy xuất một cách nhanh chóng so với các thiết bị nhập/xuất. CPU đọc những chỉ thị từ bộ nhớ chính. Các thiết bị nhập/xuất cài đặt cơ chế DMA(xem chương IV) cũng đọc và ghi dữ liệu trong bộ nhớ chính. Thông thường bộ nhớ chính chứa các thiết bị mà CPU có thể định vị trực tiếp. Ví dụ CPU truy xuất dữ liệu từ đĩa, những dữ liệu này được chuyển vào bộ nhớ qua lời gọi hệ thống nhập/xuất.
Một chương trình muốn thi hành trước hết phải được ánh xạ thành địa chỉ tuyệt đối và nạp vào bộ nhớ chính.Khi chương trình thi hành, hệ thống truy xuất các chỉ thị và dữ liệu của chương trình trong bộ nhớ chính. Ngay cả khi tiến trình kết thúc , dữ liệu vẫn còn trong bộ nhớ cho đến khi một tiến trình khác được ghi chồng lên.
Để tối ưu hóa quá trình hoạt động của CPU và tốc độ của máy tính, một số tiến trình được lưu giữ trong bộ nhớ. Có rất nhiều kế hoạch quản trị bộ nhớ do có nhiều ứng dụng bộ nhớ khác nhau và hiệu quả của các thuật toán phụ thuộc vào tùy tình huống cụ thể. Lựa chọn một thuật toán cho một hệ thống được mô tả trước phụ thuộc vào nhiều yếu tố, đặc biệt là phần cứng của hệ thống.
Hệ điều hành có những vai trò như sau trong việc quản lý bộ nhớ chính :
Lưu giữ thông tin về các vị trí trong bộ nhớ đã được sử dụng và ai sử dụng.
Quyết định tiến trình nào được nạp vào bộ nhớ chính, khi bộ nhớ đã có thể dùng được.
Cấp phát và thu hồi bộ nhớ khi cần thiết.
Quản lý bộ nhớ phụ :
Mục tiêu chính của hệ thống máy tính là thi hành chương trình. Những chương trình với dữ liệu truy xuất của chúng phải được đặt trong bộ nhớ chính trong suốt quá trình thi hành. Nhưng bộ nhớ chính quá nhỏ để có thể lưu giữ mọi dữ liệu và chương trình, ngoài ra dữ liệu sẽ mất khi không còn được cung cấp năng lượng. Hệ thống máy tính ngày nay cung cấp hệ thống lưu trữ phụ. Đa số các máy tính đều dùng đĩa để lưu trữ cả chương trình và dữ liệu. Hầu như tất cả chương trình : chương trình dịch, hợp ngữ, thủ tục, trình soạn thảo, định dạng... đều được lưu trữ trên đĩa cho tới khi nó được thực hiện, nạp vào trong bộ nhớ chính và cũng sử dụng đĩa để chứa dữ liệu và kết quả xử lý. Vì vậy một bộ quản lý hệ thống đĩa rất quan trọng cho hệ thống máy tính.
Vai trò của hệ điều hành trong việc quản lý đĩa :
Quản lý vùng trống trên đĩa.
Định vị lưu trữ.
Lập lịch cho đĩa.
Vì hệ thống đĩa được sử dụng thường xuyên, nên nó phải được dùng hiệu quả.Tốc độ của toàn bộ hệ thống tuỳ thuộc rất nhiều vào tốc độ truy xuất đĩa.
Quản lý hệ thống nhập xuất :
Một trong những mục tiêu của hệ điều hành là che dấu những đặc thù của các thiết bị phần cứng đối với người sử dụng thay vào đó là một lớp thân thiện hơn, người sử dụng dể thao tác hơn. Một hệ thống nhập/xuất bao gồm :
Hệ thống buffer caching.
Giao tiếp điều khiển thiết bị (device drivers) tổng quát.
Bộ điều khiển cho các thiết bị phần cứng.
Chỉ có device driver mới hiểu đến cấu trúc đặc thù của thiết bị mà nó mô tả.
Quản lý hệ thống tập tin :
Hệ thống quản lý tập tin là thành phần rõ ràng nhất trong hệ điều hành. Máy tính có thể lưu trữ thông tin trong nhiều dạng thiết bị vật lý khác nhau : băng từ, đĩa từ, , đĩa quang, ... Mỗi dạng có những đặc thù riêng về mặt tổ chức vật lý. Mỗi thiết bị có một bộ kiểm soát như bộ điều khiển đĩa (disk driver) và có những tính chất riêng. Những tính chất này là tốc độ, khả năng lưu trữ, tốc độ truyền dữ liệu và cách truy xuất.
Để cho việc sử dụng hệ thống máy tính thuận tiện, hệ điều hành cung cấp một cái nhìn logic đồng nhất về hệ thống lưu trữ thông tin. Hệ điều hành định nghĩa một đơn vị lưu trữ logic là tập tin. Hệ điều hành tạo một ánh xạ từ tập tin đến vùng thông tin trên đĩa và truy xuất những tập tin này thông qua thiết bị lưu trữ.
Một tập tin là một tập hợp những thông tin do người tạo ra nó xác định. Thông thường một tập tin đại diện cho một chương trình và dữ liệu. Dữ liệu của tập tin có thể là số, là ký tự, hay ký số. Tập tin thường có dạng tự do, như tập tin văn bản, nhị phân...(là tập tin chứa dãy các bit). (Xem bài VIII)
Vai trò của hệ điều hành trong việc quản lý tập tin :
Tạo và xoá một tập tin.
Tạo và xoá một thư mục.
Hỗ trợ các thao tác trên tập tin và thư mục.
Ánh xạ tập tin trên hệ thống lưu trữ phụ.
Backup tập tin trên các thiết bị lưu trữ.
Hệ thống bảo vệ :
Trong một hệ thống nhiều người sử dụng và cho phép nhiều tiến trình diễn ra đồng thời, các tiến trình phải được bảo vệ đối với những hoạt động khác.Do đó, hệ thống cung cấp cơ chế để đảm bảo rằng tập tin, bộ nhớ, CPU, và những tài nguyên khác chỉ được truy xuất bởi những tiến trình có quyền. Ví dụ, bộ nhớ đảm bảo rằng tiến trình chỉ được thi hành trong phạm vi địa chỉ của nó. Bộ thời gian đảm bảo rằng không có tiến trình nào độc chiếm CPU. Cuối cùng các thiết bị ngoại vi cũng được bảo vệ.
Hệ thống bảo vệ là một cơ chế kiểm soát quá trình truy xuất của chương trình, tiến trình, hoặc người sử dụng với tài nguyên của hệ thống. Cơ chế này cũng cung cấp cách thức để mô tả lại mức độ kiểm soát.
Hệ thống bảo vệ cũng làm tăng độ an toàn khi kiểm tra lỗi trong giao tiếp giữa những hệ thống nhỏ bên trong.
Hệ thống cơ chế dòng lệnh :
Một trong những phần quan trọng của chương trình hệ thống trong một hệ điều hành là cơ chế dòng lệnh, đó là giao tiếp giữa người sử dụng và hệ điều hành. Một số hệ điều hành đặt cơ chế dòng lệnh bên trong hạt nhân, số khác như MS-DOS và UNIX thì xem hệ điều hành như là một chương trình đặt biệt, được thi hành khi các công việc bắt đầu hoặc khi người sử dụng login lần đầu tiên.
Các lệnh đưa vào hệ điều hành thông qua bộ điều khiển lệnh. Trong các hệ thống chia xẻ thời gian một chương trình có thể đọc và thông dịch các lệnh điều khiển được thực hiện một cách tự động. Chương trình này thường được gọi là bộ thông dịch điều khiển card, cơ chế dòng lệnh hoặc Shell. Chức năng của nó rất đơn giản đó là lấy lệnh kế tiếp và thi hành.
Mỗi hệ điều hành sẽ có những giao tiếp khác nhau, dạng đơn giản theo cơ chế dòng lệnh, dạng thân thiện với người sử dụng như giao diện của Macintosh có các biểu tượng, cửa sổ thao tác dùng chuột.
Các lệnh có quan hệ với việc tạo và quản lý các tiến trình, kiểm soát nhập xuất, quản lý bộ lưu trữ phụ, quản lý bộ nhớ chính, truy xuất hệ thống tập tin và cơ chế bảo vệ.
[2 MÔ HÌNH LIÊN LẠC GIỮA CÁC TIẾN TRÌNH](/t5647-topic#28032)
HAI MÔ HÌNH LIÊN LẠC GIỮA CÁC TIẾN TRÌNH:
![ ](http://i60.tinypic.com/73igjq.png)
-
Với phương thức này, các tiến trình chia sẻ một vùng nhớ vật lý thông qua không gian địa chỉ của chúng. Một vùng nhớ chia sẻ tồn tại độc lập với các tiến trình, và khi một tiến trình muốn truy xuất đến vùng nhớ này, tiến trình phải kết gắn vùng nhớ chung đó vào không gian địa chỉ riêng của từng tiến trình, và thao tác trên đó như một vùng nhớ riêng của mình.
Đây là phương pháp nhanh nhất để trao đổi dữ liệu giữa các tiến trình. Nhưng phương thức này cũng làm phát sinh các khó khăn trong việc bảo đảm sự toàn vẹn dữ liệu (coherence) , ví dụ : làm sao biết được dữ liệu mà một tiến trình truy xuất là dữ liệu mới nhất mà tiến trình khác đã ghi ? Làm thế nào ngăn cản hai tiến trình cùng đồng thời ghi dữ liệu vào vùng nhớ chung ?...Rõ ràng vùng nhớ chia sẻ cần được bảo vệ bằng những cơ chế đồng bộ hóa thích hợp. Một khuyết điểm của phương pháp liên lạc này là không thể áp dụng hiệu quả trong các hệ phân tán, để trao đổi thông tin giữa các máy tính khác nhau.
-
Nếu hai tiến trình P và Q muốn liên lạc với nhau, cần phải thiết lập một mối liên kết giữa hai tiến trình, sau đó P, Q sử dụng các hàm IPC thích hợp để trao đổi thông điệp, cuối cùng khi sự liên lạc chấm dứt mối liên kết giữa hai tiến trình sẽ bị hủy. Có nhiều cách thức để thực hiện sự liên kết giữa hai tiến trình và cài đặt các theo tác send /receive tương ứng : liên lạc trực tiếp hay gián tiếp, liên lạc đồng bộ hoặc không đồng bộ , kích thước thông điệp là cố định hay không... Nếu các tiến trình liên lạc theo kiểu liên kết tường minh, các hàm Send và Receive sẽ được cài đặt với tham số:
Đơn vị truyền thông tin trong cơ chế trao đổi thông điệp là một thông điệp, do đó các tiến trình có thể trao đổi dữ liệu ở dạng có cấu trúc.
![ ](http://i60.tinypic.com/73igjq.png)
-
**Dùng bộ nhớ chung(Shared-Memory)**: Cách tiếp cận của cơ chế này là cho nhiều tiến trình cùng truy xuất đến một vùng nhớ chung gọi là vùng nhớ chia sẻ(shared memory).Không có bất kỳ hành vi truyền dữ liệu nào cần phải thực hiện ở đây, dữ liệu chỉ đơn giản được đặt vào một vùng nhớ mà nhiều tiến trình có thể cùng truy cập được.
Với phương thức này, các tiến trình chia sẻ một vùng nhớ vật lý thông qua không gian địa chỉ của chúng. Một vùng nhớ chia sẻ tồn tại độc lập với các tiến trình, và khi một tiến trình muốn truy xuất đến vùng nhớ này, tiến trình phải kết gắn vùng nhớ chung đó vào không gian địa chỉ riêng của từng tiến trình, và thao tác trên đó như một vùng nhớ riêng của mình.
Đây là phương pháp nhanh nhất để trao đổi dữ liệu giữa các tiến trình. Nhưng phương thức này cũng làm phát sinh các khó khăn trong việc bảo đảm sự toàn vẹn dữ liệu (coherence) , ví dụ : làm sao biết được dữ liệu mà một tiến trình truy xuất là dữ liệu mới nhất mà tiến trình khác đã ghi ? Làm thế nào ngăn cản hai tiến trình cùng đồng thời ghi dữ liệu vào vùng nhớ chung ?...Rõ ràng vùng nhớ chia sẻ cần được bảo vệ bằng những cơ chế đồng bộ hóa thích hợp. Một khuyết điểm của phương pháp liên lạc này là không thể áp dụng hiệu quả trong các hệ phân tán, để trao đổi thông tin giữa các máy tính khác nhau.
-
**Truyền thông điệp(Message-Passing)**: Hệ điều hành còn cung cấp một cơ chế liên lạc giữa các tiến trình không thông qua việc chia sẻ một tài nguyên chung , mà thông qua việc gởi thông điệp(Message). Để hỗ trợ cơ chế liên lạc bằng thông điệp, hệ điều hành cung cấp các hàm IPC chuẩn (Interprocess communication), cơ bản là hai hàm:
- Send(message) : gởi một thông điệp
- Receive(message) : nhận một thông điệp
Nếu hai tiến trình P và Q muốn liên lạc với nhau, cần phải thiết lập một mối liên kết giữa hai tiến trình, sau đó P, Q sử dụng các hàm IPC thích hợp để trao đổi thông điệp, cuối cùng khi sự liên lạc chấm dứt mối liên kết giữa hai tiến trình sẽ bị hủy. Có nhiều cách thức để thực hiện sự liên kết giữa hai tiến trình và cài đặt các theo tác send /receive tương ứng : liên lạc trực tiếp hay gián tiếp, liên lạc đồng bộ hoặc không đồng bộ , kích thước thông điệp là cố định hay không... Nếu các tiến trình liên lạc theo kiểu liên kết tường minh, các hàm Send và Receive sẽ được cài đặt với tham số:
- Send(destination, message) : gởi một thông điệp đến destination
- Receive(source,message) : nhận một thông điệp từ source
Đơn vị truyền thông tin trong cơ chế trao đổi thông điệp là một thông điệp, do đó các tiến trình có thể trao đổi dữ liệu ở dạng có cấu trúc.
[NguyenThiThuThao(TH09A2)](/u1956)
- Tổng số bài gửi : 21
Join date : 09/03/2014
[Khái niệm Máy tính ảo.](/t5647-topic#28042)
Admin đã viết:Thảo luận những vấn đề liên quan đến Bài 3.
Máy ảo là sự phát triển lô-gic của kiến trúc phân lớp.
· Bằng cách Điều phối CPU và kỹ thuật Bộ nhớ ảo, có thể tạo cho người dùng ảo giác rằng người đó đang dùng bộ xử lý và bộ nhớ của riêng mình.
· Nói cách khác: Máy tính ảo của người dùng được giả lập trên nền máy tính vật lý.
· Ví dụ:Trên nền CPU loại PowerPC, Motorola, Alpha,... có thể giả lập máy tính ảo Intel chạy HĐH Windows và ngược lại. Khi đó, các lệnh của Intel được chuyển đổi sang lệnh vật lý trước khi thực hiện.
[dangthituyetnhungTH08a1](/u2002)
- Tổng số bài gửi : 41
Join date : 19/03/2014
[Những tiện ích trong Windows có thể bạn chưa biết](/t5647-topic#28045)
Những tiện ích trong Windows:
DRIVER VERIFIER
Thực hiện:
Vào Start->Run, tại cửa sổ Open gõ vào Verifier. Hộp thoại Driver Verifier Manager sẽ xuất hiện.
Chọn 1 trong 5 tác vụ muốn thực hiện. Chọn Create Custom settings (for code developers) trừ khi bạn là người tạo ra driver và muốn kiểm tra. Bạn có thể chọn Create standard settings và nhấn Next. Cửa sổ mới sẽ hiện các mục chọn sau:
• Automatically select unsigned drivers: Tự động kiểm tra những driver không được nhận diện.
• Automatically select drivers built for older versions of Windows: Tự động kiểm tra driver đã tạo ra cho phiên bản cũ hơn (so với phiên bản hiện thời) của Windows.
• Automatically select all drivers installed on this computer: Tự động kiểm tra tất cả các driver đã được cài đặt vào máy.
• Select drivers names from a list: Lựa chọn driver trong danh sách
Ở đây là danh sách những driver không được nhận diện (unsigned).
Lưu ý: Đối với hệ điều hành Windows XP Service Pack 1, việc thực hiện như trên có thể sẽ làm Windows không khởi động được do xung đột driver. Trong trường hợp này, bạn khắc phục như sau:
• Khởi động lại máy
• Ấn phím F8 khi được yêu cầu, ở danh sách hiện ra bạn chọn 'Last known good...'.
Khởi động lại và Windows sẽ trở lại làm việc bình thường.
SYSTEM FILE CHECKER (SFC)
Đây là 1 tiện ích rất hay có sẵn trong Windows XP Professional. Bất cứ khi nào bạn muốn kiểm tra các file hệ thống hoặc khi máy có sự cố với các file hệ thống vì lý do nào đó thì hãy sử dụng tiện ích này. Công việc của SFC là rà soát và thay thế những file họng, lỗi... Hầu hết các file mà SFC kiểm tra là ***, DLL, TTF, SYS, FON...
Lưu ý: Thực chất đây là quá trình so sánh file hiện có với file gốc trong đĩa cài đặt Windows XP nên bạn cần đưa đĩa vào khi quá trình kiểm tra file bắt đầu.
Thực hiện:
Vào Start->Run, gõ vào cmd. Khi cửa sổ đen hiện ra, bạn gõ tiếp SFC ngay dấu nháy. Một danh sách hiện ra:
/SCANNOW
Quét hết các file hệ thống ngay tức thì.
/SCANONCE
Quét hết các file hệ thống vào lần khởi động kế tiếp.
/SCANBOOT
Quét hết các file hệ thống mỗi khi khởi động máy.
/REVERT
Quá trình quét file về dạng mặc định.
/PURGECACHE
Thanh lọc các file CACHE
/CACHESIZE=x
Đặt lại kích cỡ cho file CACHE
Bạn chọn 1 mục tương ứng, ví dụ:
C:\>sfc/scannow
Cửa sổ Windows File Protection xuất hiện, tiến độ kiểm tra file bắt đầu. Khi gặp file, folder bị trục trặc, SFC có nhiệm vụ tìm và thay thế.
Backup - Restore: Lưu trữ - Phục hồi
Việc sao chép file cho máy tính cực kỳ quan trọng, bởi tất cả các file quan trọng vì 1 lý do nào đó (có thể do virus tấn công )
Backup: Tạo file lưu trữ phòng khi hệ thống trục trặc.
Lưu ý: Để thực hiện được công việc này bạn phải đăng nhập với quyền Administrator hoặc bạn phải là người sở hữu các file, folder muốn lưu trữ.
Thực hiện:
Vào Start.Program.Accessories.System tools.Backup.Next. Cửa sổ Backup or Restore winzard xuất hiện.
Chọn Back up files and settings rồi nhấn Next
Chọn các mục bạn muốn lưu trữ trong What to Back Up rồi nhấp Next .
Chọn ổ đĩa chứa file lưu trữ bằng cách nhấn Browse (chương trình luôn được mặc định là ổ A). Đặt tên cho file lưu trữ trong ô Type a name for this backup. Nhấn Next->Finish để bắt đầu thực hiện công việc tạo file lưu trữ.
Gặp sự cố với file hệ thống, bạn chỉ cần 'bung' file lưu trữ. Thực hiện như sau:
Vào Start.Program.Accessories.System tools.Backup.Next.
Trong cửa sổ Backup or Restore, chọn: Restore files and settings.
Bạn tìm đến nơi 'cất' file lưu trữ, sau đó nhấn Next để phục hồi.
Restore: Phục hồi lại hệ thống tại 1 thời điểm định sẵn hoặc thời điểm gần nhất.
Để thực hiện được chức năng này bạn phải chắc System Restore đang hoạt động.
Thực hiện:
Vào Start.Program.Accessories.System tool.System Restore. Chọn Create a restore point: Đánh dấu thời điểm phục hồi.
Nhấn Next để tiếp tục. Gõ 1 tên tùy ý vào Restore point description, mục đích là để mô tả thời điểm phục hồi.
Thực hiện xong bạn nhấn Home để quay trở lại bảng System Restore ban đầu.
Chọn Restore my computer to an earlier time->Next. Bạn sẽ nhìn thấy thời điểm phục hồi đã tạo . Nhấn Next để bắt đầu công việc phục hồi hệ thống. Khi phục hồi bạn đừng tranh thủ làm việc gì khác với PC, sau khi hoàn tất thì khởi động lại máy.
Tiện ích cuối cùng mà tôi muốn giới thiệu là Recovery Console.
Recovery Console: Với tiện ích này bạn có thể sửa chữa hệ thống, định dạng đĩa, sử dụng hay không sử dụng các dịch vụ. Có thể bạn ít quen thuộc với Recovery Console bởi một điều dễ hiểu là do nó không được cài đặt khi bạn chạy SETUP của Windows XP Professional.
Để có thể sử dụng Recovery Console bạn phải đăng nhập với quyền Administrator và phải là người dùng am hiểu hệ thống (power user).
Recovery Console cho phép sao chép file từ phương tiện lưu trữ vào phân vùng hệ thống (System Partition) nhưng làm ngược lại thì hoàn toàn không được. Còn nữa, mặc dù bạn có thể di chuyển đến các ổ đĩa logic nhưng bạn không thể đọc được file trên bất kỳ phân vùng nào ngoại trừ phân vùng hệ thống. Recovery Console rất nguy hiểm vì '1 bước đi cấm kì quay lại' bởi vậy bạn phải hiểu rõ nó. Nếu sai lầm thì chỉ có cách cài đặt lại Windows mà thôi.
Vì bài viết có hạn nên tôi chỉ xin giới thiệu một số điểm chính.
Thực hiện:
• Khởi động (boot) bằng đĩa CD cài đặt Windows XP Professional. Khi thấy thông báo: Press any key to boot from CD, bạn nhấn phím bất kì để tiếp tục.
• Khi nhìn thấy thông báo 'Welcome to setup', bạn nhấn phím 'R' để chạy Recovery Console. Chú ý, nếu máy có cài đặt nhiều hệ điều hành hoặc nhiều bản cài đặt XP (Dual Boot hoặc là Multiple Boot), bạn phải chọn bản cần dùng từ Recovery Console.
• Khi Recovery Console nhắc, bạn gõ vào password của Administrator.
• Tại dấu nhắc lệnh của Recovery Console, bạn gõ:
sau đó để hiện danh sách tất cả dịch vụ và driver đã được cài đặt cho bản Windows XP trước đó. Gõ: sau đó để hiện danh sách các lệnh của Recovery Console.
DRIVER VERIFIER
Thực hiện:
Vào Start->Run, tại cửa sổ Open gõ vào Verifier. Hộp thoại Driver Verifier Manager sẽ xuất hiện.
Chọn 1 trong 5 tác vụ muốn thực hiện. Chọn Create Custom settings (for code developers) trừ khi bạn là người tạo ra driver và muốn kiểm tra. Bạn có thể chọn Create standard settings và nhấn Next. Cửa sổ mới sẽ hiện các mục chọn sau:
• Automatically select unsigned drivers: Tự động kiểm tra những driver không được nhận diện.
• Automatically select drivers built for older versions of Windows: Tự động kiểm tra driver đã tạo ra cho phiên bản cũ hơn (so với phiên bản hiện thời) của Windows.
• Automatically select all drivers installed on this computer: Tự động kiểm tra tất cả các driver đã được cài đặt vào máy.
• Select drivers names from a list: Lựa chọn driver trong danh sách
Ở đây là danh sách những driver không được nhận diện (unsigned).
Lưu ý: Đối với hệ điều hành Windows XP Service Pack 1, việc thực hiện như trên có thể sẽ làm Windows không khởi động được do xung đột driver. Trong trường hợp này, bạn khắc phục như sau:
• Khởi động lại máy
• Ấn phím F8 khi được yêu cầu, ở danh sách hiện ra bạn chọn 'Last known good...'.
Khởi động lại và Windows sẽ trở lại làm việc bình thường.
SYSTEM FILE CHECKER (SFC)
Đây là 1 tiện ích rất hay có sẵn trong Windows XP Professional. Bất cứ khi nào bạn muốn kiểm tra các file hệ thống hoặc khi máy có sự cố với các file hệ thống vì lý do nào đó thì hãy sử dụng tiện ích này. Công việc của SFC là rà soát và thay thế những file họng, lỗi... Hầu hết các file mà SFC kiểm tra là ***, DLL, TTF, SYS, FON...
Lưu ý: Thực chất đây là quá trình so sánh file hiện có với file gốc trong đĩa cài đặt Windows XP nên bạn cần đưa đĩa vào khi quá trình kiểm tra file bắt đầu.
Thực hiện:
Vào Start->Run, gõ vào cmd. Khi cửa sổ đen hiện ra, bạn gõ tiếp SFC ngay dấu nháy. Một danh sách hiện ra:
/SCANNOW
Quét hết các file hệ thống ngay tức thì.
/SCANONCE
Quét hết các file hệ thống vào lần khởi động kế tiếp.
/SCANBOOT
Quét hết các file hệ thống mỗi khi khởi động máy.
/REVERT
Quá trình quét file về dạng mặc định.
/PURGECACHE
Thanh lọc các file CACHE
/CACHESIZE=x
Đặt lại kích cỡ cho file CACHE
Bạn chọn 1 mục tương ứng, ví dụ:
C:\>sfc/scannow
Cửa sổ Windows File Protection xuất hiện, tiến độ kiểm tra file bắt đầu. Khi gặp file, folder bị trục trặc, SFC có nhiệm vụ tìm và thay thế.
Backup - Restore: Lưu trữ - Phục hồi
Việc sao chép file cho máy tính cực kỳ quan trọng, bởi tất cả các file quan trọng vì 1 lý do nào đó (có thể do virus tấn công )
Backup: Tạo file lưu trữ phòng khi hệ thống trục trặc.
Lưu ý: Để thực hiện được công việc này bạn phải đăng nhập với quyền Administrator hoặc bạn phải là người sở hữu các file, folder muốn lưu trữ.
Thực hiện:
Vào Start.Program.Accessories.System tools.Backup.Next. Cửa sổ Backup or Restore winzard xuất hiện.
Chọn Back up files and settings rồi nhấn Next
Chọn các mục bạn muốn lưu trữ trong What to Back Up rồi nhấp Next .
Chọn ổ đĩa chứa file lưu trữ bằng cách nhấn Browse (chương trình luôn được mặc định là ổ A). Đặt tên cho file lưu trữ trong ô Type a name for this backup. Nhấn Next->Finish để bắt đầu thực hiện công việc tạo file lưu trữ.
Gặp sự cố với file hệ thống, bạn chỉ cần 'bung' file lưu trữ. Thực hiện như sau:
Vào Start.Program.Accessories.System tools.Backup.Next.
Trong cửa sổ Backup or Restore, chọn: Restore files and settings.
Bạn tìm đến nơi 'cất' file lưu trữ, sau đó nhấn Next để phục hồi.
Restore: Phục hồi lại hệ thống tại 1 thời điểm định sẵn hoặc thời điểm gần nhất.
Để thực hiện được chức năng này bạn phải chắc System Restore đang hoạt động.
Thực hiện:
Vào Start.Program.Accessories.System tool.System Restore. Chọn Create a restore point: Đánh dấu thời điểm phục hồi.
Nhấn Next để tiếp tục. Gõ 1 tên tùy ý vào Restore point description, mục đích là để mô tả thời điểm phục hồi.
Thực hiện xong bạn nhấn Home để quay trở lại bảng System Restore ban đầu.
Chọn Restore my computer to an earlier time->Next. Bạn sẽ nhìn thấy thời điểm phục hồi đã tạo . Nhấn Next để bắt đầu công việc phục hồi hệ thống. Khi phục hồi bạn đừng tranh thủ làm việc gì khác với PC, sau khi hoàn tất thì khởi động lại máy.
Tiện ích cuối cùng mà tôi muốn giới thiệu là Recovery Console.
Recovery Console: Với tiện ích này bạn có thể sửa chữa hệ thống, định dạng đĩa, sử dụng hay không sử dụng các dịch vụ. Có thể bạn ít quen thuộc với Recovery Console bởi một điều dễ hiểu là do nó không được cài đặt khi bạn chạy SETUP của Windows XP Professional.
Để có thể sử dụng Recovery Console bạn phải đăng nhập với quyền Administrator và phải là người dùng am hiểu hệ thống (power user).
Recovery Console cho phép sao chép file từ phương tiện lưu trữ vào phân vùng hệ thống (System Partition) nhưng làm ngược lại thì hoàn toàn không được. Còn nữa, mặc dù bạn có thể di chuyển đến các ổ đĩa logic nhưng bạn không thể đọc được file trên bất kỳ phân vùng nào ngoại trừ phân vùng hệ thống. Recovery Console rất nguy hiểm vì '1 bước đi cấm kì quay lại' bởi vậy bạn phải hiểu rõ nó. Nếu sai lầm thì chỉ có cách cài đặt lại Windows mà thôi.
Vì bài viết có hạn nên tôi chỉ xin giới thiệu một số điểm chính.
Thực hiện:
• Khởi động (boot) bằng đĩa CD cài đặt Windows XP Professional. Khi thấy thông báo: Press any key to boot from CD, bạn nhấn phím bất kì để tiếp tục.
• Khi nhìn thấy thông báo 'Welcome to setup', bạn nhấn phím 'R' để chạy Recovery Console. Chú ý, nếu máy có cài đặt nhiều hệ điều hành hoặc nhiều bản cài đặt XP (Dual Boot hoặc là Multiple Boot), bạn phải chọn bản cần dùng từ Recovery Console.
• Khi Recovery Console nhắc, bạn gõ vào password của Administrator.
• Tại dấu nhắc lệnh của Recovery Console, bạn gõ:
[TranNguyenBinh(HLT3)](/u2001)
- Tổng số bài gửi : 42
Join date : 18/03/2014
Age : 26
Đến từ : Tiền Giang
[Khái niệm bộ nhớ đệm Cache](/t5647-topic#28046)
Cache (đọc là kets, hay còn gọi là cạc) là tên gọi của bộ nhớ đệm – nơi lưu trữ các dữ liệu nằm chờ các ứng dụng hay phần cứng xử lý. Mục đích của nó là để tăng tốc độ xử lý (có sẵn xài liền không cần tốn thời gian đi lùng sục tìm kéo về).
Nói một cách bài bản, cache là một cơ chế lưu trữ tốc độ cao đặc biệt. Nó có thể là một vùng lưu trữ của bộ nhớ chính hay một thiết bị lưu trữ tốc độ cao độc lập.
Có hai dạng lưu trữ cache được dùng phổ biến trong máy tính cá nhân là memory caching (bộ nhớ cache hay bộ nhớ truy xuất nhanh) và disk caching (bộ nhớ đệm đĩa).
* Memory cache: Đây là một khu vực bộ nhớ được tạo bằng bộ nhớ tĩnh (SRAM) có tốc độ cao nhưng đắt tiền thay vì bộ nhớ động (DRAM) có tốc độ thấp hơn và rẻ hơn, được dùng cho bộ nhớ chính. Cơ chế lưu trữ bộ nhớ cahce này rất có hiệu quả. Bởi lẽ, hầu hết các chương trình thực tế truy xuất lặp đi lặp lại cùng một dữ liệu hay các lệnh y chang nhau. Nhờ lưu trữ các thông tin này trong SRAM, máy tính sẽ khỏi phải truy xuất vào DRAM vốn chậm chạp hơn.
Một số bộ nhớ cache được tích hợp vào trong kiến trúc của các bộ vi xử lý. Chẳng hạn, CPU Intel đời 80486 có bộ nhớ cache 8 KB, trong khi lên đời Pentium là 16 KB. Các bộ nhớ cache nội (internal cache) như thế gọi là Level 1 (L1) Cache (bộ nhớ đệm cấp 1). Các máy tính hiện đại hơn thì có thêm bộ nhớ cache ngoại (external cache) gọi là Level 2 (L2) Cache (bộ nhớ đệm cấp 2). Các cache này nằm giữa CPU và bộ nhớ hệ thống DRAM. Sau này, do nhu cầu xử lý nặng hơn và với tốc độ nhanh hơn, các máy chủ (server), máy trạm (workstation) và mới đây là CPU Pentium 4 Extreme Edition được tăng cường thêm bộ nhớ đệm L3 Cache.
* Disk cache: Bộ nhớ đệm đĩa cũng hoạt động cùng nguyên tắc với bộ nhớ cache, nhưng thay vì dùng SRAM tốc độ cao, nó lại sử dụng ngay bộ nhớ chính. Các dữ liệu được truy xuất gần đây nhất từ đĩa cứng sẽ được lưu trữ trong một buffer (phần đệm) của bộ nhớ. Khi chương trình nào cần truy xuất dữ liệu từ ổ đĩa, nó sẽ kiểm tra trước tiên trong bộ nhớ đệm đĩa xem dữ liệu mình cần đang có sẵn không. Cơ chế bộ nhớ đệm đĩa này có công dụng cải thiện một cách đáng ngạc nhiên sức mạnh và tốc độ của hệ thống. Bởi lẽ, việc truy xuất 1 byte dữ liệu trong bộ nhớ RAM có thể nhanh hơn hàng ngàn lần nếu truy xuất từ một ổ đĩa cứng.
(ST)
Nói một cách bài bản, cache là một cơ chế lưu trữ tốc độ cao đặc biệt. Nó có thể là một vùng lưu trữ của bộ nhớ chính hay một thiết bị lưu trữ tốc độ cao độc lập.
Có hai dạng lưu trữ cache được dùng phổ biến trong máy tính cá nhân là memory caching (bộ nhớ cache hay bộ nhớ truy xuất nhanh) và disk caching (bộ nhớ đệm đĩa).
* Memory cache: Đây là một khu vực bộ nhớ được tạo bằng bộ nhớ tĩnh (SRAM) có tốc độ cao nhưng đắt tiền thay vì bộ nhớ động (DRAM) có tốc độ thấp hơn và rẻ hơn, được dùng cho bộ nhớ chính. Cơ chế lưu trữ bộ nhớ cahce này rất có hiệu quả. Bởi lẽ, hầu hết các chương trình thực tế truy xuất lặp đi lặp lại cùng một dữ liệu hay các lệnh y chang nhau. Nhờ lưu trữ các thông tin này trong SRAM, máy tính sẽ khỏi phải truy xuất vào DRAM vốn chậm chạp hơn.
Một số bộ nhớ cache được tích hợp vào trong kiến trúc của các bộ vi xử lý. Chẳng hạn, CPU Intel đời 80486 có bộ nhớ cache 8 KB, trong khi lên đời Pentium là 16 KB. Các bộ nhớ cache nội (internal cache) như thế gọi là Level 1 (L1) Cache (bộ nhớ đệm cấp 1). Các máy tính hiện đại hơn thì có thêm bộ nhớ cache ngoại (external cache) gọi là Level 2 (L2) Cache (bộ nhớ đệm cấp 2). Các cache này nằm giữa CPU và bộ nhớ hệ thống DRAM. Sau này, do nhu cầu xử lý nặng hơn và với tốc độ nhanh hơn, các máy chủ (server), máy trạm (workstation) và mới đây là CPU Pentium 4 Extreme Edition được tăng cường thêm bộ nhớ đệm L3 Cache.
* Disk cache: Bộ nhớ đệm đĩa cũng hoạt động cùng nguyên tắc với bộ nhớ cache, nhưng thay vì dùng SRAM tốc độ cao, nó lại sử dụng ngay bộ nhớ chính. Các dữ liệu được truy xuất gần đây nhất từ đĩa cứng sẽ được lưu trữ trong một buffer (phần đệm) của bộ nhớ. Khi chương trình nào cần truy xuất dữ liệu từ ổ đĩa, nó sẽ kiểm tra trước tiên trong bộ nhớ đệm đĩa xem dữ liệu mình cần đang có sẵn không. Cơ chế bộ nhớ đệm đĩa này có công dụng cải thiện một cách đáng ngạc nhiên sức mạnh và tốc độ của hệ thống. Bởi lẽ, việc truy xuất 1 byte dữ liệu trong bộ nhớ RAM có thể nhanh hơn hàng ngàn lần nếu truy xuất từ một ổ đĩa cứng.
(ST)
[TranNguyenBinh(HLT3)](/u2001)
- Tổng số bài gửi : 42
Join date : 18/03/2014
Age : 26
Đến từ : Tiền Giang
[Liên lạc giữa các tiến trình](/t5647-topic#28050) **Nhu cầu liên lạc giữa các tiến trình**
Trong môi trường đa chương, một tiến trình không đơn độc trong hệ thống, mà có thể ảnh hưởng đến các tiến trình khác, hoặc bị các tiến trình khác tác động. Nói cách khác, các tiến trình là những thực thể độc lập, nhưng chúng vẫn có nhu cầu liên lạc với nhau để:
- Chia sẻ thông tin: nhiều tiến trình có thể cùng quan tâm đến những dữ liệu nào đó, do vậy hệ điều hành cần cung cấp một môi trường cho phép sự truy cập đồng thời đến các dữ liệu chung.
- Hợp tác hoàn thành tác vụ: đôi khi để đạt được một sự xử lý nhanh chóng, người ta phân chia một tác vụ thành các công việc nhỏ có thể tiến hành song song. Thường thì các công việc nhỏ này cần hợp tác với nhau để cùng hoàn thành tác vụ ban đầu, ví dụ dữ liệu kết xuất của tiến trình này lại là dữ liệu nhập cho tiến trình khác… Trong các trường hợp đó, hệ điều hành cần cung cấp cơ chế để các tiến trình có thể trao đổi thông tin với nhau.
**Các vấn đề nảy sinh trong việc liên lạc giữa các tiến trình**
Do mỗi tiến trình sỡ hữu một không gian địa chỉ riêng biệt, nên các tiến trình không thể liên lạc trực tiếp dễ dàng mà phải nhờ vào các cơ chế do hệ điều hành cung cấp. Khi cung cấp cơ chế liên lạc cho các tiến trình, hệ điều hành thường phải tìm giải pháp cho các vấn đề chính yếu sau:
- Liên kết tường minh hay tiềm ẩn (explicit naming/implicit naming): tiến trình có cần phải biết tiến trình nào đang trao đổi hay chia sẻ thông tin với nó? Mối liên kết được gọi là tường minh khi được thiết lập rõ ràng, trực tiếp giữa các tiến trình, và là tiềm ẩn khi các tiến trình liên lạc với nhau thông qua một qui ước ngầm nào đó.
- Liên lạc theo chế độ đồng bộ hay không đồng bộ (blocking/ non-blocking): khi một tiến trình trao đổi thông tin với một tiến trình khác, các tiến trình có cần phải đợi cho thao tác liên lạc hoàn tất rồi mới tiếp tục các xử lý khác? Các tiến trình liên lạc theo cơ chế đồng bộ sẽ chờ nhau hoàn tất việc liên lạc, còn các tiến trình liên lạc theo cơ chế non-blocking thì không.
- Liên lạc giữa các tiến trình trong hệ thống tập trung và hệ thống phân tán: cơ chế liên lạc giữa các tiến trình trong cùng một máy tính có sự khác biệt với việc liên lạc giữa các tiến trình giữa những máy tính khác nhau.
Hầu hết các hệ điều hành đưa ra nhiều cơ chế liên lạc khác nhau, mỗi cơ chế có những đặc tính riêng, và thích hợp trong một hoàn cảnh chuyên biệt.
[VoMinhQuang (HLT3)](/u1957)
- Tổng số bài gửi : 20
Join date : 09/03/2014
[Các cơ chế thông tin liên lạc](/t5647-topic#28051) **Tín hiệu (Signal)**
Giới thiệu: Tín hiệu là một cơ chế phần mềm tương tự như các ngắt cứng tác động đến các tiến trình. Một tín hiệu được sử dụng để thông báo cho tiến trình về một sự kiện nào đó xảy ra. Có nhiều tín hiệu được định nghĩa, mỗi một tín hiệu có một ý nghĩa tương ứng với một sự kiện đặc trưng.
Ví dụ : Một số tín hiệu của UNIX
![ ](http://i60.tinypic.com/2hp7lg3.png)
Mỗi tiến trình sỡ hữu một bảng biễu diễn các tín hiệu khác nhau. Với mỗi tín hiệu sẽ có tương ứng một trình xử lý tín hiệu (signal handler) qui định các xử lý của tiến trình khi nhận được tín hiệu tương ứng.
Các tín hiệu được gởi đi bởi:
- Phần cứng (ví dụ lỗi do các phép tính số học).
- Hạt nhân hệ điều hành gởi đến một tiến trình (ví dụ lưu ý tiến trình khi có một thiết bị nhập/xuất tự do).
- Một tiến trình gởi đến một tiến trình khác (ví dụ tiến trình cha yêu cầu một tiến trình con kết thúc).
- Người dùng (ví dụ nhấn phím Ctl-C để ngắt xử lý của tiến trình).
Khi một tiến trình nhận một tín hiệu, nó có thể xử lý theo một trong các cách sau:
- Bỏ qua tín hiệu.
- Xử lý tín hiệu theo kiểu mặc định.
- Tiếp nhận tín hiệu và xử lý theo cách đặc biệt của tiến trình.
Liên lạc bằng tín hiệu mang tính chất không đồng bộ, nghĩa là một tiến trình nhận tín hiệu không thể xác định trước thời điểm nhận tín hiệu. Hơn nữa các tiến trình không thể kiểm tra được sự kiện tương ứng với tín hiệu có thật sự xảy ra hay không? Cuối cùng, các tiến trình chỉ có thể thông báo cho nhau về một biến cố nào đó, mà không trao đổi dữ liệu theo cơ chế này được.
**Pipe**
Giới thiệu: Một pipe là một kênh liên lạc trực tiếp giữa hai tiến trình: dữ liệu xuất của tiến trình này được chuyển đến làm dữ liệu nhập cho tiến trình kia dưới dạng một dòng các byte.
Khi một pipe được thiết lập giữa hai tiến trình, một trong chúng sẽ ghi dữ liệu vào pipe và tiến trình kia sẽ đọc dữ liệu từ pipe. Thứ tự dữ liệu truyền qua pipe được bảo toàn theo nguyên tắc FIFO. Một pipe có kích thước giới hạn (thường là 4096 ký tự).
![ ](http://i59.tinypic.com/21ke6g7.png)
Một tiến trình chỉ có thể sử dụng một pipe do nó tạo ra hay kế thừa từ tiến trình cha. Hệ điều hành cung cấp các lời gọi hệ thống read/ write cho các tiến trình thực hiện thao tác đọc/ ghi dữ liệu trong pipe. Hệ điều hành cũng chịu trách nhiệm đồng bộ hóa việc truy xuất pipe trong các tình huống:
- Tiến trình đọc pipe sẽ bị khóa nếu pipe trống, nó sẽ phải đợi đến khi pipe có dữ liệu để truy xuất.
- Tiến trình ghi pipe sẽ bị khóa nếu pipe đầy, nó sẽ phải đợi đến khi pipe có chỗ trống để chứa dữ liệu.
Liên lạc bằng pipe là một cơ chế liên lạc một chiều (unidirectional), nghĩa là một tiến trình kết nối với một pipe chỉ có thể thực hiện một trong hai thao tác đọc hoặc ghi, nhưng không thể thực hiện cả hai. Một số hệ điều hành cho phép thiết lập hai pipe giữa một cặp tiến trình để tạo liên lạc hai chiều. Trong những hệ thống đó, có nguy cơ xảy ra tình trạng tắc nghẽn (deadlock): một pipe bị giới hạn về kích thước, do vậy nếu cả hai pipe nối kết hai tiến trình đều đầy (hoặc đều trống) và cả hai tiến trình đều muốn ghi (hay đọc) dữ liệu vào pipe (mỗi tiến trình ghi dữ liệu vào một pipe), chúng sẽ cùng bị khóa và chờ lẫn nhau mãi mãi!
Cơ chế này cho phép truyền dữ liệu với cách thức không cấu trúc.
Ngoài ra, một giới hạn của hình thức liên lạc này là chỉ cho phép kết nối hai tiến trình có quan hệ cha - con, và trên cùng một máy tính.
**Sockets**
Giới thiệu: Một socket là một thiết bị truyền thông hai chiều tương tự như tập tin, chúng ta có thể đọc hay ghi lên nó, tuy nhiên mỗi socket là một thành phần trong một mối nối nào đó giữa các máy trên mạng máy tính và các thao tác đọc/ghi chính là sự trao đổi dữ liệu giữa các ứng dụng trên nhiều máy khác nhau.
Sử dụng socket có thể mô phỏng hai phương thức liên lạc trong thực tế: liên lạc thư tín (socket đóng vai trò bưu cục) và liên lạc điện thoại (socket đóng vai trò tổng đài) .
Các thuộc tính của socket:
- Domaine: định nghĩa dạng thức địa chỉ và các nghi thức sử dụng. Có nhiều domaines, ví dụ UNIX, INTERNET, XEROX_NS,...
- Type: định nghĩa các đặc điểm liên lạc:
a) Sự tin cậy
b) Sự bảo toàn thứ tự dữ liệu
c) Lặp lại dữ liệu
d) Chế độ nối kết
e) Bảo toàn giới hạn thông điệp
f) Khả năng gởi thông điệp khẩn
Để thực hiện liên lạc bằng socket, cần tiến hành các thao tác:
- Tạo lập hay mở một socket
- Gắn kết một socket với một địa chỉ
- Liên lạc: có hai kiểu liên lạc tùy thuộc vào chế độ nối kết:
**a) Liên lạc trong chế độ không liên kết:**liên lạc theo hình thức hộp thư:
- Hai tiến trình liên lạc với nhau không kết nối trực tiếp.
- Mỗi thông điệp phải kèm theo địa chỉ người nhận.
Hình thức liên lạc này có đặc điểm được:
- Người gởi không chắc chắn thông điệp của học được gởi đến người nhận.
- Một thông điệp có thể được gởi nhiều lần.
- Hai thông điệp đượ gởi theo một thứ tự nào đó có thể đến tay người nhận theo một thứ tự khác.
Một tiến trình sau khi đã mở một socket có thể sử dụng nó để liên lạc với nhiều tiến trình khác nhau nhờ sử hai primitive send và receive.
**b) Liên lạc trong chế độ nối kết:**
Một liên kết được thành lập giữa hai tiến trình. Trước khi mối liên kết này được thiết lập, một trong hai tiến trình phải đợi có một tiến trình khác yêu cầu kết nối.Có thể sử dụng socket để liên lạc theo mô hình client-serveur. Trong mô hình này, server sử dụng lời gọi hệ thống listen và accept để nối kết với client, sau đó , client và server có thể trao đổi thông tin bằng cách sử dụng các primitive send và receive.
- Hủy một socket.
Ví dụ :
Trong nghi thức truyền thông TCP, mỗi mối nối giữa hai máy tính được xác định bởi một port, khái niệm port ở đây không phải là một cổng giao tiếp trên thiết bị vật lý mà chỉ là một khái niệm logic trong cách nhìn của người lập trình, mỗi port được tương ứng với một số nguyên dương.
![ ](http://i59.tinypic.com/2dbul2a.jpg)
Hình trên minh họa một cách giao tiếp giữa hai máy tính trong nghi thức truyền thông TCP. Máy A tạo ra một socket và kết buộc (bind) socket nầy với một port X (tức là một số nguyên dương có ý nghĩa cục bộ trong máy A), trong khi đó máy B tạo một socket khác và móc vào (connect) port X trong máy A.
Cơ chế socket có thể sử dụng để chuẩn hoá mối liên lạc giữa các tiến trình vốn không liên hệ với nhau, và có thể hoạt động trong những hệ thống khác nhau.
Được sửa bởi VoMinhQuang (HLT3) ngày 29/3/2014, 16:40; sửa lần 1.
[VoMinhQuang (HLT3)](/u1957)
- Tổng số bài gửi : 20
Join date : 09/03/2014
[Nguyên lí - Ứng dụng máy ảo](/t5647-topic#28053)
-
Công nghệ máy ảo áp dụng cho cả phần cứng máy chủ và máy trạm. Công nghệ máy ảo cho phép nhiều hệ điều hành chạy đồng thời trên một máy tính duy nhất.
Một máy ảo là một chương trình đóng vai trò như một máy vi tính ảo. Nó chạy trên hệ điều hành hiện tại - hệ điều hành chủ và cung cấp phần cứng ảo tới hệ điều hành khách. Các hệ điều hành khách chạy trên các cửa sổ của hệ điều hành chủ, giống như bất kỳ chương trình nào khác của máy. Đối với những hệ điều hành khách, máy ảo lại hiện diện như một cỗ máy vật lý thực sự.
Các máy ảo cung cấp phần cứng ảo, bao gồm CPU ảo, RAM ảo, ổ đĩa cứng, giao diện mạng và những thiết bị khác. Các thiết bị phần cứng ảo được cung cấp bởi máy ảo và được ánh xạ tới phần cứng thực trên máy thật. Ví dụ như, ổ đĩa cứng ảo lại được lưu trong một file đặt trên ổ đĩa cứng thực.
Bạn có thể cài đặt nhiều máy ảo lên máy thực và chỉ bị hạn chế bởi dung lượng bộ lưu trữ hiện có cho chúng. Khi đã cài đặt một vài hệ điều hành, bạn có thể mở chương trình máy ảo và chọn máy ảo muốn khởi động, khởi động hệ điều hành khách và chạy trong một cửa sổ của hệ điều hành chủ hoặc cũng có thể chạy ở chế độ toàn màn hình (full-screen mode).
-
Công nghệ máy ảo phục vụ cho nhiều mục đích phong phú. Công nghệ này cho phép hợp nhất phần cứng bởi vì nhiều hệ điều hành có thể cùng chạy trên một máy tính. Những ứng dụng then chốt của công nghệ máy ảo bao gồm khả năng tích hợp chéo giữa các nền tảng và các khả năng dưới đây:
Hợp nhất máy chủ. Nếu nhiều máy chủ vận hành ứng dụng mà chỉ tiêu thụ một phần nhỏ tài nguyên sẵn có, thì công nghệ máy ảo có thể được sử dụng để cho phép nhiều ứng dụng chạy song song trên một máy chủ duy nhất, ngay cả khi các ứng dụng này cần tới những phiên bản hệ điều hành hay middleware khác nhau.
Kiểm thử các phiên bản hệ điều hành: Bạn có thể chạy phiên bản thử nghiệm Windows 8 bằng máy ảo trên máy chạy Windows 7. Điều này cho phép bạn thử nghiệm Windows 8 mà không phải cài đặt một phiên bản Windows bất ổn định trên máy mình.
Thử nghiệm các hệ điều hành khác: Bạn có thể cài nhiều bản phân phối Linux khác nhau và các hệ điều hành ít biết đến hơn bằng một máy ảo để thử nghiệm chúng và tìm hiểu cách chúng hoạt động. Nếu bạn hứng thú với Ubuntu, bạn có thể cài đặt nó vào máy ảo và sử dụng tại một cửa sổ trên màn hình desktop bình thường.
Sử dụng phần mềm đòi hỏi một hệ điều hành cũ: Nếu bạn có một ứng dụng quan trọng mà chỉ chạy trên Windows XP, bạn có thể cài đặt XP trên máy ảo và chạy ứng dụng trên máy ảo. Máy ảo đang thực sự chạy Windows XP, vì vậy tính tương thích không phải vấn đề. Điều này cho phép người dùng sử dụng một ứng dụng mà chỉ tương thích với Windows XP mà không phải cài Windows XP trên máy thật, đặc biệt quan trọng khi xét đến nhiều laptop mới và phần cứng khác không hỗ trợ đầy đủ cho Windows XP.
Chạy phần mềm được thiết kế cho những hệ điều hành khác: Những người dùng Mac và Linux có thể chạy Windows trên một máy ảo để sử dụng những phần mềm cho Windows trên máy tính mà không phải đau đầu về tính tương thích. Không may là, với trò chơi thì đây có thể là một vấn đề. Các chương trình máy ảo có độ trễ và không một ứng dụng máy ảo nào cho phép chạy các bản game 3D mới nhất. Một số hiệu ứng 3D được hỗ trợ nhưng đồ họa 3D là điều ít được hỗ trợ nhất trên máy ảo.
Kiểm thử phần mềm trên nhiều nền tảng: Nếu bạn cần kiểm thử một ứng dụng có tương thích với nhiều hệ điều hành hoặc chỉ các bản Windows khác nhau hay không, bạn có thể cài mỗi hệ điều hành lên một máy ảo thay vì cần nhiều máy thực xung quanh.
Tăng cường cho server: Đối với các doanh nghiệp sử dụng nhiều server, thì các server có thể được đặt vào những máy ảo và chạy trên một máy tính đơn lẻ. Mỗi máy ảo là một thư mục cách ly, vì vậy điều này không gây những nguy cơ về bảo mật liên quan tới việc chạy nhiều server khác nhau trên cùng hệ điều hành. Các máy ảo cũng có thể được di dời giữa những server thật.
**Nguyên lí:**
Công nghệ máy ảo áp dụng cho cả phần cứng máy chủ và máy trạm. Công nghệ máy ảo cho phép nhiều hệ điều hành chạy đồng thời trên một máy tính duy nhất.
Một máy ảo là một chương trình đóng vai trò như một máy vi tính ảo. Nó chạy trên hệ điều hành hiện tại - hệ điều hành chủ và cung cấp phần cứng ảo tới hệ điều hành khách. Các hệ điều hành khách chạy trên các cửa sổ của hệ điều hành chủ, giống như bất kỳ chương trình nào khác của máy. Đối với những hệ điều hành khách, máy ảo lại hiện diện như một cỗ máy vật lý thực sự.
Các máy ảo cung cấp phần cứng ảo, bao gồm CPU ảo, RAM ảo, ổ đĩa cứng, giao diện mạng và những thiết bị khác. Các thiết bị phần cứng ảo được cung cấp bởi máy ảo và được ánh xạ tới phần cứng thực trên máy thật. Ví dụ như, ổ đĩa cứng ảo lại được lưu trong một file đặt trên ổ đĩa cứng thực.
Bạn có thể cài đặt nhiều máy ảo lên máy thực và chỉ bị hạn chế bởi dung lượng bộ lưu trữ hiện có cho chúng. Khi đã cài đặt một vài hệ điều hành, bạn có thể mở chương trình máy ảo và chọn máy ảo muốn khởi động, khởi động hệ điều hành khách và chạy trong một cửa sổ của hệ điều hành chủ hoặc cũng có thể chạy ở chế độ toàn màn hình (full-screen mode).
-
**Ứng dụng:**
Công nghệ máy ảo phục vụ cho nhiều mục đích phong phú. Công nghệ này cho phép hợp nhất phần cứng bởi vì nhiều hệ điều hành có thể cùng chạy trên một máy tính. Những ứng dụng then chốt của công nghệ máy ảo bao gồm khả năng tích hợp chéo giữa các nền tảng và các khả năng dưới đây:
Hợp nhất máy chủ. Nếu nhiều máy chủ vận hành ứng dụng mà chỉ tiêu thụ một phần nhỏ tài nguyên sẵn có, thì công nghệ máy ảo có thể được sử dụng để cho phép nhiều ứng dụng chạy song song trên một máy chủ duy nhất, ngay cả khi các ứng dụng này cần tới những phiên bản hệ điều hành hay middleware khác nhau.
Kiểm thử các phiên bản hệ điều hành: Bạn có thể chạy phiên bản thử nghiệm Windows 8 bằng máy ảo trên máy chạy Windows 7. Điều này cho phép bạn thử nghiệm Windows 8 mà không phải cài đặt một phiên bản Windows bất ổn định trên máy mình.
Thử nghiệm các hệ điều hành khác: Bạn có thể cài nhiều bản phân phối Linux khác nhau và các hệ điều hành ít biết đến hơn bằng một máy ảo để thử nghiệm chúng và tìm hiểu cách chúng hoạt động. Nếu bạn hứng thú với Ubuntu, bạn có thể cài đặt nó vào máy ảo và sử dụng tại một cửa sổ trên màn hình desktop bình thường.
Sử dụng phần mềm đòi hỏi một hệ điều hành cũ: Nếu bạn có một ứng dụng quan trọng mà chỉ chạy trên Windows XP, bạn có thể cài đặt XP trên máy ảo và chạy ứng dụng trên máy ảo. Máy ảo đang thực sự chạy Windows XP, vì vậy tính tương thích không phải vấn đề. Điều này cho phép người dùng sử dụng một ứng dụng mà chỉ tương thích với Windows XP mà không phải cài Windows XP trên máy thật, đặc biệt quan trọng khi xét đến nhiều laptop mới và phần cứng khác không hỗ trợ đầy đủ cho Windows XP.
Chạy phần mềm được thiết kế cho những hệ điều hành khác: Những người dùng Mac và Linux có thể chạy Windows trên một máy ảo để sử dụng những phần mềm cho Windows trên máy tính mà không phải đau đầu về tính tương thích. Không may là, với trò chơi thì đây có thể là một vấn đề. Các chương trình máy ảo có độ trễ và không một ứng dụng máy ảo nào cho phép chạy các bản game 3D mới nhất. Một số hiệu ứng 3D được hỗ trợ nhưng đồ họa 3D là điều ít được hỗ trợ nhất trên máy ảo.
Kiểm thử phần mềm trên nhiều nền tảng: Nếu bạn cần kiểm thử một ứng dụng có tương thích với nhiều hệ điều hành hoặc chỉ các bản Windows khác nhau hay không, bạn có thể cài mỗi hệ điều hành lên một máy ảo thay vì cần nhiều máy thực xung quanh.
Tăng cường cho server: Đối với các doanh nghiệp sử dụng nhiều server, thì các server có thể được đặt vào những máy ảo và chạy trên một máy tính đơn lẻ. Mỗi máy ảo là một thư mục cách ly, vì vậy điều này không gây những nguy cơ về bảo mật liên quan tới việc chạy nhiều server khác nhau trên cùng hệ điều hành. Các máy ảo cũng có thể được di dời giữa những server thật.
[VoThiHuynhVan(TH09A2)](/u1965)
- Tổng số bài gửi : 12
Join date : 13/03/2014
[Ưu điểm và nhược điểm của máy ảo](/t5647-topic#28059)
[quote="Admin"]Thảo luận những vấn đề liên quan đến Bài 3.[/
Kỹ thuật máy ảo
- Máy ảo là sự phát triển lô-gic của kiến trúc phân lớp.
- Bằng cách Điều phối CPU và kỹ thuật Bộ nhớ ảo, có thể tạo cho người dùng ảo giác rằng người đó đang dùng bộ xử lý và bộ nhớ của riêng mình.
- Nói cách khác: Máy tính ảo của người dùng được giả lập trên nền máy tính vật lý.
- Ví dụ: Trên nền CPU loại PowerPC, Motorola, Alpha,… có thể giả lập máy tính ảo Intel chạy HĐH Windows và ngược lại. Khi đó, các lệnh của Intel được chuyển đổi sang lệnh vật lý trước khi thực hiện.
- HĐH máy ảo thương mại đầu tiên: VM/370 của IBM.
* Ưu điểm:
- Tính bảo mật cao do các máy ảo độc lập với nhau. Các tài nguyên của máy vật lý được bảo vệ hoàn toàn vì các máy ảo có Thiết bị ảo (Một ổ đĩa ảo, thậm chí toàn bộ máy ảo thực tế chỉ là một tập tin của máy vật lý). Có thể lấy từ Internet về một chương trình lạ và thử vận hành trên máy ảo mà không sợ bị ảnh hưởng (ví dụ do virus) vì nếu có sao cũng chỉ hỏng máy ảo.
- Dễ phát triển hệ thống (System Development) mà không sợ làm ảnh hưởng đến công việc toàn hệ máy đang vận hành. HĐH là chương trình phức tạp, cần liên tục thử nghiệm, tinh chỉnh, hoàn thiện và nâng cấp. Có thể tiến hành Phát triển hệ thống trên một máy ảo thay vì làm trên máy thực.
* Nhược điểm:
- Vấn đề lưu trữ vật lý. Thông thường, mỗi máy ảo chỉ dùng một tập tin để lưu tất cả những gì diễn ra trong máy ảo. Do đó nếu bị mất tập tin này xem như mất tất cả.
- Nếu máy tính có cấu hình phần cứng thấp nhưng cài quá nhiều chương trình máy ảo, máy sẽ chậm và ảnh hưởng đến các chương trình khác.
- Do tập trung vào một máy tính, nếu máy bị hư thì toàn bộ các máy tính ảo đã thiết lập trên nó cũng bị ảnh hưởng theo.
- Ở góc dộ bảo mật, nếu hacker nắm quyền điều khiển máy tính chứa các máy ảo thì hacker có thể kiểm soát được tất cả các máy ảo trong nó.
* Phân biệt Vmware và VirtualPC
Giống nhau:
- Giúp giả lập máy tính ảo trên một máy tính thật. Khi cài đặt chúng lên, ta có thể tạo nên các máy ảo chia sẻ CPU, RAM, Card mạng với máy tính thật. Điều này cho phép xây dựng nên một hệ thống với một vài máy tính được nối với nhau theo một mô hình nhất định, người sử dụng có thể tạo nên hệ thống của riêng mình, cấu hình theo yêu cầu của bài học.
Khác nhau:
- Về mạng nội bộ, VMW cung cấp tới 4 phương thức kết nối: ‘Bridged Connection’, ‘Network Address Translation’, ‘Host Only’ và ‘Custom’. ‘Bridged Connection’ cho phép máy ảo trực tiếp kết nối với mạng LAN hoặc Internet. ‘Network Address Translation’ cho phép máy ảo kết nối mạng bằng cách dùng chung địa chỉ IP của máy chủ. ‘Host Only’ tạo một mạng riêng mà trong đó máy chủ được coi như một máy tính tách rời. Với ‘Custom’, bạn có thể tạo một mạng ảo theo những yêu cầu cụ thể. Chúng tôi sử dụng phương thức ‘Network Address Translation’ và nhận thấy việc kết nối mạng không gặp bất kỳ khó khăn gì trong cả 2 môi trường Windows và Linux.
- VPC đòi hỏi 2 cửa sổ chương trình: một cho việc quản lí các máy ảo, một cho từng máy ảo. Ngược lại, VMW lại gộp cả 2 cửa sổ trên vào làm một. Tuy nhiên, VPC cung cấp menu của cửa sổ chương trình đơn giản hơn của VMW. Cả 2 phần mềm đều cho phép thực hiện tất cả các thao tác cấu hình chi tiết thông qua menu chính, song bạn cũng có thể trực tiếp thực hiện một số thiết đặt thông qua các biểu tượng ở thanh trạng thái phía dưới.
quote]
Kỹ thuật máy ảo
- Máy ảo là sự phát triển lô-gic của kiến trúc phân lớp.
- Bằng cách Điều phối CPU và kỹ thuật Bộ nhớ ảo, có thể tạo cho người dùng ảo giác rằng người đó đang dùng bộ xử lý và bộ nhớ của riêng mình.
- Nói cách khác: Máy tính ảo của người dùng được giả lập trên nền máy tính vật lý.
- Ví dụ: Trên nền CPU loại PowerPC, Motorola, Alpha,… có thể giả lập máy tính ảo Intel chạy HĐH Windows và ngược lại. Khi đó, các lệnh của Intel được chuyển đổi sang lệnh vật lý trước khi thực hiện.
- HĐH máy ảo thương mại đầu tiên: VM/370 của IBM.
* Ưu điểm:
- Tính bảo mật cao do các máy ảo độc lập với nhau. Các tài nguyên của máy vật lý được bảo vệ hoàn toàn vì các máy ảo có Thiết bị ảo (Một ổ đĩa ảo, thậm chí toàn bộ máy ảo thực tế chỉ là một tập tin của máy vật lý). Có thể lấy từ Internet về một chương trình lạ và thử vận hành trên máy ảo mà không sợ bị ảnh hưởng (ví dụ do virus) vì nếu có sao cũng chỉ hỏng máy ảo.
- Dễ phát triển hệ thống (System Development) mà không sợ làm ảnh hưởng đến công việc toàn hệ máy đang vận hành. HĐH là chương trình phức tạp, cần liên tục thử nghiệm, tinh chỉnh, hoàn thiện và nâng cấp. Có thể tiến hành Phát triển hệ thống trên một máy ảo thay vì làm trên máy thực.
* Nhược điểm:
- Vấn đề lưu trữ vật lý. Thông thường, mỗi máy ảo chỉ dùng một tập tin để lưu tất cả những gì diễn ra trong máy ảo. Do đó nếu bị mất tập tin này xem như mất tất cả.
- Nếu máy tính có cấu hình phần cứng thấp nhưng cài quá nhiều chương trình máy ảo, máy sẽ chậm và ảnh hưởng đến các chương trình khác.
- Do tập trung vào một máy tính, nếu máy bị hư thì toàn bộ các máy tính ảo đã thiết lập trên nó cũng bị ảnh hưởng theo.
- Ở góc dộ bảo mật, nếu hacker nắm quyền điều khiển máy tính chứa các máy ảo thì hacker có thể kiểm soát được tất cả các máy ảo trong nó.
* Phân biệt Vmware và VirtualPC
Giống nhau:
- Giúp giả lập máy tính ảo trên một máy tính thật. Khi cài đặt chúng lên, ta có thể tạo nên các máy ảo chia sẻ CPU, RAM, Card mạng với máy tính thật. Điều này cho phép xây dựng nên một hệ thống với một vài máy tính được nối với nhau theo một mô hình nhất định, người sử dụng có thể tạo nên hệ thống của riêng mình, cấu hình theo yêu cầu của bài học.
Khác nhau:
- Về mạng nội bộ, VMW cung cấp tới 4 phương thức kết nối: ‘Bridged Connection’, ‘Network Address Translation’, ‘Host Only’ và ‘Custom’. ‘Bridged Connection’ cho phép máy ảo trực tiếp kết nối với mạng LAN hoặc Internet. ‘Network Address Translation’ cho phép máy ảo kết nối mạng bằng cách dùng chung địa chỉ IP của máy chủ. ‘Host Only’ tạo một mạng riêng mà trong đó máy chủ được coi như một máy tính tách rời. Với ‘Custom’, bạn có thể tạo một mạng ảo theo những yêu cầu cụ thể. Chúng tôi sử dụng phương thức ‘Network Address Translation’ và nhận thấy việc kết nối mạng không gặp bất kỳ khó khăn gì trong cả 2 môi trường Windows và Linux.
- VPC đòi hỏi 2 cửa sổ chương trình: một cho việc quản lí các máy ảo, một cho từng máy ảo. Ngược lại, VMW lại gộp cả 2 cửa sổ trên vào làm một. Tuy nhiên, VPC cung cấp menu của cửa sổ chương trình đơn giản hơn của VMW. Cả 2 phần mềm đều cho phép thực hiện tất cả các thao tác cấu hình chi tiết thông qua menu chính, song bạn cũng có thể trực tiếp thực hiện một số thiết đặt thông qua các biểu tượng ở thanh trạng thái phía dưới.
quote]
[sự khác nhau giữa biên dịch và thông dịch](/t5647-topic#28060)
Interpreter : Nó dịch từng lệnh rồi chạy từng lệnh, lần sau muốn chạy lại thì phải interpreter lại.
Compiler giống như một dịch thuật gia, giã sử ông ta dịch một cuốn sách từ English sang Vietnam, sau này một người không biết English vẫn có thể hiểu nội dung quyển sách bằng cách đọc quyển tiếng Việt do ông ta dịch.
Interpreter giống như là thông dịch viên, có một cuộc hôi thảo người báo cáo là người Anh, trong khi hầu hết người dự báo cáo là người việt không biết tiếng Anh thì sẽ cần đến một anh thông dịch viên, lần sau cũng có cuộc hội thảo tương tự như vậy, cùng chủ đề đó nhưng cũng cần đến anh thông dịch viên.
Thông dịch là thao tác làm cho trương trình tự tìm ra lỗi của bài toán lập trình==>sửa chữa những chỗ sai làm cho trương trình chạy được,chỉ khi nào thông dich hoàn tất không có lỗi thì mới đến quá trình biên dịch,thông thường các trương trình mà chúng ta thường dùng để lập trình là những ngôn ngữ lập trình bậc cao,bien dịch là viết lại trương trình dưới ngôn ngữ máy làm cho máy tính có thể hiểu được trương trình và thực hiện trương trình đó
[khái niệm máy ảo](/t5647-topic#28061)
Bách khoa toàn thư mở Wikipedia
Bước tới: menu, tìm kiếm
VirtualBox
Một máy ảo trong khoa học máy tính là phần mềm tạo ra một môi trường giữa hệ nền máy tính và người dùng cuối trong đó người dùng cuối có thể thực thi phần mềm.
Có một vài định nghĩa về máy ảo. Các máy ảo có thể là các phần cứng nằm trong cùng một máy tính chạy các hệ điều hành khác nhau. Chúng cũng có thể là các phần mềm để thực hiện riêng biệt các ứng dụng, như máy ảo Java. Ngoài ra máy ảo cũng có thể nói đến môi trường ảo và các nghĩa ít dùng khác, ví dụ các phần mềm máy ảo như : VitualBox hay VMware Workstation
Bước tới: menu, tìm kiếm
VirtualBox
Một máy ảo trong khoa học máy tính là phần mềm tạo ra một môi trường giữa hệ nền máy tính và người dùng cuối trong đó người dùng cuối có thể thực thi phần mềm.
Có một vài định nghĩa về máy ảo. Các máy ảo có thể là các phần cứng nằm trong cùng một máy tính chạy các hệ điều hành khác nhau. Chúng cũng có thể là các phần mềm để thực hiện riêng biệt các ứng dụng, như máy ảo Java. Ngoài ra máy ảo cũng có thể nói đến môi trường ảo và các nghĩa ít dùng khác, ví dụ các phần mềm máy ảo như : VitualBox hay VMware Workstation
[Re: Thảo luận Bài 3](/t5647-topic#28064)
Mình bổ sung Vì dụ:NguyenThiThuThao(TH09A2) đã viết:HAI MÔ HÌNH LIÊN LẠC GIỮA CÁC TIẾN TRÌNH:
-
Dùng bộ nhớ chung(Shared-Memory): Cách tiếp cận của cơ chế này là cho nhiều tiến trình cùng truy xuất đến một vùng nhớ chung gọi là vùng nhớ chia sẻ(shared memory).Không có bất kỳ hành vi truyền dữ liệu nào cần phải thực hiện ở đây, dữ liệu chỉ đơn giản được đặt vào một vùng nhớ mà nhiều tiến trình có thể cùng truy cập được.
Với phương thức này, các tiến trình chia sẻ một vùng nhớ vật lý thông qua không gian địa chỉ của chúng. Một vùng nhớ chia sẻ tồn tại độc lập với các tiến trình, và khi một tiến trình muốn truy xuất đến vùng nhớ này, tiến trình phải kết gắn vùng nhớ chung đó vào không gian địa chỉ riêng của từng tiến trình, và thao tác trên đó như một vùng nhớ riêng của mình.
Đây là phương pháp nhanh nhất để trao đổi dữ liệu giữa các tiến trình. Nhưng phương thức này cũng làm phát sinh các khó khăn trong việc bảo đảm sự toàn vẹn dữ liệu (coherence) , ví dụ : làm sao biết được dữ liệu mà một tiến trình truy xuất là dữ liệu mới nhất mà tiến trình khác đã ghi ? Làm thế nào ngăn cản hai tiến trình cùng đồng thời ghi dữ liệu vào vùng nhớ chung ?...Rõ ràng vùng nhớ chia sẻ cần được bảo vệ bằng những cơ chế đồng bộ hóa thích hợp. Một khuyết điểm của phương pháp liên lạc này là không thể áp dụng hiệu quả trong các hệ phân tán, để trao đổi thông tin giữa các máy tính khác nhau.
-
Truyền thông điệp(Message-Passing): Hệ điều hành còn cung cấp một cơ chế liên lạc giữa các tiến trình không thông qua việc chia sẻ một tài nguyên chung , mà thông qua việc gởi thông điệp(Message). Để hỗ trợ cơ chế liên lạc bằng thông điệp, hệ điều hành cung cấp các hàm IPC chuẩn (Interprocess communication), cơ bản là hai hàm:
- Send(message) : gởi một thông điệp
- Receive(message) : nhận một thông điệp
Nếu hai tiến trình P và Q muốn liên lạc với nhau, cần phải thiết lập một mối liên kết giữa hai tiến trình, sau đó P, Q sử dụng các hàm IPC thích hợp để trao đổi thông điệp, cuối cùng khi sự liên lạc chấm dứt mối liên kết giữa hai tiến trình sẽ bị hủy. Có nhiều cách thức để thực hiện sự liên kết giữa hai tiến trình và cài đặt các theo tác send /receive tương ứng : liên lạc trực tiếp hay gián tiếp, liên lạc đồng bộ hoặc không đồng bộ , kích thước thông điệp là cố định hay không... Nếu các tiến trình liên lạc theo kiểu liên kết tường minh, các hàm Send và Receive sẽ được cài đặt với tham số:
- Send(destination, message) : gởi một thông điệp đến destination
- Receive(source,message) : nhận một thông điệp từ source
Đơn vị truyền thông tin trong cơ chế trao đổi thông điệp là một thông điệp, do đó các tiến trình có thể trao đổi dữ liệu ở dạng có cấu trúc.
+ VD về Truyền thông điệp (Message-Passing): Trong lớp học bạn A muốn truyền tin nhắn cho bạn B thì có thể truyền tin nhắn cho Thầy (giống như hệ điều hành) sau đó thầy sẽ giữ bí mật và chỉ nhắn lại cho bạn B.
+ VD về Dùng bộ nhớ chung (Shared-Memory): Cũng trong lớp học bạn A muốn truyền tin nhắn cho bạn B thì bạn A có thể ghi tin nhắn lên bảng để truyền tin nhắn lại cho bạn B. Vì bảng là vật dùng chung của cả lớp nên trước khi thông tin đó đến với bạn B thì rất có thể sẽ bị sai lệt thông tin (vì các bạn khác trong lớp có thể sửa, thêm, hay xóa được).
_ Vì thế nên mô hình Dùng bộ nhớ chung có nhược điểm là vi phạm tính toàn vẹn dữ liệu lẫn tính đồng bọ của dữ liệu, không đảm bảo được tính đồng bộ cần thiết.
[NguyenQuocCuong(HLT3)](/u1969)
- Tổng số bài gửi : 15
Join date : 15/03/2014
[ĐỊNH NGHĨA TIẾN TRÌNH , SO SÁNH TIẾN TRÌNH VỚI CHƯƠNG TRÌNH](/t5647-topic#28065) **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 hệ điều hành) .
So sánh tiến trình với chương trình:
Bản than tiến trình không là chương trình vì là thực thể thụ động , trong khi tiến trình là thực thể hoạt động với nhiều thôn g tin về trạng thái trong đó có bộ đếm chương trình cho biết vị trí lệnh hiện hành .
- Nhiều tiến trình có thể liên quan đến một chương trình và là các thực thể khác nhau khi vận hành .
- Mỗi tiến trình có thể sinh ra nhiều tiến trình con khác khi vận hành.
- Tiến trình cần các tài nguyên ( CPU , Memory,tâp tin, thiết bị I/O) để hoàn thành công việc .
- Tài nguyên cấp cho tiến trinh ngay từ đầu (khi tiến trình được tạo lập) hoặc trong thời gian vận hành và được thu hồi hết khi tiến trình kết thúc .
- Tiến trình là thực thể hoạt động , chương trình là thực thể thụ động , tiến trình có thông – Điểm khác nhau giữa tiến trình và chương trình : tiến trình có thông tin trạng thái để phản ánh tiến trình đang ở trạng thái nào
[NguyenQuocCuong(HLT3)](/u1969)
- Tổng số bài gửi : 15
Join date : 15/03/2014
[GIỚI THIỆU MÁY TÍNH ẢO VÀ VMWARE](/t5647-topic#28075) **Máy ảo**là sự phát triển lô-gic của kiến trúc phân lớp.
Bằng cách điều phối CPU và kỹ thuật bộ nhớ ảo, có thể tạo cho người dùng cảm giác rằng người đó đang dùng bộ xử lý và bộ nhớ của riêng mình.
Nói cách khác: Máy tính ảo của người dùng được giả lập trên nền máy tính vật lý.
Ví dụ:Trên nền CPU loại PowerPC, Motorola, Alpha,... có thể giả lập máy tính ảo Intel chạy HĐH Windows và ngược lại. Khi đó, các lệnh của Intel được chuyển đổi sang lệnh vật lý trước khi thực hiện.
HĐH máy ảo thương mại đầu tiên là: VM/370 của hãng IBM.
![ ](http://i60.tinypic.com/kcfegy.jpg)
**Giới thiệu về VMware:** **1. Các tiện ích của VMware:**
VMware giúp giả lập máy tính ảo trên một máy tính thật. Khi cài đặt VMware lên, ta có thể tạo nên các máy ảo chia sẻ CPU, RAM, Card mạng với máy tính thật. Điều này cho phép xây dựng nên một hệ thống với một vài máy tính được nối với nhau theo một mô hình nhất định, người sử dụng có thể tạo nên hệ thống của riêng mình, cấu hình theo yêu cầu của bài học.
**2. Cách tạo nên các máy ảo từ VMware:**
Để sử dụng VMware đầu tiên chúng ta cần tạo nên một máy ảo, nơi mà chúng ta sẽ dùng để cài đặt nên các hệ điều hành. Chúng ta có thể tuỳ chọn dung lượng ổ cứng, dung lượng RAM, cách kết nối mạng của máy ảo… Việc tiếp theo cần làm là cài đặt nên một hệ điều hành trên máy ảo đó. Hiện tại, VMware hỗ trợ cài đặt rất nhiều dạng hệ điều hành. Chúng ta có thể cài các phiên bản của Windows, Linux, Unix… trên các máy ảo VMware. Việc cài đặt hệ điều hành trên máy ảo hoàn toàn tương tự như cách cài đặt trên các máy thật.
**3. Chia sẻ tài nguyên của các máy ảo:**
Chia sẻ CPU và RAM: Các máy ảo sẽ chia sẻ CPU và RAM của máy tính thật. Để đảm bảo hệ thống có thể chạy tốt, yêu cầu máy tính thật phải có cấu hình tương đối cao, khoảng 1GB RAM để có thể chạy đồng thời
[NguyenThiThuThao(TH09A2)](/u1956)
- Tổng số bài gửi : 21
Join date : 09/03/2014
[QUẢN LÝ QUÁ TRÌNH](/t5647-topic#28076)
Một chương trình không làm gì trừ khi các chỉ thị của nó được thực thi bởi một CPU. Một quá trình có thể được xem như một chương đang thực thi, nhưng định nghĩa của nó sẽ mở rộng khi chúng ta khám phá chi tiết hơn. Một chương trình người dùng được chia thời chẳng hạn như một trình biên dịch là một quá trình. Một chương trình xử lý văn bản đang được thực thi bởi một người dùng trên một PC cũng là một quá trình. Một tác vụ hệ thống, như gởi dữ liệu xuất ra máy in cũng được xem là một quá trình.
Một quá trình cần các tài nguyên xác định gồm : Thời gian CPU, bộ nhớ , tập tin, các thiết bị xuất/nhập để hoàn thành tác vụ của nó. Các tài nguyên này được cấp cho quá trình khi nó được tạo ra, hay được cấp phát tới nó khi nó đang chạy. Ngoài ra, các tài nguyên vật lý và luận lý khác nhau mà quá trình nhận được khi nó được tạo, dữ liệu khởi tạo khác nhau (hay nhập) có thể được truyền qua. Thí dụ, xem xét một quá trình có chức năng hiển thị trạng thái của một tập tin trên màn hình của một thiết bị đầu cuối. Quá trình này sẽ được cho dữ liệu vào là tên của tập tin, và sẽ thực thi các chỉ thị thích hợp và các lời gọi hệ thống đạt đượ c và xuất trên thiết bị cuối thông tin mong muốn. Khi quá trình này kết thúc, hệ điều hành sẽ đòi lại bất cứ tài nguyên nào có thể dùng lại.
Chúng ta nhấn mạnh một chương trình chính nó không phải là một quá trình; một chương trình là một thực thể thụ động, như là nội dung của tập tin được lưu trên đĩa, trái lại một quá trình là một thực thể hoạt động, với một bộ đếm chương trình xác định chỉ thị kế tiếp để thực thi. Việc thực thi của quá trình phải là tuần tự. CPU thực thi một chỉ thị của quá trình sau khi đã thực thi một chỉ thực trước đó cho đến khi quá trình hoàn thành. Ngoài ra, tại bất kỳ thời điểm nào, tối đa một chỉ thị được thực thi cho quá trình. Do đó, mặc dù hai quá trình có thể được liên kết với cùng một quá trình, vì thế chúng được xem như hai chuỗi thực thi riêng. Thông thường có một chương trình sinh ra nhiều quá trình khi nó thực thi.
Một quá trình là một đơn vị công việc trong hệ thống. Một hệ thống chứa tập các quá trình, một vài quá trình này là các quá trình hệ điều hành (thực thi mã hệ thống) và các quá trình còn lại là các quá trình người dùng (chúng thực thi mã người dùng). Tất cả các quá trình này có tiềm năng thực thi đồng hành bằng cách đa hợp CPU giữa các quá trình. Hệ điều hành có nhiệm vụ cho các hoạt động sau khi đề cập đến chức năng quản lý quá trình:
o Tạo và xoá các quá trình người dùng và hệ thống
o Tạm dừng và thực thi tiếp quá trình
o Cung cấp các cơ chế đồng bộ hoá quá trình
o Cung cấp các cơ chế giao tiếp quá trình
o Cung cấp cơ chế quản lý deadlock
Một quá trình cần các tài nguyên xác định gồm : Thời gian CPU, bộ nhớ , tập tin, các thiết bị xuất/nhập để hoàn thành tác vụ của nó. Các tài nguyên này được cấp cho quá trình khi nó được tạo ra, hay được cấp phát tới nó khi nó đang chạy. Ngoài ra, các tài nguyên vật lý và luận lý khác nhau mà quá trình nhận được khi nó được tạo, dữ liệu khởi tạo khác nhau (hay nhập) có thể được truyền qua. Thí dụ, xem xét một quá trình có chức năng hiển thị trạng thái của một tập tin trên màn hình của một thiết bị đầu cuối. Quá trình này sẽ được cho dữ liệu vào là tên của tập tin, và sẽ thực thi các chỉ thị thích hợp và các lời gọi hệ thống đạt đượ c và xuất trên thiết bị cuối thông tin mong muốn. Khi quá trình này kết thúc, hệ điều hành sẽ đòi lại bất cứ tài nguyên nào có thể dùng lại.
Chúng ta nhấn mạnh một chương trình chính nó không phải là một quá trình; một chương trình là một thực thể thụ động, như là nội dung của tập tin được lưu trên đĩa, trái lại một quá trình là một thực thể hoạt động, với một bộ đếm chương trình xác định chỉ thị kế tiếp để thực thi. Việc thực thi của quá trình phải là tuần tự. CPU thực thi một chỉ thị của quá trình sau khi đã thực thi một chỉ thực trước đó cho đến khi quá trình hoàn thành. Ngoài ra, tại bất kỳ thời điểm nào, tối đa một chỉ thị được thực thi cho quá trình. Do đó, mặc dù hai quá trình có thể được liên kết với cùng một quá trình, vì thế chúng được xem như hai chuỗi thực thi riêng. Thông thường có một chương trình sinh ra nhiều quá trình khi nó thực thi.
Một quá trình là một đơn vị công việc trong hệ thống. Một hệ thống chứa tập các quá trình, một vài quá trình này là các quá trình hệ điều hành (thực thi mã hệ thống) và các quá trình còn lại là các quá trình người dùng (chúng thực thi mã người dùng). Tất cả các quá trình này có tiềm năng thực thi đồng hành bằng cách đa hợp CPU giữa các quá trình. Hệ điều hành có nhiệm vụ cho các hoạt động sau khi đề cập đến chức năng quản lý quá trình:
o Tạo và xoá các quá trình người dùng và hệ thống
o Tạm dừng và thực thi tiếp quá trình
o Cung cấp các cơ chế đồng bộ hoá quá trình
o Cung cấp các cơ chế giao tiếp quá trình
o Cung cấp cơ chế quản lý deadlock
[DaoThanhDuong (HLT3)](/u1964)
- Tổng số bài gửi : 8
Join date : 11/03/2014
[RE:Thảo Luận Bài 3](/t5647-topic#28110)
Liên lạc giữa các tiến trình (Interprocess Communication):
- Mỗi máy tính trong mạng có Host Name và (hoặc) IP Address. Các tên này được HĐH chuyển đổi thành một số nguyên gọi là HostID.
- Mỗi tiến trình có ProcessName và ProcessID.
- Cặp số (HostID, ProcessID) xác định duy nhất tiến trình trong mạng và được dùng để Mở/Đóng kết nối với tiến trình đó.
- Có các lời gọi hệ thống kiểu Open, Close, Read, Write, Wait để thao tác với tiến trình.
Truyền thông điệp:
- Cho phép các tiến trình gởi các khuôn dữ kiệu có khuôn dạng tới bất kì tiến trình nào
- Chức năng của hệ thống truyền thông điệp là cho phép các quá trình giao tiếp với các quá trình khác mà không cần sắp xếp lại dữ liệu chia sẻ.
- Đơn vị truyền thông tin trong cơ chế truyền thông điệp là một thông điệp, do đó các tiến trình có thể trao đổi dữ liệu ở dạng cấu cấu trúc.
Dùng bộ nhớ chung:
- Với phương thức này, các tiến trình chia sẻ một vùng nhớ vật lý thông qua trung gian không gian địa chỉ của chung. Một vùng nhớ chia sẻ tồn tại độc lập với các tiến trình, và khi một tiến trình muốn truy xuất đến vùng nhớ này, tiến trình phải kết gắn vùng nhớ chung đó vào không gian địa chỉ riêng của từng tiến trình, và thao tác trên đó như một vùng nhớ riêng của mình.
- Đây là phương pháp nhanh nhất để trao đổi dữ liệu giữa các tiến trình. Nhưng phương thức này cũng làm phát sinh các khó khăn trong việc bảo đảm sự toàn vẹn dữ liệu (coherence)
- Một khuyết điểm của phương pháp liên lạc này là không thể áp dụng hiệu quả trong các hệ phân tán , để trao đổi thông tin giữa các máy tính khác nhau.
- Mỗi máy tính trong mạng có Host Name và (hoặc) IP Address. Các tên này được HĐH chuyển đổi thành một số nguyên gọi là HostID.
- Mỗi tiến trình có ProcessName và ProcessID.
- Cặp số (HostID, ProcessID) xác định duy nhất tiến trình trong mạng và được dùng để Mở/Đóng kết nối với tiến trình đó.
- Có các lời gọi hệ thống kiểu Open, Close, Read, Write, Wait để thao tác với tiến trình.
Truyền thông điệp:
- Cho phép các tiến trình gởi các khuôn dữ kiệu có khuôn dạng tới bất kì tiến trình nào
- Chức năng của hệ thống truyền thông điệp là cho phép các quá trình giao tiếp với các quá trình khác mà không cần sắp xếp lại dữ liệu chia sẻ.
- Đơn vị truyền thông tin trong cơ chế truyền thông điệp là một thông điệp, do đó các tiến trình có thể trao đổi dữ liệu ở dạng cấu cấu trúc.
Dùng bộ nhớ chung:
- Với phương thức này, các tiến trình chia sẻ một vùng nhớ vật lý thông qua trung gian không gian địa chỉ của chung. Một vùng nhớ chia sẻ tồn tại độc lập với các tiến trình, và khi một tiến trình muốn truy xuất đến vùng nhớ này, tiến trình phải kết gắn vùng nhớ chung đó vào không gian địa chỉ riêng của từng tiến trình, và thao tác trên đó như một vùng nhớ riêng của mình.
- Đây là phương pháp nhanh nhất để trao đổi dữ liệu giữa các tiến trình. Nhưng phương thức này cũng làm phát sinh các khó khăn trong việc bảo đảm sự toàn vẹn dữ liệu (coherence)
- Một khuyết điểm của phương pháp liên lạc này là không thể áp dụng hiệu quả trong các hệ phân tán , để trao đổi thông tin giữa các máy tính khác nhau.
[LamQuocVu(HLT3)](/u1987)
- Tổng số bài gửi : 31
Join date : 17/03/2014
[Re: Thảo luận Bài 3](/t5647-topic#28148) ![ ](http://quangtuyen88.files.wordpress.com/2011/06/unledcrl.png)
Truyền thông điệp:
- Cho phép các tiến trình gởi các khuôn dữ kiệu có khuôn dạng tới bất kì tiến trình nào
- Chức năng của hệ thống truyền thông điệp là cho phép các quá trình giao tiếp với các quá trình khác mà không cần sắp xếp lại dữ liệu chia sẻ.
- Đơn vị truyền thông tin trong cơ chế truyền thông điệp là một thông điệp, do đó các tiến trình có thể trao đổi dữ liệu ở dạng cấu cấu trúc.
Dùng bộ nhớ chung:
- Với phương thức này, các tiến trình chia sẻ một vùng nhớ vật lý thông qua trung gian không gian địa chỉ của chung. Một vùng nhớ chia sẻ tồn tại độc lập với các tiến trình, và khi một tiến trình muốn truy xuất đến vùng nhớ này, tiến trình phải kết gắn vùng nhớ chung đó vào không gian địa chỉ riêng của từng tiến trình, và thao tác trên đó như một vùng nhớ riêng của mình.
- Đây là phương pháp nhanh nhất để trao đổi dữ liệu giữa các tiến trình. Nhưng phương thức này cũng làm phát sinh các khó khăn trong việc bảo đảm sự toàn vẹn dữ liệu (coherence)
- Một khuyết điểm của phương pháp liên lạc này là không thể áp dụng hiệu quả trong các hệ phân tán , để trao đổi thông tin giữa các máy tính khác nhau.
[Kỹ thuật máy ảo, với ưu nhược điểm của nó. Phân biệt Vmware và VirtualPC](/t5647-topic#28149)
Kỹ thuật máy ảo
- Máy ảo là sự phát triển lô-gic của kiến trúc phân lớp.
- Bằng cách Điều phối CPU và kỹ thuật Bộ nhớ ảo, có thể tạo cho người dùng ảo giác rằng người đó đang dùng bộ xử lý và bộ nhớ của riêng mình.
- Nói cách khác: Máy tính ảo của người dùng được giả lập trên nền máy tính vật lý.
- Ví dụ: Trên nền CPU loại PowerPC, Motorola, Alpha,… có thể giả lập máy tính ảo Intel chạy HĐH Windows và ngược lại. Khi đó, các lệnh của Intel được chuyển đổi sang lệnh vật lý trước khi thực hiện.
- HĐH máy ảo thương mại đầu tiên: VM/370 của IBM.
Ưu điểm:
- Tính bảo mật cao do các máy ảo độc lập với nhau. Các tài nguyên của máy vật lý được bảo vệ hoàn toàn vì các máy ảo có Thiết bị ảo (Một ổ đĩa ảo, thậm chí toàn bộ máy ảo thực tế chỉ là một tập tin của máy vật lý). Có thể lấy từ Internet về một chương trình lạ và thử vận hành trên máy ảo mà không sợ bị ảnh hưởng (ví dụ do virus) vì nếu có sao cũng chỉ hỏng máy ảo.
- Dễ phát triển hệ thống (System Development) mà không sợ làm ảnh hưởng đến công việc toàn hệ máy đang vận hành. HĐH là chương trình phức tạp, cần liên tục thử nghiệm, tinh chỉnh, hoàn thiện và nâng cấp. Có thể tiến hành Phát triển hệ thống trên một máy ảo thay vì làm trên máy thực.
Nhược điểm:
- Vấn đề lưu trữ vật lý. Thông thường, mỗi máy ảo chỉ dùng một tập tin để lưu tất cả những gì diễn ra trong máy ảo. Do đó nếu bị mất tập tin này xem như mất tất cả.
- Nếu máy tính có cấu hình phần cứng thấp nhưng cài quá nhiều chương trình máy ảo, máy sẽ chậm và ảnh hưởng đến các chương trình khác.
- Do tập trung vào một máy tính, nếu máy bị hư thì toàn bộ các máy tính ảo đã thiết lập trên nó cũng bị ảnh hưởng theo.
- Ở góc dộ bảo mật, nếu hacker nắm quyền điều khiển máy tính chứa các máy ảo thì hacker có thể kiểm soát được tất cả các máy ảo trong nó.
Phân biệt Vmware và VirtualPC
Giống nhau:
- Giúp giả lập máy tính ảo trên một máy tính thật. Khi cài đặt chúng lên, ta có thể tạo nên các máy ảo chia sẻ CPU, RAM, Card mạng với máy tính thật. Điều này cho phép xây dựng nên một hệ thống với một vài máy tính được nối với nhau theo một mô hình nhất định, người sử dụng có thể tạo nên hệ thống của riêng mình, cấu hình theo yêu cầu của bài học.
Khác nhau:
- Về mạng nội bộ, VMW cung cấp tới 4 phương thức kết nối: ‘Bridged Connection’, ‘Network Address Translation’, ‘Host Only’ và ‘Custom’. ‘Bridged Connection’ cho phép máy ảo trực tiếp kết nối với mạng LAN hoặc Internet. ‘Network Address Translation’ cho phép máy ảo kết nối mạng bằng cách dùng chung địa chỉ IP của máy chủ. ‘Host Only’ tạo một mạng riêng mà trong đó máy chủ được coi như một máy tính tách rời. Với ‘Custom’, bạn có thể tạo một mạng ảo theo những yêu cầu cụ thể. Chúng tôi sử dụng phương thức ‘Network Address Translation’ và nhận thấy việc kết nối mạng không gặp bất kỳ khó khăn gì trong cả 2 môi trường Windows và Linux.
- VPC đòi hỏi 2 cửa sổ chương trình: một cho việc quản lí các máy ảo, một cho từng máy ảo. Ngược lại, VMW lại gộp cả 2 cửa sổ trên vào làm một. Tuy nhiên, VPC cung cấp menu của cửa sổ chương trình đơn giản hơn của VMW. Cả 2 phần mềm đều cho phép thực hiện tất cả các thao tác cấu hình chi tiết thông qua menu chính, song bạn cũng có thể trực tiếp thực hiện một số thiết đặt thông qua các biểu tượng ở thanh trạng thái phía dưới.
- Máy ảo là sự phát triển lô-gic của kiến trúc phân lớp.
- Bằng cách Điều phối CPU và kỹ thuật Bộ nhớ ảo, có thể tạo cho người dùng ảo giác rằng người đó đang dùng bộ xử lý và bộ nhớ của riêng mình.
- Nói cách khác: Máy tính ảo của người dùng được giả lập trên nền máy tính vật lý.
- Ví dụ: Trên nền CPU loại PowerPC, Motorola, Alpha,… có thể giả lập máy tính ảo Intel chạy HĐH Windows và ngược lại. Khi đó, các lệnh của Intel được chuyển đổi sang lệnh vật lý trước khi thực hiện.
- HĐH máy ảo thương mại đầu tiên: VM/370 của IBM.
Ưu điểm:
- Tính bảo mật cao do các máy ảo độc lập với nhau. Các tài nguyên của máy vật lý được bảo vệ hoàn toàn vì các máy ảo có Thiết bị ảo (Một ổ đĩa ảo, thậm chí toàn bộ máy ảo thực tế chỉ là một tập tin của máy vật lý). Có thể lấy từ Internet về một chương trình lạ và thử vận hành trên máy ảo mà không sợ bị ảnh hưởng (ví dụ do virus) vì nếu có sao cũng chỉ hỏng máy ảo.
- Dễ phát triển hệ thống (System Development) mà không sợ làm ảnh hưởng đến công việc toàn hệ máy đang vận hành. HĐH là chương trình phức tạp, cần liên tục thử nghiệm, tinh chỉnh, hoàn thiện và nâng cấp. Có thể tiến hành Phát triển hệ thống trên một máy ảo thay vì làm trên máy thực.
Nhược điểm:
- Vấn đề lưu trữ vật lý. Thông thường, mỗi máy ảo chỉ dùng một tập tin để lưu tất cả những gì diễn ra trong máy ảo. Do đó nếu bị mất tập tin này xem như mất tất cả.
- Nếu máy tính có cấu hình phần cứng thấp nhưng cài quá nhiều chương trình máy ảo, máy sẽ chậm và ảnh hưởng đến các chương trình khác.
- Do tập trung vào một máy tính, nếu máy bị hư thì toàn bộ các máy tính ảo đã thiết lập trên nó cũng bị ảnh hưởng theo.
- Ở góc dộ bảo mật, nếu hacker nắm quyền điều khiển máy tính chứa các máy ảo thì hacker có thể kiểm soát được tất cả các máy ảo trong nó.
Phân biệt Vmware và VirtualPC
Giống nhau:
- Giúp giả lập máy tính ảo trên một máy tính thật. Khi cài đặt chúng lên, ta có thể tạo nên các máy ảo chia sẻ CPU, RAM, Card mạng với máy tính thật. Điều này cho phép xây dựng nên một hệ thống với một vài máy tính được nối với nhau theo một mô hình nhất định, người sử dụng có thể tạo nên hệ thống của riêng mình, cấu hình theo yêu cầu của bài học.
Khác nhau:
- Về mạng nội bộ, VMW cung cấp tới 4 phương thức kết nối: ‘Bridged Connection’, ‘Network Address Translation’, ‘Host Only’ và ‘Custom’. ‘Bridged Connection’ cho phép máy ảo trực tiếp kết nối với mạng LAN hoặc Internet. ‘Network Address Translation’ cho phép máy ảo kết nối mạng bằng cách dùng chung địa chỉ IP của máy chủ. ‘Host Only’ tạo một mạng riêng mà trong đó máy chủ được coi như một máy tính tách rời. Với ‘Custom’, bạn có thể tạo một mạng ảo theo những yêu cầu cụ thể. Chúng tôi sử dụng phương thức ‘Network Address Translation’ và nhận thấy việc kết nối mạng không gặp bất kỳ khó khăn gì trong cả 2 môi trường Windows và Linux.
- VPC đòi hỏi 2 cửa sổ chương trình: một cho việc quản lí các máy ảo, một cho từng máy ảo. Ngược lại, VMW lại gộp cả 2 cửa sổ trên vào làm một. Tuy nhiên, VPC cung cấp menu của cửa sổ chương trình đơn giản hơn của VMW. Cả 2 phần mềm đều cho phép thực hiện tất cả các thao tác cấu hình chi tiết thông qua menu chính, song bạn cũng có thể trực tiếp thực hiện một số thiết đặt thông qua các biểu tượng ở thanh trạng thái phía dưới.
[Sự khác nhau giữa biên dịch và thông dịch](/t5647-topic#28163)
-Compiler (biên dịch): Code sau khi đc biên dịch sẽ tạo ra 1 file thường là .exe, và file .exe này có thể đem sử dụng lại không cần biên dịch nữa.
-Interpreter (thông dich) : Nó dịch từng lệnh rồi chạy từng lệnh, lần sau muốn chạy lại thì phải interpreter lại.
ví dụ:
-Compiler giống như một dịch thuật gia, giã sử ông ta dịch một cuốn sách từ English sang Vietnam, sau này một người không biết English vẫn có thể hiểu nội dung quyển sách bằng cách đọc quyển tiếng Việt do ông ta dịch.
-Interpreter giống như là thông dịch viên, có một cuộc hôi thảo người báo cáo là người Anh, trong khi hầu hết người dự báo cáo là người việt không biết tiếng Anh thì sẽ cần đến một anh thông dịch viên, lần sau cũng có cuộc hội thảo tương tự như vậy, cùng chủ đề đó nhưng cũng cần đến anh thông dịch viên.
-Interpreter (thông dich) : Nó dịch từng lệnh rồi chạy từng lệnh, lần sau muốn chạy lại thì phải interpreter lại.
ví dụ:
-Compiler giống như một dịch thuật gia, giã sử ông ta dịch một cuốn sách từ English sang Vietnam, sau này một người không biết English vẫn có thể hiểu nội dung quyển sách bằng cách đọc quyển tiếng Việt do ông ta dịch.
-Interpreter giống như là thông dịch viên, có một cuộc hôi thảo người báo cáo là người Anh, trong khi hầu hết người dự báo cáo là người việt không biết tiếng Anh thì sẽ cần đến một anh thông dịch viên, lần sau cũng có cuộc hội thảo tương tự như vậy, cùng chủ đề đó nhưng cũng cần đến anh thông dịch viên.
[HuynhHuuPhat(HLT3)](/u1972)
- Tổng số bài gửi : 19
Join date : 16/03/2014
[Nguyên lý và ứng dụng của máy ảo](/t5647-topic#28164)
-Một máy ảo là một chương trình đóng vai trò như một máy vi tính ảo. Nó chạy trên hệ điều hành hiện tại - hệ điều hành chủ và cung cấp phần cứng ảo tới hệ điều hành khách. Các hệ điều hành khách chạy trên các cửa sổ của hệ điều hành chủ, giống như bất kỳ chương trình nào khác của máy. Đối với những hệ điều hành khách, máy ảo lại hiện diện như một cỗ máy vật lý thực sự.
-Các máy ảo cung cấp phần cứng ảo, bao gồm CPU ảo, RAM ảo, ổ đĩa cứng, giao diện mạng và những thiết bị khác. Các thiết bị phần cứng ảo được cung cấp bởi máy ảo và được ánh xạ tới phần cứng thực trên máy thật. Ví dụ như, ổ đĩa cứng ảo lại được lưu trong một file đặt trên ổ đĩa cứng thực.
-Bạn có thể cài đặt nhiều máy ảo lên máy thực và chỉ bị hạn chế bởi dung lượng bộ lưu trữ hiện có cho chúng. Khi đã cài đặt một vài hệ điều hành, bạn có thể mở chương trình máy ảo và chọn máy ảo muốn khởi động, khởi động hệ điều hành khách và chạy trong một cửa sổ của hệ điều hành chủ hoặc cũng có thể chạy ở chế độ toàn màn hình (full-screen mode).
Các máy ảo có một số tác dụng phổ biến:
-Kiểm thử các phiên bản hệ điều hành: Bạn có thể chạy phiên bản thử nghiệm Windows 8 bằng máy ảo trên máy chạy Windows 7. Điều này cho phép bạn thử nghiệm Windows 8 mà không phải cài đặt một phiên bản Windows bất ổn định trên máy mình.
-Thử nghiệm các hệ điều hành khác: Bạn có thể cài nhiều bản phân phối Linux khác nhau và các hệ điều hành ít biết đến hơn bằng một máy ảo để thử nghiệm chúng và tìm hiểu cách chúng hoạt động. Nếu bạn hứng thú với Ubuntu, bạn có thể cài đặt nó vào máy ảo và sử dụng tại một cửa sổ trên màn hình desktop bình thường.
-Sử dụng phần mềm đòi hỏi một hệ điều hành cũ: Nếu bạn có một ứng dụng quan trọng mà chỉ chạy trên Windows XP, bạn có thể cài đặt XP trên máy ảo và chạy ứng dụng trên máy ảo. Máy ảo đang thực sự chạy Windows XP, vì vậy tính tương thích không phải vấn đề. Điều này cho phép người dùng sử dụng một ứng dụng mà chỉ tương thích với Windows XP mà không phải cài Windows XP trên máy thật, đặc biệt quan trọng khi xét đến nhiều laptop mới và phần cứng khác không hỗ trợ đầy đủ cho Windows XP.
-Chạy phần mềm được thiết kế cho những hệ điều hành khác: Những người dùng Mac và Linux có thể chạy Windows trên một máy ảo để sử dụng những phần mềm cho Windows trên máy tính mà không phải đau đầu về tính tương thích. Không may là, với trò chơi thì đây có thể là một vấn đề. Các chương trình máy ảo có độ trễ và không một ứng dụng máy ảo nào cho phép chạy các bản game 3D mới nhất. Một số hiệu ứng 3D được hỗ trợ nhưng đồ họa 3D là điều ít được hỗ trợ nhất trên máy ảo.
-Kiểm thử phần mềm trên nhiều nền tảng: Nếu bạn cần kiểm thử một ứng dụng có tương thích với nhiều hệ điều hành hoặc chỉ các bản Windows khác nhau hay không, bạn có thể cài mỗi hệ điều hành lên một máy ảo thay vì cần nhiều máy thực xung quanh.
Tăng cường cho server: Đối với các doanh nghiệp sử dụng nhiều server, thì các server có thể được đặt vào những máy ảo và chạy trên một máy tính đơn lẻ. Mỗi máy ảo là một thư mục cách ly, vì vậy điều này không gây những nguy cơ về bảo mật liên quan tới việc chạy nhiều server khác nhau trên cùng hệ điều hành. Các máy ảo cũng có thể được di dời giữa những server thật.
Hiện nay có 2 phần mềm hỗ trợ cho việc sử dụng máy ảo rất mạnh đó là VMWare và VirtualBox
-Các máy ảo cung cấp phần cứng ảo, bao gồm CPU ảo, RAM ảo, ổ đĩa cứng, giao diện mạng và những thiết bị khác. Các thiết bị phần cứng ảo được cung cấp bởi máy ảo và được ánh xạ tới phần cứng thực trên máy thật. Ví dụ như, ổ đĩa cứng ảo lại được lưu trong một file đặt trên ổ đĩa cứng thực.
-Bạn có thể cài đặt nhiều máy ảo lên máy thực và chỉ bị hạn chế bởi dung lượng bộ lưu trữ hiện có cho chúng. Khi đã cài đặt một vài hệ điều hành, bạn có thể mở chương trình máy ảo và chọn máy ảo muốn khởi động, khởi động hệ điều hành khách và chạy trong một cửa sổ của hệ điều hành chủ hoặc cũng có thể chạy ở chế độ toàn màn hình (full-screen mode).
Các máy ảo có một số tác dụng phổ biến:
-Kiểm thử các phiên bản hệ điều hành: Bạn có thể chạy phiên bản thử nghiệm Windows 8 bằng máy ảo trên máy chạy Windows 7. Điều này cho phép bạn thử nghiệm Windows 8 mà không phải cài đặt một phiên bản Windows bất ổn định trên máy mình.
-Thử nghiệm các hệ điều hành khác: Bạn có thể cài nhiều bản phân phối Linux khác nhau và các hệ điều hành ít biết đến hơn bằng một máy ảo để thử nghiệm chúng và tìm hiểu cách chúng hoạt động. Nếu bạn hứng thú với Ubuntu, bạn có thể cài đặt nó vào máy ảo và sử dụng tại một cửa sổ trên màn hình desktop bình thường.
-Sử dụng phần mềm đòi hỏi một hệ điều hành cũ: Nếu bạn có một ứng dụng quan trọng mà chỉ chạy trên Windows XP, bạn có thể cài đặt XP trên máy ảo và chạy ứng dụng trên máy ảo. Máy ảo đang thực sự chạy Windows XP, vì vậy tính tương thích không phải vấn đề. Điều này cho phép người dùng sử dụng một ứng dụng mà chỉ tương thích với Windows XP mà không phải cài Windows XP trên máy thật, đặc biệt quan trọng khi xét đến nhiều laptop mới và phần cứng khác không hỗ trợ đầy đủ cho Windows XP.
-Chạy phần mềm được thiết kế cho những hệ điều hành khác: Những người dùng Mac và Linux có thể chạy Windows trên một máy ảo để sử dụng những phần mềm cho Windows trên máy tính mà không phải đau đầu về tính tương thích. Không may là, với trò chơi thì đây có thể là một vấn đề. Các chương trình máy ảo có độ trễ và không một ứng dụng máy ảo nào cho phép chạy các bản game 3D mới nhất. Một số hiệu ứng 3D được hỗ trợ nhưng đồ họa 3D là điều ít được hỗ trợ nhất trên máy ảo.
-Kiểm thử phần mềm trên nhiều nền tảng: Nếu bạn cần kiểm thử một ứng dụng có tương thích với nhiều hệ điều hành hoặc chỉ các bản Windows khác nhau hay không, bạn có thể cài mỗi hệ điều hành lên một máy ảo thay vì cần nhiều máy thực xung quanh.
Tăng cường cho server: Đối với các doanh nghiệp sử dụng nhiều server, thì các server có thể được đặt vào những máy ảo và chạy trên một máy tính đơn lẻ. Mỗi máy ảo là một thư mục cách ly, vì vậy điều này không gây những nguy cơ về bảo mật liên quan tới việc chạy nhiều server khác nhau trên cùng hệ điều hành. Các máy ảo cũng có thể được di dời giữa những server thật.
Hiện nay có 2 phần mềm hỗ trợ cho việc sử dụng máy ảo rất mạnh đó là VMWare và VirtualBox
[HuynhHuuPhat(HLT3)](/u1972)
- Tổng số bài gửi : 19
Join date : 16/03/2014
[ Kỹ thuật máy ảo, với ưu nhược điểm của nó.](/t5647-topic#28190) **Kỹ thuật máy ảo**
- Máy ảo là sự phát triển lô-gic của kiến trúc phân lớp.
- Bằng cách Điều phối CPU và kỹ thuật Bộ nhớ ảo, có thể tạo cho người dùng ảo giác rằng người đó đang dùng bộ xử lý và bộ nhớ của riêng mình.
- Nói cách khác: Máy tính ảo của người dùng được giả lập trên nền máy tính vật lý.
- Ví dụ: Trên nền CPU loại PowerPC, Motorola, Alpha,… có thể giả lập máy tính ảo Intel chạy HĐH Windows và ngược lại. Khi đó, các lệnh của Intel được chuyển đổi sang lệnh vật lý trước khi thực hiện.
- HĐH máy ảo thương mại đầu tiên: VM/370 của IBM.
**Ưu điểm:**
- Tính bảo mật cao do các máy ảo độc lập với nhau. Các tài nguyên của máy vật lý được bảo vệ hoàn toàn vì các máy ảo có Thiết bị ảo (Một ổ đĩa ảo, thậm chí toàn bộ máy ảo thực tế chỉ là một tập tin của máy vật lý). Có thể lấy từ Internet về một chương trình lạ và thử vận hành trên máy ảo mà không sợ bị ảnh hưởng (ví dụ do virus) vì nếu có sao cũng chỉ hỏng máy ảo.
- Dễ phát triển hệ thống (System Development) mà không sợ làm ảnh hưởng đến công việc toàn hệ máy đang vận hành. HĐH là chương trình phức tạp, cần liên tục thử nghiệm, tinh chỉnh, hoàn thiện và nâng cấp. Có thể tiến hành Phát triển hệ thống trên một máy ảo thay vì làm trên máy thực.
**Nhược điểm:**
- Vấn đề lưu trữ vật lý. Thông thường, mỗi máy ảo chỉ dùng một tập tin để lưu tất cả những gì diễn ra trong máy ảo. Do đó nếu bị mất tập tin này xem như mất tất cả.
- Nếu máy tính có cấu hình phần cứng thấp nhưng cài quá nhiều chương trình máy ảo, máy sẽ chậm và ảnh hưởng đến các chương trình khác.
- Do tập trung vào một máy tính, nếu máy bị hư thì toàn bộ các máy tính ảo đã thiết lập trên nó cũng bị ảnh hưởng theo.
- Ở góc dộ bảo mật, nếu hacker nắm quyền điều khiển máy tính chứa các máy ảo thì hacker có thể kiểm soát được tất cả các máy ảo trong nó.
[LamQuocVu(HLT3)](/u1987)
- Tổng số bài gửi : 31
Join date : 17/03/2014
**Sponsored content**
-
[Trang 1 trong tổng số 2 trang](javascript:Pagination();) • **1**, [2](/t5647p25-topic) ![ Next](https://illiweb.com/fa/empty.gif)
![ Next](https://illiweb.com/fa/empty.gif)
Trang
**1**trong tổng số **2**trang
Bạn
**Permissions in this forum:** **không có quyền**trả lời bài viết