unix睡眠状态_unix查询状态 - CSDN
精华内容
参与话题
  • unix进程状态转换

    千次阅读 2011-09-30 18:56:39
    3.7 UNIX SVR4 进程管理 UNIX 系统V 使用了一种简单但是功能强大的进程机制,且对用户可见。UNIX 采用图3.15b 中的模型,其中大部分操作系统在用户进程环境中执行。UNIX 使用两类进程,即系统进程和用户进程。...
    
    

    3.7 UNIX SVR4 进程管理

    UNIX 系统V 使用了一种简单但是功能强大的进程机制,且对用户可见。UNIX 采用图3.15b 中的模型,其中大部分操作系统在用户进程环境中执行。UNIX 使用两类进程,即系统进程和用户进程。系统进程在内核态下运行,执行操作系统代码以实现管理功能和内部处理,如内存空间的分配和进程交换;用户进程在用户态下运行以执行用户程序和实用程序,在内核态下运行以执行属于内核的指令。当产生异常(错误)或发生中断或用户进程发出系统调用时,用户进程可进入内核态。

    3.7.1 进程状态

    UNIX 操作系统中共有9 种进程状态,如表3.9 所示。图3.17(基于[BACH86]中的图)是相应的状态转换图,它与图3.9b 类似,有两个UNIX 睡眠状态对应于图3.9b 中的两个阻塞状态,其区别可简单概括如下:

    UNIX 采用两个运行态表示进程在用户态下执行还是在内核态下执行。

    UNIX 区分内存中就绪态和被抢占态这两个状态。从本质上看,它们是同一个状态,如图中它们之间的虚线所示,之所以区分这两个状态是为了强调进入被抢占状态的方式。当一个进程正在内核态下运行时(系统调用、时钟中断或I/O 中断的结果),内核已经完成了其任务并准备把控制权返回给用户程序时,就可能会出现抢占的时机。这时,内核可能决定抢占当前进程,支持另一个已经就绪并具有较高优先级的进程。在这种情况下,当前进程转换到被抢占态,但是为了分派处理,处于被抢占态的进程和处于内存中就绪态的进程构成了一条队列。

     
    图3.17 UNIX 进程状态转换图

    只有当进程准备从内核态移到用户态时才可能发生抢占,进程在内核态下运行时是不会被抢占的,这使得UNIX 不适用于实时处理。有关实时处理需求的讨论请参见第10 章。

    UNIX 中有两个独特的进程。进程0 是一个特殊的进程,是在系统启动时创建的。实际上,这是预定义的一个数据结构,在启动时刻被加载,是交换进程。此外,进程0 产生进程1,称做初始进程,进程1 是系统中的所有其他进程的祖先。当新的交互用户登录到系统时,由进程1为该用户创建一个用户进程。随后,用户进程可以创建子进程,从而构成一棵分支树,因此,任何应用程序都是由一组相关进程组成的。

    表3.9 UNIX 进程状态

     

    展开全文
  • Linux 中的进程睡眠状态有两种:一种是可中断的睡眠状态,其状态标志位为TASK_INTERRUPTIBLE;另一种是不可中断的睡眠状态,其状态标志位为TASK_UNINTERRUPTIBLE。 可中断的睡眠状态的进程会睡眠直到某个条件变为真...

    Linux 中的进程睡眠状态有两种:一种是可中断的睡眠状态,其状态标志位为TASK_INTERRUPTIBLE;另一种是不可中断的睡眠状态,其状态标志位为TASK_UNINTERRUPTIBLE。

    可中断的睡眠状态的进程会睡眠直到某个条件变为真,如产生一个硬件中断、释放进程正在等待的系统资源或是传递一个信号都可以是唤醒进程的条件。

    不可中断睡眠状态与可中断睡眠状态类似,但是它有一个例外,那就是把信号传递到这种睡眠状态的进程不能改变它的状态,也就是说它不响应信号的唤醒。

    展开全文
  • Linux进程的状态转换图

    千次阅读 2014-08-13 22:33:18
    ◆运行状态(TASK_RUNNING) 当进程正在被CPU执行,或已经准备就绪随时可由调度程序执行,则称该进程为处于运行状态(running)。进程可以在内核态运行,也可以在用户态运行。...◆可中断睡眠状态(TASK_INTERRUPTI

    http://blog.csdn.net/mu0206mu/article/details/7348618



    ◆运行状态(TASK_RUNNING)
    当进程正在被CPU执行,或已经准备就绪随时可由调度程序执行,则称该进程为处于运行状态(running)。进程可以在内核态运行,也可以在用户态运行。当系统资源已经可用时,进程就被唤醒而进入准备运行状态,该状态称为就绪态。这些状态(图中中间一列)在内核中表示方法相同,都被成为处于TASK_RUNNING状态。
    ◆可中断睡眠状态(TASK_INTERRUPTIBLE)
    当进程处于可中断等待状态时,系统不会调度该进程执行。当系统产生一个中断或者释放了进程正在等待的资源,或者进程收到一个信号,都可以唤醒进程转换到就绪状态(运行状态)。
    ◆不可中断睡眠状态(TASK_UNINTERRUPTIBLE)
    与可中断睡眠状态类似。但处于该状态的进程只有被使用wake_up()函数明确唤醒时才能转换到可运行的就绪状态。
    ◆暂停状态(TASK_STOPPED)
    当进程收到信号SIGSTOP、SIGTSTP、SIGTTIN或SIGTTOU时就会进入暂停状态。可向其发送SIGCONT信号让进程转换到可运行状态。在Linux 0.11中,还未实现对该状态的转换处理。处于该状态的进程将被作为进程终止来处理。
    ◆僵死状态(TASK_ZOMBIE)
    当进程已停止运行,但其父进程还没有询问其状态时,则称该进程处于僵死状态。
    当一个进程的运行时间片用完,系统就会使用调度程序强制切换到其它的进程去执行。另外,如果进程在内核态执行时需要等待系统的某个资源,此时该进程就会调用sleep_on()或sleep_on_interruptible()自愿地放弃CPU的使用权,而让调度程序去执行其它进程。进程则进入睡眠状态(TASK_UNINTERRUPTIBLE或TASK_INTERRUPTIBLE)。
    只有当进程从“内核运行态”转移到“睡眠状态”时,内核才会进行进程切换操作。在内核态下运行的进程不能被其它进程抢占,而且一个进程不能改变另一个进程的状态。为了避免进程切换时造成内核数据错误,内核在执行临界区代码时会禁止一切中断。



    ◆运行状态(TASK_RUNNING)
    当进程正在被CPU执行,或已经准备就绪随时可由调度程序执行,则称该进程为处于运行状态(running)。进程可以在内核态运行,也可以在用户态运行。当系统资源已经可用时,进程就被唤醒而进入准备运行状态,该状态称为就绪态。这些状态(图中中间一列)在内核中表示方法相同,都被成为处于TASK_RUNNING状态。
    ◆可中断睡眠状态(TASK_INTERRUPTIBLE)
    当进程处于可中断等待状态时,系统不会调度该进程执行。当系统产生一个中断或者释放了进程正在等待的资源,或者进程收到一个信号,都可以唤醒进程转换到就绪状态(运行状态)。
    ◆不可中断睡眠状态(TASK_UNINTERRUPTIBLE)
    与可中断睡眠状态类似。但处于该状态的进程只有被使用wake_up()函数明确唤醒时才能转换到可运行的就绪状态。
    ◆暂停状态(TASK_STOPPED)
    当进程收到信号SIGSTOP、SIGTSTP、SIGTTIN或SIGTTOU时就会进入暂停状态。可向其发送SIGCONT信号让进程转换到可运行状态。在Linux 0.11中,还未实现对该状态的转换处理。处于该状态的进程将被作为进程终止来处理。
    ◆僵死状态(TASK_ZOMBIE)
    当进程已停止运行,但其父进程还没有询问其状态时,则称该进程处于僵死状态。
    当一个进程的运行时间片用完,系统就会使用调度程序强制切换到其它的进程去执行。另外,如果进程在内核态执行时需要等待系统的某个资源,此时该进程就会调用sleep_on()或sleep_on_interruptible()自愿地放弃CPU的使用权,而让调度程序去执行其它进程。进程则进入睡眠状态(TASK_UNINTERRUPTIBLE或TASK_INTERRUPTIBLE)。
    只有当进程从“内核运行态”转移到“睡眠状态”时,内核才会进行进程切换操作。在内核态下运行的进程不能被其它进程抢占,而且一个进程不能改变另一个进程的状态。为了避免进程切换时造成内核数据错误,内核在执行临界区代码时会禁止一切中断。

    展开全文
  • Linux /UNIX 状态解释

    2016-01-15 19:55:05
    [root@vgw2 ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.1 0.0 45092 7660 ? Ss 02:34 0:07 /usr/lib/systemd/systemd --switched-

    [root@vgw2 ~]# ps aux
    USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root          1  0.1  0.0  45092  7660 ?        Ss   02:34   0:07 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
    root          2  0.0  0.0      0     0 ?        S    02:34   0:00 [kthreadd]
    root          3  0.0  0.0      0     0 ?        S    02:34   0:00 [ksoftirqd/0]
    root          4  0.0  0.0      0     0 ?        S    02:34   0:00 [kworker/0:0]
    root          5  0.0  0.0      0     0 ?        S<   02:34   0:00 [kworker/0:0H]


    ps 经常看到不同的进程状态。现在进行解释如下:


    S:  Interruptible sleep (waiting for an event to complete):可中断的睡眠状态。等待一个事件,然后就可以进入运行状体。

    s: is a session leader 会话leader

    l:  is multi-threaded (using CLONE_THREAD, like NPTL pthreads do) 是一个多线程进程。

    COMMAND对应如下,则是用户态进程

     /usr/lib/systemd/systemd --switched-root --system --deserialize 21

    OMMAND对应如下,则是内核态进程

    root          2  0.0  0.0      0     0 ?        S    02:34   0:00 [kthreadd]

    展开全文
  • 三态模型:在多道程序系统中,进程在处理器上交替运行,状态也不断地发生变化。进程一般有3种基本状态:运行、就绪和阻塞。 (1)运行:当一个进程在处理机上运行时,则称该进程处于运行状态。处于此状态的进程的...
  • UNIX操作系统中加锁和解锁

    千次阅读 2016-06-23 10:22:38
    当其他进程在该进程没有释放该锁时试图进入临界区(加锁),它将会被设置成睡眠状态,然后被置入等待该锁的进程队列(某个优先级的)。 当Unix操作系统该锁被释放时,也就是解锁事件发生时,内核将从等待该锁的...
  • unix进程管理机制

    千次阅读 2012-05-23 17:00:01
    1 进程的引入原因:  描述多道程序在并发系统中的执行过程。由于动态特性,即使相同的程序功能,每次运行时的动态特性不同,因此引入新的有机整体(包括程序... 映像:存储器映像+cpu映像+打开文件的状态+现行目录
  • 进程状态

    2017-07-29 09:48:28
    睡眠状态(sleeping)表明进程在等待事情的完成。 磁盘休眠状态(disk sleep),这个状态下的进程通常会等待IO的结束。 停止状态(stopped),进程收到信号停止 死亡状态(dead)是内核运行里的do_exit()
  • 一、查看端口号和进程号的对应关系 netstat -anpt | grep 1113 tcp 0 0 0.0.0.0:1113 0.0.0.0:* LISTEN 4413/inputoutput_1 tcp 0 0 127.0.0.1:55342 127.0.0....
  • unix网络编程之简介和运输层TCP/UDP

    千次阅读 2012-08-16 20:32:55
    前言:本文只介绍了有关UNIX网络编程的理论知识,具体的应用和例子在稍后的博文中将更新 ...接受客户连接,发送应答,服务器进程在调用accept函数后处于睡眠状态,它等待客户的连接和内核对它的接受。TCP连接使用三路
  • 僵死进程

    2012-10-15 08:49:07
     进程在它的生命周期有几种状态睡眠,可运行,停止,正在运行和僵死状态。所谓僵死进程,指的是一个进程已经退出,它的内存和相关的资源已经被内核释放 掉,但是在进程表中这个进程项(entry)还保留着,以便它的...
  • 概述 加锁和解锁的基本思想是,当某个进程进入临界区,它将持有一个某种类型的锁(UNIX里一般来说...当其他进程在该进程没有释放该锁时试图进入临界区(加锁),它将会被设置成睡眠状态,然后被置入等待该锁的进程
  • UNIX中每个进程都有一个优先数,就绪进程能否占用处理器的优先权取决于进程的...前者对要进入睡眠状态的进程设置优先数,若等待的事件急迫,则设置较小的优先数;后者用户进程正在或即将转入用户状态运行时确定优先数。
  • 【操作系统】unix 进程调度策略

    千次阅读 2017-11-23 22:07:05
    这一周为了准备OS课程的Seminar而去研究了一下Unix的进程调度,从网上的资料和我查阅的纸质资料上看,研究System V的比较多,所以我就拿System V来做例子。需要注意的一点是,System V第一个版本是1983年发布的,...
  • 当前,介绍UNIX系统的书籍很多,然而论述UNIX系统内部结构的专著却屈指可数。《UNIX操作系统设计》是其中非常引人注目的一本。本书作者Maurice J.Bach多年来在AT&T公司的贝尔实验室工作,对UNIX系统的设计思想有...
  • unix进程通信方式总结(上)

    千次阅读 2016-08-06 00:52:21
    本文将《unix环境高级编程》一书中所涉及的几种重要的进程间通信方式(Inter-Process Communication)进行简单总结,总的来说,进程间通信有以下几种: (1).
  • 文章目录第二章 核心导言UNIX操作系统的体系结构系统概念介绍文件子系统概述进程进程上下文进程状态状态转换睡眠与唤醒核心数据结构---思想层面系统管理本章小结 第二章 核心导言 UNIX操作系统的体系结构 核心框图,...
  • Unix操作系统基础:Unix 进程   内容: 目标:  进程; 定义Unix系统的进程  进程的环境; 了解进程的生命周期、构成、状态等信息  进程是如何创建的; 了解如何显示进程的信息  如何获取进程信息...
  • Unix操作系统设计

    2020-06-12 08:24:15
    6.1 进程的状态状态的转换 6.2 系统存储方案 6.2.1 区 6.2.2 页和页表 6.2.3 内核的安排 6.2.4 u区 6.3 进程的上下文 6.4 进程上下文的保存 6.4.1 中断和例外 6.4.2 系统调用的接口 6.4.3 上下文切换 6.4.4 为废弃...
  • UNIX系统常用命令

    2010-12-08 17:32:00
    UNIX系统常用命令 第一章 登录和退出 <br />1 登录  第1步 新建终端  第2步 telnet 192.168.0.23  第3步 login 用户注册名  第4步 password 口令  用户登录成功。...
1 2 3 4 5 ... 20
收藏数 15,349
精华内容 6,139
关键字:

unix睡眠状态