嵌入式操作系统_第2章 进程管理4
嵌入式实时操作系统 C OS原理与实践(第2版)

本书特色
采用逐步深入,反复印证的方法。 ● 采用从数据结构的设计入手,再到代码分析、示例验证的剖析方法。给出在虚拟平台 ●下的移植示例和针对 各章内容的示例。 给出在实际嵌入式系统下的工程示例。 ● 表格、图形化的风格。 ● 适用面广,适合于广大IT类学生及工作者。 ● 对于没有学习过操作系统原理的读者无障碍。 ● 与时俱进地扩展到μC/OS-III。 ● 学习本课程的先导知识是C语言、软件技术基础或数据结构,可以同步学习微机原理 ●或嵌入式系统设计。 另外,本人的另一本著作《基于STM32的嵌入式系统原理与设计》可以与本书交相辉映。 作为本科生等教材的建议是:第1、2、3章详细讲解,第4、5、6章的内容每章选择2~3节讲解。第7、8章的 内容可作为实践部分。
前言
智能系统的盛行使21世纪前10年成为手指尖在触摸屏上滑动拖曳的时代。不少高级科技人员解决了一个又一 个困难,使裸奔的软件在中断和循环的纠缠中走了很远很久。在ARM处理器走出江湖之后,处理器的处理速度和 闪存Flash、静态存储器SRAM的容量都飞速提升,高性能处理器的出现也使高端的复杂处理程序采用嵌入式来实 现,如物联、智能手机。存储容量的扩充使嵌入式操作系统有了用武之地。在STM32使用的ARM Cortex处理器中, 具有主堆栈MSP和进程堆栈PSP,具有PendSV和Systick中断,这些很明显是配合了μC/OS操作系统。
嵌入式期末复习资料(9)

嵌⼊式期末复习资料(9)第⼀章嵌⼊式系统概论本章主要内容:1.什么是嵌⼊式系统(嵌⼊式系统是计算机软件与计算机硬件集成在⼀起,并嵌⼊到应⽤对象内部的计算机系统)嵌⼊式系统是以应⽤为中⼼,以计算机技术为基础,并且软硬件可裁剪,适⽤于应⽤系统对功能、可靠性、成本、体积、功耗有严格要求的专⽤计算机系统。
它⼀般由嵌⼊式微处理器、外围硬件设备、嵌⼊式操作系统以及⽤户的应⽤程序等四个部分组成,⽤于实现对其他设备的控制、监视或管理等功能。
2.嵌⼊式系统分类(按技术复杂度分类:⽆操作系统控制的嵌⼊式系统NOSES;⼩型操作系统控制的嵌⼊式系统SOSES;⼤型操作系统控制的嵌⼊式系统LOSES。
按⽤途分类:军⽤,⼯业⽤,民⽤。
)系统级,板级,⽚级芯⽚级嵌⼊含程序或算法的处理器模块级嵌⼊系统中的某个核⼼模块板系统级嵌⼊主计算机系统3.嵌⼊式操作系统分类(按照源代码分类:商⽤型和开源型;按照实施性能分类:强实时性型和普通实时型;按内核结构分类:单内核型和为内核型。
)按⽤途分类:军⽤/民⽤按载体分类:宇航/车载? ? ?按通信性质分类:⽆线/有线按⽹络性质分类:联⽹/单机按环境分类:普通/恶劣按功耗分类:低功耗/普通功耗主要分类⽅法按硬件软件性质根据控制技术的复杂度可以把嵌⼊式系统分为三类:⽆操作系统控制的嵌⼊式系统NOSES,Non-OS control Embedded System;⼩型操作系统控制的嵌⼊式系统SOSES,Small OS control Embedded System;⼤型操作系统控制的嵌⼊式系统LOSES,Large OS control Embedded System。
4.嵌⼊式处理器特点,常见缩写特点:1.对实施多任务有较强的⽀持能⼒,能完成多任务处理,并且中断响应速度快2.处理器结构可扩展3.内部集成了测试电路4.低功耗常见缩写:通⽤型嵌⼊式微处理器(简称:EMPU,或者MPU)微控制器(MCU)数字信号处理器(DSP)(嵌⼊式DSP处理器:EDSP)混合处理器和⽚上系统(SOC)嵌⼊式双核处理器,双核(dual core);多核处理器,多核DSP。
第二章 Wince的体系结构和功能

