进程、线程、纤程

注:学习随笔 

1、进程和线程的区别:

  •  进程是系统分配资源的基本单位,线程是执行调度的基本单位;
  • 进程享有独立的内存资源,线程共享进程的资源,线程没有自己独立的内存空间;
  • 线程是运行在进程上的,线程的创建需要惊动操作系统内核  老大,比较耗费资源

2、纤程:用户态的线程,线程中的线程,切换和调度不经过操作系统内核;
      优点:1、占用资源少,线程大约需要1M的资源,而纤程只需要4k;
                 2、可以启动很多个线程同时执行,线程启1万个就很卡了,但是纤程10万+;
                 3、切换比较简单;
    应用场景:很短很简单的计算任务,不需要和内核打交道,并发量高;

3、linux中是如何创建和启动进程的:
      通过系统函数fork()创建 exec()启动,退出可以用exit();
      从A中 fork B,那A即为B的父进程;
      进程资源为独立的地址空间 内核数据结构(进程描述符)全局变量 数据段
      进程描述符:PCB(Process Control Block)  进程控制块

5、僵尸进程: 父进程产生子进程后,会维护一个子进程的PCB结构,子进程退出后,由父进程释放,如果父进程没有释放,那么子进程成为一个僵尸进程 zombie.c
            Linux中  ps -ef|grep defunct 可以查看僵死进程,  需要用wait()方法释放;
6、孤儿进程:子进程结束之前,父进程就已经挂了,该进程就是孤儿进程;
 

进程调度

  • 内核进程调度器决定,该哪一个进程运行,何时开始运行,运行多长时间。
  • 实时进程 优先于 普通进程(CFS—— Completely Fair Scheduler)
  • 实时(急诊):
  1.  优先级分高低 (FIFO策略) 
  2. 优先级一样  RR(Round Robin)轮询策略
  • 普通 : CFS策略—— 按优先级分配时间片的比例,记录每个进程的执行时间。如果有一个进程执行时间 不到她应该分配的时间片比例,优先执行

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值