当前位置:网站首页>并发和并行有什么区别?
并发和并行有什么区别?
2022-07-27 20:43:00 【华为云】
并发和并行有什么区别?
并发就是在一段时间内,多个任务都会被处理;但在某一时刻,只有一个任务在执行。单核处理器可以做到并发。比如有两个进程A和B,A运行一个时间片之后,切换到B,B运行一个时间片之后又切换到A。因为切换速度足够快,所以宏观上表现为在一段时间内能同时运行多个程序。
并行就是在同一时刻,有多个任务在执行。这个需要多核处理器才能完成,在微观上就能同时执行多条指令,不同的程序被放到不同的处理器上运行,这个是物理上的多个进程同时进行。
大内核和微内核有什么区别?
大内核,就是将操作系统的全部功能都放进内核里面,包括调度、文件系统、网络、设备驱动器、存储管理等等,组成一个紧密连接整体。大内核的优点就是效率高,但是很难定位bug,拓展性比较差,每次需要增加新的功能,都要将新的代码和原来的内核代码重新编译。
微内核与单体内核不同,微内核只是将操作中最核心的功能加入内核,包括IPC、地址空间分配和基本的调度,这些东西都在内核态运行,其他功能作为模块被内核调用,并且是在用户空间运行。微内核比较好维护和拓展,但是效率可能不高,因为需要频繁地在内核态和用户态之间切换。
分时系统和实时系统有什么区别?
分时系统(Sharing time system)就是系统把CPU时间分成很短的时间片,轮流地分配给多个作业。它的优点就是对多个用户的多个作业都能保证足够快的响应时间,并且有效提高了资源的利用率。
实时系统(Real-time system)是系统对外部输入的信息,能够在规定的时间内(截止期限)处理完毕并做出反应。它的优点是能够集中地及时地处理并作出反应,高可靠性,安全性。
通常计算机采用的是分时,就是多个进程/用户之间共享CPU,从形势上实现多任务。各个用户/进程之间的调度并非精准度特别高,如果一个进程被锁住,可以给它分配更多的时间。而实时操作系统则不同,软件和硬件必须遵从严格的时间限制,超过时限的进程可能直接被终止。在这样的操作系统中,每次加锁都需要仔细考虑。
静态链接和动态链接有什么区别?
静态链接就是在编译期间,由编译器和连接器将静态库集成到应用程序内,并制作成目标文件以及可以独立运作的可执行文件。静态库一般是一些外部函数与变量的集合。
静态库很方便,但是如果我们只是想用库中的某一个函数,却仍然得把所有的内容都链接进去。一个更现代的方法是使用共享库,避免了在文件中静态库的大量重复。
动态链接可以在首次载入的时候执行,也可以在程序开始执行的时候完成。这个是由动态链接器完成,比方标准 C 库(libc.so) 通常就是动态链接的,这样所有的程序可以共享同一个库,而不用分别进行封装。
编译有哪些阶段?
预处理阶段:处理以 # 开头的预处理命令;
编译阶段:翻译成汇编文件;
汇编阶段:将汇编文件翻译成可重定位目标文件;
链接阶段:将可重定位目标文件和 printf.o 等单独预编译好的目标文件进行合并,得到最终的可执行目标文件。
进程有哪些状态?
在五状态模型里面,进程一共有5中状态,分别是创建、就绪、运行、终止、阻塞。
运行状态就是进程正在CPU上运行。在单处理机环境下,每一时刻最多只有一个进程处于运行状态。
就绪状态就是说进程已处于准备运行的状态,即进程获得了除CPU之外的一切所需资源,一旦得到CPU即可运行。
阻塞状态就是进程正在等待某一事件而暂停运行,比如等待某资源为可用或等待I/O完成。即使CPU空闲,该进程也不能运行。
运行态→阻塞态:往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。
阻塞态→就绪态:则是等待的条件已满足,只需分配到处理器后就能运行。
运行态→就绪态:不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态。例如时间片用完,或有更高优先级的进程来抢占处理器等。
就绪态→运行态:系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态。
边栏推荐
- Flink怎么使用Savepoint
- [image defogging] image defogging based on dark channel and non-mean filtering with matlab code
- Www 2019 | Han: heterograph attention network
- 使用灰度滤镜
- Cloud security daily 220714: Cisco identity service engine found an authentication bypass vulnerability and needs to be upgraded as soon as possible
- Library management system based on SSM framework
- 他山之石 | 蚂蚁超大规模知识图谱构建及应用
- [signal denoising] signal denoising based on Kalman filter with matlab code
- Read an article to understand artificial neural network
- Pentium fast system call learning
猜你喜欢

Cloud native enthusiast weekly: a complete collection of client go examples
![[image defogging] image defogging based on dark channel and non-mean filtering with matlab code](/img/44/6120682f9571f6ad35f8b9249b7fea.png)
[image defogging] image defogging based on dark channel and non-mean filtering with matlab code

Learn more about xxE injection

Blender plug-in of 2022

Lianmai live broadcast system software - voice chat system

Preliminary understanding of Panda3D audio and advanced interactive components

如何快捷地查看H.265视频播放器EasyPlayer的API属性及其使用方法?

The wechat installation package has expanded 575 times in 11 years, and the up owner: "98% of the documents are garbage"; Apple App store was exposed to a large number of pornographic apps; Four techn

Network development socket and UDP, TCP protocols

MapReduce(三)
随机推荐
一位软件投资者的独白:我为什么不追逐快速增长的公司
Security-001
What are the advantages of Tita's OKR system over other similar products or shared documents?
Shuffle, partition and read of tfrecord
台积电3nm细节曝光:晶体管密度高达2.5亿个/mm²,性能及能效大幅提升
编辑复制粘贴判定问题(bug?),所见即所得显示符号问题反馈。
Arm32 for remote debugging
The principle and demonstration of service path lifting without quotation marks
VIM editor tutorial
2022/7/24-7/25
Blood spitting finishing nanny level series tutorial - playing Fiddler bag capturing tutorial (5) - detailed explanation of fiddler monitoring panel
Security-001
Starfish Os X MetaBell战略合作,元宇宙商业生态更进一步
Test article
Kubevera deploys applications through cli
常用泰勒展开
用户画像在科技期刊微信公众号精准推送中的应用
[elm classification] classification of UCI data sets based on nuclear limit learning machine and limit learning machine, with matlab code
进制转换方法
What is the MySQL data storage method?