驱动 程序
BSP当中应该包括对应开发板上所有的外部设备的 驱动程序,保证WinCE操作系统能够发挥此开发 板的最大效能。
配置 文件
运行时所需的二进制文件 包括:.DB、 reginit.ini、 .DAT。
O E M 层 的 组 成
OAL
• 主要负责内核与硬件通讯 • 硬件平台初始化
硬件初始化
内核性能 监测
LOGO
www.themegalle
3
OEM层
OEM(Original Equipment Manufacturer,原始设
备制造商)表示,一些制作硬件主板的厂商可根据自己 的产品特点对Windows CE进行定制,从而使Windows CE可以运行在这些厂商的主板上,在出售硬件开发板的
同时,也会把OEM层以BSP的形式提供给客户供其使用。
WinCE5.0的系统架构
OEM适配层 (OAL)
LOGO
www.themegalle
(OEM adaptation layer)内核抽象出来的与硬件交互 的接口;代码通常是与硬件高度相关;负责内核与 硬件的通信。
引导 程序
初始化硬件,加载操作系统映像(OS Image)到内 存,然后跳转到操作系统代码去执行。
2.1 Windows Ce的结构功能概览
• 2.1.1 层次体系结构 • 微内核,进程、线程,调度、内存管理等基本模 块,其他作为用户进程 • 多层次设计,层层之间,下层服务上层,上层依 赖下层 • 扩展性、可维护性
WinCE5.0的系统架构 WinCE的可剪裁性,使其体积也非常小。
实质
单体内核
2.1.2 硬件层
Why
1. 2. 3. 4. 处理体系结构不统一 硬件资源通常受限 外部设备的种类繁多 实时性和可靠性
winCE嵌入式操作系统介绍

Windows CE 嵌入式系统Windows CE是Microsoft公司的嵌入式操作系统产品。
它是一个紧凑、高效和可扩展的操作系统,具有多线程、多任务、确定性的实时和完全抢先式优先级的操作系统环境,适合于只有有限硬件资源的硬件系统。
操作系统的定制采用模块化设计方式,便于用户的使用。
支持Win32 API和MFC,具有Windows程序设计经验的用户可迅速掌握其编程方法。
第一章绪论BSPBSP是介于主板硬件和操作系统之间的一层,也可以说是操作系统的一部分,主要目的是为了支持操作系统,使之能够正常地在主板上运行.“嵌入性”、“专用性”和“计算机系统”是嵌入式系统的三个基本要素。
一般情况下,嵌入式操作系统可分为两类:一类是面向控制和通信等领域的实时操作系统,如WinRiver公司的VxWorks、ISI公司的pSOS、QNX公司的QNX和ATI的Nucleus等.另一类是面向消费电子产品的非实时操作系统,Windows CE是一个实时操作系统.实时支持功能在以下几个方面提升了Windows CE的性能.(1)支持嵌套中断(2)允许更高优先级别的中断首先得到响应,而不是等待低级别的中断服务线程(IST)(3)更好的线程响应能力(4)对高级别中断服务线程的响应时间上限的要求更加严格,在线程响应能力方面的改进,可帮助开发人员掌握线程转换的具体时间,并通过增强的监控能力和对硬件的控制能力帮助开发人员创建更好的嵌入式应用程序.(5)更多的优先级别,256个优先级别可使开发人员在控制嵌入式系统的时序安排方面有更大的灵活性.(6)更强的控制能力,对系统内的线程数量的控制能力可使开发人员更好地掌握调度程序的工作情况.5 丰富的多媒体和多语言支持第二章Windows CE的体系结构和功能2.1 Windows CE的层次结构2.2 进程、线程与调度2.3 内存管理2.4 存储管理与文件系统2.5 用户界面与图形系2.1.1 微内核结构Windows CE属于比较典型的微内核操作系统在内核中仅仅实现进程、线程、调度及内存管理等最基本的模块,而把图形系统、文件系统及设备驱动程序等等都作为单独的用户进程来实现.这样做显著地提高了系统的稳定性和灵活性.操作系统的结构可分为单体内核结构和微内核结构.传统的UNIX 是单体内核操作系统的代表.单体内核操作系统将图形、设备驱动及文件系统等功能全部在操作系统内核中实现,运行在内核状态和同一地址空间.其优点是减少了进程间通信和状态切换的系统开销,获得较高的运行效率;缺点是内核庞大,占用资源较多且不易剪裁,一旦每个驱动程序出错,就会导致整个系统的崩溃,系统的稳定性、安全性不好.与此相反,微内核系统在内核中只实现那些必须由内核实现的基本功能,而将图形系统、文件系统、设备驱动及通信等功能在内核之外,以系统服务的形式提供各种功能.这种结构的优点是有一个精炼的内核,便于剪裁与移植,而且由于系统服务程序运行在用户地址空间,因而个别驱动程序的错误不至于导致整个系统的崩溃;其不足之处是在运行中用户状态和内核状态频繁地切换,从而导致系统效率不如单体内核.微内核结构用一个水平分层的结构代替了传统的纵向分层的结构。
嵌入式系统进程管理

