操作系统-进程和线程-进程和线程

news2024/12/24 21:10:10

目录

一、进程的概念、组成、特征

 二、进程的状态与转换、组织

2.1进程状态

2.2进程转换关系

 2.3进程的组织

链接方式

 索引方式

 三、进程控制

3.1进程的创建

3.2进程的终止

 3.3进程的阻塞和唤醒

3.4进程的切换

​编辑 四、进程通信

4.1共享存储

4.2消息传递 

直接通信方式

 间接通信方式

 4.3管道通信

 五、线程概念

六、线程的实现方式和多线程模型

6.1实现方式

 6.2多线程模型

一对一

 多对一

多对多

 七、线程的状态与转换、组织与控制


一、进程的概念、组成、特征

程序:静态的,就是存放在磁盘里的可执行文件,一系列的指令集合

进程:动态的,每次应用程序运行就是一个进程,运行2个qq就有2个进程

每个进程分配一个唯一的,不重复的身份证---“PID”进程ID(梯曾+1)

进程的组成(PCB 进程控制块)记录的进程ID,分配了哪些资源,进程的运行情况

 

 特征

 二、进程的状态与转换、组织

2.1进程状态

运行态:进程正在处理机上运行。在单处理机系统,每一时刻只有一个进程处于运行态

就绪态:进程获得了除处理机外的一切资源,一旦得到处理机,便可立即运行,就绪态可能有多个,通常将它们排成一个队列,称为就绪队列

阻塞态:又称等待态。进程正在等待某一事件而暂停运行,如处理机空闲也不可以运行,多个排成一个队列,称为阻塞队列

创建态:进程正在被创建,尚未转到就绪态。

结束态:进程正从系统消失,可能进程正常结束或其他原因退出运行

2.2进程转换关系

 2.3进程的组织

链接方式

 索引方式

 三、进程控制

主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程,撤销已有进程、实现进程状态转换等功能

原语:执行具有原子性,即执行过程只能一气呵成,期间不允许被中断

可以用“关中断指令”和“开中断指令”两个特权指令实现原子性

3.1进程的创建

3.2进程的终止

 3.3进程的阻塞和唤醒

3.4进程的切换

 四、进程通信

指两个进程之间产生数据交互

4.1共享存储

4.2消息传递 

进程间的数据交换以格式化的消息(Message)为单位。进程通过操作系统提供的“发送消息/接收消息”两个原语进行数据交换

直接通信方式

 间接通信方式

 4.3管道通信

 五、线程概念

 引入进程的目的是更好使多道程序并发执行,提高资源利用率和系统吞吐量;而引入线程的目的则是减小程序在并发执行时所付出的时空开销,提供操作系统并发度

一个进程分为多个线程,程序执行的最小单位

线程ID,线程控制块(TCB) 

六、线程的实现方式和多线程模型

6.1实现方式

用户级线程

 内核级线程

 6.2多线程模型

一对一

 多对一

多对多

 七、线程的状态与转换、组织与控制

状态与转换

 组织与控制

 

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

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

相关文章

C++算法刷题--2023/6/2

源代码&#xff08;C&#xff09;&#xff1a; #include<iostream> using namespace std; struct Road{char way[100]{}; }; int main(){int t;cin>>t;struct Road *p new Road[t];int right0,left0;for(int i0;i<t;i){cin>>p[i].way;} for(int i0;i&…

力扣刷题【第一期】

文章目录 1.爬楼梯2.求两数的和&#xff08;283&#xff09;3.移动零&#xff08;283&#xff09;3.1 题目描述3.2 算法描述3.3具体实现 4.合并有序连表&#xff08;21&#xff09;4.1 题目描述4.2 算法思想4.3 代码实现 5.删除连表中重复的值&#xff08;83&#xff09;5.1 题…

CodeEditor之sublimetext:sublimetext的简介、安装、使用方法之详细攻略

CodeEditor之sublimetext&#xff1a;sublimetext的简介、安装、使用方法之详细攻略 目录 sublimetext的简介 sublimetext的安装 1、安装教程如下所示 sublimetext的使用方法 sublimetext的简介 Sublime Text 是一个文本编辑器&#xff08;收费软件&#xff0c;可以无限期试…

javascript基础十五:说说new操作符具体都干了什么?

一、是什么 在JavaScript中&#xff0c;new操作符用于创建一个给定构造函数的实例对象 举个粟子 function Parent (name,age){this.name name;this.age age; } undefined Parent.prototype.sayName function(){console.log(this.name) } ƒ (){console.log(this.name) } c…

佛朗斯冲击港交所IPO:叉车租赁的未来是数字化?

佛朗斯“三战”IPO。 图源&#xff1a;佛朗斯 近日&#xff0c;广州佛朗斯股份有限公司&#xff08;下文简称为“佛朗斯”&#xff09;正式向港交所递交招股书&#xff0c;拟于港交所主板挂牌上市。 值得注意的是&#xff0c;这并不是佛朗斯首次冲击IPO。2019年6月和2020年7月…

操作系统-计算机系统概述-特性发展分类分层结构

目录 一、定义 1.1特征 二、操作系统的分类和发展 2.1手工操作阶段 2.2批处理阶段 2.2.1单道批处理系统 2.2.2多道批处理系统 2.3分时操作系统 2.4实时操作系统 2.5 网络操作系统 2.6分布式操作系统 2.7 个人计算机操作系统 三、操作系统的运行与机制 内核态和用…

