详解:堆和栈 线程与进程 Linux驱动程序

共有5点不同:1.分配与回收机制不同,栈由系统自动分配回收,堆由程序员手动分配与回收。2.空间大小不同,堆的大小由程序员手动开辟,理论上可开辟整个虚拟内存大小,栈的大小较小,有默认上限。3.地址增长方向不同,堆地址由低地址往高地址方向增长,栈的地址由高地址向低地址方向增长。4.存放内容不同:栈存放函数返回地址,局部变量,相关参数,寄存器内容等。堆顶有一个字节的堆的大小,堆中存放的内容由程序员自己填充。5.效率不同:栈由系统自动分配,空间较小,执行效率较高。堆由程序员自己控制,分配复杂,容易产生碎片,还需程序员手动回收,效率较低。

线程与进程的区别

进程是对运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发;线程是进程的子任务,是CPU调度和分派的基本单位,用于保证程序的实时性,实现进程内部的并发;线程是操作系统可识别的最小执行和调度单位。 一个线程只能属于一个进程,而一个进程可以有多个线程 进程在执行过程中拥有独立的内存单元,而多个线程共享进程的内存 进程是资源分配的最小单位,线程是CPU调度的最小单位 进程切换的开销也远大于线程切换的开销。进程编程调试简单可靠性高,但是创建销毁开销大;线程正相反,开销小,切换速度快,但是编程调试相对复杂

1.进程是资源调度分配的最小单位,线程是系统调度的最小单位
2.进程是程序的动态执行过程,线程是进程的子任务
3.进程实现了系统的并发,线程实现了进程的并发
4.一个进程可以拥有多个线程,一个线程只能属于一个进程
5.进程拥有独立的内存单元空间,线程共享一个进程内存
6.进程创建销毁需要单独操作一个地址空间,系统开销大。线程共享一个内存单元,系统开销较小

Linux驱动程序的分类有哪些?

Linux将硬件设备分为3大类,分别是字符设备、块设备和网络设备。字符设备是指那些能一个字节一个字节读取数据的设备,提供连续的数据流,一般不支持随机读取,如键盘鼠标等,常见的SPI/I2C/UART默认也是字符设备。块设备与字符设备类似,一般是像磁盘一样的设备,可以访问任意位置数据,读取位置和大小由程序决定,支持随机读取。网络设备主要负责主机之间的数据交换。与字符设备和块设备完全不同,网络设备主要是面向数据包的接收和发送而设计的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值