求职笔记-操作系统-进程与线程

进程与线程

进程

并发执行的程序在执行过程中分配和管理资源的基本单位。竞争计算机系统资源的基本单位。每一个进程都有一个自己的 地址空间 即进程空间。

线程

被系统独立调度和分派的基本单位,不拥有系统资源,而是与所处同一个进程中的其他线程共享进程所拥有的全部资源。

关系

  • 一个线程只能属于一个进程,一个进程可以有多以线程,但至少有一个线程。
  • 资源分配给进程,同一个进程中的所有线程共享该资源。
  • 处理机分配给线程,即真正在处理机上运行的是线程
  • 线程在执行过程中需要同步。不同进程间的线程间要利用消息通信的方式进行同步

区别

  • 调度:线程作为调度的最基本单位,进程作为拥有资源的基本单位。
  • 并发性:不仅进程之间可以并发执行,同一个进程的线程间也可以并发执行。
  • 拥有资源:进程是拥有资源的一个独立单元。线程不拥有资源,可以访问所属进程的所有资源。
  • 系统开销:在创建或撤销进程时,由于系统要为之分配和回收资源,因此系统开销要比线程大。

进程的几种状态

就绪态、运行态、阻塞态。

就绪态:

当进程已分配到除 CPU 以外的所有必要资源后,只要在获得 CPU ,便可立即执行

运行态

进程已获得 CPU ,其程序正在执行

阻塞态

正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,亦即程序的执行受到阻塞


就绪→执行

处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态。

执行→就绪

处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机,于是进程从执行状态转变成就绪状态。

执行→阻塞

正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。

阻塞→就绪

处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。

来源:csdn


进程间通信、线程间通信

进程间通讯方法

文件映射,共享内存,匿名管道,命名管道 ,邮件槽, 剪切板 ,动态数据交换,对象链接与嵌入, 动态链接库 ,远程过程调用等

  • 管道(pipe):是一种半双工的通信方式, 数据只能单向流动,而且只能在具有亲缘关系的进程间使用
  • 命名管道(named pipe):半双工的通信方式,但是 它允许无亲缘关系进程间的通信 。
  • 信号量(semophore):信号量是一个计数器,可以用来控制多个进程对共享资源的访问。 它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源 。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
  • 消息队列(message queue):消息队列 是一个消息的链表 ,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流、缓冲区大小受限等缺点。
  • 信号(signal):信号是一种比较复杂的通信方式,用于 通知接收进程某个事件已经发生 。
  • 共享内存(shared memory):共享内存就是 映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。

线程间通讯方法

事件,临界区,互斥量,信号量 等


进程同步与互斥的区别

互斥

某一资源同时只允许一个访问者对它进行访问,具有唯一性和排他性 。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。

同步

在互斥的基础上,通过其他机制实现访问者对资源的有序访问 。在大对数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。

简单地说:同步体现的是一种协作性,互斥体现的是一种排它性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值