linux操作系统的进程状态

这个博客只是为了自己复习用的!!!

冯诺依曼体系结构
在这里插入图片描述
计算机是由一个一个硬件组成的
输入设备:键盘,鼠标,扫描仪,写板等等
中央处理器(CPU):含有运算器和控制器等
输出单元:显示器,播放器等等

关于冯诺依曼,必须强调几点:
这里的存储器指的是内存
不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
一句话,所有设备都只能直接和内存打交道。

对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上,请解释,从你登录上qq开始和某位朋友聊天开始,数据的流动过程。从你打开窗口,开始给他发消息,到他的到消息之后的数据流动过程。如果是在qq上发送文件呢?

键盘(输入设备)-》存储器-》cpu(加密,解密)-》输出设备 -》计算机网络 -》另一台的输入设备-》内存-》cpu(解密)->输出设备(显示屏)

那如果是发送文件呢?
在界面选择文件(这复杂)-》内存->cpu ->网络发送

操作系统(Operator System)os

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:
内核(进程管理,内存管理,文件管理,驱动管理)
其他程序(例如函数库,shell程序等等)
设计OS的目的
与硬件交互,管理所有的软硬件资源
为用户程序(应用程序)提供一个良好的执行环境

在这里插入图片描述
我们讲一个故事来理解这个。我们假设上面这是一个银行,行长则表示操作系统。我们看到的银行操作是我们作为一个用户,我们去银行办理业务,我们作为开发操作(存款,取款业务)。我们有一个操作选项,选择我们想要的操作。这里的系统调用接口可以表示为银行有很多功能。但是他们肯定不会把所有的地方都开放,就只保留了柜台给我们用户操作,其他的仓库啊我们看都看不到我们要去取钱只能通过柜台去取钱,但是这个为什么会有一个用户操作接口呢?我们可以这样想,随着时间的变化,银行升级了,有些老婆婆和大爷无法同步操作,这时候有一个大堂经理,大堂经理就会负责这些人,说你把信息填好,我帮你去办理业务。这里就相当于是有人帮我们做了一些事,让我们去完成事情更简单了。常见的呢,bash窗口,窗户界面,C语言的库,我们只需要调用就好了,他会帮我们去做一些事,但是我们要自己做好准备,老婆婆和爷爷要去银行才能找大堂经理帮忙,那我们想使用c语言的库方便我们调用也要包含头文件。 以上就是人管理人,我们知道人也是可以管理机器的啊。这里代表的就是软件也可以管理硬件,首先我们要明确一个事实 ,就是说我们的键盘和电脑是分开买的,电脑里面有操作系统,底层硬件相当于是键盘。那怎么让他们连接呢?就是驱动呀,操作系统为了管理这些硬件,会预留规范,厂商只要实现规范就行了。然后操作系统就可以通过这些规范去调用底层硬件。

在操作系统中,驱动程序(通常简称为“驱动”)扮演着至关重要的角色,它们作为硬件设备和操作系统之间的桥梁。驱动程序是特定于硬件的软件代码,使操作系统和其他软件应用能够与硬件设备交互。不同的硬件设备,如打印机、显卡、网络适配器、输入设备等,都需要各自的驱动程序,以确保这些设备能够以正确和高效的方式工作。
驱动程序的主要角色和功能:
硬件设备通信:驱动程序提供了必要的指令集,使操作系统能够识别和控制硬件设备。没有正确的驱动程序,操作系统可能无法识别或不正确地使用某个硬件设备。
数据转换:驱动程序将操作系统的一般指令转换为硬件设备能够理解的专用指令。同样地,它也能将硬件设备的信号转换为操作系统能够理解的数据格式。
提供抽象层:驱动程序为硬件设备提供了一个标准化的抽象接口,使上层的软件(如操作系统内核、应用程序)不需要关心底层的硬件细节。这样,软件开发者就可以编写与硬件无关的代码,增加了软件的通用性和可移植性。
错误处理和设备管理:驱动程序负责监控硬件的状态和性能,处理硬件错误,以及执行必要的故障排除和维护任务。它们还可以提供接口来配置设备设置或更新固件。
性能优化:针对特定硬件优化的驱动程序可以显著提高该硬件的性能。这对于那些对性能要求极高的应用程序(如视频游戏、图形设计软件)尤其重要。

计算机管理硬件的步骤?
1 描述起来,用struct结构体
2 组织起来,用链表和其他高效的数据结构

