操作系统之认识进程

news2024/9/22 7:36:08

目录

什么是进程

进程的状态和转换

进程控制

进程通信


什么是进程

在电脑的任务管理器中,能看到电脑当前运行着的所有进程

那到底什么是进程呢?和我们所看所写的那些程序有什么区别?

操作系统是如何区分这些进程的呢?

那就需要首先认识进程的组成

PCB

再加上程序段和数据段,共同组成进程实体

进程的执行过程

进程的特征

总结:

注意,在引入线程之后,进程就不再是接受调度的基本单位了。

进程的状态和转换

进程有5种状态

创建态、就绪态

运行态

如果在运行过程中,需要等待某种资源,那么就会进入阻塞态

当CPU空闲时,又会选择另一个就绪态的进程上CPU执行。

当阻塞态的进程所需要的资源条件满足时,就会进入就绪态,等待被执行

终止态

当回收完成后,这个进程就彻底消失了。

进程状态的转换

总结

进程的组织(了解即可)

链接方式

索引方式

进程控制

用原语实现进程控制

如何保证原语的原子性

进程控制相关的原语

进程的创建

进程的终止

进程的阻塞和唤醒

进程的切换

注意,进程切换之前需要保护好运行环境,将上一个进程存储在CPU寄存器中的一些中间运算结果等存入内存中,防止被下一个进程的数据覆盖。

总结:

进程通信

进程通信,IPC,Inter-Process Communication,就是指两个进程之间产生数据交互。

比如:

图中微博和微信这两个进程就产生了数据的交互。

要想实现进程通信,必须要有操作系统的介入,各进程自己无法实现直接通信。

如果一个进程可以直接访问另一个进程的地址空间,那随便一个病毒程序就能攻击任何其他的进程,这样显然是极不安全的。

实现进程通信有三种方式。

共享存储

注意,共享存储区会被映射到各通信进程自己的地址空间。且数据的形式和存放位置都由通信进程自己控制,具有很高的灵活性。

消息传递

直接通信方式

间接通信方式

管道通信

注意,管道通信虽然和共享存储类似,但是,共享存储的那片地址是可以供进程随意操作的,不管存在哪个地址,或者从哪个地址取,都是可行的。但是管道是一个队列,只能通过FIFO的方式来读取。而且共享存储的互斥访问需要进程自己实现,而管道通信的互斥访问是由操作系统来管理实现的。

总结:

补充注意:

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

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

相关文章

银河麒麟(桌面版和服务器版)之远程桌面安装

一、前言 在信创方案中经常介绍支持麒麟系统,实际上麒麟分为银河麒麟和中标麒麟,银河麒麟又分为服务器版和桌面版,服务器器版一般用于应用系统部署,桌面版一般用于日常办公。银河麒麟操作系统作为国产操作系统,是目前国…

java定时任务schedule

在 Java中,可以使用定时任务(schedule)来实现定时任务。这种定时任务能够根据用户的需求进行时间的控制,让用户可以自由设定每一个任务的开始时间和结束时间。 下面来介绍如何使用 java中的定时任务来实现定时任务。 首先需要在配…

# 将pg日志导入pg数据库的几种方法

将pg日志导入pg数据库的几种方法 文章目录 将pg日志导入pg数据库的几种方法1 方法1:官方方法(fiel_fdw)1.1 创建file_fdw数据源(在此之前需要安装pg的file_fdw扩展)1.2 创建外部表并导入数据 2 方法2:用csv…

会议论文与期刊论文的写作差异

AI领域的会议论文和期刊论文在撰写方法上存在一定的差异,读者需要理解这些差异,才能做到有的放矢,提高论文的命中率。如果按照会议论文的风格来写期刊论文,或者按照期刊论文的风格来写会议论文,论文命中的概率将大大降…

服务(第十三篇)lvs(负载均衡器)+nginx(反向代理)+tomcat(后端服务器)+nfs共享

准备6台机器: 192.168.169.10 lvs负载均衡器 192.168.169.20、192.168.169.30 nginx反向代理 192.168.169.40(tomcat多实例)192.168.169.50(tomcat) 19.168.169.60(nfs共享) 实验没啥好说的…

新建项目提交到git指定仓库

新建的项目如何上传到git远程仓库: 1:首先进入需要上传的文件夹,鼠标右键点击Git Bash Here 2:输入git init,初始化git相关配置文件 git init3:输入git remote add origin 你的远程仓库地址,…

收废品小程序的推广策略与实践

