奥鹏易百

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

帮助中心知识拓展客服QQ 515224986
查看: 459|回复: 0

大工20秋《操作系统》辅导资料五

[复制链接]

1万

主题

1

回帖

2万

积分

论坛元老

积分
29028
发表于 2021-3-7 15:22:12 | 显示全部楼层 |阅读模式
扫码加微信
操作系统辅导资料五主    题:第三章的辅导资料
学习时间:2020年10月26日--11月1日
“不忘初心、牢记使命”主题理论学习:群众路线是我们党的生命线和根本工作路线,是我们党永葆青春活力和战斗力的重要传家宝。不论过去、现在和将来,我们都要坚持一切为了群众,一切依靠群众,从群众中来,到群众中去,把党的正确主张变为群众的自觉行动,把群众路线贯彻到治国理政全部活动之中。
                      摘选自《坚持和运用好毛泽东主席思想活的灵魂》《习近平谈治国理政》内    容:第三章
这周我们将学习课件第三章进程管理(线程, Linux中的进程管理进程控制)。本章的学习要求及需要掌握的重点内容如下:
1.了解进程的定义
2. 掌握进程的控制
3. 了解线程的定义
4. 能够区分进程与线程
重点掌握内容:
1.重点:进程的概念,进程与程序区别,进程的状态及其转换,线程。
2.难点:进程的状态及其转换。进程间通信
        课前问题:
