进程的引入(操作系统)

news2024/11/25 12:59:17

目录

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.coloradmin.cn/o/668001.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pcl1.12.1重新安装boost库

因为我的库有问题,直接使用pcl1.12.1的时候报错,于是重新安装boost库 1.78.0地址(因为打开pcl1.12.1的安装目录,发现boost库是1.78.0,所以去官网找到对应的版本进行安装) Index of main/release/1.78.0/sourcehttps://boostorg.j…

OpenHarmony端云一体化应用开发快速入门练习(中)登录认证

一、登录认证手机 可以在应用中集成手机帐号认证方式,您的用户可以使用“手机号码密码”或者“手机号码验证码”的方式来登录您的应用。 (一)前提条件 需要在AGC控制台开通认证服务。 需要先在您的应用中集成SDK。 (二&#xff…

安全测试-优秀测试工程师必备的4项安全测试方法

用您5分钟时间阅读完,希望能对您有帮助! 一.安全性测试 1、安全性测试方法 测试手段可以进行安全性测试,目前主要安全测试方法有:   1)静态的代码安全测试 主要通过对源代码进行安全扫描,根据程序中数…

网站开发实录(四)个人博客建站

一、前期准备 由于时间问题,已经准备好了服务器以及域名 服务器平台为“雨云”(朋友那里嫖来的),域名购买平台为阿里云(零元购来的)。接下来我将以此为例介绍个人博客建站过程,顺带记录我的第二…

原生微信小程序全流程(基础知识+项目全流程)

小程序的基本使用 小程序文件类型 小程序主要提供了 4 种文件类型: 类型名称作用是否必须存在.wxml用于页面的布局结构,相当于网页中 .html 文件是.wxss用于页面的样式,相当于网页中的 .css 文件否.js用于页面的逻辑是.json用于页面的配置…

最新Python3.11.4版本和PyCharm开发工具安装详细教程

Python3.11.4版本安装详细教程 1. 官网下载Python安装包1.1 进入官网1.2 查看系统类型1.3 选择与主机位数相同的安装程序 2.运行安装程序2.1 Customize installation(自定义安装)2.2 Optional Features(可选功能)2.3 Advanced Opt…

synchronized 底层实现原理、重量级锁、轻量锁、锁膨胀、锁自旋、偏向锁详解

目录 0、基础知识:Java对象的存储格式 1. synchronized底层:Monitor(重量级锁):被锁的对象与Monitor的关系 2. synchronized底层:轻量级锁优化,栈帧与被锁的对象的关系 3. 锁膨胀&#xff…

【arduino】HC-SR04超声波测距模块的驱动与使用

arduino超声波测距模块的驱动与使用 什么是超声波测距模块参数:引脚定义电路超声波传感器的控制时序驱动代码接线代码工程文件超声波是振动频率高于20KHZ的机械波。它具有频率高、波长短、绕射现象小、方向性好、能够成为射线而定向传播等特点应用广泛,适合大学生、工程师、技…

精简版Git基础操作(快速上手)

文章目录 前言一、初始化二、新建仓库三、工作区域和文件状态四、添加和提交文件五、回退到之前版本六、查看文件差异七、从版本库中删除文件八、.gitignore忽略文件九、github远程仓库--SSH配置和克隆仓库十、关联本地仓库与远程仓库十一、分支十二、解决合并冲突回退和rebase…

Go mmap 文件内存映射

Go mmap 文件内存映射 mmap是个很好用的内存映射工具,它可以将文件映射到内存中,可以方便地操作文件。使用mmap的优点是: 内存映射可以使得读写文件的性能更高,因为操作的是内存而不是磁盘。可以方便地操作文件,不需…

语音录音转文字的方法使用过吗

大家好!今天我要给你们介绍一个实用的功能,那就是录音转文字啦!它可以把录音中的声音内容快速且准确地转换成文字格式,让我们在工作和学习中变得更加高效和便利。我们在会议记录、采访访谈、语音笔记等领域,可以很大地…

自动化测试之稳定性测试的设计

目录 前言 压力Stress 随机Randomness 并发Concurrency 交互Interaction 时间Time 总结: 前言 稳定性测试是自动化测试领域最为核心的内容之一。稳定性测试设计应该考虑哪些方面?如何在有限的样本上最大化测试产出?笔者结合自动化的一…

Vivado 下 呼吸灯实验

目录 Vivado 下 呼吸灯实验 1、实验简介 2、实验环境 3、实验任务 4、硬件设计 5、程序设计 5.1、呼吸灯代码如下: 5.2、添加约束文件 .xdc 5.3、下载验证 Vivado 下 呼吸灯实验 呼吸灯最早由苹果公司发明并应用于笔记本睡眠提示上,其一经展出&…

2023年6月GESP能力等级认证C++二级真题

2023-06 GESP二级真题 题数:27 分数:100 测试时长:90min 一、单选题(每题 2 分,共 30 分) 1. 高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的可执…

电商数仓(用户行为采集平台)数据仓库概念、用户行为日志、业务数据、模拟数据、用户行为数据采集模块、日志采集Flume

1、数据仓库概念 数据仓库( Data Warehouse ),是为企业制定决策,提供数据支持的。可以帮助企业,改进业务流程、提高产品质量等。 数据仓库的输入数据通常包括:业务数据、用户行为数据和爬虫数据等。 业务数…

Linux信号概念、认识、处理动作 ( 2 ) -【Linux通信架构系列 】

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 期待你的关注哦!!! 现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the…

适合嵌入式开发的GUI(嵌入式学习)

嵌入式开发的GUI如何选择? 常见的嵌入式GUI开发方法轻量级GUI库优缺点 基于Web技术优缺点 Qt框架优缺点 原生开发优缺点 嵌入式系统的限制 常见的嵌入式GUI开发方法 嵌入式开发中的GUI(图形用户界面)是指在嵌入式系统中实现图形化的用户界面…

Unity核心7——2D动画

一、序列帧动画 (一)什么是序列帧动画 ​ 我们最常见的序列帧动画就是我们看的日本动画片,以固定时间间隔按序列切换图片,就是序列帧动画的本质 ​ 当固定时间间隔足够短时,我们肉眼就会认为图片是连续动态的&#…

Pandas数据处理与分析教程:从基础到实战

文章目录 前言什么是Pandas?Pandas的安装和导入数据结构Series(案例1:创建Series)DataFrame(案例2:创建DataFrame) 数据读取和写入从CSV文件中读取数据(案例3:读取CSV文件…

一起学SF框架系列6.2-模块core-Environment

Environment是集成在容器中的抽象接口,它对应用程序环境的两个关键方面进行建模:配置文件(profiles)和属性(properties)。 配置文件(profiles) 配置文件为核心容器中提供了一种机制…