安全与可靠性的挑战
1 2 3
防止非法访问
嵌入式系统可能面临来自外部的非法访问和攻击, 进程管理需采取安全措施,确保系统的安全性和 稳定性。
数据完整性和保密性
嵌入式系统处理的数据可能涉及隐私和机密,进 程管理需采取加密和校验等措施,确保数据的安 全性。
故障恢复和容错
嵌入式系统可能面临各种故障和异常情况,进程 管理需具备故障恢复和容错能力,确保系统的可 靠性和稳定性。
多任务处理的挑战
任务调度
嵌入式系统通常需要同时处理多 个任务,进程管理需合理调度任 务,确保系统的实时性和性能。
任务优先级
不同任务可能有不同的优先级和 紧急程度,进程管理需根据实际 情况设置合理的优先级,以满足 任务需求。
任务同步与通信
多个任务之间可能存在依赖关系 和通信需求,进程管理需提供有 效的同步与通信机制,确保任务 的正确执行。
04
嵌入式系统进程管理面临的挑 战
资源受限的挑战
内存限制
嵌入式系统通常具有有限的内存 资源,要求进程管理必须高效地 使用内存,避免内存溢出或浪费。
处理器能力
嵌入式系统的处理器能力有限,要 求进程调度和执行必须快速且高效, 以满足实时性和性能要求。
I/O资源
嵌入式系统通常具有有限的I/O资源, 如串口、GPIO等,进程管理需合理 分配和使用这些资源。
进程同步
在嵌入式系统中,多个进程可能需要协同工作以完成一项任 务。进程同步机制确保这些进程按照预定的顺序和时间点执 行,避免冲突和竞态条件。
进程通信
嵌入式系统中的进程之间需要进行数据交换和信息传递。进 程通信机制提供了一种可靠、高效的方式来交换数据,确保 不同进程之间能够正确地协同工作。
操作系统(1~8章的课后习题答案)

