zoukankan      html  css  js  c++  java
  • 线程和进程

     

    进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动

      是系统进行资源分配和调度的基本单位

      是系统中正在运行的一个用不程序

      进程是程序执行的一个实例

    线程是进程的一个实体

      是CPU调度的基本单位

      线程是比进程更小的能独立运行的基本单位

      线程只拥有少量运行过程中必不可少的资源(程序计数器)  

    同一个进程中的多个线程可以共享进程拥有的资源,同一个进程中可以有多个线程并发执行

    线程是一个进程中不同的执行路径,在一个线程中可以创建一个新的线程

    进程拥有独立的地址空间,一个进程崩溃之后,在保护模式下,不会对其它进程产生影响

    一个进程中可能有多个线程,其中一个线程崩溃,可能导致进程崩溃

    进程切换资源消耗大于线程

    线程不能够独立运行,必须依存于应用程序之中

    进程拥有独立的堆栈空间和数据段,每当一个新的进程启动时,必须分配地址空间

    进程之间相互独立,互不干扰


    进程的创建:

      新进程都是由一个正在执行的进程执行了一个用于创建进程的系统调用而创建的

      创建过程:分配一个唯一标识以及进程块,为进程分配地址空间,初始化进程(如设置默认值),设置相应的队列指针(如把队列加到就绪队列链表中)

      创建进程:Windows---createProcess   Linux----fork、exec

      何时创建:系统初始化、正在执行的进程调用了一个用于创建进程的系统调用、用户请求创建一个新的进程、一个批处理作业的初始化

    进程的销毁:

      结束进程,回收进程所占用的资源(如关闭打开的文件、断开网路连接、回收分配的内存),撤销该进程的PCB(进程块)

      何时销毁:正常退出(自愿)、出错退出(自愿)、严重错误(非自愿)、被其它进程杀死(非自愿)

    进程的基本状态:

      运行、就绪、等待

        运行(Running):进程占用CPU资源,并在CPU上正在运行

        就绪(Ready):进程已经具备运行条件,由于CPU正在被其它进程占用,暂时不能运行

        阻塞(Blocked):线程因等待某一时间而暂时不能运行

      创建、运行、就绪、等待、终止

    PCB(process control block)进程控制块

      操作系统用于管理、控制进程的一个专门的数据结构,记录进程的各种属性,描述进程的动态变化过程

      

        

  • 相关阅读:
    游戏中调用SDK提供的支付接口 头文件的包含
    sdk支付结果 调用游戏中的回调
    escplise 下新添加c++代码的处理
    rapidjson的read和write的sample
    cocos2d-x 3.0 场景切换特效汇总
    Eclipse 打开文件所在位置
    eclipse及其Java环境搭理
    rust cargo build一直出现 Blocking waiting for file lock on package cache
    rust随笔
    cmake 安装一个目录下的图片 到另一个目录文件中去
  • 原文地址:https://www.cnblogs.com/duanjiapingjy/p/9434298.html
Copyright © 2011-2022 走看看