操作系统笔记(进程)

注: 下面图片资源来源于     王道计算机考研 操作系统

1.进程概念

  • 进程(process):是动态的,是程序的一次执行过程(同一程序多次执行,会产生多个进程)
  • 程序:是静态的,放在磁盘里面的可执行文件,即一系列的指令集合

当进程被创建时,操作系统会给进程分配一个唯一的、不重复的id(PID)

2.进程控制块(PCB)

操作系统中的进程需要记录很多信息,比如pid、uid、给进程分配了哪些空间资源,正在使用哪些I/O设备、CPU使用时间和情况、磁盘使用情况、网络流量使用情况等。这些信息都被保存在一个数据结构(PCB),即进程控制块中。

即操系统需要对各个并发运行的进程进行管理,管理时所需要的信息都被存到PCB中。

注意:PCB是进程存在的唯一标志,当一个进程结束时操作系统会回收它的PCB

PCB包含了许多内容:

  • 进程状态
  • 程序计数器
  • CPU寄存器
  • CPU调度信息
  • 内存管理信息
  • 记账信息
  • I/O状态信息
  • 等等等

 3进程的运行

注意:进程是动态的,而进程实体(进程运行时,某一时刻的照片)时静态的。进程实体由PCB、程序段、数据段组成。开始执行前,需要把PC(指令寄存器)的值指向相应内存。

4.进程的状态

进程可以分为以下五种状态:

  • 新的(new):也叫创建态,进程正在创建
  • 运行(running):也叫运行态,指令正在CPU上执行
  • 等待(wating):也叫阻塞态,进程等待某个事件的发生(有资源没有准备好,直接放CPU上还不能运行)
  • 就绪(ready):进程等待分配CPU(其他资源都准备好了,到CPU上就能运行)
  • 终止(terminated):进程已经完成执行

runing->wating:

  1. 此时进程在CPU上请求其他资源(比如I/O设备),但是资源被占用。CPU不会让此进程继续在CPU上面等待,因此直接把它踢出CPU,将其PCB状态修改为wating。
  2. 进程等待某个事件的发生。比如自己代码种有if(a==2) ....。而此时a=1所以此进程也会被修改成wating

wating->ready:

  1. 申请的资源被分配
  2. 等待的事件已经发生(如a==2)

ready->running:

  1. 通过调度完成

