美文网首页
第二章 进程通信、线程

第二章 进程通信、线程

作者: yangzai1997 | 来源:发表于2018-10-21 11:27 被阅读0次

进程通信:进程通信是指进程之间的信息交换。

一、低级通信——进程之间的互斥和同步

  信号量机制是有效的同步工具,但作为通信工具缺点如下:

(1)效率低(通信量少)

(2)通信对用户不透明(程序员实现,操作系统只提供共享存储器供代码操作)

二、高级进程通信

  用户直接利用操作系统提供的一组通信命令,高效地传送大量数据的通信方式。

操作系统隐藏了进程通信的细节,对用户透明,减少了通信程序编制上的复杂性。

线程:进程内的一条执行路径。

多线程系统中,同一个进程中的多个线程共享进程资源,可并发执行。

线程的属性:多线程OS中,一个进程包括多个线程,每个线程都是利用CPU的基本单位。

轻型实体:只需一点必不可少的、能保证独立运行的资源。(TCB)

独立调度和分派的基本单位:调度切换迅速且开销小。

可并发执行

共享进程资源:同进程中的线程可共享相同的进程地址空间、已打开文件、信号量机构等。

线程与进程的比较

调度:线程作为CPU调度的基本单位,而进程只作为其它资源分配单位。

并发性:进程之间可以并发,实质上是不同进程中的两个线程并发。一个进程的多个线程之间亦可并发。

拥有资源:进程间资源相互独立;同一进程的各线程间共享。某进程内的线程在其它进程不可见

系统开销:线程上下文切换在同进程环境下上下文切换要快得多。因为同进程内线程间共享内存地址和打开的文件资源。

线程的管理

同步和通信机制:

1)互斥锁

比较简单的,控制线程互斥访问资源;

适用于高频度使用的关键共享数据和程序段;

unlock和lock两个锁操作原语;

2)条件变量

与互斥锁一起使用

锁保证互斥进入临界区,但利用条件变量使线程阻塞

注意不满足条件时,wait条件变量:

释放互斥锁

进程阻塞在条件变量指向队列中

被唤醒后要重新再设互斥锁

3)信号量

私用信号量(privatesamephore)

用于同进程的线程间同步,数据结构存放在应用程序的地址空间。属于特定进程,OS感知不到其存在。

公用信号量(publicsamephore)

用于不同进程间或不同进程中线程的同步,数据结构由OS管理,存放在受保护的系统存储区。

相关文章

  • linux进程间通信(1)

    一、进程通信概述 1、什么是进程间通信?什么是线程间通信? 进程间通信: 进程间通信就指的是用户空间中进程A与进程...

  • Android 面试常问知识

    Q1:线程间的通信进程间通信的几种方式进程间通信方式详解Q2:线程安全SharePreferences 是否线程安...

  • 浏览器运行原理

    进程 申请和拥有计算机资源 不同进程间通信通过进程间通信管道IPC 线程 一个进程多个线程,每个线程执行不同的任务...

  • 进程/线程/协程

    进程 FastCGI多进程 线程 多线程 , 线程安全 协程 跨进程通讯 进程间通信(IPC) (1)共享内存,独...

  • python3 多线程多进程

    原文 线程通信 多进程

  • Android的IPC机制--学习笔记

    IPC :进程通信或者跨进程通信;两个进程间进行数据交换的过程; 什么是线程,什么是进程; 线程是CPU调度的最小...

  • ios 多线程的故事4

    线程间通信 线程间通信:在1个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信 线程间通信的体现 1个...

  • Android进程间通信知识点

    进程间通信(IPC Inter-Process Communication) 进程和线程 进程与线程时包含于被包含...

  • Python - 进程与线程

    进程和线程 进程之间的通信: q = multiprocessing.Queue()进程池之间的通信: q = m...

  • Python-进程VS线程

    进程和线程 进程之间的通信: q = multiprocessing.Queue()进程池之间的通信: q = m...

网友评论

      本文标题:第二章 进程通信、线程

      本文链接:https://www.haomeiwen.com/subject/tefbzftx.html