随着互联网和移动设备的普及,各种小程序逐渐成为了人们生活中不可或缺的一部分。在这样的背景下,开发一个收废品小程序是一个具有巨大潜力的创意。本文将介绍如何开发一个收废品小程序,并分享一些推广策略和实践经验。 开发一个收废品小程序…

推荐好用的数据库软件sql studio

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言免费功能强大支持数据导入和导出和navicat功能相同 一、sql studio是什么?二、使用步骤1.下载软件2. window版本3.linux 版本配置方式3.如何使用sql…

论文浅尝 | 基于交互模态融合的多模态知识图谱补全

笔记整理:张溢驰,浙江大学硕士,研究方向为多模态知识图谱 链接:https://arxiv.org/abs/2303.10816 动机 多模态知识图谱补全需要将多种模态的信息(如图像和文本)融入到实体的结构表示中,以此来实…

OpenAI ChatGPT 能取代多少程序员的工作?导致失业吗?

阅读原文:https://bysocket.com/openai-chatgpt-vs-developer/ ChatGPT 能取代多少程序员的工作?导致我们程序员失业吗?这是一个很好的话题,我这里分享下: 一、ChatGPT 是什么?有什么作用 ChatGPT是一种…

操作系统课堂笔记

第一章概述 操作系统(Operating System, OS)是计算机系统中最重要的系统软件,它统一管理计算机系统的硬件资源与信息资源,控制与调度上层软件的执行并为其提供易于使用的接口。 1.1计算机系统 操作系统在计算机系统中的地位&…

Java学习-MySQL-索引

Java学习-MySQL-索引 索引分类 索引(Index)是帮助MySQL高效获取数据的数据结构。 1.主键索引(Primary Key),唯一标识,不可重复,并且只能有一个字段可以作为主键。 2.唯一索引(Uniq…

地热井监测控制系统解决方案

概述 地热井监测控制系统主要是对地热井采水和回灌进行流量、温度、水位(压力)等参数的实时监测,对地热站现场环境进行实时视频监控。地热井现场和取水井、回灌井安装监测装置,通过无线传输设备将数据实时传输至自然资源局已建中…

【Leetcode -141.环形链表 -2.两数相加】

Leetcode Leetcode -141.环形链表Leetcode -2.两数相加 Leetcode -141.环形链表 题目:给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给…

第二届易派客工业品展圆满落幕 3天超7万人次观展

4月15日,第二届易派客工业品展览会在苏州国际博览中心成功闭幕,展会期间共7.4万人次观展。展会以“绿色•智造•融通•赋能”为主题,为参展企业衔接供需、共享商机、共促发展提供平台,推动工业企业数字化转型、致力供应链优化升级…

AntdesignVue 局部全屏后Message、Select 、Modal、Date等组件不显示问题解决方案(最终版)

1、对this.$message.....这种的消息提示组件解决方案如下 在main.js中全局配置消息提示 //单独引用需修改的元素 import { message } from ant-design-vue message.config({maxCount: 1,getContainer:() > document.getElementById(showBigModal) || document.body //父组件…

责任链设计模式知多少

目录 目标 概述 实现 单向设计模式 双向设计模式 目标 熟悉责任链设计模式,了解责任链设计模式的使用场景、具体实现,单链责任链设计模式和双链责任链设计模式的区别。 概述 一、行为设计模式 行为设计模式是设计模式的一种类型。该类型的设计模…

three.js车辆可视化教程-完整0到1

概述 如有不明白的可以加QQ:2354528292;wx: aichitudousien 更多教学视频请访问:https://space.bilibili.com/236087412 详细教学请到上方视频链接访问,总共3个多小时的教学~ Three.js车展系统 搭建开发环境 使用的开发框架是vu…

计算机程序安装及使用须知_kaic

安装及使用须知 1 数据库建模程序的使用 本文件夹中的“PowerDesigner建模”目录下包含三个可运行文件TMS1.cdm,TMS.cdm,TMS.pdm分别为TMS系统的实体关系简图、实体关系图和数据库模型,使用PowerDesigner集成开发环境打开任意一个文件即可运…

第二节 ogre sdk 配置使用

上一节,我们介绍过了ogre源码的编译学习,在实际项目中,我们并不需要如此复杂的编译安装过程,可以直接使用官网提供的sdk库进行项目环境配置。下面简单介绍下配置过程。 一 OgreSDK下载 https://dl.cloudsmith.io/public/ogrecav…