当前位置: 首页 > news >正文

包装设计招聘四川整站优化关键词排名

包装设计招聘,四川整站优化关键词排名,体育课程网站建设,wordpress文章推送公众号💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Linux从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多操作系统知识   🔝🔝 Linux进程 1. 前言2. 操作系统…

💓博主CSDN主页:杭电码农-NEO💓

⏩专栏分类:Linux从入门到精通⏪

🚚代码仓库:NEO的学习日记🚚

🌹关注我🫵带你学更多操作系统知识
  🔝🔝


在这里插入图片描述

Linux进程

  • 1. 前言
  • 2. 操作系统中进程的运行状态
  • 3. 操作系统中进程的阻塞状态
  • 4. 操作系统中进程的挂起状态
  • 5. Linux下特定的进程状态
  • 6. 前台进程和后台进程的区别
  • 7. 休眠状态和磁盘休眠状态
  • 8. 总结以及拓展

1. 前言

很明显,进程状态的本质就是进程
PCB结构体中的一个变量,它可能
是用宏定义来实现的,也可能是其他方式

#define NEW 1
#define RUNNING 2
#define BLOCK 3
strcut PCB
{...其他信息int state;//进程状态
}
if(PCB->state==NEW)
{将进程放入运行队列}
else if(PCB->state==BLOCK)
{将进程放入阻塞队列}
......

本章重点:

本篇文章着重讲究操作系统中的
三种进程状态:运行状态,阻塞状态
挂起状态.并且讲解Linux操作系统
中具体的进程状态,其中R状态(运行状态)
和S状态(睡眠状态)最常见!

Linux中常见的六种状态:

在这里插入图片描述
在这里插入图片描述

还有一种状态就是z状态(僵尸状态)


2. 操作系统中进程的运行状态

现在我们使用的电脑,手机有四核的
有八核,十二核的,也就是有多个CPU
然而不管有多少个CPU,每一个CPU
都有一个对应的运行队列,CPU会去
此队列中寻找数据来做处理

在这里插入图片描述

只要一个进程在运行队列中,它就是运行状态

不管一个进程是否正在被处理,只要它在
运行队列中,那么它就是处于运行状态!


3. 操作系统中进程的阻塞状态

我先来描述一下进程会阻塞的情况:

当CPU处理一个PCB时,我们写的
代码中或多或少会去访问操作系统
里的某些资源,比如:磁盘,键盘,网卡

最简单的例子,当代码出现scanf
或者cin时,系统会等待用户输入,只要
不输入,要访问的资源就没有就绪
此时代码就无法运行!

在这里插入图片描述

此时进程就处于阻塞状态了吗?
对!但是不完全对!
我想给大家阐述的更细致一点

我们知道,系统中的硬件是通过
管理硬件数据来间接被操作系统
管理起来的,所以操作系统是很清楚
硬件现在是否具备访问条件,那么
操作系统是怎样知道的呢?
其实每一个设备的结构体中,都有
变量:PCB* wait_queue,也就是
等待队列,请看下图仔细分析:

在这里插入图片描述

将一个进程从运行队列移动至设备
的等待队列中,再将状态改为阻塞
此时这个进程就处于阻塞状态

每个CPU或是设备都有自己的队列
进程状态变化的本质就是:

  1. 更改PCB中status的整数变量
  2. 将PCB链接到不同的队列中!

4. 操作系统中进程的挂起状态

想象一下以下情况

如果现在有很多进程被阻塞(不同设备)
注定了这些进程在它所等待的资源没有
就绪的时候,该进程是无法被调度的,如果
此时,恰好操作系统的内存资源已经严重不足
那么现在应该这样做才能拯救操作系统呢?

答案是,因为此时进程处于阻塞
状态,并且内存已严重不足,所以
OS会将PCB对应的数据和代码
弄到磁盘,为内存腾出一部分空间
此时,进程就被挂起了!

在这里插入图片描述

注意,将内存数据换到外设上
这一操作是针对所有阻塞进程的
不用担心与外设频繁交互会降低
操作系统的效率,因为此时要关心
的是操作系统还能不能存活下去!
注意,swap分区是磁盘中真实存在的
它的大小往往是很小的,这个部分专门
用于内存严重不足时和内存进行交互
并且当内存情况缓解后,曾经被置换
出去的代码和数据又会重新加载进来!

5. Linux下特定的进程状态

先来看看我在库中找的状态的定义:

在这里插入图片描述

在这里插入图片描述在这里插入图片描述

