linux中的进程和线程

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

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

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

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

 

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

进程的创建过程:

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

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

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

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

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

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

  7. 通知父进程;

进程的终止方式:

  1. 从main函数返回;

  2. 调用exit或者_exit函数;

  3. 调用abort函数;

  4. 被信号终止;

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

进程间的通信方式:

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

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

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

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

 

进程和线程:

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

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

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

 

转载于:https://www.cnblogs.com/iRidescent-ZONE/p/6067530.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值