Thảo luận Bài 3
+73
TRANTHINHPHAT (I11C)
DuongTrungQuan
nguyenhuutho
dongocthien (I11C)
lymydung_I12A
NguyenVinhQuang_I12A
LeMInhTien(I11C)
TranTrungTinh(I12A)
quynhnhi.nguyen_I12A
NguyenQuocThang(I12C)
TranPhiLong (I11C)
BuiAnhNgoc(I12C)
Truc_Phuong(I111C)
VoTrongQuyet-I12A
VuNguyenQuynhLam_I12C
nguyen_tuan_phat_I12A
PhamDucPhuong(I12A)
NguyenthechinhI12A
lethanhsang_I12A
HuaTranTuQuyen(I12A)
TranThaoUyen127(I92C)
HuynhMinhChanh(i91C)
TranThiMyKhanh(I12A)
quicly_I111c
phanngocthinh(i12a)
HuynhKhaiThien26(I12A)
NguyenHaCamThu(I12A)
HUYNHMINHHAI(I12A)
phamduyI12A
TranMinhTuan143(I12A)
LeThanhTung (I11C)
LeLamThang (113A)
caothithuhuong(102c)
nguyenthihongtham_I12C
nguyenthingocmai_I12A
ngophicamI12A
hoanghaiyen
Đinh Đông Dương
minhtam_I12C
TranHuyCuong17 (I12A)
LamTheTong_I12C
trantrungnam-HC11TH2A
NguyenVanBenI12C
BuiPhamAnBinh(I12A)
levanhop.it
HuynhNguyenTrungHau_I12C
nguyenthimao_I12A
Nguyen Doan Linh051(I11c)
phamphihung55
nguyenthaihiep (I11C)
PHAMLEDUY13(102C)
TranThiAnhDao89I12C
phuongnguyen
hoxuanvu_I12A
DoanNgocDan(I12A)
LePhucHiep(102C)
NguyenHongHaiI12C
NgoPhuQuoc_I12C
LeThiMaiPhuongI12A
DaoThaiHuyI12A
HoNgocTuan142(I12A)
LeQuocKhanh-11H1010059
LeXuanHau (I12C)
Nguyen Sy Hung I12A
TranHoangNhanI12C
HauTrongPhuc(I12A)
NguyenHoangThangI12A
hoanggiangI12C
TrinhThiPhuongThaoI12C
lequanghanh(102c)
NguyenThanhCang(I12A)
trinhvanminh_11h1010077
Admin
77 posters
Trang 5 trong tổng số 8 trang
Trang 5 trong tổng số 8 trang • 1, 2, 3, 4, 5, 6, 7, 8
Các thành phần hệ thống
2 Quản lý bộ nhớ chính
Bộ nhớ chính là trung tâm điều hành của một máy tính hiện đại. Bộ nhớ chính là một mảng các từ (words) hay bytes có kích thước lớn từ hàng trăm ngàn tới hàng tỉ. Mỗi từ hay byte có địa chỉ riêng. Bộ nhớ chính là một kho chứa dữ liệu có khả năng truy xuất nhanh được chia sẻ bởi CPU và các thiết bị xuất/nhập. Bộ xử lý trung tâm đọc các chỉ thị từ bộ nhớ trong chu kỳ lấy chỉ thị, nó đọc và viết dữ liệu từ bộ nhớ chính trong chu kỳ lấy dữ liệu. Bộ nhớ chính thường là thiết bị lưu trữ lớn mà CPU có thể định địa chỉ và truy xuất trực tiếp. Thí dụ, đối với CPU xử lý dữ liệu từ đĩa, dữ liệu trước tiên được chuyển tới bộ nhớ chính bởi lời gọi xuất/nhập được sinh ra bởi CPU. Tương tự, các chỉ thị phải ở trong bộ nhớ cho CPU thực thi chúng.
Đối với một chương trình được thực thi, nó phải được ánh xạ các địa chỉ và được nạp vào bộ nhớ. Khi chương trình thực thi, nó truy xuất các chỉ thị chương trình và dữ liệu từ bộ nhớ bằng cách tạo ra các địa chỉ tuyệt đối này. Cuối cùng, chương trình kết thúc, không gian bộ nhớ của nó được khai báo sẳn, và chương trình có thể được nạp và thực thi.
Để cải tiến việc sử dụng CPU và tốc độ đáp ứng của máy tính cho người dùng, chúng ta phải giữ nhiều chương trình vào bộ nhớ. Nhiều cơ chế quản lý bộ nhớ khác nhau được dùng và tính hiệu quả của các giải thuật phụ thuộc vào từng trường hợp cụ thể. Chọn một cơ chế quản lý bộ nhớ cho một hệ thống xác định phụ thuộc vào nhiều yếu tố-đặc biệt trên thiết kế phần cứng của hệ thống. Mỗi giải thuật đòi hỏi sự hỗ trợ phần cứng của nó.
Hệ điều hành có nhiệm vụ cho các hoạt động sau khi đề cập tới việc quản lý bộ nhớ
•Giữ vết về phần nào của bộ nhớ hiện đang được dùng và quá trình nào đang dùng.
•Quyết định quá trình nào được nạp vào bộ nhớ khi không gian bộ nhớ trở nên sẳn dùng.
•Cấp phát và thu hồi không gian bộ nhớ khi được yêu cầu.
3 Quản lý tập tin
Quản lý tập tin là một trong những thành phần có thể nhìn thấy nhất của hệ điều hành. Máy tính có thể lưu thông tin trên nhiều loại phương tiện lưu trữ vật lý khác nhau. Băng từ, đĩa từ, đĩa quang là những phương tiện thông dụng nhất. Mỗi phương tiện này có đặc điểm và tổ chức riêng. Mỗi phương tiện được điều khiển bởi một thiết bị, như một ổ đĩa hay ổ băng từ. Các thuộc tính này bao gồm tốc độ truy xuất, dung lượng, tốc độ truyền dữ liệu và phương pháp truy xuất (tuần tự hay ngẫu nhiên).
Nhờ vào việc sử dụng thuận lợi hệ thống máy tính, hệ điều hành cung cấp tầm nhìn luận lý của việc lưu trữ thông tin đồng nhất. Hệ điều hành trừu tượng hoá các thuộc tính vật lý của các thiết bị lưu trữ để định nghĩa một đơn vị lưu trữ luận lý là tập tin. Hệ điều hành ánh xạ các tập tin trên các thiết bị lưu trữ vật lý, và truy xuất các tập tin này bằng các thiết bị lưu trữ.
Tập tin là tập hợp thông tin có quan hệ được định nghĩa bởi người tạo. Thông thường, các tập tin biểu diễn chương trình và dữ liệu. Các tập tin dữ liệu có thể là số, chữ cái, chữ số. Các tập tin có dạng bất kỳ (thí dụ, các tập tin văn bản) hay có thể được định dạng có cấu trúc (thí dụ, các trường cố định). Một tập tin chứa một chuỗi các bits, bytes, các dòng hay các mẫu tin mà ý nghĩa của nó được định nghĩa bởi người tạo. Khái niệm tập tin là một khái niệm cực kỳ thông dụng.
Hệ điều hành cài đặt một khái niệm trừu tượng của tập tin bằng cách quản lý phương tiện lưu trữ như đĩa, băng từ và các thiết bị điều khiển chúng. Các tập tin cũng thường được tổ chức trong các thư mục để dễ dàng sử dụng chúng. Cuối cùng, khi nhiều người dùng truy xuất tập tin, chúng ta muốn kiểm soát ai và trong cách gì (thí dụ: đọc, viết, chèn,..) các tập tin có thể được truy xuất.
Hệ điều hành có nhiệm vụ thực hiện các hoạt động trong việc quản lý hệ thống tập tin:
•Tạo và xoá tập tin
•Tạo và xoá thư mục
•Hỗ trợ các hàm nguyên thuỷ để thao tác tập tin và thư mục
•Ánh xạ các tập tin trên các thiết bị lưu trữ phụ
•Sao lưu dự phòng tập tin trên các phương tiện lưu trữ ổ định
4 Quản lý hệ thống xuất/nhập
Một trong những mục đích của hệ điều hành là che giấu sự khác biệt của các thiết bị phần cứng từ người dùng. Thí dụ, trong UNIX sự khác biệt của các thiết bị xuất/nhập bị che giấu từ phần chính của hệ điều hành bởi các hệ thống con xuất/nhập. Hệ thống con xuất/nhập chứa:
•Thành phần quản lý bộ nhớ chứa vùng đệm (buffering), lưu trữ (caching) và spooling (vùng chứa).
•Giao diện trình điều khiển thiết bị chung.
•Trình điều khiển cho các thiết bị xác định.
Chỉ trình điều khiển thiết bị biết sự khác biệt của các thiết bị xác định mà nó được gán
5 Quản lý việc lưu trữ phụ
Mục đích chính của một hệ thống máy tính là thực thi các chương trình. Những chương trình này với dữ liệu chúng truy xuất phải nằm trong bộ nhớ chính hay lưu trữ chính trong quá trình thực thi. Vì bộ nhớ chính quá nhỏ để lưu tất cả dữ liệu và chương trình và vì dữ liệu quản lý bị mất khi mất điện, hệ thống máy tính phải cung cấp việc lưu trữ phụ để lưu dự phòng bộ nhớ chính. Hầu hết các hệ thống máy tính hiện đại dùng đĩa như phương tiện lưu trữ trực tuyến cho cả chương trình và dữ liệu. Hầu hết các chương trình – gồm trình biên dịch, trình dịch hợp ngữ, thủ tục sắp xếp, trình soạn thảo và trình định dạng – được lưu trên đĩa cho tới khi được nạp vào trong bộ nhớ và sau đó dùng đĩa khi cả hai nguồn và đích của việc xử lý. Do đó, quản lý hợp lý việc lưu trữ đĩa có vai trò quan trọng đối với một hệ thống máy tính.
Hệ điều hành có nhiệm vụ thực hiện các hoạt động sau trong việc quản lý đĩa:
•Quản lý không gian trống
•Cấp phát lưu trữ
•Định thời đĩa
Vì lưu trữ phụ được dùng thường xuyên nên nó phải được dùng một cách hiệu quả. Tốc độ toàn bộ của các thao tác của máy tính có thể xoay quanh tốc độ hệ thống con đĩa và các giải thuật thao tác trên hệ thống con đó.
Bộ nhớ chính là trung tâm điều hành của một máy tính hiện đại. Bộ nhớ chính là một mảng các từ (words) hay bytes có kích thước lớn từ hàng trăm ngàn tới hàng tỉ. Mỗi từ hay byte có địa chỉ riêng. Bộ nhớ chính là một kho chứa dữ liệu có khả năng truy xuất nhanh được chia sẻ bởi CPU và các thiết bị xuất/nhập. Bộ xử lý trung tâm đọc các chỉ thị từ bộ nhớ trong chu kỳ lấy chỉ thị, nó đọc và viết dữ liệu từ bộ nhớ chính trong chu kỳ lấy dữ liệu. Bộ nhớ chính thường là thiết bị lưu trữ lớn mà CPU có thể định địa chỉ và truy xuất trực tiếp. Thí dụ, đối với CPU xử lý dữ liệu từ đĩa, dữ liệu trước tiên được chuyển tới bộ nhớ chính bởi lời gọi xuất/nhập được sinh ra bởi CPU. Tương tự, các chỉ thị phải ở trong bộ nhớ cho CPU thực thi chúng.
Đối với một chương trình được thực thi, nó phải được ánh xạ các địa chỉ và được nạp vào bộ nhớ. Khi chương trình thực thi, nó truy xuất các chỉ thị chương trình và dữ liệu từ bộ nhớ bằng cách tạo ra các địa chỉ tuyệt đối này. Cuối cùng, chương trình kết thúc, không gian bộ nhớ của nó được khai báo sẳn, và chương trình có thể được nạp và thực thi.
Để cải tiến việc sử dụng CPU và tốc độ đáp ứng của máy tính cho người dùng, chúng ta phải giữ nhiều chương trình vào bộ nhớ. Nhiều cơ chế quản lý bộ nhớ khác nhau được dùng và tính hiệu quả của các giải thuật phụ thuộc vào từng trường hợp cụ thể. Chọn một cơ chế quản lý bộ nhớ cho một hệ thống xác định phụ thuộc vào nhiều yếu tố-đặc biệt trên thiết kế phần cứng của hệ thống. Mỗi giải thuật đòi hỏi sự hỗ trợ phần cứng của nó.
Hệ điều hành có nhiệm vụ cho các hoạt động sau khi đề cập tới việc quản lý bộ nhớ
•Giữ vết về phần nào của bộ nhớ hiện đang được dùng và quá trình nào đang dùng.
•Quyết định quá trình nào được nạp vào bộ nhớ khi không gian bộ nhớ trở nên sẳn dùng.
•Cấp phát và thu hồi không gian bộ nhớ khi được yêu cầu.
3 Quản lý tập tin
Quản lý tập tin là một trong những thành phần có thể nhìn thấy nhất của hệ điều hành. Máy tính có thể lưu thông tin trên nhiều loại phương tiện lưu trữ vật lý khác nhau. Băng từ, đĩa từ, đĩa quang là những phương tiện thông dụng nhất. Mỗi phương tiện này có đặc điểm và tổ chức riêng. Mỗi phương tiện được điều khiển bởi một thiết bị, như một ổ đĩa hay ổ băng từ. Các thuộc tính này bao gồm tốc độ truy xuất, dung lượng, tốc độ truyền dữ liệu và phương pháp truy xuất (tuần tự hay ngẫu nhiên).
Nhờ vào việc sử dụng thuận lợi hệ thống máy tính, hệ điều hành cung cấp tầm nhìn luận lý của việc lưu trữ thông tin đồng nhất. Hệ điều hành trừu tượng hoá các thuộc tính vật lý của các thiết bị lưu trữ để định nghĩa một đơn vị lưu trữ luận lý là tập tin. Hệ điều hành ánh xạ các tập tin trên các thiết bị lưu trữ vật lý, và truy xuất các tập tin này bằng các thiết bị lưu trữ.
Tập tin là tập hợp thông tin có quan hệ được định nghĩa bởi người tạo. Thông thường, các tập tin biểu diễn chương trình và dữ liệu. Các tập tin dữ liệu có thể là số, chữ cái, chữ số. Các tập tin có dạng bất kỳ (thí dụ, các tập tin văn bản) hay có thể được định dạng có cấu trúc (thí dụ, các trường cố định). Một tập tin chứa một chuỗi các bits, bytes, các dòng hay các mẫu tin mà ý nghĩa của nó được định nghĩa bởi người tạo. Khái niệm tập tin là một khái niệm cực kỳ thông dụng.
Hệ điều hành cài đặt một khái niệm trừu tượng của tập tin bằng cách quản lý phương tiện lưu trữ như đĩa, băng từ và các thiết bị điều khiển chúng. Các tập tin cũng thường được tổ chức trong các thư mục để dễ dàng sử dụng chúng. Cuối cùng, khi nhiều người dùng truy xuất tập tin, chúng ta muốn kiểm soát ai và trong cách gì (thí dụ: đọc, viết, chèn,..) các tập tin có thể được truy xuất.
Hệ điều hành có nhiệm vụ thực hiện các hoạt động trong việc quản lý hệ thống tập tin:
•Tạo và xoá tập tin
•Tạo và xoá thư mục
•Hỗ trợ các hàm nguyên thuỷ để thao tác tập tin và thư mục
•Ánh xạ các tập tin trên các thiết bị lưu trữ phụ
•Sao lưu dự phòng tập tin trên các phương tiện lưu trữ ổ định
4 Quản lý hệ thống xuất/nhập
Một trong những mục đích của hệ điều hành là che giấu sự khác biệt của các thiết bị phần cứng từ người dùng. Thí dụ, trong UNIX sự khác biệt của các thiết bị xuất/nhập bị che giấu từ phần chính của hệ điều hành bởi các hệ thống con xuất/nhập. Hệ thống con xuất/nhập chứa:
•Thành phần quản lý bộ nhớ chứa vùng đệm (buffering), lưu trữ (caching) và spooling (vùng chứa).
•Giao diện trình điều khiển thiết bị chung.
•Trình điều khiển cho các thiết bị xác định.
Chỉ trình điều khiển thiết bị biết sự khác biệt của các thiết bị xác định mà nó được gán
5 Quản lý việc lưu trữ phụ
Mục đích chính của một hệ thống máy tính là thực thi các chương trình. Những chương trình này với dữ liệu chúng truy xuất phải nằm trong bộ nhớ chính hay lưu trữ chính trong quá trình thực thi. Vì bộ nhớ chính quá nhỏ để lưu tất cả dữ liệu và chương trình và vì dữ liệu quản lý bị mất khi mất điện, hệ thống máy tính phải cung cấp việc lưu trữ phụ để lưu dự phòng bộ nhớ chính. Hầu hết các hệ thống máy tính hiện đại dùng đĩa như phương tiện lưu trữ trực tuyến cho cả chương trình và dữ liệu. Hầu hết các chương trình – gồm trình biên dịch, trình dịch hợp ngữ, thủ tục sắp xếp, trình soạn thảo và trình định dạng – được lưu trên đĩa cho tới khi được nạp vào trong bộ nhớ và sau đó dùng đĩa khi cả hai nguồn và đích của việc xử lý. Do đó, quản lý hợp lý việc lưu trữ đĩa có vai trò quan trọng đối với một hệ thống máy tính.
Hệ điều hành có nhiệm vụ thực hiện các hoạt động sau trong việc quản lý đĩa:
•Quản lý không gian trống
•Cấp phát lưu trữ
•Định thời đĩa
Vì lưu trữ phụ được dùng thường xuyên nên nó phải được dùng một cách hiệu quả. Tốc độ toàn bộ của các thao tác của máy tính có thể xoay quanh tốc độ hệ thống con đĩa và các giải thuật thao tác trên hệ thống con đó.
HuynhKhaiThien26(I12A)- Tổng số bài gửi : 12
Join date : 16/02/2012
Age : 34
Đến từ : Long An
Các thành phần hệ thống
6 Mạng
Hệ phân tán là tập hợp các bộ xử lý, chúng không chia sẻ bộ nhớ, các thiết bị ngoại vi hay đồng hồ. Thay vào đó mỗi bộ xử lý có bộ nhớ, đồng hồ và các bộ xử lý giao tiếp với nhau thông qua các đường giao tiếp như bus tốc độ cao hay mạng. Các bộ xử lý trong hệ thống phân tán khác nhau về kích thước và chức năng. Chúng có thể chứa các bộ vi xử lý, trạm làm việc, máy vi tính và các hệ thống máy tính thông thường.
Các bộ xử lý trong hệ thống được nối với nhau thông qua mạng truyền thông có thể được cấu hình trong nhiều cách khác nhau. Mạng có thể được nối kết một phần hay toàn bộ. Thiết kế mạng truyền thông phải xem xét vạch đường thông điệp và các chiến lược nối kết, và các vấn đề cạnh tranh hay bảo mật.
Hệ thống phân tán tập hợp những hệ thống vật lý riêng rẻ, có thể có kiến trúc không đồng nhất thành một hệ thống chặt chẻ, cung cấp người dùng với truy xuất tới các tài nguyên khác nhau mà hệ thống duy trì. Truy xuất tới các tài nguyên chia sẻ cho phép tăng tốc độ tính toán, chức năng, khả năng sẳn dùng của dữ liệu, khả năng tin cậy. Hệ điều hành thường tổng quát hoá việc truy xuất mạng như một dạng truy xuất tập tin, với những chi tiết mạng được chứa trong trình điều khiển thiết bị của giao diện mạng. Các giao thức tạo một hệ thống phân tán có thể có một ảnh hưởng to lớn trên tiện ích và tính phổ biến của hệ thống đó. Sự đổi mới của World Wide Web đã tạo ra một phương pháp truy xuất mới cho thông tin chia sẻ. Nó đã cải tiến giao thức truyền tập tin (File Transfer Protocol-FTP) và hệ thống tập tin mạng (Network File System-NFS) đã có bằng cách xoá yêu cầu cho một người dùng đăng nhập trước khi người dùng đó được phép dùng tài nguyên ở xa. Định nghĩa một giao thức mới, giao thức truyền siêu văn bản (hypertext transfer protocol-http), dùng trong giao tiếp giữa một trình phục vụ web và trình duyệt web. Trình duyệt web chỉ cần gởi yêu cầu thông tin tới một trình phục vụ web của máy ở xa, thông tin (văn bản, đồ hoạ, liên kết tới những thông tin khác) được trả về.
7 Hệ thống bảo vệ
Nếu một hệ thống máy tính có nhiều người dùng và cho phép thực thi đồng hành của nhiều quá trình, thì các quá trình khác nhau phải được bảo vệ từ các hoạt động của quá trình khác. Cho mục đích này, các cơ chế đảm bảo rằng các tập tin, phân đoạn bộ nhớ, CPU, và các tài nguyên khác có thể được điều hành chỉ bởi các quá trình có quyền phù hợp từ hệ điều hành.
Thí dụ, phần cứng định địa chỉ bộ nhớ đảm bảo rằng một quá trình có thể thực thi chỉ trong không gian địa chỉ của chính nó. Bộ định thời đảm bảo rằng không có quá trình nào có thể đạt được điều khiển của CPU mà cuối cùng không trả lại điều khiển. Các thanh ghi điều khiển thiết bị không thể truy xuất tới người dùng vì thế tính đúng đắn của các thiết bị ngoại vi khác nhau được bảo vệ.
Bảo vệ là một cơ chế để điều khiển truy xuất của các chương trình, quá trình hay người dùng tới tài nguyên được định nghĩa bởi một hệ thống máy tính. Cơ chế này phải cung cấp phương tiện để đặc tả các điều khiển được áp đặt và phương tiện cho việc ép buộc.
Bảo vệ có thể cải tiến khả năng tin cậy bằng cách phát hiện các lỗi tiềm tàng tại các giao diện giữa các hệ thống con thành phần. Phát hiện các lỗi giao diện sớm thường có thể ngăn chặn nguy cơ ảnh hưởng tới hệ thống con bởi một hệ thống con khác. Tài nguyên không được bảo vệ không thể ngăn chặn việc sử dụng bởi người dùng không có quyền. Hệ thống hướng bảo vệ (protection-oriented system) cung cấp một phương tiện để phân biệt giữa việc dùng có quyền và không có quyền.
8 Hệ thống thông dịch lệnh
Một trong những chương trình hệ thống quan trọng nhất đối với hệ điều hành là trình thông dịch lệnh. Nó là giao diện giữa người dùng và hệ điều hành. Một vài hệ điều hành chứa trình thông dịch lệnh trong nhân (kernel). Các hệ điều hành khác nhau như MS-DOS và UNIX xem trình thông dịch lệnh như một chương trình đặc biệt đang chạy khi một công việc được khởi tạo hay khi người dùng đăng nhập lần đầu tiên (trên các hệ thống chia thời).
Nhiều lệnh (commands) được cung cấp tới hệ điều hành bởi các lệnh điều khiển (control statements). Khi một công việc mới được bắt đầu trong hệ thống bó, hay khi một người dùng đăng nhập tới hệ thống chia thời, một chương trình đọc và thông dịch các câu lệnh điều khiển được thực thi tự động. Chương trình này còn được gọi trình thông dịch thẻ điều khiển (control-card interpreter) hay trình thông dịch dòng lệnh và thường được biết như shell. Chức năng của nó đơn giản là: lấy câu lệnh tiếp theo và thực thi nó.
Các hệ điều hành thường khác nhau trong vùng shell, với một trình thông dịch lệnh thân thiện với người dùng làm cho hệ thống có thể chấp nhập nhiều hơn đối với người dùng. Một dạng giao diện thân thiện người dùng là hệ thống trình đơn-cửa sổ trên cơ sở chuột (mouse-based window-and-menu system) được dùng trong Macintosh và Microsoft Windows. Chuột được di chuyển tới vị trí con trỏ chuột trên ảnh hay biểu tượng trên màn hình biểu diễn các chương trình, tập tin, và các hàm hệ thống. Phụ thuộc vào vị trí con trỏ chuột, nhấn một nút trên chuột có thể nạp một chương trình, chọn một tập tin hay thư mục hay kéo xuống một trình đơn chứa các câu lệnh. Các shell mạnh hơn, phức tạp hơn và khó học hơn được đánh giá cao bởi một số người dùng khác. Trong những shell này, các lệnh được đánh vào từ bàn phím được hiển thị trên màn hình hay in ra thiết bị đầu cuối, với phím enter (hay return) chỉ rằng một lệnh hoàn thành và sẳn sàng được thực thi. Shell của MS-DOS và UNIX điều hành theo cách này.
Các câu lệnh giải quyết việc tạo và quản lý quá trình, quản lý xuất/nhập, quản lý việc lưu trữ phụ, quản lý bộ nhớ chính, truy xuất hệ thống tập tin, bảo vệ và mạng.
Hệ phân tán là tập hợp các bộ xử lý, chúng không chia sẻ bộ nhớ, các thiết bị ngoại vi hay đồng hồ. Thay vào đó mỗi bộ xử lý có bộ nhớ, đồng hồ và các bộ xử lý giao tiếp với nhau thông qua các đường giao tiếp như bus tốc độ cao hay mạng. Các bộ xử lý trong hệ thống phân tán khác nhau về kích thước và chức năng. Chúng có thể chứa các bộ vi xử lý, trạm làm việc, máy vi tính và các hệ thống máy tính thông thường.
Các bộ xử lý trong hệ thống được nối với nhau thông qua mạng truyền thông có thể được cấu hình trong nhiều cách khác nhau. Mạng có thể được nối kết một phần hay toàn bộ. Thiết kế mạng truyền thông phải xem xét vạch đường thông điệp và các chiến lược nối kết, và các vấn đề cạnh tranh hay bảo mật.
Hệ thống phân tán tập hợp những hệ thống vật lý riêng rẻ, có thể có kiến trúc không đồng nhất thành một hệ thống chặt chẻ, cung cấp người dùng với truy xuất tới các tài nguyên khác nhau mà hệ thống duy trì. Truy xuất tới các tài nguyên chia sẻ cho phép tăng tốc độ tính toán, chức năng, khả năng sẳn dùng của dữ liệu, khả năng tin cậy. Hệ điều hành thường tổng quát hoá việc truy xuất mạng như một dạng truy xuất tập tin, với những chi tiết mạng được chứa trong trình điều khiển thiết bị của giao diện mạng. Các giao thức tạo một hệ thống phân tán có thể có một ảnh hưởng to lớn trên tiện ích và tính phổ biến của hệ thống đó. Sự đổi mới của World Wide Web đã tạo ra một phương pháp truy xuất mới cho thông tin chia sẻ. Nó đã cải tiến giao thức truyền tập tin (File Transfer Protocol-FTP) và hệ thống tập tin mạng (Network File System-NFS) đã có bằng cách xoá yêu cầu cho một người dùng đăng nhập trước khi người dùng đó được phép dùng tài nguyên ở xa. Định nghĩa một giao thức mới, giao thức truyền siêu văn bản (hypertext transfer protocol-http), dùng trong giao tiếp giữa một trình phục vụ web và trình duyệt web. Trình duyệt web chỉ cần gởi yêu cầu thông tin tới một trình phục vụ web của máy ở xa, thông tin (văn bản, đồ hoạ, liên kết tới những thông tin khác) được trả về.
7 Hệ thống bảo vệ
Nếu một hệ thống máy tính có nhiều người dùng và cho phép thực thi đồng hành của nhiều quá trình, thì các quá trình khác nhau phải được bảo vệ từ các hoạt động của quá trình khác. Cho mục đích này, các cơ chế đảm bảo rằng các tập tin, phân đoạn bộ nhớ, CPU, và các tài nguyên khác có thể được điều hành chỉ bởi các quá trình có quyền phù hợp từ hệ điều hành.
Thí dụ, phần cứng định địa chỉ bộ nhớ đảm bảo rằng một quá trình có thể thực thi chỉ trong không gian địa chỉ của chính nó. Bộ định thời đảm bảo rằng không có quá trình nào có thể đạt được điều khiển của CPU mà cuối cùng không trả lại điều khiển. Các thanh ghi điều khiển thiết bị không thể truy xuất tới người dùng vì thế tính đúng đắn của các thiết bị ngoại vi khác nhau được bảo vệ.
Bảo vệ là một cơ chế để điều khiển truy xuất của các chương trình, quá trình hay người dùng tới tài nguyên được định nghĩa bởi một hệ thống máy tính. Cơ chế này phải cung cấp phương tiện để đặc tả các điều khiển được áp đặt và phương tiện cho việc ép buộc.
Bảo vệ có thể cải tiến khả năng tin cậy bằng cách phát hiện các lỗi tiềm tàng tại các giao diện giữa các hệ thống con thành phần. Phát hiện các lỗi giao diện sớm thường có thể ngăn chặn nguy cơ ảnh hưởng tới hệ thống con bởi một hệ thống con khác. Tài nguyên không được bảo vệ không thể ngăn chặn việc sử dụng bởi người dùng không có quyền. Hệ thống hướng bảo vệ (protection-oriented system) cung cấp một phương tiện để phân biệt giữa việc dùng có quyền và không có quyền.
8 Hệ thống thông dịch lệnh
Một trong những chương trình hệ thống quan trọng nhất đối với hệ điều hành là trình thông dịch lệnh. Nó là giao diện giữa người dùng và hệ điều hành. Một vài hệ điều hành chứa trình thông dịch lệnh trong nhân (kernel). Các hệ điều hành khác nhau như MS-DOS và UNIX xem trình thông dịch lệnh như một chương trình đặc biệt đang chạy khi một công việc được khởi tạo hay khi người dùng đăng nhập lần đầu tiên (trên các hệ thống chia thời).
Nhiều lệnh (commands) được cung cấp tới hệ điều hành bởi các lệnh điều khiển (control statements). Khi một công việc mới được bắt đầu trong hệ thống bó, hay khi một người dùng đăng nhập tới hệ thống chia thời, một chương trình đọc và thông dịch các câu lệnh điều khiển được thực thi tự động. Chương trình này còn được gọi trình thông dịch thẻ điều khiển (control-card interpreter) hay trình thông dịch dòng lệnh và thường được biết như shell. Chức năng của nó đơn giản là: lấy câu lệnh tiếp theo và thực thi nó.
Các hệ điều hành thường khác nhau trong vùng shell, với một trình thông dịch lệnh thân thiện với người dùng làm cho hệ thống có thể chấp nhập nhiều hơn đối với người dùng. Một dạng giao diện thân thiện người dùng là hệ thống trình đơn-cửa sổ trên cơ sở chuột (mouse-based window-and-menu system) được dùng trong Macintosh và Microsoft Windows. Chuột được di chuyển tới vị trí con trỏ chuột trên ảnh hay biểu tượng trên màn hình biểu diễn các chương trình, tập tin, và các hàm hệ thống. Phụ thuộc vào vị trí con trỏ chuột, nhấn một nút trên chuột có thể nạp một chương trình, chọn một tập tin hay thư mục hay kéo xuống một trình đơn chứa các câu lệnh. Các shell mạnh hơn, phức tạp hơn và khó học hơn được đánh giá cao bởi một số người dùng khác. Trong những shell này, các lệnh được đánh vào từ bàn phím được hiển thị trên màn hình hay in ra thiết bị đầu cuối, với phím enter (hay return) chỉ rằng một lệnh hoàn thành và sẳn sàng được thực thi. Shell của MS-DOS và UNIX điều hành theo cách này.
Các câu lệnh giải quyết việc tạo và quản lý quá trình, quản lý xuất/nhập, quản lý việc lưu trữ phụ, quản lý bộ nhớ chính, truy xuất hệ thống tập tin, bảo vệ và mạng.
HuynhKhaiThien26(I12A)- Tổng số bài gửi : 12
Join date : 16/02/2012
Age : 34
Đến từ : Long An
Các dịch vụ hệ điều hành
Hệ điều hành cung cấp một môi trường cho việc thực thi các chương trình. Nó cung cấp các dịch vụ xác định tới chương trình và tới người dùng của các chương trình đó. Dĩ nhiên, các dịch vụ được cung cấp khác nhau từ hệ điều hành này với hệ điều hành kia nhưng chúng có thể xác định các lớp chung. Các dịch vụ hệ điều hành được cung cấp sự tiện dụng cho người lập trình để thực hiện tác vụ lập trình dễ dàng.
•Thực thi chương trình: hệ thống phải có thể nạp chương trình vào bộ nhớ và chạy chương trình đó. Chương trình phải có thể kết thúc việc thực thi của nó bình thường hay không bình thường (hiển thị lỗi).
•Thao tác xuất/nhập: một chương trình đang chạy có thể yêu cầu xuất/nhập. Xuất/nhập này có thể liên quan tới tập tin hay thiết bị xuất/nhập. Đối với các thiết bị cụ thể, các chức năng đặc biệt có thể được mong muốn (như quay lại từ đầu một ổ băng từ, hay xoá màn hình). Đối với tính hiệu quả và tính bảo vệ, người dùng thường không thể điều khiển các thiết bị xuất/nhập trực tiếp. Do đó, hệ điều hành phải cung cấp một phương tiện để thực hiện xuất/nhập..
•Thao tác hệ thống tập tin: hệ thống tập tin có sự quan tâm đặc biệt. Các chương trình cần đọc từ và viết tới các tập tin. Chương trình cũng cần tạo và xoá tập tin bằng tên.
•Giao tiếp: trong nhiều trường hợp, một quá trình cần trao đổi thông tin với các quá trình khác. Giao tiếp như thế có thể xảy ra trong hai cách chính. Cách đầu tiên xảy ra giữa các quá trình được thực thi trên cùng máy tính; cách thứ hai xảy ra giữa hai quá trình đang được thực thi trên các máy tính khác nhau được kết nối với nhau bởi một mạng máy tính. Các giao tiếp có thể được thực hiện bằng bộ nhớ được chia sẻ, hay bằng kỹ thuật truyền thông điệp, trong đó các gói tin được di chuyển giữa các quá trình bởi hệ điều hành.
•Phát hiện lỗi: hệ điều hành liên tục yêu cầu nhận biết các lỗi có thể phát sinh. Các lỗi có thể xảy ra trong CPU và phần cứng bộ nhớ (như lỗi bộ nhớ hay lỗi về điện), trong các thiết bị xuất/nhập (như lỗi chẳn lẻ trên băng từ, lỗi nối kết mạng, hết giấy in) và trong chương trình người dùng (như tràn số học, cố gắng truy xuất một vị trí bộ nhớ không hợp lệ, dùng quá nhiều thời gian CPU). Đối với mỗi loại lỗi, hệ điều hành nên thực hiện một hoạt động hợp lý để đảm bảo tính toán đúng và không đổi.
Ngoài ra, một tập chức năng khác của hệ điều hành tồn tại không giúp người dùng, nhưng đảm bảo các điều hành hữu hiệu của chính hệ thống. Các hệ thống với nhiều người dùng có thể đạt tính hữu hiệu bằng cách chia sẻ tài nguyên máy tính giữa các người dùng.
•Cấp phát tài nguyên: khi nhiều người dùng đăng nhập vào hệ thống hay nhiều công việc đang chạy cùng lúc, tài nguyên phải được cấp tới mỗi người dùng. Nhiều loại tài nguyên khác nhau được quản lý bởi hệ điều hành. Một số tài nguyên (như chu kỳ CPU, bộ nhớ chính, lưu trữ tập tin) có mã cấp phát đặt biệt, trái lại các tài nguyên khác (như thiết bị xuất/nhập) có mã yêu cầu và giải phóng thường hơn. Thí dụ, xác định cách tốt nhất để dùng CPU, hệ điều hành có các thủ tục định thời biểu CPU. Các thủ tục này xem xét tốc độ CPU, các công việc phải được thực thi, số thanh ghi sẳn dùng và các yếu tố khác. Cũng có các thủ tục cấp phát ổ băng từ để dùng cho một công việc. Một thủ tục như thế định vị ổ băng từ chưa được dùng và đánh dấu một bảng bên trong để ghi người dùng mới của ổ băng từ. Một thủ tục khác được dùng để xoá bảng đó. Các thủ tục này cũng có thể cấp phát các máy vẽ, modem, các thiết bị ngoại vi khác.
•Tính toán: chúng ta muốn giữ vết người dùng nào sử dụng bao nhiêu và loại tài nguyên máy tính nào. Giữ vết này có thể được dùng để tính toán (tính tiền người dùng) hay đơn giản thống kê sử dụng. Thống kê sử dụng có thể là công cụ có giá trị cho người nghiên cứu muốn cấu hình lại hệ thống để cải tiến các dịch vụ tính toán.
•Bảo vệ: người sở hữu thông tin được lưu trong hệ thống máy tính đa người dùng muốn điều khiển thông tin này. Khi nhiều quá trình riêng rẻ thực thi đồng hành, không thể cho một quá trình can thiệp tới các quá trình khác hay tới chính hệ điều hành. Bảo vệ đảm bảo rằng tất cả truy xuất tài nguyên của hệ thống được kiểm soát. An toàn hệ thống từ người dùng bên ngoài cũng là vấn đề quan trọng. An toàn bắt đầu với mỗi người dùng có quyền đối với hệ thống, thường bằng mật khẩu để được phép truy xuất tài nguyên. Mở rộng việc bảo vệ đối với các thiết bị xuất/nhập bên ngoài, bao gồm modem, card mạng từ những truy xuất không hợp lệ, và ghi lại các nối kết để phát hiện đột nhập vào hệ thống. Nếu hệ thống bảo vệ và bảo mật, những cảnh báo phải được thiết lập xuyên suốt.
•Thực thi chương trình: hệ thống phải có thể nạp chương trình vào bộ nhớ và chạy chương trình đó. Chương trình phải có thể kết thúc việc thực thi của nó bình thường hay không bình thường (hiển thị lỗi).
•Thao tác xuất/nhập: một chương trình đang chạy có thể yêu cầu xuất/nhập. Xuất/nhập này có thể liên quan tới tập tin hay thiết bị xuất/nhập. Đối với các thiết bị cụ thể, các chức năng đặc biệt có thể được mong muốn (như quay lại từ đầu một ổ băng từ, hay xoá màn hình). Đối với tính hiệu quả và tính bảo vệ, người dùng thường không thể điều khiển các thiết bị xuất/nhập trực tiếp. Do đó, hệ điều hành phải cung cấp một phương tiện để thực hiện xuất/nhập..
•Thao tác hệ thống tập tin: hệ thống tập tin có sự quan tâm đặc biệt. Các chương trình cần đọc từ và viết tới các tập tin. Chương trình cũng cần tạo và xoá tập tin bằng tên.
•Giao tiếp: trong nhiều trường hợp, một quá trình cần trao đổi thông tin với các quá trình khác. Giao tiếp như thế có thể xảy ra trong hai cách chính. Cách đầu tiên xảy ra giữa các quá trình được thực thi trên cùng máy tính; cách thứ hai xảy ra giữa hai quá trình đang được thực thi trên các máy tính khác nhau được kết nối với nhau bởi một mạng máy tính. Các giao tiếp có thể được thực hiện bằng bộ nhớ được chia sẻ, hay bằng kỹ thuật truyền thông điệp, trong đó các gói tin được di chuyển giữa các quá trình bởi hệ điều hành.
•Phát hiện lỗi: hệ điều hành liên tục yêu cầu nhận biết các lỗi có thể phát sinh. Các lỗi có thể xảy ra trong CPU và phần cứng bộ nhớ (như lỗi bộ nhớ hay lỗi về điện), trong các thiết bị xuất/nhập (như lỗi chẳn lẻ trên băng từ, lỗi nối kết mạng, hết giấy in) và trong chương trình người dùng (như tràn số học, cố gắng truy xuất một vị trí bộ nhớ không hợp lệ, dùng quá nhiều thời gian CPU). Đối với mỗi loại lỗi, hệ điều hành nên thực hiện một hoạt động hợp lý để đảm bảo tính toán đúng và không đổi.
Ngoài ra, một tập chức năng khác của hệ điều hành tồn tại không giúp người dùng, nhưng đảm bảo các điều hành hữu hiệu của chính hệ thống. Các hệ thống với nhiều người dùng có thể đạt tính hữu hiệu bằng cách chia sẻ tài nguyên máy tính giữa các người dùng.
•Cấp phát tài nguyên: khi nhiều người dùng đăng nhập vào hệ thống hay nhiều công việc đang chạy cùng lúc, tài nguyên phải được cấp tới mỗi người dùng. Nhiều loại tài nguyên khác nhau được quản lý bởi hệ điều hành. Một số tài nguyên (như chu kỳ CPU, bộ nhớ chính, lưu trữ tập tin) có mã cấp phát đặt biệt, trái lại các tài nguyên khác (như thiết bị xuất/nhập) có mã yêu cầu và giải phóng thường hơn. Thí dụ, xác định cách tốt nhất để dùng CPU, hệ điều hành có các thủ tục định thời biểu CPU. Các thủ tục này xem xét tốc độ CPU, các công việc phải được thực thi, số thanh ghi sẳn dùng và các yếu tố khác. Cũng có các thủ tục cấp phát ổ băng từ để dùng cho một công việc. Một thủ tục như thế định vị ổ băng từ chưa được dùng và đánh dấu một bảng bên trong để ghi người dùng mới của ổ băng từ. Một thủ tục khác được dùng để xoá bảng đó. Các thủ tục này cũng có thể cấp phát các máy vẽ, modem, các thiết bị ngoại vi khác.
•Tính toán: chúng ta muốn giữ vết người dùng nào sử dụng bao nhiêu và loại tài nguyên máy tính nào. Giữ vết này có thể được dùng để tính toán (tính tiền người dùng) hay đơn giản thống kê sử dụng. Thống kê sử dụng có thể là công cụ có giá trị cho người nghiên cứu muốn cấu hình lại hệ thống để cải tiến các dịch vụ tính toán.
•Bảo vệ: người sở hữu thông tin được lưu trong hệ thống máy tính đa người dùng muốn điều khiển thông tin này. Khi nhiều quá trình riêng rẻ thực thi đồng hành, không thể cho một quá trình can thiệp tới các quá trình khác hay tới chính hệ điều hành. Bảo vệ đảm bảo rằng tất cả truy xuất tài nguyên của hệ thống được kiểm soát. An toàn hệ thống từ người dùng bên ngoài cũng là vấn đề quan trọng. An toàn bắt đầu với mỗi người dùng có quyền đối với hệ thống, thường bằng mật khẩu để được phép truy xuất tài nguyên. Mở rộng việc bảo vệ đối với các thiết bị xuất/nhập bên ngoài, bao gồm modem, card mạng từ những truy xuất không hợp lệ, và ghi lại các nối kết để phát hiện đột nhập vào hệ thống. Nếu hệ thống bảo vệ và bảo mật, những cảnh báo phải được thiết lập xuyên suốt.
HuynhKhaiThien26(I12A)- Tổng số bài gửi : 12
Join date : 16/02/2012
Age : 34
Đến từ : Long An
Lời gọi hệ thống
Lời gọi hệ thống cung cấp giao diện giữa một quá trình và hệ điều hành. Các lời gọi này thường sẳn dùng như các chỉ thị hợp ngữ và chúng thường được liệt kê trong những tài liệu hướng dẫn sử dụng được dùng bởi những người lập trình hợp ngữ.
Những hệ thống xác định cho phép lời gọi hệ thống được thực hiện trực tiếp từ một chương trình ngôn ngữ cấp cao, trong đó các lời gọi thường tương tự lời gọi hàm hay thủ tục được định nghĩa trước. Chúng có thể tạo ra một lời gọi tới một chương trình con tại thời điểm thực thi cụ thể.
Lời gọi hệ thống xảy ra trong nhiều cách khác nhau, phụ thuộc vào máy tính đang dùng. Thường nhiều thông tin được yêu cầu hơn là đơn giản xác định lời gọi hệ thống mong muốn. Loại chính xác và lượng thông tin khác nhau dựa vào hệ điều hành và lời gọi cụ thể. Thí dụ, để nhập dữ liệu, chúng ta có thể cần xác định tập tin hay thiết bị dùng như nguồn nhập, địa chỉ và chiều dài vùng đệm bộ nhớ mà dữ liệu nhập sẽ được đọc vào. Dĩ nhiên, thiết bị hay tập tin và chiều dài có thể ẩn trong lời gọi.
Có ba phương pháp thông dụng để truyền tham số tới hệ điều hành. Phương pháp đơn giản nhất là truyền tham số trong các thanh ghi. Trong một vài trường hợp, các tham số thường lưu trữ trong một khối hay bảng trong bộ nhớ và địa chỉ của khối được truyền như một tham số trong thanh ghi (Hình 0-1). Các tham số cũng có thể được thay thế, hay được đẩy vào trong ngăn xếp bởi chương trình, và được lấy ra khỏi ngăn xếp bởi hệ điều hành. Một vài hệ điều hành dùng phương pháp khối hay ngăn xếp vì các phương pháp này không giới hạn số lượng hay chiều dài của tham số đang được truyền.
Những hệ thống xác định cho phép lời gọi hệ thống được thực hiện trực tiếp từ một chương trình ngôn ngữ cấp cao, trong đó các lời gọi thường tương tự lời gọi hàm hay thủ tục được định nghĩa trước. Chúng có thể tạo ra một lời gọi tới một chương trình con tại thời điểm thực thi cụ thể.
Lời gọi hệ thống xảy ra trong nhiều cách khác nhau, phụ thuộc vào máy tính đang dùng. Thường nhiều thông tin được yêu cầu hơn là đơn giản xác định lời gọi hệ thống mong muốn. Loại chính xác và lượng thông tin khác nhau dựa vào hệ điều hành và lời gọi cụ thể. Thí dụ, để nhập dữ liệu, chúng ta có thể cần xác định tập tin hay thiết bị dùng như nguồn nhập, địa chỉ và chiều dài vùng đệm bộ nhớ mà dữ liệu nhập sẽ được đọc vào. Dĩ nhiên, thiết bị hay tập tin và chiều dài có thể ẩn trong lời gọi.
Có ba phương pháp thông dụng để truyền tham số tới hệ điều hành. Phương pháp đơn giản nhất là truyền tham số trong các thanh ghi. Trong một vài trường hợp, các tham số thường lưu trữ trong một khối hay bảng trong bộ nhớ và địa chỉ của khối được truyền như một tham số trong thanh ghi (Hình 0-1). Các tham số cũng có thể được thay thế, hay được đẩy vào trong ngăn xếp bởi chương trình, và được lấy ra khỏi ngăn xếp bởi hệ điều hành. Một vài hệ điều hành dùng phương pháp khối hay ngăn xếp vì các phương pháp này không giới hạn số lượng hay chiều dài của tham số đang được truyền.
HuynhKhaiThien26(I12A)- Tổng số bài gửi : 12
Join date : 16/02/2012
Age : 34
Đến từ : Long An
Các chương trình hệ thống
Một khía cạnh khác của hệ thống hiện đại là tập hợp các chương trình hệ thống. Xem lại hình 0-1, nó minh họa cấu trúc phân cấp máy tính luận lý. Tại cấp thấp nhất là phần cứng. Kế đến là hệ điều hành, sau đó các chương trình hệ thống và cuối cùng là các chương trình ứng dụng. Các chương trình hệ thống cung cấp môi trường thuận lợi cho việc phát triển và thực thi chương trình. Vài trong chúng là các giao diện người dùng đơn giản cho các lời gọi hệ thống; các hệ thống còn lại được xem xét phức tạp hơn. Chúng có thể được chia thành các loại sau:
•Quản lý tập tin: các chương trình tạo, xóa, chép, đổi tên, in, kết xuất, liệt kê, và các thao tác tập tin thư mục thông thường.
•Thông tin trạng thái: một vài chương trình đơn giản yêu cầu hệ thống ngày, giờ, lượng bộ nhớ hay đĩa sẳn dùng, số lượng người dùng, hay thông tin trạng thái tương tự. Sau đó, thông tin được định dạng và được in tới thiết bị đầu cuối hay thiết bị xuất khác hoặc tập tin.
•Thay đổi tập tin: nhiều trình soạn thảo văn bản có thể sẳn dùng để tạo và thay đổi nội dung của tập tin được lưu trên đĩa hay băng từ.
•Hỗ trợ ngôn ngữ lập trình: trình biên dịch, trình hợp ngữ và trình thông dịch cho các ngôn ngữ lập trình thông dụng (như C, C++, Java, Visual Basic và PERL) thường được cung cấp tới người dùng với hệ điều hành. Hiện nay, một vài chương trình này được cung cấp riêng và có giá cả riêng.
•Nạp và thực thi chương trình: một khi chương trình được tập hợp hay được biên dịch, nó phải được nạp vào bộ nhớ để được thực thi. Hệ thống có thể cung cấp bộ nạp tuyệt đối, bộ nạp có thể tái định vị, bộ soạn thảo liên kết và bộ nạp phủ lắp. Các hệ thống gỡ rối cho các ngôn ngữ cấp cao hay ngôn ngữ máy cũng được yêu cầu.
•Giao tiếp: các chương trình này cung cấp cơ chế tạo các nối kết ảo giữa các quá trình, người dùng, các hệ thống máy tính khác. Chúng cho phép người dùng gởi các thông điệp tới màn hình của người dùng khác, hiển thị các trang web, gởi thư điện tử, đăng nhập từ xa hay để chuyển các tập tin từ máy tính này tới máy tính khác.
Nhiều hệ điều hành được cung cấp với các chương trình giải quyết các vấn đề giao tiếp thông thường hay thực hiện các thao tác phổ biến. Những chương trình như thế gồm các trình duyệt Web, bộ xử lý văn bản và bộ định dạng văn bản, hệ cơ sở dữ liệu, trình biên dịch, các gói phần mềm đồ họa và phân tích thống kê, trò chơi,..Những chương trình này được gọi là các tiện ích hệ thống hay chương trình ứng dụng.
Hầu hết người dùng nhìn hệ điều hành như các chương trình hệ thống hơn các lời gọi hệ thống thực sự. Nghĩ về việc sử dụng một PC. Khi máy tính của chúng ta chạy hệ điều hành Microsoft Windows, chúng ta có thể thấy một trình thông dịch dòng lệnh MS-DOS hay giao diện cửa sổ và trình đơn đồ họa. Cả hai sử dụng cùng một tập lời gọi hệ thống như lời gọi hệ thống trông rất khác và hoạt động trong các cách khác nhau. Do đó, tầm nhìn của chúng ta về thực chất có thể bị tách rời với cấu trúc hệ thống thực sự. Vì thế, thiết kế một giao diện tiện dụng và thân thiện không là một chức năng trực tiếp của hệ điều hành. Trong giáo trình này chúng ta sẽ tập trung các vấn đề cơ bản của việc cung cấp dịch vụ đầy đủ cho các chương trình người dùng. Từ quan điểm hệ điều hành, chúng ta không phân biệt sự khác nhau giữa các chương trình người dùng và các chương trình hệ thống.
•Quản lý tập tin: các chương trình tạo, xóa, chép, đổi tên, in, kết xuất, liệt kê, và các thao tác tập tin thư mục thông thường.
•Thông tin trạng thái: một vài chương trình đơn giản yêu cầu hệ thống ngày, giờ, lượng bộ nhớ hay đĩa sẳn dùng, số lượng người dùng, hay thông tin trạng thái tương tự. Sau đó, thông tin được định dạng và được in tới thiết bị đầu cuối hay thiết bị xuất khác hoặc tập tin.
•Thay đổi tập tin: nhiều trình soạn thảo văn bản có thể sẳn dùng để tạo và thay đổi nội dung của tập tin được lưu trên đĩa hay băng từ.
•Hỗ trợ ngôn ngữ lập trình: trình biên dịch, trình hợp ngữ và trình thông dịch cho các ngôn ngữ lập trình thông dụng (như C, C++, Java, Visual Basic và PERL) thường được cung cấp tới người dùng với hệ điều hành. Hiện nay, một vài chương trình này được cung cấp riêng và có giá cả riêng.
•Nạp và thực thi chương trình: một khi chương trình được tập hợp hay được biên dịch, nó phải được nạp vào bộ nhớ để được thực thi. Hệ thống có thể cung cấp bộ nạp tuyệt đối, bộ nạp có thể tái định vị, bộ soạn thảo liên kết và bộ nạp phủ lắp. Các hệ thống gỡ rối cho các ngôn ngữ cấp cao hay ngôn ngữ máy cũng được yêu cầu.
•Giao tiếp: các chương trình này cung cấp cơ chế tạo các nối kết ảo giữa các quá trình, người dùng, các hệ thống máy tính khác. Chúng cho phép người dùng gởi các thông điệp tới màn hình của người dùng khác, hiển thị các trang web, gởi thư điện tử, đăng nhập từ xa hay để chuyển các tập tin từ máy tính này tới máy tính khác.
Nhiều hệ điều hành được cung cấp với các chương trình giải quyết các vấn đề giao tiếp thông thường hay thực hiện các thao tác phổ biến. Những chương trình như thế gồm các trình duyệt Web, bộ xử lý văn bản và bộ định dạng văn bản, hệ cơ sở dữ liệu, trình biên dịch, các gói phần mềm đồ họa và phân tích thống kê, trò chơi,..Những chương trình này được gọi là các tiện ích hệ thống hay chương trình ứng dụng.
Hầu hết người dùng nhìn hệ điều hành như các chương trình hệ thống hơn các lời gọi hệ thống thực sự. Nghĩ về việc sử dụng một PC. Khi máy tính của chúng ta chạy hệ điều hành Microsoft Windows, chúng ta có thể thấy một trình thông dịch dòng lệnh MS-DOS hay giao diện cửa sổ và trình đơn đồ họa. Cả hai sử dụng cùng một tập lời gọi hệ thống như lời gọi hệ thống trông rất khác và hoạt động trong các cách khác nhau. Do đó, tầm nhìn của chúng ta về thực chất có thể bị tách rời với cấu trúc hệ thống thực sự. Vì thế, thiết kế một giao diện tiện dụng và thân thiện không là một chức năng trực tiếp của hệ điều hành. Trong giáo trình này chúng ta sẽ tập trung các vấn đề cơ bản của việc cung cấp dịch vụ đầy đủ cho các chương trình người dùng. Từ quan điểm hệ điều hành, chúng ta không phân biệt sự khác nhau giữa các chương trình người dùng và các chương trình hệ thống.
HuynhKhaiThien26(I12A)- Tổng số bài gửi : 12
Join date : 16/02/2012
Age : 34
Đến từ : Long An
Cấu trúc hệ thống
Một hệ thống lớn và phức tạp như một hệ điều hành hiện đại phải được xây dựng cẩn thận nếu nó thực hiện chức năng hợp lý và được hiệu chỉnh dễ dàng. Một phương pháp thông thường là chia tác vụ thành các thành phần nhỏ hơn là có một hệ thống nguyên khối. Mỗi modules này nên là một thành phần hoàn toàn xác định với nhập, xuất, chức năng được định nghĩa cẩn thận. Trong phần này chúng ta sẽ thảo luận về cách thức mà các thành phần được nối kết và trộn lẫn trong một nhân.
1 Cấu trúc đơn giản
Nhiều hệ thống thương mại không có kiến trúc rõ ràng. Thường các hệ điều hành như thế được bắt đầu như các hệ thống nhỏ, đơn giản và có giới hạn. Sau đó chúng lớn lên ngoài giới hạn mã ban đầu của chúng.
MS-DOS là một thí dụ cho hệ thống dạng này. Ban đầu, nó được thiết kế và thực hiện bởi một vài người mà họ không tưởng rằng chúng sẽ trở nên quá phổ biến. Nó được viết để cung cấp các khả năng nhiều nhất trong không gian ít nhất (vì bị giới hạn bởi phần cứng mà nó đang chạy) vì nó không được phân chia thành các modules một cách cẩn thận. Hình II.2, hiển thị cấu trúc của nó.
UNIX là một hệ điều hành khác mà ban đầu nó bị giới hạn bởi chức năng phần cứng. Nó chứa hai phần có thể tách rời nhau: nhân và các chương trình hệ thống. Nhân lại được chia thành một loạt các giao diện và trình điều khiển thiết bị mà chúng được thêm vào và mở rộng qua nhiều năm khi UNIX được cải tiến. Chúng ta có thể hiển thị hệ điều hành UNIX truyền thống khi nó được phân tầng như hình II.3. Mọi thứ bên dưới giao diện lời gọi hệ thống và bên trên phần cứng vật lý là nhân. Nhân cung cấp hệ thống tập tin, bộ định thời CPU, quản lý bộ nhớ và các chức năng khác của hệ điều hành thông qua lời gọi hệ thống. Có rất nhiều chức năng được nối kết trong cấp thứ nhất. Điều này làm cho UNIX khó có thể nâng cấp khi những thay đổi trong phần một ảnh hưởng bất lợi cho những phần khác.
Lời gọi hệ thống định nghĩa giao diện lập trình ứng dụng (API-Application Programming Interface) cho UNIX; tập hợp các chương trình hệ thống thường sẳn dùng định nghĩa giao diện người dùng. Người lập trình và giao diện người dùng định nghĩa ngữ cảnh mà nhân phải hỗ trợ.
Những ấn bản mới của UNIX được thiết kế để dùng phần cứng tiên tiến hơn. Được cung cấp sự hỗ trợ phần cứng hợp lý, các hệ điều hành có thể được chia thành nhiều phần nhỏ hơn và phù hợp hơn là các hệ thống MS-DOS và UNIX ban đầu. Sau đó, các hệ điều hành có thể giữ lại việc điều khiển lớn hơn qua máy tính và qua các ứng dụng thực hiện việc sử dụng máy tính đó. Những người cài đặt thoải mái hơn trong việc thực hiện những thay đổi các hoạt động bên trong của hệ thống và trong việc tạo các hệ điều hành theo module. Dưới phương pháp từ trên-xuống (top-down), toàn bộ các chức năng và đặc điểm được xác định và được chia thành các thành phần. Sự phân chia này cho phép các người lập trình che giấu thông tin; do đó họ tự do cài đặt các thủ tục cấp thấp khi họ thấy thích hợp, được cung cấp các giao diện bên ngoài của các thủ tục không bị thay đổi do chính thủ tục đó thực hiện các tác vụ thông thường.
2 Phương pháp phân tầng
Việc phân chia từng phần của một hệ thống có thể được thực hiện trong nhiều cách. Một trong những phương pháp này là thực hiện tiếp cận phân tầng. Trong tiếp cận này hệ điều hành được chia thành nhiều tầng (hay cấp), mỗi tầng được xây dựng trên đỉnh của tầng dưới nó. Tầng cuối cùng (tầng 0) là phần cứng; tầng cao nhất (tầng N) là giao diện người dùng.
Một tầng hệ điều hành là sự cài đặt của một đối tượng trừu tượng. Đối tượng trừu tượng này là sự bao gói dữ liệu và các điều hành có thể thao tác dữ liệu đó. Một tầng hệ điều hành điển hình –tầng M- được mô tả trong hình II.4. Nó chứa các cấu trúc dữ liệu và tập hợp các thủ tục có thể được gọi bởi các tầng cấp cao hơn. Sau đó, tầng M có thể gọi các thao tác trên tầng cấp thấp hơn.
Lợi điểm chủ yếu của tiếp cận phân tầng là tính module. Các tầng được chọn dựa trên cơ sở tầng trên sử dụng chức năng (hay các điều hành) và các dịch vụ chỉ của tầng cấp dưới nó. Tiếp cận này đơn giản hóa việc gỡ rối và kiểm tra hệ thống. Tầng đầu tiên có thể được gỡ rối mà không có bất cứ sự quan tâm nào cho phần còn lại của hệ thống. Bởi vì theo định nghĩa, nó chỉ sử dụng phần cứng cơ bản để cài đặt các chức năng của nó. Một khi tầng đầu tiên được gỡ rối, chức năng sửa lỗi của nó có thể được đảm đương trong khi tầng thứ hai được gỡ rối, …Nếu một lỗi được tìm thấy trong khi gỡ rối cho một tầng xác định, lỗi phải được nằm trên tầng đó vì các tầng bên dưới đã được gỡ rối rồi. Do đó, thiết kế và cài đặt hệ thống được đơn giản hóa khi hệ thống được phân chia thành nhiều tầng.
Mỗi tầng được cài đặt chỉ với các thao tác được cung cấp bởi các tầng bên dưới. Một tầng không cần biết các thao tác được cài đặt như thế nào; nó chỉ cần biết các thao tác đó làm gì. Do đó, mỗi tầng che giấu sự tồn tại của cấu trúc dữ liệu, thao tác và phần cứng từ các tầng cấp cao hơn.
Khó khăn chính của tiếp cận phân tầng liên quan tới việc định nghĩa cẩn thận các tầng vì một tầng chỉ có thể sử dụng các tầng bên dưới nó. Thí dụ, trình điều khiển thiết bị cho không gian đĩa được dùng bởi các giải thuật bộ nhớ ảo phải nằm ở tại cấp thấp hơn trình điều khiển thiết bị của các thủ tục quản lý bộ nhớ vì quản lý bộ nhớ yêu cầu khả năng sử dụng không gian đĩa.
Các yêu cầu có thể không thật sự rõ ràng. Thường thì các trình điều khiển lưu trữ dự phòng nằm trên bộ định thời CPU vì trình điều khiển cần phải chờ nhập/xuất và CPU có thể được định thời lại trong thời gian này. Tuy nhiên, trên hệ thống lớn, bộ định thời có thể có nhiều thông tin hơn về tất cả quá trình đang hoạt động hơn là có thể đặt vừa trong bộ nhớ. Do đó, thông tin này có thể cần được hoán vị vào và ra bộ nhớ, yêu cầu thủ tục trình điều khiển lưu trữ dự phòng nằm bên dưới bộ định thời CPU.
Vấn đề cuối cùng với các cài đặt phân tầng là chúng có khuynh hướng ít hiệu quả hơn các loại khác. Thí dụ, khi chương trình người dùng thực thi thao tác nhập/xuất, nó thực thi một lời gọi hệ thống. Lời gọi hệ thống này được bẫy (trapped) tới tầng nhập/xuất, nó yêu cầu tầng quản lý bộ nhớ, sau đó gọi tầng định thời CPU, sau đó được truyền tới phần cứng. Tại mỗi tầng, các tham số có thể được hiệu chỉnh, dữ liệu có thể được truyền,…Mỗi tầng thêm chi phí cho lời gọi hệ thống; kết quả thực sự là lời gọi hệ thống mất thời gian lâu hơn khi chúng thực hiện trên hệ thống không phân tầng.
Những giới hạn này gây một phản ứng nhỏ chống lại việc phân tầng trong những năm gần đây. Rất ít các tầng với nhiều chức năng được thiết kế, cung cấp nhiều lợi điểm của mã được module trong khi tránh những vấn đề khó khăn của định nghĩa và giao tiếp tầng. Thí dụ, OS/2 bổ sung thêm tính năng đa tác vụ và điều hành hai chế độ cùng một số đặc điểm mới. Vì tính phức tạp được bổ sung và phần cứng mạnh hơn mà OS/2 được thiết kế, hệ thống được cài đặt trong dạng phân tầng.
3 Vi nhân (Microkernels)
Khi hệ điều hành UNIX được mở rộng, nhân trở nên lớn và khó quản lý. Vào giữa những năm 1980, các nhà nghiên cứu tại đại học Carnegie Mellon phát triển một hệ điều hành được gọi là Match mà module hóa nhân dùng tiếp cận vi nhân (micro kernel). Phương pháp này định kiến trúc của hệ điều hành bằng xóa tất cả thành phần không quan trọng từ nhân và cài chúng như các chương trình cấp người dùng và hệ thống. Kết quả này làm cho nhân nhỏ hơn. Có rất ít sự nhất trí liên quan đến việc quyết định dịch vụ nào nên để lại trong nhân và dịch vụ nào nên được cài đặt trong không gian người dùng. Tuy nhiên, thường thì các vi nhân điển hình cung cấp quá trình và quản lý bộ nhớ tối thiểu ngoài phương tiện giao tiếp.
Chức năng chính của vi nhân là cung cấp tiện nghi giao tiếp giữa chương trình khách hàng và các dịch vụ khác mà chúng đang chạy trong không gian người dùng. Giao tiếp được cung cấp bằng truyền thông điệp. Thí dụ, nếu chương trình khách hàng muốn truy xuất một tập tin, nó phải giao tiếp với trình phục vụ tập tin (file server). Chương trình người dùng và dịch vụ không bao giờ giao tiếp trực tiếp. Đúng hơn là chúng giao tiếp gián tiếp bằng cách truyền thông điệp với vi nhân.
Thuận lợi của tiếp cận vi nhân là dễ dàng mở rộng hệ điều hành. Tất cả dịch vụ mới được thêm tới không gian người dùng và do đó không yêu cầu phải hiệu chỉnh nhân. Kết quả là hệ điều hành dễ dàng hơn để chuyển đổi từ thiết kế phần cứng này sang thiết kế phần cứng khác. Vi nhân cũng cung cấp khả năng an toàn và tin cậy hơn vì hầu hết các dịch vụ đang chạy như người dùng –hơn là nhân- các quá trình. Nếu một dịch vụ bị lỗi, phần còn lại của hệ điều hành vẫn không bị ảnh hưởng.
Một số hệ điều hành hiện đại dùng tiếp cận vi nhân. Tru64 UNIX (Digital UNIX trước đây) cung cấp giao diện UNIX tới người dùng, nhưng nó được cài đặt với nhân Mach. Nhân Mach ánh xạ các lời gọi hệ thống vào các thông điệp tới các dịch vụ cấp người dùng tương ứng. Hệ điều hành Apple MacOS Server được dựa trên cơ sở nhân Mach.
QNX là hệ điều hành thời thực cũng dựa trên cơ sở thiết kế vi nhân. Vi nhân QNX cung cấp các dịch vụ cho việc truyền thông điệp và định thời quá trình. Nó cũng quản lý giao tiếp mạng cấp thấp và các ngắt phần cứng. Tất cả dịch vụ khác trong QNX được cung cấp bởi các quá trình chuẩn chạy bên ngoài nhân trong chế độ người dùng.
Windows NT dùng một cấu trúc tổng hợp. Windows NT được thiết kế để chạy các ứng dụng khác nhau, gồm Win32 (ứng dụng thuần Windows), OS/2, và POSIX (Portable Operating System Interface for uniX). Nó cung cấp một server chạy trong không gian người dùng cho mỗi loại ứng dụng. Các chương trình khách hàng cho mỗi loại ứng dụng chạy trong không gian người dùng. Nhân điều phối việc truyền thông điệp giữa các ứng dụng khách hàng và server ứng dụng. Cấu trúc client-server của Windows NT được mô tả trong hình II.6
1 Cấu trúc đơn giản
Nhiều hệ thống thương mại không có kiến trúc rõ ràng. Thường các hệ điều hành như thế được bắt đầu như các hệ thống nhỏ, đơn giản và có giới hạn. Sau đó chúng lớn lên ngoài giới hạn mã ban đầu của chúng.
MS-DOS là một thí dụ cho hệ thống dạng này. Ban đầu, nó được thiết kế và thực hiện bởi một vài người mà họ không tưởng rằng chúng sẽ trở nên quá phổ biến. Nó được viết để cung cấp các khả năng nhiều nhất trong không gian ít nhất (vì bị giới hạn bởi phần cứng mà nó đang chạy) vì nó không được phân chia thành các modules một cách cẩn thận. Hình II.2, hiển thị cấu trúc của nó.
UNIX là một hệ điều hành khác mà ban đầu nó bị giới hạn bởi chức năng phần cứng. Nó chứa hai phần có thể tách rời nhau: nhân và các chương trình hệ thống. Nhân lại được chia thành một loạt các giao diện và trình điều khiển thiết bị mà chúng được thêm vào và mở rộng qua nhiều năm khi UNIX được cải tiến. Chúng ta có thể hiển thị hệ điều hành UNIX truyền thống khi nó được phân tầng như hình II.3. Mọi thứ bên dưới giao diện lời gọi hệ thống và bên trên phần cứng vật lý là nhân. Nhân cung cấp hệ thống tập tin, bộ định thời CPU, quản lý bộ nhớ và các chức năng khác của hệ điều hành thông qua lời gọi hệ thống. Có rất nhiều chức năng được nối kết trong cấp thứ nhất. Điều này làm cho UNIX khó có thể nâng cấp khi những thay đổi trong phần một ảnh hưởng bất lợi cho những phần khác.
Lời gọi hệ thống định nghĩa giao diện lập trình ứng dụng (API-Application Programming Interface) cho UNIX; tập hợp các chương trình hệ thống thường sẳn dùng định nghĩa giao diện người dùng. Người lập trình và giao diện người dùng định nghĩa ngữ cảnh mà nhân phải hỗ trợ.
Những ấn bản mới của UNIX được thiết kế để dùng phần cứng tiên tiến hơn. Được cung cấp sự hỗ trợ phần cứng hợp lý, các hệ điều hành có thể được chia thành nhiều phần nhỏ hơn và phù hợp hơn là các hệ thống MS-DOS và UNIX ban đầu. Sau đó, các hệ điều hành có thể giữ lại việc điều khiển lớn hơn qua máy tính và qua các ứng dụng thực hiện việc sử dụng máy tính đó. Những người cài đặt thoải mái hơn trong việc thực hiện những thay đổi các hoạt động bên trong của hệ thống và trong việc tạo các hệ điều hành theo module. Dưới phương pháp từ trên-xuống (top-down), toàn bộ các chức năng và đặc điểm được xác định và được chia thành các thành phần. Sự phân chia này cho phép các người lập trình che giấu thông tin; do đó họ tự do cài đặt các thủ tục cấp thấp khi họ thấy thích hợp, được cung cấp các giao diện bên ngoài của các thủ tục không bị thay đổi do chính thủ tục đó thực hiện các tác vụ thông thường.
2 Phương pháp phân tầng
Việc phân chia từng phần của một hệ thống có thể được thực hiện trong nhiều cách. Một trong những phương pháp này là thực hiện tiếp cận phân tầng. Trong tiếp cận này hệ điều hành được chia thành nhiều tầng (hay cấp), mỗi tầng được xây dựng trên đỉnh của tầng dưới nó. Tầng cuối cùng (tầng 0) là phần cứng; tầng cao nhất (tầng N) là giao diện người dùng.
Một tầng hệ điều hành là sự cài đặt của một đối tượng trừu tượng. Đối tượng trừu tượng này là sự bao gói dữ liệu và các điều hành có thể thao tác dữ liệu đó. Một tầng hệ điều hành điển hình –tầng M- được mô tả trong hình II.4. Nó chứa các cấu trúc dữ liệu và tập hợp các thủ tục có thể được gọi bởi các tầng cấp cao hơn. Sau đó, tầng M có thể gọi các thao tác trên tầng cấp thấp hơn.
Lợi điểm chủ yếu của tiếp cận phân tầng là tính module. Các tầng được chọn dựa trên cơ sở tầng trên sử dụng chức năng (hay các điều hành) và các dịch vụ chỉ của tầng cấp dưới nó. Tiếp cận này đơn giản hóa việc gỡ rối và kiểm tra hệ thống. Tầng đầu tiên có thể được gỡ rối mà không có bất cứ sự quan tâm nào cho phần còn lại của hệ thống. Bởi vì theo định nghĩa, nó chỉ sử dụng phần cứng cơ bản để cài đặt các chức năng của nó. Một khi tầng đầu tiên được gỡ rối, chức năng sửa lỗi của nó có thể được đảm đương trong khi tầng thứ hai được gỡ rối, …Nếu một lỗi được tìm thấy trong khi gỡ rối cho một tầng xác định, lỗi phải được nằm trên tầng đó vì các tầng bên dưới đã được gỡ rối rồi. Do đó, thiết kế và cài đặt hệ thống được đơn giản hóa khi hệ thống được phân chia thành nhiều tầng.
Mỗi tầng được cài đặt chỉ với các thao tác được cung cấp bởi các tầng bên dưới. Một tầng không cần biết các thao tác được cài đặt như thế nào; nó chỉ cần biết các thao tác đó làm gì. Do đó, mỗi tầng che giấu sự tồn tại của cấu trúc dữ liệu, thao tác và phần cứng từ các tầng cấp cao hơn.
Khó khăn chính của tiếp cận phân tầng liên quan tới việc định nghĩa cẩn thận các tầng vì một tầng chỉ có thể sử dụng các tầng bên dưới nó. Thí dụ, trình điều khiển thiết bị cho không gian đĩa được dùng bởi các giải thuật bộ nhớ ảo phải nằm ở tại cấp thấp hơn trình điều khiển thiết bị của các thủ tục quản lý bộ nhớ vì quản lý bộ nhớ yêu cầu khả năng sử dụng không gian đĩa.
Các yêu cầu có thể không thật sự rõ ràng. Thường thì các trình điều khiển lưu trữ dự phòng nằm trên bộ định thời CPU vì trình điều khiển cần phải chờ nhập/xuất và CPU có thể được định thời lại trong thời gian này. Tuy nhiên, trên hệ thống lớn, bộ định thời có thể có nhiều thông tin hơn về tất cả quá trình đang hoạt động hơn là có thể đặt vừa trong bộ nhớ. Do đó, thông tin này có thể cần được hoán vị vào và ra bộ nhớ, yêu cầu thủ tục trình điều khiển lưu trữ dự phòng nằm bên dưới bộ định thời CPU.
Vấn đề cuối cùng với các cài đặt phân tầng là chúng có khuynh hướng ít hiệu quả hơn các loại khác. Thí dụ, khi chương trình người dùng thực thi thao tác nhập/xuất, nó thực thi một lời gọi hệ thống. Lời gọi hệ thống này được bẫy (trapped) tới tầng nhập/xuất, nó yêu cầu tầng quản lý bộ nhớ, sau đó gọi tầng định thời CPU, sau đó được truyền tới phần cứng. Tại mỗi tầng, các tham số có thể được hiệu chỉnh, dữ liệu có thể được truyền,…Mỗi tầng thêm chi phí cho lời gọi hệ thống; kết quả thực sự là lời gọi hệ thống mất thời gian lâu hơn khi chúng thực hiện trên hệ thống không phân tầng.
Những giới hạn này gây một phản ứng nhỏ chống lại việc phân tầng trong những năm gần đây. Rất ít các tầng với nhiều chức năng được thiết kế, cung cấp nhiều lợi điểm của mã được module trong khi tránh những vấn đề khó khăn của định nghĩa và giao tiếp tầng. Thí dụ, OS/2 bổ sung thêm tính năng đa tác vụ và điều hành hai chế độ cùng một số đặc điểm mới. Vì tính phức tạp được bổ sung và phần cứng mạnh hơn mà OS/2 được thiết kế, hệ thống được cài đặt trong dạng phân tầng.
3 Vi nhân (Microkernels)
Khi hệ điều hành UNIX được mở rộng, nhân trở nên lớn và khó quản lý. Vào giữa những năm 1980, các nhà nghiên cứu tại đại học Carnegie Mellon phát triển một hệ điều hành được gọi là Match mà module hóa nhân dùng tiếp cận vi nhân (micro kernel). Phương pháp này định kiến trúc của hệ điều hành bằng xóa tất cả thành phần không quan trọng từ nhân và cài chúng như các chương trình cấp người dùng và hệ thống. Kết quả này làm cho nhân nhỏ hơn. Có rất ít sự nhất trí liên quan đến việc quyết định dịch vụ nào nên để lại trong nhân và dịch vụ nào nên được cài đặt trong không gian người dùng. Tuy nhiên, thường thì các vi nhân điển hình cung cấp quá trình và quản lý bộ nhớ tối thiểu ngoài phương tiện giao tiếp.
Chức năng chính của vi nhân là cung cấp tiện nghi giao tiếp giữa chương trình khách hàng và các dịch vụ khác mà chúng đang chạy trong không gian người dùng. Giao tiếp được cung cấp bằng truyền thông điệp. Thí dụ, nếu chương trình khách hàng muốn truy xuất một tập tin, nó phải giao tiếp với trình phục vụ tập tin (file server). Chương trình người dùng và dịch vụ không bao giờ giao tiếp trực tiếp. Đúng hơn là chúng giao tiếp gián tiếp bằng cách truyền thông điệp với vi nhân.
Thuận lợi của tiếp cận vi nhân là dễ dàng mở rộng hệ điều hành. Tất cả dịch vụ mới được thêm tới không gian người dùng và do đó không yêu cầu phải hiệu chỉnh nhân. Kết quả là hệ điều hành dễ dàng hơn để chuyển đổi từ thiết kế phần cứng này sang thiết kế phần cứng khác. Vi nhân cũng cung cấp khả năng an toàn và tin cậy hơn vì hầu hết các dịch vụ đang chạy như người dùng –hơn là nhân- các quá trình. Nếu một dịch vụ bị lỗi, phần còn lại của hệ điều hành vẫn không bị ảnh hưởng.
Một số hệ điều hành hiện đại dùng tiếp cận vi nhân. Tru64 UNIX (Digital UNIX trước đây) cung cấp giao diện UNIX tới người dùng, nhưng nó được cài đặt với nhân Mach. Nhân Mach ánh xạ các lời gọi hệ thống vào các thông điệp tới các dịch vụ cấp người dùng tương ứng. Hệ điều hành Apple MacOS Server được dựa trên cơ sở nhân Mach.
QNX là hệ điều hành thời thực cũng dựa trên cơ sở thiết kế vi nhân. Vi nhân QNX cung cấp các dịch vụ cho việc truyền thông điệp và định thời quá trình. Nó cũng quản lý giao tiếp mạng cấp thấp và các ngắt phần cứng. Tất cả dịch vụ khác trong QNX được cung cấp bởi các quá trình chuẩn chạy bên ngoài nhân trong chế độ người dùng.
Windows NT dùng một cấu trúc tổng hợp. Windows NT được thiết kế để chạy các ứng dụng khác nhau, gồm Win32 (ứng dụng thuần Windows), OS/2, và POSIX (Portable Operating System Interface for uniX). Nó cung cấp một server chạy trong không gian người dùng cho mỗi loại ứng dụng. Các chương trình khách hàng cho mỗi loại ứng dụng chạy trong không gian người dùng. Nhân điều phối việc truyền thông điệp giữa các ứng dụng khách hàng và server ứng dụng. Cấu trúc client-server của Windows NT được mô tả trong hình II.6
HuynhKhaiThien26(I12A)- Tổng số bài gửi : 12
Join date : 16/02/2012
Age : 34
Đến từ : Long An
Máy ảo
Về mặt khái niệm, một hệ thống máy tính được cấu thành từ các tầng. Phần cứng là cấp thấp nhất trong tất cả hệ thống như thế. Nhân chạy tại cấp kế tiếp dùng các chỉ thị phần cứng để tạo một tập lời gọi hệ thống cho việc sử dụng các tầng bên ngoài. Do đó, các chương trình hệ thống trên nhân có thể dùng các lời gọi hệ thống hay các chỉ thị phần cứng. Trong nhiều trường hợp, các chương trình này không có sự khác biệt giữa hai cách thực hiện. Do đó, mặc dù chúng được truy xuất khác nhau, nhưng cả hai cung cấp chức năng mà chương trình có thể dùng để tạo thậm chí nhiều chức năng tiên tiến hơn. Sau đó, các chương trình hệ thống xem phần cứng và các lời gọi hệ thống như chúng đang ở cùng một cấp.
Một vài hệ thống thực hiện cơ chế này một cách chi tiết hơn bằng cách cho phép các chương trình hệ thống được gọi dễ dàng bởi các chương trình ứng dụng. Trước đó, mặc dù các chương trình hệ thống ở tại cấp cao hơn các thủ tục khác, nhưng các chương trình ứng dụng có thể hiển thị mọi thứ dưới chúng trong cấu trúc phân cấp như là một phần của chính máy đó. Tiếp cận phân tầng này được đưa đến một kết luận luận lý trong khái niệm máy ảo (virtual machine). Một hệ điều hành máy ảo cho các hệ thống IBM là một thí dụ điển hình nhất về khái niệm máy ảo vì IBM tiên phong thực hiện trong lĩnh vực này.
Bằng cách sử dụng bộ định thời CPU và kỹ thuật bộ nhớ ảo, một hệ điều hành có thể tạo một hình ảnh mà một quá trình có bộ xử lý của chính nó với bộ nhớ (ảo) của chính nó. Dĩ nhiên, thường thì một quá trình có các đặc điểm khác nhau, như các lời gọi hệ thống và hệ thống tập tin, mà không được cung cấp bởi phần cứng trơ. Thêm vào đó, tiếp cận máy ảo không cung cấp bất kỳ chức năng bổ sung nào; nhưng đúng hơn là cung cấp một giao diện giống hệt như phần cứng trơ ở bên dưới. Mỗi quá trình được cung cấp với một bản sao (ảo) của máy tính bên dưới (Hình II.7).
Một khó khăn chính với tiếp cận máy ảo liên quan đến hệ thống đĩa. Giả sử rằng máy vật lý có ba ổ đĩa nhưng muốn hỗ trợ bảy máy ảo. Rõ ràng, nó không thể cấp phát một ổ đĩa tới mỗi máy ảo. Nhớ rằng chính phần mềm máy ảo sẽ cần không gian đĩa liên tục để cung cấp bộ nhớ ảo. Giải pháp này cung cấp đĩa ảo, mà nó đúng trong tất cả khía cạnh ngoại trừ kích thước-được thuật ngữ hóa đĩa nhỏ (minidisks) trong hệ điều hành máy ảo của IBM. Hệ thống cài đặt nhiều đĩa nhỏ bằng cách cấp phát nhiều rảnh ghi trên đĩa vật lý như là các đĩa nhỏ khi cần. Hiển nhiên, tổng kích thước của tất cả đĩa nhỏ là nhỏ hơn kích thước của không gian đĩa vật lý sẳn có.
Do đó, người dùng được cho máy ảo của chính họ. Sau đó, họ có thể chạy bất kỳ hệ điều hành hay gói phần mềm nào sẳn dùng trên phần cứng bên dưới. Đối với hệ thống IBM VM, một người dùng thường chạy CMS-một hệ điều hành giao tiếp đơn người dùng. Phần mềm máy ảo được quan tâm với đa máy ảo đa chương trên một máy vật lý nhưng không cần xem xét bất cứ phần mềm hỗ trợ người dùng. Việc sắp xếp này có thể cung cấp một sự phân chia hữu ích thành hai phần nhỏ hơn của vấn đề thiết kế một hệ thống giao tiếp đa người dùng.
1 Cài đặt
Mặc dù khái niệm máy ảo là hữu ích nhưng rất khó cài đặt. Nhiều công việc được yêu cầu cung cấp một bản sao chính xác của máy bên dưới. Máy bên dưới có hai chế độ: chế độ người dùng và chế độ kiểm soát. Phần mềm máy ảo có thể chạy trong chế độ kiểm soát vì nó là hệ điều hành. Chính máy ảo có thể thực thi chỉ trong chế độ người dùng. Tuy nhiên, chỉ khi máy vật lý có hai chế độ thì nó mới là máy ảo. Do đó, chúng ta phải có một chế độ người dùng ảo và một chế độ kiểm soát ảo. Cả hai đều chạy trong chế độ người dùng vật lý. Các hoạt động đó gây ra sự chuyển từ chế độ người dùng tới chế độ kiểm soát trên một máy thật (như lời gọi hệ thống hay cố gắng thực thi một chỉ thị được cấp quyền) cũng phải gây ra sự chuyển đổi từ chế độ người dùng ảo tới chế độ kiểm soát ảo trên một máy ảo.
2 Lợi điểm
Có hai lợi điểm chính trong việc sử dụng máy ảo. Thứ nhất, bằng cách bảo vệ hoàn toàn các tài nguyên hệ thống, máy ảo cung cấp mức độ bảo mật cao. Thứ hai, máy ảo cho phép phát triển hệ thống được thực hiện mà không cần phá vỡ hoạt động hệ thống thông thường.
Mỗi máy ảo hoàn toàn bị cô lập từ các máy ảo khác, vì thế chúng ta không gặp phải bất kỳ vấn đề bảo mật nào như tài nguyên hệ thống khác hoàn toàn được bảo vệ. Thí dụ, các ứng dụng không được tin cậy được tải về từ Internet có thể được chạy trong một máy ảo riêng. Một bất lợi của môi trường này là không có sự chia sẻ tài nguyên trực tiếp. Hai tiếp cận cung cấp sự chia sẻ được cài đặt. Thứ nhất, có thể chia sẻ một đĩa nhỏ. Cơ chế này được làm mẫu sau một đĩa được chia sẻ vật lý. Thứ hai, có thể định nghĩa một mạng của các máy ảo, mỗi máy ảo có thể gửi thông tin qua các mạng giao tiếp này nhưng nó được cài đặt bằng phần mềm.
Những hệ thống máy ảo như thế là một phương tiện truyền thông hữu hiệu cho việc nghiên cứu và phát triển hệ điều hành. Thông thường, thay đổi một hệ điều hành là một tác vụ khó. Vì các hệ điều hành là các chương trình lớn và phức tạp, sự thay đổi trên một phần này có thể gây một lỗi khó hiểu trong những phần khác. Sức mạnh của hệ điều hành làm cho trường hợp này là cực kỳ nguy hiểm. Vì hệ điều hành thực thi trong chế độ kiểm soát, một thay đổi sai trong một con trỏ có thể gây lỗi và có thể phá hủy toàn hệ thống tập tin. Do đó, cần phải kiểm tra tất cả thay đổi của hệ điều hành một cách cẩn thận.
Tuy nhiên, hệ điều hành chạy trên máy và điều khiển hoàn toàn máy đó. Do đó, hệ thống hiện hành phải bị dừng và ngừng việc sử dụng trong khi những thay đổi được thực hiện và kiểm tra. Thời điểm này thường được gọi là thời gian phát triển hệ thống. Vì nó làm cho hệ thống không sẳn dùng đối với người sử dụng nên thời gian phát triển hệ thống thường được lập thời biểu vào buổi tối hay cuối tuần, khi tải hệ thống thấp.
Một hệ thống máy ảo có thể loại trừ nhiều vấn đề này. Người lập trình hệ thống được cung cấp chính máy ảo của họ, và phát triển hệ thống được thực hiện trên máy ảo thay vì trên máy vật lý thật sự. Một hệ điều hành thông thường ít khi bị phá vỡ vì phát triển hệ thống. Mặc dù những thuận lợi này, nhưng rất ít cải tiến trên kỹ thuật này được thực hiện gần đây.
Tóm tắt
Hệ điều hành cung cấp một số dịch vụ. Tại cấp thấp nhất, lời gọi hệ thống cho phép một chương trình đang chạy thực hiện yêu cầu trực tiếp từ hệ thống. Tại cấp cao hơn, trình thông dịch cung cấp cơ chế cho người dùng đưa ra yêu cầu mà không viết chương trình. Các lệnh có thể xuất phát từ tập tin trong suốt thời gian thực thi theo chế độ xử lý theo lô, hay trực tiếp từ bàn phím trong chế độ tương tác hay chia sẻ thời gian. Các chương trình hệ thống được cung cấp để thoả mãn nhiều yêu cầu thông thường của người dùng.
Các loại yêu cầu khác nhau dựa theo cấp yêu cầu. Cấp gọi hệ thống phải cung cấp các chức năng cơ bản, như điều khiển quá trình, quản lý tập tin và thiết bị. Các yêu cầu cấp cao hơn được thoả mãn bởi trình thông dịch lệnh và chương trình hệ thống được dịch vào một chuỗi các lời gọi hệ thống. Các dịch vụ hệ thống có thể được phân cấp thành nhiều loại: điều khiển chương trình, yêu cầu trạng thái, yêu cầu nhập/xuất. Lỗi chương trình được xem xét các yêu cầu ẩn cho dịch vụ.
Một khi dịch vụ hệ thống được định nghĩa, cấu trúc của hệ điều hành được phát triển. Các bảng khác nhau cần được ghi thông tin định nghĩa trạng thái của hệ thống máy tính và trạng thái của công việc hệ thống.
Thiết kế một hệ điều hành mới là công việc rất quan trọng. Thiết kế hệ thống như thứ tự của các tầng hay sử dụng vi nhân được xem là một kỹ thuật tốt. Khái niệm máy ảo thực hiện tiếp cận phân tầng và xem nhân của hệ điều hành và phần cứng như là phần cứng của nó. Các hệ điều hành khác có thể được nạp trên đỉnh của máy ảo.
Một vài hệ thống thực hiện cơ chế này một cách chi tiết hơn bằng cách cho phép các chương trình hệ thống được gọi dễ dàng bởi các chương trình ứng dụng. Trước đó, mặc dù các chương trình hệ thống ở tại cấp cao hơn các thủ tục khác, nhưng các chương trình ứng dụng có thể hiển thị mọi thứ dưới chúng trong cấu trúc phân cấp như là một phần của chính máy đó. Tiếp cận phân tầng này được đưa đến một kết luận luận lý trong khái niệm máy ảo (virtual machine). Một hệ điều hành máy ảo cho các hệ thống IBM là một thí dụ điển hình nhất về khái niệm máy ảo vì IBM tiên phong thực hiện trong lĩnh vực này.
Bằng cách sử dụng bộ định thời CPU và kỹ thuật bộ nhớ ảo, một hệ điều hành có thể tạo một hình ảnh mà một quá trình có bộ xử lý của chính nó với bộ nhớ (ảo) của chính nó. Dĩ nhiên, thường thì một quá trình có các đặc điểm khác nhau, như các lời gọi hệ thống và hệ thống tập tin, mà không được cung cấp bởi phần cứng trơ. Thêm vào đó, tiếp cận máy ảo không cung cấp bất kỳ chức năng bổ sung nào; nhưng đúng hơn là cung cấp một giao diện giống hệt như phần cứng trơ ở bên dưới. Mỗi quá trình được cung cấp với một bản sao (ảo) của máy tính bên dưới (Hình II.7).
Một khó khăn chính với tiếp cận máy ảo liên quan đến hệ thống đĩa. Giả sử rằng máy vật lý có ba ổ đĩa nhưng muốn hỗ trợ bảy máy ảo. Rõ ràng, nó không thể cấp phát một ổ đĩa tới mỗi máy ảo. Nhớ rằng chính phần mềm máy ảo sẽ cần không gian đĩa liên tục để cung cấp bộ nhớ ảo. Giải pháp này cung cấp đĩa ảo, mà nó đúng trong tất cả khía cạnh ngoại trừ kích thước-được thuật ngữ hóa đĩa nhỏ (minidisks) trong hệ điều hành máy ảo của IBM. Hệ thống cài đặt nhiều đĩa nhỏ bằng cách cấp phát nhiều rảnh ghi trên đĩa vật lý như là các đĩa nhỏ khi cần. Hiển nhiên, tổng kích thước của tất cả đĩa nhỏ là nhỏ hơn kích thước của không gian đĩa vật lý sẳn có.
Do đó, người dùng được cho máy ảo của chính họ. Sau đó, họ có thể chạy bất kỳ hệ điều hành hay gói phần mềm nào sẳn dùng trên phần cứng bên dưới. Đối với hệ thống IBM VM, một người dùng thường chạy CMS-một hệ điều hành giao tiếp đơn người dùng. Phần mềm máy ảo được quan tâm với đa máy ảo đa chương trên một máy vật lý nhưng không cần xem xét bất cứ phần mềm hỗ trợ người dùng. Việc sắp xếp này có thể cung cấp một sự phân chia hữu ích thành hai phần nhỏ hơn của vấn đề thiết kế một hệ thống giao tiếp đa người dùng.
1 Cài đặt
Mặc dù khái niệm máy ảo là hữu ích nhưng rất khó cài đặt. Nhiều công việc được yêu cầu cung cấp một bản sao chính xác của máy bên dưới. Máy bên dưới có hai chế độ: chế độ người dùng và chế độ kiểm soát. Phần mềm máy ảo có thể chạy trong chế độ kiểm soát vì nó là hệ điều hành. Chính máy ảo có thể thực thi chỉ trong chế độ người dùng. Tuy nhiên, chỉ khi máy vật lý có hai chế độ thì nó mới là máy ảo. Do đó, chúng ta phải có một chế độ người dùng ảo và một chế độ kiểm soát ảo. Cả hai đều chạy trong chế độ người dùng vật lý. Các hoạt động đó gây ra sự chuyển từ chế độ người dùng tới chế độ kiểm soát trên một máy thật (như lời gọi hệ thống hay cố gắng thực thi một chỉ thị được cấp quyền) cũng phải gây ra sự chuyển đổi từ chế độ người dùng ảo tới chế độ kiểm soát ảo trên một máy ảo.
2 Lợi điểm
Có hai lợi điểm chính trong việc sử dụng máy ảo. Thứ nhất, bằng cách bảo vệ hoàn toàn các tài nguyên hệ thống, máy ảo cung cấp mức độ bảo mật cao. Thứ hai, máy ảo cho phép phát triển hệ thống được thực hiện mà không cần phá vỡ hoạt động hệ thống thông thường.
Mỗi máy ảo hoàn toàn bị cô lập từ các máy ảo khác, vì thế chúng ta không gặp phải bất kỳ vấn đề bảo mật nào như tài nguyên hệ thống khác hoàn toàn được bảo vệ. Thí dụ, các ứng dụng không được tin cậy được tải về từ Internet có thể được chạy trong một máy ảo riêng. Một bất lợi của môi trường này là không có sự chia sẻ tài nguyên trực tiếp. Hai tiếp cận cung cấp sự chia sẻ được cài đặt. Thứ nhất, có thể chia sẻ một đĩa nhỏ. Cơ chế này được làm mẫu sau một đĩa được chia sẻ vật lý. Thứ hai, có thể định nghĩa một mạng của các máy ảo, mỗi máy ảo có thể gửi thông tin qua các mạng giao tiếp này nhưng nó được cài đặt bằng phần mềm.
Những hệ thống máy ảo như thế là một phương tiện truyền thông hữu hiệu cho việc nghiên cứu và phát triển hệ điều hành. Thông thường, thay đổi một hệ điều hành là một tác vụ khó. Vì các hệ điều hành là các chương trình lớn và phức tạp, sự thay đổi trên một phần này có thể gây một lỗi khó hiểu trong những phần khác. Sức mạnh của hệ điều hành làm cho trường hợp này là cực kỳ nguy hiểm. Vì hệ điều hành thực thi trong chế độ kiểm soát, một thay đổi sai trong một con trỏ có thể gây lỗi và có thể phá hủy toàn hệ thống tập tin. Do đó, cần phải kiểm tra tất cả thay đổi của hệ điều hành một cách cẩn thận.
Tuy nhiên, hệ điều hành chạy trên máy và điều khiển hoàn toàn máy đó. Do đó, hệ thống hiện hành phải bị dừng và ngừng việc sử dụng trong khi những thay đổi được thực hiện và kiểm tra. Thời điểm này thường được gọi là thời gian phát triển hệ thống. Vì nó làm cho hệ thống không sẳn dùng đối với người sử dụng nên thời gian phát triển hệ thống thường được lập thời biểu vào buổi tối hay cuối tuần, khi tải hệ thống thấp.
Một hệ thống máy ảo có thể loại trừ nhiều vấn đề này. Người lập trình hệ thống được cung cấp chính máy ảo của họ, và phát triển hệ thống được thực hiện trên máy ảo thay vì trên máy vật lý thật sự. Một hệ điều hành thông thường ít khi bị phá vỡ vì phát triển hệ thống. Mặc dù những thuận lợi này, nhưng rất ít cải tiến trên kỹ thuật này được thực hiện gần đây.
Tóm tắt
Hệ điều hành cung cấp một số dịch vụ. Tại cấp thấp nhất, lời gọi hệ thống cho phép một chương trình đang chạy thực hiện yêu cầu trực tiếp từ hệ thống. Tại cấp cao hơn, trình thông dịch cung cấp cơ chế cho người dùng đưa ra yêu cầu mà không viết chương trình. Các lệnh có thể xuất phát từ tập tin trong suốt thời gian thực thi theo chế độ xử lý theo lô, hay trực tiếp từ bàn phím trong chế độ tương tác hay chia sẻ thời gian. Các chương trình hệ thống được cung cấp để thoả mãn nhiều yêu cầu thông thường của người dùng.
Các loại yêu cầu khác nhau dựa theo cấp yêu cầu. Cấp gọi hệ thống phải cung cấp các chức năng cơ bản, như điều khiển quá trình, quản lý tập tin và thiết bị. Các yêu cầu cấp cao hơn được thoả mãn bởi trình thông dịch lệnh và chương trình hệ thống được dịch vào một chuỗi các lời gọi hệ thống. Các dịch vụ hệ thống có thể được phân cấp thành nhiều loại: điều khiển chương trình, yêu cầu trạng thái, yêu cầu nhập/xuất. Lỗi chương trình được xem xét các yêu cầu ẩn cho dịch vụ.
Một khi dịch vụ hệ thống được định nghĩa, cấu trúc của hệ điều hành được phát triển. Các bảng khác nhau cần được ghi thông tin định nghĩa trạng thái của hệ thống máy tính và trạng thái của công việc hệ thống.
Thiết kế một hệ điều hành mới là công việc rất quan trọng. Thiết kế hệ thống như thứ tự của các tầng hay sử dụng vi nhân được xem là một kỹ thuật tốt. Khái niệm máy ảo thực hiện tiếp cận phân tầng và xem nhân của hệ điều hành và phần cứng như là phần cứng của nó. Các hệ điều hành khác có thể được nạp trên đỉnh của máy ảo.
HuynhKhaiThien26(I12A)- Tổng số bài gửi : 12
Join date : 16/02/2012
Age : 34
Đến từ : Long An
Tại sao Microsoft lại cần phải sử dụng thêm VBScript và JavaScript?
TRẢ LỜI:
Dùng Script để Quản trị hệ thống:
Microsoft luôn trang bị 2 công cụ giao tiếp để quản trị hệ thống: Graphics và Command-Line bên cạnh đó còn có ngôn ngữ kịch bản (Script Laguages) nhằm tự động hóa công việc quản trị cho Admin.
Có một câu nói như thế này: “Đưa cho một anh chàng sắp chết đói một con cá, bạn nuôi được anh ta một ngày; nhưng nếu dạy cho anh ta cách câu cá, bạn nuôi anh ta cả đời”.
Còn gì đúng hơn thế, và càng đúng hơn trong thế giới bận rộn của các chuyên gia công nghệ thông tin (mà chúng ta vẫn quen miệng gọi là dân IT) khi làm việc với kỹ thuật scripting: “Đưa cho một admin một script, bạn giúp anh ta giải quyết một vấn đề; nhưng nếu dạy anh ta cách viết script như thế nào, bạn giúp anh ta làm được công việc gắn liền với cả đời anh ta”.
Nếu mà tự động hoá được công việc quản trị hàng ngày bằng các script, cuộc sống của những admin sẽ thoải mái và nhẹ nhàng hơn nhiều. Tại sao cần phải biết và dùng script? Có hàng trăm script được viết sẵn trôi nổi trên thế giới mạng mà bạn có thể tải về dùng một cách dễ dàng, như lấy từ nguồn trung tâm Script Center Script Repository của Microsoft.Tại sao hàng trăm kịch bản (script) viết sẵn tải về dùng dễ dàng mà chúng vẫn chưa đủ? Chúng hữu ích và giúp đỡ bạn rất nhiều, nhưng nhiều khi đòi hỏi riêng theo cấu hình cụ thể trong môi trường của bạn lại làm khó chúng. Có khi trong hàng trăm hàng nghìn script tải về bạn chỉ chọn lọc được một script phù hợp mà vẫn phải điều chỉnh đôi chút. Đơn giản vì tác giả viết ra nó không nằm trong tổ chức của bạn, không thực hiện theo cấu hình của bạn và mối quan tâm của họ lại hướng đến một cái gì khác cơ. Khi đó các admin phải trở thành những ông thợ sửa chữa lành nghề, thay đổi chỗ này một chút, thay đổi chỗ kia một chút, ghép nối để biến vài scrip nhỏ lẻ thành một script hợp nhất lớn hơn hay dùng dữ liệu đầu ra của script này làm thành dữ liệu đầu vào cho script khác, hay biến nó thành công cụ hoạt động cho một máy từ xa…!
Các admin muốn biến đổi, điều chỉnh script thì phải hiểu về nó, phải biết cách xây dựng và viết ra nó, biến những cái mới hay cái có sẵn thành cái của riêng mình, phù hợp nhất với mình. Muốn được như vậy, ai cũng phải bắt đầu với những điều cơ bản nhất, ở đây là Windows scripting. Nói đến script, nhiều người tưởng chừng rất khó, thực sự khó vì trước hết… script rất khó dịch sang tiếng Việt! Script nghĩa là “kịch bản”, nhưng dân công nghệ không phải là người làm phim nên kịch bản của thế giới IT chỉ toàn những đoạn mã loằng ngoằng mà chỉ có các chuyên gia mới hiểu, còn nhiều người “thường thường bậc trung” như… sinh viên công nghệ thì chịu! Chính bởi vậy mà hôm nay chúng ta sẽ bắt đầu từ những cái cơ bản nhất, sau đó nâng cao dần khả năng hiểu những khía cạnh sâu xa hơn trong viết và dùng script ở các mạng Windows. Mục đích cuối cùng mà chúng ta hướng tới là kể cả những người mới bắt đầu tìm hiểu như bạn, như tôi đều có thể script hoá tự động công việc, để cuộc sống của các admin an nhàn hơn.
Visual Basic Script (VBScript)
Hầu như admin nào cũng dùng VBScript để viết kịch bản quản trị Windows (Windows admin script). VBScript không chỉ là một ngôn ngữ mạnh mà cú pháp của nó còn khá đơn giản để học và làm. VBScript có thể dùng chung với Windows Management Instrumentation (WMI) và Active Directory Services Interfaces (ADSI) để viết kịch bản cho bất kỳ khía cạnh nào của một hệ thống chạy hệ điều hành Windows hay một mạng dùng Active Directory.
Chúng ta sẽ phải sử dụng nhiều đến một máy chủ ảo và một PC ảo để thiết lập môi trường kiểm tra. Chúng ta sẽ cần phải chuyển một máy ảo (VM) chạy hệ điều hành Windows Server 2003 từ mạng ảo này sang mạng ảo khác để sử dụng lại server (máy chủ) cho một số mục đích khác. Như thế có nghĩa là chúng ta sẽ cần thay đổi địa chỉ IP trên server (cũng có thể là cổng vào mặc định nữa). Bạn có thể thực hiện điều này bằng cách mở Network Connections trong Control Panel và kích phải chuột lên Local Area Connections, chọn Properties > Internet Protocol (TCP/IP) trên tab General và bấm chọn Properties, nhập địa chỉ IP mới rồi ấn OK hai lần. Đây là cách thực hiện phổ biến nhưng nghe qua bạn đã thấy khá dài dòng và mệt mỏi. Với những chuyên gia, họ thích sử dụng Command Promt hơn, lệnh dùng ở đây là Netsh. Song, khi sử dụng lệnh này bạn cần cẩn trọng vì nó có nhiều ngữ cảnh, lệnh và tham số khác nhau rất khó nhớ. Thực hiện sai một thao tác cũng có thể dẫn đến hậu quả nghiêm trọng. Nếu chưa thực sự chắc chắn, hãy nhờ sự giúp đỡ của phần trợ giúp Help hoặc quay trở lại cách thứ nhất.
Nhưng mục đích của chúng ta ở đây là học về script. Do đó, chúng ta sẽ xem xét cách thay đổi địa chỉ IP của máy dùng VBScript và WMI như thế nào mà trước hết là phải biết đến một số khái niệm cơ bản như đối tượng (object), phương thức (method), thuộc tính (property), namespace…
Việc đầu tiên chúng ta cần làm để sắp xếp gọn gàng script là định nghĩa các biến sẽ dùng. VBScript cho phép định nghĩa ngầm các biến đơn giản bằng cách dùng nó trong một câu lệnh, nhưng sẽ tốt hơn nếu bạn khai báo tường minh chúng ngay khi bắt đầu script. Khai báo một biến sẽ nói cho VBScript biết về sự tồn tại của nó để cấp phát bộ nhớ lưu trữ. Vì sao khai báo biến tường minh lại hay hơn? Ví dụ như trong một script dài, bạn thường phạm phải một hay một số lỗi gõ phím nhầm. Và khi gõ nhầm tên của một biến, script của bạn sẽ không chạy được. Nếu khai báo biến tường mình ở đầu script thì bất kỳ biến nào được khai báo ngầm về sau trong script (có thể là nguyên nhân gây ra lỗi gõ nhầm) sẽ tạo ra một lỗi runtime. Các thông báo lỗi có thể sẽ giúp bạn xác định được vị trí nhầm lẫn và gỡ lỗi cho script của bạn.
Dùng Script để Quản trị hệ thống:
Microsoft luôn trang bị 2 công cụ giao tiếp để quản trị hệ thống: Graphics và Command-Line bên cạnh đó còn có ngôn ngữ kịch bản (Script Laguages) nhằm tự động hóa công việc quản trị cho Admin.
Có một câu nói như thế này: “Đưa cho một anh chàng sắp chết đói một con cá, bạn nuôi được anh ta một ngày; nhưng nếu dạy cho anh ta cách câu cá, bạn nuôi anh ta cả đời”.
Còn gì đúng hơn thế, và càng đúng hơn trong thế giới bận rộn của các chuyên gia công nghệ thông tin (mà chúng ta vẫn quen miệng gọi là dân IT) khi làm việc với kỹ thuật scripting: “Đưa cho một admin một script, bạn giúp anh ta giải quyết một vấn đề; nhưng nếu dạy anh ta cách viết script như thế nào, bạn giúp anh ta làm được công việc gắn liền với cả đời anh ta”.
Nếu mà tự động hoá được công việc quản trị hàng ngày bằng các script, cuộc sống của những admin sẽ thoải mái và nhẹ nhàng hơn nhiều. Tại sao cần phải biết và dùng script? Có hàng trăm script được viết sẵn trôi nổi trên thế giới mạng mà bạn có thể tải về dùng một cách dễ dàng, như lấy từ nguồn trung tâm Script Center Script Repository của Microsoft.Tại sao hàng trăm kịch bản (script) viết sẵn tải về dùng dễ dàng mà chúng vẫn chưa đủ? Chúng hữu ích và giúp đỡ bạn rất nhiều, nhưng nhiều khi đòi hỏi riêng theo cấu hình cụ thể trong môi trường của bạn lại làm khó chúng. Có khi trong hàng trăm hàng nghìn script tải về bạn chỉ chọn lọc được một script phù hợp mà vẫn phải điều chỉnh đôi chút. Đơn giản vì tác giả viết ra nó không nằm trong tổ chức của bạn, không thực hiện theo cấu hình của bạn và mối quan tâm của họ lại hướng đến một cái gì khác cơ. Khi đó các admin phải trở thành những ông thợ sửa chữa lành nghề, thay đổi chỗ này một chút, thay đổi chỗ kia một chút, ghép nối để biến vài scrip nhỏ lẻ thành một script hợp nhất lớn hơn hay dùng dữ liệu đầu ra của script này làm thành dữ liệu đầu vào cho script khác, hay biến nó thành công cụ hoạt động cho một máy từ xa…!
Các admin muốn biến đổi, điều chỉnh script thì phải hiểu về nó, phải biết cách xây dựng và viết ra nó, biến những cái mới hay cái có sẵn thành cái của riêng mình, phù hợp nhất với mình. Muốn được như vậy, ai cũng phải bắt đầu với những điều cơ bản nhất, ở đây là Windows scripting. Nói đến script, nhiều người tưởng chừng rất khó, thực sự khó vì trước hết… script rất khó dịch sang tiếng Việt! Script nghĩa là “kịch bản”, nhưng dân công nghệ không phải là người làm phim nên kịch bản của thế giới IT chỉ toàn những đoạn mã loằng ngoằng mà chỉ có các chuyên gia mới hiểu, còn nhiều người “thường thường bậc trung” như… sinh viên công nghệ thì chịu! Chính bởi vậy mà hôm nay chúng ta sẽ bắt đầu từ những cái cơ bản nhất, sau đó nâng cao dần khả năng hiểu những khía cạnh sâu xa hơn trong viết và dùng script ở các mạng Windows. Mục đích cuối cùng mà chúng ta hướng tới là kể cả những người mới bắt đầu tìm hiểu như bạn, như tôi đều có thể script hoá tự động công việc, để cuộc sống của các admin an nhàn hơn.
Visual Basic Script (VBScript)
Hầu như admin nào cũng dùng VBScript để viết kịch bản quản trị Windows (Windows admin script). VBScript không chỉ là một ngôn ngữ mạnh mà cú pháp của nó còn khá đơn giản để học và làm. VBScript có thể dùng chung với Windows Management Instrumentation (WMI) và Active Directory Services Interfaces (ADSI) để viết kịch bản cho bất kỳ khía cạnh nào của một hệ thống chạy hệ điều hành Windows hay một mạng dùng Active Directory.
Chúng ta sẽ phải sử dụng nhiều đến một máy chủ ảo và một PC ảo để thiết lập môi trường kiểm tra. Chúng ta sẽ cần phải chuyển một máy ảo (VM) chạy hệ điều hành Windows Server 2003 từ mạng ảo này sang mạng ảo khác để sử dụng lại server (máy chủ) cho một số mục đích khác. Như thế có nghĩa là chúng ta sẽ cần thay đổi địa chỉ IP trên server (cũng có thể là cổng vào mặc định nữa). Bạn có thể thực hiện điều này bằng cách mở Network Connections trong Control Panel và kích phải chuột lên Local Area Connections, chọn Properties > Internet Protocol (TCP/IP) trên tab General và bấm chọn Properties, nhập địa chỉ IP mới rồi ấn OK hai lần. Đây là cách thực hiện phổ biến nhưng nghe qua bạn đã thấy khá dài dòng và mệt mỏi. Với những chuyên gia, họ thích sử dụng Command Promt hơn, lệnh dùng ở đây là Netsh. Song, khi sử dụng lệnh này bạn cần cẩn trọng vì nó có nhiều ngữ cảnh, lệnh và tham số khác nhau rất khó nhớ. Thực hiện sai một thao tác cũng có thể dẫn đến hậu quả nghiêm trọng. Nếu chưa thực sự chắc chắn, hãy nhờ sự giúp đỡ của phần trợ giúp Help hoặc quay trở lại cách thứ nhất.
Nhưng mục đích của chúng ta ở đây là học về script. Do đó, chúng ta sẽ xem xét cách thay đổi địa chỉ IP của máy dùng VBScript và WMI như thế nào mà trước hết là phải biết đến một số khái niệm cơ bản như đối tượng (object), phương thức (method), thuộc tính (property), namespace…
Việc đầu tiên chúng ta cần làm để sắp xếp gọn gàng script là định nghĩa các biến sẽ dùng. VBScript cho phép định nghĩa ngầm các biến đơn giản bằng cách dùng nó trong một câu lệnh, nhưng sẽ tốt hơn nếu bạn khai báo tường minh chúng ngay khi bắt đầu script. Khai báo một biến sẽ nói cho VBScript biết về sự tồn tại của nó để cấp phát bộ nhớ lưu trữ. Vì sao khai báo biến tường minh lại hay hơn? Ví dụ như trong một script dài, bạn thường phạm phải một hay một số lỗi gõ phím nhầm. Và khi gõ nhầm tên của một biến, script của bạn sẽ không chạy được. Nếu khai báo biến tường mình ở đầu script thì bất kỳ biến nào được khai báo ngầm về sau trong script (có thể là nguyên nhân gây ra lỗi gõ nhầm) sẽ tạo ra một lỗi runtime. Các thông báo lỗi có thể sẽ giúp bạn xác định được vị trí nhầm lẫn và gỡ lỗi cho script của bạn.
TranMinhTuan143(I12A)- Tổng số bài gửi : 38
Join date : 22/02/2012
phân biệt thông dịch(intepretation) và biên dịch(compilation)
*thông dịch:
- duy trì mã nguồn, thực hiện trực tiếp theo từng dòng 1 lệnh ngôn ngữ
- ưu điểm:dễ phát hiện được lỗi trong chương trình
nhược điểm: chương trình chạy bỡi cpu sẽ chậm hơn biên dịch
*biên dịch:
-chuyễn ngôn ngữ sang ngôn ngữ máy rồi mới chuyển tới bộ sử lý lệnh ngôn ngữ đó
-ưu điểm:chương trình khi chạy bỡi cpu sẽ nhanh hơn thông dịch
Một phần mềm thông dịch là một phần mềm có khả năng đọc, chuyển dịch mã nguồn của một ngôn ngữ và ra lệnh cho máy tính tiến hành các tính toán dựa theo cú pháp của ngôn ngữ.
Một phần mềm biên dịch hay ngắn gọn hơn trình dịch là phần mềm có khả năng chuyển dịch mã nguồn của một ngôn ngữ ban đầu sang dạng mã mới thuộc về ngôn ngữ cấp thấp hơn.
Ngôn ngữ cấp thấp nhất là một chuỗi các chỉ thị máy tính mà có thể được thực hiện trực tiếp bởi chính máy tính (thông qua các theo tác trên vùng nhớ). Trước đây, hầu hết các trình dịch cũ thường phải thông dịch từ mã nguồn sang bộ mã phụ (các tệp có dang *.obj), rồi sau đó, mới biên dịch tiếp sang các tập tin thi hành. Ngày nay, hầu hết các trình dịch đều có khả năng viên dịch mã nguồn trực tiếp sang thành các tập tin thi hành hay biên dịch sang các dạng mã khác thấp hơn tuỳ theo yêu cầu của người lập trình.
Điểm khác nhau giữa thông dịch và biên dịch là: Trình thông dịch sẽ dịch từng câu lệnh một và chương trình đích sẽ không được lưu lại. Còn trình biên dịch sẽ dịch toàn bộ chương trình, cho ra chương trình đích được lưu lại trong máy tính rồi mới thực hiện chương trình.
Một chương trình máy tính có thể được thực thi bằng cách tổ hợp của việc biên dịch và thông dịch.
Vì yêu cầu đòi hỏi độ chính xác chi tiết cao nên việc viết mã thường gây khó khăn cho người đọc để theo dõi và đôi khi gây khó cho chính lập trình viên đã tạo ra mã nguồn đó. Do đó, một lời khuyên là nên dùng thêm nhiều chú giải trong lúc lập trình. Các chú giải này thường rất quan trọng cho người khác đọc và hiểu các mã nguồn.
- duy trì mã nguồn, thực hiện trực tiếp theo từng dòng 1 lệnh ngôn ngữ
- ưu điểm:dễ phát hiện được lỗi trong chương trình
nhược điểm: chương trình chạy bỡi cpu sẽ chậm hơn biên dịch
*biên dịch:
-chuyễn ngôn ngữ sang ngôn ngữ máy rồi mới chuyển tới bộ sử lý lệnh ngôn ngữ đó
-ưu điểm:chương trình khi chạy bỡi cpu sẽ nhanh hơn thông dịch
* tóm lại các bạn có thể tham khão thêm:
Thao tác chuyển dạng từ mã nguồn sang thành chuỗi các chỉ thị máy tính được thực hiện hoàn toàn tương tự như là việc chuyển dịch giữa các ngôn ngữ tự nhiên của con người. Các thao tác này gọi là biên dịch (hay ngắn gọn hơn là dịch). Người ta còn phân việc biên dịch làm hai loại tùy theo quá trình dịch xảy ra trước quá trình thực thi các tính toán hay nó xảy ra cùng lúc với quá trình tính toán:Một phần mềm thông dịch là một phần mềm có khả năng đọc, chuyển dịch mã nguồn của một ngôn ngữ và ra lệnh cho máy tính tiến hành các tính toán dựa theo cú pháp của ngôn ngữ.
Một phần mềm biên dịch hay ngắn gọn hơn trình dịch là phần mềm có khả năng chuyển dịch mã nguồn của một ngôn ngữ ban đầu sang dạng mã mới thuộc về ngôn ngữ cấp thấp hơn.
Ngôn ngữ cấp thấp nhất là một chuỗi các chỉ thị máy tính mà có thể được thực hiện trực tiếp bởi chính máy tính (thông qua các theo tác trên vùng nhớ). Trước đây, hầu hết các trình dịch cũ thường phải thông dịch từ mã nguồn sang bộ mã phụ (các tệp có dang *.obj), rồi sau đó, mới biên dịch tiếp sang các tập tin thi hành. Ngày nay, hầu hết các trình dịch đều có khả năng viên dịch mã nguồn trực tiếp sang thành các tập tin thi hành hay biên dịch sang các dạng mã khác thấp hơn tuỳ theo yêu cầu của người lập trình.
Điểm khác nhau giữa thông dịch và biên dịch là: Trình thông dịch sẽ dịch từng câu lệnh một và chương trình đích sẽ không được lưu lại. Còn trình biên dịch sẽ dịch toàn bộ chương trình, cho ra chương trình đích được lưu lại trong máy tính rồi mới thực hiện chương trình.
Một chương trình máy tính có thể được thực thi bằng cách tổ hợp của việc biên dịch và thông dịch.
Vì yêu cầu đòi hỏi độ chính xác chi tiết cao nên việc viết mã thường gây khó khăn cho người đọc để theo dõi và đôi khi gây khó cho chính lập trình viên đã tạo ra mã nguồn đó. Do đó, một lời khuyên là nên dùng thêm nhiều chú giải trong lúc lập trình. Các chú giải này thường rất quan trọng cho người khác đọc và hiểu các mã nguồn.
phanngocthinh(i12a)- Tổng số bài gửi : 47
Join date : 17/02/2012
câu 1. bỗ sung thêm vai trò của bộ thông dịch lệnh của các bạn lớp mình
Cơ chế dòng lệnh
Cơ chế giao tiếp bằng dòng lệnh (Command prompt) giữa người sử dụng và HĐH.
Bộ thông dịch lệnh (Shell) : đọc và thực thi các lệnh.
các bạn tham khão thêm bạn của bạn nguyễn thị lài (i102c) em thấy bạn ấy trình bày rất rõ về vấn đề này
Một trong những chương trình hệ thống quan trọng nhất đối với hệ điều hành là trình thông dịch lệnh. Nó là giao diện giữa người dùng và hệ điều hành. Một vài hệ điều hành chứa trình thông dịch lệnh trong nhân (kernel). Các hệ điều hành khác nhau như MS-DOS và UNIX xem trình thông dịch lệnh như một chương trình đặc biệt đang chạy khi một công việc được khởi tạo hay khi người dùng đăng nhập lần đầu tiên (trên các hệ thống chia thời).
Nhiều lệnh (commands) được cung cấp tới hệ điều hành bởi các lệnh điều khiển (control statements). Khi một công việc mới được bắt đầu trong hệ thống bó, hay khi một người dùng đăng nhập tới hệ thống chia thời, một chương trình đọc và thông dịch các câu lệnh điều khiển được thực thi tự động. Chương trình này còn được gọi trình thông dịch thẻ điều khiển (control-card interpreter) hay trình thông dịch dòng lệnh và thường được biết như shell. Chức năng của nó đơn giản là: lấy câu lệnh tiếp theo và thực thi nó.
Các hệ điều hành thường khác nhau trong vùng shell, với một trình thông dịch lệnh thân thiện với người dùng làm cho hệ thống có thể chấp nhập nhiều hơn đối với người dùng. Một dạng giao diện thân thiện người dùng là hệ thống trình đơn-cửa sổ trên cơ sở chuột (mouse-based window-and-menu system) được dùng trong Macintosh và Microsoft Windows. Chuột được di chuyển tới vị trí con trỏ chuột trên ảnh hay biểu tượng trên màn hình biểu diễn các chương trình, tập tin, và các hàm hệ thống. Phụ thuộc vào vị trí con trỏ chuột, nhấn một nút trên chuột có thể nạp một chương trình, chọn một tập tin hay thư mục hay kéo xuống một trình đơn chứa các câu lệnh. Các shell mạnh hơn, phức tạp hơn và khó học hơn được đánh giá cao bởi một số người dùng khác. Trong những shell này, các lệnh được đánh vào từ bàn phím được hiển thị trên màn hình hay in ra thiết bị đầu cuối, với phím enter (hay return) chỉ rằng một lệnh hoàn thành và sẳn sàng được thực thi. Shell của MS-DOS và UNIX điều hành theo cách này.
Các câu lệnh giải quyết việc tạo và quản lý quá trình, quản lý xuất/nhập, quản lý việc lưu trữ phụ, quản lý bộ nhớ chính, truy xuất hệ thống tập tin, bảo vệ và mạng.
Cơ chế giao tiếp bằng dòng lệnh (Command prompt) giữa người sử dụng và HĐH.
Bộ thông dịch lệnh (Shell) : đọc và thực thi các lệnh.
các bạn tham khão thêm bạn của bạn nguyễn thị lài (i102c) em thấy bạn ấy trình bày rất rõ về vấn đề này
Một trong những chương trình hệ thống quan trọng nhất đối với hệ điều hành là trình thông dịch lệnh. Nó là giao diện giữa người dùng và hệ điều hành. Một vài hệ điều hành chứa trình thông dịch lệnh trong nhân (kernel). Các hệ điều hành khác nhau như MS-DOS và UNIX xem trình thông dịch lệnh như một chương trình đặc biệt đang chạy khi một công việc được khởi tạo hay khi người dùng đăng nhập lần đầu tiên (trên các hệ thống chia thời).
Nhiều lệnh (commands) được cung cấp tới hệ điều hành bởi các lệnh điều khiển (control statements). Khi một công việc mới được bắt đầu trong hệ thống bó, hay khi một người dùng đăng nhập tới hệ thống chia thời, một chương trình đọc và thông dịch các câu lệnh điều khiển được thực thi tự động. Chương trình này còn được gọi trình thông dịch thẻ điều khiển (control-card interpreter) hay trình thông dịch dòng lệnh và thường được biết như shell. Chức năng của nó đơn giản là: lấy câu lệnh tiếp theo và thực thi nó.
Các hệ điều hành thường khác nhau trong vùng shell, với một trình thông dịch lệnh thân thiện với người dùng làm cho hệ thống có thể chấp nhập nhiều hơn đối với người dùng. Một dạng giao diện thân thiện người dùng là hệ thống trình đơn-cửa sổ trên cơ sở chuột (mouse-based window-and-menu system) được dùng trong Macintosh và Microsoft Windows. Chuột được di chuyển tới vị trí con trỏ chuột trên ảnh hay biểu tượng trên màn hình biểu diễn các chương trình, tập tin, và các hàm hệ thống. Phụ thuộc vào vị trí con trỏ chuột, nhấn một nút trên chuột có thể nạp một chương trình, chọn một tập tin hay thư mục hay kéo xuống một trình đơn chứa các câu lệnh. Các shell mạnh hơn, phức tạp hơn và khó học hơn được đánh giá cao bởi một số người dùng khác. Trong những shell này, các lệnh được đánh vào từ bàn phím được hiển thị trên màn hình hay in ra thiết bị đầu cuối, với phím enter (hay return) chỉ rằng một lệnh hoàn thành và sẳn sàng được thực thi. Shell của MS-DOS và UNIX điều hành theo cách này.
Các câu lệnh giải quyết việc tạo và quản lý quá trình, quản lý xuất/nhập, quản lý việc lưu trữ phụ, quản lý bộ nhớ chính, truy xuất hệ thống tập tin, bảo vệ và mạng.
phanngocthinh(i12a)- Tổng số bài gửi : 47
Join date : 17/02/2012
các phương tiện nào tạo máy ảo : và phương tiện nào thường được sử dụng nhiều nhất
VMWare Workstation
63,46%
Microsoft Virtual PC
18,41%
Virtual Box
16,15%
QEMU Manager
1,98%
63,46%
Microsoft Virtual PC
18,41%
Virtual Box
16,15%
QEMU Manager
1,98%
phanngocthinh(i12a)- Tổng số bài gửi : 47
Join date : 17/02/2012
cho em bổ sung về câu 3, những lợi ích của máy ảo
lợi ích của máy ảo: hệ điều hành khi thi công cần phải tiện lợi , dễ thiết kế, dễ nâng cấp khi có máy ảo ta có thể thữ nghiệm các tiến trình cài đặt nâng cấp trên máy ảo mà không cân sợ làm hỏng tài nguyên
dữ liệu trên máy, vì máy ảo hoạt động độc lập và song song với hệ thống máy chính của bạn, nếu gặp sự cố , thí máy ảo gặp sự cố và có thể tạo máy ảo khác.
bạn náo biết thêm thì bỗ sung cho mình nha
dữ liệu trên máy, vì máy ảo hoạt động độc lập và song song với hệ thống máy chính của bạn, nếu gặp sự cố , thí máy ảo gặp sự cố và có thể tạo máy ảo khác.
bạn náo biết thêm thì bỗ sung cho mình nha
phanngocthinh(i12a)- Tổng số bài gửi : 47
Join date : 17/02/2012
Khái niệm 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.
• 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.
quicly_I111c- Tổng số bài gửi : 20
Join date : 30/08/2011
Re: Thảo luận Bài 3
chài thiếu gì cái để làm, quan trọng là chịu làm hay ko..! up bài đi mày, ah khi nào rãnh ghé qua tao hoc chung cho vuiNguyenThanhCang(I12A) đã viết:Đang định làm bài đầu tiên.Ai dè bị phổng tay trên.Đúng là cao thủ thiệt..hi.Chúc bạn vui và học tốt
ngophicamI12A- Tổng số bài gửi : 24
Join date : 23/02/2012
Age : 34
Đến từ : BRVT
Re: Thảo luận Bài 3
LamTheTong_I12C đã viết:BẠN TẠO 1 FILE COPY.BAT
CÂU LỆNH COPY:
COPY (VỊ TRÍ FILE) (VỊ TRÍ CẦN COPY TỚI)
VD:
CÓ FILE ABC.TXT TRONG Ổ D:\ MUỐN COPY SANG Ổ C:\
DÙNG NOTEPAD TẠO 1 FILE COPY.TXT SAVE DẠNG ANSI COPY DÒNG NÀY VÀO FILE COPY
Code:
COPY D:\ABC.TXT C:\
SAU ĐÓ BẠN SỬA PHẦN ĐUÔI FILE COPY.TXT THÀNH COPY.BAT
CLICK CHẠY FILE COPY.BAT XEM KẾT QUẢ.
TỪ ĐÓ CÓ THỂ ỨNG DỤNG RỘNG RA NHƯ VIẾT FILE AUTORUN ĐỂ CHẠY CÁC FILE BAT VÀ CÁC FILE EXE KHÁC. (MẤY ANH VIRUS VỚI DIỆT VIRUS THÍCH CÁI NÀY )
CHÚC BẠN THÀNH CÔNG.
Tôi làm theo các bước này mà vẫn không thực hiện được, hơn nữa nếu làm như vậy cũng chỉ dừng lại ở mức copy bằng lệnh chứ chưa tự động copy vào thời điểm nào đó. Bạn giúp lại vấn đề này được không?
Tham khảo thêm:
Ðể tránh việc phải gõ đi gõ lại một chuỗi lệnh mất thì giờ, MS-DOS cho phép ta đặt các chuỗi lệnh trong một tập tin, gọi là tập lệnh xử lý theo lô (Batch File) còn gọi là file BAT vì đều có phần mở rộng của file là BAT. Khi sử dụng ta chỉ cần gọi tên file BAT và nhấn Enter thì một loạt các chuỗi lệnh trong nó sẽ tuần tự thi hành. Trong file BAT, ta có thể dùng các lệnh nội trú và ngoại trú của DOS, các câu lệnh, tham số của BAT và các chương trình khác.
Ta có thể sử dụng các lệnh hoặc chương trình tạo văn bản của DOS như COPY CON, EDIT.COM, SIDEKICK, WINWORD,... để tạo ra các file BAT.
Ví dụ: Dùng lệnh của MS-DOS -------> C:\>COPY CON NHAPDATA.BAT
hay dùng chương trình EDIT : -------> C:\>EDIT NHAPDATA.BAT
Tập tin AUTOEXEC.BAT trong đĩa hệ thống là một file BAT đặc biệt. Khi khởi động máy, tuần tự các lệnh chứa trong nó sẽ được thi hành. Tập tin AUTOEXEC.BAT thường có các lệnh báo đường dẫn, thiết lập cấu hình, tạo dấu nhắc, báo ngày giờ và một số thông báo nhắc nhở người sử dụng.
Ta có thể tạo ra một tập tin AUTOEXEC.BAT đơn giản sau: A:\>COPY CON AUTOEXEC.BAT
REM TAP TIN KHOI DONG MAY
ECHO OFF
TIME
DATE
PATH C:\; C:\DOS; C:\NC; C:\PASCAL; C:\WINDOW;
PROMPT $P$G
ECHO == PHONG MAY TINH CHAO CAC BAN ==
Gõ phím chức năng F6 (hoặc Ctrl + Z)
1 file(s) copied
Lập trình cho file BAT :
Ta có thể lập trình cho file BAT bằng cách sử dụng các lệnh FOR, GOTO, IF, ... với các tham số hình thức %0, 1%, 2%, ... (cho phép sử dụng 10 tham số hình thức từ %0 đến %9). Nếu ta dùng ký hiệu % như một thành phần trong file BAT thì phải ghi dấu % hai lần. Tham số %0 tương ứng với tên file BAT đang được thực hiện và %1, %2,... tương ứng với các tham số được đưa vào.
Ví dụ: Tạo một file BAT đơn giản như sau: A:\>COPY CON VANBAN.BAT
ECHO %0
MD %1
CD %1
COPY C:\%2.TXT
DIR A:
Gõ phím F6 (hoặc Ctrl + Z)
1 file(s) copied
Khi dùng lệnh: A:\>VANBAN TEXT BAOCAO
Sau khi Enter, tên VANBAN sẽ thay vào %0, tên TEXT sẽ thay vào vị trí %1 và BAOCAO sẽ vào vị trí %2. Do vậy, máy sẽ hiểu cần thi hành tuần tự các công việc sau:
- Hiển thị câu: VANBAN
- Mở thư mục: MD TEXT
- Vào thư mục: CD TEXT
- Chép file BAOCAO.TXT từ ổ đĩa C
- Liệt kê tất cả các file trong đĩa A
Các câu lệnh chính dùng trong file BAT:
Trong file BAT cho phép sử dụng dấu @ (a sign), nếu đặt @ trước một lệnh thì lệnh đó không hiển thị ra màn hình mà chỉ thi hành lệnh.
* Echo
Cú pháp: ECHO [on/off]
Ghi chú:
- Lệnh Echo cho phép đưa ra (on) hay không đưa ra (off) màn hình câu lệnh. -
* Call
Cú pháp: CALL [drive:][path]
Ghi chú:
- Lệnh Call cho phép ta gọi một file BAT khác chạy trong file BAT hiện tại.
-
- [argument] là lệnh sẽ thi hành tiếp theo sau khi file BAT được gọi.
* Pause
Cú pháp: PAUSE [comment]
Ghi chú:
- Lệnh Pause tạm thời dừng thi hành file BAT
- [comment] dòng chú thích hiển thị ra màn hình, không dài quá 123 ký tự.
- Các lệnh sau lệnh Pause sẽ tiếp tục khi ta gõ một nút bất kỳ trên bàn phím.
* Rem
Cú pháp: REM [comment]
Ghi chú:
- Lệnh REM(remark) ghi các nhắc nhở [comment ] dài không quá 123 ký tự.
- Các comment này sẽ xuất hiện trên màn hình nếu trước đó ta có ECHO ON và ngược lại, chúng sẽ không xuất hiện khi có ECHO OFF.
* If
Cú pháp 1: IF [NOT] EXIST [drive:][path]
Ghi chú:
- Lệnh IF là lệnh điều kiện với ý nghĩa: NẾU ... thì thi hành
- IF [NOT] là phủ định (not tùy chọn): NẾU KHÔNG ... thì thi hành
Ví dụ: Trong 1 file BAT ta có dòng:
COPY C:\DOS\*.COM A:
IF EXIST A: EDIT.COM EXIT
DIR A:
Lệnh trên có nghĩa là copy ở C:\DOS tất cả các file .COM vào đĩa A.
Nếu đĩa A đã có file EDIT.COM thì thôi không thực hiện nữa (để khỏi mất thì giờ) và thoát ra (EXIT) thực hiện dòng tiếp là liệt kê các file ở đĩa A.
Cú pháp 2: IF [NOT] String1 == String2
Ghi chú: Nếu chuỗi ký tự String1 giống chuỗi ký tự String2 thì
Ví dụ: IF %1 == IN ECHO MO MAY IN RA !
Nghĩa là nếu chương trình chứa tham số %1 đúng là IN thì hiển thị (ECHO) dòng chữ MO MAY IN RA !. Ngược lại, nếu tham số %1 không là IN thì không thi hành lệnh ECHO theo sau.
Cú pháp 3: IF [NOT] ERRORLEVEL #
Ghi chú: Lệnh điều kiện này để báo mức độ lỗi. Tùy theo mức độ lỗi đã định mà thực hiện
Ví dụ: COPY C:\PRG\*.PAS A:
IF ERRORLEVEL 1 ECHO KHONG COPY DUOC
Nghĩa là copy tất cả các file .PAS ở C:\PRG qua A. Vì một lý do nào đó ta không copy được (không có đĩa A, hay điã A bị hư hay đĩa A đã đầy ...) thì chương trình sẽ báo dòng chữ KHONG COPY DUOC.
* For
Cú pháp: FOR %%
Ghi chú:
- Lệnh FOR thực hiện vòng lặp với từng file trong tập hợp file.
- Nghĩa là,
Ví dụ: FOR %%T IN (C:\VANBAN\*.TXT) DO COPY %%T A:\
Sao chép lần lượt tất cả các file .TXT trong C:\VANBAN vào A:\
* Goto
Cú pháp: GOTO :
Ghi chú:
- Lệnh GOTO là lệnh di chuyển tới dòng lệnh đứng sau
- Trước
- Nếu
Label not found (Nhãn không tìm thấy)
Ví dụ: FORMAT A:/S
IF ERRORLEVEL 0 GOTO ECHO KHONG FORMAT A: DUOC
* SHIFT
Cú pháp: SHIFT
Ghi chú:
- Lệnh SHIFT dùng để thay đổi vị trí tham số có thể thay thế được trong .BAT
- File BAT có tối đa 10 biến có thể thay thế từ %0 đến %9, khi dùng SHIFT thì sẽ có một sự thay đổi biến như sau: %0 mất đi, %1 chép đè lên %0, và %2 chép đè lến %1, và %3 chép đè lên %2, ...
- Lệnh SHIFT có thể dùng quá 10 tham số.
Ví dụ: Ta có file mang tên SAPCHU.BAT trong ổ A với nội dung sau:
ECHO OFF
ECHO %0 %1 %2 %3
SHIFT
ECHO %0 %1 %2 %3
SHIFT
ECHO %0 %1 %2 %3
SHIFT
Khi cho chạy thử với dòng lệnh:
A:\>SAPCHU Toi thich an kem lam
Kết quả hiện ra màn hình là:
A:\> ECHO OFF
SAPCHU Toi thich an
Toi thich an kem
Thich an kem lam
BẠN CÓ THỂ ỨNG DỤNG KHI BẠN SOẠN THÊM FILE AUTORUN, HOẶC VIẾT 1 PHẦN MỀM NHO NHỎ THỰC THI NGẦM FILE BAT. ỨNG DỤNG RẤT RỘNG VÀO TÙY TRƯỜNG HỢP VÀ TÙY SÁNG TẠO MỖI NGƯỜI THÔI
trinhvanminh_11h1010077- Tổng số bài gửi : 90
Join date : 15/02/2012
Age : 39
Đến từ : tphcm
Re: Thảo luận Bài 3
phamduyI12A đã viết:- Vì modem nối với PC sử dụng IP quốc tế nên có thể Remote được tới tất cả các PC trên thế giới .
- Còn IP của 3G là IP của máy chủ PROXY của các ISP nên bị quản lý .
P/S: ISP ( Internet Service Provider ) .
NGHE NÓI CÓ THỂ SỬ DỤNG VPN ĐỂ REMOTE ĐƯỢC PHẢI KO ? BẠN ĐÃ THỬ CHƯA CHO MÌNH BIẾT KẾT QUẢ VỚI NHÉ THANKS
trinhvanminh_11h1010077- Tổng số bài gửi : 90
Join date : 15/02/2012
Age : 39
Đến từ : tphcm
Re: Thảo luận Bài 3
ngophicamI12A đã viết:chài thiếu gì cái để làm, quan trọng là chịu làm hay ko..! up bài đi mày, ah khi nào rãnh ghé qua tao hoc chung cho vuiNguyenThanhCang(I12A) đã viết:Đang định làm bài đầu tiên.Ai dè bị phổng tay trên.Đúng là cao thủ thiệt..hi.Chúc bạn vui và học tốt
LIKE NHIỆT TÌNH Ý KIẾN CỦA BÁC HEHEHE...
ĐỪNG QUAN TRỌNG LÀ NGƯỜI ĐẦU TIÊN HAY LÀ NGƯỜI SAU CHÓT, MÀ QUAN TRỌNG LÀ MÌNH ĐÃ LÀM GÌ ĐƯỢC CHO MỌI NGƯỜI.
CHÚC BẠN VUI, MONG NHỮNG BÀI VIẾT HAY CỦA CÁC BẠN
trinhvanminh_11h1010077- Tổng số bài gửi : 90
Join date : 15/02/2012
Age : 39
Đến từ : tphcm
Quản lý tập tin trong windows
I/ Quan niệm về quản lý tập tin (File Manager)
- Ở việc bẻ gãy một tiến trình hay sau khi hoàn thành một tiến trình, một câu hỏi được đặt ra là: Bạn lưu trữ dữ liệu của bạn như thế nào, để sau này, bạn có thể làm việc trở lại với cái bạn đã có? Tính chất này của dữ liệu gọi là cố định dữ liệu, người ta đạt được khi dữ liệu được viết vào bộ nhớ quảng đại trước khi kết thúc chương trình. Tuy nhiên, chúng ta vẫn còn một vấn đề: Ở phần lớn bộ nhớ quảng đại, danh sách các tệp tin quá dài, ấy nhưng người ta muốn thời gian truy cập phải ngắn. Do đó, trường hợp này chỉ có thể dẫn tới một cách thức tổ chức tệp tin để quản lý các tệp dữ liệu trong hệ thống máy tính.
II/ Hệ thống tập tin (Files-Systems)
- Để phục vụ việc quản lý tệp tin, đầu tiên, chúng ta viết tất cả các tệp tin vào trong một danh sách và cần lưu ý: chúng ta cần phải biết một cái gì đó về tệp tin, thí dụ ngày tháng năm tạo lập, dung lượng, vị trí của bộ nhớ quảng đại, luật truy cập…
- Một bảng như thế thì không khác mấy một ngân hàng dữ liệu. Nếu chúng ta dẫn tới mỗi thuộc tính dữ liệu và kể cả các tác vụ (như các thủ tục, các phương pháp tiến hành…), mà nó được xử lý, do đó, chúng ta nhận được một ngân hàng dữ liệu hướng đối tượng. Ngoài ra, nếu chúng ta có các đối tượng âm thanh và hình ảnh, mà chúng được một chương trình sinh ra hay được sử dụng, lúc đó,
chúng ta cần dùng một ngân hàng dữ liệu đa phương dụng (multimedia- databank), trong đó, thông tin được chứa đựng để làm đồng bộ hai phương dụng.
- Một cách khái quát, khi không có đối tượng nào thì việc điều hành khi lưu trữ dữ liệu cố định được phát triển; còn đối với các ngân hàng dữ liệu lớn thì hệ thống điều hành cơ sở dữ liệu hướng đối tượng được phát triển. Chúng ta có thể sử dụng tất cả các cơ cấu có trên danh mục các tệp tin của bộ nhớ quảng đại, các cơ chế này được tìm thấy để tổ chức một cách hiệu quả các ngân hang dữ liệu hình cây; với cấu trúc này, người ta có thể tìm kiếm rất nhanh các tệp tin với một dấu hiệu xác định (ngày tháng tạo lập tệp tin, tên tác giả…). Tuy nhiên, chúng ta phải quan tâm tới vấn đề, mà chúng liên quan đến ngân hàng dữ liệu. Một vấn đề cơ bản là sự cố định dữ liệu: Nếu chúng ta tạo lập, loại bỏ hay thay đổi các dữ liệu của một tệp tin trên bộ nhớ quảng đại, do đó, điều đó phải được giải thích ở trong bảng danh mục các dữ liệu. Nếu tác vụ này bị bẽ gãy, (thí dụ vì một lý do nào đó, tiến trình viết bị bẻ gãy (thí dụ khi mất nguồn điện), do đó, dữ liệu ở trong bảng danh mục thì không còn thích hợp nữa.)
- Ở các tác vụ tiếp theo, người ta đã làm quen một cơ cấu quan trọng ở trong mục 2.3.2, đó là việc kết hợp nhiều tác vụ thành một hoạt động nhân tử. Để phát hiện những sai sót của hệ thống tệp tin, tất cả các tác vụ ở trên danh mục tệp tin phải được thực thi với tư cách là những hoạt động nhân tử.
- Việc ký hiệu tên tệp tin với một cái tên có ghép thêm những chữ số là một sự trợ giúp quan trọng đối với người sử dụng. Trong bảng danh mục các tệp tin ở hình 4.1 có thể tồn tại 2 tệp tin với các tên giống nhau Teptin1.dat và Teptin2. dat; chúng chỉ khác nhau bởi một chữ số, do đó, đối với việc quản lý tệp tin, chúng khác nhau rõ ràng. Hình 4.2 chỉ ra sơ đồ tổ chức quản lý tệp tin. Ở đây, mỗi tệp tin có thể đứng độc lập (Tệp tin X), hoặc có thể thuộc một nhóm các tệp tin (Tệp tin 1, Tệp tin m…)
- Các nhóm nhỏ có thể gộp lại thành nhóm lớn hơn tuỳ thuộc vào người sử dụng, sao cho nó trở thành cấu trúc cây để sử dụng. Kiểu tổ chức tệp tin này thì rất phổ biến. Các đại diện nhóm được biểu thì là một thư mục.
- Một kiểu tổ chức quản lý các tệp tin như thế được dùng để tổ chức ngân hàng dữ liệu, mà trong đó, tất cả các tệp tin được mô tả với các tính chất và các hiển thị nội dung. Sự lưu ý về các tệp tin thì tồn tại ở trong một thư mục dữ liệu. Trong hầu hết các hệ điều hành, những hệ thống tệp tin có sơ đồ đơn giản được dùng.
III/ Tên tập tin (file name)
- Dữ liệu của các tiến trình không chỉ phải được bảo vệ bền vững ở trên bộ nhớ quảng đại, mà đặc biệt phải tạo khả năng truy cập qua các tiến trình khác nhau, do đó, mỗi tệp tin được biểu thị một từ khoá rõ ràng. Vì cách tổ chức hệ thống quản lý tệp tin hầu hết do con người thực hiện, cũng giống như việc lập trình các tiến trình để truy cập các tệp tin, tên của tệp tin có thể giống nhau, chỉ khác, mỗi tệp tin
có thêm một con số, coi như biểu thị một khoá tượng trưng…, thí dụ Vanban1.doc, Vanban2.doc…Cách làm này có lợi cho việc quản lý nội bộ các tệp tin (vị trí, dung lượng) một cách dễ dàng. Tệp tin có thể được thi hành hay được đặt tại một chỗ nào đó ở tron bộ nhớ mà tệp tin vẫn không bị thay đổi.
IV/ Kiểu tập tin và tên tập tin
- Một cách truyền thống, nói chung tên tệp tin gồm hai phần, chúng được ngăn cách nhau bằng một dấu chấm: phía trái dấu chấm là tên riêng, còn bên phải là phần mở rộng (extension). Phần mở rộng này cho thấy một sự trợ giúp về mục đích sử dụng của tệp tin. Thí dụ tên một tệp tin Vanban.txt, ý nói: tệp tin Vanban có kiểu mở rộng txt là một loại tệp tin text được cấu thành bởi các ký tự theo chuẩn ASCII. Có những quy ước khác nhau cho phần mở rộng, thí dụ như sau:
.dat cho dữ liệu hoặc việc tạo kiểu dạng phụ thuộc vào chương trình tạo lập;
.doc cho các văn bản text hoặc việc tạo dạng theo kiểu soạn thảo text;
.pas cho mã nguồn của chương trình viết bằng ngôn ngữ PASCAL;
.c cho mã nguồn của chương trình viết bằng ngôn ngữ C;
.h các tệp tin khai báo cho các chương trình viết bằng ngôn ngữ C;
.ps các tệp tin ngôn ngữ lệnh đồ hoạ cho máy in Laser;
.tar một hệ thống tệp tin lưu trữ trong một tệp tin;
.html tệp tin văn bản ASCII cho hệ thống text đặc biệt của trang WEB;
.Z ; .zip; .gz cho các tập tin nén lại;
.jog; .gi; .ti; .bmp cho các tệp tin về ảnh.
- Người ta ghi nhớ rằng, phần mở rộng của tệp tin chứa đựng chỉ một ít hoặc chỉ thỉnh thoảng những ký tự cổ xưa. Điều đó được lý giải rằng, đối với một hệ thống tệp tin thông thường cho phép vài ký tự làm phần mở rộng và mặc khác, nó thuận tiện cho người sử dụng không phải viết quá nhiều. Có rất nhiều kiểu phần mở rộng, mà chúng được tạo bởi hệ thống người sử dụng và chúng cũng phục vụ cho việc phân nhóm các tệp tin. Vì tên tệp tin nói chung là tuỳ ý và có thể được sử dụng thay đổi, do đó, những người lập trình đều đã chú ý tới cái đó, nhằm làm cho tệp tin chỉ rõ công dụng của chúng. Ở đầu tệp
tin, một hay nhiều kiểu chữ số ảo (magic number) được viết, mà chúng cho phép một đặc tính chính xác của nội dung tệp tin.
- Thí dụ về tên tệp tin ở trong Unix:
Tên tệp tin ở trong hệ điều hành Unix, có thể có tới 255 ký tự. Với Unix
version V, số ký tự của tên tệp tin có ít hơn 14 ký tự cho phần chính và 10 ký tự
cho phần mở rộng. Các tệp tin thực thi ở trong Unix có cấu trúc như sau:
TYPE File Header = RECORD
a_magic: LONG CARDINAL {số ảo}
a_txt: CARDINAL {độ lớn của Codesegment}
a_data: CARDINAL {độ lớn Segment của các dữ liệu khởi xướng}
a_bss: CARDINAL{độ lớn Segment của các dữ liệu không khởi xướng}
a_syms: CARDINAL {độ lớn bảng biểu trưng Symboltable}
a_entry: CARDINAL {sự bắt đầu của chương trình}
…
END
Tuy nhiên, một số ảo đứng đầu tên tệp tin; chúng không chỉ dẫn tới sự giải thích về điều đó (cho thấy tệp tin có thể thực thi), mà còn, bằng phương pháp nào tệp tin được thực hiện:
a_magic= 407B {tạo dạng tất cả: mã không được bảo vệ cũng không được sử dụng cho 1 tiến
trình khác}
a_magic= 410B {Text-Segment được bảo vệ Data- Segment được đặt ở giới hạn trang cuối
cùng (4kB) ở trong bộ nhớ}
a_magic= 413B {Text- Segment bắt đầu ở giới hạn 4kB của tệp tin; Text và Data-Segment
là bội số của 4kB}
- Để phân biệt các loại tệp tin khác nhau, đó là sự đánh giá về khả năng có thể thực thi khi khởi độngtệp tin. Loại phân biệt này thì rất đặc biệt. Sau đây chúng ta khảo sát vài thí dụ về kiểu phân biệt tệp tin này.
- Thí dụ về kiểu và tên tệp tin:
Trong Unix hay trong Windows NT, kiểu cách một tệp tin được biểu thị nhờ một cái tên. Thí dụ tên tệp tin Script.ps.gz có ý nghĩa: đó là một tệp tin nguyên bản (Script), mà ấn bản của nó đã được nén lại ở dạng tái bút (postscript) với chương trình nén zip. Để đọc được tệp tin này, đầu tiên, người ta phải gọi chương trình gunzip, và sau đó, tệp tin chuyển tới cho máy in Postscript. Kết quả chỉ dẫn là sự cải biên: nó không chỉ chứa đựng trong tệp tin, mà còn chứa đựng ở trong kiểu tệp tin được nén. Đối với tệp tin này, nếu kiểu tệp tin được chỉ dẫn trong thư mục, do đó, người ta có thể thực hiện tác vụ thứ hai. Việc tạo kiểu tệp tin phải được cắt nghĩa ở trong tệp tin hay nó phải là kiểu bởi sự xếp nhiều lần của các kiểu. Điều đó chỉ có thể nói gọn là: phải giải thích kiểu mới lập rõ ràng và phải đưa vào những hoạt động thích hợp cho các kiểu đó.
- Thí dụ về kiểu tệp tin và các hoạt động chương trình ở trong Unix: Ở trong hệ điều hành Unix có một giao diện đồ hoạ người sử dụng, một sự quản lý tệp tin bao hàm trong giao diện này. Điều đó cho thấy, các tệp tin chuyên dụng ứng với mỗi phần mở rộng sẽ dẫn tới những tác động khác nhau của chương
trình, điều đó được chỉ ra như là một Menu (thực đơn) khi kích chuột phải. Khi kích đôi chuột trái ở tại tên tệp tin, thì hoạt động được dẫn ra trong Menu sẽ bắt đầu khởi động.
- Thí dụ về kiểu tệp tin và hoạt động chương trình ở Windows NT:
Dưới Windows NT có trình soạn thảo Editor, trình này quản lý một ngân hàng dữ liệu riêng của tất cả các ứng dụng, bộ kích tạo hệ điều hành và các cấu hình hệ thống…Tất cả các chương trình ở trong hệ thống cũng như các phần mở rộng đều được khai báo ở đó. Khi kích đôi chuột trái tại trên một tệp tin ở trong trình quản lý tệp tin thì một chương trình được gọi. Người ta lưu ý rằng, trong hai thí dụ vừa nêu, thông tin về kiểu tệp tin thường không được hệ điều hành quản lý, mà nó tồn tại trong các tệp tin đặc biệt hay được chứa đựng và được quản lý với các chương trình đặc biệt. Điều đó thì không có vấn đề gì. Kiểu tốt nhất cho việc quản lý các tệp tin là tổ chức tất cả tệp tin thành một ngân hàng dữ liệu tổng thể; trong đó, các tính chất bổ sung của các tệp tin được thực hiện nhờ các đặc tính bổ sung Một vấn đề khác là việc làm sáng tỏ sự tham chiếu tệp tin, nếu các tệp tin ở trong hệ thống quản lý files thì cho phép tên tệp tin dài; nhưng khi ứng dụng (khi thực thi), tệp tin chỉ có thể được phép ngắn lại. Thí dụ có hai tên tệp tin MethodeForUser.txt và MethodeForEvery.txt cùng tồn tại ở trong hệ thống tệp tin.
Khi hai tệp tin muốn thực thi, thì 8 ký tự đầu tiên được lưu ý. Trong trường hợp này, 8 ký tự đầu tiên của hai tệp tin giống nhau. Do vậy, ở đây, một phương pháp được tìm thấy cho phép sắp xếp các tệp tin được rõ ràng hơn.
- Thí dụ về sự chuyển đổi tên tệp tin trong Windows NT:
Vì hệ điều hành Windows NT có thể quản lý cả các hệ thống tệp tin DOS bên cạnh hệ thống tệp tin NTFS (windows NT File System). Cho nên, ở đây vấn đề đặt ra là phải chuyển đổi các tệp tin có tên dài trong hệ thống NTFS thành tên tệp tin rõ ràng trong hệ thống MS-DOS. Điều này đạt được bằng các giải thuật sau đây:
(1) Tất cả các ký tự của tên tệp tin không hợp lý ở trong MS-DOS được chuyển đổi thành tên tệp tin trong hệ thống NTFS bằng cách cắt bỏ: các ký tự trống, 16 ký tự của 16 Bit- Unicode, các điểm ở đầu, ở cuối và trong khoảng tên tệp tin.
(2) Tất cả 6 ký tự đầu tiên của chuỗi ký tự đứng trước dấu chấm phân đoạn phần mở rộng được cắt bỏ; và sau đó, ký hiệu ~1 được thay vào trước điểm phân đoạn phần mở rộng. Chuỗi ký tự sau điểm phân đoạn phần mở rộng chỉ để lại 3 ký tự, các ký tự ở cuối phần này cắt bỏ và chuỗi ký tự còn lại chuyển thành chuỗi các chữ cái lớn.
(3) Nếu có một tệp tin, mà nó chỉ ra sự giống nhau với tệp tin khác, do đó, thay vì ký hiệu ~1, ký hiệu ~2 được thay vào chỗ đó. Nếu tệp tin này đã tồn tại, thì thay bằng ký hiệu ~3 hay ~4.. cho đến khi không tồn tại sự giống nhau.
V/ Tên đường dẩn
- Qua sơ đồ sắp xếp các tệp tin, việc biểu diễn tên tệp tin rõ ràng tạo ra khả năng để sắp xếp các nút có dạng hình cây, nhờ vậy, một đường dẫn đi tới một tệp tin được thực hiện thuận tiện. Tên đường dẫn của một tệp tin được tạo lập từ một chuỗi các tên nút và chứa đựng ký tự tách chia giữa các tên nút. Đó là một dấu hiệu đặc biệt, nó là biểu tường tiêu biểu cho mỗi hệ điều hành.
VI/ Thuộc tính tệp và cơ chế bảo vệ
- Trong một thư mục có chứa tên một tệp tin, thì hầu hết các thông tin về tệp tin được bảo vệ. Bên cạnh độ lớn tệp tin (tính bằng Byte hay bằng các khối trang), ngày tháng tạo lập và ngày tháng điều chỉnh, còn có các thuộc tính khác (còn gọi là các cờ hiệu khác) như ẩn khuất (Hidden), hệ thống.
Một dạng đặc biệt của các thông tin trạng thái là các thông tin bảo vệ như luật truy cập của con người và của các chương trình đối với tệp tin. Tương tự như đối với các cơ chế bảo vệ bộ nhớ, người ta đã xem xét để loại bỏ các chức năng lỗi của chương trình như các lỗi khi truy xuất chương trình của người sử dụng nhờ những biện pháp có mục đích: Những biện pháp do Uỷ ban POSI-6 đề nghị có nội dùng
như sau:
+ Phải đảm bảo nguyên tắc thu gọn đặc quyền ít nhất (least privilege) đối với việc thực hiện một nhiệm vụ.
+ Phải bổ sung việc điều khiển khi truy cập qua các thông báo rời rạc (discretionary access control). Việc truy xuất cưỡng bức thì độc lập với người tạo lập. Việc truy xuất đối tượng chỉ xảy ra bởi các tiến trình với các đặc quyền lớn hơn.
+ Phải lưu ý các ghi chép về trạng thái của đối tượng nhằm có thể phát hiện các nguyên nhân và các người làm việc trong hệ thống khi sử dụng sai trái. Ngược lại, hệ điều hành chỉ thực thi rất giới hạn các yêu cầu kể trên.
VII/ Các chức năng của tập tin
- Trong hầu hết các hệ điều hành đều có vài chức năng cơ bản, mà với chúng, các tệp tin có thể được đọc và viết. Sau đây là các chức năng cơ bản đó.
- Tạo lập tệp tin (Create File):
Để thiết đặt một tệp tin, các thông số bao gồm một chuỗi các ký tự để chuyên môn hoá các kiểu truy cập (viết/ đọc, tuần tự/ tự chọn). Khi gọi một chức năng, người ta nhận được một sự tham chiếu tệp tin, mà với sự tham chiếu này, người ta có thể truy cập tới tất cả các chức năng tiếp theo của tệp tin. Một sự tham chiếu như thế (phân đoạn tệp tin, chức danh tệp tin) có thể là một con số (chỉ số của một
trường nội bộ của việc điền vào tệp tin) hay một bộ chỉ thị ở một cấu trúc bên trong tệp tin.
- Mở một tệp tin (OpenFiele):
Khi mở một tệp tin đang tồn tại, các cấu trúc dữ liệu khác nhau được khởi xướng, do đó, việc truy cập tiếp theo diễn ra nhanh hơn. Thuộc cái đó có việc kiểm tra các quyền truy cập cũng như cơ chế các bộ đệm, cơ chế các cấu trúc truy cập.
- Đóng tệp tin (Close File):
Để đóng một tệp tin, cần phải mô tả các thông tin quản lý tệp tin tại bộ nhớ quảng đại và được phép nối tiếp việc sử dụng không gian các cấu trúc dữ liệu của việc quản lý tệp tin ở bộ nhớ chính. Tương tự như vậy, khi trao đổi thông tin giữa các tiến trình ở mục 2.4.1, người ta có thể thay thế đôi lệnh OpenFile() và CloseFile(). Thay vì nối cứng vật lý sự trao đổi thông tin, người ta được phép có một sự trao đổi thông tin không cần kết nối vật lý: Tất cả mọi sự truy cập được thực hiện theo dãy tuần tự của chúng mà không cần dùng lệnh OpenFile(). Tuy nhiên, điều đó thì không thật chính thức đối với một cách tổ chức dữ liệu cục bộ: Thay vì truy cập tệp tin, người ta chỉ xếp đặt một lần (thí dụ việc kiểm tra quyền truy cập, việc xem xét các khối tệp tin…) người ta phải thực hiện điều đó mỗi lần truy cập, do đó dẫn tới chi phí quản lý giảm thiểu đáng kể.
- Đọc và viết tệp tin (Read File/ Write File):
Gọi hệ thống như là một tham số nhận được sự tham chiếu tệp tin và một dung lượng của bộ đệm để đọc hay viết. Nếu có một tệp tin mặc định và phù hợp với dung lượng bộ đệm, do đó, tệp tin được thực hiện.
- Tìm kiếm tệp tin (Seek File):
Một tệp tin được tổ chức một cách tuần tự đơn giản và chiếm một vị trí, mà tại đó, người ta có thể viết hay đọc. Vị trí tệp tin này không chỉ được mô phỏng như những thông tin quản lý, mà còn có thể được thay thế bởi một chương trình ở trong các hệ thống các tệp tin như vậy. Bằng việt xử lý tuần tự còn gọi là truy cập tuần tự (sequential access), thí dụ khoảng từ tính của ổ đĩa mềm, người ta dẫn tới
việc truy cập tuỳ chọn còn gọi là truy cập ngẫu nhiên (random access). Điều đó thì tiện lợi khi làm việc với ổ đĩa CD ROM.
Theo quan điểm hệ điều hành, các dịch vụ hệ thống nhận được sự trợ giúp một cách khác nhau. Điều đó được bao hàm trong câu hỏi, liệu việc đọc/ viết có được lưu trữ, hay liệu chương trình người sử dụng phải tự làm điều đó, khi phản ứng của hệ thống đặt lên một trạng thái không bình thường (?). Nếu không có dữ liệu nào có thể được đọc hay được viết, vì tại hàm Read() không có dữ liệu nào được sử dụng, hay tại hàm Write() không có ổ đĩa nào sẵn sàng làm việc. Gần như hàm Read() ở trong trường hợp này thì ngăn hãm tiến trình người sử dụng, còn hàm Write() thì không. Vì lý do này, các dữ liệu được lưu trữ; khi bộ đệm tràn hay ổ đĩa có khiếm khuyết, một thông báo lỗi được đưa trở lại. Một cách thuận lợi, khi đó có nhiều chức nằng được bổ sung như: DeleteFile(), RemameFile(), CopyFile(), AppendFile(), FlushBuffer(),…Tất cả đều phụ thuộc vào hệ điều hành một cách mạnh mẽ.
VIII/ Các tập tin được ánh xạ bộ nhớ (memory mapping file)
- Các tệp tin với việc truy cập tuỳ chọn thường được làm việc mạnh mẽ trên bộ nhớ chính (RAM). Người ta có thể nghiên cứu tiếp sự phân tích như sau: Người ta có thể xem xét các tệp tin ở trên bộ nhớ quảng đại như là một sự kế tục của bộ nhớ chính trên bộ nhớ quảng đại. Cho nên, điều đó đặt ra, phải thực hiện bước tiếp theo, và một cách đúng mức (trước sau như một) phải tái tạo một sự kết nối trực tiếp một tệp tin với một khoảng của bộ nhớ chính, mà tệp tin được tách chia thành những khoảng có chiều dài bằng một trang. Khi đó, người ta gọi là tệp tin ảnh xạ bộ nhớ; tương tự, bộ nhớ cũng được phân chia thành các trang.
- Việc thực thi một cơ chế như vậy thì tương đối đơn giản: Khi một miền mà trên đó các trang của một tiến trình được nạp, do đó, miền của tệp tin được chỉ ra ở trên bộ nhớ quảng đại. Điều đó, mang lại những lợi thế khác nhau như sau:
+ Độ nhanh nhạy:
Trang của tệp tin được đọc, nếu nó được sử dụng; việc sao chép không cần thiết được loại bỏ.
+ Ghi vào bộ đệm tự động:
Ở hầu hết các chương trình sử dụng các tệp tin, một bộ đệm logic được viết để cần thiết thực hiện vài tác vụ đọc/ viết. Điều đó thì khác biệt với ảnh xạ bộ nhớ: Với cơ chế trang (paging mechanismus), việc ghi vào bộ đệm được thực hiện một cách tự động và hiệu nghiệm bởi hệ điều hành.
- Các tác vụ cờ hiệu cho phép sử dụng cùng nhau các khoảng bộ nhớ với nhiều tiến trình. Từ lý do này, có một cơ chế như thế ở trong hệ điều hành. Tuy nhiên, cơ chế này còn tồn tại một giới hạn, do đó, một tệp tin đang tồn tại không chỉ được đọc và viết, mà còn thay đổi chiều dài của nó. Khi đó, với ảnh xạ bộ nhớ, vấn đề vừa nói đã được giải quyết.
IX/ Các tập tin đặc biệt (special file )
- Có những cơ chế khác nhau của hệ điều hành, mà với sự trợ giúp của hệ thống tệp tin, các cơ chế này có thể được chuyển đổi một cách hài hoà; mà không cần phải lý giải hay tạo lập những tệp tin đích thực.
Một trong những phương pháp mở rộng nổi tiếng nhất của hệ điều hành Unix là việc mô hình hóa các thiết bị vật lý như những tệp tin đặc biệt. Mỗi cái tên của một tệp tin được thu xếp là một thiết bị vật lý; dĩ nhiên, các tệp tin này được biểu thị với trạng thái của một tệp tin đặc biệt. Tất cả các việc truy cập và các thay đổi trạng thái đối với tệp tin biểu trưng này (symbol file) đều có tác dụng trực tiếp lên thiết bị, chứ không phải tác dụng lên tệp tin. Nếu tệp tin được viết lên một thiết bị như thế, do đó, khi thực hiện, tệp tin sẽ được dịch chuyển tới thiết bị (chẳng hạn tới một thiết bị đầu cuối nào đó) và khi đó, chúng được thể hiện trên màn hình.
- Nếu một tiến trình mở tệp tin đặc biệt của thiết bị đầu cuối để đọc, do đó, nó sẽ cảm nhận tất cả các ký tự được viết trên bàn phím.
- Lợi ích của việc mô hình hóa như vậy nằm trong những điều có thật, rằng một mặt, nó đã tạo ra khả năng cho người sử dụng truy cập trực tiếp và hiệu quả lên các tính chất vật lý của thiết bị; mặt khác, các cơ chế quản lý và bảo vệ của hệ điều hành hoạt động rất hiệu quả; và do đó, việc truy cập được điều chỉnh và điều khiển một cách hợp lý.
X/ Việc thực thi cơ chế tập tin
X.1 Biểu diển bộ nớ liên tục
- Cấu trúc cơ bản của một phương pháp như thế thì tương đối đơn giản: Bắt đầu không gian bộ nhớ là một chỉ số hay một thư mục, mà trong đó các tệp tin được liệt kê vào; và không gian còn lại để ghi tiếp các tệp tin. Một tệp tin thì được viết liên tục với nhau trong một đoạn. Ý tưởng vừa nêu trên phát triển theo thời gian, trong đó mỗi tệp tin chiếm một vị trí của đĩa từ và các thư mục là sự khái quát các ngăn xếp với các dãy ở trong đĩa từ. Vì ý tưởng này thì quá cứng nhắc để thay đổi tệp tin, do đó, nó chỉ được sử dụng để thu xếp chỗ cho nhiều tệp tin nhỏ (gọi là các đối tượng) ở trong một tệp tin lớn (gọi là thư viện các tệp tin).
X.2/ Biểu diển bộ nhớ kiểu danh sách
- Việc quyết định cho một khoảng bộ nhớ liên tục là ở chỗ: bộ nhớ phải được phân ra những khoảng có độ lớn bằng nhau (block) và tất cả các block của một tệp tin phải được kết nối trong một danh sách. Ưu điểm của phương pháp này là ở chỗ, tại một thư mục hỏng (bị xoá nhầm lẫn…) được biểu thị gấp đôi và các thông tin tệp tin (tên, các quyền truy cập…) được chứa đựng ở đầu tệp tin.
- Ở việc bẻ gãy một tiến trình hay sau khi hoàn thành một tiến trình, một câu hỏi được đặt ra là: Bạn lưu trữ dữ liệu của bạn như thế nào, để sau này, bạn có thể làm việc trở lại với cái bạn đã có? Tính chất này của dữ liệu gọi là cố định dữ liệu, người ta đạt được khi dữ liệu được viết vào bộ nhớ quảng đại trước khi kết thúc chương trình. Tuy nhiên, chúng ta vẫn còn một vấn đề: Ở phần lớn bộ nhớ quảng đại, danh sách các tệp tin quá dài, ấy nhưng người ta muốn thời gian truy cập phải ngắn. Do đó, trường hợp này chỉ có thể dẫn tới một cách thức tổ chức tệp tin để quản lý các tệp dữ liệu trong hệ thống máy tính.
II/ Hệ thống tập tin (Files-Systems)
- Để phục vụ việc quản lý tệp tin, đầu tiên, chúng ta viết tất cả các tệp tin vào trong một danh sách và cần lưu ý: chúng ta cần phải biết một cái gì đó về tệp tin, thí dụ ngày tháng năm tạo lập, dung lượng, vị trí của bộ nhớ quảng đại, luật truy cập…
- Một bảng như thế thì không khác mấy một ngân hàng dữ liệu. Nếu chúng ta dẫn tới mỗi thuộc tính dữ liệu và kể cả các tác vụ (như các thủ tục, các phương pháp tiến hành…), mà nó được xử lý, do đó, chúng ta nhận được một ngân hàng dữ liệu hướng đối tượng. Ngoài ra, nếu chúng ta có các đối tượng âm thanh và hình ảnh, mà chúng được một chương trình sinh ra hay được sử dụng, lúc đó,
chúng ta cần dùng một ngân hàng dữ liệu đa phương dụng (multimedia- databank), trong đó, thông tin được chứa đựng để làm đồng bộ hai phương dụng.
- Một cách khái quát, khi không có đối tượng nào thì việc điều hành khi lưu trữ dữ liệu cố định được phát triển; còn đối với các ngân hàng dữ liệu lớn thì hệ thống điều hành cơ sở dữ liệu hướng đối tượng được phát triển. Chúng ta có thể sử dụng tất cả các cơ cấu có trên danh mục các tệp tin của bộ nhớ quảng đại, các cơ chế này được tìm thấy để tổ chức một cách hiệu quả các ngân hang dữ liệu hình cây; với cấu trúc này, người ta có thể tìm kiếm rất nhanh các tệp tin với một dấu hiệu xác định (ngày tháng tạo lập tệp tin, tên tác giả…). Tuy nhiên, chúng ta phải quan tâm tới vấn đề, mà chúng liên quan đến ngân hàng dữ liệu. Một vấn đề cơ bản là sự cố định dữ liệu: Nếu chúng ta tạo lập, loại bỏ hay thay đổi các dữ liệu của một tệp tin trên bộ nhớ quảng đại, do đó, điều đó phải được giải thích ở trong bảng danh mục các dữ liệu. Nếu tác vụ này bị bẽ gãy, (thí dụ vì một lý do nào đó, tiến trình viết bị bẻ gãy (thí dụ khi mất nguồn điện), do đó, dữ liệu ở trong bảng danh mục thì không còn thích hợp nữa.)
- Ở các tác vụ tiếp theo, người ta đã làm quen một cơ cấu quan trọng ở trong mục 2.3.2, đó là việc kết hợp nhiều tác vụ thành một hoạt động nhân tử. Để phát hiện những sai sót của hệ thống tệp tin, tất cả các tác vụ ở trên danh mục tệp tin phải được thực thi với tư cách là những hoạt động nhân tử.
- Việc ký hiệu tên tệp tin với một cái tên có ghép thêm những chữ số là một sự trợ giúp quan trọng đối với người sử dụng. Trong bảng danh mục các tệp tin ở hình 4.1 có thể tồn tại 2 tệp tin với các tên giống nhau Teptin1.dat và Teptin2. dat; chúng chỉ khác nhau bởi một chữ số, do đó, đối với việc quản lý tệp tin, chúng khác nhau rõ ràng. Hình 4.2 chỉ ra sơ đồ tổ chức quản lý tệp tin. Ở đây, mỗi tệp tin có thể đứng độc lập (Tệp tin X), hoặc có thể thuộc một nhóm các tệp tin (Tệp tin 1, Tệp tin m…)
- Các nhóm nhỏ có thể gộp lại thành nhóm lớn hơn tuỳ thuộc vào người sử dụng, sao cho nó trở thành cấu trúc cây để sử dụng. Kiểu tổ chức tệp tin này thì rất phổ biến. Các đại diện nhóm được biểu thì là một thư mục.
- Một kiểu tổ chức quản lý các tệp tin như thế được dùng để tổ chức ngân hàng dữ liệu, mà trong đó, tất cả các tệp tin được mô tả với các tính chất và các hiển thị nội dung. Sự lưu ý về các tệp tin thì tồn tại ở trong một thư mục dữ liệu. Trong hầu hết các hệ điều hành, những hệ thống tệp tin có sơ đồ đơn giản được dùng.
III/ Tên tập tin (file name)
- Dữ liệu của các tiến trình không chỉ phải được bảo vệ bền vững ở trên bộ nhớ quảng đại, mà đặc biệt phải tạo khả năng truy cập qua các tiến trình khác nhau, do đó, mỗi tệp tin được biểu thị một từ khoá rõ ràng. Vì cách tổ chức hệ thống quản lý tệp tin hầu hết do con người thực hiện, cũng giống như việc lập trình các tiến trình để truy cập các tệp tin, tên của tệp tin có thể giống nhau, chỉ khác, mỗi tệp tin
có thêm một con số, coi như biểu thị một khoá tượng trưng…, thí dụ Vanban1.doc, Vanban2.doc…Cách làm này có lợi cho việc quản lý nội bộ các tệp tin (vị trí, dung lượng) một cách dễ dàng. Tệp tin có thể được thi hành hay được đặt tại một chỗ nào đó ở tron bộ nhớ mà tệp tin vẫn không bị thay đổi.
IV/ Kiểu tập tin và tên tập tin
- Một cách truyền thống, nói chung tên tệp tin gồm hai phần, chúng được ngăn cách nhau bằng một dấu chấm: phía trái dấu chấm là tên riêng, còn bên phải là phần mở rộng (extension). Phần mở rộng này cho thấy một sự trợ giúp về mục đích sử dụng của tệp tin. Thí dụ tên một tệp tin Vanban.txt, ý nói: tệp tin Vanban có kiểu mở rộng txt là một loại tệp tin text được cấu thành bởi các ký tự theo chuẩn ASCII. Có những quy ước khác nhau cho phần mở rộng, thí dụ như sau:
.dat cho dữ liệu hoặc việc tạo kiểu dạng phụ thuộc vào chương trình tạo lập;
.doc cho các văn bản text hoặc việc tạo dạng theo kiểu soạn thảo text;
.pas cho mã nguồn của chương trình viết bằng ngôn ngữ PASCAL;
.c cho mã nguồn của chương trình viết bằng ngôn ngữ C;
.h các tệp tin khai báo cho các chương trình viết bằng ngôn ngữ C;
.ps các tệp tin ngôn ngữ lệnh đồ hoạ cho máy in Laser;
.tar một hệ thống tệp tin lưu trữ trong một tệp tin;
.html tệp tin văn bản ASCII cho hệ thống text đặc biệt của trang WEB;
.Z ; .zip; .gz cho các tập tin nén lại;
.jog; .gi; .ti; .bmp cho các tệp tin về ảnh.
- Người ta ghi nhớ rằng, phần mở rộng của tệp tin chứa đựng chỉ một ít hoặc chỉ thỉnh thoảng những ký tự cổ xưa. Điều đó được lý giải rằng, đối với một hệ thống tệp tin thông thường cho phép vài ký tự làm phần mở rộng và mặc khác, nó thuận tiện cho người sử dụng không phải viết quá nhiều. Có rất nhiều kiểu phần mở rộng, mà chúng được tạo bởi hệ thống người sử dụng và chúng cũng phục vụ cho việc phân nhóm các tệp tin. Vì tên tệp tin nói chung là tuỳ ý và có thể được sử dụng thay đổi, do đó, những người lập trình đều đã chú ý tới cái đó, nhằm làm cho tệp tin chỉ rõ công dụng của chúng. Ở đầu tệp
tin, một hay nhiều kiểu chữ số ảo (magic number) được viết, mà chúng cho phép một đặc tính chính xác của nội dung tệp tin.
- Thí dụ về tên tệp tin ở trong Unix:
Tên tệp tin ở trong hệ điều hành Unix, có thể có tới 255 ký tự. Với Unix
version V, số ký tự của tên tệp tin có ít hơn 14 ký tự cho phần chính và 10 ký tự
cho phần mở rộng. Các tệp tin thực thi ở trong Unix có cấu trúc như sau:
TYPE File Header = RECORD
a_magic: LONG CARDINAL {số ảo}
a_txt: CARDINAL {độ lớn của Codesegment}
a_data: CARDINAL {độ lớn Segment của các dữ liệu khởi xướng}
a_bss: CARDINAL{độ lớn Segment của các dữ liệu không khởi xướng}
a_syms: CARDINAL {độ lớn bảng biểu trưng Symboltable}
a_entry: CARDINAL {sự bắt đầu của chương trình}
…
END
Tuy nhiên, một số ảo đứng đầu tên tệp tin; chúng không chỉ dẫn tới sự giải thích về điều đó (cho thấy tệp tin có thể thực thi), mà còn, bằng phương pháp nào tệp tin được thực hiện:
a_magic= 407B {tạo dạng tất cả: mã không được bảo vệ cũng không được sử dụng cho 1 tiến
trình khác}
a_magic= 410B {Text-Segment được bảo vệ Data- Segment được đặt ở giới hạn trang cuối
cùng (4kB) ở trong bộ nhớ}
a_magic= 413B {Text- Segment bắt đầu ở giới hạn 4kB của tệp tin; Text và Data-Segment
là bội số của 4kB}
- Để phân biệt các loại tệp tin khác nhau, đó là sự đánh giá về khả năng có thể thực thi khi khởi độngtệp tin. Loại phân biệt này thì rất đặc biệt. Sau đây chúng ta khảo sát vài thí dụ về kiểu phân biệt tệp tin này.
- Thí dụ về kiểu và tên tệp tin:
Trong Unix hay trong Windows NT, kiểu cách một tệp tin được biểu thị nhờ một cái tên. Thí dụ tên tệp tin Script.ps.gz có ý nghĩa: đó là một tệp tin nguyên bản (Script), mà ấn bản của nó đã được nén lại ở dạng tái bút (postscript) với chương trình nén zip. Để đọc được tệp tin này, đầu tiên, người ta phải gọi chương trình gunzip, và sau đó, tệp tin chuyển tới cho máy in Postscript. Kết quả chỉ dẫn là sự cải biên: nó không chỉ chứa đựng trong tệp tin, mà còn chứa đựng ở trong kiểu tệp tin được nén. Đối với tệp tin này, nếu kiểu tệp tin được chỉ dẫn trong thư mục, do đó, người ta có thể thực hiện tác vụ thứ hai. Việc tạo kiểu tệp tin phải được cắt nghĩa ở trong tệp tin hay nó phải là kiểu bởi sự xếp nhiều lần của các kiểu. Điều đó chỉ có thể nói gọn là: phải giải thích kiểu mới lập rõ ràng và phải đưa vào những hoạt động thích hợp cho các kiểu đó.
- Thí dụ về kiểu tệp tin và các hoạt động chương trình ở trong Unix: Ở trong hệ điều hành Unix có một giao diện đồ hoạ người sử dụng, một sự quản lý tệp tin bao hàm trong giao diện này. Điều đó cho thấy, các tệp tin chuyên dụng ứng với mỗi phần mở rộng sẽ dẫn tới những tác động khác nhau của chương
trình, điều đó được chỉ ra như là một Menu (thực đơn) khi kích chuột phải. Khi kích đôi chuột trái ở tại tên tệp tin, thì hoạt động được dẫn ra trong Menu sẽ bắt đầu khởi động.
- Thí dụ về kiểu tệp tin và hoạt động chương trình ở Windows NT:
Dưới Windows NT có trình soạn thảo Editor, trình này quản lý một ngân hàng dữ liệu riêng của tất cả các ứng dụng, bộ kích tạo hệ điều hành và các cấu hình hệ thống…Tất cả các chương trình ở trong hệ thống cũng như các phần mở rộng đều được khai báo ở đó. Khi kích đôi chuột trái tại trên một tệp tin ở trong trình quản lý tệp tin thì một chương trình được gọi. Người ta lưu ý rằng, trong hai thí dụ vừa nêu, thông tin về kiểu tệp tin thường không được hệ điều hành quản lý, mà nó tồn tại trong các tệp tin đặc biệt hay được chứa đựng và được quản lý với các chương trình đặc biệt. Điều đó thì không có vấn đề gì. Kiểu tốt nhất cho việc quản lý các tệp tin là tổ chức tất cả tệp tin thành một ngân hàng dữ liệu tổng thể; trong đó, các tính chất bổ sung của các tệp tin được thực hiện nhờ các đặc tính bổ sung Một vấn đề khác là việc làm sáng tỏ sự tham chiếu tệp tin, nếu các tệp tin ở trong hệ thống quản lý files thì cho phép tên tệp tin dài; nhưng khi ứng dụng (khi thực thi), tệp tin chỉ có thể được phép ngắn lại. Thí dụ có hai tên tệp tin MethodeForUser.txt và MethodeForEvery.txt cùng tồn tại ở trong hệ thống tệp tin.
Khi hai tệp tin muốn thực thi, thì 8 ký tự đầu tiên được lưu ý. Trong trường hợp này, 8 ký tự đầu tiên của hai tệp tin giống nhau. Do vậy, ở đây, một phương pháp được tìm thấy cho phép sắp xếp các tệp tin được rõ ràng hơn.
- Thí dụ về sự chuyển đổi tên tệp tin trong Windows NT:
Vì hệ điều hành Windows NT có thể quản lý cả các hệ thống tệp tin DOS bên cạnh hệ thống tệp tin NTFS (windows NT File System). Cho nên, ở đây vấn đề đặt ra là phải chuyển đổi các tệp tin có tên dài trong hệ thống NTFS thành tên tệp tin rõ ràng trong hệ thống MS-DOS. Điều này đạt được bằng các giải thuật sau đây:
(1) Tất cả các ký tự của tên tệp tin không hợp lý ở trong MS-DOS được chuyển đổi thành tên tệp tin trong hệ thống NTFS bằng cách cắt bỏ: các ký tự trống, 16 ký tự của 16 Bit- Unicode, các điểm ở đầu, ở cuối và trong khoảng tên tệp tin.
(2) Tất cả 6 ký tự đầu tiên của chuỗi ký tự đứng trước dấu chấm phân đoạn phần mở rộng được cắt bỏ; và sau đó, ký hiệu ~1 được thay vào trước điểm phân đoạn phần mở rộng. Chuỗi ký tự sau điểm phân đoạn phần mở rộng chỉ để lại 3 ký tự, các ký tự ở cuối phần này cắt bỏ và chuỗi ký tự còn lại chuyển thành chuỗi các chữ cái lớn.
(3) Nếu có một tệp tin, mà nó chỉ ra sự giống nhau với tệp tin khác, do đó, thay vì ký hiệu ~1, ký hiệu ~2 được thay vào chỗ đó. Nếu tệp tin này đã tồn tại, thì thay bằng ký hiệu ~3 hay ~4.. cho đến khi không tồn tại sự giống nhau.
V/ Tên đường dẩn
- Qua sơ đồ sắp xếp các tệp tin, việc biểu diễn tên tệp tin rõ ràng tạo ra khả năng để sắp xếp các nút có dạng hình cây, nhờ vậy, một đường dẫn đi tới một tệp tin được thực hiện thuận tiện. Tên đường dẫn của một tệp tin được tạo lập từ một chuỗi các tên nút và chứa đựng ký tự tách chia giữa các tên nút. Đó là một dấu hiệu đặc biệt, nó là biểu tường tiêu biểu cho mỗi hệ điều hành.
VI/ Thuộc tính tệp và cơ chế bảo vệ
- Trong một thư mục có chứa tên một tệp tin, thì hầu hết các thông tin về tệp tin được bảo vệ. Bên cạnh độ lớn tệp tin (tính bằng Byte hay bằng các khối trang), ngày tháng tạo lập và ngày tháng điều chỉnh, còn có các thuộc tính khác (còn gọi là các cờ hiệu khác) như ẩn khuất (Hidden), hệ thống.
Một dạng đặc biệt của các thông tin trạng thái là các thông tin bảo vệ như luật truy cập của con người và của các chương trình đối với tệp tin. Tương tự như đối với các cơ chế bảo vệ bộ nhớ, người ta đã xem xét để loại bỏ các chức năng lỗi của chương trình như các lỗi khi truy xuất chương trình của người sử dụng nhờ những biện pháp có mục đích: Những biện pháp do Uỷ ban POSI-6 đề nghị có nội dùng
như sau:
+ Phải đảm bảo nguyên tắc thu gọn đặc quyền ít nhất (least privilege) đối với việc thực hiện một nhiệm vụ.
+ Phải bổ sung việc điều khiển khi truy cập qua các thông báo rời rạc (discretionary access control). Việc truy xuất cưỡng bức thì độc lập với người tạo lập. Việc truy xuất đối tượng chỉ xảy ra bởi các tiến trình với các đặc quyền lớn hơn.
+ Phải lưu ý các ghi chép về trạng thái của đối tượng nhằm có thể phát hiện các nguyên nhân và các người làm việc trong hệ thống khi sử dụng sai trái. Ngược lại, hệ điều hành chỉ thực thi rất giới hạn các yêu cầu kể trên.
VII/ Các chức năng của tập tin
- Trong hầu hết các hệ điều hành đều có vài chức năng cơ bản, mà với chúng, các tệp tin có thể được đọc và viết. Sau đây là các chức năng cơ bản đó.
- Tạo lập tệp tin (Create File):
Để thiết đặt một tệp tin, các thông số bao gồm một chuỗi các ký tự để chuyên môn hoá các kiểu truy cập (viết/ đọc, tuần tự/ tự chọn). Khi gọi một chức năng, người ta nhận được một sự tham chiếu tệp tin, mà với sự tham chiếu này, người ta có thể truy cập tới tất cả các chức năng tiếp theo của tệp tin. Một sự tham chiếu như thế (phân đoạn tệp tin, chức danh tệp tin) có thể là một con số (chỉ số của một
trường nội bộ của việc điền vào tệp tin) hay một bộ chỉ thị ở một cấu trúc bên trong tệp tin.
- Mở một tệp tin (OpenFiele):
Khi mở một tệp tin đang tồn tại, các cấu trúc dữ liệu khác nhau được khởi xướng, do đó, việc truy cập tiếp theo diễn ra nhanh hơn. Thuộc cái đó có việc kiểm tra các quyền truy cập cũng như cơ chế các bộ đệm, cơ chế các cấu trúc truy cập.
- Đóng tệp tin (Close File):
Để đóng một tệp tin, cần phải mô tả các thông tin quản lý tệp tin tại bộ nhớ quảng đại và được phép nối tiếp việc sử dụng không gian các cấu trúc dữ liệu của việc quản lý tệp tin ở bộ nhớ chính. Tương tự như vậy, khi trao đổi thông tin giữa các tiến trình ở mục 2.4.1, người ta có thể thay thế đôi lệnh OpenFile() và CloseFile(). Thay vì nối cứng vật lý sự trao đổi thông tin, người ta được phép có một sự trao đổi thông tin không cần kết nối vật lý: Tất cả mọi sự truy cập được thực hiện theo dãy tuần tự của chúng mà không cần dùng lệnh OpenFile(). Tuy nhiên, điều đó thì không thật chính thức đối với một cách tổ chức dữ liệu cục bộ: Thay vì truy cập tệp tin, người ta chỉ xếp đặt một lần (thí dụ việc kiểm tra quyền truy cập, việc xem xét các khối tệp tin…) người ta phải thực hiện điều đó mỗi lần truy cập, do đó dẫn tới chi phí quản lý giảm thiểu đáng kể.
- Đọc và viết tệp tin (Read File/ Write File):
Gọi hệ thống như là một tham số nhận được sự tham chiếu tệp tin và một dung lượng của bộ đệm để đọc hay viết. Nếu có một tệp tin mặc định và phù hợp với dung lượng bộ đệm, do đó, tệp tin được thực hiện.
- Tìm kiếm tệp tin (Seek File):
Một tệp tin được tổ chức một cách tuần tự đơn giản và chiếm một vị trí, mà tại đó, người ta có thể viết hay đọc. Vị trí tệp tin này không chỉ được mô phỏng như những thông tin quản lý, mà còn có thể được thay thế bởi một chương trình ở trong các hệ thống các tệp tin như vậy. Bằng việt xử lý tuần tự còn gọi là truy cập tuần tự (sequential access), thí dụ khoảng từ tính của ổ đĩa mềm, người ta dẫn tới
việc truy cập tuỳ chọn còn gọi là truy cập ngẫu nhiên (random access). Điều đó thì tiện lợi khi làm việc với ổ đĩa CD ROM.
Theo quan điểm hệ điều hành, các dịch vụ hệ thống nhận được sự trợ giúp một cách khác nhau. Điều đó được bao hàm trong câu hỏi, liệu việc đọc/ viết có được lưu trữ, hay liệu chương trình người sử dụng phải tự làm điều đó, khi phản ứng của hệ thống đặt lên một trạng thái không bình thường (?). Nếu không có dữ liệu nào có thể được đọc hay được viết, vì tại hàm Read() không có dữ liệu nào được sử dụng, hay tại hàm Write() không có ổ đĩa nào sẵn sàng làm việc. Gần như hàm Read() ở trong trường hợp này thì ngăn hãm tiến trình người sử dụng, còn hàm Write() thì không. Vì lý do này, các dữ liệu được lưu trữ; khi bộ đệm tràn hay ổ đĩa có khiếm khuyết, một thông báo lỗi được đưa trở lại. Một cách thuận lợi, khi đó có nhiều chức nằng được bổ sung như: DeleteFile(), RemameFile(), CopyFile(), AppendFile(), FlushBuffer(),…Tất cả đều phụ thuộc vào hệ điều hành một cách mạnh mẽ.
VIII/ Các tập tin được ánh xạ bộ nhớ (memory mapping file)
- Các tệp tin với việc truy cập tuỳ chọn thường được làm việc mạnh mẽ trên bộ nhớ chính (RAM). Người ta có thể nghiên cứu tiếp sự phân tích như sau: Người ta có thể xem xét các tệp tin ở trên bộ nhớ quảng đại như là một sự kế tục của bộ nhớ chính trên bộ nhớ quảng đại. Cho nên, điều đó đặt ra, phải thực hiện bước tiếp theo, và một cách đúng mức (trước sau như một) phải tái tạo một sự kết nối trực tiếp một tệp tin với một khoảng của bộ nhớ chính, mà tệp tin được tách chia thành những khoảng có chiều dài bằng một trang. Khi đó, người ta gọi là tệp tin ảnh xạ bộ nhớ; tương tự, bộ nhớ cũng được phân chia thành các trang.
- Việc thực thi một cơ chế như vậy thì tương đối đơn giản: Khi một miền mà trên đó các trang của một tiến trình được nạp, do đó, miền của tệp tin được chỉ ra ở trên bộ nhớ quảng đại. Điều đó, mang lại những lợi thế khác nhau như sau:
+ Độ nhanh nhạy:
Trang của tệp tin được đọc, nếu nó được sử dụng; việc sao chép không cần thiết được loại bỏ.
+ Ghi vào bộ đệm tự động:
Ở hầu hết các chương trình sử dụng các tệp tin, một bộ đệm logic được viết để cần thiết thực hiện vài tác vụ đọc/ viết. Điều đó thì khác biệt với ảnh xạ bộ nhớ: Với cơ chế trang (paging mechanismus), việc ghi vào bộ đệm được thực hiện một cách tự động và hiệu nghiệm bởi hệ điều hành.
- Các tác vụ cờ hiệu cho phép sử dụng cùng nhau các khoảng bộ nhớ với nhiều tiến trình. Từ lý do này, có một cơ chế như thế ở trong hệ điều hành. Tuy nhiên, cơ chế này còn tồn tại một giới hạn, do đó, một tệp tin đang tồn tại không chỉ được đọc và viết, mà còn thay đổi chiều dài của nó. Khi đó, với ảnh xạ bộ nhớ, vấn đề vừa nói đã được giải quyết.
IX/ Các tập tin đặc biệt (special file )
- Có những cơ chế khác nhau của hệ điều hành, mà với sự trợ giúp của hệ thống tệp tin, các cơ chế này có thể được chuyển đổi một cách hài hoà; mà không cần phải lý giải hay tạo lập những tệp tin đích thực.
Một trong những phương pháp mở rộng nổi tiếng nhất của hệ điều hành Unix là việc mô hình hóa các thiết bị vật lý như những tệp tin đặc biệt. Mỗi cái tên của một tệp tin được thu xếp là một thiết bị vật lý; dĩ nhiên, các tệp tin này được biểu thị với trạng thái của một tệp tin đặc biệt. Tất cả các việc truy cập và các thay đổi trạng thái đối với tệp tin biểu trưng này (symbol file) đều có tác dụng trực tiếp lên thiết bị, chứ không phải tác dụng lên tệp tin. Nếu tệp tin được viết lên một thiết bị như thế, do đó, khi thực hiện, tệp tin sẽ được dịch chuyển tới thiết bị (chẳng hạn tới một thiết bị đầu cuối nào đó) và khi đó, chúng được thể hiện trên màn hình.
- Nếu một tiến trình mở tệp tin đặc biệt của thiết bị đầu cuối để đọc, do đó, nó sẽ cảm nhận tất cả các ký tự được viết trên bàn phím.
- Lợi ích của việc mô hình hóa như vậy nằm trong những điều có thật, rằng một mặt, nó đã tạo ra khả năng cho người sử dụng truy cập trực tiếp và hiệu quả lên các tính chất vật lý của thiết bị; mặt khác, các cơ chế quản lý và bảo vệ của hệ điều hành hoạt động rất hiệu quả; và do đó, việc truy cập được điều chỉnh và điều khiển một cách hợp lý.
X/ Việc thực thi cơ chế tập tin
X.1 Biểu diển bộ nớ liên tục
- Cấu trúc cơ bản của một phương pháp như thế thì tương đối đơn giản: Bắt đầu không gian bộ nhớ là một chỉ số hay một thư mục, mà trong đó các tệp tin được liệt kê vào; và không gian còn lại để ghi tiếp các tệp tin. Một tệp tin thì được viết liên tục với nhau trong một đoạn. Ý tưởng vừa nêu trên phát triển theo thời gian, trong đó mỗi tệp tin chiếm một vị trí của đĩa từ và các thư mục là sự khái quát các ngăn xếp với các dãy ở trong đĩa từ. Vì ý tưởng này thì quá cứng nhắc để thay đổi tệp tin, do đó, nó chỉ được sử dụng để thu xếp chỗ cho nhiều tệp tin nhỏ (gọi là các đối tượng) ở trong một tệp tin lớn (gọi là thư viện các tệp tin).
X.2/ Biểu diển bộ nhớ kiểu danh sách
- Việc quyết định cho một khoảng bộ nhớ liên tục là ở chỗ: bộ nhớ phải được phân ra những khoảng có độ lớn bằng nhau (block) và tất cả các block của một tệp tin phải được kết nối trong một danh sách. Ưu điểm của phương pháp này là ở chỗ, tại một thư mục hỏng (bị xoá nhầm lẫn…) được biểu thị gấp đôi và các thông tin tệp tin (tên, các quyền truy cập…) được chứa đựng ở đầu tệp tin.
LeQuocKhanh-11H1010059- Tổng số bài gửi : 59
Join date : 16/02/2012
Age : 36
Đến từ : HCM
Những thông tin cần cho sản sinh hệ thống!!!
- o Loại CPU, Số CPU
o Dung lượng bộ nhớ trong
o Các loại thiết bị, Cụ thể mỗi loại (Số lượng, Số hiệu, Địa chỉ, Số hiệu ngắt,...)
o Các thông số của HĐH: Số bộ đệm (Buffer), Dung lượng mỗi bộ đệm, Thuật giải điều phối CPU, Số tiến trình tối đa được hỗ trợ song song,..
TranThiMyKhanh(I12A)- Tổng số bài gửi : 24
Join date : 02/03/2012
Age : 34
Re: Thảo luận Bài 3
[quote="trinhvanminh_11h1010077"]
Mình có ý này, theo mình nghĩ, mỗi OS đều có tính năng riêng của chúng.
- Linux/Unix : đa phần dành các dịch vụ mạng.
- WIndows/Apple : dành cho End User .
Chính mỗi xu hướng khác nhau,nên phát triển cũng khác nhau :
- Linux/Unix : đa phần sử dụng command mode nhằm tối ưu hóa hoạt động các dịch vụ mạng
- Windows/Apple : đa phần sử dụng giao diện thân thiện người dùng (GUI).
Ý trên của bạn mình không đồng tình lắm. Mình nghĩ tùy theo xu hướng nhắm đến mục đích gì để mà phát triển thôi.
- Vì Linux cũng có giao diện, và các hãng đang xây dựng giao diện sao cho giống với Windows (Ubuntu,KDE,GOME,...).
TranHoangNhanI12C đã viết:¤ Hiểu đơn giản thế này :
- Giao diện đồ họa Graphical User Interface (GUI) : Hiển thị trực quan cho người dùng, nhưng ko hiển thị ra hết 100% tính năng HĐH Windows. Những tính năng còn lại ẩn chứa trong giao diện dòng lệnh Command Line Interface (CLI).
- Giao diện dòng lệnh Command Line Interface (CLI) : Hiện thị chế độ dòng lệnh màn hình đen, tuy không trực quan nhưng chứa đựng 100% tính năng HĐH Windows.
¤ Thêm 1 tí nữa dành cho dân Quản trị mạng :
- Linux xài giao diện dòng lệnh, rất là bảo mật trong việc chạy Server.
- Windows từ đó tới giờ xài giao diện dòng lệnh, thấy Linux và Unix xài giao diện dòng lệnh tốt và bảo mật quá nên tới Windows Server 2008 đã bắt đầu hỗ trợ cả 2 giao diện đồ hoạ và dòng lệnh.
Mình có ý này, theo mình nghĩ, mỗi OS đều có tính năng riêng của chúng.
- Linux/Unix : đa phần dành các dịch vụ mạng.
- WIndows/Apple : dành cho End User .
Chính mỗi xu hướng khác nhau,nên phát triển cũng khác nhau :
- Linux/Unix : đa phần sử dụng command mode nhằm tối ưu hóa hoạt động các dịch vụ mạng
- Windows/Apple : đa phần sử dụng giao diện thân thiện người dùng (GUI).
Ý trên của bạn mình không đồng tình lắm. Mình nghĩ tùy theo xu hướng nhắm đến mục đích gì để mà phát triển thôi.
- Vì Linux cũng có giao diện, và các hãng đang xây dựng giao diện sao cho giống với Windows (Ubuntu,KDE,GOME,...).
HuynhMinhChanh(i91C)- Tổng số bài gửi : 47
Join date : 02/03/2012
Re: Thảo luận Bài 3
trinhvanminh_11h1010077 đã viết:phamduyI12A đã viết:- Vì modem nối với PC sử dụng IP quốc tế nên có thể Remote được tới tất cả các PC trên thế giới .
- Còn IP của 3G là IP của máy chủ PROXY của các ISP nên bị quản lý .
P/S: ISP ( Internet Service Provider ) .
NGHE NÓI CÓ THỂ SỬ DỤNG VPN ĐỂ REMOTE ĐƯỢC PHẢI KO ? BẠN ĐÃ THỬ CHƯA CHO MÌNH BIẾT KẾT QUẢ VỚI NHÉ THANKS
Theo mình nghĩ, nếu sử dụng 3G kết nối đến Máy PC (Sử dụng IP public ) thì có thể VPN (client to Gateway) được, nhưng chiều ngược lại thì không. Còn có bạn nào có thể làm được cả chiều ngược lại, thì cho mình biết với nhé.
HuynhMinhChanh(i91C)- Tổng số bài gửi : 47
Join date : 02/03/2012
Re: Thảo luận Bài 3
phamphihung55 đã viết:trinhvanminh_11h1010077 đã viết:CHO ÍT HÌNH ẢNH ĐI BẠN, CHỨ NHƯ VẬY HƠI KHÓ HIỂU THANKShoanggiangI12C đã viết:TeamViewer là một ứng dụng điều khiển máy tính từ xa an toàn, đơn giản và nhanh chóng. Các bạn có thể sử dụng TeamViewer cho các mục đích sau:
- Hỗ trợ cho bạn bè, đồng nghiệp, người thân hoặc khách hàng từ xa
- Thuyết trình hoặc chia sẻ màn hình trực tuyến
- Chỉnh sửa các thiết lập của máy tính khách từ xa.
TeamViewer có thể truy cập thông qua bức tường lửa và proxies mà không cần các cấu hình đặc biệt
Ngoài ra, Team Viewer còn hỗ trợ một số tính năng như:
- Chia sẻ các tập tin dễ dàng cho máy tính khách
- Chia sẻ hình ảnh bằng Webcam
- Chức năng đàm thoại trực tiếp (VoIP – Voice over IP)
- Tạo ghi chú nhanh trên màn hình với chức năng Whiteboard
- Kiểm soát các phiên kết nối máy tính từ xa với thanh công cụ mới
- Đồng bộ và quản lý danh sách tài khoản của những người kết nối từ xa
- …
Có 2 cách sử dụng TeamViewer đó là:
- Sử dụng trực tiếp trên trình duyệt Internet.
- Sử dụng bằng chương trình của TeamViewer.
Note:
+ Đây là phần mềm rất hay. Nó giúp bạn có thể hướng dẫn, thao tác và hổ trợ từ xa.
+ Địa chỉ IP và Pase sẽ liên tục thay đổi khi chúng ta khởi động lại máy tính (nên các bạn hãy yên tâm với tính bảo mật của nó)
Nếu gặp vấn đề gì khó khăn. Mình cũng sẽ giúp các bạn bằng phần mềm này. Nên mọi người nên cài sẳn vào máy cho tiện. Khi nào cần chúng ta đem ra sử dụng nhé.Hướng dẫn kỹ thuật
Đầu tiên bạn down TV về, chạy file cài đặt, chương trình có 2 chế độ cho bạn lựa chọn là:
- Install TeamViewer : cài đặt vào máy
- Start without installation : chạy trực tiếp mà không cần cài đặt
Tiếp theo bạn sẽ được yêu cầu đặt Password, bạn gõ pass vào. Bạn phải nhớ để cung cấp cho người nào muốn truy cập vào máy bạn. Nếu bạn không đặt thì chương trình sẽ tạo pass ngẫu nhiên cho mỗi lần chạy chương trình.
Đánh dấu chọn vào Start TeamViewer automatically with Windows để TV tự khởi động với Win. Tùy chọn này rất hữu ít trong trường hợp bạn đang ở xa nhà, mà muốn kết nối vào máy ở nhà để làm 1 số việc, thì chỉ cần nhờ người nhà mở máy lên là bạn có thể làm mọi thứ với máy của mình. Tuy nhiên bạn sẽ phải nhớ số ID của bạn.
Sau khi cài đặt xong chương trình, bạn chạy TV. Tại màn hình đâu tiên của chương trình, bạn để ý mục ID và Password (Predefined tức là đã được định nghĩa từ trước) trong phần Wait Session. Đây chính là ID và Pass mà bạn sẽ cung cấp cho người cần truy cập.
Trường hợp bạn muốn truy cập vào máy người khác thì chỉ cần yêu cầu họ cung cấp cho Pass và ID rồi điền vào 2 khung tương ứng trong phần Creat Session. Bạn có 3 chế độ:
- Remote Support: bạn sẽ có thể làm gần như là mọi việc như làm trên chính máy của mình.
- Presentation: bạn chỉ có thể thấy người bên kia làm mà không thể làm gì cả.
- File Transfer: truyền dữ liệu giữa 2 máy.
Sau đó nhấn nút Connect to partner là có thể kết nối được.
Ngoài ra, trong menu Extras -> Options còn có 1 số tùy chỉnh như sau:
- Thẻ General: gồm có những tùy chỉnh chung cho chương trình
-Thẻ Remote Control: phần Quality
+ Automatic quality selection: chương trình tự điều chỉnh
+ Optimize speed: cải thiện tốc độ nhưng hình ảnh xấu
+ Optimize quality: tốc độ chậm nhưng đồ họa cao
+ Custom settings: tự bạn điều chỉnh
- Thẻ Presentation: phần Quality tương tự như trên
- Thẻ Security: những tùy chọn cho việc bảo mật như là chấp nhận truy cập, cho phép người kia khóa bàn phím và chuột, …. [u]
Bước 1: Khi các bạn đã khởi chạy Teamviewer có thể giao diện sẽ là tiếng anh vậy làm sao để chuyển qua tiếng việt? Các bạn hãy nhìn lên góc phải của Team sẽ thấy dòng chữ Extras. Hãy Click vào đó các bạn sẽ nhìn thấy 1 menu. Bây giờ sẽ click vào Options như hình dưới đây
Bước 2 : Sau khi làm xong bước 1 sẽ có một cửa sổ hiện ra. Các bạn hãy click vào Advanced và click Show Advanced options
Giao diện Advanced options sẽ hiện ra cho bạn lựa chọn ngôn ngữ hiển thị cho Team. Hãy click vào sẽ có 1 menu xổ xuống và chọn tiếng việt sau đó thì Click Ok
Bước 3 : Sau khi click Ok một cửa sổ thông báo sẽ hiện ra để thông báo rằng những tùy chọn vừa rồi của bạn sẽ chỉ có hiệu lực trong lần sử dụng sau.
Hãy Click Ok sau đó tắt và khởi động lại Team. Bây giờ Team đã hoàn toàn là Tiếng Việt và rất dễ cho bạn sử dụng cũng như thiết lập những tùy chọn của mình.
Bước 4 : Thiết lập các và giới thiệu các tùy chọn
Bây giờ các bạn hãy Click vào Thêm và chọn Các tùy chọn như hình bên dưới.
Cửa sổ mới hiện ra và chúng ta bắt đầu thiết lập tùy chọn cho riêng mình nhé.
Tổng quát :
- Tên hiển thị: Bạn có thể thiết đặt tên hiển thị của mình với đối tác. Nếu không đặt thì tên hiển thị sẽ là tên máy tính của bạn.
- Lựa chọn khởi động cùng Windows nếu bạn muốn Team sẽ luôn khởi động và chạy cùng Windows
- Lựa chọn Thu nhỏ đến khay hệ thống nếu bạn không muốn nhìn biểu tượng của Team ngoài thanh TaskBar mà muốn ẩn nó đi
Bảo Mật : Trong phần này cho phép bạn cài đặt mật khẩu và mức độ bảo mật của mật khẩu.
- Mật khẩu cố định cho truy cập tự động
- Độ an toàn cho mật khẩu tự phát có 5 tùy chọn : Chuẩn 4 chữ số, an toàn 6 kí tự, an toàn 8 kí tự và đã bị khóa. Chúng ta chỉ cần để chuẩn 4 chữ số là được
Điều khiển máy tính từ xa : Cho phép bạn tùy chọn chất lượng hiển thị và có thể hạn chế chức năng truy cập của đối tác. Đồng thời cũng có thể lưu lại nhật kí của tất cả các phiên làm việc
Hội Thảo : Cho phép thiết lập các tùy chọn cho một phiên hội thảo. Ở phần này các bạn chỉ nên thay đổi password cho dễ nhớ là được.
Còn các thành phần khác như danh sách đối tác, Âm thanh, Video và mời tùy chỉnh các bạn không cần quan tâm vì Team đã chọn những thiết lập tốt nhấp cho bạn rồi.
Finish : Sau khi thiết lập toàn bộ các bạn hãy Click Ok.
Bài viết rất chi tiết và hay , cảm ơn bạn.
Mình thấy bạn rất rành về TeamViewer, vậy bạn cho mình hỏi vấn đề này nhé.
- Sao TeamViewer có thể chạy được mà không cần phải cấu hình mở port này nọ như trong RDP ?
HuynhMinhChanh(i91C)- Tổng số bài gửi : 47
Join date : 02/03/2012
Re: Thảo luận Bài 3
HoNgocTuan142(I12A) đã viết:chào cả nhà! lần trước mình có nói tới vấn đề "việc sử dụng các HĐH Mở và HĐH Windows ở Việt Nam hiện nay"
https://hedieuhanh.forumvi.com/t3901p15-topic#17591.
Hôm nay mình xin phép đề cập lại và nói tới một số vấn đề liên quan:
LINUS THẬT SỰ CÓ SỰ BẢO MẬT CAO HƠN WINDOWS???
Theo mình thì hoàn toàn không, cũng như trong bài trước mình đã nói, đối với một HĐH miễn phí (Linus) và được nhiều người trên thế giới cùng xây dựng thì sự bảo mật có thể so sánh với một HĐH phải bỏ tiền ra mua và đc xây dựng từ hàng ngàn kỹ sư tài ba thuộc loại bậc nhất của Microsoft (Windows) không?
Mặt khác, chính vì Linus là HĐH mã nguồn mở nên có thể dể dàng tìm đc các code thiết kế được cung cấp sẵn trên mạng. Vì thế sự bảo mật có thể dễ dàng bị phá vỡ. Nếu như một phần mềm mã nguồn mở có thể do nhiều người thiết kế nhưng đến lúc nó bị tấn công thì lại không có ai đứng ra chịu trách nhiệm. Không những thế, các phiên bản những hệ điều hành dạng này khá nhiều và phức tạp nên người dùng đôi khi sẽ không biết họ đang dùng sản phẩm nào. Đó cũng là lý do, tại sao các hãng sản xuất máy tính, thà chấp nhận bỏ tiền mua hệ điều hành Microsoft Windows còn hơn sử dụng các hệ điều hành nguồn mở miễn phí như Linus.
Giả sử nếu như HĐH Windows bị rò rỉ lổ hổng bảo mật thì lập tức một đội ngũ chuyên gia và kỹ sư hàng đầu về bảo mật sẽ đứng ra chịu trách nhiệm và bắt tay vá lỗ hổng đó một cách hiệu quả nhất.
Cái gì cũng vậy, nếu phải tốn tiền mua để sử dụng sẽ an toàn và tốt hơn nhiều. Và khi có sự cố thì ít nhất cũng có người đứng ra chịu trách nhiệm cho mình. Bênh cạnh đó Windows sẽ cho bạn sử dụng những chương trình khác được kèm theo mà chất lượng cũng rất tốt.
ví dụ khi bạn dùng Windows có bản quyền bạn có thể sử dụng chương trình diệt virus Microsoft Security Essentials.
Người ta thường nói Windows hay bị tấn công hơn là Linus??
vì sao lại như vậy?
đó cũng là một thực tế dể hiễu. Cái gì sử dụng nhiều hơn, đại trà và phổ biến hơn thì sẽ gặp nhiều chuyện hơn (cả xấu lẫn tốt). Chính vì HĐH Windows được sử dụng rộng rãi và phổ biến hơn nên bị tất công nhiều hơn.
Windows là nguồn lợi rất dễ thu hoạch so với linux vì đại đa số hdh hiện tại đều là windows, cho nên kg ai lại bỏ qua việc khám phá windows, đó cũng là lý do mà virus trên windows hiện nay là vô số kể, còn linux thì chẳng thấy đâu.
Ngay cả các bạn, những người biết về linux, cũng kg thích xài linux vì giao diện, giao tiếp, việc cài đặt, quản trị, cấu hình .... đều rất khó khăn.
đó là ý kiến của cá nhân mình. các bạn có thể tham khảo ý kiến tại đây https://hedieuhanh.forumvi.com/t2711-topic
Cảm ơn về bài viết trên của bạn. Mình có chút ý kiến sau.
Theo mình nghĩ thì do mỗi OS hướng đến người dùng khác nhau, nên cơ chế, cách sử dụng cũng khác nhau :
- Windows / Apple : hướng đến end User.
- Unix/ Linux : hướng đến cung cấp các dịch vụ hệ thống Mạng.
Mình có một số ý kiến như thế này :
1. Bạn nghĩ Linux là miễn phí sao ? bạn có thể lên trang chủ của RedHat và xem biểu phí của nó nhé. Không có cái nào thực sự là free cả.
- Về cách thức kinh doanh thì mình không bàn đến, vì mình nghĩ Windows đã làm quá tốt việc phục vụ End User (bằng chứng là các OS Linux phát triển giao diện GUI đều hướng đến "same same" Windows). Chính vì không thể hơn Windows về sử dụng End User , nên Linux phát triển theo hướng "get cost from support".
2. Về câu hỏi "Linux có bảo mật hơn Windows hay không ? " mình cũng đồng ý với bạn, KHÔNG.
- Bảo mật ở đây là do phía bản thân người dùng , người quản trị, và ý thức việc bảo mật, chứ không dựa vào số lượng máy bị tấn công mà nói được.
3. Unix/Linux mạnh mẽ khi được sử dụng đảm đương chức năng dịch vụ hệ thống mạng (các máy chủ DNS trên thế giới đều sử dụng UNIX/Linux). Vì Unix/Linux được thiết kế để tăng performance, tăng khả năng chịu lỗi cao.(Có thể hoạt động xuyên suốt năm này qua năm khác). Nhưng so về end user, thì quả thật , Windows là "number 1".
Trên là ý kiến của mình, xin mời các bạn góp ý, bổ sung thêm để forum luôn phát triển.
HuynhMinhChanh(i91C)- Tổng số bài gửi : 47
Join date : 02/03/2012
Re: Thảo luận Bài 3
nguyenthimao_I12A đã viết:Theo như mình nghe thầy giảng thì:
-Biên dịch: được thực hiện bằng ngôn ngữ máy nên được CPU xử lý nhanh hơn
Ưu điểm: chương trình của bạn có thể được tối ưu tốt cho HDH và kiến trúc phần cứng ngay lúc dịch sang mã máy. Tuy quá trình này tốn thời gian, nhưng chỉ thực hiện có 1 lần mà thôi.
-Thông dịch: thực hiện trực tiếp theo từng dòng lệnh,gặp dòng nào chạy dòng đó
Ưu điểm: dễ phát hiện lỗi trong khi chạy chương trình, dễ gỡ rối và tìm lỗi, mã nguồn ở trên máy tính, nếu có virust thì chúng ta phát hiện được ngay
Ví Dụ: Chúng ta có một đoạn code viết bằng javascript nếu dùng thông dịch thì nó sẽ chạy từng dòng lệnh khi có virust thì nó phát hiện được liền.Còn dùng bằng biên dịch thì nó sẽ chạy hết đoạn code đó xong mới dừng như vậy nếu đoạn code đó có virust thì máy tính chúng ta sẽ bị nhiễm virust .
Cảm ơn bài viết của bạn, mình có ý kiến như sau :
Theo ý kiến của mình, trình thông dịch, không dễ bị phát hiện virus đâu bạn. XSS (Cross Site Scripting) là kỹ thuật sử dụng script để tấn công website đó bạn.
Vì đặc điểm mỗi loại nên mình nghĩ thông dịch phát triển trên nền web, còn biên dịch, phát triển trên nền application.
vd : Asp.net của MS , từ trước sử dụng code-behind (kế thừa từ các ứng dụng window form). nhưng càng về sau, lại phát triển theo scripting (thông dịch) nhiều hơn.
Điều đó cho ta thấy, tùy theo nhu cầu, tùy theo loại ứng dụng mà phát triển loại biên dịch hay loại thông dịch.
HuynhMinhChanh(i91C)- Tổng số bài gửi : 47
Join date : 02/03/2012
Re: Thảo luận Bài 3
levanhop.it đã viết:Sự giống nhau : Là một chương trình thông dịch lệnh của một hệ điều hành, có nhiệm vụ
nhận lệnh của người sử dụng, phân tích lệnh và phát sinh tiến trình mới để thực
hiện yêu cầu của lệnh.
Sự khác nhau :
- Trong Windown : Shell nhận lệnh thông qua cơ chế dòng lệnh, đó chính là nơi giao tiếp giữa
người sử dụng và hệ điều hành, mỗi hệ điều hành khác nhau có cơ chế dòng lệnh
khác nhau.
Ví dụ : HDH MS_DOS đó là con trỏ lệnh và dấu nhắc hệ điều hành (C:\>_),
HDH Windows 9x đó là nút Start\Run.
Tập tin Command.Com chính là Shell của MS_DOS.
Trong môi trường hệ điều hành đơn nhiệm, ví dụ như MS_DOS, khi tiến trình đáp ứng yêu cầu hoạt động thì Shell sẽ chuyển sang trạng thái chờ, để chờ cho đến khi tiến trình đáp ứng yêu cầu kết thúc thì Shell trở lại trạng thái sẵn sàng nhận lệnh mới.
Trong môi trường hệ điều hành đa nhiệm, ví dụ như Windows 9x, sau khi phát sinh tiến trình đáp ứng yêu cầu và đưa nó vào trạng thái hoạt động thì Shell sẽ chuyển sang trạng thái sẵn sàng nhận lệnh mới, nhờ vậy Shell có khả năng khởi tạo nhiều tiến trình đáp ứng yêu cầu để nó hoạt động song song với nhau, hay chính xác hơn trong môi trường hệ điều hành đa nhiệm người sử dụng có thể khởi tạo
nhiều chương trình để nó hoạt động đồng thời với nhau.
- Trong Linux : Shell là 1 chương trình cung cấp giao diện người dùng dưới dạng văn bản (text). Chức năng chính của Shell là đọc và thông dịch các lệnh được gõ vào trong màn hình console (chế độ hiển thị tất cả thông tin nhập xuất dưới dạng văn bản) hoặc cửa sổ terminal nằm trên Desktop của GUI (terminal giống như mở cửa sổ cmd trong Windows). Sau đó Shell thực thi lệnh và có thể đưa kết quả dạng văn bản tới đầu ra chuẩn – thường là màn hình.
Shell là giao diện giữa người dùng và thành phần Kernel bên trong của hệ điều hành.
Ngay khi user đăng nhập vào hệ thống, user đã sử dụng 1 Shell nào đó. Shell là phương thức cơ bản mà user có thể tương tác với hệ thống, và Shell giấu đi các chi tiết phức tạp bên dưới của hệ điều hành mà người dùng không thấy được.
Vi dụ : muốn xem nội dung của thư mục /home bạn đơn giản chỉ cần gõ ls /home trong cửa sổ dòng lệnh của Shell. Sau đó, Shell sẽ thực hiện tuần tự các thao tác sau:
phân tích cú pháp lệnh -> thông dịch yêu cầu của lệnh -> truyền thông điệp tới kernel -> nhận kết quả trả về kernel và hiển thị ra màn hình nội dung của thư mục /home cho bạn.
Chào bạn, cảm ơn bài viết của bạn, mình có ý này:
- Về ví dụ của bạn (ở phần shell), mình nghĩ trình tự đó là trình tự của trình thông dịch, và điều đó windows Cmd cũng có quy trình tương tự.
- Mình bổ sung thêm ý này (nói rõ hơn), command line trong Windows, không cho phép can thiệp quá sâu vào kernel của HĐH và bộ lệnh cũng cực đơn giản. Shell trong linux thì ngược lại, can thiệp sâu vào kernel và bộ lệnh cực kỳ phong phú.
- Thêm 1 ý nữa là , xài command line trong Linux nhìn vẻ "bờ rồ" hơn trong windows (ý kiến funny nhé bạn)
HuynhMinhChanh(i91C)- Tổng số bài gửi : 47
Join date : 02/03/2012
Trang 5 trong tổng số 8 trang • 1, 2, 3, 4, 5, 6, 7, 8
Similar topics
» THẢO LUẬN MÔN HỌC
» Thảo luận Bài 8
» Thảo luận Bài 7
» Thảo luận về đề thi HK1
» [Đề thi giữa kỳ] I22B ( 8-4-2013 )
» Thảo luận Bài 8
» Thảo luận Bài 7
» Thảo luận về đề thi HK1
» [Đề thi giữa kỳ] I22B ( 8-4-2013 )
Trang 5 trong tổng số 8 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết