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

    应用程序:可以被操作系统执行的一组指令和参数的集合,是静态的,并存储在磁盘空间中;

    进程:在操作系统中在运行程序后,处于运行状态的程序,是应用程序的一个执行过程,同时也是操作系统分配内存,cpu等系统资源的基本单位;

    线程:进程中可以共享进程资源的一个执行单位;

    一个应用程序可以对应多个进程,一个进程中可以有多个执行线程;

     

    系统操作进程的方式主要是:创建进程,终止进程,已经控制进程间的通信和同步;

    进程的创建过程:

      1. 复制父进程的环境配置;

      2. 在内核中建立进程结构;

      3. 将创建好的进程结构放入到进程列表中;

      4. 系统分配资源给此进程;

      5. 复制父进程的内存映射信息;

      6. 管理文件描述符和连接点;

      7. 通知父进程;

    进程的终止方式:

      1. 从main函数返回;

      2. 调用exit或者_exit函数;

      3. 调用abort函数;

      4. 被信号终止;

    进程在终止时,系统会释放进程拥有的资源,包括内存,内核结构等。

    进程间的通信方式:

      1. 管道:内核为两个进程建立的通信通道,一端只能写数据,一个端只能读数据,完成通信;

      2. 共享内存:多个进程共享一段内存,并对内存进行操作来完成通信;

      3. 消息队列:内核中的一个链表,发送方进程将消息发送到内核中,内核将消息放入链表,等待接收方进程发送请求消息,收到请求消息后,内核将消息从链表上取下,交给接收方,完成通信,此过长完全是异步的;

      4. 信号量:一个共享的数值,主要用于进程间的同步和对共享资源的保护;

     

    进程和线程:

      线程是进程的一个执行单位,属于进程的一部分;

      进程是操作系统分配资源的基本单位,系统只为线程分配cpu资源,其他系统资源只能共享进程的系统资源,线程是执行的基本单位;

      系统通过进程控制表PCB调度线程,并通过线程控制表TCB对线程进行调度;

     

  • 相关阅读:
    hibernate一对多查询
    hibernate关联关系查询
    Cookie&&session
    JSP&&EL&&JSTL
    servlet下的request&&response
    servlet
    mysql命令
    html小结
    RabbitMQ初步学习和使用
    爬虫简单案例
  • 原文地址:https://www.cnblogs.com/iRidescent-ZONE/p/6067530.html
Copyright © 2011-2022 走看看