【Python】函数 ⑤ ( 函数说明文档 | 函数说明文档内容建议 | 代码示例 )

文章目录 一、函数说明文档1、函数说明文档简介2、函数说明文档内容建议2、代码示例 - 函数说明文档 一、函数说明文档 1、函数说明文档简介 函数说明文档 就是 通过 注释 对 函数的作用进行解释说明 ; 函数说明文档 用法 : 在 函数定义 后 , 函数体的第一行位置 , 输入六个双…

Linux:Linux基础网络设置

ifconfig ifconfig #查看网卡信息 inet---网络接口的ip地址 netmask---子网掩码 broadcast---广播地址 ether----物理地址&#xff08;mac地址&#xff09; hostname hostname #查看主机名 hostnamectl set-hostname 自定义主机名 route route # 查看网卡网关 destination-…

华为OD机试真题B卷 Java 实现【检查是否存在满足条件的数字组合】,附详细解题思路

一、题目描述 给定一个正整数数组&#xff0c;检查数组中是否存在满足规则的数字组合 规则&#xff1a;A B 2C 二、输入描述 第一行输出数组的元素个数。 接下来一行输出所有数组元素&#xff0c;用空格隔开。 三、输出描述 如果存在满足要求的数&#xff0c;在同一行…

Ubuntu使用ssh连接两个主机

前提&#xff1a;两者连接同一个WiFi&#xff08;局域网&#xff09; ssh安装&#xff1a; sudo apt-get install openssh-client sudo apt-get install openssh-server 首先在两个主机分别终端输入&#xff1a;ifconfig 查询两者的ip 用户名是前面的那个&#xff1a; …

【算法系列 | 1】深入解析排序算法之冒泡排序

序言 你只管努力&#xff0c;其他交给时间&#xff0c;时间会证明一切。 文章标记颜色说明&#xff1a; 黄色&#xff1a;重要标题红色&#xff1a;用来标记结论绿色&#xff1a;用来标记一级论点蓝色&#xff1a;用来标记二级论点 决定开一个算法专栏&#xff0c;希望能帮助大…

大湾区C++模拟题

大湾区信息学创新大赛模拟题 一、单项选择题&#xff08;15题共30分&#xff09; 1.计算机的运算速度取决于给定的时间内&#xff0c;它的处理器所能处理的数据量。处理器一次能处理的数据量叫字长。已知64位奔腾处理器一次能处理64个信息&#xff0c;相当于&#xff08; A …

厨电「前浪」压「后浪」

作者 | 辰纹 来源 | 洞见新研社 俗话说&#xff0c;姜是老的辣。说的是老年人有经验&#xff0c;办事稳重老练。 俗话也说&#xff0c;长江后浪推前浪。说的是经过历练的新人新事胜过旧人旧事。 这两句话看似矛盾&#xff0c;实则充满哲理&#xff0c;老而弥坚的老手与初生牛…

网关如何让非Matter设备快速加Matter网络?

作为连接智能家居设备的重要桥梁&#xff0c;网关是所有命令请求的入口&#xff0c;并完美充当起“翻译官”的角色。它能够精准“翻译”拥有不同通信协议、数据传输格式及网络地址里所包含的信息&#xff0c;将数据重新打包&#xff0c;以适应目的系统的需求。 虽然网关对于智…

matlab学习笔记(十)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 matlab学习笔记&#xff08;十&#xff09; 一、实验目的二、实验原理和实验内容三、案例运行例1&#xff1a;电磁波传输问题的动态仿真&#xff0c;编写 MATLAB 程序实现线极…

Maven高级——分模块设计与开发

Maven的定义: 一个用来构建和管理java项目的工具。 分模块设计 一个大型项目通常需要有很多功能实现&#xff0c;这些功能分成多个模块&#xff0c;卸载一个项目里面最后只会导致这个项目越来越大。不便于维护&#xff0c;以及组件难以复用。 在项目设计的时候就可以将不同的…

九大亮点+六大好处,瑞云科技虚拟仿真实训平台引领教育信息化新潮流

随着新技术的快速发展和数字化转型的加速推进&#xff0c;高等教育面临着培养创新型、复合型、适应型人才的新要求。 虚拟仿真实训教学作为一种新型的教学模式&#xff0c;能够有效解决实训教学中的高投入、高损耗、高风险及难实施、难观摩、难再现的“三高三难”问题&#xf…

如何运行Python程序?

Python 是一种解释型的脚本编程语言&#xff0c;这样的编程语言一般支持两种代码运行方式&#xff1a; 1) 交互式编程 在命令行窗口中直接输入代码&#xff0c;按下回车键就可以运行代码&#xff0c;并立即看到输出结果&#xff1b;执行完一行代码&#xff0c;你还可以继续输…

手搓一个C++11的线程池(含测试)

实现 首先要有线程池这个结构体&#xff1a; 互斥锁条件变量消息队列关闭标志位 struct Pool {std::mutex mtx;std::condition_variable cond;std::queue<std::function<void()>> tasks;bool isClosed;//用来退出无限循环};【首先是线程池的对象】其实就是维护一…

【数据结构与算法】力扣:二叉树的前、中、后序遍历

递归法 前序遍历 给你二叉树的根节点 root &#xff0c;返回它节点值的前序 遍历。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,2,3] 示例 2&#xff1a; 输入&#xff1a;root [] 输出&#xff1a;[] 示例 3&#xff1a; 输入&#xff1a;…