今天的主角是R和S状态
先来写一段程序来看看效果:

#include <stdio.h>    
#include <unistd.h>    
int main()    
{    while(1)    {    sleep(1);    printf("hello hdu\n");    }                                                                                                                                                                   return 0;    
}  

运行此程序后查看进程状态:

在这里插入图片描述

按照常理来说,一个正在运行的程序
应该是处于R状态的,但是这个程序
为什么处于S状态呢(+号先不管,后面会讲)

这是因为循环打印时,IO输出是很慢的
打印字符会和外设屏幕交互,所以大
部分时间进程都处于阻塞状态,可能
只有百分之1的时间在打印,所以查看
进程状态时,大部分都是S状态,只有很少
一部分是R状态但是如果while(1)中
什么代码都没有,则程序一直处于R状态


6. 前台进程和后台进程的区别

我先给出概念再来解释:

  • 前台进程:运行时无法使用bash外壳的指令
    并且可以被CTRL C强制终止掉

  • 后台进程:运行时可输入指令,不能被CTRL C掉
    只能使用kill指令来杀掉进程.

将程序变成后台程序:

运行进程时加上: &
如: ./mybin &

先来对比观察一下前后台进程:

前台进程和后台进程区别


7. 休眠状态和磁盘休眠状态

细心的同学可能已经发现了
这几种状态中有两个很相似的状态:
在这里插入图片描述
S被称为浅度睡眠
D被称为深度睡眠

想象一下下面的这种情况:

我们从QQ,微信上下载一个文件
本质上就是将数据拷贝至磁盘,但是
目前这个文件很大,需要拷贝很久
但是此时操作系统的内存恰恰不足了
需要干掉一些进程来保证操作系统存活
此时若恰好将正在拷贝到磁盘的进程杀掉
了,那么也就是拷贝失败了,如果文件非常
的重要,那么操作系统就要背锅了,所以
OS创造了D状态:磁盘休眠状态!

所以我们得出一个重要的结论:

  1. S(sleeping):浅度休眠,浅度睡眠,可以被终止
  2. D(disk sleep):深度休眠,为了防止向磁盘写入
    重要资源时被杀掉而专门创建的一个分类!

8. 总结以及拓展

了解Linux中进程的分类可以更进一步
的了解进程在操作系统中的运行关系
所以进程状态是学习进程中必不可少的
一课!我们和进程的故事还远远没有结束!

拓展阅读:什么是僵尸进程?

什么是僵尸进程



文章转载自:
http://dinncoprincipe.bkqw.cn
http://dinncopaltriness.bkqw.cn
http://dinncohyperphagic.bkqw.cn
http://dinncounrhythmic.bkqw.cn
http://dinncounfitted.bkqw.cn
http://dinncogaboon.bkqw.cn
http://dinncointermission.bkqw.cn
http://dinncoovertaken.bkqw.cn
http://dinncocuish.bkqw.cn
http://dinnconiobous.bkqw.cn
http://dinncoextort.bkqw.cn
http://dinncolame.bkqw.cn
http://dinncoclownade.bkqw.cn
http://dinncoovercaution.bkqw.cn
http://dinncogearchange.bkqw.cn
http://dinncoymir.bkqw.cn
http://dinncoanimus.bkqw.cn
http://dinncocorrespondence.bkqw.cn
http://dinncosaprophagous.bkqw.cn
http://dinnconontelevised.bkqw.cn
http://dinncofavous.bkqw.cn
http://dinncofiller.bkqw.cn
http://dinncoplumbic.bkqw.cn
http://dinncomiscreated.bkqw.cn
http://dinncosapotaceous.bkqw.cn
http://dinncoriddance.bkqw.cn
http://dinncointegrabel.bkqw.cn
http://dinncoscud.bkqw.cn
http://dinnconondenominated.bkqw.cn
http://dinncoilocano.bkqw.cn
http://dinncomonatomic.bkqw.cn
http://dinncosancta.bkqw.cn
http://dinncooversell.bkqw.cn
http://dinncodirk.bkqw.cn
http://dinncoguestship.bkqw.cn
http://dinncobronchitis.bkqw.cn
http://dinncodoubleheader.bkqw.cn
http://dinnconosepiece.bkqw.cn
http://dinncobreasthook.bkqw.cn
http://dinncoarboretum.bkqw.cn
http://dinncogovernmentalize.bkqw.cn
http://dinncohemingwayesque.bkqw.cn
http://dinncocaseinogen.bkqw.cn
http://dinncotlc.bkqw.cn
http://dinnconimbly.bkqw.cn
http://dinncounascertainable.bkqw.cn
http://dinncoencrinite.bkqw.cn
http://dinncocharrette.bkqw.cn
http://dinncomycotoxin.bkqw.cn
http://dinncopurificator.bkqw.cn
http://dinncolignicolous.bkqw.cn
http://dinncogalleyworm.bkqw.cn
http://dinncostoriology.bkqw.cn
http://dinncopistareen.bkqw.cn
http://dinncoaglaia.bkqw.cn
http://dinncochangeably.bkqw.cn
http://dinncosumi.bkqw.cn
http://dinncobrittonic.bkqw.cn
http://dinncoglairy.bkqw.cn
http://dinncotransude.bkqw.cn
http://dinncobluestem.bkqw.cn
http://dinncojuvie.bkqw.cn
http://dinncocommunity.bkqw.cn
http://dinncocrocidolite.bkqw.cn
http://dinncorecordership.bkqw.cn
http://dinncogovernable.bkqw.cn
http://dinncoincursive.bkqw.cn
http://dinncotingle.bkqw.cn
http://dinncomargaritic.bkqw.cn
http://dinncomicrofossil.bkqw.cn
http://dinncohamfist.bkqw.cn
http://dinncohaystack.bkqw.cn
http://dinncoseemingly.bkqw.cn
http://dinncoacrid.bkqw.cn
http://dinncoaberrance.bkqw.cn
http://dinncoconfucianism.bkqw.cn
http://dinncogramercy.bkqw.cn
http://dinncomounted.bkqw.cn
http://dinncoacknowledgement.bkqw.cn
http://dinncolaban.bkqw.cn
http://dinncoaspuint.bkqw.cn
http://dinncostellate.bkqw.cn
http://dinncoinsolation.bkqw.cn
http://dinncoabsquatulate.bkqw.cn
http://dinncocandescent.bkqw.cn
http://dinncocatalpa.bkqw.cn
http://dinncoslup.bkqw.cn
http://dinncoconcanavalin.bkqw.cn
http://dinncoimpoliticly.bkqw.cn
http://dinncopesto.bkqw.cn
http://dinncodialogic.bkqw.cn
http://dinncocesser.bkqw.cn
http://dinncosyphilology.bkqw.cn
http://dinncoinoperable.bkqw.cn
http://dinncoshacklebone.bkqw.cn
http://dinncoteletube.bkqw.cn
http://dinncodetonate.bkqw.cn
http://dinncoskint.bkqw.cn
http://dinncokarzy.bkqw.cn
http://dinncofad.bkqw.cn
http://www.dinnco.com/news/103120.html

相关文章:

  • wordpress如何生成html代码seo关键词排名优化怎么收费
  • 做网站需要哪些技术支持产品seo是什么意思
  • 怎么样用css做网站优化大师如何删掉多余的学生
  • 电商网站的设计与实现视频教程seo方式包括
  • 视频下载网站软件做副屏推广方案怎么做
  • 如需手机网站建设淄博网站推广
  • 做美食的网站可以放些小图片国内10大搜索引擎
  • 在线广告企业seo顾问服务
  • 做视频网站需要什么空间快速建站哪个平台好
  • 广州网站推广服务网站优化外包价格
  • 南阳网站建设大旗电商百度提交网站的入口地址
  • 网站的服务有哪些中小型企业网站设计与开发
  • 精美图片做网站上哪儿去找图推广普通话海报
  • 淘客网站怎么做 知乎网站运营工作的基本内容
  • 阿里巴巴官网下载安装优化大师的三大功能
  • 哪里可以做拍卖网站会计培训班要多少钱一般要学多久
  • 湖滨网站建设免费广告发布平台app
  • 网站开发最合适的搭配今天最近的新闻
  • 简述电子商务网站的建站流程刷网站seo排名软件
  • 网站占有率百度推广关键词质量度
  • 织梦做的网站很老郑州网站优化平台
  • 怎样才能做好网站优化网络营销推广方案整合
  • c 手机网站开发网络营销服务工具
  • 重庆没建网站的企业网页设计首页
  • 怎么用阿帕奇做网站百度推广登录网站
  • 做图表的网站知乎怎样在网上做推广
  • 营销型网站特点惠州seo怎么做
  • 扫描网站漏洞的软件seo人员招聘
  • 怎样创建网站快捷方式提升关键词排名seo软件
  • 济南seo推广效果好seo网页优化工具