操作系统期末复习-----课时2进程的描述与控制

一、进程的概念

1.定义

从不同的角度,进程可以有不同的定义,比较典型的定义有:
(1)进程是程序的一次执行
(2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动
(3)进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位
到这为止,俺发现对于进程和程序还是不清楚,哦豁,那就去baidu一下喽
在这里插入图片描述结果:

引用文本
程序和进程是两个既有联系又有区别的概念。
1、程序是指令的有序集合,是一个静态的概念;
而进程是程序在处理机上的一次执行过程,是一个动态的概念。
2、进程具有并发性,而程序没有。
3、进程是竞争计算机资源的基本单位,程序不是。
4、进程是由程序、数据和进程控制块组成,而程序仅是指令的有序集合。
5、进程与程序之间不是一一对应的,即同一程序运行于若干不同的数据集合上,它将属于若干个不同的进程;而一个进程可以执行多个程序
(哦豁,俺现在懂了)

在这里插入图片描述

2.组成

进程是由程序控制块(PCB)、程序段、数据段组成。
PCB:操作系统是通过PCB来管理进程,因此PCB中应该包含操作系统对其进行管理所需的各种信息,如进程描述信息、进程控制和管理信息、资源分配清单和处理机关相关信息。
程序段:程序代码存放的位置。
数据段:程序运行时使用、产生的运算数据。如全局变量、局部变量、宏定义的常量就存放在数据段内。

3.组织方式

进程的组织形式分为:链接方式和索引方式
**链接方式:**按照进程状态将PCB分为多个队列,操作系统持有指向各个队列的指针。
**索引方式:**根据进程的状态不同,建立几张索引表,操作系统持有指向各个索引表的指针。

4.进程的特征

动态性、并发性、独立性、异步性、结构性

二、进程的状态与转换

1.进程的状态

进程状态:一个进程的生命周期可以划分为一组状态,这些状态刻画了整个进程。进程状态体现一个进程的生命状态。
一般来说,进程有五个状态:
就绪、运行、阻塞(这三个是进程的基本状态,给laozi记住!!)、创建、终止(后面都有个状态~)
**创建态:**进程在创建时需要申请一个空白PCB(没错就是程序控制块),向其中填写控制和管理进程的信息完成资源分配。如果创建工作无法完成,比如资源无法满足就无法被调度运行,把此时进程所处的状态称为创建状态。
**运行态:**进程占用CPU,并在CPU上运行的状态。
**就绪态:**进程已具备运行条件,但由于未分配CPU无法运行状态。
**阻塞态:**进程因等待某个事件发生而暂时不能运行的状态。
**终止态:**进程结束,或出现错误,或被系统终止,进入终止状态。

2.状态的转换

在这里插入图片描述上述三种基本状态之间转换可分为六种情况:
运行—>就绪
(1)主要是进程占用CPU的时间过长,而系统分配给该进程占用CPU的时间是有限的;
(2)在采用抢先式优先级调度算法的系统中,当有更高优先级的进程要运行时,该进程就被迫让出CPU,该进程便由运行状态转变为就绪状态。
就绪—>运行:正运行进程的时间片用完,调度就转到就绪队列中选择合适的进程分配CPU。
运行—>阻塞:正在运行的进程因发生某等待事件而无法执行,则进程由运行态变为阻塞态,如发生了I/O请求。
阻塞—>就绪:进程所等待的事件已经完成,就进入就绪队列。
注:阻塞态—>运行态和就绪态—>阻塞态这两种状态转换是不可能发生的。

三、进程通信

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

PV操作是最低级的通信,高级通信方式是指以较高的效率传输大量数据的通信方式。
高级通信方式主要有三类:
(1)共享存储
分别有基于共享数据结构的通信方式,例如生产者和消费者、基于共享存储区的通信方式。
(2)消息传递
是以格式化的消息为单位,利用原语传递消息,分为直接通信和间接通信。
(3)管道通信
是消息传递的一种特殊方式,是指用于连接一个读进程和一个写进程以实现它们之间的一个共享文件,又称pipe文件。

四、线程

1.线程的引入

引入线程的目的是为了简化进程间的通信,以较小的开销来提高进程内的并发程度。
线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位。线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程所拥有的全部资源。
一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。

2.线程—作为调度和分配的基本单位

进程是系统资源分配的单位,线程是处理器调度的单位。
线程表示进程的一个控制点,可以执行一系列的指令。通常,和应用程序的一个函数相对应。进程分解为线程还可以有效利用多处理器和多核计算机。

3.线程与进程的比较

(1)进程与线程的区别:
A.调度。线程是调度和分配的基本单位,进程是拥有资源的基本单位。
B.并发性。不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行。
C.拥有资源。进程是拥有资源的一个 独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源。
D.系统开销。在创建或撤销进程时,由于系统都要为之分配和回收资源导致系统的开销明显大于创建或撤销线程时的开销。
(2)进程与线程的关系:
A.一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。
B.资源分配给进程,同一进程的所有线程共享该进程的所有资源。
C.处理机是分配给线程的,即真正在处理机上运行的是线程。
D.线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。线程是指进程内的一个执行单元,也是进程内的可调度实体。
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
后台采用apache服务器下的cgi处理c语言做微信小程序后台逻辑的脚本映射。PC端的服务器和客户端都是基于c语言写的。采用mysql数据库进行用户数据和聊天记录的存储。.zip C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊hii

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值