第二章.2节 进程通信,线程

本文深入探讨了进程间通信(IPC)的概念,包括消息传递系统的工作原理及其操作,如直接通信和间接通信。同时,文章详细介绍了线程的基本概念,线程与进程的区别,以及多线程编程的优点。此外,还对比了用户级线程和内核级线程的特点。

(PS:个人课下整理的操作系统笔记,OneNote直接拷贝过来的,图片看不了就将就一下,配合张伟老师的PPT看效果更好)

一、进程间通信(Interprocess communication,IPC

1.概念:提供一种机制,以允许进程不必通过共享地址空间来同步和通信其动作

2.消息传递系统(Message Passing system,MPS)允许进程间通信和同步而不需要共享数据

3.IPC工具拥有的操作:

  • 发送消息(消息可以是定长或者变长)
  • 接收消息

4.消息传递系统的传递消息方式:

  • 直接通信——必须明确的命名发送者和接收者
    • 原语:
      • Send (p, message)发送消息到进程P
      • Receive (Q, message)接收来自进程Q的消息
    • 属性:只与两个进程有关,一对进程自动建立一条链路,对称寻址(发送和接受进程必须命名对方)
    • 变形:非对称寻址(发送者命名接收者,接收者不命名发送者)原语定义为send(p,message),receive(id,message),变量id设置成相应的进程名
    • 缺点:改变一个进程名,需要找到并改变其他所有包含这个进程名的引用
  • 间接(indirect)通信——消息通过邮箱(mailbox端口(port来接收,每个邮箱标识符唯一
    • 原语:
      • Send (A, message)发送一个消息到邮箱A
      • Receive (A, message)接收来自邮箱A的消息
    • 属性:只要一对进程中两个成员共享一个邮箱即可建立链路,一条线路(对应一个邮箱)可以有两个或多个进程相关联,两个进程间也可以有多条线路(多对多)

5.高级通信机制

  • 共享存储器系统share memory(有限缓存:生产者消费者问题)
  • 管道通信系统pipe(共享文件)
  • 消息传递系统(最好提供给IPC):直接通信、间接通信

6.阻塞(同步),非阻塞(异步)知道

 

二、线程(Thread):为了提高系统程序并发执行的程度,进一步提高系统吞吐量,有时也叫轻量级进程LWP

1.什么是线程:

线程是CPU使用的基本单元,它由线程ID,程序计数器、寄存器、栈组成,与同一进程的其他线程共享资源(代码段、数据段和其他系统资源)

2.从调度、并发性、拥有资源、系统开销,说明进程和线程的区别

3.多线程编程的优点:

  • Responsiveness响应
  • Resource Sharing资源共享
  • Economy经济
  • Utilization of MP(Multi Processor) Architectures多处理器结构的利用

4.用户级线程和内核级线程

  • User threads(能快速创建和管理,可以在不支持线程的操作系统上实现。允许用户自己定制调度算法
    1. Provided by a thread library at the user level.
    2. All thread operations are completed in user space, which are unknown in kernel space.
    3. POSIX Pthreads、Mach C-threads、Solaris threads
  • Kernel threads(内核级通常慢于用户级线程)
    1. Provided by the OS directly.
    2. All thread operations are performed by OS.
    3. Windows 95/98/NT/2000、Solaris、Tru64 UNIX、BeOS、Linux

5.多线程模式:(了解)

  • 多对一:早期模型,基本不用
  • 多对多
  • 一对一
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值