running->ready:

  1. 中断(如分时操作系统,这一小段时间运行完了,正好等这下一小段时间

5.进程的组织

5.1链式组织

5.2索引组织

6.进程控制

6.1进程的CPU切换

由上图可以总结出:切换进程时,并不是切换的越快越好。越快的话,大量时间都消耗在寄存器内容的保存和恢复上;越慢的话,若进程不能继续在CPU执行,会浪费CPU时间。

6.2进程控制相关原语

原语:不可被再分割的指令(如关中断、开中断等)

6.2.1进程创建(new->ready)

6.2.2进程的终止

6.2.3进程的阻塞和唤醒

6.2.4进程的切换

7.进程通信

进程是分配系统资源的单位(包括内存地址),因此各内存拥有的内存地址空间相互独立

为了保证安全,一个进程不能直接访问另一个进程的地址空间

7.1共享存储

为了避免两个进程在共享存储区写入有重复,应该满足各个进程对共享存储区的访问是互斥的。

共享:1基于数据结构的共享   2基于存储区的共享

7.2消息传递

7.2.1直接通信方式

先在进程p种给消息赋值:msg=....;

接着将msg传送到Q的PCB的消息队列

7.2.2间接通信方式

进程P首先在系统内核申请一个信箱,将msg发送到信箱,接着Q再接受A信箱的内容

7.3管道通信

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/735920.shtml

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

相关文章

synchronized 锁的升级

锁的状态 synchronized 在jdk1.6之前是重量级锁,每次都要去和操作系统打交道,而操作系统层面的操作是比较耗性能的,需要将用户态转换为内核态。所以在jdk1.6后就有了锁的升级过程,总共有四种状态:无锁、偏向锁、轻量级…

基于电鳗觅食优化算法(Electric eel foraging optimization,EEFO)的无人机三维路径规划(提供MATLAB代码)

一、无人机路径规划模型介绍 无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径,使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一,它可以通过算法和模型来确定无人机的航迹,以避开障碍物、优化飞行…

指针【理论知识速成】(5)

一.回调函数: 1.什么事回调函数:通过函数指针调用函数 2.应用例子: https://blog.csdn.net/hot_water_oh/article/details/136572650?spm1001.2014.3001.5501 (此链接为提到转义表所在博客的链接) 依然以转义表为例…

drone ci 是什么

Drone CI是一个开源的持续集成和持续部署(CI/CD)系统,它使用Docker容器技术自动化软件的构建、测试和部署过程。Drone的设计哲学是简单和易用,通过使用Docker容器,它可以很容易地创建隔离的环境来运行测试和部署任务&a…

STM32使用定时器驱动电机

STM32使用定时器驱动电机 1、对定时器进行初始化配置1.1、include "encoder.c"文件 主函数 1、对定时器进行初始化配置 1.1、include "encoder.c"文件 #include "encoder.h"void TIM4_Encoder_Init(u16 arr,u16 psc) { GPIO_InitTypeDef GPIO…

详细讲解Xilinx DDR3 的MIG IP生成步骤及参数含义

前几篇文章讲解了SDRAM到DDR3各自的变化,本文讲解如何使用DDR3,在Altera的Cyclone IV开发板上一般会使用SDRAM作为存储数据的芯片,而Xilinx的S6和7000系列一般使用DDR3作为存储数据的芯片。 从SDRAM芯片内部结构分析其原理,从内部…

策略模式(Strategy mode)

一、策略模式概述 策略模式是一种行为设计模式,它定义了一系列的算法,并将每一个算法封装起来,使它们可以互相替换。策略模式使得算法可以独立于使用它的客户端变化。在游戏开发中,这意味着我们可以根据不同的游戏状态、角色类型…

从空白镜像创建Docker hello world

文章目录 写在前面基础知识方法一:使用echo工具方法二,使用c语言程序方法三,使用汇编语言小结 写在前面 尝试搞了下docker,网上的教程大多是让下载一个ubuntu这种完整镜像,寥寥几篇从空白镜像开始创建的,也…

HSM 网络安全 信息安全

文章目录 HSMHSM信息安全功能汽车电子网络安全中HSM 的应用场景选择适合汽车电子网络安全的 HSM符合汽车安全标准和法规要求的HSMHSM 在汽车电子网络安全中的可靠性和安全性评估汽车电子网络的安全性汽车 HSM(Hardware Security Module)模块开发汽车 HSM(Hardware Security …

文件系统事件监听

文件系统事件和网络IO事件一样,也可以通过epoll或者IOCP 事件管理器统一调度,当所监控的文件或文件夹发生了增删改的事件时,就会触发事件回调,进行事件处理。很常见的应用,如配置文件立即生效功能,就可以通…

SpringBoot自定义banner,自定义logo

SpringBoot自定义banner,自定义logo 在线网站 http://www.network-science.de/ascii/?spma2c6h.12873639.article-detail.9.7acc2c9aSTnQdW https://www.bootschool.net/ascii?spma2c6h.12873639.article-detail.8.7acc2c9aSTnQdW https://patorjk.com/softwa…

官方安装配置要求服务器最低2核4G

官方安装配置要求服务器至少2核、4G。 如果服务器低于这个要求,就没有必要安装,因为用户体验超级差。 对于服务器CPU来说,建议2到4核就完全足够了,太多就浪费了,但是内存越大越好,最好是4G以上。 如果服务器…

创建Django项目,实现视图,路由

初识Django 1、创建Django项目 Django项目的创建的路径不要有中文和空格;【计算机名称不要是中文】 1、在cmd中命令进行创建Django项目打开存放项目的位置创建Django项目:django-admin startproject 项目名称(注意:项目名称不要是中文)启动…

贝叶斯优化的门控循环神经网络BO-GRU(时序预测)的Matlab实现

贝叶斯优化的门控循环神经网络(BO-GRU)是一种结合了贝叶斯优化(Bayesian Optimization, BO)和门控循环单元(Gated Recurrent Unit, GRU)的模型,旨在进行时序预测。这种模型特别适用于时间序列数…

计算机网络概述(接入网和物理媒体)

一、接入网和物理媒体 将终端系统连接到边缘路由器的途径: 住宅接入网、机构接入网络、移动接入网络。 1.接入网:家庭网络 (1)Dial-up(拨号) Modem 将上网数据调制加兹安音频信号上在电话线是哪个传输,在…

VBA(学习笔记)

1. 数据类型 变量定义:Dim 变量名 As 数据类型 变量赋值:变量名 值 1.1 数值型 1.1.1 整数 (1) Byte:1字节(0~255) (2) Integer:2字节(-32768~32767) (3) Long:4…

【网络应用层协议】【MQTT】详解消息队列遥测传输协议MQTT(超详细)

目录 1. MQTT 协议简介 2. MQTT 的特点 3. MQTT 协议原理 4. MQTT协议中的订阅、主题、会话 1. MQTT 协议简介 MQTT( Message Queuing Telemetry Transport,消息队列遥测传输协议 )是一种消息列队传输协议,采用订阅、发布机制&…

arcgis栅格数据处理3——定义投影(同样适用于其他类型文件)

进行数据连接时可能出现未设置投影无法链接的情况,需要先定义投影 点击最右侧“目录”,弹出带有系统工具的面板,点击“data management tools”点击“投影”,“定义投影”

Redis的缓存穿透?缓存击穿?缓存雪崩?

缓存穿透 什么是缓存穿透? 假如我们有一个学生表一共有10条数据,对应的id为1-10。我们有一个请求是通过id去查询学生的信息。正常的流程是请求先到redis里面去找,如果命中就将查询到的结果反回,如果没有就去mysql数据库中找&…

chatgpt与人类有何不同?

ChatGPT和人类之间存在多个显著的差异。 首先,ChatGPT是一种基于人工智能技术的计算机程序,通过机器学习和自然语言处理等技术,从大量的数据中获取知识并生成语言输出。它主要依赖于算法和数据进行工作,能够迅速处理和检索信息&a…