Sự khác nhau giữa chương trình program và tiến trình process là gì

  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 ManagementTiế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.
  3. 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
  4. 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ớ
  5. 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)
  6. 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
  7. 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.
  8. 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.
  9. 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
  10. 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:

Còn mấy câu nữa, nhưng mà làm biếng post quá vì hơi bị dài. Các bạn xem chi tiết tại đây: //www.uit.edu.vn/data/gtrinh/TH106/

Một chương trình và một quá trình là các điều khoản liên quan. Sự khác biệt chính giữa chương trình và quy trình là chương trình là một nhóm các hướng dẫn để thực hiện một nhiệm vụ được chỉ định trong khi quy trình là một chương trình đang thực hiện. Trong khi một quá trình là một thực thể hoạt động, một chương trình được coi là một thực thể thụ động.

Tồn tại một mối quan hệ nhiều-một giữa quy trình và chương trình, có nghĩa là một chương trình có thể gọi nhiều quy trình hoặc nói cách khác, nhiều quy trình có thể là một phần của cùng một chương trình.

Biểu đồ so sánh

Cơ sở để so sánhChương trình
Quá trình
Căn bản
Chương trình là một bộ hướng dẫn.
Khi một chương trình được thực thi, nó được gọi là quá trình.
Thiên nhiên
Bị động
Hoạt động
Tuổi thọ
Lâu hơnHạn chế
Tài nguyên cần thiết
Chương trình được lưu trữ trên đĩa trong một số tệp và không yêu cầu bất kỳ tài nguyên nào khác.Quá trình giữ các tài nguyên như CPU, địa chỉ bộ nhớ, đĩa, I / O, v.v.

Định nghĩa chương trình

Một chương trình, nói một cách đơn giản, có thể được coi là một hoạt động hệ thống. Trong hệ thống xử lý hàng loạt, chúng được gọi là thực thi các công việc trong khi trong một hệ điều hành thời gian thực, nó được gọi là các tác vụ hoặc chương trình. Một người dùng có thể chạy nhiều chương trình trong đó hệ điều hành tạo điều kiện cho các hoạt động được lập trình nội bộ của riêng họ như quản lý bộ nhớ bằng một số kỹ thuật.

Một chương trình là một thực thể thụ động, ví dụ, một tệp chứa một nhóm các lệnh được thực thi (tệp thực thi). Nó được gọi như vậy bởi vì nó không tự thực hiện bất kỳ hành động nào, nó phải được thực thi để nhận ra các hành động được chỉ định trong đó.

Không gian địa chỉ của một chương trình bao gồm các hướng dẫn, dữ liệu và ngăn xếp. Giả sử P là chương trình chúng ta đang viết, để thực hiện thực thi P, hệ điều hành phân bổ bộ nhớ để chứa không gian địa chỉ của P.

Nó lên lịch cho P để thực thi và cũng thiết lập một sự sắp xếp thông qua đó p có thể truy cập thông tin tệp. CPU được hiển thị trong hộp nét đứt vì không phải lúc nào cũng thực hiện các hướng dẫn của P; trong thực tế, HĐH chia sẻ CPU giữa việc thực thi P và thực thi các chương trình khác.

Định nghĩa của quá trình

Một quy trình là một thực thi của một chương trình. Nó được coi là một thực thể hoạt động và nhận ra các hành động được chỉ định trong một chương trình. Nhiều quy trình có thể liên quan đến cùng một chương trình. Nó xử lý các hoạt động của hệ điều hành thông qua PCB (Khối điều khiển quy trình) bao gồm bộ đếm chương trình, ngăn xếp, trạng thái, vv Bộ đếm chương trình lưu trữ chuỗi lệnh tiếp theo sẽ được thực hiện sau đó.

Nó cần các tài nguyên như xử lý, bộ nhớ và tài nguyên I / O để hoàn thành các nhiệm vụ quản lý. Trong quá trình thực thi chương trình, nó có thể tham gia vào bộ xử lý hoặc thao tác I / O làm cho một quá trình khác với chương trình.

Hãy để chúng tôi hiểu điều này từ một ví dụ; chúng tôi đang viết một chương trình C. Trong khi viết và lưu trữ một chương trình trong một tệp, nó chỉ là một tập lệnh và không thực hiện bất kỳ hành động nào, nhưng khi nó được thực thi, nó biến thành quy trình do đó bản chất là quá trình động. Chia sẻ tài nguyên giữa nhiều quy trình được sử dụng bởi các máy hiện tại, nhưng trên thực tế, một bộ xử lý được phân phối giữa một số quy trình.

Sự khác biệt chính giữa chương trình và quy trình

  1. Một chương trình là một nhóm xác định các hoạt động được yêu cầu sẽ được thực hiện. Mặt khác, một thể hiện của một chương trình đang được thực thi là một quá trình.
  2. Bản chất của chương trình là thụ động vì nó không làm gì cho đến khi nó được thực thi trong khi một quá trình có tính chất động hoặc hoạt động vì nó là một thể hiện của chương trình thực thi và thực hiện hành động cụ thể.
  3. Một chương trình có tuổi thọ dài hơn vì nó được lưu trữ trong bộ nhớ cho đến khi nó không bị xóa thủ công trong khi một quá trình có tuổi thọ ngắn hơn và hạn chế vì nó bị chấm dứt sau khi hoàn thành nhiệm vụ.
  4. Yêu cầu tài nguyên cao hơn nhiều trong trường hợp của một quá trình; nó có thể cần xử lý, bộ nhớ, tài nguyên I / O để thực thi thành công. Ngược lại, một chương trình chỉ cần bộ nhớ để lưu trữ.

Phần kết luận

Chương trình và quy trình có liên quan nhưng không giống nhau. Một chương trình chỉ là một tập lệnh được lưu trữ trên đĩa hoặc dường như là giai đoạn trước của quy trình. Ngược lại, quá trình này là một sự kiện của một chương trình đang thực hiện.

Video liên quan

Chủ đề