zoukankan      html  css  js  c++  java
  • [更新中] 进程和线程

      书籍的简称:

      CSPPSE: Computer System: a programmer's perspective Second Edition

      进程(process)是操作系统对一个正在运行的程序的一种抽象。在一个系统上可以同时运行多个进程, 而每个进程都好像在独占的使用硬件。而并发运行, 则是说一个进程的指令和另一个进程的指令是交错运行的。 在大多数系统中, 需要运行的进程数是多于可运行他们的CPU个数的。传统系统在一个时刻只能执行一个程序, 而先进的多核处理器同时能执行多个程序。 无论是在单核还是多核系统中, 一个CPU看上去都像是在并发地执行多个程序, 这是他通过处理器在进程间切换来实现的。 操作系统实现这种交错执行的机制成为上下文切换。(CSPPSE P11)

      独立(independent)进程, 一个进程如果不影响其他正在系统中运行的进程也不受其影响, 那么这个进程就是独立进程任何进程只要不与其他进程共享数据, 它就是独立进程。 

      合作(cooperating)进程, 一个进程如果影响其他正在系统中运行的进程或受其影响, 那么这个进程就是合作进程。 任何进程只要与其他进程共享数据, 它就是合作进程

      进程间通信IPC(Interprocess Communication)有两种模型: 共享内存(Shared-Memory)和信息传递(Message Passing)。 共享内存比信息传递快但是当系统中进程越来越多时, 信息传递对于系统IPC来说是一个更好的通信机制, 因为共享内存面临着缓存一致性问题, 需要通信的两个进程之间会建立一个共享的内存区域, 共享数据在若干个缓存中迁移时, 会引起缓冲区一致性问题。 

      生产者-消费者问题就可以利用共享内存实现。

      

        

  • 相关阅读:
    STM32F401
    按字母顺序排列的IDC函数列表
    IDA 中文字符串
    Retrieving ST-Link/V2 Firmware from Update Utility
    IDA IDC Tutorials: Additional Auto-Commenting
    IDA resources
    Digital Current-Mode Control Challenges Analog Counterparts
    SQLSERVER 里SELECT COUNT(1) 和SELECT COUNT(*)哪个性能好?
    将ACCESS数据库迁移到SQLSERVER数据库
    RedGate 工具SQLMultiScript1.1
  • 原文地址:https://www.cnblogs.com/KarryWang/p/3420965.html
Copyright © 2011-2022 走看看