1.1:存储程序式计算机的主要特点是:集中顺序过程控制(1)过程性:模拟人们手工操作(2)集中控制:由CPU集中管理(3)顺序性:程序计数器1.2:a:批处理系统的特点:早期批处理有个监督程序,作业自动过渡直到全部处理完,而脱机批处理的特点:主机与卫星机并行操作。
b:分时系统的特点:(1):并行性。
共享一台计算机的众多联机用户可以在各自的终端上同时处理自己的程序。
(2):独占性。
分时操作系统采用时间片轮转的方法使一台计算机同时为许多终端上同时为许多终端用户服务,每个用户的感觉是自己独占计算机。
操作系统通过分时技术将一台计算机改造为多台虚拟计算机。
(3):交互性。
用户与计算机之间可以进行“交互会话”,用户从终端输入命令,系统通过屏幕(或打印机)将信息反馈给用户,用户与系统这样一问一答,直到全部工作完成。
c:分时系统的响应比较快的原因:因为批量操作系统的作业周转时间较长,而分时操作系统一般采用时间片轮转的方法,一台计算机与许多终端设备连接,使一台计算机同时为多个终端用户服务,该系统对每个用户都能保证足够快的响应时间,并提供交互会话功能。
1.3:实时信息处理系统和分时系统的本质区别:实时操作系统要追求的目标是:对外部请求在严格时间范围内做出反应,有高可靠性和完整性。
其主要特点是资源的分配和调度首先要考虑实时性然后才是效率。
此外,实时操作系统应有较强的容错能力,分时操作系统的工作方式是:一台主机连接了若干个终端,每个终端有一个用户在使用。
用户交互式地向系统提出命令请求,系统接受每个用户的命令,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果。
用户根据上步结果发出下道命。
分时操作系统将CPU 的时间划分成若干个片段,称为时间片。
操作系统以时间片为单位,轮流为每个终端用户服务。
每个用户轮流使用一个时间片而使每个用户并不感到有别的用户存在。
分时系统具有多路性、交互性、“独占”性和及时性的特征。
操作系统概论重点整理2017(2017年张琼声版)
操作系统概论-02323(2017年张琼声版本)第1章操作系统简介1.1什么是操作系统(1)操作系统概念:操作系统是一种复杂的系统软件,是不同程序代码、数据结构、初始化文件的集合,可执行。
操作系统是提供计算机用户与计算机硬件之间的接口,并管理计算机软件和硬件资源,并且通过这个接口使应用程序的开发变得简单、高效。
接口是两个不同部分的交接面。
接口分为硬件接口和软件接口,计算机的所有功能最终都是由硬件的操作来实现的,计算机屏蔽了对硬件操作的细节。
(2)操作系统完成的两个目标:1)与硬件相互作用,为包含在所有硬件平台上的所有底层可编程部件提供服务;2)为运行在计算机系统上的应用程序(即用户程序)提供执行环境。
现代计算机特点是支持多任务,一方面保证用户程序的顺利执行,另一方面使计算机系统资源得到高效的利用,保证计算机系统的高性能。
(3)操作系统的功能:处理机管理、内存管理、设备管理、文件管理。
1.2操作系统的发展1)无操作系统2)单道批处理系统3)多道程序系统(多道批处理系统、分时系统)4)微机操作系统5)实时操作系统6)嵌入式操作系统7)物联网操作系统1.2.1无操作系统阶段:电子管,无存储设备,第一台:1946年宾夕法尼亚大学的「埃尼阿克」单道批处理系统:晶体管,磁性存储设备,内存中有一道批处理作业,计算机资源被用户作业独占。
吞吐量是指单位时间内计算机系统处理的作业量1.2.2单道批处理系统特点:自动性、顺序性、单道性。
优点:减少了等待人工操作的时间缺点:CPU资源不能得到有效的利用。
1.2.3多道程序系统多道程序系统:集成电路芯片,出现了分时操作系统(多个终端)。
特点:多道性、无序性、调度性、复杂性。
优点:能够使CPU和内存IO资源得到充分利用,提高系统的吞吐量。
缺点:系统平均周转时间长,缺乏交互能力。
1.2.4微机操作系统:第一台Intel公司顾问GaryKildall 编写的CP/M系统,是一台磁盘操作系统,用于Intel8080.1.2.5操作系统特点(1)分时系统:特点:多路性、及时性、交互性、独立性。
第2章 进程管理课后习题解答
第题中,如果修改问题中的同步算法,要求 对写进程优先,即一旦写进程到达,后续的读者进程必须等待, 而无论是否有读者进程在读文件。写出相应进程的程序段。 semaphore fmutex=1, rmutex=1, wmutex=1;que=1;
int rcount=0, wcount=0; void main() { parbegin(reader, writer); }
12
void reader { while(1) { wait(que); wait(rmutex); if(0==readcount) wait(fmutex); readcount++; signal(rmutex); signal(que); …. begin to read wait(rmutex); readcount--; if(readcount==0) signal (fmutex); signal(rmutex); } }
读者—写者问题(读优先) 读者 写者问题(读优先) 写者问题 semaphore rmutex=1,wmutex=1; int readcount=0; = void main() { parbegin(reader,writer); }
读者进程: 读者进程: void reader() { while(1) { wait(rmutex); if (readcount==0) wait(wmutex); readcount++; signal(rmutex); … 读操作 wait(rmutex); readcount--; if (readcount==0) signal(wmutex); signal(rmutex); } }
18
chopstick[ ={1 semaphore chopstick[5]={1,1,1,1,1}; viod main() { parbegin(P0(),P1(),P2(),P3(),P4()); parbegin(P0(),P1(),P2(),P3(),P4()); } Pi() /*i=0,1,2,3,4*/ { while(1) { wait(chopstick[i]); [ ] wait(chopstick[(i+1)%5]); [ ] eating; … signal(chopstick[i]); [ ] signal(chopstick[(i+1) %5]); [ ] thinking; } }
操作系统概念(第九版)答案
操作系统概念(第九版)答案简介《操作系统概念(第九版)答案》是一本针对《操作系统概念(第九版)》教材的答案集合。
本文档旨在提供读者对操作系统相关概念的理解和应用基础。
目录1.引论2.进程管理3.处理机调度4.进程同步5.死锁6.内存管理7.虚拟内存8.文件系统9.输入与输出10.磁盘存储管理11.安全性和保护12.分布式系统13.多媒体操作系统14.实时系统第一章引论本章的目标是介绍操作系统的概念和功能,包括定义了什么是操作系统、操作系统的历史和发展、操作系统的分类以及操作系统的基本组成部分。
问题1:操作系统是什么?答案:操作系统是一个管理计算机硬件和软件资源的软件系统。
它为用户提供一个在硬件和软件之间进行交互的接口,同时协调和控制计算机的各个组件,以实现有效和可靠的计算机操作。
问题2:操作系统的历史和发展?答案:操作系统的历史可以追溯到大约20世纪50年代,当时计算机的使用范围相对较小,操作系统也比较简单。
随着计算机技术的发展,操作系统逐渐变得复杂而且功能强大。
在20世纪60年代,随着多道程序设计的发展,操作系统开始支持同时运行多个程序。
这就导致了对资源的合理分配和进程调度的需求。
同时,操作系统的文件系统和输入输出功能也得到了改进和扩展。
在20世纪70年代,个人计算机的出现使得操作系统变得更加普及。
同时,分时操作系统和分布式操作系统的概念也开始出现。
到了20世纪80年代和90年代,图形用户界面(GUI)的引入和互联网的普及使得操作系统更加用户友好和功能丰富。
现在,操作系统已经成为计算机系统中不可或缺的一部分,为计算机用户提供各种功能和服务。
问题3:操作系统的分类有哪些?答案:操作系统可以根据不同的标准进行分类。
以下是国际上常用的操作系统分类方法:1.目标计算机系统:大型机操作系统、小型机操作系统、微型机操作系统、嵌入式系统操作系统。
2.处理方式:批处理系统、分时操作系统、实时操作系统。
3.用户数量:单用户操作系统、多用户操作系统。
操作系统第四版课后习题答案
操作系统第四版课后习题答案操作系统第四版课后习题答案在学习操作系统的过程中,课后习题是巩固知识的重要环节。
本文将为大家提供操作系统第四版课后习题的答案,帮助大家更好地理解和掌握相关知识。
第一章引论1. 操作系统的定义是什么?答:操作系统是计算机系统中的一个软件,它管理和控制计算机硬件资源,为用户和应用程序提供一个简单、一致的接口。
2. 操作系统的主要功能有哪些?答:操作系统的主要功能包括进程管理、内存管理、文件系统管理、设备管理和用户接口等。
3. 解释并区分多道程序和多任务操作系统。
答:多道程序操作系统是指能够同时运行多个程序的操作系统,通过时间片轮转的方式实现程序的并发执行。
而多任务操作系统是指能够同时运行多个任务的操作系统,任务之间可以是并行执行的。
第二章进程管理1. 进程和程序的区别是什么?答:进程是程序在执行过程中的实体,包括程序计数器、寄存器和栈等,而程序是存储在磁盘上的可执行文件。
2. 什么是进程控制块(PCB)?答:进程控制块是操作系统中用来管理和控制进程的数据结构,包括进程的标识符、状态、优先级、程序计数器和寄存器等信息。
3. 进程的状态有哪些?答:进程的状态包括就绪状态、运行状态和阻塞状态。
第三章内存管理1. 什么是虚拟内存?答:虚拟内存是一种扩展内存的技术,将磁盘空间作为辅助内存来扩展物理内存的容量。
2. 什么是页面置换算法?答:页面置换算法是用于虚拟内存管理中的一种算法,当物理内存不足时,根据一定的策略选择一个页面将其从内存中置换出去,以便为新的页面腾出空间。
3. 什么是内存分配算法?答:内存分配算法是用于管理和分配内存的一种算法,包括连续分配、非连续分配和分段分页等。
第四章文件系统管理1. 文件系统的作用是什么?答:文件系统是操作系统中用于管理和组织文件的一种机制,它提供了对文件的创建、读写、删除等操作。
2. 什么是文件控制块(FCB)?答:文件控制块是操作系统中用于管理文件的数据结构,包括文件的属性、位置、大小和权限等信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
两个进程进行通信的过程
进程A
send(B,a); ┇
a sender:A size:6 text:Hello!
PCB(B) ┇ mq mutex sm
第一个消息缓冲区 sender:A size:6 text:Hello! next:0
进程B receive(b)
┇ b
sender:A
size:6
2.5 进程通信
定义:进程通信是指进程之间的信息交换。 进程互斥与同步交换的信息量较少且效率
较低,因此称这两种进程通信方式为低级 进程通信方式,相应地也将P、V原语称为 两条低级进程通信原语。 高级进程通信方式是指进程之间以较高的 效率传送大量数据。
进程通信的类型
高级进程通信方式可分为三大类:
第二章 进程管理总结
信号量机制 记录型信号量: struct semaphore{ int value; list of process L; } struct semaphore S;
第二章 进程管理总结
wait和signal操作描述:
void wait(S){ S.value=S.value-1; if (S.value<0) block(S.L);
2.6 线程(引入进程的目的)
引入进程的目的是:为了使程序并发执行, 提高资源的利用率和系统吞吐量。
2.6 线程(引入线程的目的)
但是,进程创建、撤销和切换所付出的时 空开销太大,为了减少程序在并发执行时 所付出的时空开销,引入了线程的概念。
引入线程的目的是:为了减少程序在并发 执行时所付出的时空开销。
无名管道
无名管道是用系统调用pipe()建立的 无名文件,用该系统调用所返回的文件 描述符来标识该文件。
只有调用pipe的进程及其子孙进程才能 利用该管道文件进行通信。
有名管道
有名管道是利用mknod系统调用建立的,是 可以在文件系统中长期存在的具有路径名的 文件,
其他进程可以知道有名管道的存在并能利用 路径名来访问该文件。
间接通信方式:发送进程将消息发送到信箱, 接收进程从信箱中取消息。
3.管道通信1/2
定义:所谓“管道”,是指用于连接一个读 进程和一个写进程以实现他们之间通信的一 个共享文件,又名pipe文件
共享文件(管道)通过连接读进程和写进程 的共享文件来实现读写进程之间通信。
3.管道通信2/2
2.消息传递系统1/2
在消息传递系统中,进程间的数据交换以 消息为单位,程序员直接利用系统提供的 一组通信命令(原语)来实现通信。
2.消息传递系统2/2
消息传递系将消息发送到接收进 程,并将其挂在接收进程的消息队列上;接收 进程从消息队列上取消息。
并发性
并发性。在引入线程的OS中,不仅进程间 可以并发执行,而且在一个进程内的多个 线程间,也可以并发执行,因而它比传统 的OS具有更好的并发性。
拥有资源
拥有资源。在这两种OS中,拥有资源的基 本单位都是进程。线程除了一点在运行中 必不可少的资源(如线程控制块、程序计数 器、一组寄存器值和堆栈)外,本身基本不 拥有系统资源,但它可共享其隶属进程的 资源。
共享存储器系统 消息传递系统 管道通信系统或共享文件系统
1.共享存储器系统
相互通信的进程共享某些数据结构或共享 存储区。
基于共享数据结构的通信方式:诸进程通过公 用某些数据结构交换信息。如生产者-消费者 问题。
基于共享存储区的通信方式:在存储器中划出 一块共享存储区,诸进程可通过对共享存储区 进行读或写来实现通信。包括建立共享存储区、 附接及断接。
支持多处理机系统
传统的进程,只能运行在一个处理机上; 多线程的进程,则可以将进程中的多个线 程分配到多个处理机上,从而获得更好的 并发执行效果。
多线程实例:矩阵乘法
给定两个矩阵A和B,其中A是具有M行K列的 矩阵,B为K行N列的矩阵,A和B的矩阵积为矩 阵C,C为M行N列.矩阵C中第i行第j列的元素 Cij就是矩阵A第i行每个元素和矩阵B第j列 每个元素乘积的和.
接收原语描述
void receive(b)//b为接收区首址 { 获得接收进程内部标识j;
P(sm); P(mutex); 将消息队列中的第一个消息移出; V(mutex); 将消息复制到接收区b; }
2.6 线程(线程的概念)
进程是程序的一次执行过程和资源分配 的基本单位。一个进程内的基本调度单 位称为线程或称为轻权进程(Light weight process)。
使用共享文件通信时,基本上采用文件系 统的原有机制实现。包括创建、打开、关 闭、读写等。
管道机制应提供以下三方面的协调能力:
▪ 互斥:诸进程互斥读写管道 ▪ 同步:管道空、满情况处理 ▪ 存在:确定对方是否存在
管道的类型
管道的类型有:
无名管道 有名管道
有名管道和无名管道的读写方式是相同的。
1.直接消息通信3/4
我们还可以利用直接通信原语,来解决生 产者-消费者问题。当生产者生产出一个产 品(消息)后,便用Send原语将消息发送给 消费者进程;而消费者进程则利用 Receive原语来得到一个消息。如果消息 尚未生产出来,消费者必须等待,直至生 产者进程将消息发送过来。
1.直接消息通信4/4
while(1){ … produce an item in nextp; … send(consumer, nextp);
} while(1){
receive(producer, nextc); … consume the item in nextc; }
2.信箱通信
信箱通信方式中,进程之间通信需要通过 共享数据结构实体--信箱来进行。
对有名管道的访问方式象访问其他文件一样, 都需先用open系统调用去打开它。
共享文件通信示意图1
初始时,其长度为4,系统将管道看成一个循环 队列。按先进先出的方式读写。
A BCD
out
in
写入字符E后,管道长度为5
A BC D E
out
in
共享文件通信示意图2
读一个字符后,管道长度为4
直接消息通信的实现
用到了一种数据结构:消息缓冲区
消息缓冲区数据结构
消息缓冲区的数据结构如下: struct message_buffer { int sender; //发送者进程标识符 int size; //消息长度 char *text; //消息正文 struct message_buffer *next; //指向下一个消息缓冲区的指针 }
} void signal(S){
S.value=S.value+1; if (S.value<=0) wakeup(S.L); }
1.直接消息通信2/4
Send(Receiver, message); 发送一个消 息给接收进程;
Receive(Sender, message); 接 收 Sender发来的消息;
例如,原语Send(P2, m1)表示将消息m1 发送给接收进程P2; 而原语Receive(P1, m1)则表示接收由P1发来的消息m1。
在PCB中还应增加
struct PCB {┇ struct message_buffer *mq; //消息队列队首指针 semaphore mutex;//消息队列互斥信号量 semaphore sm;消息队列资源信号量 ┇ }
直接消息通信的实现
为了实现消息通信,发送进程应先在自己 的工作区中设置一个发送区,把欲发送的 消息填入其中,然后再用发送原语将其发 送出去。接收进程调用接收原语从自己的 消息缓冲队列中摘下第一个消息,并将其 内容复制到自己的消息接收区内。
独立性
独立性。每个进程都能独立地申请资源和 独立地运行;但同一进程的多个线程则共 享进程的内存地址空间和其他资源,他们 之间的独立性比进程间的独立性要底。
开销
由于创建或撤消进程时,系统都要为之分 配和回收资源,如内存空间等。进程切换 时所要保存和设置的现场信息也要明显地 多于线程,因此,OS在创建、撤消和切换 进程时所付出的开销将明显地大于线程。 另外,由于隶属于同一个进程的多个线程 共享同一地址空间和该进程所有已打开文 件,从而使它们之间的同步和通信的实现 也比进程更容易。
如A是3*2矩阵,B是2*3矩阵,则 C31=A31*B11+A32*B21
第二章 进程管理总结
1. 进程的基本概念、特征、状态及状态之间 的转换;进程控制块
2. 进程控制:进程的创建、终止、阻塞与唤 醒、挂起与激活;
3. 进程之间的两种制约关系; 4. 用信号量机制解决进程的同步关系; 5. 进程通信(三种高级通信方式); 6. 线程、线程的属性;
引入线程后,进程的定义
引入线程后,线程作为调度和分派的基本 单位。进程作为拥有资源的基本单位,不 再是可执行的实体。
进程VS线程
调度性 并发性 拥有资源 独立性 系统开销 处理机支持
调度性
在传统的操作系统中,拥有资源的基本单 位、独立调度和分派的基本单位都是进程。 而在引入线程的OS中,则把线程作为调度 和分派的基本单位,进程只是拥有资源的 基本单位,而不再是调度和分派的基本单 位。
信箱是一种数据结构,其中存放信件。 信箱逻辑上分成信箱头和信箱体两部分。
信箱头中存放有关信箱的描述。 信箱体由若干格子组成,每格存放一个信件,
格子的数目和大小在创建信箱时确定。
信箱通信原语
信箱通信原语包括:
信箱的创建和撤消: 消息的发送和接收: Send(mailbox,message); Receive(mailbox,message);
text:Hello!