操作系统笔记(进程)

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

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,一经查实,立即删除!

相关文章

基于电鳗觅食优化算法(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…

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

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

从空白镜像创建Docker hello world

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

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以上。 如果服务器…

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

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

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…

OpenCV(六)——对于图片的算术运行、图片的叠加操作、多通道图像拆分为多个单通道图像

在OpenCV中,可以对于图片进行算法运算。我们知道,图像的本质其实就是矩阵,因此对于图像的算数运算本质上就是对于矩阵的算术运算。在OpenCV可以对图像进行算术运算的操作有加、减、乘、除等操作。 图像的加、减、乘、除操作 两张图像可以进…

微信小程序开发系列(二十六)·小程序运行机制(启动、前后台状态、挂起、销毁)和小程序更新机制

目录 1. 小程序运行机制 1.1 启动 1.2 前台和后台状态 1.3 挂起 1.4 销毁 2. 小程序更新机制 1. 小程序运行机制 1.1 启动 小程序启动可以分为两种情况,一种是冷启动,一种是热启动。 冷启动:如果用户首次打开,或小…

数据挖掘案例分析、经典案例、技术实现方案

1.数据挖掘案例分析 数据挖掘:是从大量数据中发现有用信息和模式的过程。 数据挖掘案例分析:是指通过对已有数据进行挖掘和分析,发现其中的模式和规律,并根据这些发现提出相应的解决方案和决策建议的过程。 以下是一些常见的数据…

03-快速上手RabbitMQ的5种消息模型

RabbitMQ RabbitMQ是基于Erlang语言开发的开源消息通信中间件,有几个常见概念 connections(连接): 将来publisher(消息的发送者)或者consumer(消息的接收者)都需要先与MQ建立连接 channel(通道): 建立连接后需要创建通道,生产者和消费者就是基于通道完成消息的发送和接收 ex…

_note_06

1.说一说函数的按地址传递和按值传递,他们的区别是什么? 函数的参数传递方式可以分为按地址传递(也称为按引用传递)和按值传递两种方式。按值传递是指将实际参数的值复制给形式参数,即在函数调用时,实际参数…

探索云原生数据库技术:构建高效可靠的云原生应用

数据库是应用开发中非常重要的组成部分,可以进行数据的存储和管理。随着企业业务向数字化、在线化和智能化的演进过程中,面对指数级递增的海量存储需求和挑战以及业务带来的更多的热点事件、突发流量的挑战,传统的数据库已经很难满足和响应快…

2023年终总结——跌跌撞撞不断修正

目录 一、回顾1.一月,鼓足信心的开始2.二月,焦躁不安3.三月,路还是要一步一步的走4.四月,平平淡淡的前行5.五月,轰轰烈烈的前行6.六月,看事情更底层透彻了7.七月,设计模式升华月8.八月&#xff…