什么是进程通信?
进程间的低级通信都有何特征?
进程间的高级通信都有何特征?进程通信指在进程之间进行信息交换。并发执行的诸进程为了合作完成同一任务,为了互斥与同步,它们之间需要交换信息。交换的信息量可多可少,少的也许只是一个状态或者只有一个字节,多者则可能有成千上万个字节。操作系统提供了多种进程间通信机制,它们分别适用于不同场合,可以从不同角度对进程间的通信机制进行分类。
按照通信量的大小,可以将进程间的通信分为:
(1)低级通信。进程之间一次只能传送很少信息,例如,一个字节,一个整数。前面介绍的进程互斥与同步就涉及低级通信。优点:速度快;缺点:传送信息量小,效率低;通信过程对用户不透明,因为共享数据结构的设置、数据传送,进程互斥与同步都必须由程序员实现,编程较复杂。
(2)高级通信。进程间一次可以传送大量信息。优点:通信效率高,操作系统隐藏了进程通信的实现细节,减少了通信程序编程上的复杂性。
进程间的高级通信又分为以下三种:
/
共享内存通信方式
在内存中划出一块共享存储区,要通信的进程双方将自己的逻辑地址空间映射到共享存储区上。
通信时,发送进程将需要交换的信息写入该共享存储区中,接收进程从共享存储区中读取信息,从而实现进程之间的通信。由于共享内存通信方式不要求数据移动,两个需要交换信息的进程是通过对同一个共享的数据区进行写/读操作来达到互相通信目的,而这个共享的数据区实际上是每个互相通信进程的一个组成部分,因此它是进程之间最快捷、最有效的一种通信方法。UNIX、Windows、OS/2等操作系统都采用了这种通信方式。
消息缓冲通信方式
消息缓冲通信机制由Hansen在1973年首先提出,后来被广泛应用于本地进程之间通信。消息缓冲通信属于直接通信方式。若采用这种通信方式,则发送进程利用发送命令(原语)直接将信息发送到接收进程的消息缓冲队列,而接收进程从自己的消息缓冲队列中取出消息。进程间的信息交换以消息为单位。
基本思想是:在内存的操作系统空间设置一组消息缓冲区,用于暂存发送的消息;当发送进程要向接收进程发送消息时,首先在自己的内存空间设置一个发送区,将要发送的消息填入其中,并填入消息长度以及本进程标识符等信息,然后调用发送原语send;执行send原语将产生异常,自陷系统;内核接收控制权后,则为需要发送的消息分配一个空缓冲区,并将要发送的消息从发送进程的发送区拷贝到其中,然后将该缓冲区链接到接收进程的消息(缓冲)队列上,至此完成消息发送过程;接收进程在本进程的内存空间设置一个接收区,在接收消息时,通过执行接收原语receive直接从自己的消息(缓冲)队列上取下第一个消息缓冲区,并将其内容复制到接收区,然后释放该消息缓冲区的空间,至此完成消息接收过程。
信箱通信方式
信箱通信方式又称为间接通信方式,指进程之间的通信要借助称为信箱的共享数据结构实体,来暂时存放发送进程发送给接收进程的消息。发送进程利用发送原语send将消息发送到信箱中,接收进程利用接收原语receive从信箱中取出对方发送给自己的消息。采用信箱通信的最大好处是,发送方和接收方不必直接建立联系,没有处理时间上的限制,发送方可以在任何时间发送信件,接收方也可以在任何时间取走信件。
信箱是用来存放信件的存储区域,每个信箱有一个唯一的标识符。信箱的结构由“信箱头”和“信箱体”两部分组成。信箱头包含信箱容量、信箱属性、信件格式、信箱的资源/互斥信号量、指向当前可存放信件位置的指针等。信箱体分成若干个信格,每个信格用来存放一封信件。信箱通信方式如图所示。/线程
课前问题:
为什么要引入线程?
线程的定义是什么?
线程的状态有哪些?
线程与进程之间的关系都是什么?1.引入进程后,使程序能够并发执行,改善了资源的利用率和系统吞吐量。进程在系统中承担了两个角色,它既是拥有资源的基本单位,也是可以独立调度、独立运行的基本单位。然而,正是由于进程同时扮演了两个角色,使得进程并发执行要付出很大的时空开销,导致它不可能具有很高的并发执行程度。该结论的理由是,要使进程能够并发执行,操作系统必须进行以下一系列操作:
(1)创建进程。
(2)进程切换。
(3)撤消进程。
为了使多个程序能够更好地并发执行,同时又尽量减少系统的开销,一个很自然的想法是将进程承担的两个角色由操作系统分开,承担资源分配的实体不再作为独立运行的实体,而作为调度、分派基本单位的运行实体不再是拥有资源的实体。这样做的好处是运行实体可以“轻装上阵”,而承担资源分配的实体亦不会频繁切换。
2.线程
线程是进程中能够并发执行的实体,是能够被系统独立调度和分派的基本单位。线程除了具有为保证其运行而必不可少的资源外,基本不拥有系统资源。一个进程可以包含若干个线程,同属于一个进程的所有线程共享该进程的全部资源。
线程具有以下属性:
/
3.线程基本状态
线程也有生命周期,也存在执行、就绪、阻塞三种基本状态。
三种状态的含义与转换关系也与进程类似。由于线程不是资源的拥有单位,因此挂起状态对于单个线程没有意义。如果某个进程因挂起被换出内存,则它的所有线程因共享地址关系,也必须全部对换出去。由此可见,挂起状态是进程级状态,而不是线程级状态。类似,进程终止将导致该进程中的所有线程终止。 4. 线程与传统进程比较
线程具有许多传统进程具有的特征,因此有人将它称为轻量级进程,而将传统进程称为重量级进程。
与传统进程比较,它们存在以下相同之处:
(1)二者都具有ID,一组寄存器,状态,优先级以及所要遵循的调度策略。
(2)每个进程都有一个进程控制块PCB,线程也拥有一个线程控制块TCB。
(3)进程中的线程共享该进程的资源,子进程也共享父进程的资源;线程和子进程的创建者可以对线程和子进程实施某些控制,比如,创建者可以撤消、挂起、激活被创建者,以及修改被创建者的优先级;线程和子进程可以改变其属性并创建新的线程和子进程。
线程与传统进程存在以下差异:
/
Linux中的进程管理
课前问题:
Linux中的进程都有那几部分组成?
Linux中的进程状态都有哪些?
Linux的通信机制是什么?
1.Linux中的进程
在Linux中,进程和任务是同一个概念,在核心态中称为任务,在用户态中称为进程。Linux中的进程一般由四部分组成:
/
2.Linux中的进程状态
在Linux中,进程存在以下五种基本状态:
(1)可运行状态(TASK_RUNNING)。具有该状态的进程,表明已经具备了运行资格。这个状态实际对应了两个状态:要么已获得了CPU,正在执行;要么正处于就绪队列中,等待进程调度。
(2)可中断的等待状态(TASK_INTERRUPTIBLE)。运行中的进程由于等待某个事件,而暂时放弃CPU,处于阻塞等待状态,直至等待的事件出现才将它唤醒。处于可中断状态的进程既可以因资源满足而被唤醒,也可以由其他进程通过信号和定时中断唤醒。
(3)不可中断的等待状态(TASK_UNINTERRUPTIBLE).这是另一种等待(阻塞)状态。若进程是因硬件环境不满足而等待(例如,因某种资源不满足而等待),则处于这种等待状态。处于不可中断等待状态的进程不能通过信号和定时中断唤醒,只能使用特殊方式,例如使用唤醒函数wake_up( )唤醒。
(4)暂停状态(STOPPED)。进程处于暂时停止运行状态,以便接受某种处理。导致出现这种状态的原因有以下两种:①进程收到信号:SIGSTOP、SIGSTP、SIGTTIN、SIGTTOUT;②受其他进程的ptrace系统调用控制而被跟踪,暂时将CPU交给控制进程。
(5)僵死状态(TASK_ZOMBLE)。进程已被终止,正在结束中。也就是进程由于某种原因已被停止执行,但尚保留着进程的进程描述符task_struct,正等待其他进程提取该进程的信息。等信息提取结束后,当前进程才被删除。
/
3. Linux的通信机制
(1)信号
信号是软中断信号的简称,它是UNIX系统最古老的进程间通信机制之一,主要用来向进程发送异步的事件信号。Linux的大多数信号与UNIX信号相同。
(2)管道
管道是Linux中常用的进程间通信机制,所谓管道通信就是借助共享文件实现通信。
(3)共享内存
共享内存通信方式指在内存中划出一块共享存储区,要通信的进程双方将自己的逻辑地址空间映射到共享存储区上;通信时,发送进程将需要交换的信息写到该共享存储区中,接收进程从共享存储区中读取信息,从而实现进程之间的通信。由于共享内存通信方式不要求数据移动,两个需要交换信息的进程是通过对同一个共享的数据区进行写/读操作来达到互相通信目的,因此它是进程之间最快捷、最有效的一种通信方式。
4)消息队列
Linux中的消息队列与消息缓冲通信类似,进程之间通信利用消息队列进行。消息队列是存放在系统空间中的链表,它的节点存放消息,每个消息队列由一个消息队列标识号来确定。
Linux中与消息队列有关的数据结构有以下三个:msqid_ds、msg和msgbuf。重要考点
一、名词解释汇总
1.进程通信:参见教材2.4“进程间通信”。指在进程之间进行信息交换。
2.线程:参见教材2.5.2“线程的概念”。是进程中能够并发执行的实体,是能够被系统独立调度和分派的基本单位。二、单项选择题
1.信箱通信是一种(     )通信方式。
A.直接通信   
B.间接通信
C.低级通信   
D.信号量
答:B
分析:信箱通信是高级通信中的间接通信本内容由易百教育整理发布
网址www.openhelp100.com
QQ 515224986
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|www.openhelp100.com ( 冀ICP备19026749号-1 )

GMT+8, 2024-7-1 22:53

Powered by openhelp100 X3.5

Copyright © 2001-2024 5u.studio.

快速回复 返回顶部 返回列表