跳至内容
深圳市捷比信实业有限公司 · 产品选型与采购咨询联系业务人员
viking代理捷比信 · 专业器件主题站

对“过程”的最流行的分析是。和“线程”

来源:电子工程专辑进程和线程是操作系统的基本概念,但它们相对抽象,不易掌握。最近,我阅读了一篇材料,发现有一个很好的类比可以清晰,轻松地解释它们。 1.计算机的核心是CPU,它承担所有计算任务。它就像一个工厂,总是在运转。 2.假设工厂的能力有限,一次只能使用一个车间。换句话说,当一个工作坊开始时,所有其他的工作坊都必须停止。其背后的含义是单个CPU一次只能运行一个任务。 3.该过程就像工厂的车间一样,它代表CPU可以处理的单个任务。在任何时候,CPU始终运行一个进程,而其他进程处于非运行状态。 4.车间里可能有很多工人。他们共同努力完成一项任务。 5.线程就像车间里的工人。一个进程可以包含多个线程。 6.车间内的空间由工人共享。例如,许多房间可供每个工人使用。这象征着进程的内存空间是共享的,并且每个线程都可以使用这些共享的内存。 7.但是,每个房间的大小都不同,有些房间最多只能容纳一个人,例如洗手间。当里面有人时,没有其他人可以进入。这意味着当一个线程使用某些共享内存时,其他线程必须等待其结束才可以使用此内存。 8.防止他人进入的一种简单方法是在门上放一把锁。最早到达的人将门锁上,后来到达的人看到了锁,并排在门前,等待锁打开后才进入。这被称为“互斥”。 (互斥,缩写为Mutex),可防止多个线程同时读取和写入某个内存区域。 9.有些房间可以同时容纳n个人,例如厨房。换句话说,如果人数大于n,则多余的人只能在外面等。这就像某些内存区域,只能由固定数量的线程使用。 10.目前的解决方案是将n个钥匙挂在门上。那些输入的人会拿出一把钥匙,并在钥匙出来时把钥匙挂回去。后来到达的那些人发现钥匙是空的,并且知道他们必须在门口排队等候。这种方法被称为“信号量”。 (信号量),用于确保多个线程不会相互冲突。不难看出互斥锁是信号量的一种特殊情况(当n = 1时)。换句话说,可以使用后者代替前者。但是,由于互斥锁相对简单且有效,因此在必须确保资源垄断时仍会使用此设计。 11.因此,操作系统的设计可以归纳为三点:(1)以多进程的形式,允许多个任务同时运行; (2)以多线程的形式,允许一个任务在不同的部分运行; (3)提供协调机制,一方面防止进程与线程之间的冲突,另一方面允许资源在进程与线程之间共享。猜猜您喜欢:C语言,嵌入式关键知识:回调函数C语言,嵌入式位操作本质技能摘要[Linux注释]设备树示例分析[Linux注释]易于理解的Linux驱动程序基础[Linux注释] PC _Development board_ubuntu相互ping实验以从微控制器工程师的角度学习一些基于LiteOS智能农业案例研究的STM32经验分享,以基于GUILite简单的万年历后台回复查看有关嵌入式Linux求职者的那些事情:添加组添加正恩微信,加入交流团