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

北京建机网站台州百度推广优化

北京建机网站,台州百度推广优化,网站企业案例,上海网站建设哪家便宜标题:[Linux] Linux操作系统 进程的状态 个人主页:水墨不写bug (图片来源于网络) 目录 一、前置概念的理解 1.并行和并发 2.时间片 3.进程间具有独立性 4.等待的本质 正文开始: 在校的时候,你一定学过《…

 标题:[Linux] Linux操作系统 进程的状态

个人主页:@水墨不写bug

(图片来源于网络)

目录

 一、前置概念的理解

1.并行和并发

2.时间片 

 3.进程间具有独立性

 4.等待的本质


正文开始:

        在校的时候,你一定学过《操作系统原理》这本书,操作系统这个学科作为计算机哲学科目,无疑非常难以理解。再加上操作系统原理这本书并不是针对某一种操作系统而写的书,所以其内的大多数解释概念解释 含糊不清,难以琢磨。这不是作者的原因,而是选题的原因:因为它讲的是操作系统这个抽象后的概念,对于某一种具体的操作无法落实到具体的事例,什么意思呢?

        比如,MacOS,Windows,Linux对于某一概念本质是一样的,但是处理方法不同,于是操作系统原理就笼统的用提取出来的概念来讲。再比如,模板大家都知道吧,《操作系统原理》这本书就好比是仅仅是对着模板来讲解,而不是一个具体的函数。一般而言,我们理解模板的正常逻辑是从一个具体函数然后上升到对模板的理解的,是从具体到抽象的过程,而不是仅仅停留在模板,只讲抽象的概念。

         这也就是你觉得操作系统难的原因。本文就沿着Linux这一具体的操作系统来讲解操作系统的概念。之所以选择Linux,是因为Linux是最受欢迎的高效、免费的操作系统,企业级应用最多。


         在理解进程的概念之前,我们需要先铺垫几个重要的概念:

 一、前置概念的理解

1.并行和并发

        并发:假设我们只有一个低配置的单核的CPU,这个时候我们仍然是可以启动多个进程的,为什么呢?这就是并发;

        CPU执行进程代码,不是把进程代码执行完,才开始执行下一个,而是给每一个进程预分配一个时间片,基于时间片,依次调度各个进程,进行调度轮转,这就是并发。即便只有一个CPU,这一个CPU仍然可以凭借并发,来在人眼无法分辨的时间段内极速切换,达到“同时”运行多个进程的目的。

        并行:多个进程在多个CPU下分别同时进行,称为并行


2.时间片 

        在Linux操作系统中,时间片(Time Slice)是操作系统进行  进程调度  时分配给每个进程运行的一段固定时间。Linux(以及许多其他现代操作系统)使用基于时间片的轮转调度算法(Round-Robin Scheduling)来管理CPU资源的分配,以确保所有进程都能公平地获得执行时间。

        当一个进程被调度到CPU上运行时,它会被分配一个时间片。在这个时间片内,进程可以执行其任务。当时间片结束时,无论该进程是否已经完成其工作,操作系统都会暂停该进程的执行,并将其放回就绪队列的末尾(或根据调度算法的其他规则重新排序)。然后,操作系统会选择另一个进程来执行,为其分配一个新的时间片。

        对于大多数民用级Linux/Windows操作系统,使用的是分时操作系统,也就是上面的这种采用时间片调度的操作系统。而对于一些特殊需求的高精度,高需求的场景:比如航空航天,车辆自动驾驶等,就不能再使用分时操作系统,因为毫秒级别的误差就可能导致事故。这些场景就需要采用实时操作系统


 3.进程间具有独立性

         进程间具有很强的独立性,这里目前不需要很深的理解。

        父进程创建的子进程挂掉之后,父进程不会收到影响,比如你在本地IDE上写一个程序,但是出现空指针导致程序挂掉了,你写的进程结束了,但是IDE不会因此挂掉。

 4.等待的本质

         在Linux下,进程有许多种不同的状态,之所以为进程区分状态,是为了提高效率。一个进程实际并没有用到CPU资源,但是却占用内存,这样的做法显然不合理。

        Linux进程的状态有:

/*
* The task state array is a strange "bitmap" of
* reasons to sleep. Thus "running" is zero, and
* you can test for combinations of others with
* simple bit tests.
*/
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调度。 那么这个进程就会被加载到不同的硬件的数据结构中,等待硬件的响应,这个时候的进程就处于睡眠状态。

        睡眠状态根据进程重要程度的不同,分为可中断睡眠和不可中断睡眠。

运行和阻塞的本质:

是让不同的进程处在不同的队列中。

       

 R运行状态(running) : 并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列里。

S睡眠状态(sleeping): 意味着进程在等待事件完成(这里的睡眠有时候也叫做可中断睡眠(interruptible sleep))

D磁盘休眠状态(Disk sleep):有时候也叫不可中断睡眠状态(uninterruptible sleep),在这个状态的进程通常会等待IO的结束。

T停止状态(stopped): 可以通过发送 SIGSTOP 信号给进程来停止(T)进程。这个被暂停的进程可以通过发送 SIGCONT 信号让进程继续运行。

X死亡状态(dead):这个状态只是一个返回状态,你无法在任务列表里看到这个状态


完~

未经作者同意禁止转载

http://www.hkea.cn/news/701001/

相关文章:

  • 小企业网站建设和管理全能搜
  • 无棣县建设局网站游戏优化大师下载安装
  • 小额贷款 网站模板品牌推广软文
  • 网站建设开发成本天津百度搜索网站排名
  • 做的好的营销型网站有哪些内容外贸网站外链平台
  • 东营网站建设预算价格百度网盘网页版入口官网
  • 网站建设中标公告18款禁用看奶app入口
  • 网站运营人员岗位职责长沙正规seo优化价格
  • cnzz统计代码放在后台网站为什么没显示seo的英文全称是什么
  • 杭州企业网站建设方案广告门
  • 自己免费做网站(二)seo优化公司信
  • 广州外贸b2b网站建设刷钻业务推广网站
  • 做企业网站用什么怎样宣传自己的品牌
  • 濮阳做网站的公司我的百度账号
  • 美食网站开发如何做好网络营销工作
  • 网站建设案例资料今天的新闻内容
  • 台州专业网站建设方案seo软文代写
  • 个人网站 百度推广全球搜索大全
  • 网站消息推送5118素材网站
  • 天津 响应式网站设计企业网站模板免费
  • 网站用花生壳nas做存储百度seo发包工具
  • wordpress cache深圳纯手工seo
  • 怎样找到正规代加工网站百度地图3d实景地图
  • 潍坊网站建设公司网站搭建免费
  • 惠州做网站好的公司下载百度语音导航地图安装
  • 春节网站怎么做小说排行榜百度搜索风云榜
  • 商城服务是什么软件seo是指什么岗位
  • 无锡网站建设有限公司网站快速收录的方法
  • 网站建设通报推广网站多少钱
  • 网络推广公司成都seo排名优化教程