简单理解:
驱动管理硬件的话为硬件设备提供了一个标准化的抽象接口,调用接口就能实现某些功能。但这里我们需要定义各种属性,比如说键盘的按键,按到了某个按键的话,某个电流就跳动一下。操作系统呢?就是我现在按了键盘的A键,那操作系统就要帮我去找A键对应的功能。

操作系统 -》要进行内存管理,驱动管理哦,进程管理,文件管理!

先将进程!
什么是pcb呢?
在这里插入图片描述
这里我们知道我们的磁盘存了两个程序,我们要运行这个程序需要将我们的数据和代码先放到内存,但是他不是直接把这个给cpu运行。
这里用了一个PCB块,是一个链表。链表里面有很多属性,其中一个属性指向的是下一个pcb块,其中一个属性是指向代码和数据。、这里是PCB的属性(task_struct)

在这里插入图片描述
数据结构+程序 (代码和数据)= pcb(个人理解)

进程有哪些 状态呢?

static const char * const task_state_array[] = {
"R (running)", /* 0 */
"S (sleeping)", /* 1 */
"D (disk sleep)", /* 2 */
"T (stopped)", /* 4 */
"t (tracing stop)", /* 8 */
"X (dead)", /* 16 */
"Z (zombie)", /* 32 */
};

这里介绍 运行状态 挂起状态 阻塞状态

运行状态怎么解释呢?
上图: CPU会有一个执行队列。凡是在执行队列的的线程状态都为运行状态

在这里插入图片描述

这里的每一个硬件也会有一个执行队列,并且cpu的执行速度是远远大于硬件的执行速度。当我们执行到一个进程的时候,若这个进程需要磁盘的读写,但是这个时候磁盘有任务在做。因为磁盘的处理速度是比cpu运行慢很多的,cpu不会为了这一个进程而等。理解上面的例子可以通过这样理解。大堂经理喊你写表,把信息写完之后他就帮你处理,这时候,他会喊下一个,当你写完的时候就可以去找大堂经理去办业务了。
这里也是,cpu会把这个进程放进磁盘操作的队列里,当磁盘能执行这个进程的时候,会自动向操作系统反馈。并将状态改为阻塞状态。当磁盘能处理的时候,会放到cpu执行队列的末尾。并将状态改为运行状态。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JavaScript】函数 ④ ( 函数返回值 | 函数返回值语法 return 关键字 | 函数默认返回值 undefined )

文章目录 一、JavaScript 函数返回值1、函数返回值引入2、函数返回值语法3、函数默认返回值4、函数默认返回值 一、JavaScript 函数返回值 1、函数返回值引入 JavaScript 函数 可以 实现某种特定的功能 , 执行完毕后 , 可以返回一个 " 返回值 " ; 当 函数 被调用执行…

结构体内存对齐和位段(重点)!!!

乐观学习,乐观生活,才能不断前进啊!!! 我的主页:optimistic_chen 我的专栏:c语言 点击主页:optimistic_chen和专栏:c语言, 创作不易,大佬们点赞鼓…

【一步一步学】RouterOS Mesh介绍,小白也能懂。

理论介绍 RouterOS Mesh是一种网络拓扑结构,它利用无线技术将多个路由器连接在一起,形成一个覆盖范围更广、信号更稳定的网络。这种结构可以帮助用户实现更好的网络覆盖和负载均衡,提高整体网络性能。 RouterOS Mesh的原理是通过建立多个路由…

C++bitset类型

bitset类型 我们介绍了将整型运算对象当作二进制位集合处理的一些内置运算符。 标准库还定义了bitset类,使得位运算的使用更为容易,并且能够处理超过最长整型类型大小的位集合。bitset类定义在头文件bitset中。 定义和初始化bitset bitset类是一个类模…

【C++庖丁解牛】高阶数据结构---红黑树详解(万字超详细全面介绍红黑树)

🍁你好,我是 RO-BERRY 📗 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 目录 前言1.红黑树的概念2.红黑…

前端学习<三>CSS进阶——0102-CSS布局样式

前言 css 进阶的主要内容如下。 1、css 非布局样式 html 元素的分类和特性 css 选择器 css 常见属性(非布局样式) 2、css 布局相关 css 布局属性和组合解析 常见布局方案 三栏布局案例 3、动画和效果 属于 css 中最出彩的内容。 多背景多投影特…

Cookie 和 Session

1. 回顾 Cookie是浏览器在本地持久化存储结构的一种机制. 1.1 Cookie的数据从哪里来? 服务器返回给浏览器的. 1.2 Cookie的数据是什么样的? Cookie的数据是键值对结构. 并且这里的键值对都是程序员自定义的. 1.3 Cookie的作用是什么? Cookie可以在浏览器这边存储一些…

