Pages

21 thg 12, 2010

Một số khái niệm trong Lập trình

  1. Tiến trình là gì? Tiến trình khác chương trình thế nào? Nhiệm vụ chính của bộ phận Process Management
    Tiến trình là một chương trình đang xử lí, sở hữu một tập con trỏ lệnh, tập các thanh ghi, các biến và một tập các tài nguyên cần cho hoạt động của tiến trình.
    Chương trình là một thực thể thụ động chứa các chỉ thị điều khiển máy tính để tiến hành một hoạt động nào đó, khi thực hiện tác vụ này thì chương trình chuyển thành tiến trình – một thực thể hoạt động với con trỏ lệnh xác định chỉ thị tiếp theo sẽ thi hành và tập tài nguyên.
    Bộ phận Process Management có nhiệm vụ:
    • Tạo và hủy tiến trình người dùng và tiến trình hệ thống
    • Hoãn và khôi phục tiến trình
    • Cung cấp cơ chế cho việc đồng bộ hóa tiến trình
    • Cung cấp cơ chế cho việc giao tiếp tiến trình
    • Cung cấp cơ chế quản lý deadlock
  2. Các công việc chính của bộ phận Memory Management, File Management và Secondary Storage Management?
    • Memory Management
      • Theo dõi thành phần nào của của bộ nhớ đang được sử dụng và tiến trình nào đang sử dụng
      • Quyết định tiến trình nào hoặc dữ liệu nào sẽ được di chuyển ra khỏi hoặc đưa vào bộ nhớ
      • Cấp phát và hủy không gian bộ nhớ nếu cần.
    • File Management
      • Tạo và xóa tập tin
      • Tạo và xóa thư mục
      • Hỗ trợ các thao tác cơ bản trên tập tin và thư mục
      • Ánh xạ tập tin vào trong bộ lưu trữ thứ cấp
      • Sao lưu trên các thiết bị ổn định
    • Storage Management
      • Quản lí không gian trống
      • Cấp phát cho việc lưu trữ dữ liệu
      • Định thời yêu cầu truy cập bộ nhớ
  3. Cho biết công việc chính của I/O Management và Hệ thống bảo vệ?
    • I/O Management: Che dấu sự khác biệt của các thiết bị đối với người dùng
      • Cung cấp giao diện chung đến các trình điều khiển thiết bị (device driver)
      • Bộ điều khiển thiết bị phần cứng
      • Các cơ chế buffering, caching, spooling
    • Hệ thống bảo vệ:
      • Cung cấp cơ chế kiểm soát đăng nhập và đăng xuất
      • Phân định sự truy cập tài nguyên hợp pháp, bất hợp pháp
      • Phương tiện thi hành các chính sách (cần bảo vệ dữ liệu của ai đối với ai)
  4. System call là gì? Cho ví dụ? System program khác với Application program điểm nào? Liệt kê các system program cơ bản.
    • System Call là một cơ chế mà các chương trình ứng dụng sử dụng để yêu cầu các dịch vụ có sẵn của hệ điều hành. Hay nói cách khác System Call cung cấp một giao diện cho các dịch vụ mà hệ điều hành cung cấp.
    • Ví dụ về system call: Lệnh fork() trong Unix dùng để tạo ra một tiến trình mới.
    • System Program là các chương trình cung cấp một môi trường thuận tiện để phát triển và thực thi chương trình. Application là chương trình được viết ra để giúp người sử dụng giải quyết một vấn đề nào đó hoặc thao tác trong công việc. Ví dụ như Web Browser, Microsoft Office Word
    • Vài ví dụ về các System Program là: Compiler, Linker, Loader, Debugger
  5. Kernel Mode và User Mode là gì? Cho biết sự khác nhau giữa chúng? Các trạng thái của một quá trình, vẽ sơ đồ và giải thích sự chuyển đổi.
    • Kernel Mode: là một trong hai chế độ thao tác của CPU. Khi CPU ở trong Kernel Mode, nó có thể thực thi bất cứ chỉ thị nào và tham chiếu đến bất kì địa chỉ nhớ nào
    • User Mode: Khi CPU ở trong User Mode, nó không thể truy cập tới phần cứng hoặc tham chiếu đến bộ nhớ một cách trực tiếp. Các đoạn mã trong User mode phải được chuyển đổi thành các hàm API hệ thống để có thể truy cập tới bộ nhớ và phần cứng.
  6. Tại sao các hệ điều hành hiện đại hỗ trợ môi trường đa nhiệm? Phân biệt multitasking, multiprogramming và multiprocessing?
    • Các hệ điều hành hiện đại hỗ trợ môi trường đa nhiệm vì: tăng hiệu suất sử dụng CPU và tăng tốc độ xử lý
    • Multitasking (đa nhiệm): thực hiện nhiều nhiệm vụ cùng một lúc, CPU sẽ luân phiên xử lý các tiến trình trong một khoảng thời gian rồi chuyển sang cho tiến trình khác. VD: nghe nhạc và duyệt web đồng thời
    • Multiprogramming (đa chương): có nhiều hơn một chương trình đang nằm trong bộ nhớ để được lựa chọn chuyển giao cho CPU thực thi. Ví dụ: mở Word, Excel, Powerpoint cùng lúc, trong khi chúng ta sử dụng Word thì Excel và Powerpoint vẫn thường trực trong bộ nhớ mặc dù chúng không thực hiện việc gì cả
    • Multiprocessing (đa tiến trình): sử dụng nhiều hơn 1 CPU để có thể xử lý song song cùng lúc nhiều tiến trình.
  7. Khái niệm tiến trình được xây dựng nhằm mục đích gì? Sự khác biệt, mối quan hệ giữa tiến trình và tiểu trình?
    • Để hỗ trợ sự đa chương, máy tính phải có khả năng thực hiện nhiều tác vụ đồng thời. Nhưng việc điều khiển nhiều hoạt động song song ở cấp độ phần cứng là rất khó khăn. Vì thế các nhà thiết kế hệ điều hành đề xuất một mô hình song song gỉa lặp bằng cách chuyển đổi bộ xử lý qua lại giữa các chương trình để duy trì hoạt động của nhiều chương trình cùng lúc, điều này tạo cảm giác có nhiều hoạt động được thực hiện đồng thời. Trong mô hình này, tất cả các phần mềm trong hệ thống được tổ chức thành một số những tiến trình (process).
    • Tiến trình có không gian địa chỉ và chỉ có một dòng xử lý. Các tiểu trình thì chia sẻ một không gian địa chỉ, và các dòng xử lý này hoạt động song song tương tự như các tiến trình phân biệt.
    • Một tiến trình có thể có nhiều tiểu trình chạy đồng thời
  8. Thông tin lưu trữ trong PCB và TCB? Tổ chức điều phối tiến trình? Ưu khuyết của các chiến lược điều phối?
    • PCB: định danh, trạng thái, ngữ cảnh, thông tin giao tiếp, thông tin thống kê
    • TCB:

0 nhận xét:

Đăng nhận xét

Powered By Blogger