IO / 进程和线程的总结

1. 进程和线程都是用来实现多任务的,下面是概念的总结

进程

线程

正在执行的程序叫做进程,进程是动态的,有进程的创建、就绪、运行、阻塞、消亡等待,有一定的生命周期

多线程是轻量版进程(LWP)

一个进程可以拥有多个线程,至少拥有一个线程,称为主线程

进程是资源分配的最小单位,系统会给每个进程分配4G的虚拟内存,其中0--3G是用户空间,3--4G是内核空间

线程是任务器调度的最小单位

线程资源开销比较大

线程几乎不占用资源,仅仅只需要开销有关线程结构体的资源,大概在8K左右

多个进程的用户空间是相互独立的,但是,内核空间是共享的

多个线程共享进程的资源,不会在创建线程时,分配独立的空间

多个进程在运行时,调度原则:时间片轮询,上下文切换

多个线程执行没有先后顺序,调度原则:时间片轮询,上下文切换

进程由三部分组成:

  • 进程控制段(PCB)在内核空间由一个task_struct的结构体表述
  • 数据段:存放在用户空间的.data段
  • 程序段:存放在用户空间的.txt段

进程一共有三类:

  • 交互进程:交互进程由shell控制,用于跟用户的相关交互内容,例如文本编辑器
  • 批处理进程:维护了一个队列,可以直接或间接地跟用户进行交互,然后进行统一处理,例如gcc编译器
  • 守护进程:脱离终端而存在,随着系统的启动而运行,随着系统的关闭而结束,例如服务进程

特殊进程:

特殊系统进程

  • 0号进程(idel):它是由linux系统启动后的第一个进程,也叫做空闲进程,当其他所有进程都不执行时,默认执行0号进程,时1号和2号进程的父进程
  • 1号进程(init):1号进程是由0号进程产生,该进程完成对一些硬件的初始化的必要工作,当有某些进程的父进程死了后,收养其孩子进程
  • 2号进程(kthreadd):也称为调度进程,由0号进程产生,用于进行cpu任务调度使用

特殊状态进程

  • 孤儿进程:当前进程还处于活着状态,但是其父进程已经死了,当前进程会被1号进程收养
  • 僵尸进程:当前进程生命周期已经结束,但是其父进程没有为其进行回收资源

目录 :目录 / 学习笔记快速链接

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值