Linux网络编程一(协议、TCP协议、UDP、socket编程、TCP服务器端及客户端)

文章目录 协议1、分层模型结构2、网络应用程序设计模式3、ARP协议4、IP协议5、UDP协议6、TCP协议 Socket编程1、网络套接字(socket)2、网络字节序3、IP地址转换4、一系列函数5、TCP通信流程分析 第二次更新,自己再重新梳理一遍… 协议 协议:指一组规则&…

16.Python多线程

如果想让我们的程序同时执行多个任务,就需要使用多线程技术了 。到目前为止,我们编写的程序都是单线程的,在运行时一次只能执行 一个任务。 1 线程相关的知识 1.1 进程 一个进程就是一个正在执行的程序,每一个进程都有自己独立…

C++ 基础复习

1.常量 #include<iostream> using namespace std; // 1.define 宏常量 #define N 50 int main(){//N 60; // define定义的数据为常量&#xff0c;一旦修改会报错 cout<<N<<endl;//2.const 修饰的常量 const int m 12; //m 24; //错误 const修饰的常量不能…

限速虚量就赔一万元?看我如何薅羊毛!2024公认最好的随身WiFi

作为一个大名鼎鼎的羊毛党&#xff0c;最热衷的莫过于网上各种可以薅羊毛的信息。这天我们的羊毛群里说有一个叫格行的随身WiFi品牌挺嚣张的&#xff0c;号称限速虚量就赔付一万元&#xff01;还发了带章的承诺函&#xff01;我心说随身WiFi限速虚量的臭名声早就烂大街了&#…

基本电路理论-电流和电压的参考方向

&#x1f308;个人主页&#xff1a;会编程的果子君 &#x1f4ab;个人格言:“成为自己未来的主人~” 电流及参考方向 电流&#xff1a;带电粒子有规则的定向移动 电流强度&#xff1a;单位时间内通过导体横截面的电荷量&#xff0c;即&#xff1a;idq/dt 单位&#xff1a…

【C++】lambda 表达式 / 包装器 / bind 绑定

目录 一. lambda 表达式1. lambda 表达式的语法1. lambda 表达式的使用2. lambda 表达式的捕捉列表 二. 包装器三. bind 绑定 一. lambda 表达式 Lambda 表达式是 C11 标准引入的一种新特性, 它提供了一种方便的方式来定义匿名函数. lambda 表达式实际上是一个匿名的仿函数; …

ZYNQ学习之Ubuntu下Linux文件系统、用户权限与磁盘管理

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ 一、Linux 文件系统 1.1 Linux 文件系统简介以及类型 操作系统的基本功能之一就是文件管…

SpringBoot快速入门笔记(1)

文章目录 一、环境准备1、maven2、新建项目版本问题 二、项目上手1、HelloController2、热部署3、控制器4、参数传递5、ParamsController 一、环境准备 1、maven 把下载的maven包给配置好 2、新建项目版本问题 新建项目发现没有Java8&#xff0c;新版本IDEA问题&#xff08;2…

JAVA基础02-Java语言基础以及编译准备工作

什么是JAVA语言 Java是一门面向对象的编程语言&#xff0c;不仅吸收了C语言的各种优点&#xff0c;还摒弃了C里难以理解的多继承、指针等概念&#xff0c;因此Java语言具有功能强大和简单易用的两个特征。 &#xff08;可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式…

HTTPS跟HTTP有区别吗?

HTTPS和HTTP的区别&#xff0c;白话一点说就是&#xff1a; 1. 安全程度&#xff1a; - HTTP&#xff1a;就像是你和朋友面对面聊天&#xff0c;说的话大家都能听见&#xff08;信息明文传输&#xff0c;容易被偷听&#xff09;。 - HTTPS&#xff1a;就像是你们俩戴着加密耳机…

idea 报错 Could not list the contents of folder “ftps

idea 报错 Could not list the contents of folder "ftps 解决方案 这里看到了网上的解决方案&#xff0c;顺便再记录一下。打开 【高级】菜单 - 取消勾选 被动模式。然后点击测试连接&#xff0c;显示连接成功&#xff01; ftp中的主动模式和被动模式 主动模式&…

嵌入式MCU和SOC之间的区别是什么?

今日话题&#xff0c;嵌入式MCU和SOC之间的区别是什么&#xff1f;表面上看&#xff0c;MCU代表嵌入式微控制器&#xff0c;而SOC代表片上系统&#xff0c;似乎只是嵌入式系统的不同称谓。然而&#xff0c;在实际的研发和产品设计中&#xff0c;你会发现它们在软硬件层面存在显…