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

    xiaoxiao2021-03-25  124

    进程与线程

    进程

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

    线程

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

    关系

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

    区别

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

    进程的几种状态

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

    就绪态:

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

    运行态

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

    阻塞态

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


    就绪→执行

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

    执行→就绪

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

    执行→阻塞

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

    阻塞→就绪

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

    来源:csdn


    进程间通信、线程间通信

    进程间通讯方法

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

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

    线程间通讯方法

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


    进程同步与互斥的区别

    互斥

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

    同步

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

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

    转载请注明原文地址: https://ju.6miu.com/read-21053.html

    最新回复(0)