进程的引入(操作系统)

news/2024/11/19 20:58:15/

目录

1、进程的概念

2、进程状态及状态转换

(1)进程的状态

(2)状态的转换

3、进程控制块(PCB)

4、进程的组成和上下文

5、进程的队列

6、进程的类型和特征

7、进程间相互联系与相互作用

 8、进程的创建与撤销

9、进程与程序的联系与差别


多道系统中的程序的活动规律:

推进=>暂停=>推进=>暂停=>…….

(获得资源=>失去资源=>获得资源=>失去资源=>……)

暂停:保存现场(PSW+PC=>寄存器)

推进:恢复现场(寄存器=>PSW+PC)

暂停原因:(1) 自身原因:等待资源,启动IO

                   (2) 剥夺CPU—给其它程序运行机会

1、进程的概念

定义: 可参与并发执行的程序称为进程。 进程是具有一定独立功能的程序关于一个数据集合的一次运行活动。

定义强调两个方面:

  • 动态:执行中的程序;
  • 并发:可与其他进程同时执行。

2、进程状态及状态转换

(1)进程的状态

运行态(RUN): 占有CPU正在向前推进(在单处理器系统中任一时刻只能有一个进程处于运行态)

就绪态(READY): 可以运行,但未得到CPU

等待态(WAIT):也称为挂起态、阻塞态、睡眠态,进程本身不具备运行条件, 等待某一事件发生。

(2)状态的转换

就绪=>运行:获得处理机

运行=>就绪:剥夺处理机

运行=>等待:申请资源未得到,启动IO

等待=>就绪:得到资源,IO中断

 

 

3、进程控制块(PCB)

标志进程存在的数据结构,其中保存系统管理进程所需的全部信息

PCB内容:(不同系统不尽相同)

进程标识(pid)      家族联系

进程状态             地址信息

现场信息             打开文件

调度参数             消息指针

所属用户(uid)      队列指针

4、进程的组成和上下文

进程的组成:

进程的组成
进程控制块(process control block)程序
建立进程=>建立PCB撤销PCB=>撤销进程代码(code)数据(data)堆栈(stack+heap)
栈:保存返回点、参数、返回值、局部变量堆:动态变量

进程的表记:进程(程序)开始运行时,由Linux系统调用自己的系统函数,在内存中开辟task_struct结构体,又叫进程表。

 进程上下文(process context) :进程的物理实体与支持进程运行的物理环境统称为进程上下文 PCB+程序

系统环境:地址空间,系统栈,打开文件表,…

上下文切换(context switch): 由一个进程的上下文转到另外一个进程的上下文

系统开销(system overhead) :运行操作系统程序完成系统管理工作所花费的时间和空间

5、进程的队列

PCB构成的队列:(不一定FIFO,单向或双向)

 1. 就绪队列:系统一个或若干个(根据调度算法确定)

2. 等待队列:每个等待事件一个

3. 运行指示字:每个处理机一个

进程队列的模型

 

6、进程的类型和特征

进程类型

  • 系统进程:运行操作系统程序,完成系统管理(服务)功能. 例如:UNIX #0 -- sched, #1 -- init
  • 用户进程:运行用户(应用)程序,为用户服务。 例如:UNIX vi, shell, cc

进程的特征

并发性:可以与其它进程一道向前推进;

动态性:动态产生、消亡,生存期内状态动态变化;

独立性:一个进程是可以调度的基本单位;

交往性:同时运行的进程可能发生相互作用;

异步性:进程以各自独立,不可预知的速度向前推进;

结构性:每个进程有一个PCB。

7、进程间相互联系与相互作用

相互联系

  • 相关进程 :同一家族的进程 可以共享文件,需要相互通讯,协调推进速度… 父进程可以监视子进程,子进程完成父进程交给的任务。
  • 无关进程 :没有逻辑关系、同时执行的进程。 有资源竞争关系,互斥、死锁、饿死。

相互作用

1. 直接相互作用:发生在相关进程之间

2. 间接相互作用:发生在任何进程之间

 8、进程的创建与撤销

进程的创建

建立PCB,分配内存,加载程序,入就绪链

UNIX:pid=fork(),exec(prog,args)

进程的撤销

去配资源,撤销PCB,通知父进程

UNIX:exit() vs. kill 除初始进程外,其它进程由(父)进程创建,并形成进程家族。

9、进程与程序的联系与差别

进程与程序的联系

  • 进程包括一个程序
  • 进程存在的目的就是执行这个程序

进程与程序的差别

  • 程序静态,进程动态
  • 程序可长期保存,进程有生存期
  • 一个程序可对应多个进程,一个进程只能执行一个程序

http://www.ppmy.cn/news/491250.html

相关文章

全网最牛最全Postman接口测试: postman设置接口关联,postman实现参数化

postman设置接口关联 在实际的接口测试中,后一个接口经常需要用到前一个接口返回的结果, 从而让后一个接口能正常执行,这个过程的实现称为关联。 在postman中实现关联操作的步骤如下: 1、利用postman获取上一个接口指定的返回值…

聚类Clustering方法定位船舶站点

背景 现有船舶的航线中采样的数据库,采样的总时长为3个月,仅采样航速静止(小于1节)的数据,关键有效数据主要有经纬度/实时吃水量。 思路 基于站点附近轮船有停靠且航行速度慢,故取样点多的基础认识&…

Tomcat及项目部署

一、Tomcat是什么? Tomcat 是基于 Java 实现的⼀个开源免费, 也是被⼴泛使⽤的 HTTP 服务器。 二、下载安装 官⽅⽹站:https://tomcat.apache.org/ 选择其中的 zip 压缩包, 下载后解压缩即可. 解压缩的⽬录最好不要带 "中⽂" 或者 特殊符号…

Window 7 查看电脑网卡是千兆还是百兆

右键点击计算机–>管理–>设备管理器–>点击“网络适配器”左侧的三角形,会列出所有网卡,如果网卡名字中有Gigabit、GBE,10/100/1000M、RTL8196等字样,说明是千兆网卡。否则就是百兆网卡。

win7网络计算机和设备,Win7电脑修改网卡配置连接千兆网络的方法是什么?

目前有很多的电脑都是使用realtek网卡的,当时奇怪的是网卡连接到h3或者d-link千兆交换机的时候,那么网速就会变得非常缓慢,网速直接下降到100兆或者10兆,想要实现千兆的连接就需要重启计算机才可以。想要直接连接千兆网速&#xf…

8153网卡linux驱动,绿联Type-c千兆网卡RTL8153驱动

绿联Type-c千兆网卡RTL8153驱动是专门给苹果笔记本电脑和台式准备的一个网卡设备,提供给大家驱动安装,这个网卡是支持千兆的,非常强大! 用户评价 果然还是有线的靠谱 用来链ns 之前wifi总是断线 现在网速基本是之前的3倍 主要是上…

CMD查看电脑网卡是否支持千兆

问题表象:家里宽带升级200M,但是用笔记本直连网络测速后速度仍然是100M的宽带 问题原因:笔记本的有线网卡只支持100M宽带(wifi支持速度较高) 解决方法:将千兆口连接一个千兆路由器,进行路由器…

设置本计算机win7的网络参数,win7系统看电脑网卡是千兆还是百兆的设置教程

win7系统使用久了,好多网友反馈说win7系统看电脑网卡是千兆还是百兆的问题,非常不方便。有什么办法可以永久解决win7系统看电脑网卡是千兆还是百兆的问题,面对win7系统看电脑网卡是千兆还是百兆的图文步骤非常简单,只需要1、首先在…