操作系统——进程通信、线程

进程通信是指进程之间的信息交换。进程的互斥和同步是一种低级的进程通信机制,效率低、所能够传递的信息非常有限。

1、进程通信机制:

(1)共享存储器系统

通过共享数据结构或者共享存储区进行进程之间的通信。

(a)通过共享数据结构。

    比如生产者-消费者问题中的有界的缓冲区。由于数据结构的设置以及同步的处理都是人工的,强度大,是一种比较低级的通信机制。

(b)通过共享存储区。

    在处理器中划分一块共享的存储区域,所有共享该区域的进程通过对共享区域的数据进行读写来进行通信,是一种能够传输较大数量的通行方式。

(2)消息传递系统

各需要通信的进程通过格式化的消息进行信息交换。这是最重要的一种进程通信方式。

(a)直接通信方式。

利用操作系统的原语进行通信,发送方直接指定消息的接收方;消息接收方也指定消息的来源。

(b)间接通信方式。

需要借助作为共享数据结构的实体进行通信。该实体一般被称为信箱。

消息传递系统中的主要问题:通信链路、消息格式、进程同步方式。通信链路的建立可以利用系统的“建立链接”原语建立通信链路并显式拆除,也可以利用系统的“发送原语”由系统自动建立通信链路。对于单机系统消息格式则是简单固定,而对于复杂系统的进程通信(比如网络)则可能要将消息分为消息头和消息正文等。进程同步方式主要有3种:发送进程和接受进程都阻塞(两者之间无缓冲区)、发送进程不阻塞接受进程   阻塞(打印进程一直阻塞直到有打印请求)、发送进程和接受进程都不阻塞(两者之间带有缓冲区)。

(3)管道通信系统

    管道通信主要借助于管道文件。管道文件是用来连接一个输入进程和输出进程并实现他们输入的一个共享文件。利用管道进行通信时需要注意管道文件的互斥、对管道文件操作的同步以及输入和输出进程必须同时存在。

(4)Client-Server system

2、消息传递通信的实现方法

(1)直接通信方式

    发送进程利用OS所提供的发送命令(原语),直接把消息发送给目标进程。此时,发送进程和接收进程都以显式方式提供对方的标识符。通常利用系统通信命令(原语):
 Send(Receiver, message);
 Receive(Sender, message);

(2)间接通信方式

    基于共享数据结构的实体用来暂存发送给目标进程的消息;接收进程则从该实体中,取出对方发送给自己的消息。通常把这种实体称为信箱。
    消息在信箱中可以安全地保存,只允许核准的目标用户随时读取。既可实时通信,又可非实时通信。

3.消息传递系统的实现

①通信链路的建立
②消息格式
③同步方式

4.消息缓冲队列通信机制

美国Hansan提出,在RC4 4000系统上实现。
1.不需要管理链路
2.定义简单数据结构(消息格式)
3.实现发送和接收的操作原语


认识线程

    引入

    多道程序管理:追求效率的目的下实现“并发”
    并发性与效率的讨论(利用进程实现的多道程序中):
    进程是一个可拥有资源的独立单位;是一个可独立调度和分配资源的基本单位

    属性

    多线程OS中,一个进程包括多个线程,每个线程都是利用CPU的基本单位。
    轻型实体:只需一点必不可少的、能保证独立运行的资源。(TCB)
    独立调度和分派的基本单位:调度切换迅速且开销小。
    可并发执行
    共享进程资源:同进程中的线程可共享相同的进程地址空间、已打开文件、信号量机构等。

    线程的信息

    tcb管理的信息:标识符、运行状态、优先级、寄存器状态、堆栈、专有存储器、信号屏蔽等

    线程的管理

1.互斥锁
    适用于高频度使用的关键共享数据和程序段(unlock和lock两个锁操作原语)

2.条件变量
    与互斥锁一起使用,锁能保证互斥进入临界区,利用条件变量使线程阻塞
    注意不满足条件时,wait条件变量:
    释放互斥锁,进程阻塞在条件变量指向队列中,被唤醒后要重新再设互斥锁

3.信号量
    私用信号量:用于同进程的线程同步
    公用信号量:用于不同进程间

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341

推荐阅读更多精彩内容